ZEMAX | 如何进行序列模式公差分析

ZEMAX | 如何进行序列模式公差分析

本文以单个透镜为例介绍了如何进行公差分析。适合初学者阅读。

简介

公差分析是面向制造和装配的产品设计中非常重要的一个环节。本文简单地介绍了公差分析的基本流程,目的是为了让初学者对公差分析有一定的了解。知识库中也有针对特殊应用的公差分析的文章。联系我们下载文章中的附件。

系统设置

本设计的目的是:设计一款批量生产的激光扩束器。光源为:氩离子激光,1/e2 时光束宽度为:2.5mm。目标:光束出射时 1/e2 的光束宽度为原来的3倍,波前差必须小于两倍的光束全宽不超过1/20 RMS(即:整个光束直接控制在 5mm 以内)。

在附件 “Beam Expander.zmx” 中,打开 Layout 图。本例由两个平凸透镜构成:

在观察系统 OPD 图,系统的设计性能远远超过了产品的要求。

由图可知:坐标轴的更大刻度为 0.01 waves, PTV 光程差(peak-to-valley OPD)少于1/200。RMS 波前差为(可通过建立预设的波前评价函数得到)2.15*10-3 waves。请注意:本例中系统的孔径类型(system aperture)中设置了高斯切趾(Gaussian apodization),入瞳直径为 5mm,切趾系数为2。因此光瞳边缘的强度相对于峰值大约为1/e4=1.8%。

这就体现了正确设置系统参数的重要性了。1/e2 直径为 5 mm 的激光照射的系统的结果(RMS OPD:~2*10-3waves)与均匀光照射的结果(RMS OPD :3*10-3waves)肯定是不同的。因为当光源为高斯光时,球差在光瞳边缘的效应相比于均匀光入射小很多。

接下来,我们来考虑制造误差对系统的影响。

制造公差

公差分析目的是考虑制造误差对系统的影响,因此设计时必须考虑实际的制造情况。为了能够更好地分析公差,模拟出符合实际的情况,首先我们应该了解系统所用镜片在批量生产时的制造流程和测试方法。

Zemax OpticStudio 能够模拟出各种各样的制造和测试方式。本文范例中,我们假设系统透镜是使用传统的手动抛光制造。

制造公差可以在公差编辑器(Tolerance > Tolerance Data Editor)中设定。公差向导(Tolerance > Tolerance Wizard)可以帮助使用者加入一组常用的预设公差,必要时可手动编辑修订。公差向导的设定如下:

图中表面公差(Surface Tolerance)中主要包括镜片的表面误差,例如半径(Radius)、表面不规则度(Irregularity)等。元件公差(Element Tolerance)则包含了透镜在系统中的位移和倾斜公差。由所给的预设公差设定分析,可以看出:

曲率半径: 传统的公差测试方法通过使用测试板并利用 He-Ne 激光器照射到双光路系统中观察其干涉环。本例中,我们使用条纹数来评估半径,并且允许待测表面和原器件之间有1个条纹的公差。

因为光源为 He-Ne 激光,因此我们将波长设定为0.6328。注意这并不是系统实际工作时的波长而是测试时所用的波长(实际工作为氩离子激光波长为0.5415微米)。

中心厚度:预设的公差为 0.2mm,这里我们仍需考虑透镜的安装误差,下文会详细讨论这一部分。

表面偏移以及倾斜: 这里我们需要注意,对于非球面表面来说离心和倾斜是两个不同的概念,例如抛物面镜必须分别描述离心和倾斜公差,因为抛物面只有一个旋转对称轴。但是对于球面来说它有无限个旋转对称轴,因此离心和倾斜代表同一概念。

在镜头制造时,一种常见的测量就是测量镜片的楔形公差(Wedge)。楔形公差有两种测量方法:将透镜真空吸附固定(1)将激光照射到镜片中心,旋转透镜观察远方屏幕上光点的运动;(2)旋转透镜使用针盘量规(Dial Gauge)测量边缘厚度的变化。接着微调透镜位置,尽量缩小上述测试中楔形值。

本例中,我们假设制造商使用边缘厚度变化作为测试方法。我们在 X、Y 两个方向输入0.2mm的更大倾斜,因此更大的倾斜半径为 sqrt(0.22+0.22)=0.28mm。

表面不规则度:可以定义为球差和像散的总和(在样板测试的干涉图样中通常显示为形似“眼睛”的图样),也可以使用 Zernike 系数来定义(主要是测量仪器为干涉仪时才这么定义)。本例中,我们使用第一种方法,并且设定表面不规则度为1/5。

