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

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

    上一主题 下一主题
    在线infotek
     
    发帖
    5495
    光币
    21639
    光券
    0
    只看楼主 倒序阅读 楼主  发表于: 2023-07-31
    摘要 5gP<+S#>T  
    fpMnA  
    w\(LG_n|  
    J6m`XC  
    现代光学系统优化一般会涉及到大量的参数,例如:优化光栅时不仅需要考虑光栅的几何参数,还有所需的入射方向。随着参数数量的大量增加,优化越来越具有挑战性。对于这种情况,VirtualLab Fusion提供了与Dynardo的optiSLang软件的接口,可以使用不同的高级优化算法。  3Ee8_(E\  
    $E=t6WvA  
    VirtualLab Fusion和optiSLang的界面 ;VQFz&Q$u  
    MYVUOd,  
    VirtualLab Fusion是一种灵活且可定制的建模工具平台,可以仿真复杂的光学装置,例如:将一组平面波耦合入光波导。 z^(6>U ?  
    31BN ?q  
     ?gZJ v  
    -Vj'QqZ  
    optiSLang是一种包含各种高级工具的软件平台,包括敏感度分析、多元和多学科优化、鲁棒性评估、可靠性分析和鲁棒设计优化。   *7`N^e  
    两种软件平台的结合使得例如智能光波导耦合等高级光栅结构变为可能。 q\ihye  
    X`,4pSQ;  
    VirtualLab Fusion – 光学装置初始化 9`[#4'1Mik  
    }h+_kRQ  
    初始装置 eFO+@  
    ─ 一般来说,在VirtualLab中定义的光学系统都可以使用optiSLang进行优化。 qg7] YT&  
    ─ 该例中的光学系统包含了平面波光源和用于周期性介质的波导耦合探测器。 ?(8z O"  
    >z=_V|^$  
    iU)-YFO  
       ~&E|;\G  
    VirtualLab Fusion – 波导耦合探测器 .3;bUJ1  
    GPqF>   
    波导耦合探测 #xWC(*Ggp  
    ─ 波导耦合探测器是一种特殊工具,用以探测某个周期性结构以特定角度范围入射的效率。 &&1q@m,cP  
    ─ 可以从探测器的编辑对话框中的目录定义或加载周期性结构。 ,gU%%>-_~w  
    0 O{Y Vk`  
    mwuFXu/  
       kvU0$1  
    VirtualLab Fusion – 波导耦合探测器 ] o!#]]   
    波导耦合探测 3t(8uG<rL  
    ─ 该例中使用了倾斜光栅。 dEXHd@"H  
    -Q@jL{Ue  
    {$iJYS\  
    %iPu51+=  
    VirtualLab Fusion – 波导耦合探测器 ? Azpb}#  
    波导耦合探测 _/[n/"gn  
    ─ 该例中使用了倾斜光栅。 =goZI67  
    `92 D]^g  
    B0c}5V  
    V07x+ovq  
    VirtualLab Fusion – 波导耦合探测器 inBd.%Yr  
    b("JgE`  
    波导耦合探测 lwH&4K  
    ─ 输入光源的入射角度范围在探测器编辑对话框中指定。 YQR*?/?a  
    ─ 通过最小和最大笛卡尔坐标系角度alpha和beta与它们的采样点数定义。 >J=x";,D|~  
    ";~}"Yz?[  
    <!,q:[ee5  
    1{ #Xa=  
    VirtualLab Fusion – 波导耦合  =erA.u  
    *8p\.za1  
    波导耦合探测 6RZ[X[R[}  
    ─ 可以从探测得到的效率计算平均值和均匀对比度,并在探测器结果标签页中给出。 |Sg *j-.  
    ─ 作为结果,探测器可以用于评估在特定角度范围内的周期性结构。 f}4c#x  
    )!dELS \ix  
    S&-sl   
    /x_C  
    VirtualLab Fusion – 输出LPD至OPtiSLang xsRMF&8L  
    -b@E@uAX /  
    输出LPD至OPtiSLang |xzqYu?o  
    ─ File→Export→Export to optiSlang Project 'OGOT0(  
    e:[ Kp6J  
    qn@Qd9Sf  
    VirtualLab Fusion – 输出LPD至OPtiSLang ,|I\{J #C  
    }jU{RR%6B  
    输出LPD至OPtiSLang #py7emu  
    ─ File→Export→Export to optiSlang Project d$rJW m5H  
    ─ 输出LPD文件,并产生输入至optiSLang的必要光学装置文件。 z@y* jT  
    cXJgdBwo  
    wri[#D {  
    af{;4Cr  
    VirtualLab Fusion – 输出LPD至OPtiSLang 7\ff=L-b  
    5d}PrYa  
    输出LPD至OPtiSLang E08AZOY&g  
    ─ 在输出对话框窗口。 dab>@z4  
     可定义参数空间,并包含了参数的变化范围。 qe(X5 ?#;  
     可以选择保存到的输出文件夹。 e;3$7$n Pv  
     可以指定模拟引擎,用于分析。 n2#uH  
    tzpGKhrk6  
    jZv8X 5i  
    Tf@t.4\  
    optiSLang – 初始化优化 =< CH(4!  
    ?5mVC]W?]  
    设置求解器系统 EZP2Bb5g  
    ─ File→New project… C,PCU<q  
    qC\$>QU}  
    {OAy@6 +  
    g8kw|BgnL  
    optiSLang – 初始化优化 .h+<m7  
    Y_/Kd7,\~  
    设置求解器系统 5RLK]=  
    ─ 继续,拖动求解器(Solver)向导到场景(Scenery)窗口。 McsqMI6  
    ─ 打开了一个对话框,列出了几种求解器(Solver)范例。 ]Vwky]d  
    ─ 求解器(Solver)范例中必须选择VirtualLab。 /v!H{Zw=c  
    7DYD+N+T  
    WZ&#O#(eO`  
    optiSLang – 初始化优化
    wFqz.HoB  
    *fd` .}  
    设置求解器系统  Mx r#  
    ─ 然后会弹出文件对话框,必须打开VirtualLab输出的system.lpd文件。 jilO%  "  
    rkD4}jV  
    0>e>G(4(8  
    %!.rP  
    optiSLang – 初始化优化 BK /;H G  
    S?3{G@!  
    参数化的求解器系统 a|s=d  
    ─ 参数化的求解器系统包含相应的VirtualLab文件和两个含有参数和结果的XML文件,用于定义优化函数。 PPq*_Cf  
    ─ 请务必保存计划。 =kc{Q@Dk  
    Gc 8  
    b6/:reH{  
    moo>~F _^  
    optiSLang – 初始化优化 hXr vb[6  
    L0_=R;.<  
    参数化的求解器系统 LB{a&I LG  
    ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 T8m%_U#b  
    9Akwr}  
    blPC"3}3Vd  
    { o;0Fx  
    optiSLang – 初始化优化 eD(a +El}  
    +_}2zc4  
    参数化的求解器系统 RI*%\~6t?  
    ─ 运行求解器系统以检查是否能正常工作并给出预期的结果。 sO6t8)$b  
    ─ 通过双击结果(Result)设计标签页中的参数化(Parametric)求解器系统窗口,可以检查参数和结果。 z`2d(KE?  
    =lmh^**4  
    >S3 >b  
    7> ]C2!  
    optiSLang –设置优化 0ND7F  
    J~Ph)|AiS  
    参数化的求解器系统 P4AdfHk  
    ─ optiSLang可以进行多目标函数的光学系统优化。 W2B=%`sC  
    ─ 这可以在参数化(Parametric)求解器系统配置的判据(Criteria)标签页中定义。 #FQVhgc  
    CFA>  
    yTvK)4&  
    Oxvw`a#  
    optiSLang –设置优化 #3$|PM7,_  
    3gh^a;uC  
    参数化的求解器系统 ^KF'/9S  
    ─ 可以通过拖动均匀化对比度(Uniformity Contrast)到目标最小化(Objective Minimize)判据中定义第一目标函数。 {p\KB!Y-  
    ─ 因此优化算法会尽可能地使均匀度对比最小化。 t8+93,*B  
    ,5?MRqCM  
    m{yON&y  
    !58JK f  
    optiSLang –设置优化 !Ch ya  
    4>HGwk@+8  
    参数化的求解器系统 OE"Bb   
    ─ 可以通过拖动平均值(Mean)到目标最小化(Objective Maximize)判据中定义第二目标函数。 ou-;k }  
    ─ 因此优化算法会尽可能地使平均效率最大化。 ]rm=F]W/n  
    ─ 这步操作被称为多目标优化。 ?yb{DZ46  
    OY#_0p)i  
    Q!{Dw :7  
    h:NXO'  
    optiSLang –设置优化 $gTPW,~s[  
    ]>o2P cb;  
    优化向导 jYF3u0 )  
    ─ 下一步可以通过拖放来使用优化向导。 BSf"'0I&  
    3"n8B6  
    w1b <>A?87  
    :[39g;V}c  
    optiSLang –设置优化 ?0a 0 R  
    {;/o4[jlg  
    优化向导 *ZGN!0/  
    ─ 第一步,提供了各种系统参数,包括其指定的值范围。 7A6sSfPUy  
    ─ 此外,optiSLang提供了一个可视化的值范围,其中标出了初始值。 WGx>{'LJ  
    ─ 然后点击下一步。 '1 $({{R  
    xTZ5q*Hqx  
    NZ5~\k  
    optiSLang –设置优化 s`YuH <8  
    {LDb*'5Cy  
    优化向导 ,gc#N  
    ─ 第二步,如果在参数化的求解器系统中没有指定优化条件,则此时可以指定。 m~eWQ_a]C@  
    ─ 也可以从其他文档中输入条件。 Biy 9jIWI  
    ─ 然后点击下一步。 :bDA<B6bb  
    m5X=P5U  
    $H}Mn"G  
    -pu\p-Z  
    optiSLang –设置优化 Z B&Uhi  
    |hM)e*"  
    优化向导 KOx#LGz  
    ─ 第三步,选择优化方法。 BkfBFUDQ  
    ─ optiSLang提供了类似于红绿灯的建议形式来选择合适的方法: bicL %I2h  
     红:不适用 E;H(jVZ  
     黄:适用 ~7a BeD  
     绿:推荐 Q%2Lyt"(  
    ─ 该例中推荐使用进化算法。 ,?6m"ov4(  
    ─ 然后点击下一步。 ""^BW Re D  
    }8: -I Nj4  
    q?4uH;h:^G  
    pNFIO t:(  
    optiSLang –设置优化 <1BK 5%?  
    ie5ijkxZ(  
    优化向导 MA# !<b('  
    ─ 然后,需要指定一些附加选项。 TWEqv<c  
    ─ 建议在算法运行期间显示后期处理选项,以便在优化运行期间访问结果数据。 `&zobbwq  
    ─ 然后点击结束。 B [ ka@z7  
     eb@Lh!  
    qXGLv4c`Q  
    y03a\K5[KQ  
    optiSLang –进化算法的高级设置 vP NZFi-(  
    ,z )NKt#  
    高级设置 'LLx$y.Ei[  
    ─ 双击创建优化,可以调整优化算法的详细参数。 2z# @:Q  
    jgw'MpQm{  
    *AR<DXE L  
    optiSLang –进化算法的高级设置 F$ p*G][  
    $ow`)?sh  
    高级设置 &"%|`gE  
    ─ 双击创建优化,可以调整优化算法的详细参数。 F5[ITK]A4  
    ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 J4c4Os>3  
    ?Hxgx  
    p Y>-N  
    A;a(n\Sy  
    optiSLang –进化算法的高级设置 aEdJri  
    To%*)a  
    高级设置 -0WCwv  
    ─ 双击创建优化,可以调整优化算法的详细参数。 n12c075  
    ─ 在标签页“初始化”、“选择”、“交叉”和“突变”中授予算法中许多参数的权限。 S&]<;N_B  
    ─ 在标签页“其他”中,提供了一些预定义的参数,适用于大部分优化。(例如“EA 10000”) ~<[5uZIo  
    #n)W  
    Yf)|ws?!  
    NZW)X[nXM  
    optiSLang –进化算法的高级设置 <L ( =  
    GiO#1gA  
    高级设置 Rn_W|"  
    ─ 此外,作为附加选项,可以调整optiSLang是否自动保存。 D)7$M]d%  
    ─ 默认情况下,在计算每个设计迭代后,项目会自动保存。 ]l7\Zq  
    ─ 特别是对于计算时间短的设计,这会产生大量开销并减慢优化速度。 YkAWKCOni  
    ─ 因此,建议将自动保存选项设置为每50或100个完成的设计后保存。 02#Iip3t  
    eEGcio}_I9  
    ~w9 =Fd6  
    xp8f  
    optiSLang –设计计算的并行化 a{Hb7&  
    bok 74U]  
    并行化设置 ~G:2iSi(#  
    ─ 一些优化算法允许并行计算设计。 EQOP?>mWx!  
    ─ 例如,在进化算法的情况下,一代的所有成员设计的参数是已知的,因此可以同时计算以减少计算时间。 R{KIkv  
    ─ 为了允许并行计算,必须启用多个求解器。 nC.2./OwMf  
    ─ 通过双击VirtualLab求解器,可以找到此附加选项。 +y4AUU:Q  
    ─ 建议数量为CPU的一半到全部真实核心之间,具体取决于每个设计的计算并行化。 ! }?jCpp  
    S<]a@9W  
    _AB9BQm  
    4J 51i*`  
    optiSLang –开始优化 po2[uJ  
    D62 NU  
    运行优化 [gns8F#H\  
    ─ 单击场景(Scenery)中的进化算法(Evolutionary Algorithm)窗口。 b hr E  
    ─ 点击运行按钮开始优化。 tvH\iS#V  
    SP?U@w%}  
    S O:V|Tfj  
    [H:GKhPC`  
    optiSLang –优化结果 /< 7C[^h{-  
    DEQE7.]3q  
    优化结果 1LId_vJtJ  
    ─ 优化结束后,可以在新窗口中得到结果。 =Pb5b6Y@6  
    @?7{%j*  
    [+MX$y  
    C| L^Ds0  
    optiSLang –优化结果 u !3]RGJ  
    DMcxa.Sd!  
    优化结果 kAB+28A  
    ─ Pareto2D图以点云的形式同时给出了目标值、均匀度对比和平均效率。 {29S`-|P  
    ─ 用户能够为他的应用选择最合适的设计。 87pXv6'FQ  
    ─ 在这个例子中,选择了设计no.8842,具有~16%的均匀度对比和~20%的平均效率。 *zVLy^L_8  
    =e!l=d|/  
    s\C8t0C  
    ^2C /!Y<  
    optiSLang –优化结果 yB4H3Q )  
    pba8=Z  
    优化结果 :IVk_[s  
    ─ 每个设计都存储在子文件夹〜Optimization.opdEvolutionary_Algorithm中的optiSLang项目目录中。 A6NxM8ybn+  
    ─ 此目录中的每个文件夹(由设计编号命名)包含将设计再次导入VirtualLab所需的所有文件。 Gkv~e?Kc~^  
    pPyvR;NJ  
    4d e]?#=  
    =0PRAc  
    optiSLang –导入优化结果 ?)' 2l6  
    { 8f+h  
    导入优化结果 "\/^/vn?  
    ─ 要导入感兴趣的设计,使用Import optiSLang Results功能,选择相应的设计文件夹。 t `Y!"l  
    ─ 最后,可以在VirtualLab中进一步分析导入的LPD。 ![@T iM  
    H\| ]!8w5Z  
    hH1lgc  
    Wyq~:vU.S  
    总结 ran^te^Ks(  
    J}(6>iuQY?  
    作为总结,下表给出了初始和优化后的设计之间的光栅参数和性能标准的比较。 GjeUUmr  
    hr[B^?6  
     
    分享到