Ansys Zemax | 如何使用米氏散射模型模擬環(huán)境中的散射現象

附件下載

聯(lián)系工作人員獲取附件

這篇文章描述了如何在 OpticStudio 中建立 DLL 米氏散射(Mie scattering)模型。下方鏈接的范例文件演示了如何以該模型進行散射的模擬。范例系統(tǒng)包含了兩個不同結構。結構1模擬了光線入射空氣中的水滴后,在散射時達到瑞利極限(Rayleigh limit)的現象。結構2則模擬了光線在較大的粒子中發(fā)生散射時的情形,此時光學現象的討論由瑞利極限轉變?yōu)槊资仙⑸涞姆懂牎?/p>

簡介

根據麥克斯韋方程式,光線入射球型粒子會產生散射的現象,而米氏散射理論為此提供了解析解。此理論可推廣至任意大小的粒子,因此可適用在所有"粒子半徑對入射波長比"的情況。這對于模擬白云中的散射現象1時很有幫助,同時也有助于解釋光線入射特定物質,如牛奶和生物組織時所產生的變化。在 OpticStudio 的非序列模式中,我們可以用體散射(bulk scattering)的追跡方式建立這類的模型。此外,Bohren 和 Huffman 的研究為此現象的模擬提供了計算的依據。

這篇文章將說明模型在模擬系統(tǒng)中的表現,同時也會以一個大氣中的散射現象作為例子,此模擬將運用到米氏理論的 DLL 。

參數模擬

為了在非序列模式中的對象上套用米氏散射分布的設定,如下圖所示,我們需先開啟該物件的屬性字段(Object Properties),并在下方的 Volume Physics 項目中勾選 DLL 定義散射(DLL Defined Scattering),最后在 DLL 字段選擇 MIE.DLL。


為了使這個 DLL 正常運行,我們需要輸入5項參數。

折射系數

我們在這個字段設定散射粒子的折射系數(實數部分),而環(huán)境介質的折射系數,則是在材質(Material)欄位設定。若在粒子與環(huán)境有相同折射系數的情況下(或兩者的差異在10-6以下),則此時粒子無法自環(huán)境中被區(qū)分,散射的現象將不會發(fā)生。另外,當粒子的折射系數被設定小于0.0,此時也不會有散射發(fā)生,DLL 將會被忽略。

尺寸(微米)

此處指的是球型粒子的半徑(r)大小。若數值被設定為≤ 0.0,則不會有散射現象發(fā)生,DLL ?將被忽略。半徑的最大值將取決于標準化的球體大小(x = 2πrn/λ,n為環(huán)境的折射率),一般情況下默認為1934。若數值超過此數值,則散射不會發(fā)生。對于如此大的球體粒子,直接在 OpticStudio 中模擬球體本身會是一個較理想的方式,不建議使用球體的等效散射分布設定。

密度和平均自由路徑

散射粒子在對象中的密度。若數值小于0.0,則散射不會發(fā)生,DLL 會被忽略。若數值大于0.0,則此時程序會將數值搭配散射截面(σs)進行計算,最后求得散射平均自由路徑(mean-free path)為λmfp = 1/nsσs。若密度等于0.0,則此時的平均自由路徑會與上方"平均路徑(Mean Path)"欄位等值。而當密度大于0.0時,平均路徑的數值將被忽略。此外,若平均路徑的數值為0,則 DLL 將被忽略。注意,平均路徑字段無法輸入負值。

最小閾值

OpticStudio 中的散射計算會涉及機率密度函數(Probability density function)的積分。一般而言,在極坐標(polar direction)上積分的范圍是由0到π,在方位角(azimuthal direction)上取0到2π。但對于分布較集中的情形而言,計算積分的過程會涵蓋大量機率為零的范圍,減低計算過程的效率。為了解決這樣的問題,通過修改最小閾值,我們可以降低極坐標積分的上限。此上限值是由機率分布峰值中一小部分區(qū)域在極坐標空間中的位置所決定。舉例而言,假如我們將最小閾值設定為0.01,則此時極坐標積分的上限就會是機率分布為0.01的位置坐標乘以峰值的機率。若輸入值小于≤0.0或者≥0.5,則數值將會變?yōu)轭A設的0.001。

我們必須審慎看待最小閾值的設定。一般來說,在粒子較大的案例中,機率分布會更集中。設計者為了得到更好的結果,可能會將最小閾值設為更大的數值。但由于散射計算中的角分辨率為定值(0.1度),所以當機率分布更加集中時,相鄰角度的機率變化會更加劇烈。因此在這個案例中,為了確保能有足夠的數據點用于積分,降低最小閾值是必要的。

我們可以通過比較模擬結果的方式找到合適的最小閾值。輸入值由0.01開始,并逐次將前一次的數值乘上0.1。若發(fā)現結果產生明顯的變化,則繼續(xù)遞減數值直到結果收斂。當我們得到這個最佳值后,可以發(fā)現往后即使再減少最小閾值也無法增加計算的準確性,只是徒然的增加運算時間而已。

