Photonics – Chinese

Photonics – Chinese

Ansys Insight: 如何使用Matlab, Lumerical Script 与Matlab的集成

    • Guilin Sun
      Ansys Employee
      此帖子最初在原KX论坛,转移到此论坛后,有些链接可能有问题,待以后有时间再行修正。

      Matlab是很强的数据处理工具。Lumerical 的脚本Script可以与 Matlab集成,也就是Lumerical 的脚本可以含 Matlab,但不能反过来。基本教程参见知识库 

      一:在脚本中使用 Matlab的步骤一般是:

      1:用脚本获得仿真结果数据;

      2:对结果数据进行均匀插值,这是因为,Lumerical 的器件级仿真软件经常使用非均匀网格,而Matlab却假定是均匀网格。如果不插值,可能出现Matlab的作图有变形 

      3:在脚本文件中使用Matlab语句

      例如,已经用脚本获得数据并进行过插值,如 x,y,f 和 E(x,y,f):

      1)将这些数据传递到Matlab,使用 matlabput

      matlabput(x,y,f,E);

      2)在脚本中插入Matlab

      matlab("

      E2=abs(E).^2;

      E4=E2.^2;

      …% 其它运算和作图

      “)

      至此Matlab使用完毕,接着可以继续自己的脚本。

      3 如果需要将Matlab的计算结果提取到脚本里面,则使用matlabget

      matlabget(E2,E4);

      image(x*1e6,y*1e6,E4(1:length(x),1:length(y),1),” x um",“y um”, “E^4”);

      这里E4 是经过处理后的三维数组,而image只能画二维数组,并且x、y并没有改变,所以上述image给出的是第一个频率点的x、y面内电场振幅的4次方。

      二:将脚本变量和数据记录为Matlab数据

      可使用matlabsave 。Matlab文件可以直接读取此数据,并直接使用变量名。注意,如果Matlab工作空间有相同的变量名,此举将改写原来变量里面的数据。

      例:matlabsave(“mydata”,x,y,f,E)

      三:用文本格式记录数据

      Lumerical 的脚本Script可以将数据写入文本文件,采用write 语句。因为已经保存为.txt文件,绝大多数计算机语言均可以读取,其它仿真工具一般也能读取。需要注意的是,write是将数字变为字符保存,因此,两个数字之间要留有空格,或者其它可以被第三方语言可以辨认的方式将数据隔开。

      a=linspace(0,2*pi,9);

      b=sin(a);

      上述语句 combine both vectors into a single 2D matrix to be output to file

      data_to_print=[a,b];

      写文件write the data to the file

      write(“testfile.txt”,num2str(data_to_print));

      打开数据文件,可见数据为
Viewing 0 reply threads
  • You must be logged in to reply to this topic.