0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用OpticStudio仿真激光吸收

LD18688690737 来源:Ansys 光电大本营 作者:Ansys Zemax 2022-11-07 17:44 次阅读

大功率激光器广泛用于各种领域当中,例如激光切割、焊接、钻孔等应用中。由于镜头材料的体吸收或表面膜层带来的吸收效应,将导致在光学系统中由于激光能量吸收所产生的影响也显而易见,大功率激光器系统带来的激光能量加热会降低此类光学系统的性能。为了确保焦距稳定性和激光光束的尺寸和质量,有必要对这种效应进行建模。

在本系列的 5 篇文章中,我们将对激光加热效应进行仿真,包括由于镜头材料温度升高而引起的折射率变化,以及由机械应力和热弹性效应造成的结构变形。

FEA 分析准备

在本文中,我们将在OpticStudio中打开完整的光机系统,准备记录光束穿过镜头和反射镜时被吸收的激光功率。随后,我们使用可以导入到FEA软件的格式来导出此数据。打开附件中的‘system_NSC_2022.zar’ 文件。

探测器物体

与 2D 探测器物体(例如矩形探测器、表面探测器、颜色探测器等)不同,体探测器为 3D 物体形式的探测器,探测器将通过像元(体积形式的像素)记录对应的吸收通量、入射通量以及体吸收通量。为了获得镜头中对应的吸收通量数据,我们将在系统中使用体探测器物体。

当使用体探测器时,我们可以充分利用非序列模式中的嵌套规则,计算镜头等物体内部吸收的通量。如果两个非序列模式物体在空间里重叠,则重叠区域中的光线行为由嵌套规则进行确定。嵌套规则规定:如果光线在空间里的同一位置上照射到一个以上的物体,NSC编辑器中列出的最后一个物体将用于确定该位置上用于与光线相互作用的表面属性或体属性。

添加体探测器物体

为了获得镜头吸收的通量,我们将为每个元件添加一个体探测器物体。根据嵌套规则,在NSCE的每个镜头前面插入一个略大于相应镜头元件的体探测器。#X Pixel、#Y Pixel和#Z Pixel等参数可用于指定每个体探测器物体中的像元总数量。此时,我们应该与FEA工程师进行沟通如何设置该像元数量,这样有助于确保无需使用过多像元数量的情况下为FEA分析提供足够高的分辨率设置,以避免进行过多数量的光线追迹。在本例中,我们决定使用适中的像元采样100x100x100。

根据以下 NSCE 截图,添加对应的体探测器物体。

835b50fe-5e7f-11ed-a3b6-dac502259ad0.png

为机械元件应用膜层

836c8734-5e7f-11ed-a3b6-dac502259ad0.png

现在,我们为所有机械元件(NSCE中的14-26号CAD物体)应用反射、吸收和散射属性,可通过物体属性...膜层/散射 (Object Properties…Coat/Scatter) 部分进行设置。我们可以针对 Face 0 设置膜层 AL_LASER 用于指定反射和吸收特性,散射则可以通过使用 散射分数=1 的朗伯散射模型进行定义。这些设置通用于 NSCE 中高亮表示的所有对应物体。

物体属性设置

在所有导入的CAD元件仍处于选中状态的情况下,我们打开物体属性……类型(Object Properties…Type)并勾选物体作为探测器(‘Object is A Detector’)选项。这样就能将这些物体设置为探测器(用于渲染CAD物体的三角形网格被视为像素网格记录数据),从而能够记录物体表面上吸收的通量。

838c6982-5e7f-11ed-a3b6-dac502259ad0.png

对于被用作探测器的 CAD 元件而言,被用作像素探测面的默认数值可能不足以提供准确记录数据所需的分辨率。通过修改 物体属性…CAD…ZUI大边长(Object Properties…CAD…Maximum edge length)参数为默认值 0,我们可以缩小探测面/像素尺寸(并增加像素数量)。

83a97838-5e7f-11ed-a3b6-dac502259ad0.png

83b9a0e6-5e7f-11ed-a3b6-dac502259ad0.png

在本例中,我们将每个CAD元件的ZUI大边长值设置为0.8mm。

83d0e846-5e7f-11ed-a3b6-dac502259ad0.png

系统选项:非序列模式设置

