ZEMAX | 如何進行序列模式公差分析
本文以單個透鏡為例介紹了如何進行公差分析。適合初學(xué)者閱讀。
簡介
公差分析是面向制造和裝配的產(chǎn)品設(shè)計中非常重要的一個環(huán)節(jié)。本文簡單地介紹了公差分析的基本流程,目的是為了讓初學(xué)者對公差分析有一定的了解。知識庫中也有針對特殊應(yīng)用的公差分析的文章。聯(lián)系我們下載文章中的附件。
系統(tǒng)設(shè)置
本設(shè)計的目的是:設(shè)計一款批量生產(chǎn)的激光擴束器。光源為:氬離子激光,1/e2 時光束寬度為:2.5mm。目標(biāo):光束出射時 1/e2 的光束寬度為原來的3倍,波前差必須小于兩倍的光束全寬不超過1/20 RMS(即:整個光束直接控制在 5mm 以內(nèi))。
在附件 “Beam Expander.zmx” 中,打開 Layout 圖。本例由兩個平凸透鏡構(gòu)成:

在觀察系統(tǒng) OPD 圖,系統(tǒng)的設(shè)計性能遠(yuǎn)遠(yuǎn)超過了產(chǎn)品的要求。

由圖可知:坐標(biāo)軸的最大刻度為 0.01 waves, PTV 光程差(peak-to-valley OPD)少于1/200。RMS 波前差為(可通過建立預(yù)設(shè)的波前評價函數(shù)得到)2.15*10-3 waves。請注意:本例中系統(tǒng)的孔徑類型(system aperture)中設(shè)置了高斯切趾(Gaussian apodization),入瞳直徑為 5mm,切趾系數(shù)為2。因此光瞳邊緣的強度相對于峰值大約為1/e4=1.8%。
這就體現(xiàn)了正確設(shè)置系統(tǒng)參數(shù)的重要性了。1/e2 直徑為 5 mm 的激光照射的系統(tǒng)的結(jié)果(RMS OPD:~2*10-3waves)與均勻光照射的結(jié)果(RMS OPD :3*10-3waves)肯定是不同的。因為當(dāng)光源為高斯光時,球差在光瞳邊緣的效應(yīng)相比于均勻光入射小很多。
接下來,我們來考慮制造誤差對系統(tǒng)的影響。
制造公差
公差分析目的是考慮制造誤差對系統(tǒng)的影響,因此設(shè)計時必須考慮實際的制造情況。為了能夠更好地分析公差,模擬出符合實際的情況,首先我們應(yīng)該了解系統(tǒng)所用鏡片在批量生產(chǎn)時的制造流程和測試方法。
Zemax OpticStudio 能夠模擬出各種各樣的制造和測試方式。本文范例中,我們假設(shè)系統(tǒng)透鏡是使用傳統(tǒng)的手動拋光制造。
制造公差可以在公差編輯器(Tolerance > Tolerance Data Editor)中設(shè)定。公差向?qū)В═olerance > Tolerance Wizard)可以幫助使用者加入一組常用的預(yù)設(shè)公差,必要時可手動編輯修訂。公差向?qū)У脑O(shè)定如下:

