Zemax光学设计——单透镜设计

news2024/11/27 1:36:56

单透镜系统参数:

入瞳直径:20mm

F/#(F数):10

全视场:10°

波长:587nm

材料:BK7

优化方向:最佳均方根光斑直径

设计步骤

一、单透镜系统参数

步骤一:入瞳直径20mm

首先需要把已知镜头的系统参数输入Zemax中,系统参数包括三部分:光束孔径大小、视场类型及大小、波长

(1)在“系统选项”面板中打开“系统孔径”选项,将”孔径类型“设置为“入瞳直径”,孔径值设置为20,切趾类型设置为“均匀”

设置完成后,镜头数据随之变化

步骤二: 输入视场

(1)在“系统选项”面板中单击“视场”选项左侧的展开(小三角形)按钮,展开视场选项

(2)单击“打开视场数据编辑器”按钮,在“视场类型”选项卡中设置“类型”为“角度”

(3)在下方点击“添加视场”,两次,插入两行

(4)在视场1,2,3中的“Y角度(°)”列分别输入0,3.5,5,保持权重1 不变

 

步骤三:输入波长587nm 

 (1)在“系统选项”面板中单击“波长”(小三角)展开按钮

 (2)双击“设置”选项,弹出波长数据编辑器,直接勾选1,并将波长修改为0.587,

 (3)关闭该窗口即可

二、单透镜初始结构 

 接下来创建透镜的初始结构,单透镜由2个面组成,需要在镜头数据编辑器像面前插入一个表面

步骤四:在透镜数据编辑器内输入参数

(1)鼠标点击一下像面那一栏,然后键盘上按“Insert”键在像面前插入一个表面

(2)在面1的“材料”栏输入透镜材料“BK7”,表示当前面和相邻面之间的材料为BK7

系统要求的透镜F/#=10,表示焦距与入瞳直径的比值为10,这也是间接控制焦距的方法。通常直接在最后一个光学面的曲率半径上设置F/#的求解类型,在透镜后表面曲率半径上单击右键,选择F/#=10

步骤五:在最后一个光学面的曲率半径上设置F/#的求解

(1)在镜头数据编辑器中面2那一栏中的“曲率半径”栏右侧的方格中单击,弹出“在面2上的曲率解”对话框

(2)将对话框中的求解类型设为“F数”

(3)将“F/#”设置为10

 

设置完成后,其中的一些数据会发生变化

 

在初始结构中,透镜的曲率半径和厚度未知,,这些参数需要软件自动优化得到,但可以使用透镜后表面上边缘厚度解得到近轴焦平面的位置

在透镜后表面的厚度上单击鼠标右键,选择边缘光线求解类型,它表示近轴边缘光线会自动在下一个表面上聚焦并确定距离值

步骤六:在透镜后表面厚度上选择边缘光线高度求解类型

(1)在镜头数据编辑器面2中的厚度栏右侧方格单击,弹出“在面2上的厚度解”对话框

(2)将对话框中的“求解类型”设置为“边缘光线高度”

 

此时发现厚度变为200

 

步骤七:查看单透镜结构光路图与像差畸变图 

(1)查看2D视图 

 

3D视图

 

实体模型图

 

(2)执行“分析”选项卡——“成像质量”面板——“相差分析”组——“光线像差图”命令,打开“光线光扇图”窗口显示光扇图

 

三、单透镜的变量与优化目标

初始结构设置完成后,为找到最佳曲率半径值,下一步设置透镜需要优化的参数,即设置透镜的优化变量。单击需要优化的参数栏并按“CTRL+Z”组合键,可将该参数设置为变量,参数右边会出现V标识

步骤八:将单透镜的前表面曲率半径与透镜厚度设置为变量

 

 变量设置完成后,下一步需要在软件中设置评价函数。评价函数用来评价系统优化目标的好坏,在该单透镜中只需要优化得到最小的光斑即可

步骤九:优化单透镜

(1)执行“优化”选项卡——“自动优化”面板——“优化向导”命令,打开“评价函数编辑器”窗口

 

在优化向导面板中可以进行:优化函数、光瞳采样、厚度边界等参数组的设置

优化函数:是设计的核心,是优化需要得到的结果。以成像质量为目标。可以是波前、对比度、点列图、角向。通常优化镜头的分辨率是以光斑最小为标准

光瞳采样:即优化时的光线采样,包括高斯求积和矩阵阵列采样。当系统为旋转对称结构且不存在渐晕的情况下,使用高斯求积,追迹最少的光线能够得到较高的优化效率。当系统存在渐晕时,只能使用矩形阵列采样,需要追迹大量光线才能得到精确的结果

厚度边界:用来控制优化过程中镜片与空间间隔大小,保证得到的镜片不会太厚或太薄,空气厚度不至于优化为负值等

(2)在优化向导与操作数面板中的“优化向导”选项卡中进行参数设置,设置“成像质量”为点列图,X权重,Y权重为0,点击“应用”即可

生成的评价目标操作数如下

 

(4)执行“优化”选项卡——“自动优化”面板——“执行优化”命令,打开”局部优化“对话框 

 

