定位衍射效應(yīng))
做激光系統(tǒng)的人我猜你十有八九遇到過這種情況用Zemax的幾何光學模塊模擬高斯光束光斑半徑、發(fā)散角看起來都對可一旦涉及衍射、相位變化、像差對光束質(zhì)量的影響結(jié)果就怎么都對不上。別急這不是你的參數(shù)有問題而是工具沒選對。高斯光束的本質(zhì)是波動光學的產(chǎn)物幾何光學那一套“光線”邏輯從底層就承載不了它。Zemax里的Physical Optics PropagationPOP模塊才是專門干這活的。這篇內(nèi)容不繞彎子直接講清楚怎么用POP在幾分鐘內(nèi)完成一個靠譜的高斯光束傳播仿真以及配合菲涅爾數(shù)來定位“局部”衍射效應(yīng)的分析技巧。1. 為什么高斯光束傳播要用物理光學模塊而不是幾何光學1.1 幾何光學處理激光光束的三個盲區(qū)我剛接觸Zemax的時候也覺得高斯光束不就是一條條光線帶著權(quán)重嗎在序列模式里把物方數(shù)值孔徑、像方半徑設(shè)好出來的光斑似乎有模有樣??梢坏┪野逊抡娼Y(jié)果和實驗室里的CCD實測光斑對比問題就出來了實測光斑的邊緣有明暗相間的細環(huán)仿真卻是干凈平滑的一個橢圓實測光束經(jīng)過一個1mm的孔徑光闌后遠場圖案明顯變散、變寬仿真卻幾乎沒有變化。這三個典型現(xiàn)象對應(yīng)幾何光學的三個盲區(qū)第一它默認光在均勻介質(zhì)中沿直線傳播沒有相位概念更談不上干涉第二它對孔徑、障礙物的“截斷”效應(yīng)完全沒有感知默認所有光線都暢通無阻第三它沒法表達光場在傳播過程中振幅和相位同時演化的過程。高斯光束靠什么傳播靠的是波動方程的解是振幅呈高斯分布、等相位面不斷變化的波前。這些東西放在幾何光學里等于讓計算機用直線去擬合曲線方向錯了后面再努力也白搭。1.2 POP 的核心思路把光斑拆成一個一個的點再做“接力”POP的原理說穿了并不高深。它把光束在某個截面上的電磁場分布離散成網(wǎng)格每個網(wǎng)格點記錄振幅和相位。光束向前傳播一步就把這些數(shù)據(jù)拿到頻域里做一次傅里葉變換乘以傳播函數(shù)再做一次逆變換也就是業(yè)內(nèi)常說的“角譜法”。這個傳播過程可以一步一步走每走一步都可以記錄光場的截面最后把每一步的數(shù)據(jù)拼起來就是完整的光束演化過程。用生活里的話講幾何光學是扔出一把彈珠看它們各自滾到哪物理光學是鋪開一張大網(wǎng)感受每個網(wǎng)格點的“振動幅度和時機”然后算這些網(wǎng)格點之間如何互相影響。正因為POP保留了相位信息衍射、干涉、聚焦、像差對波前的扭曲這類效應(yīng)它都能算出來。比如你把一個矩形光闌放進光路POP能在光闌后不遠處看到典型的衍射條紋幾何光學無論如何都做不到這一點。所以結(jié)論很明確做激光擴束、聚焦、自由空間傳播、光纖耦合這類問題只要關(guān)心光束半徑、光斑形態(tài)、波前畸變、耦合效率就都應(yīng)該用POP來做而不是在幾何光學里硬撐。2. 模型準備參數(shù)、窗口和坐標先說清楚2.1 高斯光束的四個關(guān)鍵參數(shù)在Zemax里定義一個接近真實情況的高斯光束源其實只需要確定四個量。第一個是波長這直接決定了衍射效應(yīng)的強弱同樣傳播100mm1064nm的紅外光比405nm的藍紫光衍射更劇烈因為它們的波長差了接近三倍。第二個是束腰半徑也就是光斑最細處的半徑通常取光強降到峰值1/e2處的半徑。第三個是M2因子理想基模高斯光束M21實際激光器一般1.1到1.5之間它反映的是光束質(zhì)量相對理想高斯光束的偏離程度。第四個是束腰位置也就是光束最細的地方在全局坐標系的哪里這個位置決定了后續(xù)傳播曲率半徑和光斑尺寸的演化起點。這四個參數(shù)里束腰半徑和束腰位置最容易被弄混。很多人直接用激光器出口的光斑直徑當束腰半徑然后發(fā)現(xiàn)POP算出來的發(fā)散角跟產(chǎn)品手冊對不上。真實情況是很多激光器的束腰在諧振腔內(nèi)部出口處的光斑已經(jīng)是發(fā)散了一段時間后的樣子。所以在建模之前最好有激光器的M2和束腰位置數(shù)據(jù)或者用焦距已知的透鏡加光束質(zhì)量分析儀實測反推。沒有這些數(shù)據(jù)仿真精度就無從談起。2.2 建立模型時容易忽視的坐標設(shè)置POP仿真里坐標系的設(shè)置很容易埋雷。Zemax默認光軸沿著Z方向但高斯光束源應(yīng)該放在哪個面上、傳播方向怎么定義很多人第一次都會搞錯。我的建議是在System Explorer的Non-Sequential Mode里如果做非序列仿真就手動把源放好如果做序列仿真就把高斯光束定義在物面或第一個光學面的前表面指向后續(xù)光路。還有一個特別容易忽略但影響極大的點是模擬窗口的尺寸。POP仿真時空間上你只能截取一個有限的范圍窗口截多大直接決定結(jié)果可信度。規(guī)則很簡單窗口半徑至少是光束半徑的3到4倍。如果窗口太小光斑邊緣會被硬生生截斷截斷處產(chǎn)生虛假的衍射環(huán)看起來像真實衍射實際上是數(shù)值假象。反之窗口開太大又會浪費采樣點導致單位面積采樣不足高頻細節(jié)丟失。我的習慣是先粗略跑一遍看光束在傳播路徑上哪個位置半徑最大用那個位置的光束半徑乘4作為窗口半徑這樣既保證不截斷也不至于浪費資源。3. 3分鐘快速仿真流程3.1 第一步新建系統(tǒng)與波長設(shè)置打開Zemax OpticStudio新建一個系統(tǒng)。序列模式還是非序列模式如果是單純研究高斯光束在自由空間、透鏡中的傳播行為我建議直接在序列模式的POP窗口里做。原因很簡單POP在序列模式里和透鏡、光闌、坐標斷點的配合最成熟運行速度快參數(shù)調(diào)整方便而一旦牽扯到復(fù)雜機械結(jié)構(gòu)、多次反射或散射再切換到非序列也不遲。在System Explorer里先把波長改掉。比如用632.8nm的He-Ne激光器就在Wavelength欄里填0.6328單位默認是微米。接著把孔徑類型設(shè)為Object Space NA或者Image Space NA具體看你怎么定義光束。如果高斯光束是從一個平面直接向前傳播Aperture類型用Object Space NA數(shù)值可以暫時填一個大一點的數(shù)比如0.05到0.1避免它限制后面的仿真。這里有個坑很多人忘記改Aperture還沿用系統(tǒng)默認的“無焦像空間”或“近軸像高”結(jié)果POP的光束定義被系統(tǒng)的孔徑設(shè)置莫名其妙地裁剪出來的光斑總有一側(cè)缺一塊。3.2 第二步插入高斯光束源點開Physical Optics Propagation窗口如果找不到在菜單欄的Analysis Physical Optics 里可以打開英文版是Analysis Physical Optics Propagation。在Beam Definition選項卡里把Beam Type設(shè)置為Gaussian Beam。這時界面會出來一堆參數(shù)輸入框重點看這幾個Wavelength、Beam Size、Position、M2、Sampling。Beam Size就是上面提到的束腰半徑單位是毫米。比如束腰半徑0.5mm就填0.5。Position指束腰位置相對當前傳播起始面的位置如果光束從束腰處開始傳播就填0。M2按實際激光器填沒有數(shù)據(jù)就填1。Sampling是采樣網(wǎng)格數(shù)常規(guī)先填256×256復(fù)雜系統(tǒng)再往上提。填完這些點擊OKZemax就會把高斯光束的振幅和相位分布“鋪”在起始面上。我建議你這時候先別急著跑傳播先看一眼起始面的Irradiance圖。打開Analyze Physical Optics Irradiance選擇你定義的起始面確認光斑形態(tài)是規(guī)則的圓形高斯分布中間亮、邊緣平滑衰減。如果看到光斑被削平了或者一側(cè)有硬邊緣回到Aperture設(shè)置和Beam Size檢查多半是哪個地方把光束裁掉了。這一步只要10秒鐘能省后面一大堆排查時間。3.3 第三步設(shè)置傳播面和運行POP在序列模式下光束會沿著你設(shè)置的光學面一個個往下走。比如你想模擬高斯光束在空氣中傳播100mm后再經(jīng)過一個焦距50mm的透鏡那就在透鏡前后都留出對應(yīng)的空氣間隔然后在POP窗口里設(shè)定從哪個面開始、到哪個面結(jié)束。實際操作是這樣的在POP的Propagation選項卡里把Start Surface設(shè)為光源所在面End Surface設(shè)為最后一個要觀察的面。Zemax會自動把這個區(qū)間切成若干步每一步都做一次衍射傳播計算。要注意Propagation Step的數(shù)量它不是越多越好而是夠用就好。步數(shù)太多會顯著拖慢速度步數(shù)太少又可能漏掉傳播中的細節(jié)變化。經(jīng)驗值是對于100mm左右的自由空間傳播先設(shè)20到50步看結(jié)果穩(wěn)定了再降如果觀察到的光斑邊緣有明顯不自然的鋸齒就增加步數(shù)。設(shè)置完成后點Propagate或者按CtrlPZemax就開始計算。對于只有幾片透鏡的簡單系統(tǒng)通常是秒級完成這就是標題里說的3分鐘搞定——實際上操作熟練后從新建文件到出結(jié)果2分鐘都能跑完但前提是你知道每一步在做什么。3.4 如何一次性檢查光斑、相位和功率跑完傳播后別只盯著一張Irradiance圖那只是結(jié)果的一半。POP提供三類核心輸出Irradiance光強分布、Phase相位分布、Power總功率。我?guī)缀趺看味紩堰@三個圖都調(diào)出來并排對比。光強圖告訴你光斑長什么樣是不是高斯分布、有沒有畸變、有沒有出現(xiàn)旁瓣。相位圖告訴你波前是什么形態(tài)是平面波還是球面波有沒有渦旋、有沒有像差引起的扭曲。Power則告訴你傳播過程中有沒有能量損耗如果總功率出現(xiàn)明顯跳動先懷疑采樣不足或窗口截斷再去懷疑其他。這三個圖之間經(jīng)常能發(fā)現(xiàn)單獨看光強發(fā)現(xiàn)不了的問題。舉個例子我曾經(jīng)模擬一個離軸拋物面鏡反射后的高斯光束光強圖看起來非常完美中心亮斑、對稱分布一點問題看不出來。但我順手打開相位圖一看波前整個傾斜了四五個波長這意味著實際系統(tǒng)里聚焦點會偏移、耦合效率會下降。如果只看光強圖這個設(shè)計就這樣稀里糊涂地“通過”了。4. 菲涅爾局部分析從憑感覺變成有依據(jù)4.1 菲涅爾數(shù)怎么算算出來代表什么很多初學者看到“菲涅爾局部分析”這個詞就有點發(fā)怵覺得是高深理論。其實它特別實用一句話就能講明白菲涅爾數(shù)描述了“光的衍射效應(yīng)在某個距離上到底有多強”。計算菲涅爾數(shù)的公式長這樣F a2 / (λz)。其中a是光束的特征尺寸通常取束腰半徑或光闌半徑λ是波長z是從特征位置到觀察平面的距離。這個數(shù)大說明幾何光學近似成立光束邊緣的衍射效應(yīng)弱這個數(shù)小說明衍射效應(yīng)強必須認真對待。拿一個具體例子感受一下。束腰半徑0.5mm波長632.8nm傳播距離1m菲涅爾數(shù)就是(0.5×10?3)2 ÷ (632.8×10?? × 1) ≈ 0.395。這個數(shù)遠小于1說明在1米之外光束已經(jīng)處于遠場區(qū)域衍射效應(yīng)非常顯著光斑會明顯擴大、發(fā)散。再看傳播距離只有10mm的情況菲涅爾數(shù)約等于39.5遠大于1這時候光束還基本保持著高斯形狀衍射效應(yīng)很弱。這個數(shù)字的價值在于它能讓你在仿真之前就對結(jié)果“心里有數(shù)”。菲涅爾數(shù)小意味著你必須在POP里設(shè)置足夠大的窗口和足夠高的采樣否則邊緣衍射效應(yīng)會被數(shù)值計算吃掉菲涅爾數(shù)大意味著窗口可以適當開小一點節(jié)省計算時間。4.2 近場與遠場判斷調(diào)整采樣和窗口判斷一個傳播問題屬于近場還是遠場用菲涅爾數(shù)特別直觀。通常認為F遠大于1是近場F接近1或小于1是遠場。近場時相位變化平緩采樣點數(shù)相對少一些也能算出光滑結(jié)果遠場時光束發(fā)散很快網(wǎng)格間距必須很小否則結(jié)果會出現(xiàn)嚴重混疊。舉一個踩過的例子。我有一次模擬一束He-Ne激光經(jīng)過一個直徑2mm的圓孔后傳播500mm的衍射圖案。當時隨手設(shè)了256×256的采樣窗口半徑設(shè)成5mm算出來的衍射環(huán)明顯不對環(huán)間距忽寬忽窄中間還有奇怪的光強抖動。我算了算菲涅爾數(shù)a取圓孔半徑1mmF 12 ÷ (0.0006328 × 500) ≈ 3.16這個值不算特別小也不算特別大屬于過渡區(qū)。問題出在窗口設(shè)置和采樣匹配上。我把窗口半徑縮小到2mm采樣提高到512×512重跑之后衍射環(huán)立刻變得清晰規(guī)則和理論計算的Airy斑也吻合了。說白了菲涅爾數(shù)不是算完看一眼就完事的它直接指導你POP里的數(shù)值參數(shù)怎么設(shè)。菲涅爾數(shù)小于1窗口至少開到光束半徑的5倍采樣在512以上菲涅爾數(shù)在1到10之間窗口4倍、采樣256通常夠菲涅爾數(shù)大于10窗口3倍、采樣128到256就很舒服了。這個經(jīng)驗表格我貼過很多次實操是真的有用。4.3 局部分析實例在Zemax里看“局部”變化菲涅爾局部分析更大的用處是幫助我們判斷光路中某一個特定截面上衍射效應(yīng)的強弱。Zemax POP的Beam Definition里有一種選項可以調(diào)用當前截面上的光場數(shù)據(jù)來生成新的高斯光束源這樣你就能把傳播中途某個位置的數(shù)據(jù)單獨拿出來作為后續(xù)光路的起始條件。這種“局部”分析在評估透鏡表面、光闌、反射鏡附近的波前變化時特別有用。實際操作方法是這樣先跑完一次全程傳播在POP結(jié)果里選擇某個中間面激活選項把這個面上的振幅/相位分布保存為后續(xù)源。然后新建一條光路以這個保存的源作為輸入繼續(xù)往后傳播。這等于把一條長光路拆成前后兩段來分析哪一段出現(xiàn)了衍射、哪一段只是簡單發(fā)散一目了然。我分享一個具體場景設(shè)計激光擴束系統(tǒng)時入射高斯光束半徑0.4mm經(jīng)凹透鏡擴束后再經(jīng)凸透鏡準直中間間隔150mm。整體跑一遍POP當然也能看到結(jié)果但我想知道擴束鏡和準直鏡之間的那段光路上衍射到底占了多大比重。于是我在凹透鏡后10mm的位置保存了光場作為新源繼續(xù)算結(jié)果發(fā)現(xiàn)如果用幾何光學的束腰公式預(yù)測準直鏡前的光束半徑偏差達到12%而使用保存的局域光場作為輸入考慮了衍射細節(jié)后準直鏡前的實際半徑比幾何預(yù)測值大了將近20%。這就直接說明了在這段傳播路徑上衍射是不可忽略的。5. 常見問題與排查實錄5.1 光斑圖出現(xiàn)噪點和鋸齒這個問題通常發(fā)生在采樣不足的情況下。高斯光束邊緣雖然不是陡變的但在遠場傳播后光場分布會變得比較復(fù)雜網(wǎng)格間距太大就會丟失細節(jié)表現(xiàn)為光斑邊緣出現(xiàn)鋸齒狀偽影。解決辦法非常直接提高采樣點數(shù)。在POP窗口里把Sampling從256調(diào)到512或1024重跑一遍。如果鋸齒消失結(jié)論就清楚了。但如果鋸齒始終存在那就是另一種情況窗口截斷造成的邊緣衍射這時候要加大窗口半徑而不是采樣。5.2 傳播后功率變化異常正常情況下POP傳播過程中總功率應(yīng)該保持穩(wěn)定誤差在百分之幾以內(nèi)。如果你發(fā)現(xiàn)功率跳來跳去或者單向衰減特別厲害先檢查窗口。窗口太小會把光斑的一部分截在計算區(qū)域之外這部分能量就“消失”了。遠場尤其嚴重光束發(fā)散到窗口邊緣之外是常有的事。我自己的規(guī)則是跑完第一步和最后一步分別看一次窗口邊緣的光強值如果邊緣光強超過了中心峰值的1%就加大窗口半徑。另一個功率問題的來源是采樣步數(shù)太少。傳播計算是分段進行的如果步數(shù)不夠每一段里近似誤差就會累積最終反映在功率振蕩上。把傳播步數(shù)從20加到50通常能穩(wěn)定下來。5.3 高頻振蕩條紋POP結(jié)果里出現(xiàn)細密的、周期性的條紋多半是混疊效應(yīng)。光場在頻域里采樣不足時高頻分量會“折疊”回低頻區(qū)域形成假條紋。這種情況在光束經(jīng)過強聚焦或者極陡相位變化的位置之后特別常見。解決辦法是增加頻域采樣率也就是提高空間采樣點數(shù)的同時適當縮小窗口讓頻域范圍變寬。如果窗口不能縮小就選擇矩形采樣方式有時候比極坐標采樣更穩(wěn)定。還有一次異常我發(fā)現(xiàn)在經(jīng)過高次非球面透鏡之后光斑里出現(xiàn)了一組規(guī)則的環(huán)形條紋起初我以為是透鏡表面的衍射折騰半天才意識到是我把采樣設(shè)成了128×128根本不夠解析非球面引入的高階相位。換成1024×1024之后條紋完全消失。所以如果你聽到“采樣不夠”別只想到鋸齒高次條紋同樣是它的典型癥狀。5.4 POP結(jié)果和理論公式對不上這個是最容易讓人崩潰的問題。明明設(shè)置好了高斯光束參數(shù)結(jié)果光斑半徑和理論公式算出來的差了很遠。出現(xiàn)這種情況我第一個懷疑的是坐標系和束腰位置。Zemax里高斯光束的Beam Size如果你填的是束腰半徑Position就必須精確對應(yīng)束腰所在的Z坐標差一毫米結(jié)果都會不同。第二個懷疑對象是M2因子。高斯光束在傳播過程中如果M2大于1等效的“傳播波長”就要乘以M2發(fā)散角也相應(yīng)增大。很多人填了M22卻忘了這個因子對后續(xù)光斑尺寸的影響計算出來的光斑自然比理論值小。第三個容易出問題的是透鏡的建模方式。你用了理想薄透鏡還是真實透鏡模型POP對理想透鏡的相位處理和對實際面型的處理差異很大。尤其是在大數(shù)值孔徑情況下理想透鏡和實際厚透鏡的球差差異會直接影響焦平面附近的光斑尺寸。解決思路是先用薄透鏡模型做公差估算再切換到實際透鏡模型做最終驗證兩者差異如果超過預(yù)期往往是面型或材料色散參數(shù)沒設(shè)對。我把上面幾個常見問題整理成了一張速查表方便對號入座不用每次從頭排查現(xiàn)象可能原因排查方向常用解決辦法光斑邊緣鋸齒采樣不足查看邊緣細節(jié)是否隨采樣提升而消失采樣增加到512或1024總功率衰減或跳動窗口截斷檢測窗口邊緣光強是否超過中心1%窗口半徑擴大1.5到2倍細密周期條紋頻域混疊觀察條紋間距是否隨窗口/采樣變化提高采樣并縮小窗口結(jié)果與理論不符束腰位置、M2或透鏡模型錯誤對照參數(shù)表和理論公式逐項核對優(yōu)先修正束腰坐標和M2光斑某側(cè)缺失系統(tǒng)孔徑裁剪查看Aperture設(shè)置是否限制光束調(diào)整孔徑類型和數(shù)值5.5 幾個實操心得寫在最后做高斯光束傳播模擬這幾年我最大的感受是不要迷信任何單一數(shù)據(jù)源。POP的結(jié)果一定要和理論公式互相印證這才算真正把控制好了。比如束腰半徑0.5mm、波長632.8nm的光束在自由空間傳播1米后理論光斑半徑大概是(0.5mm × 波長 × 距離 ÷ 3.14)開根號這種量級。如果POP算出來差了好倍那就要回頭查參數(shù)設(shè)置而不是急著調(diào)采樣和窗口。其次養(yǎng)成保存光場中間結(jié)果的習慣。Zemax允許你把某個截面上的數(shù)據(jù)保存下來哪怕當時用不上后面改設(shè)計、做優(yōu)化、寫報告都可能用得到。很多時候你不需要把整條光路重新跑一遍只用局部分析那個截面就夠了這能節(jié)約大量時間。最后建議每個項目都建立一個參數(shù)記錄表把波長、束腰半徑、M2、束腰位置、傳播距離、菲涅爾數(shù)、窗口尺寸、采樣點數(shù)、仿真步數(shù)全部記下來。別嫌麻煩這套數(shù)據(jù)兩星期后你自己看都未必記得清更別說團隊協(xié)作時其他人了。把參數(shù)記清楚出問題能復(fù)現(xiàn)調(diào)參數(shù)有依據(jù)才是真正把仿真從“會點按鈕”提升到“會分析”的分水嶺。