| infotek |
2021-04-28 10:27 |
VirtualLab Fusion中运用optiSLang进行光栅优化
摘要 7N=VVD~!b <qt%MM [Y
Lb 4!N`l @??
6)C 现代光学系统的优化一般会涉及到大量的参数,例如:优化光栅时不仅需要考虑光栅的几何参数,还有所需的入射方向。随着参数数量的大量增加,优化越来越具有挑战性。对于这种情况,VirtualLab Fusion提供了与Dynardo的optiSLang软件的接口,可以使用不同的高级优化算法。 P32'`!/: gg_(%.> VirtualLab Fusion和optiSLang的界面 J"|$V# %'O(Y{$Y. VirtualLab Fusion是一种灵活且可定制的建模工具平台,可以仿真复杂的光学装置,例如:将一组平面波耦合入光波导。 |JQKxvjT ) <~7<.0
P~Owvs/= boovCW optiSLang是一种包含各种高级工具的软件平台,包括敏感度分析、多元和多学科优化、鲁棒性评估、可靠性分析和鲁棒设计优化。 =ab}.dWC 两种软件平台的结合使得例如智能光波导耦合等高级光栅结构变为可能。 Q3Lqj2r x^BBK' VirtualLab Fusion – 光学装置初始化 ox#4|<qM [~S0b 初始装置 4q8%!\A+ ─ 一般来说,在VirtualLab中定义的光学系统都可以使用optiSLang进行优化。 bYH_U4b ─ 该例中的光学系统包含了平面波光源和用于周期性介质的波导耦合探测器。 K\Q
1/}) -
[j0B|cwG
<qx-%6 DR8dJ# VirtualLab Fusion – 波导耦合探测器 ~zRd||qv q[K)bg{HB 波导耦合探测 (6'Hzl^ Kp ─ 波导耦合探测器是一种特殊工具,用以探测某个周期性结构以特定角度范围入射的效率。 ;\.&FMi ─ 可以从探测器的编辑对话框中的目录定义或加载周期性结构。 j<?4N*S &pl;U\dc*a
oGJI3Oh wE2?/wb VirtualLab Fusion – 波导耦合探测器 Ta$<#wb 波导耦合探测 0g4cyK~n] ─ 该例中使用了倾斜光栅。 Mla,"~4D5 %SXqJW^:
:+$_(*Z b\mN^P~>A VirtualLab Fusion – 波导耦合探测器 YN[D^;} 波导耦合探测 B4=gMVp1 ─ 该例中使用了倾斜光栅。 #*@Yil=1 gO36tc:ce
VF.S)='>Eu eO#)QoHj^ VirtualLab Fusion – 波导耦合探测器 >TgO|mq ERplDSfO- 波导耦合探测 4e sf&-gG ─ 输入光源的入射角度范围在探测器编辑对话框中指定。 1|CO>)*D ─ 通过最小和最大笛卡尔坐标系角度alpha和beta与它们的采样点数定义。 qm@hD>W+ #a|5A:g%
QH:i)v* j!pxG5% VirtualLab Fusion – 波导耦合 (?(ahtT4T ;H.r6 波导耦合探测 de[_T%A ─ 可以从探测得到的效率计算平均值和均匀对比度,并在探测器结果标签页中给出。 ^m\n[<x^ ─ 作为结果,探测器可以用于评估在特定角度范围内的周期性结构。 WObfHAp. >n/QKFvV5
Lm/^ 8V+ f,*e?9@;s VirtualLab Fusion – 输出LPD至OPtiSLang h#>67gJV WqAP'x 1 输出LPD至OPtiSLang HU'}c*d] ─ File→Export→Export to optiSlang Project 6|9fcIh]B
;|c, nr }H;wB VirtualLab Fusion – 输出LPD至OPtiSLang 4*]`s|fbu LT!4pD:a 输出LPD至OPtiSLang bbnAmZ ─ File→Export→Export to optiSlang Project 1'=brc YR ─ 输出LPD文件,并产生输入至optiSLang的必要光学装置文件。 y g7z?AZ &E~7ty'
hH~Z hB {^v50d VirtualLab Fusion – 输出LPD至OPtiSLang ^?,/_ 3 -95`.o 输出LPD至OPtiSLang /D~:Ufw ─ 在输出对话框窗口。 cuHs`{u@P 可定义参数空间,并包含了参数的变化范围。 ^,50]uX_ 可以选择保存到的输出文件夹。 6Dch+*4*@ 可以指定模拟引擎,用于分析。 %PQC9{hUy$ !&X}?NK
na~ r}77o `8Gwf;P1 optiSLang – 初始化优化 ,PnEDQ|l !#3R<bW`R8 设置求解器系统 ?tOzhrv ─ File→New project… .w`8_v &Y 7G xNI
@|M10r9E +`ZcYLg)# optiSLang – 初始化优化 5 p750`n RNPqW,B!0 设置求解器系统 x;N?'"GP ─ 继续,拖动求解器(Solver)向导到场景(Scenery)窗口。 >q}EZC ─ 打开了一个对话框,列出了几种求解器(Solver)范例。 <I}k%q' ─ 求解器(Solver)范例中必须选择VirtualLab。 $0WAhq 9yQ[ *
xv
/w % optiSLang – 初始化优化 P5Fm<f8\ :f`1 设置求解器系统 lA{Sr0fTP ─ 然后会弹出文件对话框,必须打开VirtualLab输出的system.lpd文件。
o]
=
& H|Eu,eq-E
F3?v& !j- 7, optiSLang – 初始化优化 ]+oPwp;il qsJo)SA 参数化的求解器系统 fO9e ; ─ 参数化的求解器系统包含相应的VirtualLab文件和两个含有参数和结果的XML文件,用于定义优化函数。 J,k{Bm ─ 请务必保存计划。 K }r%OOn0 q4VOK
'N
Yx,
e-Eoe_k optiSLang – 初始化优化 [
%r :V" idV4hMF9 参数化的求解器系统 #T+%$q [: ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 hD;[}8qN{ m]V5}-?al
xl
s_g/Q &a O3N optiSLang – 初始化优化 & %1XYpA.0 ]zu"x9-` 参数化的求解器系统 ;]|Z8#s ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 '9-8_; ─ 通过双击结果(Result)设计标签页中的参数化(Parametric)求解器系统窗口,可以检查参数和结果。 NoV2<m$ Wh"oL;O
.aF+>#V=Q *V>Iv/( optiSLang –设置优化 UnGG% R}BHRmSQ 参数化的求解器系统 faThXq8B ─ optiSLang可以进行多目标函数的光学系统优化。 \9!W^i[+ ─ 这可以在参数化(Parametric)求解器系统配置的判据(Criteria)标签页中定义。 m"NZ; *d ' ><dSwwu
fH>]>2fS |0dmdrKD optiSLang –设置优化 S's\M5 :FB#,AOa_ 参数化的求解器系统 ?> }bg ─ 可以通过拖动均匀化对比度(Uniformity Contrast)到目标最小化(Objective Minimize)判据中定义第一目标函数。 C;M.dd ─ 因此优化算法会尽可能地使均匀度对比最小化。 GKSfr8US4 nRJcYl~
Y
nJlrBf_Kj J6Cw1Pi optiSLang –设置优化 o`7Bvh2 ?$v#;n?@I 参数化的求解器系统 a6fMx~ ─ 可以通过拖动平均值(Mean)到目标最小化(Objective Maximize)判据中定义第二目标函数。 ,ie84o ─ 因此优化算法会尽可能地使平均效率最大化。
W& w-yZ ─ 这步操作被称为多目标优化。 g!i\AMG? \5cAOBja
Pqi>,c<&mL L@XhgQ optiSLang –设置优化 Jn-iIl 1
@tVfn} 优化向导 UJ<eF/KSmG ─ 下一步可以通过拖放来使用优化向导。 4#!NVI3t 9=89)TrY
q3#07o_dV 1^TOTY optiSLang –设置优化 PSNfh7g 9;NR 优化向导 _py%L+&{ ─ 第一步,提供了各种系统参数,包括其指定的值范围。 #/\5a;Elc ─ 此外,optiSLang提供了一个可视化的值范围,其中标出了初始值。 5v<BB`XWp ─ 然后点击下一步。 ^
1}_VB)^
iZyhj%# y".uu+hL` optiSLang –设置优化 :D`ghXj 17
Hdj 优化向导 JL=MlZ ─ 第二步,如果在参数化的求解器系统中没有指定优化条件,则此时可以指定。 c%n[v3] ─ 也可以从其他文档中输入条件。 FhVi|Va ─ 然后点击下一步。 wK!4:]rhG ]W-l1
1-!u=]JDE ^(r?k_i/ optiSLang –设置优化 2&S*> ( #XE`8$
优化向导 x|&A^hQ ─ 第三步,选择优化方法。 l:5x*QSX ─ optiSLang提供了类似于红绿灯的建议形式来选择合适的方法: 3iMh)YH5b 红:不适用 +}@1X&v: 黄:适用 L}7c{6!F7 绿:推荐 X`YA JG ─ 该例中推荐使用进化算法。 rZm|7A)i ─ 然后点击下一步。 c;C:$B7 VC,wQb1J/
PBc.}TSGj ()i8 Qepo} optiSLang –设置优化 BuII|j YtI2Vr/9 优化向导 `uo'w:Q ─ 然后,需要指定一些附加选项。 #0V$KC*> ─ 建议在算法运行期间显示后期处理选项,以便在优化运行期间访问结果数据。 B/hL ─ 然后点击结束。 yu"enA %Aq+t&-BCX
^W+q!pYM9+ O+ ~.p optiSLang –进化算法的高级设置 \q(DlqTqs bq{":[a 高级设置 _7Z|=) ─ 双击创建优化,可以调整优化算法的详细参数。 Pi7vuOJr8 vs}_1o
+MU|XT_5|6 optiSLang –进化算法的高级设置 (lBgWz Exd$v"s
Y 高级设置 g(){wCI ─ 双击创建优化,可以调整优化算法的详细参数。 %QH "x`; ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 Yz4)Q1 uH 1%diL^
7.@$D;L9 oU[Ba8qh optiSLang –进化算法的高级设置 X+2 aP'D X=$WsfN.h 高级设置 2~[f<N ─ 双击创建优化,可以调整优化算法的详细参数。 /cM< ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 G
Xx7/ X ─ 在标签页“其他”中,提供了一些预定义的参数,适用于大部分优化。(例如“EA 10000”) @=4K%SCw IO3`/R-
/ ;>U0~K l+g\xUP optiSLang –进化算法的高级设置 t:y}
7un ,Yx"3i, 高级设置 V8AF;1c?-' ─ 此外,作为附加选项,可以调整optiSLang是否自动保存。 Sz4G,c ─ 默认情况下,在计算每个设计迭代后,项目会自动保存。 M\\t)=q ─ 特别是对于计算时间短的设计,这会产生大量开销并减慢优化速度。 ;{'{*g[ ─ 因此,建议将自动保存选项设置为每50或100个完成的设计后保存。 R(_UR)G0 @ pd2Lc
$O@
&-^|n*=g6 }NX9"}/ optiSLang –设计计算的并行化 c|?0iN "";[U 并行化设置 Q(Q.( ─ 一些优化算法允许并行计算设计。 6b&<5,=d: ─ 例如,在进化算法的情况下,一代的所有成员设计的参数是已知的,因此可以同时计算以减少计算时间。 \z'A6@ ─ 为了允许并行计算,必须启用多个求解器。 44;ZX$HL ─ 通过双击VirtualLab求解器,可以找到此附加选项。 xe ng`! ─ 建议数量为CPU的一半到全部真实核心之间,具体取决于每个设计的计算并行化。 zzmZ`Ya ;:(kVdb
mY[s2t 3u]#Ra~5 optiSLang –开始优化 i$MYR @ m=;0NLs4 运行优化 %J)n#\ ─ 单击场景(Scenery)中的进化算法(Evolutionary Algorithm)窗口。 {|)u).n| ─ 点击运行按钮开始优化。 2(SK}<X R1.No_`PHq
*]uo/g K5X,J/n optiSLang –优化结果 .1F(-mLd cspO5S># 优化结果 [Y@?l]& | |