圖中表面公差(Surface Tolerance)中主要包括鏡片的表面誤差,例如半徑(Radius)、表面不規(guī)則度(Irregularity)等。元件公差(Element Tolerance)則包含了透鏡在系統(tǒng)中的位移和傾斜公差。由所給的預(yù)設(shè)公差設(shè)定分析,可以看出:
曲率半徑: 傳統(tǒng)的公差測試方法通過使用測試板并利用 He-Ne 激光器照射到雙光路系統(tǒng)中觀察其干涉環(huán)。本例中,我們使用條紋數(shù)來評估半徑,并且允許待測表面和原器件之間有1個條紋的公差。
因為光源為 He-Ne 激光,因此我們將波長設(shè)定為0.6328。注意這并不是系統(tǒng)實際工作時的波長而是測試時所用的波長(實際工作為氬離子激光波長為0.5415微米)。
中心厚度:預(yù)設(shè)的公差為 0.2mm,這里我們?nèi)孕杩紤]透鏡的安裝誤差,下文會詳細(xì)討論這一部分。
表面偏移以及傾斜: 這里我們需要注意,對于非球面表面來說離心和傾斜是兩個不同的概念,例如拋物面鏡必須分別描述離心和傾斜公差,因為拋物面只有一個旋轉(zhuǎn)對稱軸。但是對于球面來說它有無限個旋轉(zhuǎn)對稱軸,因此離心和傾斜代表同一概念。
在鏡頭制造時,一種常見的測量就是測量鏡片的楔形公差(Wedge)。楔形公差有兩種測量方法:將透鏡真空吸附固定(1)將激光照射到鏡片中心,旋轉(zhuǎn)透鏡觀察遠(yuǎn)方屏幕上光點的運動;(2)旋轉(zhuǎn)透鏡使用針盤量規(guī)(Dial Gauge)測量邊緣厚度的變化。接著微調(diào)透鏡位置,盡量縮小上述測試中楔形值。
本例中,我們假設(shè)制造商使用邊緣厚度變化作為測試方法。我們在 X、Y 兩個方向輸入0.2mm的最大傾斜,因此最大的傾斜半徑為 sqrt(0.22+0.22)=0.28mm。
表面不規(guī)則度:可以定義為球差和像散的總和(在樣板測試的干涉圖樣中通常顯示為形似“眼睛”的圖樣),也可以使用 Zernike 系數(shù)來定義(主要是測量儀器為干涉儀時才這么定義)。本例中,我們使用第一種方法,并且設(shè)定表面不規(guī)則度為1/5。
元件公差: 主要測量系統(tǒng)的“機械軸”對元件的偏差程度。
折射率公差: 描述了實際的折射率與目標(biāo)設(shè)定值之間的差異。在本范例中只用到了一個波長,所以我們不需要提供阿貝數(shù)(Abbe Number)公差,只需要簡單地分析折射率公差就可以了。
Zemax OpticStudio 也能夠建立后焦距的補償器。因為本例中系統(tǒng)是無焦的,所以不需要這個補償,要將補償器的選項取消。
最后點擊 OK 則完成一組默認(rèn)公差的建立。
在下一節(jié)中,我們將討論機械安裝與補償器。
機械組裝和補償器
本例中,系統(tǒng)是由兩個平凸透鏡構(gòu)成,因此我們可以假設(shè)透鏡表面中平的那一面用來組裝對位,也就是這一表面會靠在組裝結(jié)構(gòu)上,同時,假設(shè)兩透鏡之間的距離200mm可以在組裝以及使用時調(diào)整,這樣該激光擴束器就可以用在不同的波長上。
觀察表面2和表面3構(gòu)成的透鏡,由于表面3是平面,也就是說表面3會靠在機械結(jié)構(gòu)上,所以可以使用 TIRX 和 TIRY 來定義表面2相對于表面3的楔形公差。同時,我們不應(yīng)該指定表面3的 TIRX 和 TIRY,這些可以刪除掉。
類似地,對于表面4和表面5構(gòu)成的透鏡,表面4靠在機械結(jié)構(gòu)上。因此表面5的楔形公差是相對于表面4的,所以應(yīng)該刪除表面4的 TIRX 和 TIRY。
“厚度”定義了兩元件之間Z方向的位移量,設(shè)置一個表面的厚度公差不僅僅會影響到所設(shè)置的表面,也會影響到系統(tǒng)的其他表面。我們需要了解組裝過程是如何影響厚度公差的。
當(dāng)?shù)谝粋€透鏡的背面承靠在機械結(jié)構(gòu)上,公差分析增加厚度意味著透鏡會“往回增長”,并且光學(xué)系統(tǒng)的長度會增加。

TTHI(厚度公差)允許我們指定一個“調(diào)節(jié)面”來修正厚度變化。例如,如果透鏡的前表面被承靠在機械結(jié)構(gòu)上,并且它的厚度在公差分析時額外增加了,這時透鏡將會往200mm的空氣間隔方向上稍微突出一點,因此實際的空氣間隔會小于200mm。Zemax OpticStudio 可以通過 “Adjust” 參數(shù)實現(xiàn)這一功能。

默認(rèn)公差是假設(shè)所有的透鏡厚度都會被下一個空氣界面所吸收,即系統(tǒng)假設(shè)這個透鏡的承靠面都是前表面。這個調(diào)節(jié)參數(shù)是可開可閉的,如果要關(guān)閉它只要把 “Adjust” 參數(shù)和 “Surf” 設(shè)置一樣既可,例如:TTHI 2 2。本文范例中,玻璃的厚度并不會被其他厚度所補償,因此我們需要取消這一范例中的補償設(shè)定。
此外,表面1和表面5的厚度其實不重要,他們只是表示光線的進出而已,因此對應(yīng)的公差操作數(shù)也可以刪除。
因為表面3的厚度(兩透鏡之間的200mm空氣間隔)可以在組裝和實際使用中調(diào)節(jié),所以不應(yīng)該設(shè)定為公差分析中的一部分,表面3的 TTHI 設(shè)定也應(yīng)該刪除。同時,表面3的厚度將會被設(shè)定為補償器,用來調(diào)節(jié)波前差的最小化,設(shè)置方法是在 Tolerance Data Editor 中輸入:COMP 3 0 -0.2 +0.2,代表定義了一個厚度補償器,范圍是-0.2~+0.2mm。

