摘要
6xoq;=o mL woi!]m
4[TR0bM% QYQtMb, 现代
光学系统的
优化一般会涉及到大量的
参数,例如:优化
光栅时不仅需要考虑光栅的几何参数,还有所需的入射方向。随着参数数量的大量增加,优化越来越具有挑战性。对于这种情况,
VirtualLab Fusion提供了与Dynardo的
optiSLang软件的接口,可以使用不同的高级优化算法。
ZPHXzi3j P-CB;\ VirtualLab Fusion和optiSLang的界面
2edBQYWd RsW9:*R VirtualLab Fusion是一种灵活且可定制的建模工具平台,可以
仿真复杂的光学装置,例如:将一组平面波耦合入光波导。
BYi)j6" p~2UUmV
G/vC~6x 9AHSs,.t optiSLang是一种包含各种高级工具的软件平台,包括敏感度分析、多元和多学科优化、鲁棒性评估、可靠性分析和鲁棒设计优化。
t|V0x3X 两种软件平台的结合使得例如智能光波导耦合等高级光栅结构变为可能。
C9qJP^F B<7/,d' VirtualLab Fusion – 光学装置初始化
,`32!i DdSSd@,x* 初始装置
MAqLIf<G ─ 一般来说,在VirtualLab中定义的
光学系统都可以使用optiSLang进行优化。
Rrg8{DZhv ─ 该例中的光学系统包含了平面波
光源和用于周期性介质的波导耦合探测器。
]u#JuX S:q$?$
jTb-;4N' {fV}gR2 VirtualLab Fusion – 波导耦合探测器
a{SBCy [BM*oEFPB* 波导耦合探测
T@[! A); ─ 波导耦合探测器是一种特殊工具,用以探测某个周期性结构以特定角度范围入射的效率。
fQ 7vL~E ─ 可以从探测器的编辑对话框中的目录定义或加载周期性结构。
,Q/Ac{C mM/i^zT
G^wtE90 ~ttY(wCV VirtualLab Fusion – 波导耦合探测器
:jEPu3E: 波导耦合探测
\*0yaSQF ─ 该例中使用了倾斜光栅。
I]nHbghcW 3= -pG
ir16 Y[Ltrk{ VirtualLab Fusion – 波导耦合探测器
ZH ,4oF 波导耦合探测
&v!WVa? ─ 该例中使用了倾斜光栅。
&|Pu-A"5~ !k&Q 5s:
Ad$n4Ze AoaN22 VirtualLab Fusion – 波导耦合探测器
xJZ@DR,# 2;`=P5V 波导耦合探测
%7hB&[ 5 ─ 输入光源的入射角度范围在探测器编辑对话框中指定。
2Y!S_Hw8 ─ 通过最小和最大笛卡尔坐标系角度alpha和beta与它们的采样点数定义。
Bi3+)k>u7 LN2D
vuQ%dDxI m~#%Q?_ % VirtualLab Fusion – 波导耦合
C\ZkGX w}R~C 波导耦合探测
5 BtX63 ─ 可以从探测得到的效率计算平均值和均匀对比度,并在探测器结果标签页中给出。
Jb["4X;h ─ 作为结果,探测器可以用于评估在特定角度范围内的周期性结构。
xI*#(!x"G LjB;;&VCn
m~hoE8C$ JUAS$Y VirtualLab Fusion – 输出LPD至OPtiSLang
CjIu[S1% U`|0 jJ 输出LPD至OPtiSLang
cbYLU\! ─ File→Export→Export to optiSlang Project
&w8)* T
ra N)8w}- A'&n5)tb VirtualLab Fusion – 输出LPD至OPtiSLang
9Z5D\yv?H mqff]m 输出LPD至OPtiSLang
@4$\
5%j ─ File→Export→Export to optiSlang Project
X|D!VX>#! ─ 输出LPD文件,并产生输入至optiSLang的必要光学装置文件。
JwnQ0
e )6KMHG
h].~# * BvrB:%_: VirtualLab Fusion – 输出LPD至OPtiSLang
D}C,![ -u!FOD/ 输出LPD至OPtiSLang
C[!MS5 ─ 在输出对话框窗口。
W1B)]IHc 可定义参数空间,并包含了参数的变化范围。
ORXm&z) 可以选择保存到的输出文件夹。
ig LMv+{ 可以指定
模拟引擎,用于分析。
^ci3F<?Q= _p-t<ytnh
SUKxkc( 7pA/ optiSLang – 初始化优化
S [h];eM !+)AeDc:j 设置求解器系统
h:zK(; ─ File→New project…
54-#QIx| +ISz?~8
<s5qy- ~_IHaw$hg optiSLang – 初始化优化
v:Tzv^ ZQ^r`W9_+ 设置求解器系统
-Y
Bd, k3 ─ 继续,拖动求解器(Solver)向导到场景(Scenery)窗口。
G0u LmW70 ─ 打开了一个对话框,列出了几种求解器(Solver)范例。
P}ok*{"J<> ─ 求解器(Solver)范例中必须选择VirtualLab。
KDl_?9E5 0;4t&v7
&[NG]V!Oc optiSLang – 初始化优化
\I"Z2N>^z bl_H4 设置求解器系统
"YdEE\ ─ 然后会弹出文件对话框,必须打开VirtualLab输出的system.lpd文件。
@/ZF` : bY}eUL2i4
Le<wR A;\7|'4 optiSLang – 初始化优化
o?1;<gs .s+aZwTMT 参数化的求解器系统
2C{H$
A,pW ─ 参数化的求解器系统包含相应的VirtualLab文件和两个含有参数和结果的XML文件,用于定义优化函数。
B+^(ktZp@ ─ 请务必保存计划。
1+-_s x+f2GA$
OGl$W>w1 pdJ/&ufh optiSLang – 初始化优化
lWBb4 !l bAKiq}xG%i 参数化的求解器系统
p!k7C&]E ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。
lds-T nhIa175'
Og=*R6i k}
]T;|h] optiSLang – 初始化优化
hx/N1x zC_<(4$-" 参数化的求解器系统
}y9mNT ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。
Y"OG@1V;8 ─ 通过双击结果(Result)设计标签页中的参数化(Parametric)求解器系统窗口,可以检查参数和结果。
"\0v,!@ v1a6?-
h3dsd 0b4R optiSLang –设置优化
It2" x; u,}{I}x_ 参数化的求解器系统
5@^ dgq ─ optiSLang可以进行多目标函数的光学系统优化。
Q{B}ef ─ 这可以在参数化(Parametric)求解器系统配置的判据(Criteria)标签页中定义。
LM&y@"wfm k)TSR5A
fN'HE#W1Xa wywQ<n optiSLang –设置优化
!Hys3AP ?nP*\8 参数化的求解器系统
"M|zv ─ 可以通过拖动均匀化对比度(Uniformity Contrast)到目标最小化(Objective Minimize)判据中定义第一目标函数。
^pJ!isuqu ─ 因此优化算法会尽可能地使均匀度对比最小化。
o]
mD"3_
QtvY v!
z{Mr$%'EY S[7WW$lF optiSLang –设置优化
TEDAb> &ZL3{M 参数化的求解器系统
w`q%#qRk ─ 可以通过拖动平均值(Mean)到目标最小化(Objective Maximize)判据中定义第二目标函数。
H,N)4;F<c ─ 因此优化算法会尽可能地使平均效率最大化。
rXA*NeA3v ─ 这步操作被称为多目标优化。
/4xki_} SRDXfkoI
61xs%kxb.. bQ~j=\[r optiSLang –设置优化
+[5.WC7J (PfqRk1Y 优化向导
0{#8',*}m? ─ 下一步可以通过拖放来使用优化向导。
P;k0W>~k sJ]taY ou
K~22\G` 2 !'A:; optiSLang –设置优化
Q'%PNrN /% kY0 LY 优化向导
gdkwWoN. ─ 第一步,提供了各种系统参数,包括其指定的值范围。
=2@B& ─ 此外,optiSLang提供了一个可视化的值范围,其中标出了初始值。
n5{Xj:} ─ 然后点击下一步。
6 ~>FYX
ATR!7i\| 3Kn_mL3V- optiSLang –设置优化
W^s
;Bi+Nw gB<3-J1R 优化向导
^$t7+g ─ 第二步,如果在参数化的求解器系统中没有指定优化条件,则此时可以指定。
H/Llj.-jg ─ 也可以从其他文档中输入条件。
< P`u} ─ 然后点击下一步。
K# Jk _"W _)\c&.p]f
U*3uq7 bR V+>;L0@ optiSLang –设置优化
HeG)/W?r VO"("7L 优化向导
7e<c$t#H ─ 第三步,选择优化方法。
8cA~R- ─ optiSLang提供了类似于红绿灯的建议形式来选择合适的方法:
z`\F@pX%wC 红:不适用
x:QgjK 黄:适用
Z ,EvQ8i 绿:推荐
G_SG ─ 该例中推荐使用进化算法。
v'BZs ─ 然后点击下一步。
V
=-WYu f aLtdQi
2Y7)WPn 0pbtH8~ optiSLang –设置优化
%DdJ ^qHI Op_RzZP` 优化向导
G>q(iF' ─ 然后,需要指定一些附加选项。
ezMI\r6 ─ 建议在算法运行期间显示后期处理选项,以便在优化运行期间访问结果数据。
?yj6CL(, ─ 然后点击结束。
P><o,s"v e/^=U7:io
AhNq/?Q Q~ L@gWzC~?Q optiSLang –进化算法的高级设置
C?2'+K #b~JDO( 高级设置
46 PoM ─ 双击创建优化,可以调整优化算法的详细参数。
NM06QzE /FIE:Io
mL4] l(U optiSLang –进化算法的高级设置
1n@8Kv \.3D~2cU 高级设置
[h,Q Bz ─ 双击创建优化,可以调整优化算法的详细参数。
n-%s8aaVf ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。
Z"AQp _ >hr{JJe
rp0ZvEX lgb?)= optiSLang –进化算法的高级设置
d.P\fPSD qcN'e.A 高级设置
Q*b]_0Rb ─ 双击创建优化,可以调整优化算法的详细参数。
M6}3wM*4 ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。
1u6^z ─ 在标签页“其他”中,提供了一些预定义的参数,适用于大部分优化。(例如“EA 10000”)
}|XtypbL DrO2 y
>2Kh0rIH ,j$Vvz optiSLang –进化算法的高级设置
1[yq0^\]M[ /<]{KI 高级设置
/, ! B2 ─ 此外,作为附加选项,可以调整optiSLang是否自动保存。
=hMY2D ─ 默认情况下,在计算每个设计迭代后,项目会自动保存。
[!U?}1YQ ─ 特别是对于计算时间短的设计,这会产生大量开销并减慢优化速度。
tz&y*e& ─ 因此,建议将自动保存选项设置为每50或100个完成的设计后保存。
t>[KVVg
W .Fa4shNV
$]A/
o( )-`;1ca)s optiSLang –设计计算的并行化
b%S62(qP N+y&,N, 并行化设置
m2v'WY5u ─ 一些优化算法允许并行计算设计。
cwL1/DGDB ─ 例如,在进化算法的情况下,一代的所有成员设计的参数是已知的,因此可以同时计算以减少计算时间。
L_K=g_] ─ 为了允许并行计算,必须启用多个求解器。
~R@Nd~L ─ 通过双击VirtualLab求解器,可以找到此附加选项。
}eRD|1 ─ 建议数量为CPU的一半到全部真实核心之间,具体取决于每个设计的计算并行化。
T9879[ZU\ [mPjP%{=@
Z>^pCc\lH R]i7 $}n optiSLang –开始优化
1M}&Z H 1 %,a =,v 运行优化
PK4iuU`vh ─ 单击场景(Scenery)中的进化算法(Evolutionary Algorithm)窗口。
$VxA0
=ad ─ 点击运行按钮开始优化。
Rh>}rGvCUN 78/N
;j)FnY=: - ._+J_ts optiSLang –优化结果
V.{H9n]IO rrCNo^W1 优化结果
W[}s o6 ─ 优化结束后,可以在新窗口中得到结果。
xu'yVt9RC Vb'7>
QurW/a //4Xq8y optiSLang –优化结果
u3o#{~E/# FSRj4e1y1 优化结果
eEn;!RS) ─ Pareto2D图以点云的形式同时给出了目标值、均匀度对比和平均效率。
4NdN<#Lr ─ 用户能够为他的应用选择最合适的设计。
5T:i9h ─ 在这个例子中,选择了设计no.8842,具有~16%的均匀度对比和~20%的平均效率。
+
Q6l*:<|c +|ycvHd
59Gk3frk( yOwA8^q optiSLang –优化结果
H/"lAXfb "5, 优化结果
2~t[RY ─ 每个设计都存储在子文件夹〜Optimization.opdEvolutionary_Algorithm中的optiSLang项目目录中。
YXI'gn2b# ─ 此目录中的每个文件夹(由设计编号命名)包含将设计再次导入VirtualLab所需的所有文件。
% =BMZRn q/4 [3h
i}~SDY A<B=f<N3gV optiSLang –导入优化结果
E.U_W UDL
RCS8i 导入优化结果
A.5i"Ci[ie ─ 要导入感兴趣的设计,使用Import optiSLang Results功能,选择相应的设计文件夹。
3ux0Jr2yT ─ 最后,可以在VirtualLab中进一步分析导入的LPD。
c?%(Dp E Dxk+P!!K
@GvztVYo po}F6m8bX 总结
ZZyDG9a>7 D3x /OyG( 作为总结,下表给出了初始和优化后的设计之间的光栅参数和性能标准的比较。
IO/4.m-aN# LB.co4