解决方案solution
当前位置:首页 > 解决方案 > 技术文章

如何在OpticStudio序列模式下进行公差分析?

发表时间:2017-12-13 11:57:18  阅读次数:3025

公差分析是面向制造和装配的产品设计中非常重要的一个环节。本文简单地介绍了公差分析的基本流程,目的是为了让初学者对公差分析有一定的了解。

本文案例

设计一款批量生产的激光扩束器。

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

初始结构中Ran Fan图坐标轴的最大刻度为0.01波长, 因此PTV光程差(peak-to-valleyOPD)少于1/200RMS波前差为(可通过建立默认波前评价函数得到)2.15*10-3 波长。本例的孔径类型(system aperture)设置为高斯切趾(Gaussian apodization),入瞳直径为5mm,切趾系数为2。因此光瞳边缘的强度相对于峰值大约为1/e4=1.8%

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

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

制造公差

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

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

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

图中“SurfaceTolerance”中主要包含透镜的表面误差,例如半径(Radius)、表面不规则度(Irregularity)等等。

ElementTolerance”则包含了透镜在系统中的位移和倾斜公差。由所给的预设公差分析设定,可以看出:

曲率半径:传统的公差测试方法是利用He-Ne激光器照射到double-pass系统中观察其干涉条纹。本例中,我们使用条纹数来评估半径,并且允许待测表面和原器件之间有一个条纹的公差。因为光源为He-Ne激光,因此我们将波长设定为0.6328。注意这并不是系统实际工作时的波长而是测试时所用的波长(实际工作为氩离子激光波长为0.5415微米)。

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

表面偏移以及倾斜:对于非球面表面来说离心以及倾斜是两个不同的概念,例如抛物面镜必须分别描述离心和倾斜公差,因为抛物面只有一个旋转对称轴。但是对于球面来说它有无限个旋转对称轴,因此离心和倾斜代表同一概念。在镜头制造时,一种常见的测量就是测量镜片的楔形公差(Wedge)。楔形公差有两种测量方法:将透镜真空吸附固定(1)将激光照射到镜片中心,旋转透镜观察远方屏幕上光点的运动;(2)旋转透镜使用针盘量规(Dial Gauge)测量边缘厚度的变化。接着微调透镜位置,尽量缩小上述测试中楔形值。

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

表面不规则度:可以定义为球差和像散的总和,也可以使用Zernike系数来定义(这主要是测量仪器为干涉仪时才这么定义)。本例中,我们使用第一种方法,并且设定表面不规则度为1/5

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

折射率公差:描述了实际的折射率与目标设定值之间的差异。在本文范例中只用到了一个波长,所以我们不需要提供阿贝数(Abbe Number)公差,只需要简单地分析折射率公差就可以了。Zemax OpticStudio也能够建立后焦距的补偿器。因为本例中系统是无焦的,所以不需要这个补偿要将补偿器的选项取消。

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

机械组装和补偿器

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

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

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

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

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

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

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

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

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

测试公差分析设定

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

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

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

从上图中,可以看到ZemaxOpticStudio的分析过程。

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

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

执行公差分析

重新打开公差分析前的初始结构,打开OPD图,将坐标轴刻度最大值调节到0.1波长。

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

对图中各选项解释如下:

Set-Up选项卡

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

Sensitivity模式会读取每一个公差操作数的最大和最小值,并计算评价标准值会有多大的改变,最后列表整理。公差分析评价标准的定义在“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

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

Monte-Carlo 选项卡

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

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

Display选项卡

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

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

公差分析结果

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

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

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

对于这个系统,由下图可以看出,RSS计算预测了系统的表现应该是0.0597波长,我们目标为0.05Monte-Carlo的预测也大致相符。虽然只有20个测试范本,结果相对比较粗糙。从下表可以看出,RMS波前差低于0.05的镜头的良品率略少于80%

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

反灵敏度分析

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

Set-Up中设定InverseSensitivity

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

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

其他维持原本设定,并重新执行公差分析。

可以看到Root SumSquareMonte-Carlo中的结果变得非常漂亮:

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

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

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

总结

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

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

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

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

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

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

6)执行灵敏度分析。

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

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

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

请记住,并不是所有设计的公差分析结果都可以符合成本利益,很可能为了达到你的设计目标,你需要分析许多不同的设计。

本文章来源:ZEMAX,感谢ZEMAX原厂分享!

学习ZEMAX光学设计软件


关注南京光研