4. 像差操作数(上):SPHA、COMA、ASTI 的原理与使用

各位同学,咱们今天正式进入像差操作数的世界。

说实话,Zemax 里操作数一大堆,但真正跟像差硬碰硬的,就是 SPHA、COMA、ASTI 这几个。我当年刚学的时候,总觉得这些名字很唬人,什么球差、彗差、像散,听着像天书。后来做项目多了才发现——说白了,它们就是描述“光线走偏了”的几种典型方式。

4.1 球差(SPHA)—— 最“老实”的像差

球差是什么?我习惯用一个比喻:你拿一个放大镜对着太阳,光斑不是完美的点,而是一个模糊的圈。这就是球差。

从光学原理上讲,球差源于透镜表面的球面形状。边缘光线和近轴光线,经过同一个球面后,焦点不在同一个位置。边缘光线聚焦更靠前,近轴光线聚焦更靠后。结果就是——像点变成了一个弥散斑。

SPHA 操作数的作用: 直接读取当前系统在指定波长和视场下的球差系数(单位为波长)。数值越大,球差越严重。

在 Zemax 里用 SPHA,语法很简单:

SPHA  Surf   Wave   Hx   Hy   Pupil

参数说明:

参数 含义 常用值
Surf 要计算球差的面序号 通常设为 1(光阑面)或最后一面
Wave 波长编号(1=主波长) 1
Hx, Hy 归一化视场坐标 0, 0(轴上点)
Pupil 光瞳归一化坐标(0=近轴,1=边缘) 0 或 1
我的习惯: 做初始优化时,我会同时监控 SPHA 在 Pupil=0 和 Pupil=1 两个值。如果两者差距很大,说明球差校正还没到位。

举个例子。我曾经做过一个 f/2.8 的摄影物镜,初始结构球差系数跑到 0.8 个波长。我直接在优化函数里加了:

SPHA  1  1  0  0  0
SPHA  1  1  0  0  1

目标值设成 0,权重给 1。跑了三轮优化,球差降到了 0.05 波长以下。嗯,效果立竿见影。

4.2 彗差(COMA)—— 不对称的“尾巴”

彗差这个名字很形象。你想想看,彗星拖着一条尾巴。在光学系统里,彗差的表现就是:轴外点成像时,光斑不是对称的圆,而是一头亮一头暗,像个小彗星。

为什么会这样?因为不同光瞳区域的光线,在像面上的放大率不一样。边缘光线比近轴光线偏得更厉害,结果就拖出了那条“尾巴”。

COMA 操作数的作用: 读取指定面、波长、视场下的彗差系数。单位也是波长。

语法和 SPHA 几乎一样:

COMA  Surf   Wave   Hx   Hy   Pupil

但这里有个关键区别——视场不能全为零。因为彗差是轴外像差,轴上点(Hx=0, Hy=0)的彗差理论上就是零。你设了也白设。

我曾经踩过的坑: 刚学的时候,我为了省事,直接把 SPHA 的优化函数复制过来,把 SPHA 改成 COMA,视场没改。结果优化了半天,COMA 一直是 0,我还以为系统没彗差。后来才发现——视场设成轴上点了。白忙活一场。

正确的用法是:

COMA  1  1  0  0.7  1

这表示在 0.7 视场、边缘光瞳处计算彗差。我一般会同时监控 0.5、0.7、1.0 三个视场,确保全视场范围内彗差都得到控制。

4.3 像散(ASTI)—— 两个方向的“较劲”

像散,我个人觉得是三种像差里最“微妙”的一个。

简单说,像散就是:一个点光源经过透镜后,在子午方向(径向)和弧矢方向(切向)的焦点不重合。一个方向聚焦了,另一个方向还是模糊的。结果就是——点变成了一个十字形或椭圆形的弥散斑。

ASTI 操作数的作用: 读取指定面、波长、视场下的像散系数。单位同样是波长。

语法:

ASTI  Surf   Wave   Hx   Hy   Pupil

和 COMA 一样,像散也是轴外像差。视场不能设成轴上点。

这里有个小技巧。我习惯同时用两个操作数来监控像散:

ASTI  1  1  0  0.7  0
ASTI  1  1  0  0.7  1

一个取近轴光瞳(Pupil=0),一个取边缘光瞳(Pupil=1)。如果两个值差异很大,说明系统不光有像散,还伴随着场曲。这时候光靠 ASTI 一个操作数是不够的,需要配合 FCGT 或 FCGS 来校正场曲。

4.4 三种像差的对比与选择

为了让你看得更清楚,我整理了一个对比表:

像差类型 操作数 轴上/轴外 光瞳依赖 典型表现
球差 SPHA 轴上为主 强(边缘 vs 近轴) 弥散圆对称扩大
彗差 COMA 轴外 强 不对称拖尾
像散 ASTI 轴外 中等 子午/弧矢焦点分离

实际优化时,我建议的优先级是:

  1. 先校正球差——它是基础,球差没校好,其他像差优化起来会互相干扰。
  2. 再校正彗差——尤其是大视场系统,彗差直接影响边缘成像质量。
  3. 最后处理像散——像散往往和场曲耦合,需要联合优化。
我的经验: 不要试图一次把所有像差都压到零。光学设计是平衡的艺术。有时候保留一点点球差,反而能换来更好的彗差和像散表现。我做过一个投影镜头,球差留了 0.1 波长,但全视场 MTF 反而比球差为零时高了 5%。这就是权衡。

4.5 知识结构图

下面这张图,帮你理清这三种像差的逻辑关系:

像差操作数(上)知识结构 三种初级像差 球差 (SPHA) 彗差 (COMA) 像散 (ASTI) 轴上像差 边缘光瞳最严重 对称弥散 轴外像差 不对称拖尾 视场越大越明显 轴外像差 子午/弧矢分离 常与场曲耦合 优化顺序:球差 → 彗差 → 像散

4.6 避坑指南

最后,分享几个我这些年积累的经验:

  • SPHA 不要只看一个光瞳位置。 我习惯同时看 Pupil=0 和 Pupil=1,两个值一起压,球差才能校正好。
  • COMA 一定要设非零视场。 这是新手最容易犯的错误。轴上点没有彗差,你设了也是白设。
  • ASTI 和场曲是“连体婴”。 如果像散优化不动,先检查一下场曲。很多时候,场曲校好了,像散自然就下来了。
  • 权重不要给太大。 我一般给 1 到 5 之间。给太大,系统会为了压一个像差而牺牲其他性能,得不偿失。
重要提醒: 这三种操作数读出的都是系数,不是实际的光斑尺寸或 RMS 值。它们适合做趋势判断和相对比较,但最终像质评价还是要看 MTF 或点列图。别光盯着系数优化,忘了看最终成像效果。

好了,这一章的内容就到这里。SPHA、COMA、ASTI 是像差操作数里最基础也最常用的三个。把它们用熟了,后面再学更复杂的像差操作数,就会轻松很多。