該文件被保存為附件中的 "Beam Expander Ready for Tolerancing.zmx" 。
測試公差分析設(shè)定
在公差分析的過程中,人們往往會忽略檢查公差分析設(shè)定的正確性。這很重要,因此我們建立一些 Monte-Carlo 分析,并了解系統(tǒng)做了些什么事情。
打開 “Tolerance > Tolerancing”,先點擊 "Reset" 恢復(fù)所有的預(yù)設(shè)設(shè)定,然后再按照下面步驟進行設(shè)定:


這些設(shè)定表示 Zemax OpticStudio 只會建立 Monte-Carlo 分析檔案,文件名為 “MC_Txxxx”,其中 xxxx 是數(shù)字。點擊 OK 執(zhí)行上面步驟,并打開其中一個文件,你會看到如下設(shè)定(實際數(shù)字可能會有所不同)。注意在執(zhí)行公差分析時會有如下警告信息: “Solves should be removed prior to tolerancing. Semi-diameter should be fixed” , 在本例中可以不予考慮。

從上圖中,可以看到 Zemax OpticStudio 的分析過程。例如 “Element Tolerances” ( TE**操作數(shù))被設(shè)置為一些 Coordinate Break ,從而使元件傾斜或者離心。原本設(shè)定中是 Standard 的表面現(xiàn)在被設(shè)置為了 Irregular 的表面形態(tài),因此可以考慮球差或者像散。同樣,透鏡參數(shù)例如厚度、半徑、玻璃材料等現(xiàn)在都不是原始值,而是加入了一些擾動來模擬公差。注意:兩個透鏡之間的厚度被設(shè)定為變量,并且評價函數(shù)被定義為:

請仔細(xì)查看 Monte Carlo 文檔,以確保你了解并認(rèn)可 Zemax OpticStudio 為公差分析所作的改變。
設(shè)置 (Set-Up) 選項卡
重新打開公差分析前原始的 Beam Expander 文件,打開 OPD 圖,將坐標(biāo)軸刻度最大值調(diào)節(jié)到 0.1waves。

我們一會用這個圖和 Monte-Carlo 結(jié)果比較。接著,再次打開公差分析設(shè)定窗口,點擊 “Reset” ,取消之前的改變并恢復(fù)預(yù)設(shè)值。然后按照如下步驟進行公差分析。Set-Up 選項卡的內(nèi)容應(yīng)該如下:

對于 “Mode” 中各項的解說如下:
Sensitivity模式會讀取每一個公差操作數(shù)的最大和最小值,并計算評價標(biāo)準(zhǔn)(Criterion) 的值會有多大的改變,最后列表整理。公差分析評價標(biāo)準(zhǔn)的定義在 “Criterion” 區(qū)域中設(shè)定,下一章 “Criterion 區(qū)域”會詳細(xì)介紹。
Inverse Limit 模式下,使用者可以在 “Criterion” 區(qū)域中指定一個評價標(biāo)準(zhǔn)極限。然后系統(tǒng)會計算每一個公差操作數(shù)偏離多少時會得到這個評價標(biāo)準(zhǔn)的極限值。Inverse 表示逆向,它會改變公差操作數(shù)的最大最小值。
Inverse Increment 模式與 Inverse Limit 接近,不同的是 Inverse Increment 指定的是相對于原始設(shè)計評價標(biāo)準(zhǔn)所允許的變化量。
Skip Sensitivity 模式將會略過所有的敏感度分析,直接開始 Monte Carlo 分析。
我們將不會討論這個設(shè)定框中其他的設(shè)定,請在 Help 文件中查找具體的設(shè)定細(xì)節(jié)。本例中選擇 “Sensitivity” 模式。
評價 (Criterion) 選項卡
這個選項卡主要是設(shè)定在公差分析過程中要應(yīng)用的評價標(biāo)準(zhǔn)。這邊的設(shè)定通常與評價函數(shù)有關(guān),但不完全是評價函數(shù)。
公差分析的評價標(biāo)準(zhǔn)通常是純光學(xué)的數(shù)值(優(yōu)化函數(shù)則還會包含一些邊界條件)。為了方便,Zemax OpticStudio 提供了一些最常用的公差評價標(biāo)準(zhǔn),使用者可以直接在下拉菜單中選擇,這些選項包含:
· 點列半徑 Spot radius
· 波前差 Wavefront error
· MTF
· 瞄準(zhǔn)誤差 Boresight error
· 角空間半徑 Angular radius
不論選擇哪一個,他們在后臺都通過評價函數(shù)來實現(xiàn),如果有需要也可以建立自己的評價函數(shù),設(shè)定自己的公差評價標(biāo)準(zhǔn)。
在本文中,我們的設(shè)定如下:

設(shè)計目標(biāo)中要求系統(tǒng)的波前差不超過1/20,即 0.05waves 。換句話說,我們需要使用 RMS 波前差作為公差的評價標(biāo)準(zhǔn),我們使用 DLS 優(yōu)化器來優(yōu)化透鏡的間隔。Cycles 選擇3,因為在實際的微調(diào)過程中,工人們并不會耗時耗力的去完成它。本文中, 3個循環(huán)是足夠的。
蒙特卡羅 (Monte Carlo) 選項卡
不像 Sensitivity 或者 Inverse sensitivity 分析,Monte-Carlo 分析會讓所有的擾動同時生效。Monte-Carlo 的每進行一次循環(huán)計算,所有被設(shè)定為公差的參數(shù)都會在設(shè)定范圍內(nèi)根據(jù)指定的統(tǒng)計模型隨機選取。默認(rèn)中,所有的公差操作數(shù)都使用一樣的正態(tài)分布,其寬度為4個標(biāo)準(zhǔn)差,兩端分別為公差操作數(shù)的最大和最小值。默認(rèn)分布模型可以使用 STAT 指令改變,這部分超出了這篇文章的討論范圍。本文中,設(shè)定 Monte-Carlo 選項卡如下:

對話框中有 "Overlay MC Graphics" 選項,如果勾選則系統(tǒng)每次 Monte Carlo 會自動更新繪圖窗口,并把計算結(jié)果疊加上去。這是一個很好的視覺化功能,可以協(xié)助判斷公差分析能否達(dá)到令人滿意的結(jié)果。
顯示 (Display) 選項卡
在 Display 選項卡中的設(shè)定并不會影響公差分析,只是定義公差分析的報告中的數(shù)據(jù)量。

到此設(shè)定結(jié)束,點擊 OK ,執(zhí)行公差分析。
首次公差運行
因為我們之前設(shè)定了重疊 Monte-Carlo 分析圖,并且在軟件中我們打開了 OPD 圖,因此可以看到 OPD 圖中看到20個 Monte-Carlo 循環(huán)計算的結(jié)果:看起來距離我們的目標(biāo)0.05的 RMS 波長還很遠(yuǎn)。

在敏感度分析 (Sensitivity Analysis) 的過程中,Zemax OpticStudio 首先計算原始設(shè)計系統(tǒng) (nominal system) 的公差標(biāo)準(zhǔn),讀取第一個公差操作數(shù),將其調(diào)整到最小值,調(diào)整補償器(優(yōu)化),返回公差評價標(biāo)準(zhǔn)值。然后再重復(fù)操作,但這次是將公差操作數(shù)調(diào)整到最大值。最后所有公差都會執(zhí)行這一步驟。執(zhí)行結(jié)果如下:

注意原始設(shè)計 (nominal) 的公差評價標(biāo)準(zhǔn)為0.0022即1/400。我們要求在批量生產(chǎn)時有1/20或者 0.05waves,而系統(tǒng)中一部分公差本身就超過了這一標(biāo)準(zhǔn),例如增加了補償之后,單單第二片透鏡的折射率公差就使得波前差降到了 0.058 waves 。在所有公差單獨計算后,Zemax OpticStudio 會計算各種不同的統(tǒng)計資料,其中最重要的就是 "Estimated Change" 以及 “Estimated Performance” (本文中為 Estimated RMS Wavefront )。Zemax OpticStudio 使用 RSS (Root Sum Square) 的計算方法計算 Estimated Change。對于每一個公差操作數(shù),相對于原始設(shè)計的評價標(biāo)準(zhǔn)變量的計算方法是最大與最小公差的評價標(biāo)準(zhǔn)的改變各自平方后再取平均值。最大與最小取平均是因為它們不會同時發(fā)生,如果相加會導(dǎo)致過分悲觀的預(yù)測。至此,我們計算出了一個最終成品值的預(yù)測。對于這個系統(tǒng),RSS 計算預(yù)測了系統(tǒng)的表現(xiàn)應(yīng)該是 0.0597waves,我們目標(biāo)為0.05。Monte-Carlo 的預(yù)測也大致相符。