根据ZUI小相对光线强度(Minimum Relative Ray Intensity)的默认设置,从CAD元件的膜层表面反射的光线在其功率降低至初始功率的0.1%(1e-3)以下时被终止。在我们对这个大功率激光器的分析中,即使功率阈值降低至初始功率相对较小的部分,每条光线所携带的能量仍然会导致系统加热,必须予以考虑。为避免这个阈值所导致的能量损耗,我们将ZUI小相对光线强度(Minimum Relative Ray Intensity)设置为1.0000E-007。

83de018e-5e7f-11ed-a3b6-dac502259ad0.png

本阶段操作的实例文件 'system_NSC_2022_Final.zar’ 可通过点击原文链接下载

光线追迹和取回吸收数据

在使用如下所示设置运行光线追迹后,吸收的通量数据将存储在探测器中,并且可通过ZOS-API进行使用和取回。

83ecc692-5e7f-11ed-a3b6-dac502259ad0.png

任何物体作为探测器(‘Object is Detector’)的表面上辐照度都可以在实体(Shaded)模型中直观地显示。

840125c4-5e7f-11ed-a3b6-dac502259ad0.png

而且体探测器内部的吸收通量可以在探测器查看器中进行查看。

84167834-5e7f-11ed-a3b6-dac502259ad0.png

ZOS-API 作为一种有助于自动化运行数据导出流程的强大工具。在下一部分中,我们将演示如何使用ZOS-API脚本来取回探测器上存储的通量数据,并对输出进行配置,以符合您FEA软件的输入要求。

示例中所需的数据格式

在OpticStudio中,不同类型的探测器能够存储不同类型的数据。下表总结了我们从FEA分析所使用的每种探测器中抽取的数据类型。

探测器类型 数据类型 辐射单位 能量单位
矩形探测器 辐射照度 瓦/平方米 焦耳/平方米
瓦/平方厘米 焦耳/平方厘米
瓦/平方毫米 焦耳/平方毫米
瓦/平方英尺 焦耳/平方英尺
瓦/平方英寸 焦耳/平方英寸
辐射强度 瓦/球面度 焦耳/球面度
辉度 瓦/球面度-平方米 焦耳/球面度-平方米
体探测器 入射通量 吸收通量/体积
吸收通量 焦耳
吸收通量/体积 瓦/立方米 焦耳/立方米
瓦/立方厘米 焦耳/立方厘米
瓦/立方毫米 焦耳/立方毫米
瓦/立方英尺 焦耳/立方英尺
瓦/立方英寸 焦耳/立方英寸
物体作为探测器 入射通量 瓦/平方米 焦耳/平方米
瓦/平方厘米 焦耳/平方厘米
瓦/平方毫米 焦耳/平方毫米
瓦/平方英尺 焦耳/平方英尺
吸收通量 瓦/平方英寸 焦耳/平方英寸

下方表格中总结了可从各种探测器中获取并用于 FEA 分析的数据类型:

探测器类型 像素形状 数据类型 辐射学
单位
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,它可以将吸收通量数据作为外部热源导入,以用于热模拟。导入数据所需的格式如下:

X Y Z AbsorbedData

X、 Y、Z 是每个像素中心的全局坐标,而 AbsorbedData 是上面列出的数据类型的值。

请注意,当从 “探测器查看器” 窗口检查吸收通量数据时,针对 “物体作为探测器” 选项数据尽快在 “文本” 选项卡中进行查看。“文本” 选项卡将显示每个三角形像素的 “通量” 和 “辐照度” 值的文本列表。X、Y 和 Z 值是每个像素中心的局部坐标。在 STOP 分析过程中,最好使用一个统一的全局坐标系。如果要在全局坐标中导出数据,则需要进行适当的坐标转换。

使用 ZOS-API 导出吸收数据

我们创建了自动运行这个流程,用于取回、格式排版和导出数据的Python脚本,如文章附件 ‘ExportAbsorbedFlux.py’。以下章节内容将解释该部分代码的具体意义。

计算旋转矩阵

首先,我们需要确定系统中每个物体的旋转矩阵。如果未勾选 “物体属性…类型…使用全局 XYZ 旋转顺序” 选项,则使用以下公式计算物体的旋转矩阵,其中 A、B 和 C 是 NSCE 中列出的倾斜 X、Y、Z 角度。

