Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差

本文介紹如何使用Zemax編程語言 (ZPL) 創(chuàng)建宏來計算和繪制用戶自定義的性能指標(biāo)。 在本示例中,系統(tǒng)的環(huán)帶垂軸色差 (Zonal Transverse Chromatic Aberration, ZTCA) 將被分析。在解釋了需要使用的基本算法之后,本文將描述如何將宏通用化以允許用戶進(jìn)行更加靈活的使用,包括用戶輸入和錯誤捕獲。作者 Alessandra Croce附件下載文章附件簡介假設(shè)我們要計算系統(tǒng)的環(huán)帶垂軸色差 (ZTCA)。ZTCA作為光瞳區(qū)域的函數(shù),定義為兩個波長在像平面上的光線高度差ZTCA = YF - YC基本算法如下:
  • 定義步進(jìn)式光瞳區(qū)域

  • 對應(yīng)追跡每個波長的邊緣光線

  • 減去y坐標(biāo)

  • 輸出結(jié)果

我們建議在編寫ZPL宏時將采用以下編程規(guī)范,使宏更易于閱讀:
  • 將所有變量寫成小寫形式

  • 將所有ZPL函數(shù)和關(guān)鍵字寫成大寫形式

  • 對IF和FOR循環(huán)采用文本縮進(jìn)

  • 賦予變量有意義的名稱 (例如 ray_angle  而不是 a)

  • 使用描述性注釋(例如使用  ! 或 #)

為了使宏更易于閱讀,OpticStudio具有內(nèi)置的文本編輯器,將語法突出顯示:Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖1初版宏的編寫對于此示例,我們將使用示例文件<Documents>\Zemax\Samples\Sequential\Objectives\ Doublet.zmx。將此文件加載到OpticStudio中,然后單擊“編程“ (Programming)...新建宏 ( New Macro)”:Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖2輸入以下代碼,以根據(jù)之前描述的算法流程來計算環(huán)帶垂軸色差 (ZTCA) :Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖3使用功能區(qū)上的第二個按鈕將宏另存至<Documents>\Zemax\Macros folder,命名為“ZTCA1.zpl“。Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖4然后,從“編程 (The Programming tab) ”選項(xiàng)卡中,從“宏列表 (Macro List) ”下拉菜單中選擇已保存的宏,或者從“編輯/運(yùn)行 (Edit/Run) ”中選擇它,然后單擊“運(yùn)行 (Run) ”。Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖5運(yùn)行宏時,將出現(xiàn)一個新的文本窗口,其中包含宏的輸出。在本示例中,輸出結(jié)果為環(huán)帶垂軸色差ZTCA,作為光瞳區(qū)域的函數(shù):Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖6請注意,此宏文件需要基于許多假設(shè),確保宏能夠正常運(yùn)行:
  • 邊界波長是 1 和 3

  • 步進(jìn)數(shù)為 10

  • 它僅計算軸上視場的環(huán)帶垂軸色差ZTCA

  • 無錯誤檢查功能

    • 如果只有一個波長怎么辦?

讓我們改進(jìn)宏,使其可以與其他文件一起使用。通用宏的編寫用戶自定義的步進(jìn)數(shù)我們可以使用 INPUT 關(guān)鍵字提示用戶輸入步進(jìn)數(shù),而不是使用固定值 10。在宏的開頭,刪除賦值“numsteps = 10”并按如下方式使用 INPUT :Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖7運(yùn)行宏時,“ ZPL宏輸入 (ZPL Macro Input) ”窗口將出現(xiàn):Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖8IF 語句通過函數(shù) INTE() 測試numsteps是否為正整數(shù),該函數(shù)將會對數(shù)值進(jìn)行四舍五入。GOTO 命令OpticStudio使用指定的LABEL命令將程序跳至某一行(向前或向后)。在這種情況下,我們使其跳到程序的結(jié)尾:Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖9盡管 END 在使用子例程時才被嚴(yán)格要求,但是使用它來指示宏的執(zhí)行在何處終止是一個良好的編程習(xí)慣。適應(yīng)不同的波長接下來,我們可以要求宏確定臨界波長(最小和最大),并將其用于光線追跡中。如果文件中僅定義了一個波長,我們也可以要求宏返回錯誤消息:Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖10現(xiàn)在,用于光線追跡的波長是minwav和maxwav,因此在 FOR 循環(huán)中,將行:RAYTRACE 0, 0, 0, py, 1RAYTRACE 0, 0, 0, py, 3用以下兩行替換:RAYTRACE 0, 0, 0, py, minwavRAYTRACE 0, 0, 0, py, maxwav錯誤檢查最后,我們可以使用 RAYE() 檢查光線追跡期間的錯誤。 因此,代碼變?yōu)椋?img src="https://support.zemax.com/hc/article_attachments/1500007668961/KA-01953_11_ZTCA2error.png" alt='Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖11' referrerpolicy='origin-when-cross-origin' />將宏另存為ZTCA2.ZPL并測試代碼正確性,確保您測試了每種錯誤情況:
  • 用戶定義的步進(jìn) < 1 或非整數(shù)

  • 僅1個波長

  • 光線錯誤

