ZEMAX | ?OpticStudio 中如何輸入 Grid Sag 面型中的數(shù)據(jù)
概要
本文介紹了OpticStudio如何定義網(wǎng)格矢高(Grid Sag)面型并展示了如何正確輸入網(wǎng)格矢高數(shù)據(jù)。本文的示例文件請(qǐng)?jiān)谝韵骆溄又邢螺d:
http://forum.zemax.com/Attachment1571.aspx
http://forum.zemax.com/Attachment1572.aspx
介紹
Grid Sag 面型是基于一些基礎(chǔ)面型并通過(guò)在這些面型上添加矩形相對(duì)矢高陣列來(lái)定義的,這些基礎(chǔ)面型包括平面、球面、圓錐非球面、多項(xiàng)式非球面或澤尼克非球面。通過(guò)網(wǎng)格點(diǎn)陣定義的矢高值可相對(duì)于基礎(chǔ)非球面矢高存在一定偏心。表面形狀是通過(guò)對(duì)網(wǎng)格矢高參數(shù)進(jìn)行線性插值或雙三次樣條插值擬合來(lái)定義的。有關(guān)矢高定義的更多信息,請(qǐng)參考幫助文檔“網(wǎng)格矢高( Grid Sag)”。
輸入網(wǎng)格數(shù)據(jù)
網(wǎng)格點(diǎn)的所有數(shù)據(jù)必須在 OpticStudio 之外進(jìn)行制表和計(jì)算,其數(shù)據(jù)格式必須存儲(chǔ)在特定格式的文件中,并在表面屬性中的導(dǎo)入(Import )菜單欄中加載這個(gè)文件才能正確導(dǎo)入網(wǎng)格矢高面。OpticStudio 讀取的文件數(shù)據(jù)格式為:

其中第一行包含七個(gè)參數(shù),其中 nx 和 ny(整數(shù))為每個(gè)方向上網(wǎng)格點(diǎn)的數(shù)量且 nx 和 ny 必須大于等于5;unitflag 為數(shù)據(jù)的單位,0表示毫米,1表示厘米,2表示英寸,3表示米;delx 和 dely(浮點(diǎn)數(shù))為網(wǎng)格點(diǎn)陣在 x 和 y 方向上的間距;xdec 和 ydec(浮點(diǎn)數(shù))為坐標(biāo)偏移量(可選項(xiàng))。
剩下的 nx*ny 行的數(shù)據(jù)每行都包括四個(gè)浮點(diǎn)數(shù)和一個(gè)整數(shù)(可選項(xiàng))。其中四個(gè)浮點(diǎn)數(shù)分別為 Z 矢高;矢高在 X 方向的導(dǎo)數(shù);矢高在 Y 方向的導(dǎo)數(shù);矢高的交叉導(dǎo)數(shù) d/dxdy。第五個(gè)可選數(shù)據(jù) nodata 用來(lái)表示之前的數(shù)據(jù)是否有效,0或空行表示有效的數(shù)據(jù),其他整數(shù)表示無(wú)效數(shù)據(jù)。當(dāng)nodata 為其他時(shí),整行的數(shù)據(jù)將被替換為0,并且計(jì)算只考慮基礎(chǔ)面的矢高值。如果輸入的數(shù)據(jù)不是數(shù)字,則系統(tǒng)默認(rèn)將該數(shù)據(jù)替換為零。
第一行的數(shù)據(jù)對(duì)應(yīng)網(wǎng)格中左上角的點(diǎn)(沿 -Z 軸方向看去),即 -X 和 +Y 點(diǎn)。隨后的數(shù)據(jù)將從左至右定義這一行的點(diǎn)。定義完一行以后,將順次定義下一行(ny-1)的點(diǎn)直到所有的點(diǎn)都被定義。數(shù)據(jù)必須存儲(chǔ)為 ASCII 格式并且以 .DAT 為擴(kuò)展名(如果用于非序列模式,則擴(kuò)展名為 .GRD )。
各項(xiàng)導(dǎo)數(shù)值用于雙三次樣條曲線插值算法中,用作不同矢高數(shù)據(jù)點(diǎn)之間的平滑處理。線性插值算法不會(huì)使用這些參數(shù)。如果所有導(dǎo)數(shù)值(dz/dx,dz/dy,d2z/dxdy)為零或沒(méi)有輸入,則 OpticStudio 將使用有線差分算法(Finite difference method)自動(dòng)評(píng)估導(dǎo)數(shù)。
本文使用的示例文件 SAG.DAT,數(shù)據(jù)格式如下圖所示:

