1、光学设计软件,ZEMAX,介绍,中国兵工学会 讯技科技股份有限公司 北京理工大学光电工程系,10月16日,主要内容,ZEMAX光学软件介绍 光学设计流程 光学系统的建模1.一般系统2.多重结构3.含非顺序元件的光学系统 玻璃库的构建 公差分析 ZEMAX编程,ZEMAX的主要功能,光学系统模型的构建与仿真1.成像光学2.照明光学3.其它(如:物理光学元件,光耦合元件)构件方式包括Sequential模式和Non-sequential模式 光学系统的性能分析与优化1.像质分析/照明特性分析2.优化功能OptimizationGlobal SearchHammer optimization,ZEM
2、AX的主要功能,公差分析1.样板匹配2.公差分析 数据输出1.系统结构参数及性能输出2.零件图输出 用户扩展功能1.ZPL宏语言编程(Zemax Programming Language)2.C+语言功能扩展(Zemax Extension),ZEMAX操作界面快速扫描,顺序/非顺序模式选择FileSequential or mixed sequential/non-sequential mode 编辑框(editors)光学系统结构编辑框 Lens data editor优化函数编辑框 Merit Function editor多重结构编辑框 Multi-configuration edit
3、or公差数据编辑框 Tolerance data editor附加数据编辑框 Extra data editor 系统性能参数输入框(system)综合数据输入 General视场数据输入 Field波长数据输入 Wave length,数据输入类,分析类功能(Analysis) 工具类功能(Tools) 输出类(Report) 编程功能ZPL宏语言(Marcos)C语言扩展(Extension),ZEMAX操作界面快速扫描,光学设计流程,初始结构计算或选择,光学设计建模一般光学系统设计 1.系统要求,焦距:f=9mm 系统参数:F#: 4视场:2=40度 要求所有视场在67.5lp/mm处M
4、TF0.3,选择初始结构,光学设计手册(李士贤,郑乐年编)1990版P311: 焦距:f=74.98mmF#: 3.5视场:2=56度,系统性能参数输入孔径值,System-General,系统性能参数输入孔径值,系统性能参数输入玻璃库,初始结构输入,初始结构性能,焦距缩放:74.989,ToolsScale lens,缩放后的系统,缩放后的系统,优化设置优化操作数,Editors-Merit Function,设置优化操作数,Default Merit Function 编辑框,优化函数,参考,在默认的优化操作数基础上添加用户操作数,用户优化操作数,设置优化变量曲率半径,Variable:变
5、量,Pick up:拾取,1 2 3 4,R3=-R2,R4=R1,设置优化变量中心厚度,设置优化变量中心厚度,Radial Height=0 表示半直径处,优化,ToolsOptimization,球差色差:Analysis-Misscellaneous-Longtitude aberration 场曲畸变: Analysis-Misscellaneous-Field Curv/Dist 垂轴色差: Analysis-Misscellaneous-Lateral Color 垂轴像差: Analysis-Fans-Ray aberration,优化结果,样板匹配,根据加工方提供的样板数据将设
6、计的半径数值用一系列样板半径值代替,以利于降低生产成本 ToolsTest Plate Fitting,Test Plate Fitting 运行结果,公差分析,Editors Tolerance Data ToolsDefault Tolerances,ToolsToleracing,Sensitivity:正向分析 Inverse Limite: 反向分析(极限偏差) Inverse Increment: 反向分析(增量),默认公差设置结果,Sensitivity 分析结果,当前值,当前值与名义值的差值,Sensitivity 分析结果,影响最大10个因素,Monta Carol仿真结果,
7、反向灵敏度分析,设计示例:多重结构 干涉系统仿真,多重结构多用于对含有运动元件的系统或多光路系统进行仿真分析(如:变焦系统,扫描系统,分光系统以及干涉仪等) EditorMulti-Configuration 多重结构操作数:EditorMulti-Configuration Help 菜单,干涉系统仿真设计,导入透镜系统,系统翻转:ToolsReverse Element,添加45度倾斜平面镜 ToolsAdd Fold Mirror,添加并完成第一光路,添加第二光路多重结构,EditorMulti-Configuration,添加第二重结构和操作数,Non-Sequential设计示例 方
8、棒透镜的均匀照明,Non-Sequential模式中光线的追迹模式更接近于真实情况。 光线可以通过某一元件多次,也可以一次都不通过。 FileNon-Sequential Mode,Non-sequential 与sequential的区别示例,sequential,Non-sequential,添加光源、方棒、聚光镜和探测器,方棒系统,建立自己的玻璃库 (ToolsGlass Catalogs),Save Glass Catalog As Insert Glass Fit Index Data,添加结果,ZEMAX编程,应用ZEMAX这一光学平台,结合用户自己的需要,添加自己特定的功能。 Z
9、EMAX编程包含ZEMAX Programming Language (ZPL宏语言编程)和 ZEMAX Extension (ZEMAX C+语言扩展编程)两种,ZPL宏语言编程,编辑工具:所有的文本编辑工具,如:记事本等。 语法:与Basic语法类似 MacrosEdit/Run ZPL Macros,全口径球差优化操作数:ZPL03.zpl,PZ1,L1,l,ZPL宏语言在优化中的应用举例1 ZPL03.ZPL,TYPE: ZPLM MARC#: 3 ZPL03与SPHA的区别:SPHA表示波相差中球差系数W040的大小;而ZPL03则表示全口径球差的实际大小。,SPHA的结果,ZPL0
10、3.ZPL的结果,在许多光学系统(如:变焦系统)优化时,往往要求优化过程中光组之间的主面间距保持不变 两光组之间的主面间距与光组之间的空气间隔是不一样的 ZEMAX可以计算主面位置,但是不能在优化中限定,ZPL宏语言在优化中的应用举例2 主面间距限定操作数,光学系统主面位置的计算,折射面物像关系矩阵过渡矩阵,光学技术手册上 (王之江 主编)1987P78,光学系统矩阵主面位置,光学系统主面位置的计算,ZPL07.ZLP 主面位置计算操作数,优化对话框中的ZPL07.ZPL,ZEMAX EXTENSION编程 基于C+语言的ZEMAX编程,ZEMAX具有强大的光学数据处理能力 C+语言则是功能强
11、大灵活的高级程序语言 ZEMAX与C+的联合编程使我们可以在强大的光学平台(ZEMAX)的基础上实现我们在科研工作上的特殊需要。,ZEMAX与C+语言之间的通信方式,ZCLINT.C包括了ZEMAX与C+程序之间通信所需的一般接口函数,起着桥梁作用。,ZEMAX与C+接口函数,语法,/获取多重结构数以及多重结构操作数的数目 sprintf(szBuffer,“GetMulticon,%i,%i“,1,1); 将用户命令写入存储器,准备发送 PostRequestMessage(szBuffer,szBuffer); 发送第一个存储器中的命令,并将返回结果存到第二个存储器 num_config=
12、atoi(GetString(szBuffer,1,szSub); GetString函数提取结构数,并通过atoi函数将其转化为整型数 num_opr =atoi(GetString(szBuffer,2,szSub);,用户定义的存储器,获取多重结构参数的命令,利用ZEMAX EXTENSION产生文本输出框,FILE *out; /定义输出文本框指针 out = fopen(szFile, “wt”); /打开输出文本框 fputs(“Write this linen”, out); /向输出文本框中写入数据 fclose(out); /关闭输出文本框 sprintf(szBuffer,
13、“MakeTextWindow,“%s“,“%s“,“%s“,out, szModuleName, szAppName);PostRequestMessage(szBuffer,szBuffer); /向zemax发送生成文本框命令,功能扩展程序名,对话框名,绘图命令 BOX x1 y1 x2 y2 绘制矩形 FRAME 生成标题框 LINE x1 y1 x2 y2 画直线 NOFRAME产生框架,不含标题框 PENSTYLE ncolor nstyle nwidth 设置画笔 TEXT “string” x y angle width height 按一定格式输出文本 TITLE “stri
14、ng” 设置标题 所有的绘图命令都应当写进一个临时绘图文件中,格式: FILE *output; /定义临时绘图文件指针 sprintf(szBuffer,“LINE %.4f %.4f %.4f %.4fn“, oldx, oldy, x, y); /将绘图命令写入寄存器fputs(szBuffer,output); /将绘图命令从寄存器转到临时文件中 fclose(output); /关闭临时文件,利用ZEMAX EXTENSION产生图形输出框,绘图指令的发送,发送生成图形输出框指令指令内容:MakeGraphicWindow,绘图临时文件地址,zemax extension地址,图形窗
15、口名称,类型标号示例: sprintf(szBuffer,“MakeGraphicWindow,“%s“,“%s“,“%s“,1“, szOutputFile, szModuleName, szAppName); PostRequestMessage(szBuffer, szBuffer);,ZEMAX EXTENSION示例 变焦系统凸轮曲线的绘制,绘制变焦曲线流程图,开始,获取多重结构中 运动组的坐标,获取对应结构 的焦距值,结构数,采用高斯消去法,采用最小二乘方法,画图,2结构数5,结构数5,使用3次或4次曲线拟合,程序执行结果,可以根据用户需求选择玻璃库以及玻璃变化的多边形范围,从而使得玻璃在既定范围内选取,ZEMAX EXTENSION示例2 玻璃多边形优化的输入界面Setboundry,ZEMAX中的玻璃约束操作数:MXIN, MNIXMNAB, MNAB,谢谢,