新聞動態(tài)

News Center

大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收

發(fā)布日期:
2023-01-09

瀏覽次數(shù):

大功率激光器廣泛用于各種領域當中,例如激光切割、焊接、鉆孔等應用中。由于鏡頭材料的體吸收或表面膜層帶來的吸收效應,將導致在光學系統(tǒng)中由于激光能量吸收所產(chǎn)生的影響也顯而易見,大功率激光器系統(tǒng)帶來的激光能量加熱會降低此類光學系統(tǒng)的性能。為了確保焦距穩(wěn)定性和激光光束的尺寸和質(zhì)量,有必要對這種效應進行建模。在本系列的 5 篇文章中,我們將對激光加熱效應進行仿真,包括由于鏡頭材料溫度升高而引起的折射率變化,以及由機械應力和熱彈性效應造成的結(jié)構(gòu)變形。


FEA 分析準備


在本文中,我們將在OpticStudio中打開完整的光機系統(tǒng),準備記錄光束穿過鏡頭和反射鏡時被吸收的激光功率。隨后,我們使用可以導入到FEA軟件的格式來導出此數(shù)據(jù)。打開附件中的?‘system_NSC_2022.zar’ 文件。


光線追跡和取回吸收數(shù)據(jù)


在使用如下所示設置運行光線追跡后,吸收的通量數(shù)據(jù)將存儲在探測器中,并且可通過ZOS-API進行使用和取回。


大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收

任何物體作為探測器(‘Object is Detector’)的表面上輻照度都可以在實體(Shaded)模型中直觀地顯示。


大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收




而且體探測器內(nèi)部的吸收通量可以在探測器查看器中進行查看。


大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收



ZOS-API 作為一種有助于自動化運行數(shù)據(jù)導出流程的強大工具。在下一部分中,我們將演示如何使用ZOS-API腳本來取回探測器上存儲的通量數(shù)據(jù),并對輸出進行配置,以符合您FEA軟件的輸入要求。如果您不熟悉ZOS-API,請參閱 ZOS-API – Zemax入門(https://www.zemax.com/blogs/free-tutorials/getting-started-with-zos-api)了解完整指南和技巧提示,以充分發(fā)揮其功能優(yōu)勢。


示例中所需的數(shù)據(jù)格式


在OpticStudio中,不同類型的探測器能夠存儲不同類型的數(shù)據(jù)。下表總結(jié)了我們從FEA分析所使用的每種探測器中抽取的數(shù)據(jù)類型。


探測器類型

數(shù)據(jù)類型

輻射單位

能量單位

矩形探測器

輻射照度

瓦/平方米

焦耳/平方米

瓦/平方厘米

焦耳/平方厘米

瓦/平方毫米

焦耳/平方毫米

瓦/平方英尺

焦耳/平方英尺

瓦/平方英寸

焦耳/平方英寸

輻射強度

瓦/球面度

焦耳/球面度

輝度

瓦/球面度-平方米

焦耳/球面度-平方米

體探測器

入射通量

吸收通量/體積

吸收通量

焦耳

吸收通量/體積

瓦/立方米

焦耳/立方米

瓦/立方厘米

焦耳/立方厘米

瓦/立方毫米

焦耳/立方毫米

瓦/立方英尺

焦耳/立方英尺

瓦/立方英寸

焦耳/立方英寸

物體作為探測器

入射通量

瓦/平方米

焦耳/平方米

瓦/平方厘米

焦耳/平方厘米

瓦/平方毫米

焦耳/平方毫米

瓦/平方英尺

焦耳/平方英尺

吸收通量

瓦/平方英寸

焦耳/平方英寸


下方表格中總結(jié)了可從各種探測器中獲取并用于 FEA 分析的數(shù)據(jù)類型:


探測器類型

像素形狀

數(shù)據(jù)類型

輻射學
單位

ZOS-API 語句

矩形探測器

矩形

輻照度

瓦/
平方厘米

bool

GetDetectorData (int ObjectNumber, int pixel, int Data(=2), out double Value)

體探測器

矩形體積

吸收通量/體積

瓦/
立方厘米

bool

GetDetectorData (int ObjectNumber, int pixel, int Data(=2), out double Value)

物體作為探測器

三角形

吸收通量

瓦/
平方厘米

double

AbsorbedIrradiance [get]


本例中使用的 FEA 軟件是 Ansys Mechanical,它可以將吸收通量數(shù)據(jù)作為外部熱源導入,以用于熱模擬。導入數(shù)據(jù)所需的格式如下:

X Y Z AbsorbedData

X、 Y、Z 是每個像素中心的全局坐標,而 AbsorbedData 是上面列出的數(shù)據(jù)類型的值。


請注意,當從 “探測器查看器” 窗口檢查吸收通量數(shù)據(jù)時,針對 “物體作為探測器” 選項數(shù)據(jù)盡快在 “文本” 選項卡中進行查看?!拔谋尽?選項卡將顯示每個三角形像素的 “通量” 和 “輻照度” 值的文本列表。X、Y 和 Z 值是每個像素中心的局部坐標。在 STOP 分析過程中,適合使用一個統(tǒng)一的全局坐標系。如果要在全局坐標中導出數(shù)據(jù),則需要進行適當?shù)淖鴺宿D(zhuǎn)換。


