Ansys Zemax | 用ZPL与公差脚本分析多个公差标准
附件下载
联系工作人员获取附件
前言
在Zemax OpticStudio中,默认的蒙特卡罗公差分析功能中,系统仅会计算一个标准,其结果常常是多波长、多视场的方均根结果。 如果用户需求是单一视场、单一波长的话,可以利用内部设定轻易完成。但是如果有很多个波长或视场要分开看时时,每一种条件都跑一次公差分析的话太过耗时。这时就会需要用公差脚本来辅助计算各种不同的标准。而产生出来的结果表格,要用Excel或是MATLAB等软件分析,或用ZPL来获取数据并绘图。本文章将会简述这个过程,并提供范例程序。
设定范例
我们打开Zemax OpticStudio中内置的Cooke 40 degree field范例档案来说明。
首先移除所有变量以及求解。
 
 
然后把所有的孔径都固定。
 
将公差设定如下
 
接下来打开评价函数编辑器设定我们要分析的标准。
 
以上每一行的评价函数就是等一下我们会分析的标准,所以这里共有16个标准。
我们的配置如下:
波长 1与波长 2
波长 1与波长 2
频率 30 lp/mm与频率 50 lp/mm
因此一共有222*2=16个标准
撰写公差脚本
接着我们需要写一个简单的公差脚本以供等一下公差分析开始时使用。
我们点选公差选项卡 > 公差脚本 > 新建...
 
并在出现的窗口中输入下面内容后存档。
 
REPORT指令就是稍后要在报表上显示此数值的意思。
双引号中的字符串不要有空格,这是因为后面的ZPL会以空个作为单字分隔符号,有空格的话会扰乱取值。
执行公差分析
现在执行公差选项卡 > 公差分析并设置如下
 
 
我们跳过灵敏度的步骤。
 
脚本字段要选择前一个段落中我们存档的公差脚本。
 
我们设置500个蒙特卡罗运行数
 
确认完毕后即按 “OK” 执行公差分析
如下图一样,如果使用四核心电脑,就可以看到电脑一次会计算4个蒙特卡罗系统。
 
执行完毕后可以看到系统产生的文字报告如下图:
 
总共有500个蒙特卡罗系统,每个系统又都回报16个标准。
使用ZPL抓取数字并绘图
文章提供的ZPL范例主要是利用GETT这个指令搭配循环抓取数据,依据不同标准分类,然后统计,最后通过PLOT指令来产生绘图图表。
我们点击一下编程选项卡 > 新建宏,并输入文章提供的ZPL代码,然后存档。
 
然后在编程选项卡的宏列表中打开刚刚保存的宏文件。
执行后,系统会依次询问:
- 公差分析结果文字的窗口编号
- 蒙特卡罗运行次数
- 在公差脚本中总共使用了多少个 REPORT 指令
 
 
 
系统会把资料抓取结果以及统计数据都列出来,以供检查是否有问题。
最后把数据绘制成新窗口。
 
这些曲线的颜色对应的标准编号可以在设置选项卡 > OpticStudio选项 > 颜色中找到。
 
其他范例
下图显示的是 Double Gauss 28° feild的公差分析结果,均为MTF(30 lp/mm)。共包含 10 个视场,并执行了 5000 组蒙特卡罗模拟。可以看到曲线较为平滑。
本 ZPL 示例中,默认采用 √n(n 为蒙特卡罗数量)个采样点来绘制曲线。
 
下图是不同视场时MTF差异大的系统分析结果。
 
总结
Zemax OpticStudio通过公差脚本以及 ZPL,可以完成非常复杂的公差分析工作,本示例仅展示了其中极小的一部分功能。
例如,公差脚本可用于模拟产品在组装过程中可能出现的对位行为,从而精确计算该对位过程对产品良率提升的影响。
而ZPL采用类似 BASIC 的简易语法,使没有编程经验的用户也能快速上手。
此外,OpticStudio 在 2015 年推出的 ZOS-API 是更为强大的程序控制接口,用户可以使用 C++、C#、Python、MATLAB 等语言来控制 OpticStudio,以实现更复杂的设计与分析任务。

 
                

 
             
            