雖然只有20個測試范本,結(jié)果相對比較粗糙。從下表可以看出,RMS 波前差低于0.05的鏡頭的良品率略少于80%。

很明顯,如果需要提高良品率,需要再收緊公差。我們可以手動調(diào)節(jié)公差編輯器,然后再執(zhí)行一次公差分析,我們也可以利用反敏感度分析 (Inverse Sensitivity Tolerancing) 自動完成。
逆靈敏度分析
在敏感度分析模式 (Sensitivity mode) 中,Zemax OpticStudio讀取公差操作數(shù),并計算系統(tǒng)性能降低程度。在逆向敏感度分析模式 (Inverse Sensitivity mode) 中,Zemax OpticStudio 則是被給予一個允許的性能降低范圍,并且系統(tǒng)必須找到一個可以達(dá)到這個性能目標(biāo)的公差的最大最小值。在 Set-Up 中設(shè)定如下:

在 Criterion 中,注意看 “Limit” 欄可以輸入?yún)?shù)了,點擊 check,獲得原始設(shè)計 (nominal system) 的公差評價標(biāo)準(zhǔn)。

然后輸入我們的目標(biāo)值,我們假設(shè)為0.0075,因此每一個單獨的公差操作數(shù)都不能讓評價函數(shù)標(biāo)準(zhǔn)低于1/130。

其他維持原本設(shè)定,并重新執(zhí)行公差分析??梢钥吹?Root Sum Square 的結(jié)果變得非常漂亮:

在 Monte-Carlo 中也可以看到類似結(jié)果

但是,其實20個 Monte-Carlo 循環(huán)其實是不夠的。粗略的來說如果有 N 個公差操作數(shù),至少需要 N2 個 Monte-Carlo 循環(huán)才符合適當(dāng)?shù)娜臃治觥1纠形覀冇?4個公差操作數(shù),至少要242=576個 Monte-Carlo 循環(huán),我們設(shè)定 1000 Monte-Carlo 取樣得到如下結(jié)果:

重新打開公差編輯器,可以發(fā)現(xiàn)系統(tǒng)自動修改了一些最大最小值,以符合逆向敏感度分析,這些改變都在制造可以要求的范圍內(nèi)。
注意:執(zhí)行 1000 Monte-Carlo 分析,作者的8核電腦中只用了26秒就可以完成。Zemax OpticStudio 并沒有使用任何一階或者其他近似方法來猜測擾動對波前的公差分析的效果。每一個評價函數(shù)都在完整精度的透鏡波前差計算中完成的。
總結(jié)
公差分析是一個復(fù)雜的流程,這篇文章介紹了公差分析的整個流程,內(nèi)容包括:
1、優(yōu)化你的設(shè)計直到超越目標(biāo)規(guī)格,且要超過一定適當(dāng)?shù)牧俊?
2、建立一組默認(rèn)公差操作數(shù)。Zemax OpticStudio 提供超過一種方法來模擬同一種公差,你必須選擇最能代表實際制造,測試以及組裝時使用的方法。
3、編輯公差操作數(shù)以考慮不同的組裝方式,并加入可能的補償器。
4、定義公差評價標(biāo)準(zhǔn),此標(biāo)準(zhǔn)須符合實際工廠的測試方式。
5、建立一些 Monte-Carlo 文件并確認(rèn)公差操作數(shù)有依照你預(yù)想的方式工作。
6、執(zhí)行敏感度分析。
7、手動緊縮一些棘手的公差,或者使用逆向敏感度分析 Inverse Sensitivity,讓 Zemax OpticStudio 自動計算。
8、一旦確定你的公差都沒有問題之后,設(shè)定執(zhí)行 N2 個 Monte-Carlo 分析,其中 N 為公差操作數(shù)的數(shù)量。
9、檢查逆向敏感度分析產(chǎn)生的公差操作數(shù)參數(shù)值,確保他們在合理的范圍內(nèi)。
請記住,并不是所有設(shè)計的公差分析結(jié)果都可以符合成本利益,很可能為了達(dá)到你的設(shè)計目標(biāo),你需要分析許多不同的設(shè)計。你可以在幫助手冊中找到更多關(guān)于公差分析功能的參數(shù)說明。