采用默认设置,单击开始按钮开始优化,

执行后显示优化时间为0.469s,当前评价函数变为0.032967548

 

单击“退出”按钮,退出对话框

四、单透镜优化结果分析与改进设计 

步骤十:查看单透镜结构光路图与像差畸变图

 (1)查看3D视图

 

(2)查看像差图

 

从图中可以看出,优化后的透镜非常厚,已经成为了一个圆柱形,这对于实际加工来说是不合理的,说明我们在设置优化目标时没有对透镜的厚度进行限制,导致镜片厚度不符合常理

下面来修正评价目标,将透镜厚度边界条件加入评价函数中。设置透镜最小中心和边缘厚度为2mm,最大中心厚度为10mm.

步骤十一:重新优化单透镜 

(1)展开“优化向导和操作数”参数设置面板,在“优化向导”标签——“厚度边界”参数组中勾选“玻璃”复选框

(2)在“最小”栏输入2,“最大”栏输入10,“边缘厚度”栏输入2,如下图所示,单击应用按钮 

 

 

生成的评价目标操作数

 

(3)执行“ 优化”选项卡——“自动优化”面板——“执行优化”命令,打开局部优化对话框

(4)采用默认设置,单击“开始”按钮进行优化。

步骤十二:重新优化后,查看单透镜结构光路图与像差畸变图

 

 

设计生成合理的透镜结构后,通过点列图(不是为什么电脑不显示点列图,只好以上面的文本形式代替)观察成像效果,三个视场的RMS光斑分别为15微米,54微米,95微米,从光斑逐渐变大的趋势来看,可以推理出像面位置应该处于第一个视场聚焦点,由于场曲存在,使第二、第三视场的光斑越来越大。

为了改善这种情况,通过分析该系统,在设置初始结构时,系统使用了一个边缘光线高度求解类型,该操作限制了像面位置只能在近轴焦平面处,极大的限制了光斑优化,需要改进

(1)单击面2中的“厚度”栏,将求解类型设置为变量

 

(2)继续执行与前面类似地优化过程,优化结果如下

 

 三个视场的RMS光斑分别为35微米,15微米,49微米。

通过判断该单透镜系统具有两种主导性像差:像散和场曲。这种情况下系统像质是否能够继续提高,需要根据占主导的像差来分析确定,如果要继续提高单透镜的成像光斑效果,需要减小系统的像散和场曲。

可以通过改变视场来改变外视场的像差,虽然系统设定的视场角度不能改变,但是可以通过改变光阑的位置来改变不同视场的光线与透镜的高度

步骤十三:通过改变视场来改变外视场的像差

(1)在面1前插入一个新的表面,并将其设置为新的光阑面

 

(2)再将该面的“厚度”栏设置为变量

 

上述操作将视场光阑移至镜片的外部,通过再次优化,不同视场在透镜上的高度被重新分配,从而可以校正轴外视场的像差

(3)继续执行优化操作

 

 

优化后三个视场的RMS光斑分别为16微米,14微米,24微米,比之前有明显改善

步骤十四:使用像模拟功能展示透镜成像效果

打开“图像模拟”命令,在窗口中设置“导入文件”,

 

 

显示图像如下图所示 

 

单透镜可优化的变量有限,很难实现更高的成像效果。单透镜设计到这里就介绍完了。 

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

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

相关文章

45、Flink 的指标体系介绍及验证(2)-指标的scope、报告、系统指标以及追踪、api集成示例和dashboard集成

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

【傻瓜级JS-DLL-WINCC-PLC交互】7.​C#直连PLC并读取PLC数据

思路 JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与…

有理有据:数据库选择集中式还是分布式

OLTP类型的业务系统采用集中式数据库还是分布式数据库是在做国产数据库改造中经常被问到的问题,无论是对技术架构发展演变,还是对现有业务长期发展提供必要的支撑,这个问题都具有讨论意义。在分布式大行其道的背景下,似乎任何架构…

三年后重启港股IPO,卷出国门后的宁德时代实力几何?

近些年,国内的新能源汽车发展如火如荼,与之紧密相关的动力电池企业也搭上了发展的高速列车。经过初期的扩产潮后,国内动力电池行业目前产能过剩的风险正在逐渐加剧。 国内的头部企业为了减轻库存压力,在新一轮的竞争与洗牌周期中…

【C++】STL --- 哈希

哈希 一、 unordered 系列关联式容器1. unordered系列关联式容器2. unordered_map3. unordered_set 二、底层结构1. 哈希概念2. 哈希冲突3. 哈希函数4. 解决哈希冲突(1)闭散列(2)开散列 三、封装哈希表1. 模板参数列表的改造2. 迭…

【带头学C++】----- 八、C++面向对象编程 ---- 8.8 内联函数 inline

目录 8.8 内联函数 inline 8.8.1 声明内联函数 8.8.2 宏函数与内联函数的区别 8.8.3 使用内联函数需注意 8.9 函数重载 8.9.1 什么是函数重载 8.9.2 函数重载的条件 8.9.3 函数重载底层原理是如何实现的? 8.8 内联函数 inline 在C中,inline是一个…

