最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Ansys Zemax | 大功率激光系統(tǒng)的 STOP 分析(四)

2023-08-16 16:36 作者:武漢宇熠  | 我要投稿

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

?

FEA 分析準(zhǔn)備

?

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

?

體探測器物體

?

與 2D 探測器物體(例如矩形探測器、表面探測器、顏色探測器等)不同,體探測器為 3D 物體形式的探測器,探測器將通過像元(體積形式的像素)記錄對應(yīng)的吸收通量、入射通量以及體吸收通量。為了獲得鏡頭中對應(yīng)的吸收通量數(shù)據(jù),我們將在系統(tǒng)中使用體探測器物體。

?

當(dāng)使用體探測器時(shí),我們可以充分利用非序列模式中的嵌套規(guī)則,計(jì)算鏡頭等物體內(nèi)部吸收的通量。如果兩個(gè)非序列模式物體在空間里重疊,則重疊區(qū)域中的光線行為由嵌套規(guī)則進(jìn)行確定。嵌套規(guī)則規(guī)定:如果光線在空間里的同一位置上照射到一個(gè)以上的物體,NSC 編輯器中列出的最后一個(gè)物體將用于確定該位置上用于與光線相互作用的表面屬性或體屬性。

?

添加體探測器物體

?

為了獲得鏡頭吸收的通量,我們將為每個(gè)元件添加一個(gè)體探測器物體。根據(jù)嵌套規(guī)則,在 NSCE 的每個(gè)鏡頭前面插入一個(gè)略大于相應(yīng)鏡頭元件的體探測器。#X Pixel、#Y Pixel 和#Z Pixel 等參數(shù)可用于指定每個(gè)體探測器物體中的像元總數(shù)量。此時(shí),我們應(yīng)該與 FEA 工程師進(jìn)行溝通如何設(shè)置該像元數(shù)量,這樣有助于確保無需使用過多像元數(shù)量的情況下為 FEA 分析提供足夠高的分辨率設(shè)置,以避免進(jìn)行過多數(shù)量的光線追跡。在本例中,我們決定使用適中的像元采樣100x100x100。

根據(jù)以下 NSCE 截圖,添加對應(yīng)的體探測器物體。

?

為機(jī)械元件應(yīng)用膜層

?


現(xiàn)在,我們?yōu)樗袡C(jī)械元件(NSCE中的14-26號CAD物體)應(yīng)用反射、吸收和散射屬性,可通過物體屬性…膜層/散射 (Object Properties…Coat/Scatter) 部分進(jìn)行設(shè)置。我們可以針對 Face 0 設(shè)置膜層 AL_LASER 用于指定反射和吸收特性,散射則可以通過使用 散射分?jǐn)?shù)=1 的朗伯散射模型進(jìn)行定義。這些設(shè)置通用于 NSCE 中高亮表示的所有對應(yīng)物體。

?

物體屬性設(shè)置

?

在所有導(dǎo)入的CAD元件仍處于選中狀態(tài)的情況下,我們打開物體屬性……類型(Object Properties…Type)并勾選物體作為探測器(‘Object is A Detector’)選項(xiàng)。這樣就能將這些物體設(shè)置為探測器(用于渲染CAD物體的三角形網(wǎng)格被視為像素網(wǎng)格記錄數(shù)據(jù)),從而能夠記錄物體表面上吸收的通量。

?


對于被用作探測器的 CAD 元件而言,被用作像素探測面的默認(rèn)數(shù)值可能不足以提供準(zhǔn)確記錄數(shù)據(jù)所需的分辨率。通過修改 物體屬性…CAD…最大邊長(Object Properties…CAD…Maximum edge length)參數(shù)為默認(rèn)值 0,我們可以縮小探測面/像素尺寸(并增加像素?cái)?shù)量)。

?


在本例中,我們將每個(gè)CAD元件的最大邊長值設(shè)置為0.8mm。

?

系統(tǒng)選項(xiàng):非序列模式設(shè)置

根據(jù)最小相對光線強(qiáng)度(Minimum Relative Ray Intensity)的默認(rèn)設(shè)置,從 CAD 元件的膜層表面反射的光線在其功率降低至初始功率的0.1%(1e-3)以下時(shí)被終止。在我們對這個(gè)大功率激光器的分析中,即使功率閾值降低至初始功率相對較小的部分,每條光線所攜帶的能量仍然會導(dǎo)致系統(tǒng)加熱,必須予以考慮。為避免這個(gè)閾值所導(dǎo)致的能量損耗,我們將最小相對光線強(qiáng)度(Minimum Relative Ray Intensity)設(shè)置為1.0000E-007。

?


本階段操作的實(shí)例文件 ‘system_NSC_2022_Final.zar’ 可通過點(diǎn)擊原文鏈接下載。

?

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

?

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

?


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

?


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

?


ZOS-API 作為一種有助于自動(dòng)化運(yùn)行數(shù)據(jù)導(dǎo)出流程的強(qiáng)大工具。在下一部分中,我們將演示如何使用 ZOS-API 腳本來取回探測器上存儲的通量數(shù)據(jù),并對輸出進(jìn)行配置,以符合您 FEA 軟件的輸入要求。

?

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

?

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

?


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

?


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

X? Y? Z? AbsorbedData

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

?

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

?

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

?

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

?

計(jì)算旋轉(zhuǎn)矩陣

?

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

?


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

?


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

?


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

?

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

?


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

?

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

?


計(jì)算局部坐標(biāo)并取回吸收通量數(shù)值

?

對于 “物體作為探測器” 選項(xiàng)而言:

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

?

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])/3y_position = (position_1[2] + position_2[2] + position_3[2])/3z_position = (position_1[3] + position_2[3] + position_3[3])/3value = detector.AbsorbedIrradiance

?

position_1、position_2、position_3 代表各三角形像素的三個(gè)頂點(diǎn)。

?

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

GetVertex 方法將用于取回指定頂點(diǎn)的 X、Y、Z 坐標(biāo)值。之后,該三角形中心的坐標(biāo)值將得到計(jì)算。

?

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

?

# 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ù)進(jìn)行逐像素?cái)?shù)據(jù)取回,其中 i 表示物體序號的循環(huán),j 表示像素序號的循環(huán)。參考的本地坐標(biāo)系位于該物體的中心,在決定如何循環(huán)并依據(jù)從像素到像素順序獲取數(shù)據(jù)時(shí),應(yīng)注意探測器的像素編號。對于每種探測器類型,可以在 OpticStudio 幫助文件條目中查看探測器的像素編號注釋。

?

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

?

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

detectorData = []

global_detectorData = []

?

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

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

?

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

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

?

如何使用 Python 代碼

?

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

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

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

?

?

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

?



結(jié)論

?

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

Ansys Zemax | 大功率激光系統(tǒng)的 STOP 分析(四)的評論 (共 條)

分享到微博請遵守國家法律
香格里拉县| 上高县| 临桂县| 永昌县| 黄浦区| 嘉峪关市| 福贡县| 连云港市| 凭祥市| 龙江县| 杂多县| 昌黎县| 东台市| 邵武市| 金湖县| 阿坝县| 洮南市| 高雄市| 梅州市| 集贤县| 四会市| 北票市| 黄龙县| 克东县| 越西县| 大石桥市| 青神县| 赣州市| 临洮县| 密山市| 广德县| 蓬溪县| 山西省| 寿光市| 拉萨市| 楚雄市| 莎车县| 巴林左旗| 茌平县| 马尔康县| 板桥市|