Ansys Zemax | 如何在序列模式下模拟分光棱镜

news2024/10/5 13:46:35

概述

这篇文章介绍了:

· 如何在序列模式下使用多重结构创建分光棱镜

· 如何在布局图以及分析/计算窗口中同时追迹透射和反射光线

· 在考虑偏振及镀膜的影响下如何计算透射和反射光线的总能量

(联系我们获取文章附件)

介绍

在 OpticStudio 中,分光棱镜可以在序列或非序列追迹模式下模拟。

在非序列中,光线可以在折射表面上分裂为折射和反射光线。这也是非序列模式最主要的优势:光线可以在物体表面处分裂为反射和透射的部分。

而在序列模式中,光线只能在折射表面处发生折射,并在镜面上发生反射;OpticStudio 的多重结构功能可以用来在序列模式下同时模拟折射和反射光线。在本文中,我们将在序列模式中建立如下图所示的分光棱镜系统:

系统中包含一个与偏振无关的50/50分光棱镜。该棱镜由 N-BK7 玻璃组成,并且表面镀有 MgF2 抗反射膜层。其中,中间的50/50分光膜层为理想膜层,并且与偏振、入射角和波长无关。在上图中显示的绿色光线为反射光线,在入射到上面的像面前首先经过下面的反射镜反射。我们将计算两个像面上,考虑M-BK7玻璃的体吸收、表面膜层的菲涅尔损耗以及理想的50/50分光膜层的正确透射光强。

在开始本文的案例前,您需要了解如何在 OpticStudio 中设置系统和表面属性。您可以参考以下两篇文章。

Ansys Zemax | 如何设计单透镜 第一部分:设置

Ansys Zemax | 如何倾斜和偏心序列光学元件

需要注意的是,OpticStudio 可以详细的模拟表面膜层,如金属膜层或多层电介质膜层等。在本例中,我们将主要展示棱镜几何体的建立,因此只会在模型中使用简单的膜层。

定义系统和分光表面

首先进行如下系统设置:

· 系统单位设为mm(系统选项 (System Explorer) – 单位 (Unit))

· 波长设为550nm(系统选项 (System Explorer) – 波长 (Wavelength))

· 设置单一视场:X=0, Y=0(系统选项 (System Explorer) – 视场 (Fields))

· 设置系统孔径类型为入瞳直径 (Entrance Pupil Diameter),并设置孔径值为15mm(系统选项 (System Explorer) – 孔径 (Aperture))

在镜头数据编辑器中输入如下这些表面:

在镜头数据编辑器的上方工具栏中,点击旋转/偏心元件 (Tilt/Decenter Elements)工具,并将表面3旋转-45度:

打开3D视图 (3D Layout) 工具,并只在Y方向显示5条光线,如下图所示:

设置矩形孔径

序列模式下的系统孔径为圆形孔径,并且所有表面的默认孔径也是圆形孔径。如果想设置分光棱镜的几何体结构,需要在表面2和6上设置一个10mm x 10mm的矩形孔径,并在表面4上设置一个10mm x {10 x root(2)}mm的矩形孔径。

在表面2和6的表面属性中的孔径选项卡中设置如下孔径:

在表面4的表面属性中的孔径选项卡中进行如下设置:

更新3D视图,您可以看到如下系统结构:

如果想要在布局图中移除渐晕的边缘光线,您需要勾选3D视图的设置参数中的“删除渐晕 (Delete Vignetted)”选项:

更新3D视图可以看到如下结果:

设置分光膜层

在表面4上设置理想的50/50分光膜层“I.50”,在表面2和6上设置抗反射膜层“AR”。其中,I.50膜层是理想的50%透射的膜层,AR膜层是四分之波长厚度的MgF2抗反射膜层。

分析透射光强

现在我们已经模拟了分光棱镜的水平透射光路(折射光路)。您也可以通过镀膜文件定义任意透射比例的理想膜层,或通过定义膜层厚度和材料种类的方法或定义透射率根据波长和入射角的函数的方法创建非理想的膜层。

