摘要
AFq~QXmr) Tr_w]'
-WY<zJ 0pZ4BZdT| 现代
光学系统的
优化一般会涉及到大量的
参数,例如:优化
光栅时不仅需要考虑光栅的几何参数,还有所需的入射方向。随着参数数量的大量增加,优化越来越具有挑战性。对于这种情况,
VirtualLab Fusion提供了与Dynardo的
optiSLang软件的接口,可以使用不同的高级优化算法。
()Y~Q(5ji NxkGOAOE VirtualLab Fusion和optiSLang的界面
_~'=C#XI) |)IlMG VirtualLab Fusion是一种灵活且可定制的建模工具平台,可以
仿真复杂的光学装置,例如:将一组平面波耦合入光波导。
%:M^4~dc ty8q11[8 GoJ.&aH $ W\>fh&!) optiSLang是一种包含各种高级工具的软件平台,包括敏感度分析、多元和多学科优化、鲁棒性评估、可靠性分析和鲁棒设计优化。
4-l8,@9 两种软件平台的结合使得例如智能光波导耦合等高级光栅结构变为可能。
AuvkecuIh G4Q[Th VirtualLab Fusion – 光学装置初始化
.eS<Dbku< i[O& )N,c 初始装置
ncZ+gzK|" ─ 一般来说,在VirtualLab中定义的
光学系统都可以使用optiSLang进行优化。
~Q Oe## ─ 该例中的光学系统包含了平面波
光源和用于周期性介质的波导耦合探测器。
zG }@0 e6`Jbu+J<f 8+~
>E '*Z1tDFS VirtualLab Fusion – 波导耦合探测器
`"Jj1O@ LGq'WU31:) 波导耦合探测
I5X|(0es ─ 波导耦合探测器是一种特殊工具,用以探测某个周期性结构以特定角度范围入射的效率。
2bv=N4ly ─ 可以从探测器的编辑对话框中的目录定义或加载周期性结构。
U&g@.,Y# 1D7nkAy h&M{]E9= 3$9s\<j VirtualLab Fusion – 波导耦合探测器
>f|||H}Snw 波导耦合探测
034iK[ib" ─ 该例中使用了倾斜光栅。
'50OgF' ])[[ V!1 t=BUN sZ3KT& VirtualLab Fusion – 波导耦合探测器
u0}vWkn\4 波导耦合探测
sv2A-Dld ─ 该例中使用了倾斜光栅。
mu\6z_e s%vis{2 M=8.Bp|Ye v3*_9e VirtualLab Fusion – 波导耦合探测器
2+RUTOv/d |O{m2Fi 波导耦合探测
~G)S
─ 输入光源的入射角度范围在探测器编辑对话框中指定。
YC*"Thuu ─ 通过最小和最大笛卡尔坐标系角度alpha和beta与它们的采样点数定义。
,bZL C 3#WT.4k ZAW^/bo< df*#!D7oz VirtualLab Fusion – 波导耦合
OstQqV%@ 0XOp3 波导耦合探测
nB_?ckj, ─ 可以从探测得到的效率计算平均值和均匀对比度,并在探测器结果标签页中给出。
Hf%@3X ─ 作为结果,探测器可以用于评估在特定角度范围内的周期性结构。
u^^vB\"^ k
9_`(nx pD8+ 4;A 9d>-MX' VirtualLab Fusion – 输出LPD至OPtiSLang
H/"-Z;0{ l?\jB\, 输出LPD至OPtiSLang
PoHg,n] ─ File→Export→Export to optiSlang Project
`oAW7q)~ D+#E-8 3Lfqdqj VirtualLab Fusion – 输出LPD至OPtiSLang
%7QV&[4! gLb`pCo/ 输出LPD至OPtiSLang
kT|dUw9G ─ File→Export→Export to optiSlang Project
#"}JdBn ─ 输出LPD文件,并产生输入至optiSLang的必要光学装置文件。
2my_ ;!6T[ [ieI;OG; 9,c(ysv" k}S :RK VirtualLab Fusion – 输出LPD至OPtiSLang
7( #:GD j SHk{T!J 输出LPD至OPtiSLang
Z/G
ev"p ─ 在输出对话框窗口。
gBd]B03 可定义参数空间,并包含了参数的变化范围。
y3vdUauOn 可以选择保存到的输出文件夹。
K>
%Tq 可以指定
模拟引擎,用于分析。
adlV!k7RG <3L5"77G6 We)xB "H2EL}3/] optiSLang – 初始化优化
Lk|hQ
'"`IC\N^ 设置求解器系统
HsxVZ.dS ─ File→New project…
Yh7rU?Gj O],T,Z?z ] ;KJ6 3W V"U optiSLang – 初始化优化
OwuE~K7b{ Z~GL5]S 设置求解器系统
<xup'n^7C ─ 继续,拖动求解器(Solver)向导到场景(Scenery)窗口。
+u.1 ;qF ─ 打开了一个对话框,列出了几种求解器(Solver)范例。
fAF1"4f ─ 求解器(Solver)范例中必须选择VirtualLab。
6o^,@~:R o5d%w-' .b_)%jd x optiSLang – 初始化优化
X3(tuqmi .n TwPrG 设置求解器系统
9X[kEl ─ 然后会弹出文件对话框,必须打开VirtualLab输出的system.lpd文件。
84$nT>c vp1941P (XVw"m/ye =pr`' optiSLang – 初始化优化
`Nv=B1 >u>5{4 参数化的求解器系统
"33Fv9C#bK ─ 参数化的求解器系统包含相应的VirtualLab文件和两个含有参数和结果的XML文件,用于定义优化函数。
C,wL0Yj[ ─ 请务必保存计划。
hZdoc< 90Pl$#cb2 H[m:0eF'5 p5Z"|\ optiSLang – 初始化优化
+ndaLhj' ksc;X$f&4 参数化的求解器系统
svsq g{9z ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。
v>:Ur}u!D fJ5iS 2$9odD<r ]"r&]qx7 optiSLang – 初始化优化
^"2i tI]Q%S, 参数化的求解器系统
,%6P0#- ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。
|<HPn4
,X ─ 通过双击结果(Result)设计标签页中的参数化(Parametric)求解器系统窗口,可以检查参数和结果。
m];]7uB5= u&^b~#T jGJLSEe_ C](f>)Dz
/ optiSLang –设置优化
\?w2a$?6w k@\ iGqo 参数化的求解器系统
VQ"hUX8 ─ optiSLang可以进行多目标函数的光学系统优化。
kC WEtbz1 ─ 这可以在参数化(Parametric)求解器系统配置的判据(Criteria)标签页中定义。
R}'bP 3("_Z% ;i8g41qjF 81](T< optiSLang –设置优化
%u? ># 8N!b>?? 参数化的求解器系统
=w;F<M|Y ─ 可以通过拖动均匀化对比度(Uniformity Contrast)到目标最小化(Objective Minimize)判据中定义第一目标函数。
[V^WGW2oY ─ 因此优化算法会尽可能地使均匀度对比最小化。
vmi+_] X]'{(?Ch |)nZ^Cc ydFD!mO optiSLang –设置优化
[6 pD 5BWH-2HsB 参数化的求解器系统
#~#R- ─ 可以通过拖动平均值(Mean)到目标最小化(Objective Maximize)判据中定义第二目标函数。
+vvv[ ─ 因此优化算法会尽可能地使平均效率最大化。
ztnFhJ<a$ ─ 这步操作被称为多目标优化。
wi;Br[d @"hb) 8ng Ed"h16j?z F{Z~ R
optiSLang –设置优化
O|\J}rm' g@rb 优化向导
YT8vP~ ─ 下一步可以通过拖放来使用优化向导。
FFV `P ,eOB(?Ku =V-A@_^!c mN~ci 0 optiSLang –设置优化
?<V?wsp YHkn2]^#A 优化向导
$RYa6"` ─ 第一步,提供了各种系统参数,包括其指定的值范围。
V\{clJ\U ─ 此外,optiSLang提供了一个可视化的值范围,其中标出了初始值。
e7@ojOQ% ─ 然后点击下一步。
H+1-] 'g` >go,K{cK6 `q?8A3A optiSLang –设置优化
->sm+H-* (gy#js# 优化向导
U@g4w!$r ─ 第二步,如果在参数化的求解器系统中没有指定优化条件,则此时可以指定。
Jzj1w}?H ─ 也可以从其他文档中输入条件。
JF # #
[O ─ 然后点击下一步。
pczug-nB I2TaT(e\ c0PIc^R(@ Kw-gojZ optiSLang –设置优化
=5Q]m6-SgV ?>hPO73{ 优化向导
y603$Cv ─ 第三步,选择优化方法。
@<&5J7fb ─ optiSLang提供了类似于红绿灯的建议形式来选择合适的方法:
4NGA/
G 红:不适用
>{N9kWY 黄:适用
*vflscgt 绿:推荐
:QpuO1Gu ─ 该例中推荐使用进化算法。
~5_Ad\n9 ─ 然后点击下一步。
{/"2Vk<H8 w,w{/T+B hakKs.U|[ g,}_G3[j0m optiSLang –设置优化
HIQ_%L4] " 7!;KHc 优化向导
qm./|#m> ─ 然后,需要指定一些附加选项。
IAYR+c ─ 建议在算法运行期间显示后期处理选项,以便在优化运行期间访问结果数据。
"^4_@ oo ─ 然后点击结束。
G;&-\0>W m6TNBX BbW^Wxd3 uv=.2U46 optiSLang –进化算法的高级设置
iTFdN}U %70~M_ 高级设置
eAXc:222 ─ 双击创建优化,可以调整优化算法的详细参数。
"l*Pd$sr TcIcS]w% !_`&Wks optiSLang –进化算法的高级设置
2Or'c`| |zR8rqBX; 高级设置
{XNREjhm ─ 双击创建优化,可以调整优化算法的详细参数。
3^R&:|, ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。
$>GgB` Y,WuBH ?3*l{[@J 6I1,:nLL< optiSLang –进化算法的高级设置
'SCidN(n v5By :z 高级设置
/4c\K-Z; ─ 双击创建优化,可以调整优化算法的详细参数。
QrfG^GID ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。
L{hnU7sY ─ 在标签页“其他”中,提供了一些预定义的参数,适用于大部分优化。(例如“EA 10000”)
h!&prYx $UgA0]qn LNrX;{ Z h(M#f7'~& optiSLang –进化算法的高级设置
@\0Eu212 ux_Mrh' 高级设置
I2 j}Am ─ 此外,作为附加选项,可以调整optiSLang是否自动保存。
2Tfz=7h$ ─ 默认情况下,在计算每个设计迭代后,项目会自动保存。
:X.b}^ Z( ─ 特别是对于计算时间短的设计,这会产生大量开销并减慢优化速度。
ZkA U17f ─ 因此,建议将自动保存选项设置为每50或100个完成的设计后保存。
CACTE
BDq%'~/^ Cz72?[6 &$]vh optiSLang –设计计算的并行化
(>VX-Y/ `|,`QqDQ 并行化设置
[* @5\NWR} ─ 一些优化算法允许并行计算设计。
p /#$io ─ 例如,在进化算法的情况下,一代的所有成员设计的参数是已知的,因此可以同时计算以减少计算时间。
nx8a$vI-TY ─ 为了允许并行计算,必须启用多个求解器。
{.QEc0- ─ 通过双击VirtualLab求解器,可以找到此附加选项。
c:-!'l$ ! ─ 建议数量为CPU的一半到全部真实核心之间,具体取决于每个设计的计算并行化。
|_`E1Y}} et,f_fd7v hg+X(0 }"=AG optiSLang –开始优化
wm)#[x # Ys,{8Y,7 运行优化
&K/ya7 ─ 单击场景(Scenery)中的进化算法(Evolutionary Algorithm)窗口。
qxFB%KqU ─ 点击运行按钮开始优化。
#;%JT '[C.|)" fRtUvC-#H }RHn)}+ optiSLang –优化结果
m9" n4a|: j:E<p_T 优化结果
QAvir%Y9Q ─ 优化结束后,可以在新窗口中得到结果。
VJdIHsI 1_\;- !t mf}O-Igte po$ /7 optiSLang –优化结果
$:
]o]a 6`]$qSTS 优化结果
i?fOK_d ─ Pareto2D图以点云的形式同时给出了目标值、均匀度对比和平均效率。
zipS
]YD ─ 用户能够为他的应用选择最合适的设计。
[k6nW:C ─ 在这个例子中,选择了设计no.8842,具有~16%的均匀度对比和~20%的平均效率。
,Fi>p0bz 9G+V;0Q Dh5X/y $OP7l>KZY optiSLang –优化结果
DdVF, Gm(b/qDDe 优化结果
Xtp"QY
p ─ 每个设计都存储在子文件夹〜Optimization.opdEvolutionary_Algorithm中的optiSLang项目目录中。
1RK=,Wx ─ 此目录中的每个文件夹(由设计编号命名)包含将设计再次导入VirtualLab所需的所有文件。
6xZ=^;H |b*?
qf <