Ansys Zemax | 如何使用 Zenike 系數(shù)對黑盒光學(xué)系統(tǒng)進行建模
附件下載
聯(lián)系工作人員獲取附件
通常在設(shè)計光學(xué)系統(tǒng)時,即便沒有詳細的處方數(shù)據(jù)(比如曲率半徑、鏡片參數(shù)等),也需要對其進行表示。本文將介紹如何利用 Zernike 系數(shù)來描述光學(xué)系統(tǒng)的波前像差,進而在無法使用 Zemax 黑匣子表面文件時,生成一個雖簡單卻準確的光學(xué)系統(tǒng)表示。如果您依賴于使用光學(xué)系統(tǒng)測量的實驗數(shù)據(jù),但卻無法得到該光學(xué)系統(tǒng)對應(yīng)的處方數(shù)據(jù),那么通常就會出現(xiàn)上述所提及的情況。
介紹
在某些情況下,需要對光學(xué)子系統(tǒng)進行表示,而無需詳細掌握其處方參數(shù)。針對一階光學(xué)計算,采用近軸透鏡模型便已足夠;然而,當(dāng)涉及波前像差分析時,可借助 Zernike 相位系數(shù)構(gòu)建光學(xué)系統(tǒng)所產(chǎn)生波前的精確數(shù)學(xué)模型。
OpticStudio 具備完善的黑盒功能特性,從功能適配性角度而言,建議將其用于當(dāng)前任務(wù)需求。不過,若無法提供 Zemax 黑匣子文件,可參考并執(zhí)行以下操作流程。
Zernike 相位數(shù)據(jù)
如果您想在不透露處方數(shù)據(jù)的情況下將像差數(shù)據(jù)分發(fā)給客戶,則可以由 OpticStudio 生成這些 Zernike 相位系數(shù),或者如果您正在測量沒有處方數(shù)據(jù)的鏡頭,則可以通過干涉儀生成。根據(jù)您的干涉儀軟件,您可能已經(jīng)擁有OpticStudio Zernike 格式的數(shù)據(jù),網(wǎng)格相位數(shù)據(jù)或.INT文件。OpticStudio可以處理所有這些,但在本文中,我們將僅使用Zernike數(shù)據(jù)。
Zernike 相位數(shù)據(jù)表示光學(xué)系統(tǒng)在特定場和特定波長下性能的測量。因為有關(guān)玻璃、曲率半徑、非球面系數(shù)等的信息。不是 Zernike 數(shù)據(jù)的一部分,無法將 Zernike 數(shù)據(jù)縮放到不同的場或波長。因此,對于要模擬性能的每個(場、波長)對,您將需要一組 Zernike 相位數(shù)據(jù)。這些可以通過為每個(場,波長)組合提供一個單獨的文件或(更有可能)為每個(場,波長)對提供單獨的配置來輸入OpticStudio。
有一項關(guān)鍵例外情景:當(dāng)被建模的系統(tǒng)是全反射系統(tǒng)時,可以使用 Zernike 標(biāo)準 SAG 表面來模擬給定場點的所有波長下的性能。后續(xù)一期內(nèi)容將針對該特殊應(yīng)用場景展開詳細剖析與闡述。
起始設(shè)計
本文中使用的所有示例文件都包含在一個 zip 文件中,可以聯(lián)系工作人員獲取附件。我們將要看的第一個文件是“Cooke one field,one wavelength.zmx”,它基于 OpticStudio 分發(fā)的 Cooke 三元組示例文件。顧名思義,此文件基于單個(場,波長)對。

它的波前看起來像這樣:

它的光斑大小是這樣的:

現(xiàn)在,Zernike 系數(shù)是描述光學(xué)系統(tǒng)產(chǎn)生的波前誤差的緊湊方法。為了產(chǎn)生“黑匣子”模型,我們必須首先生成具有相同一階特性的近軸光學(xué)系統(tǒng),然后用 Zernike 數(shù)據(jù)像差該近軸系統(tǒng)產(chǎn)生的波前。
我們需要的關(guān)鍵近軸數(shù)據(jù)是出口瞳孔位置和出口瞳孔直徑。所有波前數(shù)據(jù)都是在出射瞳孔中測量的,因此我們的黑匣子系統(tǒng)必須具有相同的瞳孔數(shù)據(jù)。對于此文件,瞳孔數(shù)據(jù)如下所示:
· 出口瞳孔直徑 = 10.2337 mm
· 出口瞳孔位置 = -50.9613 mm
近軸當(dāng)量
打開文件“Paraxis Equivalent.zmx”。它模擬了相同的系統(tǒng),只有一個近軸透鏡表面:

請注意以下幾點:
1.它使用與原始設(shè)計相同的場和波長。
2.其入射瞳孔直徑設(shè)置為與原始系統(tǒng)的出射瞳孔直徑相同的值。在此文件中,入射瞳孔、停止曲面和出射瞳孔都位于同一位置。
3.近軸透鏡的焦距和到圖像表面的厚度均設(shè)置為等于原始文件的-1*出瞳位置。-1因子是因為EXPP是從圖像到瞳孔測量的,但表面厚度是從瞳孔到圖像的距離,因此需要改變符號。
4.系統(tǒng)具有與原始系統(tǒng)相同的一階屬性。
該系統(tǒng)的出瞳與原始系統(tǒng)的出瞳大小完全相同,位置相同。為了在近軸透鏡輸出上添加像差,我們在近軸透鏡之后使用 Zernike 標(biāo)準相位表面。我們的目標(biāo)是獲取原始透鏡的 Zernike 系數(shù),并將它們添加到近軸等效透鏡的 Zernike 表面上。