只有在分析或计算中考虑偏振影响时,薄膜膜层的影响才会被考虑,在使用理想膜层时也是如此。像面上的总透射能量可以使用OpticStudio中的偏振分析功能进行计算。我们将使用偏振光线追迹 (Polarization Ray Trace) 工具计算主光线在像面上的总透射能量。

打开偏振光线追迹 (该工具位于分析选项卡 – 偏振 (Polarization)– 偏振光线追迹) 工具,进行如下参数设置:

总透射能量会显示在分析窗口的底部:

偏振光线追迹考虑了所有效应的能量损失,其中包括:在追迹光线的波段以及光线在表面上的任意入射角下,AR镀膜的N-BK7玻璃表面,50/50的理想分光膜层,N-BK7材料的体吸收效应。

多重结构模拟反射光路

下面我们将使用多重结构模拟反射光路。打开多重结构编辑器(位于编辑器 (Editors) 组中的多重结构编辑器 (Multi-Configuration Editor))并使用插入结构 (Insert Configuration) 按钮插入一个新的结构(或在键盘上点击Ctrl+Shift+Ins)。

在多重结构编辑器中插入多重结构操作数 PRAM,提取坐标间断面(表面5)的X旋转 (X Tilt) 参数(参数3)。

在第二个结构中设置拾取求解 (Pick-Up Solve),并设置缩放因子 (Factor) 为-1。

我们需要将表面4的材料类型从 N-BK7 更改为 Mirror。因此,在多重结构编辑器中插入多重结构操作数 GLSS,提取表面4的材料类型并定义结构2的材料类型为Mirror。

在键盘上点击Crtl+A切换镜头数据编辑器为结构2。现在,镜头编辑器的标题栏中应显示“结构2/2 (Config 2/2)”。

在3D视图中进行如下设置以显示所有结构:

更新视图窗口,您将看到如下系统结构:

可以看到,反射光线(绿色表示)向错误的方向传播。这是由于结构2中经过镜面后的表面的厚度的符号错误导致的,因而造成了“虚拟的”光线传播。对于正常的光线传播来说,在镜面后的厚度的符号会相应的改变。在经过偶数个镜面后(包括0个镜面),光线正常传播的厚度的符号是正的,虚拟传播的厚度的符号是负的。在经过奇数个镜面后,光线正常传播的厚度的符号是负的,虚拟传播的厚度的符号是正的。符号的规定与同一表面中的镜面数量或坐标间断面无关。使用坐标间断面旋转180°不会改变这一基本符号规定。因此,我们需要将结构2中的表面5和6的厚度改变为-20mm。

插入多重结构操作数 THIC 提取表面5和6的厚度,在结构2中设置拾取求解并设置缩放因子为-1。

更新3D视图,您将看到如下系统结构:

定义双通光路

现在,我们将模拟双通光路,其中第二条光路是再次返回到分光棱镜中的光路。在第二条光路中,光束穿过分光棱镜物体,因此光线必须再次与相同物体接触。由于光线必须按照顺序逐个通过表面,这表示我们必须为第二条光路重新定义分光棱镜,这样光线才能与之相互作用。

插入表面7并在厚度参数上设置缩放因子为-1的拾取求解,拾取表面6的厚度:

在序列模式中,光线只会按照镜头数据编辑器中的顺序在每个表面上发生折射或反射。光线从底部反射镜(表面7)反射后“看不到”表面2-6定义的表面,因此我们需要在镜头数据编辑器中重新定义分光棱镜。

我们需要为第二条光路“重新建立”分光棱镜以使光线与其发生交互。因此,在镜头数据编辑器中的表面7之后插入3个新的表面。前两个表面的材料为 N-BK7 玻璃,第三个表面的材料栏留空。使用旋转/倾斜元件工具,将第二个 N-BK7 表面(表面9)旋转45度使其变为分光棱镜中的斜面。需要注意的是斜面的材料类型为 N-BK7 而非镜面,这是由于光线从底部反射镜(表面7)反射后,我们需要追迹到达顶部像面的透射/反射光线。

设置3D视图显示当前结构。当前选择的结构序号应为2,它也会显示在镜头数据编辑器上方的标题栏中。

更新3D视图,您将看到如下系统结构:

系统结构现在看起来比较奇怪,这是由于表面的孔径和表面倾斜导致的,我们将在下一节中进行相应的调整。