元件公差: 主要测量系统的“机械轴”对元件的偏差程度。

折射率公差: 描述了实际的折射率与目标设定值之间的差异。在本范例中只用到了一个波长,所以我们不需要提供阿贝数(Abbe Number)公差,只需要简单地分析折射率公差就可以了。

Zemax OpticStudio 也能够建立后焦距的补偿器。因为本例中系统是无焦的,所以不需要这个补偿,要将补偿器的选项取消。

最后点击 OK 则完成一组默认公差的建立。

在下一节中,我们将讨论机械安装与补偿器。

机械组装和补偿器

本例中,系统是由两个平凸透镜构成,因此我们可以假设透镜表面中平的那一面用来组装对位,也就是这一表面会靠在组装结构上,同时,假设两透镜之间的距离200mm可以在组装以及使用时调整,这样该激光扩束器就可以用在不同的波长上。

观察表面2和表面3构成的透镜,由于表面3是平面,也就是说表面3会靠在机械结构上,所以可以使用 TIRX 和 TIRY 来定义表面2相对于表面3的楔形公差。同时,我们不应该指定表面3的 TIRX 和 TIRY,这些可以删除掉。

类似地,对于表面4和表面5构成的透镜,表面4靠在机械结构上。因此表面5的楔形公差是相对于表面4的,所以应该删除表面4的 TIRX 和 TIRY。

“厚度”定义了两元件之间Z方向的位移量,设置一个表面的厚度公差不仅仅会影响到所设置的表面,也会影响到系统的其他表面。我们需要了解组装过程是如何影响厚度公差的。

当第一个透镜的背面承靠在机械结构上,公差分析增加厚度意味着透镜会“往回增长”,并且光学系统的长度会增加。

TTHI(厚度公差)允许我们指定一个“调节面”来修正厚度变化。例如,如果透镜的前表面被承靠在机械结构上,并且它的厚度在公差分析时额外增加了,这时透镜将会往200mm的空气间隔方向上稍微突出一点,因此实际的空气间隔会小于200mm。Zemax OpticStudio 可以通过 “Adjust” 参数实现这一功能。

默认公差是假设所有的透镜厚度都会被下一个空气界面所吸收,即系统假设这个透镜的承靠面都是前表面。这个调节参数是可开可闭的,如果要关闭它只要把 “Adjust” 参数和 “Surf” 设置一样既可,例如:TTHI 2 2。本文范例中,玻璃的厚度并不会被其他厚度所补偿,因此我们需要取消这一范例中的补偿设定。

此外,表面1和表面5的厚度其实不重要,他们只是表示光线的进出而已,因此对应的公差操作数也可以删除。

因为表面3的厚度(两透镜之间的200mm空气间隔)可以在组装和实际使用中调节,所以不应该设定为公差分析中的一部分,表面3的 TTHI 设定也应该删除。同时,表面3的厚度将会被设定为补偿器,用来调节波前差的最小化,设置方法是在 Tolerance Data Editor 中输入:COMP 3 0 -0.2 +0.2,代表定义了一个厚度补偿器,范围是-0.2~+0.2mm。

该文件被保存为附件中的 “Beam Expander Ready for Tolerancing.zmx” 。

测试公差分析设定

在公差分析的过程中,人们往往会忽略检查公差分析设定的正确性。这很重要,因此我们建立一些 Monte-Carlo 分析,并了解系统做了些什么事情。

打开 “Tolerance > Tolerancing”,先点击 “Reset” 恢复所有的预设设定,然后再按照下面步骤进行设定:

这些设定表示 Zemax OpticStudio 只会建立 Monte-Carlo 分析档案,文件名为 “MC_Txxxx”,其中 xxxx 是数字。点击 OK 执行上面步骤,并打开其中一个文件,你会看到如下设定(实际数字可能会有所不同)。注意在执行公差分析时会有如下警告信息: “Solves should be removed prior to tolerancing. Semi-diameter should be fixed” , 在本例中可以不予考虑。

从上图中,可以看到 Zemax OpticStudio 的分析过程。例如 “Element Tolerances” ( TE**操作数)被设置为一些 Coordinate Break ,从而使元件倾斜或者离心。原本设定中是 Standard 的表面现在被设置为了 Irregular 的表面形态,因此可以考虑球差或者像散。同样,透镜参数例如厚度、半径、玻璃材料等现在都不是原始值,而是加入了一些扰动来模拟公差。注意:两个透镜之间的厚度被设定为变量,并且评价函数被定义为:

