Ansys Zemax | 如何使用光学制造全息图修正像差

news2024/9/29 0:54:59

图片

附件下载

联系工作人员获取附件

本文介绍了利用光学全息图降低单透镜像差的方法。在描述了表示全息图构造光束的两个 ZMX 文件之后,本文演示了如何在重现文件中设置 OFH。然后解释了如何轻松地从重现文件中访问任何结构造光束变量,以实现衍射受限单透镜的设计。

简介

光学全息图 (OFH) 是OpticStudio中最通用的全息图模型。这个模型需要使用两个ZMX文件作为构造光,一个ZMX文件表示全息图重现文件。本示例所需的三个文件可以在本文的附件中找到。

初始系统

本文所考虑的系统(StartingLens.zmx)由一个简单的双凸透镜组成,工作波长为0.633 nm,像平面位于其近轴焦点处。

图片

从 OPD 光扇图可以看出,球差是主要的像差:

图片

通过在单透镜的前表面放置光学全息图 (OFH),可将其性能优化至衍射极限。OFH  需要使用三个 ZMX 文件:

  • 放置 OFH 的重现文件

  • 光线 1 的构造文件

  • 光线 2 的构造文件

在这个例子中,重现文件是“ StartingLens.zmx ”,包含放置 OFH 的单透镜。全息图构造文件名称为“ OFHSphericalCorrector_1.zmx ”和“ OFHSphericalCorrector_2.zmx ”。这些 ZMX 文件满足 OFH 构造文件所需的命名规则(它们的文件名前缀相同,但在末尾附加了“ _1 ”和“ _2 ”的后缀)。

构造文件

“ OFHSphericalCorrector_1.zmx ”是构造文件 1,只包含一个准直光束入射透镜。“ OFHSphericalCorrector_2.zmx ”是构造文件 2,它类似于构造文件 1,但另外包含一个位于透镜前表面前的相位板。该相位板使用 Zernike Fringe 相位表面 (Zernike Fringe Phase surface) 建模,该表面的所有项最初都被设为零。将分别表示离焦和三阶球差的第 4 项和第 9 项设为变量,以便以后进行适当的优化。

图片

上图是两个构造文件只绘制到镜头的前表面的布局图,这也是每个文件中的系统光阑。光阑代表假定的两个构造光相互干涉的表面,只有在构造文件中光阑位置处的光线交互位置的向量才能决定全息图的属性。从 OFH 的角度来看,构造文件中所有在光阑后的表面都将被忽略,所以光阑后的表面在布局图中为了清晰显示都被隐藏了。

设置重构系统

一旦构造文件被定义,重现系统就可以从初始系统开始设置了 (" StartingLens.zmx ")。