使用 ZOS-API 導出吸收數(shù)據(jù)


我們創(chuàng)建了自動運行這個流程,用于取回、格式排版和導出數(shù)據(jù)的Python腳本,如文章附件 ‘ExportAbsorbedFlux.py’。以下章節(jié)內(nèi)容將解釋該部分代碼的具體意義。


計算旋轉(zhuǎn)矩陣

首先,我們需要確定系統(tǒng)中每個物體的旋轉(zhuǎn)矩陣。如果未勾選 “物體屬性…類型…使用全局 XYZ 旋轉(zhuǎn)順序” 選項,則使用以下公式計算物體的旋轉(zhuǎn)矩陣,其中 A、B 和 C 是 NSCE 中列出的傾斜 X、Y、Z 角度。


大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收

大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收


相反,如果勾選了 “使用全局 XYZ 旋轉(zhuǎn)順序” 選項,則物體的旋轉(zhuǎn)矩陣取決于:


大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收


以上計算將在 rotation_matrix 函數(shù)中得到定義:

大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收


將局部坐標轉(zhuǎn)換為全局坐標

將物體局部坐標轉(zhuǎn)換為全局坐標的公式形式可以表達為如下形式:

大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收

其中,g 下標表示全局坐標,o 表示偏移,l 表示局部物體坐標。R11、R12…R33 是物體旋轉(zhuǎn)矩陣 R 的分量。


以上計算將在 convert_to_global 函數(shù)中得到定義:


大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收



計算局部坐標并取回吸收通量數(shù)值

對于 “物體作為探測器” 選項而言:

局部坐標將通過以下代碼的各鱗甲像素循環(huán)形式進行計算:

detector.CurrentFace = j


position_1 = detector.GetVertex(0, 0.0, 0.0, 0.0)
position_2 = detector.GetVertex(1, 0.0, 0.0, 0.0)
position_3 = detector.GetVertex(2, 0.0, 0.0, 0.0)

x_position = (position_1[1] + position_2[1] + position_3[1])/3
y_position = (position_1[2] + position_2[2] + position_3[2])/3
z_position = (position_1[3] + position_2[3] + position_3[3])/3value = detector.AbsorbedIrradiance


position_1、position_2、position_3 代表各三角形像素的三個頂點。


bool GetVertex (int vertexNumber, out double X, out double Y, out double Z)


GetVertex 方法將用于取回指定頂點的 X、Y、Z 坐標值。之后,該三角形中心的坐標值將得到計算。


對于矩形探測器和體探測器而言,局部坐標將通過以下代碼中的矩形像素/矩形體積像素循環(huán)中得到計算。

