切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
    • 232阅读
    • 0回复

    [技术]VirtualLab Fusion中运用optiSLang进行光栅优化 [复制链接]

    上一主题 下一主题
    在线infotek
     
    发帖
    4741
    光币
    18081
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2023-12-25
    摘要 yB-.sGu  
    S 3R|8?|  
    _ymJ~MK  
    R<Z^L~)  
    现代光学系统优化一般会涉及到大量的参数,例如:优化光栅时不仅需要考虑光栅的几何参数,还有所需的入射方向。随着参数数量的大量增加,优化越来越具有挑战性。对于这种情况,VirtualLab Fusion提供了与Dynardo的optiSLang软件的接口,可以使用不同的高级优化算法。 j.k@6[ R>?  
    Jzk!K@  
    VirtualLab Fusion和optiSLang的界面 (l Lu?NpIi  
    riID,aut  
    VirtualLab Fusion是一种灵活且可定制的建模工具平台,可以仿真复杂的光学装置,例如:将一组平面波耦合入光波导。 YV*b~6{d  
    pPoH5CzcK  
    Oc7 >S.1  
    -Bj.hx*  
    optiSLang是一种包含各种高级工具的软件平台,包括敏感度分析、多元和多学科优化、鲁棒性评估、可靠性分析和鲁棒设计优化。   ;xL67e%?  
    两种软件平台的结合使得例如智能光波导耦合等高级光栅结构变为可能。 Uf# PoQ!y  
    >OT \~C  
    VirtualLab Fusion – 光学装置初始化 !d\t:0;  
    8|w-XR  
    初始装置 S2ark,sp6  
    ─ 一般来说,在VirtualLab中定义的光学系统都可以使用optiSLang进行优化。 /^J2B8y  
    ─ 该例中的光学系统包含了平面波光源和用于周期性介质的波导耦合探测器。 "hW(S  
    Z*9L'd"D|  
    H\ 3M  
       ~NxEc8Y  
    VirtualLab Fusion – 波导耦合探测器 iu +3,]7Fm  
    :#WEx_]  
    波导耦合探测 h9)RJSF4  
    ─ 波导耦合探测器是一种特殊工具,用以探测某个周期性结构以特定角度范围入射的效率。 sN-oEqS  
    ─ 可以从探测器的编辑对话框中的目录定义或加载周期性结构。 LaDY`u0G%  
    `"B^{o  
    dPHw3^J0j  
       NW)M?f+6  
    VirtualLab Fusion – 波导耦合探测器 ?gLAWz  
    波导耦合探测 [G\o+D?2  
    ─ 该例中使用了倾斜光栅。 N?$7 Z v[G  
    ;J'OakeVO  
    )Lb72;!?  
    L7m`HVCt&  
    VirtualLab Fusion – 波导耦合探测器 g&bwtEZ  
    波导耦合探测 IdF$Ml#[h  
    ─ 该例中使用了倾斜光栅。 0rcjorWI  
    u^l*5F%DK  
    <^Nk.E  
    dsK/6yu  
    VirtualLab Fusion – 波导耦合探测器 @LcT-3u  
    9Fk4|+OJ  
    波导耦合探测 8^y=H=  
    ─ 输入光源的入射角度范围在探测器编辑对话框中指定。 Ae6("Oid  
    ─ 通过最小和最大笛卡尔坐标系角度alpha和beta与它们的采样点数定义。 FRgLlp8x  
    Mm.Ql  
    _#FIay\ahB  
    '6X%=f'^b  
    VirtualLab Fusion – 波导耦合 dhW<p 5  
    GQ<Ds{exs>  
    波导耦合探测 tn{8u7  
    ─ 可以从探测得到的效率计算平均值和均匀对比度,并在探测器结果标签页中给出。 ~5ubh2{  
    ─ 作为结果,探测器可以用于评估在特定角度范围内的周期性结构。 dgslUg9z3g  
    2A>C+Y[7\  
    "7d.i(vw  
    SF^x=[ir  
    VirtualLab Fusion – 输出LPD至OPtiSLang *0~M  
    xorTL8  
    输出LPD至OPtiSLang =53b Lzr  
    ─ File→Export→Export to optiSlang Project lBmm(<~Z  
    Pcdf$a"`  
    U{}!y3[wK  
    VirtualLab Fusion – 输出LPD至OPtiSLang Xem5@ (u  
    qOi5WX6F/  
    输出LPD至OPtiSLang zP&q7 t;>  
    ─ File→Export→Export to optiSlang Project EE]=f=3  
    ─ 输出LPD文件,并产生输入至optiSLang的必要光学装置文件。 H|`R4hAk  
    ?+Q$#pb  
    xs%LRF# u  
    uY;R8CiD  
    VirtualLab Fusion – 输出LPD至OPtiSLang h@@d{{IqT  
    bDWeU}  
    输出LPD至OPtiSLang l4 "\) ];  
    ─ 在输出对话框窗口。 W' ep6O  
     可定义参数空间,并包含了参数的变化范围。 ?'w sIH]m  
     可以选择保存到的输出文件夹。 ik5|,#}m&  
     可以指定模拟引擎,用于分析。 9 mPIykAj8  
    ~{M@?8wi  
    ?PH/?QP  
    s}ADk-7  
    optiSLang – 初始化优化 *,lh:  
    6/6Rah!  
    设置求解器系统 EZib1g&:R/  
    ─ File→New project… 6IP$n($2  
    Yj|]Uff8O  
    nJT4w|Yx  
    eh<rRx"[  
    optiSLang – 初始化优化 LeHiT>aX!  
    M3(k'q7&:  
    设置求解器系统 6Y7H|>g)  
    ─ 继续,拖动求解器(Solver)向导到场景(Scenery)窗口。 :}9j^}"c3  
    ─ 打开了一个对话框,列出了几种求解器(Solver)范例。 #)] c0]p  
    ─ 求解器(Solver)范例中必须选择VirtualLab。 O!^; mhy"  
    q (>c`5  
    WeC(w+}p  
    optiSLang – 初始化优化 RtC'v";6  
    .X'< D*  
    设置求解器系统 bRPO:lAy  
    ─ 然后会弹出文件对话框,必须打开VirtualLab输出的system.lpd文件。 ZJ(rG((!  
    tg85:  
    p<5!0 2yQ\  
    1h=D4yN  
    optiSLang – 初始化优化 O>V(cmqE`  
    PLdn#S}.  
    参数化的求解器系统 *eUc.MX6x  
    ─ 参数化的求解器系统包含相应的VirtualLab文件和两个含有参数和结果的XML文件,用于定义优化函数。 VT=K"`EpQ  
    ─ 请务必保存计划。 fg&eoI'f  
    c+2%rh1  
    T2weAk#J  
    >F3.c%VU]w  
    optiSLang – 初始化优化 A#DR9Eq  
    U<Jt50O  
    参数化的求解器系统 jG D%r~lN  
    ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 6OB",  
    fbC~WV#  
    Mo^`\ /x!  
    ^$Krub{|  
    optiSLang – 初始化优化 6)[< )?A.[  
    n &}s-`D  
    参数化的求解器系统 'Kz9ygZy  
    ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 r]LCvsVa  
    ─ 通过双击结果(Result)设计标签页中的参数化(Parametric)求解器系统窗口,可以检查参数和结果。 Hk;-5A|9  
    8Xn!Kpa  
    )q3"t2-  
    $|a;~m>  
    optiSLang –设置优化 k+1gQru{d  
    nQ=aLV+'  
    参数化的求解器系统 S%l:kKD  
    ─ optiSLang可以进行多目标函数的光学系统优化。 m 22wF>9  
    ─ 这可以在参数化(Parametric)求解器系统配置的判据(Criteria)标签页中定义。 };S0 G!  
    n29(!10Px  
    JNo8>aFOb  
    lTz6"/  
    optiSLang –设置优化 S_Z`so}  
    *Km7U-BG  
    参数化的求解器系统 &erm`Ho  
    ─ 可以通过拖动均匀化对比度(Uniformity Contrast)到目标最小化(Objective Minimize)判据中定义第一目标函数。 9DE)S)e8  
    ─ 因此优化算法会尽可能地使均匀度对比最小化。 R^8{bP  
    y=H@6$2EQ  
    \dkOK`)b  
    keCRvlZ4  
    optiSLang –设置优化 Zdn!qyR`  
    YYUe)j{T  
    参数化的求解器系统 <z)E (J\  
    ─ 可以通过拖动平均值(Mean)到目标最小化(Objective Maximize)判据中定义第二目标函数。 W`L!N&fB  
    ─ 因此优化算法会尽可能地使平均效率最大化。 \ =nrt?  
    ─ 这步操作被称为多目标优化。 ,rO[mNk9@  
    %l$W*.j|;  
    WzlC*iv  
    ;n*J$B  
    optiSLang –设置优化 +>YfRqz:KB  
    &]iKr iG  
    优化向导 5 9 -!6;T  
    ─ 下一步可以通过拖放来使用优化向导。 lG"H4Aa>  
    LwdV3vb#  
    N"c(e6  
    w*~Tm>U  
    optiSLang –设置优化 !O)qYmK]|  
    rFu ez$  
    优化向导 C}"@RHEu  
    ─ 第一步,提供了各种系统参数,包括其指定的值范围。 U Cb02h  
    ─ 此外,optiSLang提供了一个可视化的值范围,其中标出了初始值。 `X8@/wf#  
    ─ 然后点击下一步。 REA;x-u*  
    wE Qi0!  
    V4K'R2t  
    optiSLang –设置优化 }ug xN0  
    N|dD!  
    优化向导 ]gP5f@`  
    ─ 第二步,如果在参数化的求解器系统中没有指定优化条件,则此时可以指定。 "H+,E_&(  
    ─ 也可以从其他文档中输入条件。 e7k%6'@  
    ─ 然后点击下一步。 g9>~HF$U  
    w^;DG  
    YfDWM7x7,  
    eegx'VSX4  
    optiSLang –设置优化 E1*QdCV2  
    qd6fU^)i  
    优化向导 Pe$6s:|NS  
    ─ 第三步,选择优化方法。 r88"#C6E'  
    ─ optiSLang提供了类似于红绿灯的建议形式来选择合适的方法: OW5t[~y]  
     红:不适用 qL 5>o>J  
     黄:适用 Oh; Jw  
     绿:推荐 p>kq+mP2bc  
    ─ 该例中推荐使用进化算法。 APSgnf  
    ─ 然后点击下一步。 r>|-2}{N/  
    O4|2|sA  
    2<r\/-#pU  
    HW6.O|3  
    optiSLang –设置优化 Tls a%pn  
    erFv(eaDK  
    优化向导 $G !R,eQ  
    ─ 然后,需要指定一些附加选项。 jRj=Awy  
    ─ 建议在算法运行期间显示后期处理选项,以便在优化运行期间访问结果数据。 ` \ZqgX4  
    ─ 然后点击结束。 lU.Kc  
    :b /J\  
    SbT5u3,'  
    63&^BW  
    optiSLang –进化算法的高级设置 WES#ZYtT  
    IVjU`ij  
    高级设置 B3 zk(RNZ  
    ─ 双击创建优化,可以调整优化算法的详细参数。 SF<Vds}A2  
    8]"(!i_;)  
    p EusTP  
    optiSLang –进化算法的高级设置 #h'@5 l  
    p*qPcuAA  
    高级设置 b{cU<;G)y.  
    ─ 双击创建优化,可以调整优化算法的详细参数。 4IsG=7   
    ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 [r-}bp'Gp  
    GjT#%GBF  
    GDhM<bVqM*  
    q mQfLz7&x  
    optiSLang –进化算法的高级设置 Z" v<0]rN  
    x]4Kkpqm  
    高级设置 +t!S'|C  
    ─ 双击创建优化,可以调整优化算法的详细参数。 k*Nr!Z!}  
    ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 v#oi0-9o[  
    ─ 在标签页“其他”中,提供了一些预定义的参数,适用于大部分优化。(例如“EA 10000”) #1/}3+=5B  
    1{PG>W  
    5<+K?uhm  
    P~ 0Jg# V  
    optiSLang –进化算法的高级设置 x\\7G^$<h  
    7{M>!} rY  
    高级设置 veh 5 }2  
    ─ 此外,作为附加选项,可以调整optiSLang是否自动保存。 1=)r@X/6d  
    ─ 默认情况下,在计算每个设计迭代后,项目会自动保存。 ]\c,BWC@e  
    ─ 特别是对于计算时间短的设计,这会产生大量开销并减慢优化速度。 PlxIf  L  
    ─ 因此,建议将自动保存选项设置为每50或100个完成的设计后保存。 :8f[|XR4\N  
    _eQ-`?  
    Dd $qQ  
    h#.N3o  
    optiSLang –设计计算的并行化 = [@)R!3H  
    DSyXr~p8  
    并行化设置 t#wmAOW  
    ─ 一些优化算法允许并行计算设计。 CboLH0Fa  
    ─ 例如,在进化算法的情况下,一代的所有成员设计的参数是已知的,因此可以同时计算以减少计算时间。 ?u$u?j|N  
    ─ 为了允许并行计算,必须启用多个求解器。 @!%n$>p/V  
    ─ 通过双击VirtualLab求解器,可以找到此附加选项。 /bVZ::A&_  
    ─ 建议数量为CPU的一半到全部真实核心之间,具体取决于每个设计的计算并行化。 L36Yx7gT<  
    .qD@ Y3-  
    K 1#ji*Tp  
    1y"3  
    optiSLang –开始优化 b$JBL_U5Ch  
    963aW*r  
    运行优化 DDd/DAkCX  
    ─ 单击场景(Scenery)中的进化算法(Evolutionary Algorithm)窗口。 5f7zk  
    ─ 点击运行按钮开始优化。 DtxE@,  
    /f{$I  
    c4mh EE-  
    p<GR SJIk=  
    optiSLang –优化结果 XEH}4;C'{  
    JAb6zpP  
    优化结果 7=}F{U  
    ─ 优化结束后,可以在新窗口中得到结果。 -_A$DM!^=w  
    ]!"S+gT*C  
    [AzO:A  
    a:rX9-**  
    optiSLang –优化结果 m@G i6   
    d5m`Bm-{  
    优化结果 3{7T4p.G  
    ─ Pareto2D图以点云的形式同时给出了目标值、均匀度对比和平均效率。 oF:v JDSS  
    ─ 用户能够为他的应用选择最合适的设计。 /pH(WHT+/H  
    ─ 在这个例子中,选择了设计no.8842,具有~16%的均匀度对比和~20%的平均效率。 b~Y%gC)FR  
    ,J =P,](  
    9(_{`2R8  
    _S?qDG{E|  
    optiSLang –优化结果 U.0kR/>Z=  
    :' #\  
    优化结果 S -&)p@4  
    ─ 每个设计都存储在子文件夹〜Optimization.opdEvolutionary_Algorithm中的optiSLang项目目录中。 >4i>C  
    ─ 此目录中的每个文件夹(由设计编号命名)包含将设计再次导入VirtualLab所需的所有文件。 4mYCSu14:`  
    |CD"*[j]  
    b'p4wE>  
    ^q[gxuL_  
    optiSLang –导入优化结果 B{6<;u)[  
    T2'RATfG  
    导入优化结果 db72W x0>  
    ─ 要导入感兴趣的设计,使用Import optiSLang Results功能,选择相应的设计文件夹。 5p"BD'^:  
    ─ 最后,可以在VirtualLab中进一步分析导入的LPD。 uXZg1 F)  
    7 h=QW5  
    $hrIO+  
    {<$b Aj  
    总结 /%rq hHs  
    0DPxW8Y-`  
    作为总结,下表给出了初始和优化后的设计之间的光栅参数和性能标准的比较。 \FmKJ\  
    ?,knit2x  
     
    分享到