透射率

這是一個衰減因子,可降低任何經歷散射事件的光線的強度。當射線散射在散射體積內時,其強度乘以此因子。例如,如果傳輸設置為 0.89,則散射射線的強度將是散射前強度的 0.89 倍。此因子允許用戶考慮散射球體中能量的吸收。背景介質中能量的吸收將由卷"材料"列中指定的材料的傳輸屬性確定。

雖然散射粒子折射指數的假想成分會影響吸收——這可以以傳輸輸入 DLL 為特征——該組件也會影響散射的概率分布。但是,只有當假想組件的大小為 +10-2 或更大,對應于高度吸收粒子時,概率分布才會受到影響。因此在模擬米氏散射時,我們可以先忽略折射系數虛部造成的影響。

額外考量

最后,DLL 中不會使用到"角度"這個參數,但如果將這個參數值設為≤ 0.0或> 180.0,則散射的現象不會發(fā)生(DLL 將被忽略)。

米氏散射的分布主要由兩個無因次的參數所描述:散射粒子和背景介質的折射率比值(m =nparticle /nbackground)以及歸一化的球體尺寸(x =2πrnbackground/λ)。米氏散射的分布會以每一對(m, x)為目標進行計算,一旦完成這些計算的過程,且結果儲存在內存中之后,則任意數量的光線就可被用于追跡。DLL 至多可儲存10,000對的(m, x)值。一旦超過這個上限,則系統(tǒng)不會再儲存任何的米氏散射數據,其余的(m, x)輸入將不會產生散射的現象。對于大多數的用戶而言,10,000的輸入上限值是非常足夠的。

范例:大氣中的散射現象

接下來我們會使用一個簡單的范例驗證米氏散射的程序。

在范例中,我們使用一個橢圓光源(Source Ellipse)模擬太陽,光源的光譜分布由它的黑體溫度決定。


如上圖,我們將溫度設為 5780 K 以模擬太陽的表面。

同時使用矩形對象代表大氣環(huán)境,我們可以發(fā)現大氣的顏色是由顏色探測器(Detector Color object)所決定。我們使用另一個顏色探測器觀察太陽的光譜信息。注意,這個示例的結果并未按比例尺繪制,只是單純的展示如何將米氏散射的程序于系統(tǒng)中進行模擬。

范例中的系統(tǒng)包含了兩個不同的結構,在結構1中,對象的參數是依據瑞利極限(Rayleigh limit)的條件進行設定的,確保 DLL 可以產生符合預期的散射現象(此時歸一化的球體尺寸<< 1)。


在粒子折射率方面,我們以1.33表示水的折射系數。此外,我們將矩形對象的材質字段留白,代表該物件可視為空氣。由此,我們建立了光線因空氣中的水滴而發(fā)生散射的等效模型。

每個水滴的大小為7 nm。對可見光波長(介于0.4至0.7之間)而言,因此歸一化的球體大小介于0.063和0.11之間(<< 1,符合瑞利極限的條件)。而粒子密度方面,我們需要設定適當的數值,使系統(tǒng)的平均自由路徑可保持約幾毫米長(這項數據并不會顯示在結果中,但會受到程序變更的影響)。

在追跡 1,000萬條光線后,我們可以發(fā)現大氣顯現的結果為藍色,這是因為瑞利極限中散射的現象與入射波長(1/λ4)有很強的關聯(lián)性所致。


此處的顏色可根據色坐標進行定義,如下圖我們可在優(yōu)化函數中選擇 NSDE 操作數來達成目的。


將結果產生的數值與優(yōu)化函數中的太陽光譜(上圖的第7、8行)進行比較,我們可以輕易的觀察到瑞利散射發(fā)生時顏色產生的位移。

在結構2中,散射粒子的尺寸明顯增加了,在這樣的情況下討論的范疇將由瑞利極限變更至米氏散射的領域。


為了使散射的平均自由路徑與結構1相似(幾毫米長),粒子的密度必須降低。而這項數據同樣不會顯現在結果中,但仍會受到程序的影響。同時,最小閾值也必須降低,確保在粒子尺寸如此大的情況下,機率分布仍能夠充分的被采樣。完成 1,000萬條光線的追跡后,我們可以發(fā)現顯現的顏色結果和光源的光譜是十分接近的。


在優(yōu)化函數部分,我們同樣加入 NSDE 操作數使結果能更明確的表示:


最后得到的結果顯示,在米氏散射的條件下,散射的分布與入射波長的關聯(lián)性極低,這個結果與文獻的結論是一致的4。這樣的現象解釋了為何太陽周圍的光線看起來是白色的,和太陽本身的顏色一樣。同時,這也解釋了天空中的云為什么看起來同樣是白色的。這是因為構成白云的水滴尺寸遠大于大氣中的粒子(在本范例中,我們以液態(tài)水代表這些粒子,但實際上這些粒子多半是氮氣和氧氣分子)。因此,我們可以觀察到當陽光在白云周圍產生散射時,并不會有顏色的偏移,但當光線在大氣中散射時卻是有的。