请仔细查看 Monte Carlo 文档,以确保你了解并认可 Zemax OpticStudio 为公差分析所作的改变。

设置 (Set-Up) 选项卡

重新打开公差分析前原始的 Beam Expander 文件,打开 OPD 图,将坐标轴刻度更大值调节到 0.1waves。

我们一会用这个图和 Monte-Carlo 结果比较。接着,再次打开公差分析设定窗口,点击 “Reset” ,取消之前的改变并恢复预设值。然后按照如下步骤进行公差分析。Set-Up 选项卡的内容应该如下:

对于 “Mode” 中各项的解说如下:

Sensitivity模式会读取每一个公差操作数的更大和最小值,并计算评价标准(Criterion) 的值会有多大的改变,最后列表整理。公差分析评价标准的定义在 “Criterion” 区域中设定,下一章 “Criterion 区域”会详细介绍。

Inverse Limit 模式下,使用者可以在 “Criterion” 区域中指定一个评价标准极限。然后系统会计算每一个公差操作数偏离多少时会得到这个评价标准的极限值。Inverse 表示逆向,它会改变公差操作数的更大最小值。

Inverse Increment 模式与 Inverse Limit 接近,不同的是 Inverse Increment 指定的是相对于原始设计评价标准所允许的变化量。

Skip Sensitivity 模式将会略过所有的敏感度分析,直接开始 Monte Carlo 分析。

我们将不会讨论这个设定框中其他的设定,请在 Help 文件中查找具体的设定细节。本例中选择 “Sensitivity” 模式。

评价 (Criterion) 选项卡

这个选项卡主要是设定在公差分析过程中要应用的评价标准。这边的设定通常与评价函数有关,但不完全是评价函数。

公差分析的评价标准通常是纯光学的数值(优化函数则还会包含一些边界条件)。为了方便,Zemax OpticStudio 提供了一些最常用的公差评价标准,使用者可以直接在下拉菜单中选择,这些选项包含:

· 点列半径 Spot radius

· 波前差 Wavefront error

· MTF

· 瞄准误差 Boresight error

· 角空间半径 Angular radius

不论选择哪一个,他们在后台都通过评价函数来实现,如果有需要也可以建立自己的评价函数,设定自己的公差评价标准。

在本文中,我们的设定如下:

设计目标中要求系统的波前差不超过1/20,即 0.05waves 。换句话说,我们需要使用 RMS 波前差作为公差的评价标准,我们使用 DLS 优化器来优化透镜的间隔。Cycles 选择3,因为在实际的微调过程中,工人们并不会耗时耗力的去完成它。本文中, 3个循环是足够的。

蒙特卡罗 (Monte Carlo) 选项卡

不像 Sensitivity 或者 Inverse sensitivity 分析,Monte-Carlo 分析会让所有的扰动同时生效。Monte-Carlo 的每进行一次循环计算,所有被设定为公差的参数都会在设定范围内根据指定的统计模型随机选取。默认中,所有的公差操作数都使用一样的正态分布,其宽度为4个标准差,两端分别为公差操作数的更大和最小值。默认分布模型可以使用 STAT 指令改变,这部分超出了这篇文章的讨论范围。本文中,设定 Monte-Carlo 选项卡如下:

对话框中有 “Overlay MC Graphics” 选项,如果勾选则系统每次 Monte Carlo 会自动更新绘图窗口,并把计算结果叠加上去。这是一个很好的视觉化功能,可以协助判断公差分析能否达到令人满意的结果。

显示 (Display) 选项卡

在 Display 选项卡中的设定并不会影响公差分析,只是定义公差分析的报告中的数据量。

到此设定结束,点击 OK ,执行公差分析。

首次公差运行

因为我们之前设定了重叠 Monte-Carlo 分析图,并且在软件中我们打开了 OPD 图,因此可以看到 OPD 图中看到20个 Monte-Carlo 循环计算的结果:看起来距离我们的目标0.05的 RMS 波长还很远。

在敏感度分析 (Sensitivity Analysis) 的过程中,Zemax OpticStudio 首先计算原始设计系统 (nominal system) 的公差标准,读取第一个公差操作数,将其调整到最小值,调整补偿器(优化),返回公差评价标准值。然后再重复操作,但这次是将公差操作数调整到更大值。最后所有公差都会执行这一步骤。执行结果如下:

注意原始设计 (nominal) 的公差评价标准为0.0022即1/400。我们要求在批量生产时有1/20或者 0.05waves,而系统中一部分公差本身就超过了这一标准,例如增加了补偿之后,单单第二片透镜的折射率公差就使得波前差降到了 0.058 waves 。在所有公差单独计算后,Zemax OpticStudio 会计算各种不同的统计资料,其中较重要的就是 “Estimated Change” 以及 “Estimated Performance” (本文中为 Estimated RMS Wavefront )。Zemax OpticStudio 使用 RSS (Root Sum Square) 的计算方法计算 Estimated Change。对于每一个公差操作数,相对于原始设计的评价标准变量的计算方法是更大与最小公差的评价标准的改变各自平方后再取平均值。更大与最小取平均是因为它们不会同时发生,如果相加会导致过分悲观的预测。至此,我们计算出了一个最终成品值的预测。对于这个系统,RSS 计算预测了系统的表现应该是 0.0597waves,我们目标为0.05。Monte-Carlo 的预测也大致相符。

虽然只有20个测试范本,结果相对比较粗糙。从下表可以看出,RMS 波前差低于0.05的镜头的良品率略少于80%。

很明显,如果需要提高良品率,需要再收紧公差。我们可以手动调节公差编辑器,然后再执行一次公差分析,我们也可以利用反敏感度分析 (Inverse Sensitivity Tolerancing) 自动完成。

逆灵敏度分析

在敏感度分析模式 (Sensitivity mode) 中,Zemax OpticStudio读取公差操作数,并计算系统性能降低程度。在逆向敏感度分析模式 (Inverse Sensitivity mode) 中,Zemax OpticStudio 则是被给予一个允许的性能降低范围,并且系统必须找到一个可以达到这个性能目标的公差的更大最小值。在 Set-Up 中设定如下:

在 Criterion 中,注意看 “Limit” 栏可以输入参数了,点击 check,获得原始设计 (nominal system) 的公差评价标准。

然后输入我们的目标值,我们假设为0.0075,因此每一个单独的公差操作数都不能让评价函数标准低于1/130。

其他维持原本设定,并重新执行公差分析。可以看到 Root Sum Square 的结果变得非常漂亮:

在 Monte-Carlo 中也可以看到类似结果

但是,其实20个 Monte-Carlo 循环其实是不够的。粗略的来说如果有 N 个公差操作数,至少需要 N2 个 Monte-Carlo 循环才符合适当的取样分析。本例中我们有24个公差操作数,至少要242=576个 Monte-Carlo 循环,我们设定 1000 Monte-Carlo 取样得到如下结果:

重新打开公差编辑器,可以发现系统自动修改了一些更大最小值,以符合逆向敏感度分析,这些改变都在制造可以要求的范围内。

注意:执行 1000 Monte-Carlo 分析,作者的8核电脑中只用了26秒就可以完成。Zemax OpticStudio 并没有使用任何一阶或者其他近似方法来猜测扰动对波前的公差分析的效果。每一个评价函数都在完整精度的透镜波前差计算中完成的。

总结

公差分析是一个复杂的流程,这篇文章介绍了公差分析的整个流程,内容包括:

1、优化你的设计直到超越目标规格,且要超过一定适当的量。

2、建立一组默认公差操作数。Zemax OpticStudio 提供超过一种方法来模拟同一种公差,你必须选择最能代表实际制造,测试以及组装时使用的方法。

3、编辑公差操作数以考虑不同的组装方式,并加入可能的补偿器。

4、定义公差评价标准,此标准须符合实际工厂的测试方式。

5、建立一些 Monte-Carlo 文件并确认公差操作数有依照你预想的方式工作。

6、执行敏感度分析。

7、手动紧缩一些棘手的公差,或者使用逆向敏感度分析 Inverse Sensitivity,让 Zemax OpticStudio 自动计算。

8、一旦确定你的公差都没有问题之后,设定执行 N2 个 Monte-Carlo 分析,其中 N 为公差操作数的数量。

9、检查逆向敏感度分析产生的公差操作数参数值,确保他们在合理的范围内。

请记住,并不是所有设计的公差分析结果都可以符合成本利益,很可能为了达到你的设计目标,你需要分析许多不同的设计。你可以在帮助手册中找到更多关于公差分析功能的参数说明。

相关软件
ZEMAX是一套综合性的光学设计软件。它提供先进的、且符合工业标准的分析、优化、公差分析功能,能够快速准确的完成光学成像及照明设计。
相关阅读