Tolerance的Criterion怎麼計算的,如何確認計算細節?

文章推薦指數: 80 %
投票人數:10人

簡介Zemax OpticStudio在公差分析方面有完整的功能,過程也有清楚的數學 ... 要注意的是,無論如何設定視場,由於Criterion只有一個,因此最後這些視 ... KnowledgebaseCommunityForumoverviewRecentlyactivetopicsUnansweredquestionsGeneralDiscussionUserNews&Alerts18LicensingandInstallation72Gotaquestion?1241People&Pointers57ProgrammingOpticStudioDLLs41ZOS-API129ZPL89ChineseForums(中文论坛)用户新闻和注意事项5授权与安装2问题讨论27用户交流与技术分享6JapaneseForums(日本語フォーラム)ユーザーニュースと注意喚起4ライセンスとインストール1質問コーナー30ユーザーラウンジ7UserGroups Createtopic Login CommunityChineseForums(中文论坛)问题讨论Tolerance的Criterion怎麼計算的,如何確認計算細節? Userlevel4 +1 MichaelCheng ZemaxStaff 44replies 摘要:這篇文章介紹一些簡單的方法,用來確認ZemaxOpticStudio如何計算這些公差Criterion。

當使用者不太確定某個Criterion是怎麼來的時候,這些技巧會非常有用。

 簡介ZemaxOpticStudio在公差分析方面有完整的功能,過程也有清楚的數學說明,但與公差分析的目標相比(最終要知道良率或敏感度),其執行過程卻有龐大的細節。

這篇文章將整理幾個常用的確認細節的方法,不同的情境有不同的方法,我們共有以下主題:1.   當我們說“計算Criterion”時,ZemaxOpticStudio做了什麼2.   簡介Criterion種類3.   說明Diff.MTFAvg./Tan./Sag.的計算方式4.   使用“SAVE”公差指令紀錄Sensitivity計算過程5.   利用MonteCarlo存檔瞭解公差擾動如何被執行6.   如何表列所有MonteCarlo檔案的亂數參數在繼續往下閱讀之前,建議閱讀者可以先閱讀此知識庫中相關的基礎公差分析文章,例如下面幾篇文章:Howtoperformasequentialtoleranceanalysis Howtoanalyzeyourtoleranceresults 當我們說“計算Criterion”時,ZemaxOpticStudio做了什麼以下的敘述主要關乎Criterion的計算,不管我們是做Sensitivity分析或是MonteCarlo分析,都適用。

Criterion首先我們要花一點時間說明Criterion本身,才說明優化等其他動作。

在公差分析時,我們所做的事情,就是重複擾動指定參數(例如元件偏心、傾斜),並計算在該條件下的“Criterion”是多少,並與原始設計或格相比分析。

這個Criterion可以是易懂的物理參數,例如某個視場(Field)、某個波長下的SpotRadius或TangentialMTF。

也可以是多個相似的參數用某種方式平均,例如TangentialMTF與SagittalMTF的平均,或是多個視場下的MTF平均(通常是RMS)。

甚至Criterion可以是經由複雜計算而來,不具實際物理意義。

OpticStudio中有許多內建的Criterion,也提供完整的自訂功能讓使用者設計自訂Criterion。

(請參考本文章下面的“簡介Criterion種類”)Field另一個公差分析中常被混淆的觀念是視場(Field)。

當計算Criterion時,如果Field欄位選用Y-Symmetric或XY-Symmetric,事實上OpticStudio並非讀取使用者的Field設定。

而是先找出最大視場,然後乘以-1.0、-0.7、0.0、+0.7以及+1.0。

若是Y-Symmetric,則共有Y方向的5個視場,若是XY-Symmetric,則包含XY方向共有9個視場。

這樣設計是因為一般來說加入公差後,系統經常就不再是軸對稱了,因此正負視場都要考慮。

如果使用者希望自己設定,只要在Field欄位中選擇User-Defined即可。

要注意的是,無論如何設定視場,由於Criterion只有一個,因此最後這些視場上的Criterion都會被平均成一個數值。

若希望每個視場分開,表示你需要複數個Criterion,這要用到ToleranceScript的功能。

