TAGGED: farfield, farfieldspherical
-
-
March 26, 2024 at 1:37 pmTony ZhuSubscriber
老师好。我在Script中通过函数farfield3d和farfieldux以两个余弦向量为坐标显示了远场分布,即我们熟悉的image(ux,uy,data,"ux","uy","Image plot");
而把相同的变量导入FDTD另一个图像显示函数我们可以得到球坐标系下的投影(或者直接右键监视器也可以),
即polarimage(ux,uy,data,"ux","uy","Polar Image plot");
现在我想在matlab中进一步分析处理polarimage中的数据,于是在想办法从软件中把这个数据导出。
我在官网介绍中看到使用farfieldspherical和reshape进行处理,将远场图数据从ux、uy的函数变成theta、phi的函数?但这个显示看起来好像不太一样,不知道具体应该怎么操作,麻烦老师帮忙指点一下。
theta = linspace(-90,90,10); phi = linspace(0,45,11); Theta = meshgridx(theta,phi); Phi = meshgridy(theta,phi); E2_angle = farfieldspherical(E2,ux,uy,Theta,Phi);
E2_angle = reshape(E2_angle, [length(theta), length(phi)]);
image(theta, phi, E2_angle, "theta","phi","E2"); -
March 26, 2024 at 5:08 pmGuilin SunAnsys Employee
你的脚本是将远场球坐标结果换算为直角坐标,当然显示的结果就与球坐标不一样了。
你已经有远场数据,还要这么导出呢?如果想保存为Matlab格式,可以使用 matlabsave: https://optics.ansys.com/hc/en-us/articles/360034928113-matlabsave-Script-command
-
March 27, 2024 at 3:17 amTony ZhuSubscriber
老师可能不太明白我的意思,我结合我的脚本说明一下。
我通过脚本导出了远场数据:
filename = currentfilename;
farfieldMon="T_PlanCavity";
ux = farfieldux(farfieldMon,1);
uy = farfielduy(farfieldMon,1);
E2_FF_1 = farfield3d(farfieldMon,1);
matlabsave(filename, ux, uy, E2_FF_1);
将ux, uy, E2_FF_1在matlab中用imagesc()作图得到:而在FDTD软件中用极坐标显示查看的结果是:
我理解的是这是一个极坐标二维图像,半径对应phi,角度对应theta。我想在matlab上显示这个极坐标二维图像。
所以这里我想问孙老师的是,我该如何正确在matlab上显示这个结果:是应该将E2_FF_1从关于ux, uy的函数转换成关于phi和theta的函数呢,还是可以直接在ux, uy, E2_FF_1的图中画同心圆标定phi和theta?
-
March 27, 2024 at 3:33 pmGuilin SunAnsys Employee
Matlab显示的是二维直角坐标结果,你用Lumerical的image也会得到同样的结果,这就是为什么用polarimage - Script command。它不同于前者: image
你测试一下。
-
March 28, 2024 at 8:40 am
-
March 28, 2024 at 4:16 pmGuilin SunAnsys Employee
有可能吧。直角坐标和球坐标不一样,前者是矩形,后者是圆形。Matlab应该也有PolarImage之类的命令,你找找。
-
- The topic ‘如何将polarimage显示的farfield数据导出’ is closed to new replies.
-
1882
-
802
-
599
-
591
-
366
© 2025 Copyright ANSYS, Inc. All rights reserved.