首页
->
登录
->
注册
->
回复主题
->
发表主题
光行天下
->
FRED,VirtualLab
->
VirtualLab Fusion中运用optiSLang进行光栅优化
[点此返回论坛查看本帖完整版本]
[打印本页]
infotek
2020-08-19 09:48
VirtualLab Fusion中运用optiSLang进行光栅优化
摘要
Q.Acmht#
|w5#a_adM
*QVE>{
vR,'':
现代光学系统的优化一般会涉及到大量的参数,例如:优化光栅时不仅需要考虑光栅的几何参数,还有所需的入射方向。随着参数数量的大量增加,优化越来越具有挑战性。对于这种情况,VirtualLab Fusion提供了与Dynardo的optiSLang软件的接口,可以使用不同的高级优化算法。
y.Py>GJJ1S
}y1M0^M-$
VirtualLab Fusion和optiSLang的界面
>Et?7@
{:Q2Itsy
VirtualLab Fusion是一种灵活且可定制的建模工具平台,可以仿真复杂的光学装置,例如:将一组平面波耦合入光波导。
=YBJ7.Y
^$(|(N[;
[|YMnV<B
#[8gH>7
optiSLang是一种包含各种高级工具的软件平台,包括敏感度分析、多元和多学科优化、鲁棒性评估、可靠性分析和鲁棒设计优化。
sM-*[Q=_
两种软件平台的结合使得例如智能光波导耦合等高级光栅结构变为可能。
G~PP1sf
}fA3{Ro
VirtualLab Fusion – 光学装置初始化
gOk O8P6P8
Vl EkT9^:
初始装置
>dM'UpN@
─ 一般来说,在VirtualLab中定义的光学系统都可以使用optiSLang进行优化。
-H \nFJ6+
─ 该例中的光学系统包含了平面波光源和用于周期性介质的波导耦合探测器。
N P"z
buoz La
>iCMjT]4
{`'b+0[;@
VirtualLab Fusion – 波导耦合探测器
_FV.}%W<u
kB 2bT}
波导耦合探测
,uw&)A
─ 波导耦合探测器是一种特殊工具,用以探测某个周期性结构以特定角度范围入射的效率。
(Cq-8**dY
─ 可以从探测器的编辑对话框中的目录定义或加载周期性结构。
zb<+x(0y"
XEuv aM
[Yv5Sw
\8pbPo=x
VirtualLab Fusion – 波导耦合探测器
sOJ~PRA
波导耦合探测
n5b N/
─ 该例中使用了倾斜光栅。
97g\nq<
5Ql6?UHD
yF:fxdpw
D;5RcZ
VirtualLab Fusion – 波导耦合探测器
DFiexOb
波导耦合探测
?1d_E meG2
─ 该例中使用了倾斜光栅。
vD(;VeW[
b&ADj8cKC
C{Fo^-3
4e:hKv,+4
VirtualLab Fusion – 波导耦合探测器
RsbrD8*AD
L+u_153
波导耦合探测
czp5MU_^
─ 输入光源的入射角度范围在探测器编辑对话框中指定。
*-n$n
─ 通过最小和最大笛卡尔坐标系角度alpha和beta与它们的采样点数定义。
(T ^aZuuS
cr!I"kTgD
e0qa~5
PQ5DTk
VirtualLab Fusion – 波导耦合
%8ul}}d9
6e*JCf>
波导耦合探测
ILQg@Jl
─ 可以从探测得到的效率计算平均值和均匀对比度,并在探测器结果标签页中给出。
ed{9UJWh
─ 作为结果,探测器可以用于评估在特定角度范围内的周期性结构。
HqbTJ!a
QW!'A`*x
v|hi;l@7E
< ;g0?M\
VirtualLab Fusion – 输出LPD至OPtiSLang
DJbj@ 2W[
0e:aeLh
输出LPD至OPtiSLang
1?*vqdt
─ File→Export→Export to optiSlang Project
>#'6jm
W=DQ6.
!=-l760
VirtualLab Fusion – 输出LPD至OPtiSLang
^cY5!W.q8
.1}u0IbJ
输出LPD至OPtiSLang
K)k!`du!6
─ File→Export→Export to optiSlang Project
$yt|nO
─ 输出LPD文件,并产生输入至optiSLang的必要光学装置文件。
zJ\I%7h*
Ywni2-)<
`R^)<v*
=?}'\ >G "
VirtualLab Fusion – 输出LPD至OPtiSLang
\/5 8#
|[qI2-e l?
输出LPD至OPtiSLang
mr;WxxO5
─ 在输出对话框窗口。
S`-z$ph}
可定义参数空间,并包含了参数的变化范围。
&K7g8x"x.
可以选择保存到的输出文件夹。
7#RW4ZM
可以指定模拟引擎,用于分析。
isaT0__8
$%jV%k
v\<`"
bi_R.sfK&
optiSLang – 初始化优化
9|go`^*.
2n@"|\ uHD
设置求解器系统
j;'NJ~NZ$
─ File→New project…
gKPV*
='mqfGRi>
@P8q=j}l9
8g$ 8]'M^T
optiSLang – 初始化优化
Lrk^<:8;
=\q3;5[
设置求解器系统
'r-a:8:t^
─ 继续,拖动求解器(Solver)向导到场景(Scenery)窗口。
R; IB o
─ 打开了一个对话框,列出了几种求解器(Solver)范例。
jW6@U%[!b
─ 求解器(Solver)范例中必须选择VirtualLab。
5ogbse"
.Wr7?'D1M
;mMn-+ 3<
optiSLang – 初始化优化
x|Q6[Y
HO wJ2L
设置求解器系统
tvg7mU]l
─ 然后会弹出文件对话框,必须打开VirtualLab输出的system.lpd文件。
`T mIrc
f[X>?{q
SI@I
t!PFosFp
optiSLang – 初始化优化
2Aff3]-:Gd
$[z*MQ
参数化的求解器系统
No[>1]ds
─ 参数化的求解器系统包含相应的VirtualLab文件和两个含有参数和结果的XML文件,用于定义优化函数。
alq>|,\x
─ 请务必保存计划。
M#:Mwa$
Sd{>(YWx~
y(q1~73s
#$A6s~`B
optiSLang – 初始化优化
VJwzYl
04,]upC${W
参数化的求解器系统
&"d4J?io`
─ 运行求解器系统以检查是否能正常工作并给出预期的结果。
Yc9 M6=E^
Kyv$yf9
x*_c'\F|
V57^0^Zp`
optiSLang – 初始化优化
`T}e3l
D,J's(wd
参数化的求解器系统
>0f5Mjug
─ 运行求解器系统以检查是否能正常工作并给出预期的结果。
Haturg
─ 通过双击结果(Result)设计标签页中的参数化(Parametric)求解器系统窗口,可以检查参数和结果。
Ble <n6
vuD tEz
a1s=t_wT
W/+|dN{O+g
optiSLang –设置优化
d/|@"z^?
\n /_Px
参数化的求解器系统
Rk"_4zJk
─ optiSLang可以进行多目标函数的光学系统优化。
br0gB3r
─ 这可以在参数化(Parametric)求解器系统配置的判据(Criteria)标签页中定义。
73P(oVj<
398%16}
c.NAUe_3
}bHdU]$}
optiSLang –设置优化
f\Pd#$3
qG~O]($
参数化的求解器系统
Vj`9j. 5
─ 可以通过拖动均匀化对比度(Uniformity Contrast)到目标最小化(Objective Minimize)判据中定义第一目标函数。
lS}5bcjR=k
─ 因此优化算法会尽可能地使均匀度对比最小化。
)82x)c<e
\+ K ^G
4F/Q0"
;@Ls"+g
optiSLang –设置优化
GT*\gZ
GXa-g-d
参数化的求解器系统
k~:B3p
─ 可以通过拖动平均值(Mean)到目标最小化(Objective Maximize)判据中定义第二目标函数。
m,Os$>{Ok
─ 因此优化算法会尽可能地使平均效率最大化。
bPiJCX0d
─ 这步操作被称为多目标优化。
hYF<Wn3L
5.idC-\
F!N;4J5u
MB:E/
optiSLang –设置优化
\u:xDS(
N!$y`nwiw'
优化向导
670g|&v.
─ 下一步可以通过拖放来使用优化向导。
mM>{^%2Q:
% &{>oEQ
WCU[]A
iv\?TAZC
optiSLang –设置优化
:MpIx&
~^:/t<N
优化向导
G{YLyl/9
─ 第一步,提供了各种系统参数,包括其指定的值范围。
YI&7s_% -
─ 此外,optiSLang提供了一个可视化的值范围,其中标出了初始值。
T|r@:t[
─ 然后点击下一步。
\O`B@!da~
pX|\J>u)
ss |<\DE+
8la.N*
optiSLang –设置优化
EcFYP"{U
mJ[LmQ<:
优化向导
F< Qjoaz
─ 第二步,如果在参数化的求解器系统中没有指定优化条件,则此时可以指定。
c.,eIiL
─ 也可以从其他文档中输入条件。
OP%h`
─ 然后点击下一步。
ME{i-E4
pT:CvJ
1u'x|Un
,~%Qu~\
optiSLang –设置优化
rB)m{)
}yC ve
优化向导
[Kx_ %Le
─ 第三步,选择优化方法。
8kX3.X`
─ optiSLang提供了类似于红绿灯的建议形式来选择合适的方法:
K4snpuhC
红:不适用
E.t9F3
黄:适用
*ofK|r
绿:推荐
6D6=5!l
─ 该例中推荐使用进化算法。
kjJ\7x6M
─ 然后点击下一步。
FK;\Nce&
_hK7hvM>
n-}.Yc
+7^{T:^ht
optiSLang –设置优化
tbl!{Qwx
VNx}ADXu ]
优化向导
v6;XxBR6
─ 然后,需要指定一些附加选项。
)d_)CuUBe
─ 建议在算法运行期间显示后期处理选项,以便在优化运行期间访问结果数据。
')}$v+9h
─ 然后点击结束。
coiTVDwA
}ZlJ
^7vhize
?20y6c <
optiSLang –进化算法的高级设置
[p_R?2uT
aG?'F`UQ
高级设置
wwmMpK}f
─ 双击创建优化,可以调整优化算法的详细参数。
GK2IY
MuO7_*q'n
4cTJ$" v
optiSLang –进化算法的高级设置
9v_gR52vh
*Iyv${
高级设置
76 #
─ 双击创建优化,可以调整优化算法的详细参数。
t> -cTQm
─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。
Bm;{dO
VgN`' iC`I
f8B*D4R}
'[{M"S
optiSLang –进化算法的高级设置
Xb&r|pR
;_%61ZI?M<
高级设置
tt6ElP|D
─ 双击创建优化,可以调整优化算法的详细参数。
{uDL"~^\
─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。
[yf2_{*0T
─ 在标签页“其他”中,提供了一些预定义的参数,适用于大部分优化。(例如“EA 10000”)
|bVNlL"xN
AuX&
zZ[SC
Z"mpE+U*
optiSLang –进化算法的高级设置
7E%ehM6Y
\# lh b
高级设置
+d2+w1o^V
─ 此外,作为附加选项,可以调整optiSLang是否自动保存。
<YUc?NF
─ 默认情况下,在计算每个设计迭代后,项目会自动保存。
0/#XUX 4
─ 特别是对于计算时间短的设计,这会产生大量开销并减慢优化速度。
ghx8dX}
─ 因此,建议将自动保存选项设置为每50或100个完成的设计后保存。
fc+P`r
Q4Hf!v]r
f>;5ZE4Zu
P zzX Ds6
optiSLang –设计计算的并行化
:2 n5;fp
mO?G[?*\
并行化设置
KQNSYI7a
─ 一些优化算法允许并行计算设计。
YL;ZZ2A
─ 例如,在进化算法的情况下,一代的所有成员设计的参数是已知的,因此可以同时计算以减少计算时间。
}^pnwo9vV
─ 为了允许并行计算,必须启用多个求解器。
;KbnaUAS8
─ 通过双击VirtualLab求解器,可以找到此附加选项。
qWy{{A+
─ 建议数量为CPU的一半到全部真实核心之间,具体取决于每个设计的计算并行化。
{MO`0n; rt
/thCu%%9A
v7\~OOoH]
^8 AV #a
optiSLang –开始优化
TXH: + m c
oB&s