Ansys Zemax | 如何模拟部分反射和散射的表面

news2024/11/17 0:23:56

这篇文章介绍了如何模拟一个部分反射的表面,该表面会根据指定的散射分布对一部分入射光能量进行散射。本文介绍的示例包含部分吸收以及部分镜面反射的情况。(联系我们获取文章附件)

介绍

使用 OpticStudio 非序列模式模拟散射和膜层的能力,我们可以模拟一个部分反射(或部分透射)的表面,该表面会根据指定的分布散射入射光能量的一部分。

假设我们需要模拟一个表面为部分反射(60%反射)的矩形体 (Rectangle Volume) 物体,并且其中80%的反射光会根据朗伯 (Lambertian) 分布发生散射。剩下的20%将发生镜面反射。通过使用三个非序列物体,本文的示例可以阐述了如何使用朗伯散射和理想膜层来产生所需的效果。

我们无需从零开始建立模型,请打开附件中的示例文件。在该文件中,一个单光线光源 (Source Ray) 物体发出的光线入射到矩形体的表面,其中矩形体的材料类型为MIRROR。从光源发出的光线完美的返回到光源并被探测器平面接收。在当前系统中,矩形体的表面没有定义任何膜层或散射属性。

通过不考虑偏振的蒙特卡洛光线追迹,单根光线照明了探测器最中间的像素并且该像素接收到的功率为1W。

建立理想膜层

OpticStudio 可以模拟任何类型的薄膜膜层,其中包括多层电介质膜层和金属膜层等。然而在本文中,我们将只讨论如何在 OpticStudio 中建立和应用简单的理想膜层。

和 OpticStudio 中的其他膜层相同,理想膜层是通过在膜层文件中定义材料、渐厚层以及膜层等部分的数据来进行定义的。对于一个理想膜层,其定义语法为:

IDEAL

理想膜层只需要定义强度的透射系数和反射系数,并且该系数与波长和入射角无关。吸收系数会根据公式A=1.0–T–R来自动进行计算以保持能量守恒。

如果我们想定义一个40%透射60%反射的膜层,并且该系数与波长及入射角无关,我们可以使用以下语句进行定义:

IDEAL 60Reflect 0.4 0.6

这个膜层可以应用在任何使用当前膜层文件的 OpticStudio 设计当中,您可以在系统选项 (System Explorer) > 文件 (Files) 中查看当前系统的镀膜文件:

COATING.DAT 文件是默认的膜层文件,它是 ASCII 格式的文本文件,其中包括了在 OpticStudio 中不同类型的膜层数据。用户可以修改该文件来添加用户自定义膜层。如果对膜层文件进行了任何修改或额外的添加,我们建议您将文件另存为一个新的文件名。否则,在 OpticStudio 进行版本更新时原有的默认膜层文件会被新的默认膜层文件覆盖。

点击数据库 (Libraries) > 膜层工具 (Coatings Tools) > 编辑膜层文件 (Edit Coating File) 打开镀膜文件 COATING.DAT。文件中包含多种简单的理想膜层,但是其中并没有符合我们在前文中假设的透射和反射比的膜层。

在本例中,我们需要在反射镜表面上定义60%的反射。因此,表面的透过率为40%。我们需要插入一个理想的膜层来定义这个百分比:

当新的理想膜层输入到膜层文件后,将文件以适当的名称进行保存,例如 MYCOATING.DAT。需要注意的是,文件的扩展名必须为 .DAT文件,并保存在与 COATING.DAT 文件相同的路径下。

使用理想膜层

如果想要 OpticStudio 识别新创建的理想膜层,您必须首先在系统选项中的文件选项卡的膜层文件栏中选择新创建的膜层文件。

我们要在矩形体的前表面使用该膜层。首先打开物体2的物体属性 (Object Properties),选择膜层/散射 (Coating/Scattering) 选项卡。该选项卡下的第一项输入栏为物体的表面 (Face)。对于矩形体物体来说一共包含三个表面组:0,表示侧面;1,表示前面;2,表示后面。

因此,物体的不同表面可以定义不同的膜层和散射属性。对于本例来说,选择表面1,前面。

默认情况下,物体的任何表面都没有定义膜层。对于矩形体的前面,通过下方的膜层 (Coating) 下拉菜单选择新创建的理想膜层 60REFLECT

在选择了合适的膜层之后,点击OK将膜层添加到物体表面上并退出物体属性菜单。为了证实膜层已经被使用并正确工作,我们可以运行光线追迹(勾选使用偏振 (Use Polarization) 选项)来进行验证。

如我们预期的一样,此时探测器接收到的总能量降低到初始能量的60%:

对表面添加散射属性

