ZEMAX | 如何使用ZOS-API分析全息圖的結構條紋
在設計光學全息圖時,分析元件上的條紋頻率以確保可制造性是很重要的。本文提供了自定義分析,允許對序列全息圖 1、全息圖 2 和光學制造全息圖表面等類型進行此類研究。還提供了源代碼,用于演示如何通過 ZOS-API 創(chuàng)建自定義分析和準備設置對話框,用以開放用戶分析設置的自定義交互。(聯(lián)系工作人員獲取附件)
簡介
在 OpticStudio 序列模式中可用的工具允許通過兩束構建光的干涉來定義全息圖。由于全息圖的定義十分靈活,用戶可能使用過于密集的條紋圖案來模擬不可生產的全息圖。本文介紹了用于觀察全息圖條紋結構和密度的 ZOS-API 分析。
我們提供了用于用戶分析的源代碼作為示例。該分析使用了 UserAnalysisSettings 模式。雖然這不是一個完整的演練,但它演示了如何在 API 分析中設置參數值和獲取分析值。
準備運行分析
為了運行分析,請下載并解壓本文附件。解決方案文件和相關補充文件(源代碼文件等)可以在項目文件夾中找到??蓤?zhí)行的用戶分析文件“ Hologram Construction Interference.exe "應該保存到目錄“ …\Documents\Zemax\User Analysis\ ”內。在可執(zhí)行文件被保存后,應重新啟動 OpticStudio,然后在 編程 (The Programming Tab) … 自定義分析 (User Analyses) … 全息構造 (Hologram Construction Interference) 中,“ HologramFringes ”分析將變?yōu)榭捎谩?/p>
計算全息條紋數據
根據全息圖表面上任意點的相對路徑長度和兩個構造光源發(fā)射到該點的光線能量傳播方向的差異,可以計算出任意點上的干涉數據。自定義分析分為兩部分:第一部分是針對全息圖 1 和全息圖 2 表面的情況,第二部分是針對光學制造全息圖面的情況。前者使用純粹的幾何關系處理,但后者需要打開構造文件和執(zhí)行真正考慮構造光學元件的光線追跡。
為了計算光學制造全息圖 1 或 2 表面形式的全息條紋圖,我們可以簡單地追跡從這兩種全息圖結構到全息圖表面的光線,并檢查它們的相對路徑長度,以找到干涉圖。在自定義分析中,這種計算類似于基于路徑長度差的干涉圖方法。
對于條紋密度,這種計算是基于全息圖表面上給定點上構造光向量(光線方向余弦)的差值和構造光束波長的差值。在自由空間中,干涉如下描述:
在該表達式中, Λ 為條紋間距(密度的倒數), ro 和 rr 是構造光向量, f 是條紋面的正交方向。如圖所示,其中紅色虛線表示自由空間中的干涉條紋:
然而,OpticStudio 將全息圖建模為薄膜,代表除了在全息圖表面的平面上,在任何地方都不能有條紋。我們可以使用表面法線來考慮表面輪廓:
f' 處于薄膜平面內,所以 σ 是我們關心的值(即全息圖表面平面內的條紋間距),取這個值的倒數就可以得到條紋密度。需要注意的是,所有這些計算都是純局部的,因為確定在任何給定位置的條紋密度的計算是在整個全息圖表面的點網格上執(zhí)行的。
計算全息圖 1 和全息圖 2 表面的全息條紋頻率
在使用全息圖 1 和 2 表面的情況下,構造光源被定義為 XYZ 坐標中的點,在構造點和全息圖表面之間的光線路徑中沒有光學干涉。因此,對于全息圖表面上的每個點,我們可以通過純粹的幾何處理來計算兩個源點光線矢量的差,而不需要追跡光線。在這種情況下,對于全息圖表面上的每個采樣點,我們在兩個構造光源和該點之間分別作出一個矢量,然后利用這兩個矢量之間的差值以及波長來確定全息圖表面的條紋頻率。
計算光學制造全息圖的條紋頻率
光學制造全息圖的情況有點復雜,因為它們的特性包括兩個獨立光學系統(tǒng)產生的像差效應。當以 OFH 為分析對象時,我們必須分別打開每個構造 ZMX 文件(使用 IOpticalSystem 在后臺完成),并運行批量處理光線追跡來檢索全息圖表面網格中每條光線的方向余弦。在光線追跡中,我們也在給定的點檢索表面法向量,用于條紋密度計算。
分析設置
全息圖分析允許用戶繪制條紋頻率(每透鏡單位的條紋),或者直接在規(guī)范化尺度上顯示構造光束的干涉條紋。分析設置如下:
表面序號 (Surface Number):被分析全息圖表面的表面序號,只有有效的表面才會出現(xiàn)在該選項中(全息圖 1、全息圖 2、光學制造全息圖)。如果在系統(tǒng)中沒有找到有效的表面,則在加載分析時將出現(xiàn)錯誤提示。
采樣 (Sampling):用于探測干涉光線的網格采樣密度。追跡的實際樣本光線數是這里所示值的兩倍,因為兩個構造光束都需要光線網格采樣。
條紋縮放 (Fringe Scale):當“ 繪制條紋頻率 ”啟用時此功能將會被禁用。當將設置為繪制干涉時,這個比例因子決定了每個繪制的干涉條紋的實際物理干涉條紋的數量。例如,值 10 表示在圖中看到的每一條條紋,在全息圖表面都有 10 條實際物理條紋。對于高功率全息圖,可能需要極高的采樣率來查看完整的條紋圖案并避免混疊效果。增加這個比例因子可以消除混疊效應,同時保持相對較低的采樣。
繪制條紋頻率 (Plot Fringe Frequency):決定分析運行的模式。選擇此功能后將顯示條紋頻率(條紋/透鏡單位)。當未選中時,分析窗口將顯示帶有標準化單位的條紋圖案。
保存文本數據 (Save Text Data):允許用戶選擇性地將計算的原始數據保存為文本文件,該文件將被保存到與當前透鏡文件相同的目錄中。這里輸入的文本文件名不包含路徑,并以擴展名“ .txt ”結尾(即“ analysis.txt ”)。
在API中編寫自定義分析設置
當打開自定義分析時,將以 UserAnalysis 模式調用可執(zhí)行文件,這意味著我們只需調用 RunUserAnalysis() 函數,然后結束運行。在本例中,使用 RunUserAnalysis() 函數中定義的默認設置。加載分析之后,用戶可以從操作界面打開分析設置來選擇自定義選項。
在界面中,ZOS-API 自定義分析的設置窗口會像其他分析窗口一樣初始化,可以從窗口左上角的“ 設置 ”下拉列表中打開。點擊按鈕初始化 User analysis.exe 文件,但是使用不同的模式調用它,以避免調用 RunUserAnalysis 函數,而是調用 ShowUserAnalysisSettings 函數。在附加的源代碼中,這個輔助功能可以在文件的底部附近找到。在這個函數中,我們初始化了一個新的設置表單。在 Visual Studio 中,可以通過在解決方案資源管理器中的 AnalysisSettingsForm.cs 上右鍵單擊并選擇“ 打開 ”來看到設置窗口:
在這里,我們可以看到所有已定義的設置(按鈕、組合框等)。通過單擊單個按鈕,我們可以在屬性窗口中看到該設置的屬性,包括其名稱、類型和其他信息。您還可以從這里向表單引入其他設置實體。
這些設置實際上是通過調用 AnalysisSettingsForm() 函數在代碼中使用的。通過右鍵單擊 AnalysisSettingsForm() 函數并選擇“ go to definition ”,可以看到設置表單的定義。從那里,我們可以看到一些組件出現(xiàn)在設置列表內:
當第一次加載設置窗口時,將調用 AnalysisSettingsForm_Load() 函數。在這里,我們使用默認的用戶選項,并在設置表單的每個字段中填充默認值或之前選擇的值。
當單擊設置中的“ 確認 ”按鈕時,將調用 b_OK_Click() 函數。這就是實際運行用戶選擇設置的功能,我們將設置中的數值分配給全局變量,然后調用 RunUserAnalysis() 函數,該函數將從這些全局設置變量中獲取數值。
其他的功能允許用戶與其他設置交互。
點擊設置窗口中的 OK 按鈕后,返回程序的 ShowUserAnalysisSettings() 函數。我們使用 API 的 SetIntegerValue()、SetDoubleValue() 等函數獲取設置數值。最后,我們調用 RunUserAnalysis() 函數來使用所需的設置重新計算分析。在 RunUserAnalysis() 函數中,可以看到首先采取的操作之一是設置一些默認值,然后檢查設置窗口之前是否調用過。如果是,則通過 GetDoubleValue()、GetIntegerValue() 等獲取檢索用戶設置。這樣就完成了設置窗口和用戶分析計算之間的交互。
全息圖分析中的假設
假設全息圖表面的通光孔徑為圓形,由 LDE 的凈口徑/半直徑單元定義(忽略孔徑在 表面屬性 (Surface Properties) > 忽視孔徑 (Aperture are ignored) 中定義)。在光學制造全息圖的情況下,這仍然是正確的,因為全息圖的大小是由重構全息圖表面的通光半直徑決定的。建議對全息圖表面使用“ 浮動孔徑 (Floating Aperture) ”或“無 (None) ”光圈類型,以避免混淆。
對于光學全息圖,假設在所有三個文件(兩個構造文件和一個重構文件)中的系統(tǒng)單位是相同的。
該分析對曲面全息圖是有效的,在彎曲全息圖面上計算得到結果。對于所有類型的全息圖,在條紋密度計算中,條紋間距計算在采樣點處的全息圖表面的局部切平面內。在干涉圖視圖中,構造點到實際表面坐標(包括矢高)的路徑長度是根據路徑長度計算的。但是,由于結果被投影到 2D 數據網格中,所以在分析輸出時必須小心。特別地,對于全息圖 1 和 2,光線的柵格在表面通光半直徑上是等距的。對于光學制造的全息圖,光線在光瞳中是等間距的。還請注意,該分析目前僅適用于圓錐全息圖基底形狀。也就是說,不支持光學全息圖中復雜的表面矢高選項(光學全息圖的“ 形狀 ”參數必須為0)。
對于光學制造全息圖,重現(xiàn)全息圖的幾何形狀必須精確匹配結構文件中的光闌表面的幾何形狀。
構造文件中支持反射鏡。如果光學全息圖構造文件的光闌面在鏡像空間中(光線通過奇數面鏡子反射),則認為光線入射到光闌面的“ 前方 ”(即使它們沿 -Z 方向傳播)。
參考文獻
1. Welford, W. T. Aberrations of the symmetrical optical system Aberrations of optical systems. A. Hilger, Bristol ; Boston, 1986.
2. Welford, W. T. “A Vector Raytracing Equation for Hologram Lenses of Arbitrary Shape.” Optics Communications, vol. 14, no. 3, 1975, pp. 322–323., doi:10.1016/0030-4018(75)90327-2.