Ansys Zemax | 光学系统设计中如何使用玻璃替换方法来优化玻璃

在光学系统中选择最优玻璃材料时,Conrady d-D以及模型玻璃等传统的玻璃选择方法提供的帮助有限。本文介绍了如何使用玻璃替换方法进行直接玻璃优化,以及在考虑玻璃的可用性、成本及耐候性等因素时,如何进一步严格挑选玻璃。

简介

玻璃替换方法是OpticStudio中选择玻璃最有效的方法。玻璃替换方法可直接修改玻璃类型,然后重新优化系统,以确定新的玻璃是否是更好的设计方案。

当玻璃被设置为“substitute”求解时,OpticStudio将自动完成此过程。如果一种玻璃被标记为可替换 (Substitute) 玻璃,则全局优化算法(Hammer和Global Search)将在优化过程中自动执行此类玻璃的迭代替换。这样可使OpticStudio在不借助于理想化玻璃色散的情况下优化系统。本文将提供此方法的一个示例。 

玻璃替换

OpticStudio中处理玻璃优化的方式与处理其他数据的方式有些不同。直接优化玻璃选择是一件很困难且不可预测的过程,因为玻璃的属性是不连续的。

选择玻璃的传统方法是使用某种模型玻璃。模型玻璃方法是使用一些数值参数将玻璃色散理想化,然后优化这些参数,同时将参数值或计算的折射率值约束为类似可用的玻璃。在可见光区域,可以使用Conrady d-D方法进一步简化该方法。这种方法仅对少数不同波长的光线进行追迹、缩放,然后使用优化方法使其差异变为零值。

如果一种玻璃被描述成有一定折射率、阿贝数和部分色散偏离的“模型玻璃”,则可以将这些模型参数设置为变量,然后像其他数值参数一样进行优化。然而,模型玻璃方法存在一个严重的缺陷,即在使用模型玻璃方法获得良好的设计方案之后,必须将模型玻璃转换为真实的玻璃,然后再使用新选择的玻璃来重新优化该设计。遗憾的是,对于许多系统,新优化的设计方案的性能可能比模型玻璃方法的设计方案的性能要差。更令人沮丧的是,使用真实玻璃的最佳设计可能与使用模型模型找到的最优设计有不同的结构。

为避免以上过程中出现的麻烦,OpticStudio提供了一种玻璃替换工具。在优化过程中,玻璃替换方法使用来自玻璃目录中的真实玻璃替换镜头数据编辑器(LDE)中的玻璃。

为查看玻璃替换方法的操作过程,我们将优化Doublet.zmx示例文件中的玻璃,该文件位于 {Zemax}/Samples/Sequential/Objectives/Doublet.zmx。

打开示例文件,然后在LED中设置两种玻璃的状态:打开solve对话框(双击或左键单击玻璃参数),并将 solve 类型设置为“Substitute”。

图片

出现在玻璃旁边的字母“S”表示这些玻璃处于可替换状态。

图片

使用评价函数编辑器中的默认评价函数工具构建RMS波前优化默认评价函数。

图片

点击“OK”,评价函数编辑器将显示如下:

图片

优化

在优化过程中,由于每一次替换玻璃都会使评价函数的值产生不连续的跃变,所以玻璃替换需要使用全局优化算法,如使用Global Search或Hammer算法代替局部优化方法。

替换的玻璃选自系统当前使用的玻璃目录。在“System Explorer...Material Catalogs...Catalogs To Use”中可进行设置,本例使用的是Schott目录。

图片

打开OPD光扇图,观察系统在优化之前的性能。OPD最大量度为0.5个波长。

图片

点击“Optimize...Hammer Current”执行Hammer优化。勾选“Auto Update”选项,查看优化期间 LDE 的数据和OPD光扇图的变化。

点击“Start”开始优化

图片

您将看到优化期间替换用到的玻璃,以及 OPD 光扇图窗口的变化。

结果

在大约一分钟之后停止优化。LDE中的玻璃可能如下所示:

图片

将OPD光扇图的最大量度设置为0.5,以便与优化前的性能对比。性能明显已得到极大改善。

图片

“System Explorer...Materials Catalogs...Catalogs To Use”中列出的所有玻璃库中的玻璃都将被用于替换。如果要限制特定的玻璃目录,您可以在solve窗口中输入目录的名称。例如,您已在“General”窗口中列出Hoya和Schott两个玻璃目录:

图片

但是您只想使用Hoya目录中的玻璃替换面#1的玻璃,那么您只需要在该玻璃的solve窗口中输入“Hoya”即可。

