亚洲综合图片区自拍_思思91精品国产综合在线观看_一区二区三区欧美_欧美黑人又粗又大_亚洲人成精品久久久久桥本

Zemax & Lumerical | 二維光柵出瞳擴展系統(tǒng)優(yōu)化

2023-05-25 14:24:17 來源:軟服之家

簡介


(相關資料圖)

本文提出并演示了一種以二維光柵耦出的光瞳擴展(EPE)系統(tǒng)優(yōu)化和公差分析的仿真方法。

在這個工作流程中,我們將使用3個軟件進行不同的工作 ,以實現優(yōu)化系統(tǒng)的大目標。首先,我們使用 Lumerical 構建光柵模型并使用 RCWA 進行仿真。其次,我們在 OpticStudio 中構建完整的出瞳擴展系統(tǒng),并動態(tài)鏈接到 Lumerical 以集成精確的光柵模型。最后,optiSLang 用于通過修改光柵模型來全面控制系統(tǒng)級優(yōu)化,以實現整個出瞳擴展系統(tǒng)所需的光學性能。

本篇文章將分為上下兩個部分。(聯(lián)系我們獲取文章附件)

概述

我們將首先在 Lumerical 和 OpticStudio 中構建仿真系統(tǒng),它們是動態(tài)鏈接的。

然后,OpticStudio 通過 Python 節(jié)點鏈接到 optiSLang 進行優(yōu)化,如圖1所示。

圖1 Lumerical 通過動態(tài)鏈接到 OpticStudio,OpticStudio 通過 Python 節(jié)點鏈接到 optiSLang,優(yōu)化由 optiSLang 控制。

如圖 2 所示,EPE 系統(tǒng)包括兩個用于耦入和耦出的光柵。耦出光柵分為幾個區(qū),如左側所示。每個區(qū)都將經過優(yōu)化,以具有不同的光柵形狀。右圖顯示了光在 k 空間中的傳播的變化情況。

圖 2 光柵布局圖以及光線在K空間的傳播

第 1 步:系統(tǒng)設置 (Lumerical)

打開附件中的 ZAR 文件時,兩個光柵文件會被提取到設置的路徑中。第一個光柵如圖 3 所示,它是耦入光柵中使用的二元光柵。該光柵是固定的,在優(yōu)化過程中不會改變。

圖 3 耦入光柵結構為二元光柵。

第二個 .fsp 文件如圖 4 所示,它是一個具有 7 個變量的平行四邊形柱體。在優(yōu)化期間,耦出中的每個區(qū)都將使用不同的變量組合集進行優(yōu)化 。有關優(yōu)化設置的更多信息將在優(yōu)化設置部分中進行說明。

圖 4 耦出光柵中的結構為平行四邊形支柱。

這兩個.fsp文件都是用動態(tài)鏈接的形式在 OpticStudio 中用于模擬完整的EPE系統(tǒng)。

第 2 步:系統(tǒng)設置(OpticStudio)

如圖5所示,在該系統(tǒng)中,準直光束入射到耦入光柵上,通過波導傳播,并與第二個光柵耦合。眼盒位于第二個光柵的較遠部分。優(yōu)化的目標是優(yōu)化眼盒接收的均勻性和總功率。

圖 5 初始EPE系統(tǒng)和眼盒輻照度。

在附件中有一個 OpticStudio 中建立的整個EPE系統(tǒng)的 zar 文件。如圖 6 所示,僅構建了第二個光柵一半的區(qū)域。這是因為系統(tǒng)具有對稱性。從圖 7 可以看出,探測器的參數鏡像設置為 1,這意味著在光線追跡期間,將始終對-x和+x部分進行鏡像。這樣一來,我們可以只用一半的光線獲得相同的模擬結果。

圖 6 OpticStudio 中的 EPE 系統(tǒng)設置。

圖7 探測器的鏡像參數設置為 1,這意味著該探測器在 x 方向上鏡像。

可以看出, 系統(tǒng)中的所有光柵物體都已使用動態(tài)鏈接 DLL 進行設置,如圖 8所示。

圖 8 為 EPE 系統(tǒng)中的光柵加載動態(tài)鏈接 DLL。

第3步:優(yōu)化設置(optiSLang)

3-1.Python 用于評估系統(tǒng)