在鏡頭之間復(fù)制 Zernike 數(shù)據(jù)
返回“Cooke One Field One Wavelength.zmx”文件,然后單擊“分析...波前...Zernike 標(biāo)準系數(shù)”。OpticStudio 計算系統(tǒng)的波前,然后擬合一系列 Zernike 多項式。

波前的采樣和 Zernike 項的數(shù)量都可以由用戶通過“設(shè)置”對話框定義。確定波前是否充分采樣或 Zernike 項數(shù)量的關(guān)鍵參數(shù)是RMS擬合誤差和最大擬合誤差。此設(shè)計使用采樣和項數(shù)的默認參數(shù),可提供

這意味著,當(dāng)我們從 Zernike 系數(shù)重建的波前中減去實際波前時,誤差約為波的百萬分之一。這已經(jīng)足夠接近了!但是,一般來說,您可能需要調(diào)整波前采樣和最大 Zernike 項才能達到可接受的擬合。
我們現(xiàn)在需要將 Zernike 系數(shù)數(shù)據(jù)從這個設(shè)計轉(zhuǎn)移到近軸等效設(shè)計中。這可以通過打印出 Zernike 數(shù)據(jù)并重新鍵入來完成,但這很繁瑣。對于宏來說,這是一個很好的工作。
以下名為 Zernike Readout.zpl 的宏(也包含在本文的附件中),從此鏡頭獲取Zernike數(shù)據(jù),并將其以Tools...在額外數(shù)據(jù)編輯器上導(dǎo)入數(shù)據(jù)可以讀取。它經(jīng)歷的步驟如下:
首先,它定義了它需要的所有變量(L1-19)。
! This macro writes out the Zernike standard coefficients
! of a lens file in a format that can be directly imported
! into the Extra data Parameters of a Zernike Standard Phase surface
! First define the variables we need
! Enter whatever values are appropriate
! Use INPUT statements if you prefer
max_order = 37 # can be up to 231
sampling = 2 #sampling is 1 for 32x32, 2 for 64x64 etc
field = 1
wavelength = 1
zerntype = 1 # Get standard, not fringe or Annular coefficients
epsilon = 0 # only used for Annular Zernike coefficients
reference = 0 # reference to the chief ray
vector = 1 # use the built-in VEC1 array to store the data
output$ = "zernike.dat"
path$ = $PATHNAME() # save the data in the same location as the file we are using
file$ = path$ + "\" + output$
PRINT "Writing data to ", file$
(請注意,采樣和最大 Zernike 項應(yīng)設(shè)置為您用于上述 Zernike 分析的值。然后,宏將獲取Exit Pupil Diameter和Zernike-data(L21-27):
! Then get the Exit Pupil Diameter. Use VEC1 to store the data
GETSYSTEMDATA 1
EXPD = VEC1(13) # see the manual for the data structure
normalization_radius = EXPD/2
! Then get the Zernike coefficients up to the maximum required order
GETZERNIKE max_order, wavelength, field, sampling, vector, zerntype, epsilon, reference
請注意,Zernike 曲面的規(guī)格化半徑是“Exit Pupil Diameter”的一半。然后,宏將數(shù)據(jù)打印到 Zernike 標(biāo)準相位表面讀取正確格式的DAT文件(L29-43):
! Then write them out to file in the format needed for the Import Tool
OUTPUT file$
FORMAT 1 INT
PRINT max_order
FORMAT 9.8
PRINT normalization_radius
FOR order = 1, max_order, 1
z_term = order + 8 # offset to the correct location in the data structure, see manual!
PRINT VEC1(z_term)
NEXT order
OUTPUT SCREEN
! End
PRINT "Program End"
END
Zernike 數(shù)據(jù)輸入到ZernikeStandard Phase曲面的Parameter列中,如下所示:

將此宏放入 {Zemax}/宏文件夾中,單擊編程...ZPL宏...刷新列表,以便宏顯示在菜單列表中,然后運行它。它將在與原始OpticStudio文件相同的文件夾中創(chuàng)建一個名為“zernike.dat”的文件。如果在記事本中打開此文件,您將看到:

此文件包含 Zernike 標(biāo)準相表面所需的所有數(shù)據(jù)。第一個數(shù)字是 Zernike 項的數(shù)量,然后是歸一化半徑,然后是每個 Zernike 項。額外數(shù)據(jù)編輯器的導(dǎo)入工具可以直接讀取此文件。
返回到近軸等效透鏡文件。在 Surface 2 屬性的“導(dǎo)入”選項卡中瀏覽并打開 zernike.dat 文件:

按“導(dǎo)入”按鈕,成功導(dǎo)入數(shù)據(jù)后將出現(xiàn)Zemax消息框:

波前錯誤現(xiàn)在顯示:

和點圖顯示:

該文件所生成的光線追跡結(jié)果與原始文件完全一致。在本文附件的 zip 壓縮包中,文件“Zernike Equivalent.zmx”呈現(xiàn)了已構(gòu)建完成的系統(tǒng)模型。此外,文件“Direct Comparison.zmx”以兩種不同配置形式,分別展示了同一文件的原始版本及基于 Zernike 方法的轉(zhuǎn)換版本。通過這種配置方式,可以對文件兩個版本進行性能比對與分析。