84286350-5e7f-11ed-a3b6-dac502259ad0.png

8433c402-5e7f-11ed-a3b6-dac502259ad0.png

相反,如果勾选了 “使用全局 XYZ 旋转顺序” 选项,则物体的旋转矩阵取决于:

84421b38-5e7f-11ed-a3b6-dac502259ad0.png

以上计算将在 rotation_matrix 函数中得到定义:

845076e2-5e7f-11ed-a3b6-dac502259ad0.png

将局部坐标转换为全局坐标

将物体局部坐标转换为全局坐标的公式形式可以表达为如下形式:

846096f8-5e7f-11ed-a3b6-dac502259ad0.png

其中,g 下标表示全局坐标,o 表示偏移,l 表示局部物体坐标。R11、R12…R33 是物体旋转矩阵 R 的分量。

以上计算将在 convert_to_global 函数中得到定义:

847020e6-5e7f-11ed-a3b6-dac502259ad0.png

计算局部坐标并取回吸收通量数值

对于 “物体作为探测器” 选项而言:

局部坐标将通过以下代码的各鳞甲像素循环形式进行计算:

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 坐标值。之后,该三角形中心的坐标值将得到计算。

对于矩形探测器和体探测器而言,局部坐标将通过以下代码中的矩形像素/矩形体积像素循环中得到计算。

# 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]

对吸收的数据进行逐像素数据取回,其中 i 表示物体序号的循环,j 表示像素序号的循环。参考的本地坐标系位于该物体的中心,在决定如何循环并依据从像素到像素顺序获取数据时,应注意探测器的像素编号。对于每种探测器类型,可以在 OpticStudio 帮助文件条目中查看探测器的像素编号注释。

将局部坐标转换为全局坐标并获取结果

将提前创建空的数据阵列,例如 ‘detectorData’ 将用于存放局部坐标以及探测器数据,‘global_detectorData’ 将用于存放全局坐标以及探测器数据:

detectorData = []
global_detectorData = []

局部数据将作为各探测器像素循环计算的附加项:

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

最终,各探测器具有局部坐标的阵列将转换为具有全局坐标的数据阵列:

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

如何使用 Python 代码

该代码将结合 OpticStudio 的交互扩展形式 (Interactive Extension) 运行。

首先打开非序列模式镜头文件,运行光线追迹,勾选使用偏振(‘Use Polarization’)。

点击编程……交互式扩展(Click Programming…Interactive Extension),然后在Python IDE 中运行 ExportAbsorbedFlux.py 代码。

8478b85a-5e7f-11ed-a3b6-dac502259ad0.png

84861bb2-5e7f-11ed-a3b6-dac502259ad0.png

数据将保存为代码中指定的文件夹下的 txt 文件。在运行代码的过程中将显示附加数据的状态:

84919c4e-5e7f-11ed-a3b6-dac502259ad0.png

85a55300-5e7f-11ed-a3b6-dac502259ad0.png

结论

我们已经成功仿真了激光光束穿过光学系统时的吸收情况,并生成了吸收通量数据的文件。该数据与完整光机系统的模型相结合,可以为 FEA 工具中的结构分析和热分析提供输入。在下一篇文章中,我们将演示如何使用 STAR 模块获得结构分析和热分析的输出,并导入到 OpticStudio 中。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 探测器
    +关注

    关注

    14

    文章

    2439

    浏览量

    72068
  • 激光器
    +关注

    关注

    17

    文章

    2250

    浏览量

    59065
  • CAD
    CAD
    +关注

    关注

    17

    文章

    1038

    浏览量

    71548

原文标题:大功率激光系统的STOP分析4:使用OpticStudio仿真激光吸收