雙三次樣條曲線插值算法與線性插值算法的比較
表面上任意點(diǎn)的矢高擬合可以用兩種方法中的任意一種進(jìn)行計(jì)算。雙三次樣條算法是默認(rèn)算法,它同時(shí)對(duì)矢高及其一階導(dǎo)進(jìn)行插值計(jì)算并提供了更加平滑的結(jié)果。為獲得合理平滑數(shù)據(jù),首選雙三次樣條算法。但對(duì)于偽隨機(jī)形式的數(shù)據(jù)或波動(dòng)較大的數(shù)據(jù),雙三次樣條算法可能會(huì)得到非常極端的結(jié)果,這就意味著面數(shù)據(jù)的插值可能生成遠(yuǎn)離網(wǎng)格點(diǎn)的矢高值。對(duì)于這種情況,線性插值算法則會(huì)的到更加合理的結(jié)果。雙三次樣條或線性插值的選擇作為一個(gè)參數(shù)可由用戶選擇。
使用Grid Sag面型
對(duì)于樣條曲線的限制的重要信息請(qǐng)參考“樣條曲線表面的備注( Comments about spline surface )”。在 OpticStudio 中網(wǎng)格矢高表面(Grid Sag Surface)的參數(shù)定義形式為:

首先將表面類型設(shè)置為網(wǎng)格矢高(Grid Sag),注意在本例中我們使用雙三次樣條曲線插值算法,因此插值類型設(shè)置為0,如下圖所示:

然后打開(kāi)網(wǎng)格時(shí)高面的表面屬性菜單,單擊導(dǎo)入( Import )選項(xiàng)卡。再導(dǎo)入數(shù)據(jù)文件選擇框中選擇對(duì)應(yīng)的網(wǎng)格矢高數(shù)據(jù)文件。單擊導(dǎo)入完成網(wǎng)格矢高的數(shù)據(jù)輸入。如下圖所示:

數(shù)據(jù)將直接存儲(chǔ)在內(nèi)存中而不會(huì)顯示在鏡頭數(shù)據(jù)編輯器中。這是因?yàn)樾枰@示的數(shù)據(jù)量有可能會(huì)非常龐大。網(wǎng)格文件被導(dǎo)入后,用戶可以通過(guò)表面數(shù)據(jù)報(bào)告(Surface Data Report)來(lái)查看導(dǎo)入的數(shù)據(jù),如下圖所示:

同時(shí),網(wǎng)格數(shù)據(jù)將一直保存在內(nèi)存之中,OpticStudio 在進(jìn)行計(jì)算時(shí)將忽略原有的 .DAT 文件。如果需數(shù)據(jù)被改變,則用戶需要重新在表面屬性中導(dǎo)入更改后的 .DAT 文件。最終生成的網(wǎng)格矢高面如下圖所示:

網(wǎng)格矢高面的幾點(diǎn)使用建議
· OpticStudio 使用頂點(diǎn)的曲率半徑、非球面系數(shù)和網(wǎng)格點(diǎn)數(shù)據(jù)來(lái)計(jì)算網(wǎng)格矢高面的近軸光焦度。
· 網(wǎng)格的尺寸只受限于可用內(nèi)存的大小。每個(gè)網(wǎng)格點(diǎn)需要4個(gè)8比特的雙精度數(shù)據(jù)和1個(gè)1比特值的存儲(chǔ)空間。一個(gè)255x255點(diǎn)陣的網(wǎng)格文件大約需要 2Mb 的內(nèi)存。
· 雙三次樣條插值算法平滑至三階導(dǎo),它得到的結(jié)果在格點(diǎn)上有精確值且不需要很大的網(wǎng)格文件就能得到很平滑的表面面型,但不能準(zhǔn)確地模擬更高階的非球面。
· 網(wǎng)格矢高表面沒(méi)有定義網(wǎng)格邊界之外的部分時(shí),光線追跡到網(wǎng)格表面之外將被視為光線丟失錯(cuò)誤。在定義表面時(shí),將表面區(qū)域定義為比光線照射部分尺寸更大的面可以有效避免這一錯(cuò)誤。特別是不要將網(wǎng)格大小定義為與與光線照射區(qū)域相同的尺寸,否則光線追跡到網(wǎng)格表面邊緣時(shí)有可能不會(huì)再繼續(xù)追跡。
· 當(dāng)使用網(wǎng)格矢高表面模擬表面極度彎曲的光學(xué)器件時(shí),用戶最好將基礎(chǔ)面定義為相近的面型,再在此基礎(chǔ)上定義相對(duì)矢高,而不是直接用網(wǎng)格矢高面定義整個(gè)面型。
· 目前而言,OpticStudio 無(wú)法直接對(duì)網(wǎng)格數(shù)據(jù)進(jìn)行優(yōu)化或公差分析。