請參考知識庫的這篇文章:用ZPL與ToleranceScript分析複數個公差Criterion。

CompComp這個欄位代表的是補償器的概念,具體來說,如果有補償器的存在,“每次”當OpticStudio要計算Criterion之前,都會先依指定變數以及評價函數優化過一次系統,然後才計算並輸出Criterion。

換句話說,原本的流程是:原始系統>擾動參數(ex.偏心、傾斜)>計算Criterion加入補償器後變成:原始系統>擾動參數(ex.偏心、傾斜)>優化系統>計算Criterion為什麼會有補償器呢?事實上大部分成像系統都會有一個天生的補償器,就是後焦距。

舉例來說,如果一台投影機的投影鏡頭中的一個鏡片的曲率有誤差,造成像距改變,進而影像模糊,我們就可以把投影機前後移動來做一定程度的補償。

這時公差分析就應該考慮補償器才不會對於系統公差分析太過悲觀。

注意上面的敘述隱含了一個很重要的觀念,那就是「現實世界中的補償器微調,在OpticStudio中的實作其實就是優化」。

補償器可以是任何參數,但是必須能反應現實世界中真正的操作。

有時候一些高級光學系統可能有多個補償過程,這時就會需要在不同時機點使用不同的變數以及評價函數,OpticStudio透過ToleranceScript支援這種複雜的補償過程。

 簡介Criterion種類前面我們提過,OpticStudio有許多Criterion可用,大致可分為三類,並簡單介紹:系統內建、評價函數、UserScript。

這些Criterion最終都可對應到一組MeritFunction的計算。

其中系統內建中的RMSSpotRadius/X/Y、RMSAngularRadius/X/Y、RMSWavefront計算方式與利用OptimizationWizard設定出來的評價函數功能一樣,取樣方式使用GaussianQuadrature,Sampling的設定代表徑向取樣數。

而MTF的部分,則是透過MTFA/T/S或GMTA/T/S這些操作數計算,如果有多個視場,就會在MeritFunction中加入所有視場,並經過評價函數公式計算出MeritFunctionValue。

但由於MeritFunction是計算“差值”的方均根,因此最後的Criterion事實上是取(1-MeritFunctionValue)。

這個部份請看下一個條目的說明。

Criterion的部分如果系統內建預設的選項不足以滿足使用需求時,使用者可以考慮自行設計MeritFunction,然後在Criterion的欄位中選擇“MeritFunction”就可以了。

最後一個特殊選項就UserScript,可以讓使用者進行更複雜的Criterion計算過程,例如前面說過的複數補償器設定過程。

ToleranceScript的部分請參考以下兩篇文章:如何在公差分析報告中加入任意優化操作數用ZPL與ToleranceScript分析複數個公差Criterion 說明Diff.MTFAvg的計算方式由於Criterion中MTF的計算方式是技術支援中最常見的問題,以下將說明其運作方式,這裡用DiffractionMTF說明,但是其他的MTF原則上是一樣的,只是操作數的不同(MTFA/T/S或GMTA/T/S)。

以下用Cooke40degreefield這個系統內建範例說明,首先我們打開這個範例檔。

移除所有變數以及求解。

固定所有孔徑。

現在執行ToleranceRibbon>Tolerancing,把Criterion欄位設定如下,並點一下Check計算在現在的值。

可以看到目前的Diff.MTFAvg值為0.40329094,這裡我們利用文章下面敘述的MonteCarlo存檔技巧,來瞭解這個公差是如何計算的。

打開存好的MonteCarlo檔之後,我們檢視他的MeritFunction,看到如下圖:因為視場選擇是Y-Symmetric,如同前面的說明,共有5個視場。

而在MeritFunction中共有5個MTFA,代表DiffractionMTFAverage,這次代表一個視場。

而上面的MeritFunctionValue是0.596709053761491,可以發現前面的Criterion的計算正好就是1減MeritValue。

MeritFunction的計算如下: V是Value,W是Weight,T是Target。

 使用“SAVE”公差指令紀錄Sensitivity計算過程在敏感度(Sensitivity)分析時,OpticStudio會把每一個toleranceoperand的最大最小值代入,並且計算在這些公差的極限狀態下,Criterion的變化如何,然後回報在文字報告中。