最终系统

我们首先需要在表面8、10和12上设置矩形孔径。对于表面8和12,设置表面属性 (Surface Properties) 中的孔径选项卡中的拾取自 (Pickup From) 为表面2;对于表面10,设置拾取自为表面4。

设置表面10的膜层为I.50以及表面8和12的膜层为AR。

更新3D视图,您将看到如下系统结构:

现在我们得到了正确设置的结构2;但是表面7和12仍然显示在结构1之中。您可以设置3D视图显示所有结构来查看:

表面7-12应该只在结构2中而不是在结构1中显示,因为结构1只表示传播穿过分光棱镜的光束。您可以使用多重结构操作数 IGNM 在结构1中忽略这些表面:

更新3D视图,您将看到如下系统结构:

分析光强

在偏振光线追迹窗口中的工具栏中点击复制 (Clone) 打开另一个参数设置相同的偏振光线追迹分析窗口。

选择显示不同结构的分析结果。

现在,您可以看到两个结构下的总透过率。

最终,您可以在实体模型图 (Shaded Model) 中看到如下结果,其中棱镜的透明度 (Opacity) 参数设为50%:

您还可以旋转分光棱镜使其绕中点旋转。您可以在附件中找到旋转后的文件Rotating BS.zmx。有关如何进行调整的详细步骤会在另一篇技术文章中详细讨论。

小结

这篇文章介绍了使用 OpticStudio 中的多重结构功能模拟分光棱镜。其中包括:

正确模拟透过率,使用偏振分析和计算考虑膜层所引入的影响

使用多重结构操作数 IGNR 实现只在个别结构中显示表面

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

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

相关文章

xxlJob任务管理平台500:xxl-job remoting error(connect timed out)

目录 一、问题截图 二、问题处理 2.1.查看执行器地址 2.2.查看本地端口 2.3.总结 三、关于地址的题外话 一、问题截图 此时可以看到code500,msg是连接超时,说明地址不通,那就是查看地址配置。 二、问题处理 2.1.查看执行器地址 …

使用CloudOS帮助企业落地云原生PaaS平台

PaaS究竟是什么? IaaS、SaaS的定义很清楚,而PaaS的定义就比较宽泛。所以,很多人把PaaS当做一个万能的“框”,什么都往里装,特别像一排垃圾桶中的那个“其他垃圾”桶,当你拎了一袋垃圾,不知道往…

C++技能 ( 3 ) - 详解泛型模版和特化模版的使用【函数模版、类模版、模版全特化、模版局部特化、可变参数模版、模版模版参数】

系列文章目录 C技能系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦!!!有更多博文系列等着看哦,会经常更新!!! 因为你的关注激励着我的创作&#xff01…

网安云新品速递 | 移动应用安全检测服务,为App合规与安全保驾护航

移动应用安全攻击层出不穷 近年来,移动应用安全攻击事件频发,衍生出的用户数据安全问题,也逐渐成为用户、社会,乃至整个国家高度重视的问题。立法层面上,数据安全保护不断加强;监管层面上,相关…

当亲戚知道我是程序员后,对我一顿梭哈……

当亲戚知道我是程序员后: 有的让我修电脑; 有的让我PS; 有的让我扯网线; 有的让我搞路由器; 这次的亲戚,让我干起了老本行:软件开发。 他是做人力资源公司的,要让我开发个招聘…

Spark SQL数据源 - 基本操作

文章目录 一、案例演示读取Parquet文件二、在Spark Shell中演示课堂练习1、将4.1节的student.txt文件转换成student.parquet课堂练习2、读取student.parquet文件得到学生数据帧,并显示数据帧内容三、在IntelliJ IDEA里演示 一、案例演示读取Parquet文件 执行命令&a…

#提升开源项目质量与效率:使用 GitHub Actions 自动化流程

提升开源项目质量与效率:使用 GitHub Actions 自动化流程 简介: 在开源项目中,质量和效率是至关重要的因素。本文将介绍如何利用 GitHub Actions,结合 ChatGPT Code Review、Autofix、Codecov 和 Publish PyPI 四个强大的 Actio…

