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

图片

附件下载

联系工作人员获取附件

本文介绍了利用光学全息图降低单透镜像差的方法。在描述了表示全息图构造光束的两个 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.mzph.cn/news/626707.shtml

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

相关文章

数据结构学习 jz45 把数组排成最小的数

关键词:贪心 排序 快速排序 题目:破解闯关密码 思路: 快排自己制定快排规则 开辟一个vector存string,自己制定排序规则,然后用快排比较string大小。 排序规则: sort(strs.begin(),strs.end(),[](string…

建造者模式深入理解:演示建造单个和多个产品的实践,结合模板模式,通俗易懂

首先呢看下建造者的定义是什么样的,先读一遍 建造者模式 建造者模式(Builder Pattern)是一种创建型设计模式,它主要用于将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表现形式。这种模式…

编程笔记 html5cssjs 040 CSS盒子模型

编程笔记 html5&css&js 040 CSS盒子模型 一、CSS 盒子模型二、元素的宽度和高度三、最终元素的总宽度四、元素的总高度五、练习小结 网页是靠分成不同的块,再赋予这些块各不相同的属性来布局的。所以这个“块”是一个基础。先看块本身的构造。 一、CSS 盒子…

深度学习笔记(四)——使用TF2构建基础网络的常用函数+简单ML分类实现

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 TF2基础常用函数 1、张量处理类 强制数据类型转换: a1 tf.constant([1,2,3], dtypetf.floa…

网络传输文件软件哪个好?企业该如何选择?

随着互联网技术的飞速发展,网络传输文件软件已经成为企业日常工作中不可或缺的一部分。然而,在市场上众多的网络传输文件软件中,很多企业对于如何选择合适的方案感到困惑。那么,究竟什么是网络传输文件软件?它有哪些作…

怎么注册微商城?开启微商城之旅

在这个数字化时代,微商城的出现为商家提供了一个全新的机会,商家企业可以通过微商城来展示和销售自己的产品。而对于一些商家而言,不知道怎么注册微商城。下面给大家做一个简单的分享。 第一步:选择合适的微商城搭建工具 在注册…

计算机毕业设计 | SpringBoot宠物店管理系统(附源码)

1,绪论 项目背景 我国已经成为世界第二大经济体,经济实力高速发展以及百姓生活水平的普遍提高,不断地要求企业提供更加多元化的娱乐方式,更加快速和方便的服务,因此对宠物行业也提出了更加严格的要求,如管…

洛谷 P1523 旅行商简化版【线性dp+npc问题简化版】

原题链接:https://www.luogu.com.cn/problem/P1523 题目背景 欧几里德旅行商(Euclidean Traveling Salesman)问题也就是货郎担问题一直是困扰全世界数学家、计算机学家的著名问题。现有的算法都没有办法在确定型机器上在多项式时间内求出最优解,但是有…

二叉树(完全二叉树,满二叉树,二叉树的特性,遍历方式,根据遍历方式画出完整的二叉树图相关例题)

目录 基本概念 一、二叉树(满二叉树,完全二叉树) 二、二叉树的特性 1、若规定根节点的层数为1,则一棵非空二叉树的第i层最多有2^(i-1) 个节点(i>0) 2、若规定只有根节点的二叉树的深度为1&#xff0…

人力资源智能化管理项目(day01:基础架构拆解)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学,可以点心心支持一下哈 一、基础架构拆解 1.拉取模板代码 git clone GitHub - PanJiaChen/vue-admin-template: a vue2.0 minimal admin template 项目名 2.core-js…

使用WAF防御网络上的隐蔽威胁之SQL注入攻击

SQL注入攻击是一种普遍存在且危害巨大的网络安全威胁,它允许攻击者通过执行恶意的SQL语句来操纵或破坏数据库。 这种攻击不仅能够读取敏感数据,还可能用于添加、修改或删除数据库中的记录。因此,了解SQL注入攻击的机制及其防御策略对于保护网…

6.3.1认识Camtasia4(1)

6.3.1认识Camtasia4 安装完Camtasia4(本书使用Camtasia4.0.1版本)后,单击【开始】|【程序】|【Camtasia Studio 4】|【Camtasia Studio】,启动Camtasia Studio,启动后界面如图6-3-1所示。 图6-3-1 Camtasia Studio界面 Camtasia Studio窗口中…

打印的前后顺序

面试题经常会有 <script>console.log(1)setTimeout(function(){console.log(2)})console.log(3)let pnew Promise((resolve,reject) >{console.log(4)resloved(hhhhhh)})p.then(res >{console.log(res)console.log(5)},res >{console.log(7)})console.log(6)&l…

Git版本控制——分支

分支 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着可以把工作从开发主线上分离开来进行重大的Bug修改、开发新的功能&#xff0c;以免影响开发主线。 查看本地分支 git branch创建本地分支 git branch 分支名切换分支(checkout) git checkout 分支名创建…

Python源码26:海龟画图turtle画向日葵

---------------turtle源码集合--------------- Python教程43&#xff1a;海龟画图turtle画小樱魔法阵 Python教程42&#xff1a;海龟画图turtle画海绵宝宝 Python教程41&#xff1a;海龟画图turtle画蜡笔小新 Python教程40&#xff1a;使用turtle画一只杰瑞 Python教程39…

萌宠宠物用品商城设计与制作-计算机毕业设计源码79718

摘要 在社会快速发展的影响下&#xff0c;宠物商城继续发展&#xff0c;大大增加了宠物用品的数量、多样性、质量等等的要求&#xff0c;使宠物用品商城的管理和运营比过去十年更加困难。依照这一现实为基础&#xff0c;设计一个快捷而又方便的萌宠宠物用品商城是一项十分重要并…

通过旋转机械臂,将机械臂上相机拍摄图像的任意点移动至图像中心的方法

计算原理 角度计算 相机CCD大小固定&#xff0c;即相机成像平面大小固定&#xff0c;相机视场角(FOV)仅由相机焦距F决定&#xff1b; 因此&#xff0c;定焦相机的FOV大小固定&#xff0c;通过上图可以看出相机视场角的计算公式为&#xff1a; FOV 2*atan&#xff08;w/2f&…

四、任意文件读取漏洞

一、介绍 解释&#xff1a;任意文件读取漏洞就其本身来说就是&#xff0c;攻击者绕过网站防御者设置的防御&#xff0c;读取到了正常使用者不应该读取到的内容。网站开发者使用不同的语言&#xff0c;任意文件读取漏洞利用方式就不同。 二、不同开发语言的不同漏洞点 1.PHP …

编译与链接(C/C++)

在C/C中关于代码的运行需要经过.c文件到.exe文件&#xff0c;而其中走过这些步骤这需要对原始的.c文件进行编译与链接。对于编译与链接主要构成了翻译环境&#xff0c;经过翻译环境之后生成.exe文件&#xff0c;然后在通过运行环境输出对应的结果。本篇主要讲解编译与链接。 以…

ElasticSearch扫盲概念篇[ES系列] - 第500篇

历史文章&#xff08;文章累计500&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 E…