# Detector Rectanglelocal_x = ((j % pixelsX) - ((pixelsX - 1) / 2)) * (widthX / pixelsX)
local_y = (((j // pixelsX) % pixelsX) - ((pixelsY - 1) / 2)) * (widthY / pixelsY)
local_z = 0.0

value = TheNCE.GetDetectorData(i + 1, j + 1, 2, 0.0)[1]

# Detector Volumelocal_x = ((j % voxelsX) - ((voxelsX - 1) / 2)) * (widthX / voxelsX)
local_y = (((j // voxelsX) % voxelsY) - ((voxelsY - 1) / 2)) * (widthY / voxelsY)
local_z = ((j // (voxelsX * voxelsY)) - ((voxelsZ - 1) / 2)) * (widthZ / voxelsZ)

value = TheNCE.GetDetectorData(i + 1, j + 1, 2, 0.0)[1]


對吸收的數(shù)據(jù)進行逐像素數(shù)據(jù)取回,其中 i 表示物體序號的循環(huán),j 表示像素序號的循環(huán)。參考的本地坐標系位于該物體的中心,在決定如何循環(huán)并依據(jù)從像素到像素順序獲取數(shù)據(jù)時,應注意探測器的像素編號。對于每種探測器類型,可以在 OpticStudio 幫助文件條目中查看探測器的像素編號注釋。


將局部坐標轉(zhuǎn)換為全局坐標并獲取結(jié)果

將提前創(chuàng)建空的數(shù)據(jù)陣列,例如 ‘detectorData’ 將用于存放局部坐標以及探測器數(shù)據(jù),‘global_detectorData’ 將用于存放全局坐標以及探測器數(shù)據(jù):

detectorData = []
global_detectorData = []


局部數(shù)據(jù)將作為各探測器像素循環(huán)計算的附加項:

detectorData.append([local_x, local_y, local_z, float(value)])


***終,各探測器具有局部坐標的陣列將轉(zhuǎn)換為具有全局坐標的數(shù)據(jù)陣列:

detectorData.append([local_x, local_y, local_z, float(value)])


如何使用 Python 代碼

該代碼將結(jié)合 OpticStudio 的交互擴展形式 (Interactive Extension) 運行。

  1. 首先打開非序列模式鏡頭文件,運行光線追跡,勾選使用偏振(‘Use Polarization’)。

  2. 點擊編程……交互式擴展(Click Programming…Interactive Extension),然后在Python IDE 中運行 ExportAbsorbedFlux.py 代碼。


大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收

大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收

  1. 數(shù)據(jù)將保存為代碼中指定的文件夾下的 txt 文件。在運行代碼的過程中將顯示附加數(shù)據(jù)的狀態(tài):


大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收

大功率激光系統(tǒng)的STOP分析4:使用OpticStudio仿真激光吸收



結(jié)論


我們已經(jīng)成功仿真了激光光束穿過光學系統(tǒng)時的吸收情況,并生成了吸收通量數(shù)據(jù)的文件。該數(shù)據(jù)與完整光機系統(tǒng)的模型相結(jié)合,可以為 FEA 工具中的結(jié)構(gòu)分析和熱分析提供輸入。在下一篇文章中,我們將演示如何使用 STAR 模塊獲得結(jié)構(gòu)分析和熱分析的輸出,并導入到 OpticStudio 中。


相關推薦

Zemax手機鏡頭設計 | 第四部分:結(jié)合 LS-DYNA 進行沖擊碰撞性能分析
Ansys Optics本文是系列文章的第四部分,作為延展。該系列文章將...
LS-DYNA | 如何查找和消除初始穿透?
01.摘要本文介紹了何為交叉和穿透,和幾種不同的穿透類型。注:尤其不要混...
Maxwell如何將傅里葉變換結(jié)果參數(shù)化
電機的優(yōu)化設計問題永遠也繞不開對諧波的優(yōu)化,雖然Maxwell后處理中自...
LS-DYNA隱式計算使用技巧 | 檢查清單
01.摘要本文介紹了LS-DYNA隱式計算的一些技巧,即在隱式求解前的一...