单片机_RTOS_架构

一. RTOS的概念 // 经典单片机程序 void main() {while (1){喂一口饭();回一个信息();} } ------------------------------------------------------ // RTOS程序 喂饭() {while (1){喂一口饭();} }回信息() {while (1){回一个信息();} }void main() {create_task(喂饭);cr…

leetcode 611. 有效三角形的个数(优质解法)

代码&#xff1a; class Solution {public int triangleNumber(int[] nums) {Arrays.sort(nums);int lengthnums.length;int n0; //三元组的个数//c 代表三角形最长的那条边for (int clength-1;c>2;c--){int left0;int rightc-1;while (left<right){if(nums[left]nums[r…

生成式AI与预测式AI的主要区别与实际应用

近年来&#xff0c;预测式人工智能&#xff08;Predictive AI&#xff09;通过先进的推荐算法、风险评估模型、以及欺诈检测工具&#xff0c;一直在推高着该领域公司的投资回报率。然而&#xff0c;今年初突然杀出的生成式人工智能&#xff08;Generative AI&#xff09;突然成…

数据库其它调优策略

文章目录 1. 优化MySQL服务器2. 优化数据库结构2.1 差分表&#xff1a;冷热数据分离 3. 大表优化3.1 读/写分离3.2 垂直拆分3.3 水平拆分 1. 优化MySQL服务器 电商平台&#xff0c;双十一&#xff0c;CPU使用率达到99%&#xff0c;系统的计算资源已经耗尽&#xff0c;再也无法…

【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目

解决idea至少创建jdk17项目 问题idea现在只能创建最少jdk17&#xff0c;不能创建java8了吗?解决 问题 idea现在只能创建最少jdk17&#xff0c;不能创建java8了吗? 我本来以为是 IDEA 版本更新导致的 Bug&#xff0c;开始还没在意。 直到我今天自己初始化项目时才发现&…

基于Java SSM框架+Vue实现垃圾分类网站系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架Vue实现垃圾分类网站系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个垃圾分类网站 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述…

[cocos creator]EditBox,editing-return事件,清空输入框

需求&#xff1a; 监听EditBox&#xff0c;editing-return 回车事件&#xff0c;在输入框内点击回车后&#xff0c;发送内容&#xff0c;并清空输入框 问题&#xff1a; 设置node.getComponent(EditBox).string ; 没有效果 解决办法&#xff1a; //设置string 为空 this.v…

创纪云助力客服系统:通过API和无代码开发实现与电商平台的智能集成

无缝连接电商和客服系统&#xff1a;管家婆的无代码开发解决方案 在电子商务和客户服务日新月异的发展中&#xff0c;企业面临着如何提高效率和客户满意度的挑战。江苏创纪云网络科技有限公司&#xff08;INNOVATION ERA&#xff09;推出了一款无需API开发的解决方案&#xff…

(git)拉取代码时提示连接失败...SSL certificate problem: self signed certificate

(git)拉取代码时提示连接失败…SSL certificate problem: self signed certificate 解决思路&#xff1a;git 忽略https验证 方法 git config --global http.sslVerify false效果&#xff1a; 解决参考&#xff1a;https://blog.csdn.net/JuleRoch/article/details/10994172…

HWAsan机制

目录 概述 原理 使用 验证开启 对比asan 参考链接 概述 hwasan是Hardware Address Sanitizer的简称&#xff0c;它是clang llvm提供的一套内存错误检测系统&#xff0c;可以用来检测C/C代码常见的内存错误 Stack and heap buffer overflow/underflow Global buffer ove…

实在品牌墙又双叒叕扩容,数十家龙头品牌签约实在RPA

近日&#xff0c;“实在智能 华夏行”数智化赋能之旅火爆前行&#xff0c;为孩子王、视客眼镜、心海伽蓝、洁丽雅、诗裴丝、视贝、博纳泉、鑫荣懋、艾莱得、布诗等数十家优秀企业带来超自动化智能解决方案&#xff0c;帮助商家解决重复低效工作&#xff0c;降低运营成本&#x…

Shell脚本编程案例 – 批量创建特殊要求账户

Shell脚本编程案例 – 批量创建特殊要求账户 Shell Scripting Cases – Create a Bunch of accounts with special requests By JacksonML 本文简要介绍批量执行Shell脚本命令的基本思路&#xff0c;以检验shell脚本知识掌握情况。希望对读者有所帮助。 案例要求&#xff1a…

激光切割头组件中喷嘴的作用是什么

喷嘴是一个不可忽视的部件。尽管喷嘴并不起眼&#xff0c;却有着重要的作用&#xff1b;喷嘴一般是与激光切割头同轴的&#xff0c;且形状多样&#xff1a;圆柱形、锥形、缩放型等。 喷嘴的口径尺寸时不相同的&#xff0c;大口径的喷嘴对聚焦来的激光束没有很严苛的要求;而口径…

python开发之个微自动转发朋友圈

简要描述&#xff1a; 转发朋友圈&#xff0c;直接xml数据。(对谁不可见) 请求URL&#xff1a; http://域名地址/forwardSns 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参…