"0uM%*2 摘要 NTD1QJ sQ340! A
yr, $m)gfI]9 现代
光学系统的
优化一般会涉及到大量的
参数,例如:优化
光栅时不仅需要考虑光栅的几何参数,还有所需的入射方向。随着参数数量的大量增加,优化越来越具有挑战性。对于这种情况,VirtualLab Fusion提供了与Dynardo的optiSLang软件的接口,可以使用不同的高级优化算法。
I5q$QQK L{P'mG=4 VirtualLab Fusion和optiSLang的界面 ZM})l9_o" dVYY:1PS VirtualLab Fusion是一种灵活且可定制的建模工具平台,可以
仿真复杂的光学装置,例如:将一组平面波耦合入光波导。
p@kRo#~l ~N i '5Yzo^R; -N% V5 TN optiSLang是一种包含各种高级工具的
软件平台,包括敏感度分析、多元和多学科优化、鲁棒性评估、可靠性分析和鲁棒设计优化。
u.|%@ 两种软件平台的结合使得例如智能光波导耦合等高级光栅结构变为可能。
NuPlrCy; +Eh.PWEe VirtualLab Fusion – 光学装置初始化 nKzm.D gt_ 41Z@_J|& 初始装置
Cyd/HTNh< ─ 一般来说,在VirtualLab中定义的
光学系统都可以使用optiSLang进行优化。
pJvPEKN ─ 该例中的光学系统包含了平面波
光源和用于周期性介质的波导耦合探测器。
r@}`Sw]@ iAZ8Y/
t1YB >#$SaG! VirtualLab Fusion – 波导耦合探测器 m=sEB8P ~9 .=t ' 波导耦合探测
W]#w4Fp! ─ 波导耦合探测器是一种特殊工具,用以探测某个周期性结构以特定角度范围入射的效率。
{QM rgyQE ─ 可以从探测器的编辑对话框中的目录定义或加载周期性结构。
w")
G:K uUg;v/: %Y%r2 =X?fA, VirtualLab Fusion – 波导耦合探测器 iq*im$9J 波导耦合探测
L4Zt4Yuw ─ 该例中使用了倾斜光栅。
I{OizBom ~*7$aj QZ l#^-on <HoCt8>U VirtualLab Fusion – 波导耦合探测器 !{r2`d09n) 波导耦合探测
udqrHR5 ─ 该例中使用了倾斜光栅。
9tJ0O5 !nSa4U,$w< >9!J?HA r@3-vLI!u VirtualLab Fusion – 波导耦合探测器 9 Gd6/2
I8? 波导耦合探测
T4]2R ─ 输入光源的入射角度范围在探测器编辑对话框中指定。
O3@DU#N&s ─ 通过最小和最大笛卡尔坐标系角度alpha和beta与它们的采样点数定义。
}yK7LooM a*y9@RC} ;.uYWP|9 It[51NMal VirtualLab Fusion – 波导耦合 ?{qUn8f2 8In\Jo$|q> 波导耦合探测
4HGTgS ─ 可以从探测得到的效率计算平均值和均匀对比度,并在探测器结果标签页中给出。
7.<jdp ─ 作为结果,探测器可以用于评估在特定角度范围内的周期性结构。
8{jXSCP# ;&&<zWq3h %`C*8fc& UE'=9{o` VirtualLab Fusion – 输出LPD至OPtiSLang xT"V9t[f ?YW~7zG 输出LPD至OPtiSLang
`f; w ─ File→Export→Export to optiSlang Project
t`z "=S d5l42^Z h p|v?3( VirtualLab Fusion – 输出LPD至OPtiSLang D6Ad"|Z D!~ Y"4< 输出LPD至OPtiSLang
'nq=xi@RC ─ File→Export→Export to optiSlang Project
oh8:1E,I ─ 输出LPD文件,并产生输入至optiSLang的必要光学装置文件。
)$:1e)d DzGUKJh6 _/LGGt4&% ekhv.;N~ VirtualLab Fusion – 输出LPD至OPtiSLang *)Qv;'U=rn %*gf_GeM 输出LPD至OPtiSLang
:cC$1zv@ ─ 在输出对话框窗口。
3 09
pl 可定义参数空间,并包含了参数的变化范围。
PT2;%=f 可以选择保存到的输出文件夹。
0 #8 可以指定
模拟引擎,用于分析。
"#iJ/vy 0SL{J*S4[# 49MEGl;K0\ @PvO;]]% optiSLang – 初始化优化 :/T\E\Qr zL
yI|%KH 设置求解器系统
XYo,5- ─ File→New project…
5*$yY-A xG/Q%A LDjtkD.r 5?-HQoT)G optiSLang – 初始化优化 w~*@TG Ocdy;|& 设置求解器系统
M1kA- Xr ─ 继续,拖动求解器(Solver)向导到场景(Scenery)窗口。
.gJ2P?
─ 打开了一个对话框,列出了几种求解器(Solver)范例。
KyyRHf5 ─ 求解器(Solver)范例中必须选择VirtualLab。
""-wM~^D 0VNLhM(LM X+;[Gc}(W optiSLang – 初始化优化 [
\_o_W TwkT|Piw
S 设置求解器系统
DO:,PZX ─ 然后会弹出文件对话框,必须打开VirtualLab输出的system.lpd文件。
DC8#b`j 0#]fEi cT'Bp)a (GmBv optiSLang – 初始化优化 \(Sly&gL C^)Imr 参数化的求解器系统
8S1@,O, ─ 参数化的求解器系统包含相应的VirtualLab文件和两个含有参数和结果的XML文件,用于定义优化函数。
x4^nT=?6_ ─ 请务必保存计划。
<<>+z5D+ fa/S!%}fO Ooz,?wU6 E'LI0fr optiSLang – 初始化优化 aS [[
AL b&rBWp0# 参数化的求解器系统
B#V""[Y9 ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。
#kC~qux^ rwq ;_cTrjMv\ 8Rj5~+5 optiSLang – 初始化优化 *igmi9A $@z77td3 参数化的求解器系统
?6:qAFw ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。
P~\rP6
; ─ 通过双击结果(Result)设计标签页中的参数化(Parametric)求解器系统窗口,可以检查参数和结果。
ZexC3LD" ZE=sw}= *J-pAN
jR/Gd01) optiSLang –设置优化 Ugri _ N
)Z>]&5 参数化的求解器系统
gRY#pRT6d ─ optiSLang可以进行多目标函数的光学系统优化。
v}$Q ─ 这可以在参数化(Parametric)求解器系统配置的判据(Criteria)标签页中定义。
c]9gf\WW |A3"Jc.2o ,t`V^(PEq gnp.!- optiSLang –设置优化 pQa51 nc MLdwf}[ 参数化的求解器系统
=z# trQ{ ─ 可以通过拖动均匀化对比度(Uniformity Contrast)到目标最小化(Objective Minimize)判据中定义第一目标函数。
9kD#'BxC ─ 因此优化算法会尽可能地使均匀度对比最小化。
oXG_6E!^ Usf@kVQ doanTF4Da .\XRkr'- optiSLang –设置优化 E22o-nI?1 |Rfj
0+ 参数化的求解器系统
WESD^FK ─ 可以通过拖动平均值(Mean)到目标最小化(Objective Maximize)判据中定义第二目标函数。
UPfE\KN+p# ─ 因此优化算法会尽可能地使平均效率最大化。
/]U$OP*0 ─ 这步操作被称为多目标优化。
5sY$ eHgr"f*7
/!Rva" #&|"t<} optiSLang –设置优化 >j?5?J" NN4Z:6W5 优化向导
45JL{YRN ─ 下一步可以通过拖放来使用优化向导。
s$#64"F t1Ts!Q2 hCQOwk# +~"IF+TRH optiSLang –设置优化 (:bf m v^&HZk=( 优化向导
Mk*4J]PP ─ 第一步,提供了各种系统参数,包括其指定的值范围。
e i=
4u' ─ 此外,optiSLang提供了一个可视化的值范围,其中标出了初始值。
FF8jW1 ─ 然后点击下一步。
:BxO6@>Xc uc,>VzdB ?T/4
= S|=)^$: optiSLang –设置优化 b~^'P .BPd06y 优化向导
K28L(4 ) ─ 第二步,如果在参数化的求解器系统中没有指定优化条件,则此时可以指定。
oCCtjr ─ 也可以从其他文档中输入条件。
*B&P[n ─ 然后点击下一步。
"(mJupI .<t {saToU ]O|>nTa iF`_-t/k optiSLang –设置优化 0N1t.3U 29:2Xu i 优化向导
["nWIs[h ─ 第三步,选择优化方法。
f,O10`4s ─ optiSLang提供了类似于红绿灯的建议形式来选择合适的方法:
Xq1#rK( 红:不适用
I[%IW4jJ 黄:适用
=o(}=T>:" 绿:推荐
@*hv|zjs ─ 该例中推荐使用进化算法。
Qy:yz ─ 然后点击下一步。
~|KqG X0j\nXk ( %7V rRevyTs optiSLang –设置优化 v J0v6\ 0j$=KA 优化向导
]:f.=" ─ 然后,需要指定一些附加选项。
4<s;xSCL ─ 建议在算法运行期间显示后期处理选项,以便在优化运行期间访问结果数据。
w^L`" ─ 然后点击结束。
Uv59 XF$ IEm?'o: Cx;it/8+ Xf;!w:u optiSLang –进化算法的高级设置 yl>^QMmo i<S\x 高级设置
m !:F/?B ─ 双击创建优化,可以调整优化算法的详细参数。
9?Bh8%$ UW":&`i (B` NnL$ optiSLang –进化算法的高级设置 D?ic~-& 7UBW3{d/u5 高级设置
l4kqz.Z-g ─ 双击创建优化,可以调整优化算法的详细参数。
U$D:gZ ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。
*e ffDNE! <w&'E6mU 9{u/|,rq1 +!@xH]; optiSLang –进化算法的高级设置 -AnJLFY 4 4QW&qL!( 高级设置
mTH[*Y, ─ 双击创建优化,可以调整优化算法的详细参数。
~JZLWTEe ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。
0uKm)t/ ─ 在标签页“其他”中,提供了一些预定义的参数,适用于大部分优化。(例如“EA 10000”)
i8<5|du&? <c@dE +
o< 7* SMvlEj^ optiSLang –进化算法的高级设置 a\-5tYo`u fwtsr>SV 高级设置
R]od/u/$ ─ 此外,作为附加选项,可以调整optiSLang是否自动保存。
+4t
\j<T ─ 默认情况下,在计算每个设计迭代后,项目会自动保存。
}Bh\N5G% ─ 特别是对于计算时间短的设计,这会产生大量开销并减慢优化速度。
VIWH~UR)&! ─ 因此,建议将自动保存选项设置为每50或100个完成的设计后保存。
CEk[&39" #d8]cm= ;Qd'G7+ Q]/g=Nn
^~ optiSLang –设计计算的并行化 v-$X1s j.Y!E<e4] 并行化设置
gd3MP^O1 ─ 一些优化算法允许并行计算设计。
@ &c@ ─ 例如,在进化算法的情况下,一代的所有成员设计的参数是已知的,因此可以同时计算以减少计算时间。
\U]<HEc^ ─ 为了允许并行计算,必须启用多个求解器。
M|{KQ3q:9 ─ 通过双击VirtualLab求解器,可以找到此附加选项。
7T X$ ─ 建议数量为CPU的一半到全部真实核心之间,具体取决于每个设计的计算并行化。
#\~m}O, K0*er -b%' K}.C bAY>o optiSLang –开始优化 1b=\l/2 cL%eP. 运行优化
-}qay@cDt ─ 单击场景(Scenery)中的进化算法(Evolutionary Algorithm)窗口。
mznE Cy ─ 点击运行按钮开始优化。
o)
eW5s,6 Xa8_kv_ =aT8=ihP How:_ Hj optiSLang –优化结果 1iY?t 1g!%ej
jd 优化结果
:)_P7k`>e/ ─ 优化结束后,可以在新窗口中得到结果。
NnZ_x>R 1
xr mmK D5T0o"A 7Il
/+l( optiSLang –优化结果 (>D{"} aj+I+r"~ 优化结果
nNM)rW ─ Pareto2D图以点云的形式同时给出了目标值、均匀度对比和平均效率。
'\7&I