光学镜片加工过程中不可避免会带有一些面型的误差——实际的和设计值总有一点区别。如何分析这些面型不规则度误差对光学性能带来的影响,我们来整理一些不同的情况。注意,本文只涉及面型不规则度公差,而不涉及其他的偏心旋转定心等公差因素。 |"?0H#
7"wr8
首先我们把面型不规则都分为空间频率的中低频和高频,对于高频面型误差,不规则的尺度明显小于波长(往往是表面划伤带来的),这种情况下实在没有什么太好的方式来精细地模拟光线行为。原则上这种尺度下几何光学已经不适用,而物理光学的计算量不可接受。我们可以把高频面型误差带来的行为统一用表面散射来表征,或者有时候直接认为光线丢失。至于用哪种散射模型,散射程度如何,则可以通过实测来搞定。 BV"7Wp;
(S* T{OgO
为了规范说明什么是中低频或者高频面型不规则度,我们得引入一个重要的概念PSD(Power Spectral Density,功率谱密度),它本质上是把面型数据进行傅里叶变换,并绘制出频域谱,有点像成像光学里的MTF,PSD是对面型上不同频率“强度分布”的描述。 ~[e;{45V
IQf:aX
回到中低频表面不规则度,这往往是由抛光工艺造成的,也是绝大多数应用场景下需要着重考虑的。我们先来看看知名光学设计软件Zemax是怎么处理的。 ComVY4,
^C^FxIA&
对于标准面(Standard),Zemax可以用TIRR公差操作数来增加表面不规则度。 T?{"T/
R}>xpU1
为了帮助理解后台原理,此处非常推荐的一个Zemax操作是,设定好上面这个面型公差后,运行蒙特卡洛公差分析,并且把蒙特卡洛文件保存下来。 XzgJ@
s"?Z jV)`
我们打开保存下来的蒙特卡洛文件,可以看到原来的Standard面变成了Irregular面,而这个Irregular面型上是可以指定一些球差和像散的。软件用人为增加球差和像散来表征表面不规则度。 iyAeR!`
v#{Sx>lO
显然这种做法有很大的局限性。只针对球面增加非常低频的,不够随机的误差,这是不够的。 w,> ceu/
2Kovvh y#
应用更广泛的是TEXI和TEZI操作数,它们都可以产生真正随机的表面不规则度,而且可以应用在非球面上。这两个操作数很像,我们可以重复上述保存蒙特卡洛文件的做法来观察TEXI和TEZI是如何起效的。前者把非球面变成Zernike Fringe Sag,后者变成Zernike Standard Sag。另外TEZI对Toroidal面型也适用。很重要的一个区别点在于,在公差数据编辑器里前者指定的是面型不规则度PV值,而后者是RMS值。由于Zemax官方更推荐TEZI,我们这里的说明仅针对TEZI。 QI'ul e
wZ6LiYiHl
这种方式造成的面型不规则度有足够的随机性,还能通过控制Zernike系数的最高最低阶来控制不规则度空间频率。显然,阶数越高,空间频率越大。 URdCV{@42
=<MSM\Rb
这里借着TEZI,我们对于业界常见的一种公差表达形式ISO10110 A(B/C)来进行一下说明。A(B/C)是一种生产上比较常见的对旋转对称(Rotational Symmetrical Irregularity, RSI)面型公差的表征方式。先来做一下名词解释: FM$XMD0=
Pp3<K649
- A:由于曲率半径公差导致的“光圈”(干涉条纹, Fringe)数目。这个很普通 WM$}1:O
Pky/fF7e
- B:面型不规则度PV值。可以用和TEZI类似的随机Zernike项来表征,但是需要保证符合PV要求。自行指定用到的Zernike最高、最低阶数,一般建议可以到37阶,即ρ^8阶 p;zV4uSv
UUJbF$@;
- C:旋转对称的(RSI)面型不规则度PV值。这部分可以用Zernike项里仅含常数、ρ^4、ρ^6、ρ^8、ρ^10等的项目来表征,同时也要保证符合PV要求。在Zernike项中RSI项,自行指定最高、最低阶数,一般建议可以到ρ^10阶 S\b[Bq
fmrd 7*MW
复杂的地方来了,B和C是耦合在一起的PV_C是PV_B的一部分。如果要用软件分析A(B/C)公差的话,得对随机选取PV_C的值,不超过PV_B,并且随机给选定的Zernike的RSI项随机赋值,对整体的PV缩放到PV_C。下一步给所有选取的Zernike项随机赋值,并对整体PV缩放到PV_B – PV_C的值。 YAQ]2<H
ZpvURp,I
这个流程任何商业光学软件都不会有自带的工具,建议通过Zemax强大的API接口自行开发。 cw|3W]
/ E}L%OvE
对于RSI的公差,有一种比较特殊的应用场景也值得单独说一说,即单点金刚石车削后留下的环状表面条纹。这种公差基本上是一些同心圆,且空间频率不变,维持在一个中频。在模拟上,我们可以在已有的面型上增加一个以cos函数变化的矢高波动。这个面型在新版Zemax里面已经自带有了。 0Am&:kX't
s.`:9nj
这种形态的表面公差不仅会影响成像质量,这也是摄影中焦外bokeh“洋葱圈”问题的根本来源。 g|ewc'y
35;|r
以上是针对球面非球面的面型公差,那么对于自由曲面要怎么办呢?Zemax软件是没有自带的工具的,不过做也是可以做的: 2kb<;Eh`G
}5
^2g!M
- 有解析式时,增加一个扰动项 y:u7*%"
,|6O}E&
比如Zernike Standard Sag面型的矢高公式后面可以增加一个产生随机数的扰动项,这样即可以模拟出各个位置的随机扰动,当然需要自己写个带随机项目的DLL。 EK`}?>'
E7X6Shng
- 无解析式时(也可以应用于有解析式的情形),格点化后扰动 w#mna b@
kqy d3Si>
这里的意思是,任何一个自由曲面一定都可以用格点矢高来表征,我们可以把每个格点上的矢高添加一个人为的扰动,比如±0.5%,靠近边缘处±1%,然后把扰动后的面型添加回Zemax做分析,甚至可以把扰动后的面型重新拟合回解析式。这个作业流程比较复杂,也没有现成工具,同样十分建议通过API来做。 Yci>'$tQ
l\g>@b
我们当然也可以把自由曲面的这两种公差分析方式移植到球面和非球面上。 (37dD!
7niZ`doBA
上面这些方法都是对各种表面面型进行直接的公差分析,但有的时候,没有机会直接分析面型,那么可以通过分析面型差异带来的等效相位改变来分析公差。我们可以拿一个Zernike相位面和需要做公差的表面贴合到一起,然后写个API或ZPL程序来扰动相位面上的系数,并且缩放到目标RMS或PV大小。当然相位面的起伏扰动也是可以转化为实际表面的矢高变化的。 uqy&PS
._'AJhU$0
在方法论上,处理面型公差无非两个办法:1)模拟出真实面型并让光线通过 2)不管真实面型是怎么回事直接模拟光线通过表面后的行为(散射、相位面)。