首先,确保两个构造文件与初始系统放在同一个文件夹中。然后打开后者,建立 OFH:

  1. 形状 = 0,对应圆锥非球面形状,同标准面类似。

  2. 全息类型 = 1,对应于与全息图 1 表面相同的结构几何,在这种情况下,两束构造光束都是从一个无限远的光源发散的。

  3. 衍射级次 = 1

  4. 曲率 = 1/(前透镜半径) = 0.02 mm-1

  5. 圆锥系数 = 0

  6. OPD模式 = 0,对应全息图默认的光程差计算

  1. 在第 3 面的注释单元格中指定构造文件的公共部分名称,在本例中为“ OFHSphericalCorrector ”

  2. 改变透镜前表面(表面 #3)为光学构造全息图

  3. 设置适当的 OFH 参数,以确保全息图的形状和功能无误,在这种情况下:

图片

现在透镜前表面是一个 OFH 面,与初始系统的透镜前表面形状匹配。这个系统包含了 OFH,代表了全息图的重现系统。

在此阶段,由于构造文件 2 中的相位板没有任何非零项,OFH 是由两束相同的光束的干涉构成,对系统没有任何影响。因此,重构系统的外观和性能应该与原始的“ StartingLens.zmx ”文件完全相同。

优化 OFH

如前所述,构造文件 2 中的相位板已经定义了两个变量,Zernike 项 4 和 9。通过在多重结构编辑编辑器工具栏中单击 增加全息变量 (Add Hologram Variables),可以轻松地从重现文件中访问这些变量,如下图所示:

图片

增加全息变量 (Add Hologram Variables) 可以在构造文件中查找变量,并将它们作为 HLGV 多重结构操作数添加到重现文件中。这些变量现在可以与重现文件中的任何其他变量一起使用(如果有的话)。在本例中,将添加4个 HLGV 操作数,2个用于构造文件1,2个用于构造文件2。我们只对构造文件2的操作数感兴趣(它已经应用了变量求解 'V'),所以删除构造文件1的操作数。使用 HLGV 操作数允许同时优化构造和重现系统。注意, HLGV 报告的变量不是只读的,更改它们的值将更改构造文件中的相关参数。为了优化系统以获得最佳性能,将使用以最佳 RMS 光斑尺寸为评价函数目标。为此,按如下方式设置优化向导,然后单击 OK:

图片

点击 分析 (Analyze) … 执行优化 (Optimize!) 优化当前系统。请注意构造文件变量现在是如何优化以纠正重现系统中的畸变,并实现最小RMS光斑的:

图片

对全息图构造干涉进行自定义分析,可以将得到的全息图可视化。

图片

显示艾里斑 (Airy disk) 的标准点列图,可以用来快速确认该系统现在是否处于衍射极限。由于存在高阶像差,该点不是一个理想的像点。

图片

即使系统已经处于衍射极限,波前图内仍显示了一个不实际的 RMS 波前误差, 约31个波长大小。这是默认全息图的光程差计算(OPD模式 = 0)导致错误结果的实例之一。没有可靠的算法可以在所有情况下自动确定适当的 OPD 模式。因此,在优化包括 OFH 在内的系统时,评价函数最好不要依赖 OPD 数据,以免计算错误。如果 OPD 明显错误,如本例中所示,用户必须手动确定正确的OPD算法,方法是将 OPD 模式设置为1、2、3或4,直到正确计算出 OPD 值为止。在这个具体的文件中,当 OPD 模式 = 2时计算出正确的 OPD,从而得到更为真实的0.009 波长的 RMS 波前误差。有关不同 OPD 计算的详细信息,请参阅 OpticStudio 帮助文件。最后,请注意,由于重现文件和构造文件是通过 HLGV 操作数链接的,因此保存重现文件也将同时保存两个相关的构造文件。这可以通过点击文件 (File) …保存 (Save) 并打开 OpticStudio 的第二个实例“ OFHSphericalCorrector_2.zmx ”文件来确认,文件中设置在 Zernike Fringe 相位参数项上的变量现在通过优化重现文件找到的新的值。

图片

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

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

相关文章

Git一台电脑 配置多个账号

Git一台电脑 配置多个账号 Git一台电脑 配置多个账号 常用的Git版本管理有 gitee github gitlab codeup ,每个都有独立账号,经常需要在一个电脑上向多个代码仓提交后者更新代码,本文以ssh 方式为例配置 1 对应账号 公私钥生成 建议&#…

canvas绘制图形

目录 1、canvas绘制矩形 2、canvas绘制线 3、canvas绘制圆 4、canvas绘制多圈动画圆 HTML5<canvas>元素用于图形的绘制&#xff0c;Canvas API主要聚焦于2D图形。 1、canvas绘制矩形 canvas是一个二维网格&#xff0c;左上角坐标为(0,0)&#xff0c;横轴为x轴&…

【Git】实习使用记录

浏览器可以访问github仓库&#xff0c;但是使用git就用不了 https://blog.csdn.net/m0_63230155/article/details/132070860 可能是git http和https代理的问题 git config --global --unset http.proxy git config --global --unset https.proxy可能之前http和https之前是…

Python实现自动化办公(使用第三方库操作Excel)

1 使用 xlrd 读取Excel数据 1.1 获取具体单元格的数据 import xlrd# 1. 打开工作簿 workbook xlrd.open_workbook("D:/Python_study_projects/Python自动化办公/Excel/test1.xlsx") # 2. 打开工作表 sheet1 workbook.sheets()[0] # 选择所有工作表中的第一个 # …

mysql数据库:迁移数据目录至另一台服务器步骤

一、概述 最近由于项目需要&#xff0c;我们需要进行数据库服务器的更换和迁移工作。迁移计划和步骤如下&#xff1a; 1、首先&#xff0c;在新的数据库服务器上进行环境的搭建和配置&#xff0c;确保数据库版本、配置等一致。 2、然后&#xff0c;将备份的数据库数据导入到…

【docker-compose】【nginx】内网环境https配置

目录 1、openssl生成自签名证书和私钥2、nginx.conf配置ssl3、docker-compose挂载 1、openssl生成自签名证书和私钥 在部署服务器上&#xff0c;新建cert目录&#xff0c;执行以下指令&#xff0c;然后生成.crt和.key文件 openssl req -newkey rsa:2048 -nodes -keyout rsa_pri…

寒假刷题-递归与递推

寒假刷题 92. 递归实现指数型枚举 解法1递归 使用递归对每一个坑位进行选择&#xff0c;每个坑位有两种选择&#xff0c;填或者不填&#xff0c;使用st数组来记录每个坑位的状态&#xff0c;u来记录已经有多少坑位有了选择。 每个坑位有2钟选择&#xff0c;n个坑位的复杂度就…

Pytest插件pytest-django让Django测试更高效

在Django应用开发中&#xff0c;测试是确保应用质量的关键环节。然而&#xff0c;Django自带的测试框架并非总能满足开发者的需求&#xff0c;而Pytest插件 pytest-django 则为我们提供了更为灵活、强大的测试工具。本文将深入介绍 pytest-django 插件的基本用法和实际案例&…

【springboot】配置文件入门

配置文件入门 配置文件最重要的目的&#xff1a;解决硬编码问题(代码写死) 我们接下来主要介绍两个方面&#xff1a;常见的配置项和配置文件的使用 SpringBoot 的配置文件,有三种格式 propertiesyamlyml(yaml的简写) 用的较多的是yml和properties文件 如果项目中,同时存在…

常用中间件漏洞

IIS6 IIS7 安装 控制面板-----打开关闭windows功能 添加角色-----添加IIS 启动之后访问localhost 复现 服务器换成IIS7 访问报错 大概就是缺少CGI模块 问题解决 添加php-cgi的路径 添加脚本映射 修改php.ini文件 将 cgi.fix_pathinfo1 然后设置一个图片 访问 在后缀加上/.…

情人节专属--HTML制作情人节告白爱心

💕效果展示 💕html展示 <!DOCTYPE html> <html lang="en" > <head>

C#: form 窗体的各种操作

说明&#xff1a;记录 C# form 窗体的各种操作 1. C# form 窗体居中显示 // 获取屏幕的宽度和高度 int screenWidth Screen.PrimaryScreen.Bounds.Width; int screenHeight Screen.PrimaryScreen.Bounds.Height;// 设置窗体的位置 this.StartPosition FormStartPosition.M…

vue基于Spring Boot共享单车租赁报修信息系统

共享单车信息系统分为二个部分&#xff0c;即管理员和用户。该系统是根据用户的实际需求开发的&#xff0c;贴近生活。从管理员处获得的指定账号和密码可用于进入系统和使用相关的系统应用程序。管理员拥有最大的权限&#xff0c;其次是用户。管理员一般负责整个系统的运行维护…

Byrdhouse AI实时语音翻译工具,可以在视频通话中翻译100多种语言

你是否曾经在跨国会议或与外国友人聊天时&#xff0c;因为语言不通而感到尴尬或困扰&#xff1f;是不是还在找可以实时翻译的软件或者APP&#xff1f;现在&#xff0c;有了这款语音翻译神器&#xff0c;一切都将变得简单&#xff01; 免费使用链接&#xff1a;https://byrdhous…

JVM性能调优-垃圾收集器ZGC详解

1. ZGC收集器(-XX:UseZGC) 参考文章&#xff1a;Main - Main - OpenJDK Wiki http://cr.openjdk.java.net/~pliden/slides/ZGC-Jfokus-2018.pdf ZGC是一款JDK 11中新加入的具有实验性质的低延迟垃圾收集器&#xff0c;ZGC可以说源自于是Azul System公司开发的C4&#xff08;…

必学!白银现货排期基础知识

白银现货排期是一种交易模式&#xff0c;它涉及到未来交货的安排。在这种模式之下&#xff0c;买卖双方可以预先达成协议&#xff0c;确定未来某一时间的交货安排。现货排期这种交易方式的特点&#xff0c;是白银会在约定的时间交付&#xff0c;而价格可以在合约签订时确定。 白…

计算机网络——数据链路层(1)

一、概述 在计算机网络中&#xff0c;数据链路层承担着点对点通信的任务&#xff0c;用于跨物理层在网段节点之间参数数据。它在网络分层中处于物理层之上&#xff0c;网路层之下。 在链路层的讨论中&#xff0c;我们将看到两种截然不同类型的链路层信道。第一种类型是广播信道…

WAF攻防相关知识点总结1--信息收集中的WAF触发及解决方案

什么是WAF WAF可以通过对Web应用程序的流量进行过滤和监控&#xff0c;识别并阻止潜在的安全威胁。WAF可以检测Web应用程序中的各种攻击&#xff0c;例如SQL注入、跨站点脚本攻击&#xff08;XSS&#xff09;、跨站请求伪造&#xff08;CSRF&#xff09;等&#xff0c;并采取相…

python如何包含其他路径的模块

python 包含其他路径的模块&#xff1a; 例如目录结构: dir1 |__ init.py |__ module1.py dir2 |__ main.py main.py from dir1 import module1首先需要在 dir1 添加 init.py 文件&#xff0c;该文件可以是空文件。 其次需要将dir1 的父目录添加到python 解释器的&#xf…

Js-WebAPIs-事件(二)

事件监听&#xff08;绑定&#xff09; 什么是事件&#xff1f; 事件是在编程时系统内发生的动作或者发生的事情 比如用户在网页上单击一个按钮 什么是事件监听&#xff1f; 就是让程序检测是否有事件产生&#xff0c;一旦有事件触发&#xff0c;就立即调用一个函数做出响…