与膜层的定义类似,散射属性也是在物体属性中的膜层/散射选项卡里进行定义的。在当前示例中,重新打开矩形体的物体属性,在膜层/散射选项卡中选择表面为1,前面。

在OpticStudio中内置了多种散射模型;默认情况下,表面不会定义任何散射。这里我们选择朗伯散射模型。在选择朗伯散射模型后会激活两个关键的数据输入栏:光线数 (Numbers of Rays) 和散射函数 (Scatter Fraction)。散射函数必须在0(表示入射光能量的0%会发生散射)到1(表示入射光能量的100%会发生散射)之间。OpticStudio 如何使用这两个参数取决于每个特定分析功能是否开启了光线分裂 (Ray Splitting) 功能。

对于本例来说,分别设置散射函数和光线数为0.8和5。因此,当开启光线分裂功能时,散射能量(在考虑膜层首先造成的损耗之后,入射光能量的80%)将平均的分配到5根散射光线上。而对于镜面反射的光线,其能量为入射光线的总能量的(1-散射函数)%。

为了验证矩形体前表面的属性已经改变,我们可以打开非序列3D视图 (NSC 3D Layout) 工具,在设置中勾选光线箭头 (Fletch Rays)、光线分裂 (Split Rays)、光线散射 (Scatter Rays) 和使用偏振 (Use Polarization) 选项。需要注意的是,初始光源光线被散射为5根光线(根据朗伯散射分布),因此一共有六根光线入射到探测器上。

并且,如果我们执行另一次蒙特卡罗光线追迹,这些光线(5根散射光线都落在探测器上时)的总能量将始终为0.6W,也就是入射光能量的60%。

并且,当追迹光线数量增加至250万根并提高探测器分辨率后,我们可以观察到辐射强度最高的地方依然是正入射的情况,也就是镜面反射的这部分光线。

可以看到我们已经在 OpticStudio 中完成了部分反射和散射表面的创建。在本例中使用的工具和概念可以应用到更复杂的系统之中,其中使用到的定义膜层和散射属性的基本方法都是相同的。

将属性应用到其他表面

假设我们想在矩形体的侧面和后面也添加相同的膜层和散射属性以用于后续的分析。我们可以使用物体属性中膜层/散射选项卡中的保存 (Save) 功能,将当前表面的设置参数保存,并快速应用到其他表面上。

当完成了当前表面的膜层/散射设置后,点击保存按钮即可完成设置参数的保存。

在弹出的对话框中,您可以将该设置参数命名为其他名称:

保存成功后,您可以在矩形体的其他表面上使用这些参数设置:

小结

通过设置理想膜层以及定义特定的散射属性,我们可以在 OpticStudio 中定义部分反射和散射的表面。在 OpticStudio 非序列元件编辑器中的物体属性中的膜层/散射选项卡下,您可以在物体的不同表面上定义不同的膜层和散射属性。

通过考虑偏振、分裂光线和散射光线,我们可以对不同散射类型的表面进行详细的建模。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/592970.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MFC按钮中添加图标

目录 一、创建对话框 二、 开始添加 1、将.ico图片放进res路径下 2、添加资源 3、添加按钮 4、将按钮属性中icon修改为true 5、代码添加 一、创建对话框 首先需要创建个对话框程序,参考之前写的博客: mfc入门基础(三)创…

浅谈智能化配电室在居民小区的建设应用

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要:近年来居民小区配电室的数量增长快且设备情况较复杂,以致巡视效果不理想、缺陷和事故处理不及时,亟需建立一套智能化的配电室监控系统。按照实用性、统一性、分层和模块化设计…

RobotFramework接口测试方案

1. Robot FrameWork介绍 1.1 介绍 Robot Framework是用于验收测试和回归测试的通用测试自动化框架。它使用易于理解的表格数据语法,非常友好的实现了关键字驱动和数据驱动模式。它的测试功能可以通过使用Python或Java实现的测试库进行扩展,用户可以使用…

RCE代码及命令执行漏洞全解(30)

web应用中,有时候程序员为了考虑灵活性,简洁性,会在代码中调用代码或执行命令执行函数去处理。 比如当应用在调用一些能将字符串转化成代码的函数时,没有考虑用户是否能够控制这些字符串,将代码执行漏洞,同…

华为OD机试真题B卷 Java 实现【求最大连续bit数】,附详细解题思路

一、题目描述 求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1。 二、输入描述 输入一个int类型数字。 三、输出描述 输出转成二进制之后连续1的个数。 四、解题思路 首先通过输入获取一个 int 类型的数…

K8s环境使用Triton实现云端模型推理

前置条件:K8集群、helm 1、以模型名作为目录名,创建目录 mkdir resnet50_pytorch 2、将模型文件、配置文件(输入、输出等)存到刚创建的目录下,resnet50_pytorch目录下文件层级结构如下 model-respository/ └── …

