前文的补充说明

有光学设计师的朋友,跟我说把那个程序抄完后运行,什么也得不到。
这是因为缺乏一个文件名字叫做“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:镜片的数量
当这些都被要求的时候,光学设计师对于公差所能做出的努力是相当有限的;当然很多外行就会认为公差紧是设计师的错。

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

  1. 一个简单的连续变焦红外镜头的从零开始的设计过程(zemax)(一)

    基本介绍 这里我将介绍一个连续变倍(300 ~ 50)F# = 4 的中波红外镜头的设计过程. 我这里并没有利用一个现成的红外镜头作为初始结构,用来设计的软件是zemax 可以注意到以上的镜片参数都是 ...

  2. Python使用tkinter开发一个简单的参数计算软件模板,可用于设计估算,制造业算料,各种包含参数变量的简单计算

    一.开发前因 最近在制造业转了一圈,发现很多传统制造业在设计或者加工下料过程中,需要根据一些固定参数和现场实际的变量,去估算出设计的范围值或者所需要的材料用量.这种计算当然都会有固定的参数和变量组成的 ...

  3. 基于netty实现一个简单的支持http和webSocket协议的的服务器(含xxl-job通信模块源码分析)

    文章目录 背景 依赖 包结构 实现 WebSocketServer 业务handler WebSocketServerHandler 测试 xxl-job 源码中基于netty实现的http 总结 参 ...

  4. 使用R实现一个简单的连续系统模拟

    连续系统就是指状态随着时间连续变化的系统.我们通过计算机模拟对连续系统得到的结果只是近似的,但如果只要这种近似达到了一定的精度,也就可以满足要求. 连续系统模拟的一般方法就是首先建立系统的连续模型,然 ...

  5. UE4实现一个简单的炸弹爆炸与镜头振动效果

    1.制作炸弹Actor 创建一个基于Actor的炸弹蓝图,在这个蓝图里添加StaticMeshComponent组件,添加EventTick逻辑,延时启动爆炸流程 2.制作镜头振动效果 首先创建一个基 ...

  6. 论文翻译:DeepFaceLab:一个简单,灵活的可扩展换脸框架

    DeepFaceLab:一个简单,灵活的可扩展换脸框架 时间有限,翻译仓促,为个人学习所用,仅供参考. DeepFaceLab: A simple, flexible and extensible f ...

  7. [C# 网络编程系列]专题十二:实现一个简单的FTP服务器

    引言: 休息一个国庆节后好久没有更新文章了,主要是刚开始休息完心态还没有调整过来的, 现在差不多进入状态了, 所以继续和大家分享下网络编程的知识,在本专题中将和大家分享如何自己实现一个简单的FTP服务 ...

  8. 免费发布一个简单而有趣的计算工具

    Jef Raskin 在 The Humance Interface: New Directions for Designing Interactive Systems 一书中提到,好的用户界面应当把 ...

  9. 一个简单的基于 DirectShow 的播放器 2(对话框类)

    上篇文章分析了一个封装DirectShow各种接口的封装类(CDXGraph):一个简单的基于 DirectShow 的播放器  1(封装类) 本文继续上篇文章,分析一下调用这个封装类(CDXGrap ...

  10. 关于图片轮播图的一个简单实例 以及实例中发现问题

    1.最近在学习JS的过程中,为了巩固水平做了一个简单的轮播图,以及在做的过程中发现一些问题(未解决!希望可以有大佬可以解释这个问题) 2.代码如下: <!DOCTYPE html> < ...

最新文章

  1. 任天堂遭史上最严重黑客攻击:完整源代码、设计文档及技术演示泄露
  2. WhatsApp CEO向FreeBSD捐赠一百万美金
  3. zabbix中php信息缺失之后的安装
  4. JSON.parse和JSON.stringify 参数详解
  5. 科学数字_七年级数学上册:科学记数法、有效数字记住这点中考分可定拿得到...
  6. border-collapse 关于继承问题
  7. 数据库MySQL基础---JDBC开发步骤--JDBC封装工具类--PreparedStatement实现CRUD操作
  8. android启动activity的详细过程
  9. java B2B2C Springboot仿淘宝电子商城系统(六)springboot整合mybatis
  10. 学习用 Keras 搭建 CNN RNN 等常用神经网络
  11. 单例设计模式全局缓存accessToken
  12. 极客大学产品经理训练营:产品规划与功能规划 第15课总结
  13. 国产数据库激荡 40 年
  14. 笔记本cpu降压 XTU
  15. 只更新服务器代码有变更的文件,签出TFS 2010变更集中的文件(check out files in TFS 2010 changeset)...
  16. java 计算同比增长率
  17. 数字转换为汉语中人民币的大写
  18. 2019个人年度总结:平凡的我,仍然在平淡的生活里打拼,寻找未来的曙光。
  19. 岁月划过生命线(从阿里到微店)
  20. python第一章测试题_python 第一章 初探Python课后练习题

热门文章

  1. Kryo工具类 序列化和反序列化操作工具类KryoUtils
  2. 介绍计算机方队,方阵
  3. html表格如何创建搜索,6.如何创建HTML表格
  4. v-model 自带绑定的number 、lazy 、debounce属性
  5. Windows11常用快捷键总结(包含触控板使用技巧)
  6. 【转】韩寒:跳出棋盘的棋子
  7. 高速窄脉冲峰值保持设计
  8. 哈希表——线性探测法、链地址法、查找成功、查找不成功的平均长度
  9. win7台式计算机怎么连热点,怎么用台式电脑开热点,电脑怎么开热点win7
  10. 狂神说Linux03:Vim使用及账号用户管理