一个简单的连续变焦红外镜头的从零开始的设计过程(zemax)(二)进一步优化,公差分析

news/2024/10/18 5:52:54/

前文的补充说明

有光学设计师的朋友,跟我说把那个程序抄完后运行,什么也得不到。
这是因为缺乏一个文件名字叫做“zoomlensdata.txt"
他的内容就是上一篇的那份代码之后的第七到第十二行的内容。
在这里插入图片描述
然后我对这个程序进行了注释:

def structdata(word:str):    """    提取数据    """    return re.split(r':',word)[1].strip()
def getimg(p,f,pf):    """    p:物点    f:像方焦距    pf:镜片的位置    return:像点,垂轴放大率    """
def createp(initobj,f1,f2,pf1,pf2,step):    """    initobj: 初始物点坐标    f1:变倍组焦距    f2:补偿组焦距    pf1:变倍组初始位置    pf2:补偿组初始位置    step:步长    return:一个包含有各个视场变倍/补偿绝对位置和相应变倍比的列表    """

设计师仅仅只需要调整冒号后面的数值就能得到一系列与之相对应的结构参数。

正文 精细的设计

1,检查其他视场,打开6个视场对后续的几个视场的后面两个厚度设置变量,然后将所有TOTR设置为与第一个结构相同。然后发现在第三个结构两片透镜距离太近。这样只有添加约束
在这里插入图片描述
这样整个评价函数为(注意仅仅第一和最后结构添加了effl约束,其他视场没有添加,仅仅设置作为观察用)
这时我们可以检查各个面的波前,比如检查第八个面的波前然后调整一下这个面的非球面系数
——波前图在进行细致优化的时候是非常有用的,反复手动调整4,6,8三个面的非球面系数,每调整一次锤型一次。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

值得注意的是

1.约束条件的变动。
由于确认变倍补偿路径的参数一共有5个,所以总约束数也应当是5个
前期我们可以将变倍,补偿,前组的光焦度进行约束,但是当我们设定了数个视场的结构,就可以解除部分约束。到后期的时候一般我仅仅约束前组,变倍焦距,以及长焦焦距,而其他视场焦距不做约束。
这是因为在机械中有一种说法叫做过定位,即两个自由度被限制了会引起构件的变形。
在这里插入图片描述
这里我们可以发现一个有意思的现象,那就是当我们将约束取消到一定的程度时,zemax的优化就变成了方程的求解,当多重结构参数固定下来后,如果改变这几个关键参数(变倍,补偿,前组的焦距)那么其他的参数经过优化之后,依然能够符合程序运算出来的结果。而一旦我们重新加上这些约束,就会产生类似于结构设计时的“过定位效果”,从而对像质产生不良影响。给优化增加困难。
就这样,扫个尾花了之前1.5倍的时间后,优化也就差不多了
在这里插入图片描述
在这里插入图片描述
标准点列图
在这里插入图片描述注意:有些艾里斑看上去像个椭圆是因为渐晕。

用如下的按钮添加反射镜
在这里插入图片描述
在第十三以及第二十个面插入一个45°反射镜后如下

在这里插入图片描述
当然反射镜的位置可以根据具体需求进行调整

公差分析

在一般情况下,根据国内的制造工艺水平,元件或者表面的偏心一般可以在0.02至0.05mm的范围内。
元件的倾斜公差一般跟元件的大小相关,端面的跳动也是0.02至0.05,这样根据简单的几何关系比较大的镜片倾斜公差会更加严格,而比较小的镜片倾斜应当更加宽松。比如一个5mm口径的镜片。要求倾斜1′与一个口径200mm的镜片倾斜1′是两个完全不同的概念,很多初出茅庐的设计师将所有的镜片都设计成同样的公差,这是对产品极端不负责任的行为。
以下是武汉宇熠熠教学视频中的一段内容:
在这里插入图片描述

题外话:有些时候生产人员抱怨设计师,公差比较紧,并不是设计师的错。因为光线总是最终会从不同角度的平行光被调制到汇聚到像面上的某个点。其总的弯折量是一定的。为了维持一些镜头的基本功能,往往有些光学组件需要特定的光焦度。这些光焦度在设计时改动的范围是有限的 ,因此决定光学系统的公差的最大因素往往是1:镜筒的总长度;2:变倍比3:其他的外形结构尺寸。4:镜片的数量
当这些都被要求的时候,光学设计师对于公差所能做出的努力是相当有限的;当然很多外行就会认为公差紧是设计师的错。


http://www.ppmy.cn/news/572995.html

相关文章

西门子1500的DB数据块

首先了解DB数据块的含义,然后举个简单例子,加以分析。 1.首先我建立了DB数据块,DB数据块分为绝对寻址与间接寻址 根据DB数据块的属性可以进行切换,如下图 若没有选择优化块的访问就是绝对寻址,若选择了优化块的访问&a…

解决错误1500:当访问注册表项...\TrapConfiguration 时,SNMP 服务遇到错误

事件ID: 1500 事件描述: 当访问注册表项 SYSTEM\CurrentControlSet\Services\SNMP\Parameters\TrapConfiguration 时,SNMP 服务遇到错误。 解决方法: 参考https://support.microsoft.com/en-us/help/2002303/event-1500-logged-wh…

SIEMENS S7-1500 博途V16

文章目录 环境博途V16 安装硬件组态连接设备 环境 硬件: 按键设置IP地址,若提示IP设置写保护,可能是由于plc处于运行状态,将其停止后再进行设置即可。 软件: win10 博途V16 安装 参考:链接 注意一定要…

1500 - 数组挑战-扫雷

扫雷游戏是一款十分经典的单机小游戏。它的精髓在于,通过已翻开格子所提示的周围格地雷数,来判断未翻开格子里是否是地雷。 现在给出 �n 行 �m 列的雷区中的地雷分布,要求计算出每个非地雷格的周围格地雷数。 注&…

编程常用单词1500个

很实用的编程英语词库,共收录一千五百余条词汇。 第一部分: application 应用程式 应用、应用程序 application framework 应用程式框架、应用框架 应用程序框架 architecture 架构、系统架构 体系结构 argument 引数(传给函式的值)。叁见 parameter…

S7-1200和S7-1500定时器操作

TP:生成脉冲 使用“生成脉冲”(Generate pulse) 指令,可以将输出 Q 置位为预设的一段时间。 当输入 IN 的逻辑运算结果 (RLO) 从“0”变为“1”(信号上升沿)时,启动该指令。指令启动时,预设的时间 PT 即开…

求第1500个丑数

参考《剑指Offer》 题目: 我们把只包含因子2、3和5的数称作丑数(Ugly Number)。求按从小到大的顺序的第1500个丑数。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。 分析 常规解法 …