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

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

    上一主题 下一主题
    离线infotek
     
    发帖
    6854
    光币
    28420
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2023-07-31
    摘要 Kf/1;:^  
    UiO%y  
    YBehyx2eK  
    9!&fak _  
    现代光学系统优化一般会涉及到大量的参数,例如:优化光栅时不仅需要考虑光栅的几何参数,还有所需的入射方向。随着参数数量的大量增加,优化越来越具有挑战性。对于这种情况,VirtualLab Fusion提供了与Dynardo的optiSLang软件的接口,可以使用不同的高级优化算法。 }rRf4te  
    ^C$Oht,cU  
    VirtualLab Fusion和optiSLang的界面 HmlE Cx  
    Z1Y/2MVSb  
    VirtualLab Fusion是一种灵活且可定制的建模工具平台,可以仿真复杂的光学装置,例如:将一组平面波耦合入光波导。 PW7{,1te,  
    +c'b=n9j  
    c$fi3O  
    ]:H((rk  
    optiSLang是一种包含各种高级工具的软件平台,包括敏感度分析、多元和多学科优化、鲁棒性评估、可靠性分析和鲁棒设计优化。   k+qxx5{  
    两种软件平台的结合使得例如智能光波导耦合等高级光栅结构变为可能。 S\wh *'Y  
    4PdJ  
    VirtualLab Fusion – 光学装置初始化 0 ]K\G55  
    bzj9U>eY  
    初始装置 j:k}6]p}  
    ─ 一般来说,在VirtualLab中定义的光学系统都可以使用optiSLang进行优化。 ;zq3>A  
    ─ 该例中的光学系统包含了平面波光源和用于周期性介质的波导耦合探测器。 <;eXbO>Q  
    `wGP31Y.  
    +`jI z'+  
       Dqxtc|vo  
    VirtualLab Fusion – 波导耦合探测器 u V[:e|v  
    +,8j]<wpo  
    波导耦合探测 '>"riEk  
    ─ 波导耦合探测器是一种特殊工具,用以探测某个周期性结构以特定角度范围入射的效率。 ioJ~k[T  
    ─ 可以从探测器的编辑对话框中的目录定义或加载周期性结构。 \}:RG^*m  
    3P}^Wu  
    C4,;l^?=%  
       KCDbE6  
    VirtualLab Fusion – 波导耦合探测器 pYxdE|2j  
    波导耦合探测 ?v5OUmFM  
    ─ 该例中使用了倾斜光栅。 !k5I#w:  
    T> < Vw  
    j:Y1  
    Q|$?d4La8  
    VirtualLab Fusion – 波导耦合探测器 DTx!# [  
    波导耦合探测 *m>XtBw.  
    ─ 该例中使用了倾斜光栅。 .sqX>sU/]  
    0`H)c) pP  
    \>7hT;Av=G  
    dv7IHUFf  
    VirtualLab Fusion – 波导耦合探测器 ZH s' #  
    hQFF%xl  
    波导耦合探测 'F .tOD  
    ─ 输入光源的入射角度范围在探测器编辑对话框中指定。  f3E%0cg  
    ─ 通过最小和最大笛卡尔坐标系角度alpha和beta与它们的采样点数定义。 s*3p*zf  
    $qp,7RW  
    ;ND)h pD+  
    WGC'k s ^  
    VirtualLab Fusion – 波导耦合 #q-7#pp  
    h ycdk1SN  
    波导耦合探测 .I1k+   
    ─ 可以从探测得到的效率计算平均值和均匀对比度,并在探测器结果标签页中给出。 jb'A Os  
    ─ 作为结果,探测器可以用于评估在特定角度范围内的周期性结构。 9FKowF_8  
    DtRu&>o_6D  
    nyRQ/.3  
    rL9u7) x  
    VirtualLab Fusion – 输出LPD至OPtiSLang HuRq0/"  
    jjTb:Z=.'  
    输出LPD至OPtiSLang [(d))(M$|  
    ─ File→Export→Export to optiSlang Project sSdnH_;&  
    ~L55l2u7  
    = VFPZ  
    VirtualLab Fusion – 输出LPD至OPtiSLang #ts;s\!  
    KJQW))%e  
    输出LPD至OPtiSLang 56JvF*hP  
    ─ File→Export→Export to optiSlang Project `(Eiu$h6V-  
    ─ 输出LPD文件,并产生输入至optiSLang的必要光学装置文件。 wiE'6CM  
    !\(j[d#  
    ) Z^b)KAk  
    L3s1a -K  
    VirtualLab Fusion – 输出LPD至OPtiSLang w /l\p3n  
    piPx8jT`F  
    输出LPD至OPtiSLang O S%  
    ─ 在输出对话框窗口。 K>_~zWnc  
     可定义参数空间,并包含了参数的变化范围。 A6faRi703  
     可以选择保存到的输出文件夹。 6{8dv9tK  
     可以指定模拟引擎,用于分析。 D$&LCW#x  
    \:[J-ySJ  
    m_;<7W&p]  
    <^v-y)%N:A  
    optiSLang – 初始化优化 3Y6W)$ Q  
    3`%U)gCT5  
    设置求解器系统 wrJ:jTh  
    ─ File→New project… Q(0eq_X|6  
    u ^}R]:n  
    G~$[(Fhk  
    6f^q >YP  
    optiSLang – 初始化优化 miv)R  
    WJJwhr  
    设置求解器系统 K2gg"#ft?  
    ─ 继续,拖动求解器(Solver)向导到场景(Scenery)窗口。 <>I4wqqb  
    ─ 打开了一个对话框,列出了几种求解器(Solver)范例。 Fmo^ ?~b  
    ─ 求解器(Solver)范例中必须选择VirtualLab。 Vh o3I[C  
    _a[)hu8q.  
    .Km6 (U  
    optiSLang – 初始化优化
    m:4Ec>?e  
    Oqy&V&-C  
    设置求解器系统 trAIh}Dj  
    ─ 然后会弹出文件对话框,必须打开VirtualLab输出的system.lpd文件。 ^+b ??K  
    B$)&;Q  
    |',$5!:0O  
    VzZ'W[/7)B  
    optiSLang – 初始化优化 a-(OAzQ_  
    10`]&v]T  
    参数化的求解器系统 F `cuV  
    ─ 参数化的求解器系统包含相应的VirtualLab文件和两个含有参数和结果的XML文件,用于定义优化函数。 :^H#i:4  
    ─ 请务必保存计划。 i *9Bu;  
    (I7s[  
    s+RSAyU  
    fRT4,;  
    optiSLang – 初始化优化 ^;[|,:8f7L  
    m.0: R  
    参数化的求解器系统 SuuLB6{u3  
    ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 6Rcl HU  
    5q Y+^jO]o  
    z&x3":@u<  
    6^vseVx  
    optiSLang – 初始化优化 G:k]tZ*`  
    8kA2.pIk  
    参数化的求解器系统 )CAEqP  
    ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 _t'S<jTI  
    ─ 通过双击结果(Result)设计标签页中的参数化(Parametric)求解器系统窗口,可以检查参数和结果。 /%4wm?(eA  
    ln~;Osb  
    Iq%f*Zm<  
    F{;{o^Pv  
    optiSLang –设置优化 v0|[w2Q2  
    n9p_D  
    参数化的求解器系统 M`jqU g  
    ─ optiSLang可以进行多目标函数的光学系统优化。 wEu"X  
    ─ 这可以在参数化(Parametric)求解器系统配置的判据(Criteria)标签页中定义。 #x^dR-@   
    #Y9'n0 AL  
    hynX5,p;.  
    }/cMG/%  
    optiSLang –设置优化 WhY8#B'?  
    ^qgOgu  
    参数化的求解器系统 sb^%eUU])  
    ─ 可以通过拖动均匀化对比度(Uniformity Contrast)到目标最小化(Objective Minimize)判据中定义第一目标函数。 &y~EEh|  
    ─ 因此优化算法会尽可能地使均匀度对比最小化。 |5(< Vk=  
    n:i?4'-}  
    |}YeQl  
    cI g|sn  
    optiSLang –设置优化 COC6H'F  
    p"lTZ7c:Y  
    参数化的求解器系统 h4\j=Np  
    ─ 可以通过拖动平均值(Mean)到目标最小化(Objective Maximize)判据中定义第二目标函数。 bF#1'W&  
    ─ 因此优化算法会尽可能地使平均效率最大化。 M:*^k  
    ─ 这步操作被称为多目标优化。 9~FB^3Nz_  
    K/OE;;<IA  
    ,*Vt53@E  
    2G4OK7x  
    optiSLang –设置优化 ?cF-w!>o8  
    k OycS  
    优化向导 fNkN  
    ─ 下一步可以通过拖放来使用优化向导。 H$j`75#u?-  
    4kZ9]5#.  
    qit D{;  
    XKTX~:  
    optiSLang –设置优化 0VOj,)K=  
    \vU1*:3  
    优化向导 +/L "A  
    ─ 第一步,提供了各种系统参数,包括其指定的值范围。 lM<SoC;[  
    ─ 此外,optiSLang提供了一个可视化的值范围,其中标出了初始值。 T==(Pw7R7  
    ─ 然后点击下一步。 99<0xN(25  
    @7C?]/8#  
    <`~zKFUQ[  
    optiSLang –设置优化 g7-=kmr|V  
    %dyEF8)  
    优化向导 2`-yzm  
    ─ 第二步,如果在参数化的求解器系统中没有指定优化条件,则此时可以指定。 s /? &H-  
    ─ 也可以从其他文档中输入条件。 FzDZ<dJ  
    ─ 然后点击下一步。 D`t }V  
    *TjolE~o  
    KvFGwq"X  
    1>doa1  
    optiSLang –设置优化 4|&7j7<u  
    q*<Fy4j  
    优化向导 78s:~|WB<{  
    ─ 第三步,选择优化方法。 Whf7J'  
    ─ optiSLang提供了类似于红绿灯的建议形式来选择合适的方法: cR0RJ$[d  
     红:不适用 wW7W+,{o  
     黄:适用 @aG1PG{  
     绿:推荐 6~ *w~U  
    ─ 该例中推荐使用进化算法。 T:$zNX<f  
    ─ 然后点击下一步。 >bf29tr  
    O};U3=^0f  
    He)<S?X-6  
    <p48?+K9  
    optiSLang –设置优化 1_Um6vS#  
    >H@ zP8  
    优化向导 nt,tM/  
    ─ 然后,需要指定一些附加选项。 [<)/ c>Y  
    ─ 建议在算法运行期间显示后期处理选项,以便在优化运行期间访问结果数据。 c2}?[\U]  
    ─ 然后点击结束。 *t;'I -1w^  
    Lm kv .XF  
    #clPao?r  
    x%ZgLvdp,  
    optiSLang –进化算法的高级设置 D6iHkDTg  
    360V  
    高级设置 8>Xyz`$kH  
    ─ 双击创建优化,可以调整优化算法的详细参数。 <RmI)g>'_^  
    0`=#1u8  
    pYo]lO  
    optiSLang –进化算法的高级设置 k zhek >  
    6!} @vp![  
    高级设置 }/ 6Q3B  
    ─ 双击创建优化,可以调整优化算法的详细参数。 rn l~i  
    ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 y]5O45E0  
    B\a-Q,Wf  
    \|Pp%U [  
    _94|^   
    optiSLang –进化算法的高级设置 #%U5,[<a8  
    TI-8I)  
    高级设置 T:aYv;#0  
    ─ 双击创建优化,可以调整优化算法的详细参数。 XVjs0/5b  
    ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 T]d9tX-  
    ─ 在标签页“其他”中,提供了一些预定义的参数,适用于大部分优化。(例如“EA 10000”) G(F }o]  
    9L;fT5Tp7  
    Zr,:i MPZ  
    yTWP1  
    optiSLang –进化算法的高级设置 /t`s.!k  
    JQQP!]%}  
    高级设置 GGcN aW'  
    ─ 此外,作为附加选项,可以调整optiSLang是否自动保存。 _,:gSDW|  
    ─ 默认情况下,在计算每个设计迭代后,项目会自动保存。 He att?(RR  
    ─ 特别是对于计算时间短的设计,这会产生大量开销并减慢优化速度。 Md_S};!QN6  
    ─ 因此,建议将自动保存选项设置为每50或100个完成的设计后保存。 -@{5 u d  
    4$ LVl  
    \<WRk4D  
    r9<OB`)3+  
    optiSLang –设计计算的并行化 fQcJyX  
    VWqmqR%  
    并行化设置 9fr LYJz"  
    ─ 一些优化算法允许并行计算设计。 U:xY~>  
    ─ 例如,在进化算法的情况下,一代的所有成员设计的参数是已知的,因此可以同时计算以减少计算时间。 a"gZw9m@  
    ─ 为了允许并行计算,必须启用多个求解器。 EYNi`  
    ─ 通过双击VirtualLab求解器,可以找到此附加选项。 \^O&){q(9  
    ─ 建议数量为CPU的一半到全部真实核心之间,具体取决于每个设计的计算并行化。 Hd H,   
    b_2bg>|;  
    IzPnbnS}  
    /<7'[x<  
    optiSLang –开始优化 &Z!O   
    &`+tWL6L  
    运行优化 m{T:<:q~  
    ─ 单击场景(Scenery)中的进化算法(Evolutionary Algorithm)窗口。 5Fa.X|R~  
    ─ 点击运行按钮开始优化。 IiW*'0H:/  
    L-Io!msb  
    LY Y3*d  
    i+rh&,  
    optiSLang –优化结果 r6_g/7.-  
    cQM_kV??!  
    优化结果 *K}h >b 1  
    ─ 优化结束后,可以在新窗口中得到结果。 ')eg6IC0&T  
    YU >NGC]}d  
    tZ|0wPp  
    FFC"rG  
    optiSLang –优化结果 $W}YXLFj?  
    R*PR21g  
    优化结果 _#;UXAi  
    ─ Pareto2D图以点云的形式同时给出了目标值、均匀度对比和平均效率。 lqaOLZH  
    ─ 用户能够为他的应用选择最合适的设计。 Bh<DqN  
    ─ 在这个例子中,选择了设计no.8842,具有~16%的均匀度对比和~20%的平均效率。 MKiP3kt8  
    t[=-4;  
    N$&)gI:  
    GpwoS1#)0|  
    optiSLang –优化结果 )h0 3sv  
    o57r ,`N  
    优化结果 /&>vhpZ}  
    ─ 每个设计都存储在子文件夹〜Optimization.opdEvolutionary_Algorithm中的optiSLang项目目录中。 1iLrKA  
    ─ 此目录中的每个文件夹(由设计编号命名)包含将设计再次导入VirtualLab所需的所有文件。 hiT&QJB` _  
    AQ)DiH  
    NQ3EjARZt  
    eN,6p '&  
    optiSLang –导入优化结果 'lWgHmE  
    ;N(9nX}%)  
    导入优化结果 aGz$A15#  
    ─ 要导入感兴趣的设计,使用Import optiSLang Results功能,选择相应的设计文件夹。 *4 HogC  
    ─ 最后,可以在VirtualLab中进一步分析导入的LPD。 'nQQqx%v  
    :P/0"  
    ,v@C=4'm  
    !,Uzt1K:  
    总结 ]8o[&50y  
    -\I".8"YE  
    作为总结,下表给出了初始和优化后的设计之间的光栅参数和性能标准的比较。 JqTR4[`Z\  
    . UaLP  
     
    分享到