而當使用者對於這個結果有疑問時,會需要知道OpticStudio實際上是如何調整系統,並得到這個結果的,此時便是用“SAVE”這個指令的時候。

舉例來說,假設我們有如下的公差設定以及Sensitivity分析結果可以看到當公差TRAD=-0.2時,Criterion=0.04967675。

而TRAD=0.2時,Criterion=0.04875308。

假設我們想知道TRAD=0.2時的Criterion是如何計算的,我們可以在TRAD的下面加上一行SAVE指令,如下圖請注意在File#欄位代表檔案編號,如果有多個SAVE指令,則需要把編號分開。

此外編號等於0的話,這個指令將不運作,不會存檔。

現在再執行一次公差分析,文字報表的結果應該相同,但是使用者可以發現在資料夾中多出兩個檔案,如下圖其中TSAV_MAX_0001代表TRAD=-0.2時的系統狀態,而TSAV_MIN_0001代表TRAD=0.2時的系統狀態。

讓我們打開TSAV_MAX_0001這個檔案,並開啟MeritFunctionEditor,可以看到如下圖可以看出系統計算TRAD=0.2的Criterion時,是計算RMSSpotRadius,參考點為質心,使用GQ演算法,取樣是4個Ring以及8個arms。

這反應到我們之前的Criterion以及Sampling設定。

此外MeritFunction值為0.0487530834843748,與公差報告穩合。

 利用MonteCarlo存檔瞭解公差擾動如何被執行前面我們介紹如何把Sensitivity計算時用到的系統設定儲存下來。

而對於MonteCarlo來說,則比較單純,使用者只需要在MonteCarloSaves欄位中填入要儲存的檔案數量即可,如下圖有時候如果我們想要瞭解許多不同的公差同時被套用在系統中時的效果,則可以利用MonteCarlo的這個存檔功能。

我以用Cooke40degreefield這個系統內建範例說明,首先我們打開這個範例檔,移除所有變數以及求解,然後把孔徑固定住,如同文章前面的範例一樣。

假設我們有如下的公差設定這裡面包含了單透鏡兩邊球面之間的傾斜(TIRX/Y)、兩兩元件之間的位移與傾斜(TETX/Y、TEDX/Y)、球面曲率(TRAD)、球面不規則(TIRR)以及空氣與玻璃厚度(TTHI)等公差。

注意我們把公差都設定為0。

接著我們執行公差,執行前設定MonteCarloRuns以及MonteCarloSaves都設為1,設定如下然後開啟產生出來的唯一個MonteCarlo檔案可以看到元件位移的操作(TETX/Y)被解讀為CB,而表面不規則以及曲面之間的位移用Irregular面來模擬,此外可以看到後焦距被設為變數,因為我們有設定這個補償器。

利用這樣的技巧,可以檢查一些我們認為可能有問題的MonteCarlo檔案。

    Michael LikeQuoteShare Bethefirsttoreply! Reply PoweredbyinSided Signup Alreadyhaveanaccount?Login RedirectingtotheZemaxCommunity... RedirectingtotheZemaxCommunity... Enteryourusernameore-mailaddress.We'llsendyouane-mailwithinstructionstoresetyourpassword. Usernameore-mail Send Backtooverview Scanningfileforviruses. Sorry,we'restillcheckingthisfile'scontentstomakesureit'ssafetodownload.Pleasetryagaininafewminutes. OK Thisfilecannotbedownloaded Sorry,ourvirusscannerdetectedthatthisfileisn'tsafetodownload. OK Cookiepolicy Weusecookiestoenhanceandpersonalizeyourexperience.Ifyouacceptyouagreetoourfullcookiepolicy.Learnmoreaboutourcookies. Acceptcookies Cookiesettings × Cookiesettings Weuse3differentkindsofcookies.Youcanchoosewhichcookiesyouwanttoaccept.Weneedbasiccookiestomakethissitework,thereforethesearetheminimumyoucanselect.Learnmoreaboutourcookies. BasicFunctional NormalFunctional+analytics CompleteFunctional+analytics+socialmedia+embeddedvideos Acceptcookies



請為這篇文章評分?