| infotek |
2024-09-28 08:02 |
VirtualLab Fusion中运用optiSLang进行光栅优化
摘要 6EY\
6(7
56
!}}
)f/ <mJ8~ 现代光学系统的优化一般会涉及到大量的参数,例如:优化光栅时不仅需要考虑光栅的几何参数,还有所需的入射方向。随着参数数量的大量增加,优化越来越具有挑战性。对于这种情况,VirtualLab Fusion提供了与Dynardo的optiSLang软件的接口,可以使用不同的高级优化算法。 SEnr"} 8A0a/
7Lj VirtualLab Fusion和optiSLang的界面 z}SJ~WY'[ y=Eb->a){ VirtualLab Fusion是一种灵活且可定制的建模工具平台,可以仿真复杂的光学装置,例如:将一组平面波耦合入光波导。 _ow7E\70 -I4@6vE,
zZd.U\"2 oHfr
glGX optiSLang是一种包含各种高级工具的软件平台,包括敏感度分析、多元和多学科优化、鲁棒性评估、可靠性分析和鲁棒设计优化。 `j3 OFC{7E 两种软件平台的结合使得例如智能光波导耦合等高级光栅结构变为可能。 {*;K>%r\o +L=Xc^ VirtualLab Fusion – 光学装置初始化 Ro{xprE1 ;Mmu} 初始装置 jcC"vr'u| ─ 一般来说,在VirtualLab中定义的光学系统都可以使用optiSLang进行优化。 jjrE8[ ─ 该例中的光学系统包含了平面波光源和用于周期性介质的波导耦合探测器。 Kf?:dF Xtz29
07=I&Pum CY=lN5!J VirtualLab Fusion – 波导耦合探测器 M:.+^.h $J<WFDn9 波导耦合探测 \R9izuc9 ─ 波导耦合探测器是一种特殊工具,用以探测某个周期性结构以特定角度范围入射的效率。 3;jxIo$, ─ 可以从探测器的编辑对话框中的目录定义或加载周期性结构。 %INkuNa8\ e)s
l
@[v,q_^8 +mft VirtualLab Fusion – 波导耦合探测器 k{{
Y2B?C 波导耦合探测 e1b?TF@lz ─ 该例中使用了倾斜光栅。 0i5S=L`j /j3",N+I
B&7:=t,m( :^paI VirtualLab Fusion – 波导耦合探测器 "3 ++S 波导耦合探测 ;Y8>? ─ 该例中使用了倾斜光栅。 ?x 0gI
r#oJch=
z&c} /]0SF_dZ VirtualLab Fusion – 波导耦合探测器 @+nCNXK PZ#up{[o 波导耦合探测 b+gu<## ─ 输入光源的入射角度范围在探测器编辑对话框中指定。 _KtV`bF ─ 通过最小和最大笛卡尔坐标系角度alpha和beta与它们的采样点数定义。 b)#rUI|O >\~Er@
T#6g5Jnsp g[O VirtualLab Fusion – 波导耦合 }(DH_0 \N-3JO Vy 波导耦合探测 2 ( I4h[ ─ 可以从探测得到的效率计算平均值和均匀对比度,并在探测器结果标签页中给出。 _u;pD- ─ 作为结果,探测器可以用于评估在特定角度范围内的周期性结构。 3(t3r::& Wt@hST
v>nBdpjXh E
?bqEW( VirtualLab Fusion – 输出LPD至OPtiSLang .x] pJ9 0Ntvd7"`} 输出LPD至OPtiSLang _OJfd ─ File→Export→Export to optiSlang Project PJ&L7
Dk$<fMS,7c \b6{u6?+ VirtualLab Fusion – 输出LPD至OPtiSLang O#):*II`9 *_J{_7pwe 输出LPD至OPtiSLang a[z$ae7 ─ File→Export→Export to optiSlang Project j+dQI_']x ─ 输出LPD文件,并产生输入至optiSLang的必要光学装置文件。 N(yd<Mw V?0IMc
rH,@"(p\ 4^YE*6z VirtualLab Fusion – 输出LPD至OPtiSLang G; W2Z, TF!v ,cX 输出LPD至OPtiSLang ")txFe ─ 在输出对话框窗口。 O^6anUV0 可定义参数空间,并包含了参数的变化范围。 ? EHheZ{ 可以选择保存到的输出文件夹。 F#)bGi 可以指定模拟引擎,用于分析。 f9},d1k \RPwSx
UU[z\^w| E &%@O V:C optiSLang – 初始化优化 -&]!ig5v Jd v;+HN[ 设置求解器系统 ~Ma r ─ File→New project… \G)F* x H=15JY1W
|6^%_kO!| cPAR.h,b? optiSLang – 初始化优化 <-N2<sl KUm?gFh 设置求解器系统 goF87^M ─ 继续,拖动求解器(Solver)向导到场景(Scenery)窗口。 v2:i'j6 ─ 打开了一个对话框,列出了几种求解器(Solver)范例。 zA.0Sm ─ 求解器(Solver)范例中必须选择VirtualLab。 wsH _pF u,d5/`E
|</) 6r optiSLang – 初始化优化 hOj+z? XpE847!soL 设置求解器系统 Ks6\lpr ─ 然后会弹出文件对话框,必须打开VirtualLab输出的system.lpd文件。 dVHbIx ;y1/b(t
H=f|X<8 IPYwUix optiSLang – 初始化优化 vlEW{B;)Z 5E~^-wX 参数化的求解器系统 <m1v+cnqo ─ 参数化的求解器系统包含相应的VirtualLab文件和两个含有参数和结果的XML文件,用于定义优化函数。 |KS,k|). ─ 请务必保存计划。 XGC\6?L~ Vq{3:QBR
0jjtx'F bJD$!*r\%! optiSLang – 初始化优化 |Nj6RB7 m~Q24Z]!'& 参数化的求解器系统 q}VdPt>X/ ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 ~gMt
U v0E6i!D/
fxr#T'i qnj'*]ysBC optiSLang – 初始化优化 6W=V8 S
>CKm:7 参数化的求解器系统 w(
XZSE ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 k>.8 lc\ ─ 通过双击结果(Result)设计标签页中的参数化(Parametric)求解器系统窗口,可以检查参数和结果。 Rc1k_fZ} 6Xm'^T
/"u37f?[^ Iapz,nuE optiSLang –设置优化 /"j3B\`? cY_ke 参数化的求解器系统 p:Lmf8EI ─ optiSLang可以进行多目标函数的光学系统优化。 "UNFB3 ─ 这可以在参数化(Parametric)求解器系统配置的判据(Criteria)标签页中定义。 +)e|> emnT;kJ>
+s"6[\H1d >,]8iMh optiSLang –设置优化 <EN9s (4A'$O2 参数化的求解器系统 DR:$urU$ ─ 可以通过拖动均匀化对比度(Uniformity Contrast)到目标最小化(Objective Minimize)判据中定义第一目标函数。 zB`woI28 ─ 因此优化算法会尽可能地使均匀度对比最小化。 tLfhW1" a6e{bAuq
]6)u$4X6$ GjHR.p?- optiSLang –设置优化 PMB4]p%o K SOD( 参数化的求解器系统 z^Ikb(KC ─ 可以通过拖动平均值(Mean)到目标最小化(Objective Maximize)判据中定义第二目标函数。 /YF:WKr2 ─ 因此优化算法会尽可能地使平均效率最大化。 N~mr@rXC ─ 这步操作被称为多目标优化。 G`>]ng :\His{%
TxP+?1t %|D)%|Z optiSLang –设置优化 p T 8?z u%)gnj_ 优化向导 p.=9[` ─ 下一步可以通过拖放来使用优化向导。 'Uf?-t*LT@ k<^M >` $
R5 4[U e:9EP, optiSLang –设置优化 ~!r;?38V` "yaxHd 优化向导 Q,xL8i
M, ─ 第一步,提供了各种系统参数,包括其指定的值范围。 Wa<<"x$ ─ 此外,optiSLang提供了一个可视化的值范围,其中标出了初始值。 f;zNNx<
; ─ 然后点击下一步。 ~,HFd`
+C{-s K\F0nToJ. optiSLang –设置优化 :Tg+)c Z 'YNdrvz 优化向导 +ZOiL[rS ─ 第二步,如果在参数化的求解器系统中没有指定优化条件,则此时可以指定。 IL %]4, ─ 也可以从其他文档中输入条件。 X&qx4DL ─ 然后点击下一步。 P)=.Du) ]zSFX
=~(S
s.}K?)mH e}e8WR=B optiSLang –设置优化 -Qn7+?P LEgP-sW 优化向导 +&`W\?.~ ─ 第三步,选择优化方法。 &oS$< ─ optiSLang提供了类似于红绿灯的建议形式来选择合适的方法: m,E$KHt ( 红:不适用 .9qK88fU R 黄:适用 r<e%;S 绿:推荐 St-uE|8 ─ 该例中推荐使用进化算法。 ^QRg9s,T< ─ 然后点击下一步。 y~
=H`PAE J/?Nf2L4
Bvn3:+(47 $>XeC}"x68 optiSLang –设置优化 e{P v:jl WD[eoi 优化向导 c[dzO.~ ─ 然后,需要指定一些附加选项。 C8}:z\A_@Z ─ 建议在算法运行期间显示后期处理选项,以便在优化运行期间访问结果数据。 7C{ yNX# ─ 然后点击结束。 fSuykbZ .gRj^pu
A IP~A]T l]R0r{{ optiSLang –进化算法的高级设置 zN4OrG0 $RaN@& Wm 高级设置 5yy:JTAH5 ─ 双击创建优化,可以调整优化算法的详细参数。 `
R6`"hx$ k&]nF,f
qos7u91z optiSLang –进化算法的高级设置 !Lf<hS^ x%G3L\5 高级设置 k"(]V ─ 双击创建优化,可以调整优化算法的详细参数。 $<^t][{ ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 9)q3cjP{< Tu#< {'1$
4>hHUz[_ i--t
?@# optiSLang –进化算法的高级设置 cj/`m$ \c=I!<9 高级设置 Ux[<g%F" ─ 双击创建优化,可以调整优化算法的详细参数。 M?$[WS ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 ~&?bU]F ─ 在标签页“其他”中,提供了一些预定义的参数,适用于大部分优化。(例如“EA 10000”) *v>ZE6CL 2@&r!Q|1vR
P#,u9EIJ "s*-dZO optiSLang –进化算法的高级设置 vT'Bs;QR Sqo+cZ 高级设置 -4a9 BE". ─ 此外,作为附加选项,可以调整optiSLang是否自动保存。 WSkGVQu ─ 默认情况下,在计算每个设计迭代后,项目会自动保存。 'rD6MY ─ 特别是对于计算时间短的设计,这会产生大量开销并减慢优化速度。 O !L`0
=%c ─ 因此,建议将自动保存选项设置为每50或100个完成的设计后保存。 '|C3t!H` kI{DxuTad
tZrc4$D- 3FEJ
9ZyG optiSLang –设计计算的并行化 kI\m0];KnQ J3K=z 并行化设置 hvd}l8 ─ 一些优化算法允许并行计算设计。 S&op|Z)1 ─ 例如,在进化算法的情况下,一代的所有成员设计的参数是已知的,因此可以同时计算以减少计算时间。 l\HdB"nT ─ 为了允许并行计算,必须启用多个求解器。 T(4d5 fY ─ 通过双击VirtualLab求解器,可以找到此附加选项。 a^|DD#5 ─ 建议数量为CPU的一半到全部真实核心之间,具体取决于每个设计的计算并行化。 (!os&/", -EjXVn! vQ
\{,TpK. H"Pb)t optiSLang –开始优化 gg;r;3u NWBYpGZx 运行优化 [|u^:&az ─ 单击场景(Scenery)中的进化算法(Evolutionary Algorithm)窗口。 ^rkKE
dd ─ 点击运行按钮开始优化。 L+%"ew TOYK'|lwM
WeI+|V$ v0^9"V:y
optiSLang –优化结果 &J[a.:.. #Ondhy%h[ 优化结果 Nd_fjB ─ 优化结束后,可以在新窗口中得到结果。 4JSPD#%f +Q*`kg'
15$xa_w}L
97}]@xN= optiSLang –优化结果 B{-7 'm%{Rz>j 优化结果 WA{igj@\ ─ Pareto2D图以点云的形式同时给出了目标值、均匀度对比和平均效率。 F /b`[ ─ 用户能够为他的应用选择最合适的设计。 eE;tiX/ ─ 在这个例子中,选择了设计no.8842,具有~16%的均匀度对比和~20%的平均效率。 $|4C]Me ( /Y Kd [RQ
@u3`lhUcT I0=_=aZO( optiSLang –优化结果 >%JPgr/
8 y!e]bvN 优化结果 *pl6 V| ─ 每个设计都存储在子文件夹〜Optimization.opdEvolutionary_Algorithm中的optiSLang项目目录中。 QaX.Av ─ 此目录中的每个文件夹(由设计编号命名)包含将设计再次导入VirtualLab所需的所有文件。 A=CeeC]} -DDA b(2*
bP,<^zA|X mp|pz%U optiSLang –导入优化结果 ]wQ!ZG?)
Zw]`z*,yRA 导入优化结果 QbU5FPiN ─ 要导入感兴趣的设计,使用Import optiSLang Results功能,选择相应的设计文件夹。 $o6/dEKQ ─ 最后,可以在VirtualLab中进一步分析导入的LPD。 Iw1Y?Qia ^}3^|jF
x"W~m.y$h ]]xKc5CT 总结 VFT@Ic#] WxdQ^#AE 作为总结,下表给出了初始和优化后的设计之间的光栅参数和性能标准的比较。 wak 26W>I3
\?bV\/GBR
|
|