unbound配置cache服务器

unbound 安装unbound配置unbound生成DOT证书配置日志监听哪个IP允许哪些客户端查询配置转发DNSSEC开启domain-insecure生成密钥 检查配置查看缓存启动Unbound服务: 结果验证方法1:方法2: 排错方法 安装unbound 以下是将DNS over TLS(DoT&…

一文吃透Spring集成MyBatis

个人主页: 几分醉意的CSDN博客_传送门 文章目录 💖集成思路✨怎么使用MyBatis✨集成的步骤✨pom加入依赖✨创建MyBatis使用代码✨创建Service类✨创建Spring配置文件和测试集成MyBatis✨使用外部属性配置文件 💖图书推荐 Java28岁了&#xff…

CRC校验(2):CRC32查表法详解、代码实现和CRC反转

对于现在的CPU来说,基本上都在硬件上实现了CRC校验。但我们还是想用软件来实现一下CRC的代码,这样可以更深入地理解里面的原理。所以这一节就来详细地解释如何使用查表法从软件上来实现CRC-32的校验。另外,CRC还有一种反转的情况,…

SpringCloud Ribbon负载均衡(十一)

前面搭建了初步例子,但是还没实现真正负载均衡,我们这里要先搞三个服务提供者集群,然后才能演示负载均衡,以及负载均衡策略; 新建项目microservice-student-provider-1002,microservice-student-provider-…

行星减速机优势有哪些?行星减速机五大优势

减速机是动力传动解决方案,通过选择高质量和高效率的变速箱,绝对可以提高整个动力传动系统的效率和性能。行星减速机有哪些优势呢? 1.保证灵活可靠的动力传动系统 减速机提供了广泛的功率和比率,使其成为许多行业的大多数应用的完…

代码随想录2刷|链表1.链表理论基础2移除链表元素3.设计链表4.翻转链表5.两两交换链表中的节点6.删除链表的倒数第N个节点7.链表相交8.环形链表lI

2移除链表元素 链接:力扣 一刷: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x…

Vue中如何进行地理位置搜索与地点选择

Vue中如何进行地理位置搜索与地点选择 随着移动互联网和定位技术的普及,地理位置搜索和地点选择成为了很多应用程序中必不可少的功能。在Vue中,我们可以使用一些开源的地图API和第三方组件来实现这些功能。本文将介绍如何在Vue中进行地理位置搜索和地点…

【北邮国院大三下】Logistics and Supply Chain Management 物流与供应链管理 Week3

北邮国院大三电商在读,随课程进行整理知识点。仅整理PPT中相对重要的知识点,内容驳杂并不做期末突击复习用。个人认为相对不重要的细小的知识点不列在其中。如有错误请指出。转载请注明出处,祝您学习愉快。 如需要pdf格式的文件请私信联系或…

gradlew test 失败

前言 在idea内执行./gradlew test,发现如下报错: Could not initialize class org.codehaus.groovy.runtime.InvokerHelper 分析 google了一堆,说要用groovy,可是我没有用groovy,以前也是正常启动的。后来无意发现&a…

游戏玩家的新大陆?小红书游戏内容场景洞察

2023年,如果你问年轻人他们在哪里讨论游戏?他们可能会提到一些平台,比如Steam、TapTap、B站、微博或者论坛。但是如果你向身边的女孩子询问,她们可能会惊喜地告诉你:小红书。 小红书平台一直给人的标签是是“美妆、旅…

UWB高精度实时定位系统源码(springboot+vue)

一、系统概况 UWB(Ultra-wideband)技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。自主研发,最高定位精度可达10cm,具有高精…

数据库架构是否该随着公司估值一起变化?

原文|The growing pains of database architecture 作者|Tim Liang, Software Engineer at Figma 2020 年,因为 Figma 不断加入新功能,筹备第二条产品线和用户不断增长导致数据库流量每年以 3x 速度增长,我们的基础设…

将数组中指定位置的元素替换为指定值np.put()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将数组中指定位置的元素替换为指定值 np.put() 选择题 下列说法错误的是? import numpy as np a np.array([1, 2, 3]) print("【显示】a ", a) print("【执行】np.put(arr…