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

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

    上一主题 下一主题
    离线infotek
     
    发帖
    6243
    光币
    25360
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2024-09-28
    摘要 6)e5zKW!?  
    GBP-V66  
    ZA\/{Fw  
    |dmh  
    现代光学系统优化一般会涉及到大量的参数,例如:优化光栅时不仅需要考虑光栅的几何参数,还有所需的入射方向。随着参数数量的大量增加,优化越来越具有挑战性。对于这种情况,VirtualLab Fusion提供了与Dynardo的optiSLang软件的接口,可以使用不同的高级优化算法。 ~rv})4h  
    B@t'U=@7  
    VirtualLab Fusion和optiSLang的界面 I^3:YVR&  
    VC-;S7k  
    VirtualLab Fusion是一种灵活且可定制的建模工具平台,可以仿真复杂的光学装置,例如:将一组平面波耦合入光波导。 Q$ZHv_VLx  
    w([$@1]  
    [@"wd_f{l  
    >UHa  
    optiSLang是一种包含各种高级工具的软件平台,包括敏感度分析、多元和多学科优化、鲁棒性评估、可靠性分析和鲁棒设计优化。   P<;7j?  
    两种软件平台的结合使得例如智能光波导耦合等高级光栅结构变为可能。 Qw)9r{f  
    K:r\{#9  
    VirtualLab Fusion – 光学装置初始化 ~kKrDLW+  
    {6 .o=EyM{  
    初始装置 kzO&24  
    ─ 一般来说,在VirtualLab中定义的光学系统都可以使用optiSLang进行优化。 ULBg {e?l8  
    ─ 该例中的光学系统包含了平面波光源和用于周期性介质的波导耦合探测器。 Jx|I6 y  
    #^rU x.  
    jo98 jA<  
       >V;,#5F_  
    VirtualLab Fusion – 波导耦合探测器 3HiFISA*  
    Q M 1F?F  
    波导耦合探测 $.K?N@(W  
    ─ 波导耦合探测器是一种特殊工具,用以探测某个周期性结构以特定角度范围入射的效率。 q'S =Eav8  
    ─ 可以从探测器的编辑对话框中的目录定义或加载周期性结构。 u oVNK  
    HGDV O Jq  
    .36^[Jsz":  
       9=+-QdX+0]  
    VirtualLab Fusion – 波导耦合探测器 rwqv V ^  
    波导耦合探测 KN[d!}W:  
    ─ 该例中使用了倾斜光栅。 B|o%_:]+E  
    7*+TP~WI  
    or?%-)  
    BW Uq%o,@g  
    VirtualLab Fusion – 波导耦合探测器 JlZ0n;  
    波导耦合探测 ..KwTf  
    ─ 该例中使用了倾斜光栅。 F^kwdS  
    svhrf;3:  
    (f1M'w/OD  
    U/w.M_S  
    VirtualLab Fusion – 波导耦合探测器 ]=&L_(34  
    g-)mav  
    波导耦合探测 0[a}n6X Tk  
    ─ 输入光源的入射角度范围在探测器编辑对话框中指定。 CjL<RJR=  
    ─ 通过最小和最大笛卡尔坐标系角度alpha和beta与它们的采样点数定义。 I6w~H?ul@*  
    TD,nIgH`  
    <$E6oZ  
    ZX.TqvK/r  
    VirtualLab Fusion – 波导耦合 BWq/TG=>  
    FY#!N L  
    波导耦合探测 )]Ti>RO7  
    ─ 可以从探测得到的效率计算平均值和均匀对比度,并在探测器结果标签页中给出。 =Hu0v}i/  
    ─ 作为结果,探测器可以用于评估在特定角度范围内的周期性结构。 B BL485`  
    3 <SqoJSp  
     46,j9x  
    KL3<Iz]  
    VirtualLab Fusion – 输出LPD至OPtiSLang r%=[},JQ  
    Q~,YbZ-7  
    输出LPD至OPtiSLang  <!'M} s  
    ─ File→Export→Export to optiSlang Project m J  
    <' m6^]:  
    HFtf  
    VirtualLab Fusion – 输出LPD至OPtiSLang 3<(q }  
    lrEj/"M  
    输出LPD至OPtiSLang (GU9p>2  
    ─ File→Export→Export to optiSlang Project :@. ;  
    ─ 输出LPD文件,并产生输入至optiSLang的必要光学装置文件。  '3 ,\@4  
    g`,AaWlF  
    oRY!\ADR  
    Ka-p& Uv1<  
    VirtualLab Fusion – 输出LPD至OPtiSLang /g.]RY+u|x  
    c{3rl;Cs  
    输出LPD至OPtiSLang 4\2V9F{s  
    ─ 在输出对话框窗口。 dbF M,"^  
     可定义参数空间,并包含了参数的变化范围。 %5B%KCCN  
     可以选择保存到的输出文件夹。 hU {-a`  
     可以指定模拟引擎,用于分析。 j F5Blc  
    xAdq+$><  
    ]qktj=p  
    k`YYZt]@  
    optiSLang – 初始化优化 %FA@)?~  
    6Z! y  
    设置求解器系统 T0e<Slo~C  
    ─ File→New project… < K %j  
    O.+9,4A(  
    trYTs,KV  
    SgM.B  
    optiSLang – 初始化优化 sa#.l% #  
    *e4TSqC|  
    设置求解器系统 NoDZ5Z  
    ─ 继续,拖动求解器(Solver)向导到场景(Scenery)窗口。 )|]dm Q-  
    ─ 打开了一个对话框,列出了几种求解器(Solver)范例。 _%pAlo_6  
    ─ 求解器(Solver)范例中必须选择VirtualLab。 I$jvXl=$  
    ?p^2Z6J'$  
    FjKq%.=#  
    optiSLang – 初始化优化
    _m'ysCjA  
    ;A#~` P  
    设置求解器系统 ujzW|HW^v  
    ─ 然后会弹出文件对话框,必须打开VirtualLab输出的system.lpd文件。 1/iE`Si  
    bXdY\&fE  
    m4/er539T  
    Pv){sYUh  
    optiSLang – 初始化优化 _<Dt z  
    PZ OKrW  
    参数化的求解器系统 v 81rfB5  
    ─ 参数化的求解器系统包含相应的VirtualLab文件和两个含有参数和结果的XML文件,用于定义优化函数。 F[E? A95W  
    ─ 请务必保存计划。 ^Kq|ID AP  
    ;e{5)@h$  
    ef]B9J~h  
    fE25(wCz7  
    optiSLang – 初始化优化 K0fv( !r{  
    ;u!?QSvb  
    参数化的求解器系统 ])T/sO#'  
    ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 V2 `> ]/|  
    bBE+jqi 2  
    [ ]p"3 i  
    w~@[ r4W  
    optiSLang – 初始化优化 `gguip-C  
    XAD3Z?  
    参数化的求解器系统 WZ~> BM  
    ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 =*MR(b>  
    ─ 通过双击结果(Result)设计标签页中的参数化(Parametric)求解器系统窗口,可以检查参数和结果。 P Jo  
    kC$I2[t!  
    Ft-6m%  
    C0m\SNR  
    optiSLang –设置优化 BQNp$]5s  
    ~j& ?/{7I  
    参数化的求解器系统 *\ECf .7jz  
    ─ optiSLang可以进行多目标函数的光学系统优化。 MCy~@)-IN  
    ─ 这可以在参数化(Parametric)求解器系统配置的判据(Criteria)标签页中定义。 <Dm Tj$  
    +/cgw,  
    -2*>`,Uu  
    JAP (|  
    optiSLang –设置优化 uqZ3Hyb  
    Bc ^4 T1  
    参数化的求解器系统 "tR}j,=S:D  
    ─ 可以通过拖动均匀化对比度(Uniformity Contrast)到目标最小化(Objective Minimize)判据中定义第一目标函数。 9g@NcJ]  
    ─ 因此优化算法会尽可能地使均匀度对比最小化。 d*-Xuv  
    h~UJCn zS  
    JvJ;bFXD  
    F`& >NQb  
    optiSLang –设置优化 2d&^Sp&11  
    ]|LgVXEpx  
    参数化的求解器系统  W"qL-KW  
    ─ 可以通过拖动平均值(Mean)到目标最小化(Objective Maximize)判据中定义第二目标函数。 A ,<@m2  
    ─ 因此优化算法会尽可能地使平均效率最大化。 =K'L|QKF  
    ─ 这步操作被称为多目标优化。 VS`Z_Xn  
    UrK"u{G  
    GOr}/y;  
    K&S@F!#g  
    optiSLang –设置优化 rPTfpeqN)  
    l l:jsm  
    优化向导 +x]e-P%  
    ─ 下一步可以通过拖放来使用优化向导。 E fSMFPM  
    Qj!d^8  
    1t2cY;vJ  
    `|,tCM&-  
    optiSLang –设置优化 #313 (PWH  
    #W5Yw>$  
    优化向导 P"Rk?lL  
    ─ 第一步,提供了各种系统参数,包括其指定的值范围。 ~@fanR =  
    ─ 此外,optiSLang提供了一个可视化的值范围,其中标出了初始值。 Pd],}/ZG-  
    ─ 然后点击下一步。 eT\p-4b  
     N|N/)  
    X[{\ 3Av  
    optiSLang –设置优化 U_Y;fSl>  
    \e0x ,2  
    优化向导 =,E'~P  
    ─ 第二步,如果在参数化的求解器系统中没有指定优化条件,则此时可以指定。 H%T3Pc  
    ─ 也可以从其他文档中输入条件。 V8v,jS$l4  
    ─ 然后点击下一步。 :BDviUC7Z  
    va+m9R0  
    8;.` {'r  
    !F,s"  
    optiSLang –设置优化 P^;WB*V  
    k>-'AWH^v  
    优化向导 u]#8 $M2  
    ─ 第三步,选择优化方法。 ZjavD^ky  
    ─ optiSLang提供了类似于红绿灯的建议形式来选择合适的方法: p[gAZ9  
     红:不适用 Iq@IUFpc7~  
     黄:适用 d!!3"{'  
     绿:推荐 F]SIT\kBm  
    ─ 该例中推荐使用进化算法。 rr4 _8Rf  
    ─ 然后点击下一步。 U\;Ml  
    gQCC>8  
    FJlsWh4,6=  
    Bf(Mot^  
    optiSLang –设置优化 eo]a'J9(  
    pfNThMf  
    优化向导 >oB ?  
    ─ 然后,需要指定一些附加选项。 v6(,Ax&  
    ─ 建议在算法运行期间显示后期处理选项,以便在优化运行期间访问结果数据。 cWc$ yE'  
    ─ 然后点击结束。 [$H( CH`  
    rZ 6@b  
    LVWxd}0  
    m9cj7  
    optiSLang –进化算法的高级设置 B8>FCF&}E  
    %rX\ P  
    高级设置 '9Qd.q7s|b  
    ─ 双击创建优化,可以调整优化算法的详细参数。 GMyoSe%1/  
    -MsuBf  
    Wd1 IX^7C%  
    optiSLang –进化算法的高级设置 Z#[>N,P  
    WVsK rFZT  
    高级设置 '> 4+WZ1w5  
    ─ 双击创建优化,可以调整优化算法的详细参数。 2 /UI>@By  
    ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 vLD:(qTi  
    Hv+:fr"  
    ^>t-v  
    v3 !byN^  
    optiSLang –进化算法的高级设置 }v,W-gA  
    5Bzuj`  
    高级设置 bmSpbX\  
    ─ 双击创建优化,可以调整优化算法的详细参数。 &0FpP&Z(  
    ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 i"ck`6v"8  
    ─ 在标签页“其他”中,提供了一些预定义的参数,适用于大部分优化。(例如“EA 10000”) )lE3GDAPgZ  
    8o%E&Jg:  
    upZYv~Sa  
    )3+xsnv  
    optiSLang –进化算法的高级设置 ?BXP}]  
    l6yB_ M  
    高级设置 ~x9 W{B]  
    ─ 此外,作为附加选项,可以调整optiSLang是否自动保存。 k-;.0!D^  
    ─ 默认情况下,在计算每个设计迭代后,项目会自动保存。 AW]("pt  
    ─ 特别是对于计算时间短的设计,这会产生大量开销并减慢优化速度。 wV]sGHuF}  
    ─ 因此,建议将自动保存选项设置为每50或100个完成的设计后保存。 Y+}OClS  
    5Q2TT $P  
    !Q<8c =f  
    }D8~^   
    optiSLang –设计计算的并行化 xuw//F  
    _D!M nTK  
    并行化设置 mNGb} lR  
    ─ 一些优化算法允许并行计算设计。 qYQUr8{  
    ─ 例如,在进化算法的情况下,一代的所有成员设计的参数是已知的,因此可以同时计算以减少计算时间。 la!1[VeL  
    ─ 为了允许并行计算,必须启用多个求解器。 uQXs>JuD  
    ─ 通过双击VirtualLab求解器,可以找到此附加选项。 c4FOfH|  
    ─ 建议数量为CPU的一半到全部真实核心之间,具体取决于每个设计的计算并行化。 >Lo6='G  
    #mi0x06  
    P6.)P|n7=  
    6kgCS{MZ  
    optiSLang –开始优化 '33Yl+h  
    n-L]YrDPK[  
    运行优化 oX%PsS  
    ─ 单击场景(Scenery)中的进化算法(Evolutionary Algorithm)窗口。 7"h=MB_  
    ─ 点击运行按钮开始优化。 UEx(~>  
    >' BU*  
    i2`.#YJ&v  
    \= )[  
    optiSLang –优化结果 x`/m>~_  
    ,.1&Ff)S  
    优化结果 38zR\@'j]4  
    ─ 优化结束后,可以在新窗口中得到结果。 6x`\ J2x  
    Q{(,/}kA-  
    =6L :I x  
    =rs=8Ty?S  
    optiSLang –优化结果 !>"INmz  
    x);?jxd  
    优化结果 oj,Vi-TZ  
    ─ Pareto2D图以点云的形式同时给出了目标值、均匀度对比和平均效率。 zEA{%)W  
    ─ 用户能够为他的应用选择最合适的设计。 ba8-XA_~U  
    ─ 在这个例子中,选择了设计no.8842,具有~16%的均匀度对比和~20%的平均效率。 r!-L`GUm  
    >G w%r1)  
    ;m M\, {Z  
    $u0+29T2O  
    optiSLang –优化结果 ;dpS@;v  
    U)T/.L{0i  
    优化结果 7csl1|U  
    ─ 每个设计都存储在子文件夹〜Optimization.opdEvolutionary_Algorithm中的optiSLang项目目录中。 yE!7`c.[u  
    ─ 此目录中的每个文件夹(由设计编号命名)包含将设计再次导入VirtualLab所需的所有文件。 &T| UAM.  
    '/ ]fZ|  
    QWIOim-  
    EeF n{_  
    optiSLang –导入优化结果 )PLc+J.I  
    $6]x,Ct  
    导入优化结果 ivDG3>"JG  
    ─ 要导入感兴趣的设计,使用Import optiSLang Results功能,选择相应的设计文件夹。 %WXVfkD  
    ─ 最后,可以在VirtualLab中进一步分析导入的LPD。 yx`r;|ds}  
    8B% O%*5`  
    *N&^bF"SF  
    hVQ+ J!qD  
    总结 r4z}yt+  
    ~O7cUsAi'  
    作为总结,下表给出了初始和优化后的设计之间的光栅参数和性能标准的比较。 ?!Th-Cc&m  
    ^LQ lfd  
     
    分享到
    离线青天如墨
    发帖
    96
    光币
    158
    光券
    0
    只看该作者 1楼 发表于: 2024-12-16
    卧槽,大佬,终于找到了optislang的优化方法了