图片

现在只有Hoya目录的玻璃可选作替换的玻璃。

玻璃替换模板

您可以使用“Libraries...Glass Substitution Template”中的玻璃替换模板进一步限制玻璃目录中玻璃的替换。请确认勾选了“Use Glass Substitution Template”选项框,否则将如同之前一样使用目录中的所有玻璃都会进行替换。

图片

玻璃替换模板使用玻璃目录中的“相对价格 (Relative cost)”和“状态 (Status)”等数据来筛选玻璃。例如,勾选“首选 (Preferred)”选项通常十分有用,因为首选 (Preferred) 的玻璃通常是熔炼更频繁的玻璃,更可能根据需求被供应商提供。

要查看特定玻璃的数据或状态,请点击“Libraries...Materials Catalog”打开材料目录窗口。

图片

材料目录给出了玻璃状态,可能是标准的 (Standard)、首选的 (Preferred)、特殊的 (Special)、废弃的 (Obsolete) 或熔炼的 (Melt)。除非您真的需要选择其他状态,否则请始终选择“Preferred”玻璃,因为这些玻璃价格最低、化学性质最稳定、而且最为常用。

材料目录还列出了相对价格(相对于单位重量下 N-BK7 的价格)、耐候性、耐沾污性、耐酸性、耐碱性和耐洗剂性。通过使用玻璃替换模板,您可以确保选择的玻璃不仅仅符合光学标准,还符合其他重要标准。

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

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

相关文章

目标检测前言,RCNN,Fast RCNN,Faster RCNN

一、RCNN: 找到概率最高的目标之后,与其他目标进行IOU交并比计算,若高于一定值,则说明这两张图片预测的是同一个目标,则把概率低的目标删掉 二、Fast RCNN 因为是直接得到特征图之后进行映射,所以不限制输入…

电脑提示丢失MSVCP140.dll是什么意思,总结5个MSVCP140.dll丢失的解决分享

在计算机使用过程中,有时候会出现一些异常情况,比如丢失 MSVCP140.dll 文件。MSVCP140.dll 是 Microsoft Visual C 2015 Redistributable 的一部分,它包含了一些在 C 编程时需要的函数和类。许多程序和游戏都需要依赖这个文件来正常运行。一旦…

u盘内容防止复制(U盘内数据防拷贝的方法)

随着科技的发展,U盘已经成为我们日常生活和工作中不可或缺的一部分。然而,U盘的普及也带来了一些问题,如数据泄露、病毒传播等。因此,保护U盘中的数据安全变得尤为重要。 方法一:设置文件权限 打开U盘,找到…

华为aarch64架构的泰山服务器EulerOS 2.0 (SP8)系统离线安装saltstack3003.1实践

华为泰山服务器的CPU芯片架构为aarch64,所装系统为EulerOS 2.0 (SP8)aarch64系统,安装saltstack比较困难。本文讲解通过pip安装方式离线安装saltstack3003.1以进行集中化管理和维护。 一、系统环境 1、操作系统版本 [rootlocalhost ~]# cat /etc/os-r…

如何将本地的项目上传到Git

一、GitHub or GitLab or Gitee创建一个新的仓库 二、仓库路径创建成功后,将本地项目上传到git 1. 进入本地项目所在文件夹位置,右击 2.出现git命令框 输入git init 在当前项目的目录中生成本地的git管理(会发现在当前目录下多了一个.git文件…

Redis模块二:缓存分类 + Redis模块三:常见缓存(应用)

缓存大致可以分为两大类:1)本地缓存 2)分布式缓存 目录 本地缓存 分布式缓存 常见缓存的使用 本地缓存:Spring Cache 分布式缓存:Redis 本地缓存 本地缓存也叫单机缓存,也就是说可以应⽤在单机环…

DirectX12(d3d12)初始化

一、前置要求 Windows 10及以上(安装有DirectX12)VisualStudio 2022 二、DirectX12入门 1.引用头文件 #include<Windows.h> #include<d3d12.h> #include<dxgi1_4.h>2.注册窗口类并初始化窗口 这里我们调用Windows API 通过应用程序的句柄来注册一个唯一…

Maven 安装配置

Maven 安装配置 文章目录 Maven 安装配置一、下载 Maven二、解压Maven核心程序三、指定本地仓库四、配置阿里云镜像仓库4.1 将原有的例子配置注释掉4.2 加入新的配置 五、配置 Maven 工程的基础 JDK 版本六、配置环境变量6.1 检查 JAVAHOME 配置是否正确6.2 配置 MAVENHOME6.3 …