以下是20個光瞳區(qū)域的宏輸出:Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖12繪制數(shù)據(jù)除了輸出數(shù)據(jù)外,我們還可以使用 PLOT 或 PLOT2D 關(guān)鍵字來繪制數(shù)據(jù)。 PLOT 支持一個自變量和一個因變量,而 PLOT2D 支持兩個自變量和一個因變量。這兩個關(guān)鍵字都允許用戶充分控制繪圖格式,例如:
  • 標(biāo)題,坐標(biāo)軸圖例

  • X,Y 軸刻度

  • 注釋

  • 數(shù)據(jù)點(diǎn)和擬合線:顏色、樣式、大小

  • 窗口縱橫比

為了能夠繪制數(shù)據(jù),首先需要聲明兩個數(shù)組變量:一個用于光瞳坐標(biāo),一個用于環(huán)帶垂軸色差ZTCA。在用戶輸入和錯誤檢查代碼之后添加數(shù)組聲明:DECLARE pupil, double, 1, (numsteps + 1)DECLARE ztca, double, 1, (numsteps + 1)然后,在主循環(huán)內(nèi),您需要將值存儲在先前聲明的數(shù)組中,而不是將其輸出到屏幕上。 這意味著將此行:PRINT "Pupil zone = ", py, " ZTCA = ", yf-yc用下兩行替換:pupil(i+1) = pyztca(i+1) = yf-yc最后,在主循環(huán)之后添加代碼以創(chuàng)建繪圖:PLOT NEWPLOT BANNER, "ZTCA vs Py"PLOT TITLE, "Zonal Transverse Chromatic Aberration"PLOT TITLEX, "Normalized Pupil Coordinate (Py)"PLOT TITLEY, "ZTCA (mm)"PLOT RANGEX, 0, 1PLOT RANGEY, -0.005, 0.005PLOT DATA, pupil, ztca, (numsteps + 1), 1, 2, 0PLOT GOPLOT DATA 用于定義要繪制的一系列數(shù)據(jù)點(diǎn)。它需要以下參數(shù):
  • x_array, y_array, #points, color, style, options

在本例程中顏色 1 = 藍(lán)色 (Color 1 = blue), 樣式 2 = 虛線 (style 2 = dashed), 可選項(xiàng) 0 = 無數(shù)據(jù)點(diǎn)標(biāo)記 (option 0 = no data point markers)。PLOT 語法的完整說明可以在幫助文件部分的編程選項(xiàng)卡 (The Programming Tab) > 關(guān)于ZPL (About the ZPL) > 關(guān)鍵字(關(guān)于zpl) (KEYWORDS (about the zpl) ) > 繪圖 (PLOT) 中進(jìn)行了描述。現(xiàn)在將宏另存為ZTCA3.zpl并運(yùn)行它。 該宏將產(chǎn)生以下繪圖:Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖13

光研科技南京有限公司是國內(nèi)可靠的Ansys Zemax光學(xué)設(shè)計軟件代理商!公司已經(jīng)為廣大企業(yè),研究所以及高校提供了很多優(yōu)秀的相關(guān)產(chǎn)品和服務(wù),在行業(yè)內(nèi)建立了值得信任的口碑。

  Ansys Zemax光學(xué)軟件

  咨詢與訂購方式

  聯(lián)系人:光研科技南京有限公司徐保平

  手機(jī)號:15051861513

  微信號:13627124798

Ansys Zemax光學(xué)設(shè)計軟件技術(shù)教程:如何編寫ZPL宏:計算環(huán)帶垂軸色差的圖14
登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺客服

TOP

1