附件中包含了一個 python 文件 EPE_2D_for_optiSLang.py,用于將 optiSLang 鏈接到OpticStudio。使用python代碼將 Ansys optiSLang 附帶的優(yōu)化器與求解器Ansys Zemax OpticStudio + Ansys Lumerical 鏈接非常有用。優(yōu)勢在于可以在每個優(yōu)化周期中進行數據的預處理跟后處理,靈活性非常高。本章節(jié)會對代碼結構進行解釋。

代碼的基本結構首先由 OpticStudio 中的按鈕生成,如圖 9 所示。

圖 9 生成 Python 交互式擴展代碼的樣板。

另外幾個模塊被導入到樣板中。模塊 numpy,scipy 用于對來自眼盒的輻照度數據進行后數據處理。模塊matplotlib用于在眼盒上繪制和導出輻照度以供以后查看。導入 time 和 random 模塊,以便計時器跟蹤計算時間。

通過嘗試讀取變量 OSL_WORKING_DIR,我們可以知道這個 Python 代碼是由 optiSLang 調用還是手動調用。當 optiSLang 調用 Python代碼時,將創(chuàng)建一些稱為環(huán)境變量的變量來傳遞一些 optiSLang 信息。即使這些變量未在 Python 文件中定義,當 optiSLang 調用代碼時,它們是可用的。

在這個 Python 代碼中,有32個變量,如 clen1、h2、rot4、w1 和 power,用于優(yōu)化,需要由 optiSLang 定義。我們會將這些變量設置為 optiSLang 中的參數,在靈敏度分析或優(yōu)化時,optiSLang將自動改變它們的值。如果我們不是從 optiSLang 直接運行這個 Python 代碼,那么這些變量的值將是常量,如下面的代碼所示。

如圖10所示,每個區(qū)的光柵參數是通過預設的4個角的數據通過插值來確定的。其中 ν 是 dC、dR、dL、θC、θR、θL 、h ,n 是 1,2,3,4,對應于 4 個角。通過這個公式,每個區(qū)上的7個光柵參數可以通過具有一定權重(wn)和非線性值(p)的4個角的參數來控制。

圖 10 從 4 個角插值的各個區(qū)的參數計算。

optiSLang 按照預定義的優(yōu)化算法改變這些參數。不同的參數值被設置到 python 代碼中,這將進一步設置 OpticStudio 中每個光柵塊的參數。在這個過程中,Python代碼扮演著將這些變量轉換為 OpticStudio 中精確參數的工作。只有當我們使用 optiSLang 而不是 OpticStudio 中的內置優(yōu)化器優(yōu)化系統(tǒng)時,這種預數據處理才有可能。通過這種方式,optiSLang 可以根據一些未直接暴露在OpticStudio UI中的虛擬或高級變量來優(yōu)化系統(tǒng)。

設置參數后,我們使用以下代碼段追跡光線。

使用 optiSLang 優(yōu)化系統(tǒng)的另一個好處是數據后處理。在這個優(yōu)化過程中,我們不會直接優(yōu)化眼盒上的輻照度分布。我們首先使用瞳孔函數對輻照度分布進行卷積,如圖11所示,然后將優(yōu)化目標設置為該卷積結果的均勻性。這個結果的x和y軸可以解釋為人眼在眼盒中的偏移。z軸是人眼看到的平均輻照度。

圖 11 使用瞳孔函數對輻照度分布進行卷積.

根據卷積結果,我們可以計算對比度 、總功率和均勻性,如下所示。

這些標準的代碼定義如下。在這種情況下,我們主要希望針對 Contrast 和 Total Power 進行優(yōu)化。均勻性的功能類似于對比度,兩者都希望眼盒上的輻照度均勻。盡管它們用于相同的目標,但它們使用不同的定義,在這里我們考慮兩者。

Python 代碼的最后一部分,如下所示,繪制了眼盒輻照度的結果及其卷積結果。然后導出圖片。這對于用戶直接在 optiSLang 后處理中檢查每個優(yōu)化系統(tǒng)的輻照度分布非常有用。

進一步的設置詳解我們會在后續(xù)的文章中,進行介紹。

標簽:

上一篇:SOLIDWORKS教育版優(yōu)勢有哪些
下一篇:最后一頁