【C++模版】模版进阶 {非类型模版参数; 模版的特化; 模版的分离编译; 模版总结}

一、非类型模版参数 模板参数分类型形参与非类型形参。 类型形参:出现在模板参数列表中,跟在class或者typename之后的参数类型名称。非类型形参:就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来…

mysql中的锁浅析

前言 MySQL 锁机制是保证多个并发事务同时访问数据库时数据一致性的重要手段,也是 MySQL 的重要特性之一。在实际开发使用 MySQL 数据库时,了解并掌握 MySQL 的锁机制非常重要,因为不正确的锁机制使用很容易出现严重的性能瓶颈和数据不一致等…

尚硅谷大数据hadoop教程_mapReduce

p67 课程介绍 p68概述 p69 mapreduce核心思想 p70 wordcount源码 序列化类型 mapReduce三类进程 p71 编程规范 用户编写的程序分成三个部分:Mapper、Reducer和Driver。 P72 wordcount需求案例分析 p 73 -78 案例环境准备 (1)创建maven…

写代码?文心一言or文言文,谁更胜一筹?新工具或许可堪重任

中国版的ChatGPT“文心一言”写代码能力尚浅 被称为中国版的“ChatGPT”的“文心一言”可以说是上市几个月了,很多用户都受到了邀请码来体验,遗憾的是,小编早就申请了,但还在排队等待中。虽然没有亲自体验过百度的“文心一言”&a…

NET HELPMSG 3534 报错(以及其他一些在配置过程中遇到的问题)

使用了带管理员权限的 PowerShell(即在管理员权限下运行CMD) 然后进行安装和服务启动操作 1、清空 MySQL 下的 data 文件夹; 2、确保系统环境变量中已经配置了 mysql 的 bin 目录到Path中; 3、执行以下命令: sc delet…

基于条件风险价值CVaR的微网动态定价与调度策略(matlab代码)

目录 1 主要内容 模型示意图 电能交易流程 模型亮点 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序复现文章《A cooperative Stackelberg game based energy management considering price discrimination and risk assessment》,建立基于主从博弈的考…

【封装frame模型 Objective-C语言】

一、计算每行的高度 1.计算每行的高度,它就等于最后这个控件, 如果说,当前这行是有配图的,那么这个行高,就等于这个配图最大的Y值,加上一个margin, 如果说,这行是没有配图的 如果说,这行是没有配图的 那么就等于它正文的最大的Y值,加一个margin, 是不是很简单,…

海昌海洋公园携手盖雅工场,数字化人才管理助力企业踏浪前行

五一假期刚刚结束,但各地主题公园里的游客依然爆满。在这种客流高峰期,游客更加关注乐园的细节和服务水平,保障服务品质和顾客体验是各地主题乐园在竞争中脱颖而出的关键因素之一。为此,乐园高峰期需要大量招聘短期工、临时工、兼…

全网最详细,全链路压力测试整理,银行系统项目...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 软件测试银行业务…

k8s污点与容忍

1.前言 污点是给node节点打上污点标签,使得pod不能往该node节点上调度,污点有三种模式,分别是NoSchedule、PreferNoSchedule、NoExecute,容忍是给pod打上和node节点一样的污点标签,使pod能调度到带有该污点标签的node…

为什么使用 Javascript 流程图进行过程可视化

DhtmlxDiagram 是一个随时可用的库,只需几行代码就能生成任何你需要的图表。借助自动布局和实时图编辑器,以整齐的层次结构可视化复杂数据。JavaScript dhtmlxDiagram可以向Web应用程序中添加漂亮的交互式图表,图表和图形。借助这种轻巧而快速…

第六篇、基于Arduino uno,控制180度舵机(SG90)转动——结果导向

0、结果 说明:让舵机转动,需要用PWM来控制,下面的程序是舵机从0度一直转到180度,然后又从180度转到0度的这样一个过程。 1、外观 说明:虽然舵机的型号有很多种,但是只要是180度的舵机,控制方…

XVS-460-15MPI-1-10伊顿触摸屏

​ XVS-460-15MPI-1-10伊顿触摸屏 触摸屏感应到我们手指的触摸是因为当手指触摸屏幕上的一个具体位置时,相当于为屏幕发送了一个精确的电子信号。触摸屏有很多类型,大致分为电阻式触摸屏和电容式触摸屏。目前应用最广泛的是“电容式触摸屏”。 我们手机…

华为OD机试之考勤信息(Java源码)

考勤信息 题目描述 公司用一个字符串来表示员工的出勤信息 absent:缺勤late:迟到leaveearly:早退present:正常上班 现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下: 缺…