第八章最佳化分析 OSLO 軟體的特點是其最佳化設計的能力 它使用操作者指定的變數, 作誤 差函數 ( error function) 的極小化 OSLO 的最佳化不僅功能強大, 而且容易使用 在這裡你將以一個簡單系統作 作 練習例子, 這系統如果換了通訊用光源就可以用來 雷射通訊傳輸 (laser communication link) 另外在這裡要讓讀者練習直接選用商 用透鏡 (catalog lens) 來解決問題 這是一個光通訊系統的光學設計 這系統中有一個氦氖雷射 ( 波長 632.8nm) 作傳輸光源, 在二個光纖之中有 100 公尺的自由空間, 光纖核直徑是 5μ m, 而從 傳輸光纖末端發出的光束可以視作一個單模高斯光束, 其數值口徑 (N.A.) 為 0.2 所需設計的是這個系統的傳輸與接受光學透鏡 由於機械包裝原因, 傳輸與 接受端直徑大小必須小於 40mm, 而長度不可超過 75mm 8-1 聚焦系統的建立為了滿足數值孔徑的要求又不把光束切得太厲害, 透鏡應該以 f/2( N.A=0.25) 或更快來作 為了架設透鏡之空間, 考慮透鏡外緣須有保護殼 ; 所以透鏡直徑不應超過 30mm 換言之, 由 f/2 條件知道焦距長必須大概是 60mm 傳輸與接受之光學元件在此選定相同 一般而言, 傳輸端的光源其數值口徑 (N.A.) 為 0.2, 則我們所用的透鏡其數值口徑 (N.A.) 必須大於 0.2, 這樣才能確保光可以全被導引 而進入接受端, 則必須比光纖接受端的數值口徑 (N.A.) 小, 才可以確保光可以全被導入光纖接受範圍內 示意佈局如圖 8-1 所示 : 發射端 光 纖 1 30mm 接受端 60mm 100m 光纖 2 圖 8-1 通訊光學系統架設示意圖 光學系統通常是由長到短來作分析以降低數值截值誤差 ( numeric round-off error), 所以我們先設計接收透鏡 另外, 傳輸透鏡部分在此設為一樣 接下來的問題是透鏡的複雜度要多少才能達到所要的影像品質 雖然沒有指明數據, 很明顯地由透鏡形成光斑大小必須小於 2.5μ m( 半徑 ) 以配合光纖內徑 所以整個設計問題就變成, 去找出一個透鏡, 其焦距約為 60mm, 而透鏡直徑約為 30mm, 並且求出其影像品質 有很多方法可以作到這地步, 這裡請讀者用 OSLO, 跟著下列步驟作 8-1
8-2 單透鏡解決法 ( singlet solution) 1 選 OSLO 圖樣, 執行 OSLO 2 在主視窗選用 File>>New, 然後選擇對話框內的 Catalog Lens 讓放大率 入如其在 (0,0) 的設定值, 輸 lasrcom 1 作 檔案名, 然後按下 ( 即 O.K.) 關上對話框 3 現在 Catalog Lens 資料庫出現在主視窗, 確定在 Catalog 出現的名字是 MG-POS, 如果不是, 則按下並且自下拉選單中選擇 MG-POS 4 在視窗內 central Efl 輸入 60, 選擇範圍區域 ( range field) 內設定其值為 10; 在 Central Dia 輸入 30, 選擇範圍區域設其值為 5, 再使用向下箭號 (Down Arrow) 去移動透鏡表的選項, 直到透鏡 01LPX125 被選出 ( 注意在圖樣下的 訊息區 ), 在此時, Catalog Lens 資料庫視窗應如圖 8-2 所示 : 圖 8-2 Catalog lens 資料庫視窗 5 如果結果確如圖 8-2, 則按下 Catalog Lens 資料庫視窗上的 則 01LPX125 元件將出現在面數據試算表 我們可以在面數據試算表左上角 ( lens identification field( lid)) 輸入 On 去啟動自動圖樣功能 Laser Communication System 然後按下 Draw 6 按下波長項右手邊的星號, 這動作可以開啟一個波長試算表, 因為這是一個單光系統, 所以波長 2 及 3 可以刪去, 並且設波長 1 的波長值為 0.6328μ m 即選擇波長 1 項, 此時出現的是一個黑框 ( narrow outline), 也就是, 這一項有一個選項表來支援, 可以輸入一個值或者就此項再按一次以出現波長選單 按下此項 ( 或者壓下空白鍵 ) 後, 波長表將如圖 8-3 所示 : 8-2
圖 8-3 設定波長 選擇氦氖 0.6328 波長, 第一次輸入波長然後離開波長數據試算表 ( 按下共二次 ) 之後回到面數據試算表, 其出現格式如圖 8-4: 圖 8-4 波長修改後之面數據試算表 注意這裡並沒有顯示曲率半徑, 而厚度及玻璃欄底已放入 F, 玻璃被註明 FIXED 這是因為我們正在透鏡型錄中群組模式 (group mode), 而其中的資料是無法由使用者更改 如果要看真正的數值, 按下試算表頂欄的視窗 ( View field) 中的 srf, 按下鏡面 1 半徑欄的 option button, 選用 Ungroup 就可以更改固定設計的設定, 如圖 8-5 所示 8-3
srf 按下 圖 8-5 面數據試算表 (b) 指令欄 自動圖樣視窗會顯示透鏡, 其圖形如圖 8-6(a) 所示 注意入 射光束其半徑 已設定為透鏡的孔徑的大小, 而且近軸高度求解 已設定在鏡面 2, 我們可以藉 由 鏡面 2 中厚度項 的 option button 而在指令欄中看到 PY0.0, 以確定近 軸高度求解 已被指定, 如圖 8-6(b) 所示 (a) (b) 圖 8-6 (a) 依上述之設定後的自動圖樣圖 (b) 指令欄 8-4
7 現在, 透鏡已被設定而整個效能可以被分析 斑點圖可以提供影像品質的一個 指標 我們可以用 spd 分析 文字或圖形輸出均可 首先, 檢查圖形輸出 這 個可以利用 Calculate>>Display Spot Diagram 指令作 到 利用對話框中的設 定值即可 則圖形報告 ( report graphics) 會出現在圖形視窗上, 參見圖 8-7 單透鏡結果 圖 8-7 斑點圖形輸出 由這個視窗可以看到幾何斑點圖大小 (geometrical spot size) 為 0.6073mm 這個值太大, 不符合系統需求 另外有個題外話是, 繞射極限為 0.001537 遠比 geometrical spot size 小, 所以我們可以不用考慮物理光學的問題 8 接下來我們利用 OSLO 的最佳化功能, 找出透鏡的最佳焦距, 以此降低 spot size 這個可以用 Calculate>>Spot Size Analysis 作到 在對話框的 Find best focus 欄選用 Yes, 然後按下 OK ( 見圖 8-8), 關掉對話框 而文字視窗會顯示斑點大小分析, 包括最佳焦點位置值 -2.975853, 結果見圖 8-9 最 佳 位置 圖 8-8 Spot Size Analysis 對話框 圖 8-9 斑點分析數據 8-5
9 在文字視窗選點這個數字 這個動作會在主視窗上依其在數據暫存區上的位置 顯示其全部數字的精確度, 見圖 8-10 我們可以用符號如 a27 來對照這一個精 準的數字 圖 8-10 點選文字視窗上最佳焦點位置數字後主視窗顯示之訊息 10 利用面數據編輯器選擇鏡面 3 的厚度精靈夾格, 在此格上輸入 a27, 注意此一數字是以全數值準度輸入格內 這一格是像面上的厚度在 OSLO 中被視作焦移位 ( Focus Shift), 亦即最後像面的距離是最後二個鏡面厚度和 11 若要更新斑點圖只要按二次圖形視窗 ( 或按下圖形視窗的更新欄 ), 則整個分析會自動更新並顯示新的焦點, 如圖 8-11 所示 現在幾何斑點大小是 0.2036mm, 它遠比前面的好, 但這個數值仍無法達到需求, 所以須再尋求另外的解決方法 單透鏡最佳化的 結果 圖 8-11 單透鏡最佳化結果的斑點圖 8-3 雙透鏡 / 凹凸透鏡解法 ( Doublet/Meniscus Solution) 由於單透鏡的限制太大, 很自然地運用好幾個透鏡是個可能的解法 在 Melles Griot 光學型錄上有許多雙透鏡及凹凸透鏡組成的高速 ( 亦即大的數值孔徑 ) 的聚 焦系統 在其中 01LAO126 與凹凸透鏡 01LAM126, 在近軸上有著差不多的特性 有關商用透鏡組的運用, 讀者必須經常翻閱型錄, 累積經驗才能得心應手, 運用 自如 : 1 按下 File>>New 輸入檔案名稱為 lasrcom2 並選用型錄透鏡 (catalog lens) 2 因為要的透鏡片已知, 所以直接選用 part number cell 並輸入 01LAO126, 點選, 在視窗中即可顯示此元件 ( 見圖 8-12) 點選 以關上資料庫, 然後到面 數據試算表 8-6
圖 8-12 型錄透鏡之試算表 3 在雙透鏡 ( doublet) 之後, 插入凹凸單透鏡 ( meniscus) 01LAM126 作法如下 : 首先設定鏡面 3 的厚度為 1.0( 直接可以在厚度欄 (thickness field) 輸入 ), 這個設定可以由選用系統軸束高度求解而自動進入 按下鏡面 4 的欄鍵 (row button) 以選擇欄位, 然後按右鍵執行 Edit>>Insert Catalog Lens 當視窗出現型錄資料庫, 輸入元件編號 01LAM126, 再關上試算表, 過程參見圖 8-13 圖 8-13 凹凸單透鏡試算表 4 如同先前例子一般, 先把額外的波長拿掉, 而只剩下波長 1, 亦即設定主波長為 0.6328μ m, 設入射光束半徑為 15, 並開啟自動圖樣視窗並對鏡面 5 設一 求解 亦即選用厚度選項鍵, 選擇 求解 ( 軸光束高度值 =0) 這一次使用自動調焦的指令來找出最佳焦點, 這個可以用 shift+f12 完成 整個面數據試 8-7
算表應該如圖 8-14 所示 : 圖 8-14 完成步驟 4 後之面數據 而自動圖樣視窗應如圖 8-15: 圖 8-15 自動圖樣圖 5 要分析此一新的透鏡系統, 對圖形視窗按滑鼠兩次, 如圖 8-16 所示 現在幾何斑點大小是 0.001790, 遠符合規格所需 注意繞射極限是 0.001527mm, 一旦幾何斑點大小趨近或遠比繞射極限小時, 繞射效應變得重要 在這個情況下, 幾何斑點圖的模型並不能描述整個物理光學的特性 8-8
分析結果 圖 8-16 斑點圖 6 要檢查真正的繞射影像, 按下 Calculate>>Point Spread function ( 參見圖 8-17), 在對話框按下 Plot x and y Scans, 然後按下 OK 以關上對話框, 則結果 如圖 8-18: 圖 8-17 Point Spread function 對話框 8-9
圖 8-18 Scan function 第一個零點大約是在 0.0013, 這跟幾何式分析的結果比較起來, 答案很合理 在結束這個設計題之前, 檢查二個透鏡之間的空隙是值得 主要是在 Melles Griot 光學型錄上 這些透鏡是給不同波長使用, 所以可以從兩透鏡的間隙解來另作最佳化 1 要研究間隙對成像的影響, 在此我們設立一個交互視窗 (interactive window) 來作另外一種表現形式 這可以由建立一個視窗對鏡面 3 厚度從 0 到 40mm 及對鏡面 6 厚度 ( 從近軸像平面上算起的焦距後 ) 由 -0.1 到 0mm 來檢視軸上光束交切曲線 ( ray-intercept curve) 首先, 設鏡面 3 厚度為 20mm( direct), 並設 th6 為 0.0, 整個試算表畫面如圖 8-19 所示 : 圖 8-19 改變鏡面 3 及 6 厚度之面數據試算表 8-10
2 按下 OK 並關上數據試算表, 並執行 Optimize>>Interactive Design, 並如圖 8-20 設定整個試算表的值, 如果你的電腦處理器很快或有圖形加速, 可以利用 拖曳處理 ( drag processing), 建立滑表, 來看條件改變下結果的改變 如果電 腦太慢, 拖曳處理會很慢 評估方式 之選定 滑表設定 圖 8-20 交互設計對話框 3 一旦在交互設計試算表的數值被定好, 按下 OK 並關上試算表, 之後將可看到二個圖形視窗加上一個滑表, 如圖 8-21 所示 (a) (b) ()() ())0())())) 圖 8-21 互動視窗 (a) 在物點 FBY 0 上的光束交切曲線 (b) 系統外觀 (c) 滑表 在前面圖 8-20 的設定裡, 我們選定了 光束交切曲線 及單一物點 (FBY0.000000), 所以在圖 8-21(a) 我們看到結果 光束交切曲線 表示了光束從參考點 ( 在此即光軸 ) 算起的位移, 它是 8-11
比例孔徑座標 (fractional aperture coordinate)( FY1 相對於射出曈孔 exit pupil) 的函數 結果的意義是曲線沿著軸的水平線代表於一個完美光學系統 交切曲 線變傾斜 ( tilting) 則代表有焦點位移 (focusing shift), 而出現彎曲 ( 即有曲率 ) 代表有像差 光束交切曲線在光學系統設計是很常用的, 因為它的計算量很 少, 又可以提供很多的訊息 4 拖曳滑表往前或拉後, 可以確認到有二個最佳解的存在, 一個間隙約為 5mm, 另一個間隙約為 25mm 要看出每個透鏡結構的斑點圖, 只要對含有斑點圖的 視窗按滑鼠二下即可 8-4 空氣間隔雙分透鏡 ( Air-spaced doublet) 在前面的章節中, 我們由 型錄透鏡 (catalog lens) 選用的單透鏡 ( singlet lens) 及利用一個雙透鏡與單透鏡組成的聚焦 ( focusing lens) 系統來建立系統 由於商 用透鏡規格已定, 所以僅鏡片間 隔 ( lens spacing) 可以改變 接下來的例子將介 紹如何跳出商用透鏡規格的限制及如何將曲率及空氣間隔雙分透鏡之間隔作最佳化 我們先從使用基本透鏡項目開始設計, 由第三節顯示雙凹凸組合 ( double-meniscus combination), 可完全符合設計需求, 而在下面我們將檢視簡單的雙透鏡是否也能符合此項要求 在這裡介紹的方法將適用於所有 OSLO 版本 雖然 OSLO PRO 和 OSLO SIX 比 OSLO LT 速度快且有較多的最佳化 ( optimization) 功能, 但對於簡單的設計並不須要使用到這麼強的功能 8-4-1. 像差 基本 SCP 最佳化 ( based SCP optimization) 在 OSLO LT 最佳化是根據 SCP 運算元, 亦即利用 SCP 內的輔助程式 ( auxiliary routine) 作計算, 其誤差函數 ( error function) 最多可包含 200 項, 命名為 OCM1 OCM2 OCM200, 因為 SCP 可以經由試算表暫存區 ( spreadsheet buffer) 而得到所有的 OSLO 結果, 所以 OSLO LT 可以最佳化那些可以被計算的物件 在所 有形式的 OSLO 有兩種內定程式, 命名為 *opsetabr 及 *opsetray, 此兩個內 定程式可以協助我們建立誤差函數, 簡化由一般像差 (common aberration) 及光 束覓跡 的資料建立的誤差函數 8-12
下一個步驟是建立一個誤差函數來將系統最佳化, 我們將根據像差來嘗試尋 找第一個誤差函數, 而星指令 (star command) *opsetabr 可用來建立計算像差 的 SCP 函數, 並在文字視窗列出所有的像差 我們從這些數據中選擇適合的並輸 入成為運算元 目前在這裡, 只需要試著控制三階球面像差 (third-order spherical aberration) 作為練習即可 1 如果面數據試算表是打開的狀態, 將它關掉 點選 File>>Open, 開啟 lasrdblt.len, 此檔案是我們之前剛開始練習時輸入的檔案 2 點選 Optimize>>SCP Operands Setup>>Aberration 則文字視窗將顯示數據如圖 8-22 所示 : 一階像差 三階像差 圖 8-22 點選 Optimize>>SCP Operands Setup>>Aberration 後顯示之文字視窗 在圖 8-22 諸如近軸數據 PY(1) PU(2), 一階色差 PAC(6) PLC(7).. 及三階 Seidel 像差 SA3(11) CMA3(12) AST3(13). 等等 數據是由 *opabrs 指令所計算 8-13
同時也給予了運算元的組成碼 ( component numbers) 它即運算元的定義, 例如, 第三階的 Seidel 像差 SA3(11) CMA3(12) 等等 我們要挑球面像差, 所以 要用的是 SA3, 括號內的數字是 11, 所以依命名法我們用 OCM 加上 11 來表示, 亦即 OCM11 3 運算元試算表一旦開啟 在 definition 項目輸入 OCM11 及 name 項目輸 入 SA3 這些參數設定誤差函數, 最後關上試算表, 參見圖 8-23 輸入 OCM11 輸入 SA3 圖 8-23 運算元試算表 4 在執行任何最佳化之前先點選圖形工具列以儲存透鏡, 之後再於最佳化期間重新打開試算表 先儲存透鏡的原因是為了建立一個可以回復到先前設計 ( previous design) 的可回復系統 (recovery system) 那麼現在, 基本設計 ( base design) 以 lasrdblt.len 檔名存在磁碟中, 而另一複製的設計, 在開啟試算表時被存成暫存檔 ( temporary file) 當進行最佳化時, 可利用關上試算表再重新打開而更新暫存檔 每個循環迴圈 (iteration cycle(s)) 之後, 若得到的結果符合需求, 則點選 OK 以關掉試算表 ; 否則, 就點選 Cancel 關掉試算表 為了確保基本系統可以永遠是 lasrdblt.len 檔案, 當你想要複製時, 請利用 Save as 存成新檔名 5 點選圖形工具列或按鍵盤上的 SHIFT+F10, 使得文字視窗可顯示目前的誤 差函數, 然後點選 Optimize>>Operating Conditions, 將 Use adaptive variable damping 項, 點選成 On, 再按 SHIFT+F9 執行 10 個循環 (iterations), 再重複循環序列一次 完成最佳化後, 文字視窗將出現如圖 8-24 之數據 : 8-14
最 小誤差 圖 8-24 重複執行循環迴圈兩次後之文字視窗 檢閱圖 8-24 數據時, 發現最佳化可使誤差函數值快速跳到 0.045461, 但無法再有 任何進展 6 欲瞭解誤差函數值不能再改進的原因, 可以看 Seidel 像差在各個鏡面的值 點 選 Calculate>>Aberration, 並在所出現之對話框內選擇 Seidel image, 下面數 據顯示各個面上像差 (surface contribution) 至第三階的球面像差 鏡面數 像差累計 圖 8-25 各面鏡在三階像差的值 在現在設計裡, 只有面 3 給予正的像差值 ( positive surface contribution), 但其值 8-15
無法平衡其他面所產生的負像差 (negative aberration) 也就是說, 一個正元件和 一個凹凸透鏡的組合無法成為雙透鏡, 我們需要一個更傳統的雙透鏡形式 我們 必須讓正 負像差值能平衡, 也就是說像差累計總和要更靠近零 1 改良原先舊設計中前面 3 個面的曲率半徑各為 50 0 和 -50( 即從上述步驟 4 開 始 ), 並重新儲存這些透鏡至 lasrdblt.len 檔案 則其自動圖樣及 試算表如下 所示 : (a) 曲率半徑重設 (b) 圖 8-26 (a) 改變前三面之曲率半徑後之試算表及 (b) 草樣圖 2 如之前介紹過的步驟, 按下 SHIFT+F10, 在文字視窗顯示目前的誤差函數 8-16
點選 Optimize>>Operating Conditions, 將 Use adaptive variable damping 項, 點選成 On, 然後再按 SHIFT+F9 執行 10 個循環, 文字視窗如圖 8-27 所 示 : 圖 8-27 更動曲率半徑設定後的誤差函數結果 3 由圖 8-27 的數據顯示現在設計比之前的設計更容易收斂 點選 Calculate>>Aberrations, 並選擇 Seidel image, 看三階像差在每一面的貢獻 圖 8-28 Seidel image 之面貢獻 由圖 8-28 我們知道三階的像差結果, 但是有一點要小心的是單一面像差的值若是非常大, 它將導致大的高階像差, 所以下一步驟是加一高階項至誤差函數 點選 Optimize>>SCP Operands>>Aberrations, 按 SHIFT+SPACE 三次, 使試算表增加三欄, 輸入如圖 8-29 之數據, 並關上試算表 確定 OCM41 加權數至 3.0 現 8-17
在我們的分析是考慮到第七階球面像差 第五階球面像差 第七階球面像差 圖 8-29 SCP 運算元試算表 使用新運算元繼續作最佳化, 將有如下之數據及圖形輸出 : (a) (b) 8-18
圖 8-30 (a) 使用新運算元最佳化後之數據及 (b) 斑點圖 由圖 8-30 (a) 的數據, 我們可以看到高階像差的貢獻, 現在整個像差是 0.007973 有趣的是我們的三階像差是 0.047727, 但更高階像差為正值 換言之, 我們運用更高階像差讓整個系統在球面像差的表現更好 8-4-2. Ray- 基本 SCP 最佳化前面的結果說明了高階像差可以大大減低 ; 但是幾何斑點尺寸, 仍不夠好到足以符合系統要求, 雖然已有改善 另外還有一個問題是第五階及第七階像差呈 現正值, 表示它們都過度修正 ( overcorrected) 欲完成設計以符合此點, 最 好使 用精確的光線 ( exact ray), 如此在平衡所有像差的級數可提供較好的變通性 對這個問題, 我們可以使用 *opsetray 指令來建立簡單的基本光線誤差函數 (ray-based error function) 改變面 2 及面 3 間的軸光線 ( axial ray) 高度, 可以改變第五階及第七階像差間的平衡關係, 因為面 2 產生低度修正 ( undercorrected) 像差, 面 3 則產生過度 修正像差 像差大小與第五階像差的光線高度 ( ray height) 之五次方及 第七階像 差線高之七次方成比例 若增加透鏡間 的距離, 將可得到我們所希望的情況 : 也 就是第七階的過度修正比 第五階的少 現在我們設定起始條件, 選擇其曲率半徑 為 50 0 及 -50, 並設定厚度 2 為變數 (variable), 現在總共有 4 個變數 1 根據上一段的敘述修改 lasrdblt.len, 並點選 Optimize>>SCP Operands setup>>rays, 執行 *opsetray 指令, 其輸出數據如下 : 8-19
光程差 (OPD) 圖 8-31 執行 *opsetray 指令之數據 2 刪除像差運算元 ( aberration operands), 並加入經過 0.7 和 1.0 孔徑區域的軸上 光線 ( on-axis ray) 的光程差 OPD( OCM12 及 OCM15) 來建立新的誤差函數 OPD 與光線交切曲線 ( ray-intercept curves) 的面積成比例 所以, 減少這些量 可以增強軸上的影像品質 ( performance), 按 SHFIT+SPACE 在試算表上增 加列, 並輸入如圖 8-32 所示之運算元資料, 再關上試算表 圖 8-32 Optimize>>SCP Operands setup>>rays 試算表 3 輸入資料後, 將這些透鏡儲存成新檔案 ( 例如 lasrbd2.len ), 然後點選 Optimize>>Operating Conditions, 將 Use adaptive variable damping 項, 點選成 On, 再按 SHIFT+F9 作最佳化兩次, 最佳化誤差函數應為 0 第一次最佳化 8-20
再次最佳化 圖 8-33 20 個循環後之數據 4 在指令列輸入指令 *opsetabr 可看到系統修正後目前的狀態, 輸出數據如圖 8-34: 第三階像差 第五階像差 第七階像差 圖 8-34 最佳化後各個像差值 注意第三 第五及 第七階像差有交替符號 ( alternating sign), 這正是我們所希望的 一樣 而這個才是透鏡設計者願意繪出的設計, 因為它是依據公認的原則來作 圖 8-35 是最後面數據試算表及自動圖樣 : 8-21
圖 8-35 面數據及自動圖樣圖雖然上面的設計結果符合我們的需求, 但它不是最好的 特別是誤差函數, 在這個例子中只包含兩項 事實上我們可以藉由加入其它運算元來作更詳細的修正, 而且所成之像也允許由近軸焦點處作一個小位移而得到更好的成像品質 但就目前的練習而言, 上述的設計已相當合適了 5 利用軸上斑點圖 ( Calculate>>Display Spot Diagram), 得到此設計的斑點圖 ( 見圖 8-36), 並與上一節利用透鏡目錄的設計作比較 此斑點圖顯示幾何斑點大小為 0.002057, 與前一節的設計比較可發現有了巨大的改變, 而且很接近繞射極限 (0.001576) 8-22
圖 8-36 斑點圖 6 點選 Calculate>>Ray Analysis, 在對話框中選擇 Plot ray intercepts, 得到 的光線交切曲線 ( ray intercept curves) ( 見圖 8-37), 它顯示成像在近軸焦點, 在 0.2 至 0.5 區域有低 度修正的第三階像差, 在 0.6 至 0.8 區域有過度修正的第 五階像差及 0.9 至 1.0 區域有低度修正的第七階像差 圖 8-37 光束交切曲線圖 7 點選 Calculate>>Point Spread function, 在對話框中選取 Plot x and y scans 與 Monochromatic, 選擇完成後, 按 OK 關掉對話框, 則圖形視窗結果見圖 8-38: 8-23
Strehl ratio 對應值 圖 8-38 斑點擴散圖 上圖顯示現在的設計非常好, 其 Strehl definition(strehl ratio) 約 94% 然而不可諱 只目言的是與前 一節比 較, 此設計 是一個 運用非常昂貴 且又難製作 的玻璃之設計 稿, 前一節的設計較容易且可由 商用透鏡 錄中指定 圖 8-39(a) 是此設計下的干涉圖, 它是假 設孔徑分隔數為 150, 亦即由 計算一個孔 徑分隔因子 ( aperture division factor) 為 150 的斑點圖而得 (Update>>Operating Conditions>>Spot Digram), 並使用 OSLO 中的 *interf 星指令, 干涉儀的靈敏 度設為 0.05 waves( 操作 步驟如圖 8-39(b)) 由 這個圖我們等於看到圖 8-38 的二維 平面分佈情況 (a) 干涉儀靈敏 度 8-24
(b) 輸入 *interf, 按下 OK 輸入 y, 按下 OK 輸入 0.05, 按下 OK 按下 OK 8-25
按下 OK 按下 OK 按下 OK 目時圖 8-39 (a) 干涉圖 (b) 操作 流程 8-4-3. 修改一個 SCP 誤差的 函數 要更進一步改善透鏡 前的狀態, 就必須修改誤差函數 修改方法是很直接, 不過在做修改前, 我們必須對 SCP 最 佳化 如何工作 有一基本的瞭解 如前面所討論, 在使用 SCP 最 佳化, 對運算元份量 ( operand component) 重新定義成 OCMxx( xx 表示數字 ), 這些運算元組成的值由 SCP 程式計算, 此 SCP 程式由 opoc 操作 環境 (operating condition)( 設在最 佳化 操作 環境試算表 內 ) 命名 你可以藉由 稱為 *opabrs, *oprays 及 *optol 的程式來得到此誤差函數程 式中的任何號碼 對應這些誤差函數程式的有三個介面程式 (interface routine), 稱為 *opsetabr, *opsetrays, *opsettol, 其中有兩個在前面的設計已使用到 由 OSLO 提供的程式意在提供一個有效的方式處理一般設計問題, 而不是提 供最 終的設計極致 由 於 OSLO PRO 和 OSLO SIX 擁有較多有效的最 佳化 系統, 所以全職的光學設計師傾向使用 OSLO PRO 或 OSLO SIX 一旦你能夠更精練的 使用此軟體時, 你應該考慮撰寫你自己的誤差函數程式, 這時 OSLO PRO 及 OSLO SIX 會比較有用 現在只是作誤差函數修正練習, 下面的敘述是一個使用 *oprays 程式作鏡 8-26
子修正的練習 在練習前, 你應該將原先的程式複製, 並使用複製版本工作 1 打開使用文字編輯 ( trxt edit) 的檔案 : public/scp/oprays.scp, 點選主要工具 列中的 F4, 然後使用文字編輯中 ( 不在主列單中 ) 的 File>>Open 開啟檔案, 改變檔案中的第一行為 *opray2, 並利用 File>>Save As 另存新檔 opray2.scp 因為 SCP 通常根據檔名尋找指令, 所以指令名稱與檔案名稱應 該相同 2 文字編輯器包含如圖 8-40 所示的預定指令 *oprays ( 現在稱為 opray2), 有 些顯示出來的呼叫 (callouts) 及註解 ( comment) 作為解釋此指令的動作 你 應該將第 3 行 (line 3) 改變為 arg1=0.5, 第 5 行變為 arg3=0.8, 然後儲 存檔案 下一行在 ssb 中寫入, 重新設定下一行為 1, 並且將十行內填入值 1e20( 以控制光線失敗 ) 關閉輸出顯示 (output display), 則 OSLO 的結果 將直接輸出到試算表的暫存區 (spreadsheet buffer) 8-27
第三行 設定使用比例孔徑座標 儲存目 前孔徑檢查的狀態 並關閉孔徑檢查 (fractional aperture) 的光 之值 線 執行近軸光束覓跡, 回復 試算表暫存區的值, 並分 配到 OCM 運算元 執行更多 OSLO 指令, 回復試算表暫存 區的值, 並分配到 OCM 運算元 先前運算元的使用者定義合成 復原試算表暫存區 孔徑 檢查及 輸出顯示 圖 8-40 *oprays 指令文字編輯 3 接下來, 使用 Optimization>>Operating Conditions 指令開啟試算表, 將指令 CCL/SCP 運算元改變成 *opray2 ( 星狀符號用來區分 SCP 指令與 CCL 指令 ), 再將透鏡存成新檔名 : lasrdb3.len, 過程見圖 8-41 8-28
圖 8-41 修改 SCP/CCL 運算元 4 現在將 *opstray 改變成相關的新指令, 先打開 opsetray.scp 指令 ( 先按 F4, 再 File>>Open/public/scp/opsetray.scp), 再將第 1 行 (line1) 改成 *opsetr2, 第 3 行及第 5 行改成 *opray2, 最後儲存成 opsetr2.scp 檔案 改變處 改變處 *opsetr2 stp outp off; opoc set "*opray2"; stp outp on; 改變處 xeq(opray2); print; print("*opsetray (operand numbers in parentheses)"); print("paraxial data"); print("\7py\14pu\13pyc\13puc"); print(ocm[1],"(1)",ocm[2],"(2)",ocm[3],"(3)",ocm[4],"(4)"); print; 8-29
圖 8-42 *opsetr2 指令文字編輯 5 接下來, 執行 *opsetr2 以計算運算元 你將會看到在軸上區域光線 ( on-axis zone ray) 現在的比例座標為 0.8, 場光線 ( field ray) 在正負 0.5 之間 由 於你 設計的透鏡之視場 ( field of view) 實際為零, 所以你所作的改變將允許你把離 軸光線 (off-axis ray) 當成軸上光線來看 6 如圖 8-43 所示, 更新你的運算元使之包含 OCM28: 圖 8-43 更新運算元 7 設定透鏡, 使得前 3 面的曲率 間隔及像焦點移動量 ( th[4]) 均是變數, 然後 再如前面的步驟一樣作最佳化, 則其結果將與如圖 8-44 此鏡組的 Seidel 比例 超過 0.99, 所以此鏡組現在是完美的 8-30
(a) (b) 圖 8-44 使用 *opsetr2 指令最佳化後之 (a) 光束交切曲線圖及 (b) 面數據 ( 5) OSLO PRO 及 OSLO SIX 的最佳化使用 OSLO PRO 及 OSLO SIX 來執行前面的設計任務, 開始執行的方式將有一點不同 : 設定一個簡單的光線組 ( ray set), 並使用重新定義的運算元程式 1 打開前面練習的 lasrdb.len 起始系統 2 點選 Optimize>>Field Point Set, 輸入一個單一場點, 輸入的資料如下圖所示, 在第一格輸入 0.0 定義此點是必須的動作 8-31
圖 8-45 Update field point set 試算表 3 點選 Optimize>>Ray Set, 並輸入如圖 8-46 所示的資料 : 圖 8-46 Update ray set 試算表 4 點選 Optimize>>Operands, 輸入如下的運算元定義 ( 如圖 8-47) 這些運算元是內部的定義, 計算速度比經過試算表暫存區的 SCP 運算元快 ( 但結果還是一樣的 ) 在運算元定義中, 括號內的第一個數字與場點 ( field point) 有關, 第二個則與線數目 ( ray number) 有關 圖 8-47 修改運算元 設定好系統後, 存在磁碟, 然後如前面一樣繼續執行最佳化 由於最佳化的速度 加快, 你可以期待它更接近解 還有其他在 OSLO PRO 及 OSLO SIX 中的最佳化 相關資訊, 請參考程式附錄 ( Program) 及 Optical Reference Manuals 參考文獻 : 8-32
1. OSLO version 5 user s guide (Sinclair Optics, 1996) 2. 幾何光學, 張弘著, 東華書局印行 3. 幾何光學, 高正雄譯著, 復漢出版社印行 習題 : (8-1) 承習 7-1, 點選鏡面 3 曲率半徑欄的精靈夾格以解 除透鏡群組, 首先先 刪除鏡面 3 接下來更改鏡面 1 之曲率半徑為 30 mm 鏡面 2 為 -35 mm 再將鏡面 2 之厚度 ( 變動範圍由 2 mm至 20 mm ) 及 曲率設定為變數, 鏡面 3 及 鏡面 4 之曲率半 徑也設定為變數, 使用 SCP 運算元的方式對系統作 最 佳化 (hint: 第一步先對三 階的球面像差 ( 權重 : 5) 慧差( 權重 : 2) 及 像散 ( 權重 : 2) 做修正 ; 第二步 對三階的球面像差 ( 權重 : 1) 及 像散 ( 權重 : 2) 再作 一次修正 ) 請問其球面像 光扇圖線及 像散光扇圖的改變, 斑點大小又如何變化? (8-2) 承第五章習題 5-2, 對此望遠鏡系統作最佳化 將系統改為非聚焦模式 ( afocal mode)( hint: 按 F6 進入試算表作修改 ) 使用互動式設計作最佳化, 選擇修改鏡面 4 的厚度 ( ± 範圍 : 10) 及鏡面 2 的厚度 ( ± 範圍 : 25), 對其縱向球面像差 (longitudinal spherical aberration) 做修正 觀察此時之斑點圖及光線交切曲線等的變化 8-33