波像差理论入门:从波前到斯特列尔比
各位工程师朋友,欢迎来到第二章。上一章我们聊了斯特列尔比是什么——说白了就是实际光斑和理想光斑的峰值强度比。但光靠这个比值,你没法知道为什么光学系统出了问题。要找到根因,就得钻进波像差的世界里。
我个人习惯,做光学设计时先看波前图。就像医生看心电图一样,波前图能告诉你系统的“健康状态”。这一章,我们就从波前和波像差的基本概念讲起,一路走到斯特列尔比的计算公式。
波前与波像差的定义
先想一个问题:光是什么?在几何光学里,我们把它当光线。但在物理光学里,光其实是电磁波。波前,就是同一时刻振动相位相同的点连成的面。
理想情况下,从一个点光源发出的光,波前是个球面。经过完美透镜后,它应该变成另一个球面(或者平面)。但现实中没有完美透镜。实际波前和理想波前之间,就有了偏差——这个偏差就是波像差。
核心定义:
- 波前:等相位面。光传播过程中,相位相同的点构成的面。
- 理想波前:参考球面。以像点为中心,半径为像距的球面。
- 波像差:实际波前与理想波前之间的光程差(OPD),单位通常是波长(λ)。
我在项目中遇到过不少新手,上来就盯着点列图看。点列图当然重要,但它只反映了光线追迹的结果。波前图能告诉你更多——比如系统有没有对称性误差,是不是有加工装调引入的像散。嗯,这里要注意:波像差是标量场,它在出瞳面上每个点都有一个值。
Zernike多项式简介
波像差是个连续曲面,怎么描述它?最常用的工具就是Zernike多项式。
为什么选Zernike?三个原因:
- 正交性:在单位圆内,各项之间相互独立。你调整一项,不影响其他项。
- 与像差对应:每一项都对应一个经典的Seidel像差或更高级的像差。
- 旋转对称:Zernike多项式在圆域内是完备的,非常适合圆形光瞳。
Zernike多项式通常用Fringe序号或OSA标准序号。我个人习惯用Fringe序号,因为Zemax和Code V都默认这个标准。下面这张表列出了前几项对应的像差:
| Fringe序号 | Zernike多项式(归一化) | 对应像差名称 |
|---|---|---|
| Z1 | 1 | 平移(Piston) |
| Z2 | ρ·cosθ | X轴倾斜(Tilt X) |
| Z3 | ρ·sinθ | Y轴倾斜(Tilt Y) |
| Z4 | 2ρ²−1 | 离焦(Defocus) |
| Z5 | ρ²·cos2θ | 像散0°(Astigmatism 0°) |
| Z6 | ρ²·sin2θ | 像散45°(Astigmatism 45°) |
| Z7 | (3ρ³−2ρ)·cosθ | X轴彗差(Coma X) |
| Z8 | (3ρ³−2ρ)·sinθ | Y轴彗差(Coma Y) |
| Z9 | 6ρ⁴−6ρ²+1 | 球差(Spherical) |
实战小技巧:做公差分析时,我通常把Z2-Z9作为主要变量。Z1(Piston)不影响像质,可以忽略。Z2、Z3(倾斜)在装调时可以通过调整镜片补偿。真正影响斯特列尔比的,是Z4以后的项。
初级像差与斯特列尔比的关系
好了,现在我们知道波像差可以用Zernike多项式展开。但每种像差对斯特列尔比的影响有多大?
先看一个简单情况:只有离焦(Z4)。离焦的波像差是二次曲面。当离焦量达到0.25λ时,斯特列尔比会降到0.8左右。这就是著名的瑞利判据——波像差RMS小于λ/14时,系统接近衍射极限。
但注意,瑞利判据说的是RMS,不是PV值。我见过不少工程师只看PV值,结果PV做到λ/4了,RMS还很大,斯特列尔比照样低。为什么?因为PV只反映最大值和最小值的差,RMS反映的是整个波前的均方根。两个系统PV相同,RMS可能差好几倍。
不同像差对斯特列尔比的影响也不一样:
- 球差:中心对称,影响低频细节。小量球差时,斯特列尔比下降较慢。
- 彗差:非对称,导致光斑拖尾。对斯特列尔比的影响比球差更敏感。
- 像散:两个方向聚焦不同。在最佳焦面处,像散对斯特列尔比的影响介于球差和彗差之间。
避坑指南:我曾经优化一个投影物镜,球差和彗差都压得很低,但斯特列尔比就是上不去。查了半天,发现是像散没控好。像散在Zernike多项式里是Z5和Z6,它们对波前RMS的贡献和球差一样,但对斯特列尔比的衰减方式不同。后来我改用斯特列尔比直接做评价函数,问题就解决了。
波像差RMS与斯特列尔比的换算
这是本章的核心公式。在波像差RMS较小(通常小于0.1λ)时,斯特列尔比可以用一个近似公式计算:
SR ≈ exp[-(2π·RMS/λ)²]
或者更精确一点:
SR = 1 - (2π·RMS/λ)² + (2π·RMS/λ)⁴/2 - ...
这个公式是怎么来的?它来自Maréchal近似。说白了,就是把波前相位误差看作随机变量,假设它服从正态分布,然后计算中心点强度的期望值。
实际工程中,我常用下面这个对照表:
| 波像差RMS(λ) | 斯特列尔比(近似值) | 系统状态 |
|---|---|---|
| 0.00 | 1.000 | 理想系统 |
| 0.01 | 0.996 | 极好 |
| 0.02 | 0.984 | 优秀 |
| 0.05 | 0.905 | 良好 |
| 0.07 | 0.820 | 衍射极限(瑞利判据) |
| 0.10 | 0.675 | 可用但需优化 |
| 0.15 | 0.412 | 较差 |
| 0.20 | 0.207 | 不可接受 |
重要提醒:这个公式只适用于小像差情况(RMS < 0.1λ)。当RMS大于0.1λ时,近似误差会迅速增大。我建议RMS超过0.15λ时,直接用衍射积分计算斯特列尔比,别偷懒用公式。
另外,这个公式假设波像差是随机且均匀分布的。如果系统有中心遮挡(比如卡塞格林望远镜),或者波前有高频抖动,公式需要修正。中心遮挡会降低斯特列尔比的理论上限,高频抖动则相当于给波前加了额外的噪声项。
下面这张图展示了波像差RMS与斯特列尔比的对应关系,以及不同像差类型的影响差异:
从图中可以清楚看到:当RMS从0.05λ增加到0.10λ时,斯特列尔比从0.905骤降到0.675。这就是为什么我总说,优化时要把RMS压到0.05λ以下。0.05λ到0.07λ之间是灰色地带——系统可能合格,也可能不合格,取决于具体应用。
最后,给各位一个实战建议:在Zemax或Code V里,不要只看默认的RMS评价函数。我习惯把斯特列尔比直接作为优化目标,或者至少作为辅助约束。因为RMS优化到0.05λ时,斯特列尔比可能只有0.88,离0.9还差一点。这时候微调一下权重,往往就能突破。