使用Henyey-Greenstein分布模擬體散射
概述
這篇文章介紹了如何使用Henyey-Greenstein(后文簡稱H-G)分布定義體散射。該模型可以更改輸入?yún)?shù)的設(shè)置,因此可以模擬不同類型的系統(tǒng),其中主要包括光線與生物樣本或星際塵埃之間發(fā)生的散射效應(yīng)。本文使用的示例文件請從以下鏈接下載:
https://customers.zemax.com/ZMXLLC/media/Knowledge-Base/Attachments/11008_ArticleAttachments.zip
介紹
H-G模型用來描述了光線入射到微小顆粒產(chǎn)生散射時的角分布。該模型可以應(yīng)用于很多情況,最主要的應(yīng)用為模擬生物樣本產(chǎn)生的散射[1]及星際塵埃產(chǎn)生的散射[2]。在這個模型中,散射光線的角分布定義為:

其中參數(shù)g用來對分布進(jìn)行描述。當(dāng)g=0時,該模型模擬光線射入材料后,散射光線在所有方向的散射概率是相同的。隨著g逐漸增大并接近1,散射分布逐漸集中于q=0度的方向。
H-G模型的能量分布
本節(jié)使用的示例文件請見下載附件中的HG-power.ZMX文件。
該系統(tǒng)中包含一個單光線光源 (Source Ray),光源發(fā)出的光線垂直射入一個矩形體,其中矩形體定義為H-G體散射分布,該分布使用一個用戶自定義DLL來定義。
打開非序列元件編輯器中矩形體(本例中為物體2)的物體屬性 (Object Properties),在體散射 (Volume Physics)選項(xiàng)卡中可以看到,該散射模型為DLL文件散射 (DLL Defined Scattering)并且DLL文件選擇“Henyey-Greenstein-bulk.DLL”:

系統(tǒng)中使用的DLL文件及源代碼(.c文件)默認(rèn)位于Zemax根目錄下DLL > BulkScatter文件夾中。
該DLL文件需要輸入透過率(用來描述輸入的能量在散射過程中的衰減)和參數(shù)g。在系統(tǒng)中還放置有三個探測器,這三個探測器距離散射體中發(fā)生散射點(diǎn)的距離是相同的,但是與入射光軸的夾角分別為0度,30度和60度:

上圖所示的非序列3D視圖 (NSC 3D Layout)中還未開啟散射,因此我們只看到原始光線。在開始分析之前,我們需要開啟散射設(shè)置。打開單光線光源的物體屬性。在光源設(shè)置中,您會看到當(dāng)前系統(tǒng)設(shè)置每條入射光線只發(fā)生一次散射:

系統(tǒng)默認(rèn)的體散射設(shè)置為很多 (Many),這意味著光線在散射介質(zhì)中會發(fā)生多次散射。如果選擇“一次 (Once)”,則每根光線只發(fā)生一次體散射。如果光線在散射前發(fā)生分裂,例如發(fā)生在矩形體的表面,則每根子光線都有可能會發(fā)生散射。如果選擇“從不 (Never)”,則該光源發(fā)射的所有光線都不會發(fā)生體散射。
我們可以通過選中設(shè)置中的“NSC光線散射 (Scatter NSC Rays)”以在非序列3D視圖中觀察光線的散射:

如圖可見,許多光線并沒有射入探測器,這些光線在圖中只沿傳播方向畫出了一小部分。如果您想更改截止光線的繪制長度,請?jiān)谙到y(tǒng)選項(xiàng) (System Explorer) > 非序列模式 (Non-Sequential)中的“系統(tǒng)單位下的截止光線長度 (Missed Ray Draw Distance In Lens Unit)”:

該參數(shù)用來設(shè)置沒有入射到任何物體上時的光線繪制長度。如果設(shè)置為零,OpticStudio將采用默認(rèn)長度顯示這些光線。
我們可以使用過濾字符串 (Filter String)來分析那些在矩形體內(nèi)產(chǎn)生散射并入射到矩形探測器上的光線。過濾字符串由指令或標(biāo)簽之間的邏輯運(yùn)算構(gòu)成,可表明光線所處的狀態(tài),如射入到某物體、未射入物體、在某物體上發(fā)生反射、折射、散射、衍射或鬼像反射等。在本例中,我們使用的過濾字符串如下所示:
·Bn:顯示光線在#n物體內(nèi)發(fā)生體散射
·Hn:顯示光線射入#n物體
我們可以通過邏輯運(yùn)算符連接這些字符串:
· &:邏輯和 (And),只有在符號“&”兩邊的指令同時為真 (True)時才返回真
· |:邏輯或 (Or),符號“|”兩側(cè)只要有一條指令為真,則該邏輯運(yùn)算符返回真
因此,為了顯示在矩形體(物體#2)中產(chǎn)生散射且射入其中一個矩形探測器(物體#3,#4,#5)的光線,我們可以使用字符串“B2&(H3|H4|H5)”來實(shí)現(xiàn)。我們可以在非序列3D視圖以及非序列實(shí)體模型 (NSC Shaded Model)中使用字符串:


我們同樣可以在光線追跡控制 (Ray Trace Control)中保存光線數(shù)據(jù)庫時使用過濾字符串:

在本例中共追跡(透過率設(shè)為100%)5,000,000根光線且總功率為1W,通過分析每個探測器上的能量來分析散射光的強(qiáng)度分布。參數(shù)g分別為0.001和0.5時的結(jié)果如下表所示:

在本例中,平均自由程 (Mean Free Path)設(shè)為0.0001mm,遠(yuǎn)小于散射體積的0.1mm厚度。在只允許一次散射的情況下,OpticStudio的測量值和理論值相比均處于統(tǒng)計(jì)誤差之內(nèi)(每次光線追跡的數(shù)值結(jié)果根據(jù)統(tǒng)計(jì)原理都會有所不同,但值非常接近)。
上表中的測試數(shù)據(jù)是由下圖中讀取每一個探測查看器得到的:



需要注意的是:如果輸入量參數(shù)g=0時,實(shí)際運(yùn)算中將使用10E-4。這是為了避免因?yàn)間=0而在計(jì)算中產(chǎn)生奇點(diǎn)。當(dāng)g的取值小時,其仿真結(jié)果實(shí)際上與g=0非常接近,因此我們可以認(rèn)為這個近似足夠精確。
H-G模型的角分布
本節(jié)使用的示例文件請見下載附件中的HG-angular.ZMX文件。
在該示例文件中,單光線光源同樣發(fā)射總功率為1W,透過率為100%,共5,000,000根光線并垂直入射到具有H-G散射分布的物體中。并且光源設(shè)置為每根入射光線在物體中只發(fā)生一次散射,散射體積的平均自由程遠(yuǎn)小于物體的厚度。
在系統(tǒng)中,散射體之后4mm的位置為一個巨大的探測器來測量光線經(jīng)過散射體后的輻射強(qiáng)度 (Watts/steradian)分布。對于g=0.001,分布為均勻分布:

對于g=0.5,能量分布變得更加集中:

我們可以使用該數(shù)據(jù)與理論模型的概率分布進(jìn)行對比,可以看到量分布近乎相同:

小結(jié)
H-G模型可以用來描述光線經(jīng)微小顆粒產(chǎn)生散射的角分布。OpticStudio中內(nèi)置有的DLL可以幫助用戶對任意非序列物體定義體散射模型。