ZEMAX | 使用 ZPL 宏進(jìn)行優(yōu)化:ZPLM 操作數(shù)
本文介紹了如何通過使用 ZPLM 優(yōu)化操作數(shù)在評價函數(shù)編輯器 (Merit Function Editor )中使用 ZPL 宏定義復(fù)雜的優(yōu)化目標(biāo)。本文介紹了如何使用 ZPLM 約束系統(tǒng)的質(zhì)心,以確保其能正確地平衡。(聯(lián)系我們獲取文章附件)
簡介
OpticStudio 中有將近400個操作數(shù),幾乎可以將任何感興趣的值作為目標(biāo),包括SINE,PROD,SQRT 等數(shù)學(xué)操作數(shù),可以定義詳盡的評價函數(shù)。有時所需的值需要進(jìn)行復(fù)雜的計(jì)算,但是無法在評價函數(shù)編輯器中執(zhí)行。在這種情況下,可以使用優(yōu)化操作數(shù) ZPLM 執(zhí)行宏來確定操作數(shù)的值。運(yùn)行宏,并使用 OPTRETURN 關(guān)鍵字將值返回給評價函數(shù)。
ZPLM 操作數(shù)
ZPLM 操作數(shù)包含六個參數(shù): Mac#, Data, Hx, Hy, Px, Py
· Mac# 是 OpticStudio 應(yīng)該執(zhí)行的宏的編號。應(yīng)將與 ZPLM 操作數(shù)一起使用的宏另存為 ZPLnn.zpl,其中,00 ≤ nn ≤ 99。
例如,ZPLM 調(diào)用宏 ZPL03.zpl 時,Mac# 應(yīng)該為3。
· Data 是由宏計(jì)算出來的數(shù)據(jù)值。單個宏中最多可以計(jì)算51個數(shù)據(jù)值 (0 ≤ Data ≤ 50)。為了提高效率,僅當(dāng) Data = 0 時才執(zhí)行宏;否則,將使用來自先前宏調(diào)用的數(shù)據(jù)(即 Data = 0,至少需要調(diào)用一次)。
· Hx, Hy, Px, 和 Py 是可以傳遞給宏以用于計(jì)算的值,它們不一定必須是歸一化的視場/光瞳坐標(biāo):

下面的示例將說明與 ZPLM 優(yōu)化操作數(shù)一起使用的宏的定義。
ZPLM 示例:質(zhì)心約束
在某些光學(xué)系統(tǒng)(瞄準(zhǔn)鏡,雙筒望遠(yuǎn)鏡,安裝在三腳架上的照相機(jī)等)中,質(zhì)心是要考慮的重要的機(jī)械因素。假設(shè)我們正在設(shè)計(jì)瞄準(zhǔn)鏡,其中一個約束條件是使系統(tǒng)平衡。這意味著,質(zhì)心(CM)應(yīng)該位于前組元件和后組元件之間的中間位置。
加載示例文件:

出于本示例的目的,將做出一些簡化示例的假設(shè):
· 所有透鏡均旋轉(zhuǎn)對稱
· 所有材料為均勻介質(zhì)
· 每個透鏡的質(zhì)心都位于頂點(diǎn)的中間(嚴(yán)格來說,這僅適用于曲率相等且符號相反的透鏡)
表面1是全局坐標(biāo)參考(GCRS)
要限制質(zhì)心的位置需要有以下參數(shù):
· 每個元件的全局位置
· 每個元件的質(zhì)量
· 系統(tǒng)總長(前透鏡至后透鏡)
因此,將使用以下 ZPL 函數(shù)和關(guān)鍵字:
· GLCZ() 函數(shù)返回表面的全局 z 坐標(biāo)
· OPEV() 函數(shù)使用 TMAS 優(yōu)化操作數(shù)提取元件的質(zhì)量
· GETSYSTEMDATA 關(guān)鍵字返回總光路長度(表面1到像面)
· OPTRETURN 關(guān)鍵字將數(shù)據(jù)返回到宏
ZPLM 宏代碼
文章附件中“質(zhì)心”宏,如下所示:(聯(lián)系我們獲取文章附件)

將宏另存為:ZPL01.ZPL,以便可以使用 Mac#= 1調(diào)用它。
評價函數(shù)中的 ZPLM
在評價函數(shù)中,添加 Mac#= 1,Data= 0 的 ZPLM 操作數(shù),這將運(yùn)行宏并返回系統(tǒng)的質(zhì)心。

此處僅返回一個值,要返回其他值,只需在宏中添加額外的 OPTRETURN 行:
OPTRETURN data_number, value
在此示例中,不進(jìn)行優(yōu)化,但是,操作過程與其他操作數(shù)相同(即設(shè)置所需的目標(biāo)值和非零權(quán)重)。請注意,宏返回的值的單位可以是任意的,因此需要考慮ZPLM操作數(shù)的權(quán)重,以準(zhǔn)確地表達(dá)此目標(biāo)值相對于評價函數(shù)中列出的其他目標(biāo)值的重要性。特別是,此宏需要非常小的權(quán)重才能使ZPLM與其他針對系統(tǒng)性能的操作數(shù)保持平衡。
如前所述,ZPLM 可以使用最多四個值(Hx,Hy,Px,Py)將數(shù)據(jù)傳遞到宏。可以使用 PVHX(), PVHY(), PVPX(), PVPY() 數(shù)值函數(shù)在宏中訪問傳遞的值。在此示例中,可以將鏡筒質(zhì)心的位置和質(zhì)量傳遞給宏,以說明鏡筒和透鏡組合的質(zhì)心。
· Hx = 鏡筒質(zhì)心到系統(tǒng)中心的距離
· Hy = 鏡筒質(zhì)量 按照下圖修改宏,并將修改后的宏另存為ZPL02.zpl。

在評價函數(shù)中,將 Mac#設(shè)置為2,輸入鏡筒質(zhì)心位置(Hx)和質(zhì)量(Hy)的值,并注意報告的數(shù)據(jù)值的變化:

切記:僅當(dāng) Data = 0 時才執(zhí)行宏,以提高評價函數(shù)的評估速度。