已解决 Kotlin Error: Type mismatch: inferred type is String but Int was expected

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…

007-第一代软件需求整理

第一代软件需求整理 文章目录 第一代软件需求整理项目介绍需求来源需求来源1&#xff1a;竞品软件分析需求来源2&#xff1a;医生&#xff08;市场&#xff09;需求来源3&#xff1a;项目组内部需求来源4&#xff1a;软件组内部需求来源5&#xff1a;软件开发成员需求来源6&…

Python 元组的常用方法

视频版教程 Python3零基础7天入门实战视频教程 下标索引用法和列表一样&#xff0c;唯一区别就是不能修改元素 实例&#xff1a; # 下标索引用法和列表一样&#xff0c;唯一区别就是不能修改元素 t1 ("java", "python", "c") # t1[1] "…

95.qt qml-诺谦通用可扩展多功能QML界面

支持如下所示: 1.可扩展多功能交互&#xff0c;用户可以根据自己喜欢使用常用功能&#xff0c;针对多功能项目非常有用&#xff01;2.登录用户信息显示&#xff0c;历史消息显示&#xff0c;皮肤黑白风格切换 如下图所示: 自带一个功能界面&#xff0c;可以通过功能界面添加不…

Python爬虫:获取必应图片的下载链接

文章目录 1. 前言2. 实现思路3. 运行结果 1. 前言 首先&#xff0c;说明一下&#xff0c;本篇博客内容可能涉及到版权问题&#xff0c;为此&#xff0c;小编只说明一下实现思路&#xff0c;至于全部参考代码&#xff0c;小编不粘贴出来。不过&#xff0c;小编会说明详细一些&a…

0918hw

字节序概念&#xff1a; 字节序是不同cpu主机&#xff0c;存储多字节整数序列的存储方式 1.大端存储&#xff1a;低字节序存储在地址高位 2.小端存储&#xff1a;低字节序存储在地址低位 3.无论大小端存储&#xff0c;首地址都是低地址&#xff0c;数据都是先读取低地址&am…

三维模型3DTILE格式轻量化压缩主要技术方法浅析

三维模型3DTILE格式轻量化压缩主要技术方法浅析 三维模型3DTILE格式轻量化压缩主要技术方法浅析 随着三维地理空间数据的应用日益广泛&#xff0c;为了更快速地传输和存储这些大规模数据&#xff0c;3DTile格式的轻量化压缩显得尤为重要。本文将浅析关于三维模型3DTile格式轻量…

Vulnhub系列靶机-Hackadmeic.RTB1

文章目录 Vulnhub系列靶机-Hackadmeic.RTB11. 信息收集1.1 主机扫描1.2 端口扫描1.3 目录爆破 2. 漏洞探测3. 漏洞利用3.1 反弹Shell 4. 内核提权 Vulnhub系列靶机-Hackadmeic.RTB1 1. 信息收集 1.1 主机扫描 arp-scan -l1.2 端口扫描 nmap -A -p- 192.168.188.184扫描到了…

7.代理模式

1.UML 2.代码 #include <iostream> using namespace std;class Subject{ public:virtual void Request() 0; };class RealSubject:public Subject { public:virtual void Request(){cout << "RealSubject" << endl;} }; class Proxy:public Subj…

前端项目开发流程

一 参加需求对称(评审)会议 时间&#xff1a;在产品设计完成以后&#xff0c;进入正式的开发流程之前 组织者&#xff1a;产品&项目经理 目的&#xff1a;统一大家对产品的认识&#xff0c;及时发现产品设计缺陷&#xff0c;尽可能降低后续修改需求的频率 参与者&#xff…

Qt扩展-KDDockWidgets 简介及配置

Qt扩展-KDDockWidgets 简介及配置] 一、概述二、编译 KDDockWidgets 库1. Cmake Gui 中选择源文件和编译后的路径2. 点击Config&#xff0c;配置好编译器3. 点击Generate4. 在存放编译的文件夹输入如下命令开始编译 三、qmake 配置 一、概述 kdockwidgets是一个由KDAB组织编写…

C【操作符】

1. 操作符分类&#xff1a; 2. 算术操作符 int main() {double a 5 % 2;//商2余1printf("a %lf\n", a);return 0; } 3. 移位操作符 3.1 左移操作符 左边抛弃、右边补0 3.2 右移操作符 首先右移运算分两种&#xff1a; 1. 逻辑移位 左边用0填充&#xff0c;右边丢…