本文提出并演示了一種以二維光柵耦出的光瞳擴展(EPE)系統(tǒng)優(yōu)化和公差分析的仿真方法。
在這個工作流程中,我們將使用3個軟件進行不同的工作 ,以實現(xiàn)優(yōu)化系統(tǒng)的大目標(biāo)。首先,我們使用Lumerical構(gòu)建光柵模型并使用RCWA進行仿真。其次,我們在OpticStudio中構(gòu)建完整的出瞳擴展系統(tǒng),并動態(tài)鏈接到Lumerical以集成精確的光柵模型。然后,optiSLang用于通過修改光柵模型來全面控制系統(tǒng)級優(yōu)化,以實現(xiàn)整個出瞳擴展系統(tǒng)所需的光學(xué)性能。
本篇文章分為上下兩個部分,下將詳細(xì)描述“第3步:優(yōu)化設(shè)置的內(nèi)容”,附件可通過”點擊此處“跳轉(zhuǎn)原公眾號文章獲取。
我們將首先在Lumerical和OpticStudio中構(gòu)建仿真系統(tǒng),它們是動態(tài)鏈接的。參見Dynamic workflow between Lumerical RCWA and Zemax OpticStudio:https://support.zemax.com/hc/en-us/articles/6367505128979-Dynamic-workflow-between-Lumerical-RCWA-and-Zemax-OpticStudio。
然后,OpticStudio通過Python節(jié)點鏈接到optiSLang進行優(yōu)化,如圖1所示。
圖1 Lumerical通過動態(tài)鏈接到OpticStudio,OpticStudio 通過 Python 節(jié)點鏈接到 optiSLang,優(yōu)化由optiSLang控制。
如圖2所示,EPE系統(tǒng)包括兩個用于耦入和耦出的光柵。耦出光柵分為幾個區(qū),如左側(cè)所示。每個區(qū)都將經(jīng)過優(yōu)化,以具有不同的光柵形狀。右圖顯示了光在 k 空間中的傳播的變化情況。
有關(guān) k 空間的更多信息,請參閱以下文章:How to simulate exit pupil expander (EPE) with diffractive optics for augmented reality (AR) system in OpticStudio: part 1:https://support.zemax.com/hc/en-us/articles/1500005491081
圖 2 光柵布局圖以及光線在K空間的傳播
第3步:優(yōu)化設(shè)置(optiSLang)
3-2.參數(shù)系統(tǒng)
準(zhǔn)備好 Python 代碼后,我們就可以開始在 optiSLang 中進行優(yōu)化了。第 一步是在 optiSLang中打開一個空文件,拖動求解器向?qū)?,放入scenery中,然后選擇Python集成。
如下所示,會彈出向?qū)Т翱?,顯示Python代碼。我們將首先通過右鍵單擊變量(如 clen1)來設(shè)置參數(shù),然后選擇用作參數(shù)。我們將對從 clen1 到 power 的所有變量執(zhí)行此操作。如下所示,所選變量將顯示為左列“參數(shù)”。
設(shè)置完參數(shù)后,我們應(yīng)該測試 Python 代碼是否可以成功運行。為此,我們應(yīng)該打開OpticStudio并打開交互式擴展模式,如下所示。然后在求解器向?qū)е?,我們可以單擊向下箭頭并選擇“Test run with inputs”,如下所示。如果它運行良好,您應(yīng)該看到,在OpticStudio窗口中,交互式擴展的對話框?qū)@示為“已連接”。
如果測試運行失敗,其中一個可能的原因是 Python 環(huán)境不對。用戶可以更改設(shè)置,如下所示,以查看是否可以解決問題。
計算完成后(在我們的測試中大概需要 13 分鐘),我們應(yīng)該在日志中看到消息“Manual test run successfully processed”,如下所示?,F(xiàn)在,如果我們轉(zhuǎn)到***.opd文件夾(可以通過右鍵單擊系統(tǒng)頭并選擇“show working directory”輕松訪問),我們可以找到輻照分布被導(dǎo)出到文件夾“\Parametric_solver_system\design_data”中,這是Python代碼中指定的路徑。
類似于對參數(shù)的設(shè)置,我們可以對結(jié)果做相同的操作。在這里,我們將右鍵單擊 Python 代碼中的變量““Uniformity”, “Contrast”, 和 “TotalPower”然后選擇“Use as response”。然后,這 3 個變量將在Responses的右側(cè)列中顯示。
向?qū)У南乱豁撘笥脩舳x每個參數(shù)的參考值和范圍。參考值將只遵循我們在上一步中設(shè)置參數(shù)時的定義。范圍由設(shè)計師決定,沒有標(biāo)準(zhǔn)參考值。用戶可以在下載鏈接中查看隨附的optiSLang文件,作為在優(yōu)化過程中確定范圍的參考。請注意,此范圍是絕 對的。在優(yōu)化過程中,參數(shù)不會突破邊界。這與Zemax OpticStudio優(yōu)化的設(shè)置不同。
在向?qū)У南乱豁撝?,我們需要根?jù)給定的響應(yīng)設(shè)置條件。如下圖所示,我們可以將響應(yīng)拖到底部以設(shè)置約束或目標(biāo)。在這種情況下,我們設(shè)置了 3 個目標(biāo),以極小化對比度、均勻性以及極大化總功率。我們還可以為對比度和總功率設(shè)置 2 個約束來告訴 optiSLang,避免一些極端情況,即結(jié)果是均勻的,而總功率極低,或者相反的情況。
結(jié)果一頁不需要操作。單擊“完成”按鈕后,工作區(qū)中將顯示參數(shù)系統(tǒng)。
3-3.(可選)設(shè)置并行計算
本節(jié)中的操作不是必須的。在這里,我們將展示如何在optiSLang端設(shè)置并行計算以加快優(yōu)化速度。如果用戶擁有多個 Lumerical FDTD 求解器許可證,則可以考慮這樣做。要進行此設(shè)置,第 一步是右鍵單擊參數(shù)化系統(tǒng)塊,選擇“編輯”,然后將極限極大值并行設(shè)置為6或任何不大于 8的數(shù)字或Lumerical FDTD求解器許可證的總數(shù)量,如下所示。
注意我們需要做同樣的事情來右鍵單擊 Python 節(jié)點并選擇“編輯”。要設(shè)置詳細(xì)信息,我們需要首先單擊右上角的漢堡標(biāo)記,檢查屬性和占位符,然后單擊“確定”按鈕。然后我們可以將極大并行設(shè)置為6,如下所示。請注意,我們還需要在窗口的下部將極大值并行設(shè)置為6。如果先設(shè)置此參數(shù),上面的 MaxParallel 也會自動更改,但仔細(xì)檢查它是否按預(yù)期設(shè)置更安全。
然后,建議檢查“Retry execution”,將重試次數(shù)設(shè)置為 20,并將嘗試間隔延遲設(shè)置為 1000 毫秒。此設(shè)置可避免 optiSLang 嘗試訪問具有 1 個以上線程的同一 OpticStudio 實例的爭用條件。
如果并行設(shè)置是多個,在運行optiSLang時,我們還需要打開相同數(shù)量的OpticStudio實例,那么optiSLang可以為每個實例創(chuàng)建一個線程。
3-4.靈敏度以及優(yōu)化設(shè)置
下一步是設(shè)置靈敏度分析。一般來說,靈敏度分析是一種找出對響應(yīng)影響極大的極其重要參數(shù)的方法,并生成顯示響應(yīng)和參數(shù)變化之間關(guān)系的理想元模型,以更好地了解系統(tǒng)行為。
靈敏度系統(tǒng)可以通過將向?qū)蟿拥絽?shù)化系統(tǒng)塊來設(shè)置,如下所示。參數(shù)和條件將被復(fù)制,我們不需要再次設(shè)置。默認(rèn)情況下,它將建議AMOP模型,我們可以保留此設(shè)置。AMOP是一種迭代抽樣方法,將設(shè)計采樣到設(shè)計空間中,直到達(dá)到目標(biāo)標(biāo)準(zhǔn) - 極大設(shè)計或模型質(zhì)量。因為本模型具有高度非線性,無法達(dá)到足夠的模型質(zhì)量,因此在下一階段將進行實際運行優(yōu)化。
類似地,我們將優(yōu)化向?qū)系?AMOP 模塊中以進行優(yōu)化。請注意,當(dāng)它詢問優(yōu)化方法時,我們應(yīng)該選擇Real Run,因為該系統(tǒng)永遠(yuǎn)不會有高質(zhì)量的理想預(yù)后元模型(MOP)。MOP是在(Most and Will 2008)中提出的,它基于對理想輸入變量集和理想的近似模型(多項式或具有線性或二次基的MLS)的搜索。對于優(yōu)化算法,建議使用進化算法,它適用于非常不均勻和不連續(xù)的解空間。
3-5.開始優(yōu)化
用戶只需打開一個OpticStudio并在交互式擴展模式下準(zhǔn)備就緒即可。注意必須取消選中斷開連接時自動關(guān)閉,如下所示。請注意,如果并行計算已設(shè)置為6,如上所述,用戶將需要在此處打開相同數(shù)量的實例(例如6個),optiSLang將同時訪問所有實例。
當(dāng)一切準(zhǔn)備就緒后,我們可以單擊按鈕進行優(yōu)化。
在這個示例系統(tǒng)中,我們花了大約 2~3 天的時間在普通臺式 PC 上運行此優(yōu)化。
3-6.優(yōu)化結(jié)果
通過雙擊進化算法塊擴展的后處理可以找到優(yōu)化結(jié)果,如下所示。
下圖中的紅色標(biāo)記設(shè)計稱為帕累托邊界。一般來說,帕累托邊界顯示了多個目標(biāo)之間的權(quán)衡,即不存在一個設(shè)計在各項指標(biāo)上均優(yōu)于另一個的情況。這意味著所有這些設(shè)計都顯示了多個標(biāo)準(zhǔn)的不同平衡。我們選擇了 3 個結(jié)果,如下所示 。986號的對比度比946號高,同時看起來更均勻。這意味著這里使用的標(biāo)準(zhǔn)可以改進,以更好地匹配人類視覺。
以下是本文未涵蓋的一些注意事項,但用戶在嘗試為其系統(tǒng)遵循此過程時可能需要留意。
在本演示中,我們只考慮中心視場,即通常入射在波導(dǎo)上的準(zhǔn)直光束。為了更全面的優(yōu)化,可以添加更多視場以覆蓋全視野下的均勻性。
實際上,該系統(tǒng)僅設(shè)計用于單個波長。根據(jù)系統(tǒng)設(shè)計,優(yōu)化可以包括多個波長。
一些輻照度分布看起來更均勻,但對比度更高??梢酝ㄟ^修改 Python 代碼來改進標(biāo)準(zhǔn)。
相關(guān)閱讀
聯(lián)合方案 | Ansys二維光柵出瞳擴展系統(tǒng)優(yōu)化(上)
Zemax Lumerical Speos 聯(lián)合實現(xiàn)衍射光波導(dǎo)AR系統(tǒng)設(shè)計仿真
Ansys Speos 聯(lián)合 optiSLang 背光板設(shè)計優(yōu)化方案
Ansys Zemax 與 Speos 關(guān)于汽車投影燈解決方案
聯(lián)合方案 | Speos 和 Lumerical 聯(lián)合 optiSLang 的顯示屏優(yōu)化設(shè)計
聯(lián)合方案 | Zemax + Speos 助力HUD抬頭顯示器設(shè)計