FDTD进行对称光栅参数优化时,得到的参数数值正确与否?


#1

孙老师,您好!用FDTD优化对称光栅的参数时,如果把填充因子(FF)的最大值(max)设置大于1,如何判断优化完FF的值是正确的呢?还有如果一个结构是同时多个参数优化,多个参数之间有逻辑关系,各个参数的取值范围应该怎么取?


#2

我相信你选的目标函数应该不会在FF为1时最大。如何判断优化完结果正确,你首先要保证目标函数在多个代数迭代后不变了。有时候几代甚至一二十代的迭代目标函数都不怎么变但是再增加代数可能会变。这是因为粒子在局部极值那里还没有跳出来。要保证结果一定是全局最优,需要一定的经验。可以改变代数和粒子数(Generation size)看看结果变不变,建议不要指望以此优化就给出全局最优。

关于第二个问题,一般建议先扫描找到大致的参数范围,或者根据经验/文献参数。

这些都需要实践。


#3

孙老师,如果优化的参数存在逻辑关系,例如F1+F2+F3=1,这又满足这个条件的时候,结构才能确立。对三个参数的优化,这时候怎么去定义参数的优化范围,是不是也需要大致扫面参数范围才能最终确定优化是所用的参数范围?


#4

这个问题有点复杂。原来的设想是这些参数都是独立的,如果有重叠或者有限制,需要用户自己写脚本,不用软件自带的脚本。也就是在分配参数时用脚本剔出不满足条件的参数。
就F1+F2+F3=1来说,只有两个自变量,第三个就不能自给变,而且前面两个如果取之不合适会导致第三个参数不符合物理要求。

一个简单的办法是用API:用Matlab计算和控制,参见视频

个别情况可以在Model里面设置参数,不过不能剔除。


#5

孙老师,您好。FDTD的那个版本会有API的功能?我按照路径C:\Program Files\Lumerical\FDTD\api\matlab
找到的怎么没有api\matlab,只有bin\matlab?


#6

你用的是什么操作系统?微软视窗的话是前面所说,我的是
C:\Program Files\Lumerical\FDTD\api\matlab
你的是苹果系统吗?

请参见这个网页说明

只有2016b版本才有API的功能。


#7

谢谢孙老师的回复,这个问题解决了!如果我用API这个功能,优化刘老师所述的这种逻辑关系,用MATLAB控制lumerical,在MATLAB中是不是需要采用MATLAB的优化函数才能优化,与FDTD的优化无关了呢?


#8

此时的优化函数全部用MATLAB,我们软件仅仿真和给出指定的结果,由MATLAB判断如何优化。


#9

孙老师,如果我有很多参数,一次优化两个参数,将这些参数优化完后,再反过来改变代数和粒子数,对这些参数进行第二轮优化,甚至第三轮,第四轮优化,这样能不能得到整体、所有参数的全局最优呢?


#10

这个很难说,取决于这些参数所在的位置。你看看一些有等高线的地图就明白了,可能有很多局部极值,参数越多,局部极值的可能性越大。应该想办法将多参数关联起来,尽量减少要优化的参数个数。

与其优化倒不如多做些扫描,这个是可以控制的。

当然如果你有足够的时间计算机性能也足够好,你也是可以得到全局优化的。


#11