文章出处:【微信号:光电资讯,微信公众号:光电资讯】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用OpticStudio中的多重结构功能模拟分光棱镜

    OpticStudio中,分光棱镜可以在序列或非序列追迹模式下模拟。
    的头像 发表于 01-07 11:18 860次阅读
    使用<b class='flag-5'>OpticStudio</b>中的多重结构功能模拟分光棱镜

    用labview编写的基于激光光谱吸收技术的氧浓度检测程序

    用labview编写的基于激光光谱吸收技术的氧浓度检测程序
    发表于 04-19 10:53

    【TL6748 DSP申请】可调谐激光吸收光谱技术用于浓度场测量

    研究的总体技术路线。按如下方案进行研究:第一步,建立单一光路试验台。利用HITRAN数据库分析CO2,CO,NOX等目标气体的在中红外波段的吸收光谱,并且结合不同可调谐半导体激光器的扫描波长范围,确定
    发表于 09-10 11:16

    AD603 会自动补偿激光微弱衰减(激光对某些气体吸收引起的)吗

    激光吸收衰减,用AD603 自动增益补偿再与锁相放大参考相比输出波形就像从未衰减一样,这是603对微小衰减的补偿吗
    发表于 10-11 08:21

    激光塑料焊接技术的流程和方法

    的材料变成激光吸收材料,这样传统的Nd: YAG固体激光器(1064nm和倍频532nm)和大功率GaAs半导体激光器(800nm-1000nm)以及新型光纤激光器都可以被用作
    发表于 09-10 16:56

    半导体制造商ROHM株式会社三种新型双波长激光二极管

    激光二极管普遍以"衰耗波导"作为其波导结构,而ROHM最近则首次采用了"实指数波导"。"实指数波导"具有光吸收损耗少,可靠性强等特点,相比
    发表于 07-11 04:20

    有什么方法可以增加材料对激光吸收

    与热切割考试。1、【单选题】 吸收率决定了工件对激光束能量的利用率,下列措施不能增加材料对激光吸收率的是()。(B)A、材料表面处理B、使用惰性气体C、提高材料表面温度2、【单选题】
    发表于 08-31 06:00

    光吸收率测量电路图

    光吸收率测量电路图
    发表于 06-29 10:23 666次阅读
    <b class='flag-5'>光吸收</b>率测量电路图

    半导体材料中的光吸收机制

    针对半导体材料光电特性的初期研究过程中,光子到电子的转换过程是半导体材料对光子的吸收以及由此产生的一系列的效应,例如光电导效应、光生伏特效应等。之后通过对半导体材料光吸收效应的深入研究,将其应用在
    发表于 08-16 10:45 9970次阅读
    半导体材料中的<b class='flag-5'>光吸收</b>机制

    提高激光器芯片COD阈值的方法

    技术是适合大功率激光器芯片量产的常用方法。非吸收窗口技术是把掺杂离子输送到激光芯片腔面附近区域,提高出光面局部外延材料的禁带宽度,对芯片内部发射出来的激光形成非
    的头像 发表于 11-06 09:48 3114次阅读
    提高<b class='flag-5'>激光</b>器芯片COD阈值的方法

    OpticStudio STAR模块工作流程

    大功率激光器广泛用于各种领域当中,例如激光切割、焊接、钻孔等应用中。由于镜头材料的体吸收或表面膜层带来的吸收效应,将导致在光学系统中由于激光
    的头像 发表于 11-17 11:03 745次阅读

    使用OpticStudio进行闪光激光雷达系统建模(上)

    如何使用OpticStudio对此类系统进行建模,包括从序列初始设计到集成机械外壳的整个流程。该文章为闪光激光雷达系统建模系列文章的第一篇。
    的头像 发表于 11-21 14:24 1609次阅读

    使用OpticStudio进行闪光激光雷达系统建模(中)

    Zemax OpticStudio 对此类系统进行建模,包括从序列初始设计到集成机械外壳的整个流程。该文章为闪光激光雷达系统建模系列文章的第二篇。
    的头像 发表于 11-24 17:56 1566次阅读

    如何在OpticStudio中模拟人眼

    本文是人眼模型的一个案例研究,并提供了更高级的序列模式建模技术的演示。我们将在OpticStudio中使用Liou & Brennan 1997眼睛模型创建人眼模型。在OpticStudio中成功生成这个眼睛模型后,我们将使用它来设计一个自由形式的渐进眼镜镜片。
    的头像 发表于 12-19 11:28 853次阅读

    Zemax:安装Ansys版本的OpticStudio

    这仅适用于将使用AnsysFlexlm 许可证的人员。Ansys版本的Opticstudio不能与旧版Zemax许可证一起使用。Opticstudio的旧版Zemax版本不适用于Ansys许可证。
    的头像 发表于 01-15 14:33 1102次阅读