一、像差基础:几何光学与波像差概述、赛德尔像差理论、初级像差分类

各位同学,咱们今天聊点实在的。像差这东西,说白了就是光学系统「不完美」的那部分。理想光学系统只存在于课本里,现实中的镜头、棱镜、反射镜,总会让光线偏离它该去的地方。我做了十几年光学设计,踩过的坑有一半都跟像差有关。所以第一章,咱们把地基打牢。

1.1 几何光学与波像差——两个视角看同一件事

几何光学看光线,波像差看波面。这两个视角其实是同一物理现象的不同表达。

  • 几何像差:光线追迹的结果。你追一条光线,它没落到理想像点,那就是有像差。
  • 波像差:实际波面与理想球面波之间的光程差。单位通常是波长 λ。

我个人习惯在初步设计阶段先用几何像差快速判断系统好坏,到了优化后期再盯着波像差。为什么?因为波像差直接跟成像质量挂钩——瑞利判据说波像差小于 λ/4 时系统接近衍射极限。这个判据我几乎每个项目都会用到。

核心关系:波像差 W 与几何像差之间可以通过光线追迹和光程函数互相转换。简单说,波像差是几何像差的积分结果。

1.2 赛德尔像差理论——经典的五种「原罪」

1856 年,德国人赛德尔(Ludwig von Seidel)干了一件漂亮事:他把初级像差归纳为五种独立类型。这五种像差,我称之为光学系统的「五种原罪」。你遇到的几乎所有成像问题,都能归到它们头上。

像差名称 英文 物理本质 典型表现
球差 Spherical Aberration 孔径不同,焦点不同 点光源成像为弥散斑
彗差 Coma 轴外点成像不对称 像点拖尾如彗星
像散 Astigmatism 子午与弧矢焦点分离 十字靶标横竖清晰度不同
场曲 Field Curvature 像面弯曲 中心清晰边缘模糊
畸变 Distortion 像的几何形状变形 直线变弯

这里有个关键点:赛德尔像差是初级近似,只考虑三级像差项。实际系统中还有五级、七级像差,但初级像差已经能覆盖绝大多数工程问题。我记得有一次做投影物镜,球差和彗差校正到零后,MTF 直接提升了 15%。

我的经验:初学者容易犯一个错误——试图一次性校正所有像差。其实很多系统只需要重点控制 2-3 种像差。比如望远物镜主要看球差和色差,广角镜头则要盯着畸变和倍率色差。

1.3 初级像差分类——按视场和孔径分

赛德尔像差还可以按「依赖什么变量」来分类。这个分类方法在优化时特别有用。

  • 孔径相关像差:球差。只跟光线在入瞳上的高度 h 有关,跟视场无关。
  • 视场相关像差:畸变、场曲。主要随视场角 ω 变化。
  • 混合相关像差:彗差、像散。同时受孔径和视场影响。

为什么要分这个?因为优化策略不同。校正球差可以改曲率或加非球面;校正场曲得调整透镜的 Petzval 和;校正畸变则往往要对称结构。

我曾经做过一个双高斯镜头,球差和彗差都很好,但场曲一直压不下去。后来发现是 Petzval 和没控制好,换了一块高折射率玻璃,问题就解决了。你看,知道像差分类,才能对症下药。

1.4 知识结构图——像差体系一目了然

下面这张图把本章的核心逻辑串起来了。从几何光学和波像差出发,引出赛德尔五种初级像差,再按视场/孔径分类,最后落到工程应用。

像差基础:知识体系框架 几何像差(光线追迹) 波像差(波面光程差) 赛德尔五种初级像差 球差 彗差 像散 场曲 畸变 孔径相关:球差 混合相关:彗差、像散 视场相关:场曲、畸变 工程应用:优化策略、玻璃选择、结构设计

1.5 一个简单的 Python 示例——计算球差系数

理论讲完了,咱们动手算一下。下面这段代码计算一个单透镜的初级球差系数 S₁。你想想看,如果 S₁ 不为零,说明系统有球差。

import numpy as np

def seidel_spherical(n, r1, r2, f, h):
    """
    计算单透镜的初级球差系数 S₁
    参数:
        n  : 折射率
        r1 : 第一面曲率半径 (mm)
        r2 : 第二面曲率半径 (mm)
        f  : 焦距 (mm)
        h  : 入瞳半高 (mm)
    返回:
        S₁ : 初级球差系数
    """
    # 光焦度
    phi = 1.0 / f
    # 形状因子
    q = (r2 + r1) / (r2 - r1)
    # 位置因子(物在无穷远时 p = -1)
    p = -1.0

    # 赛德尔球差公式(薄透镜近似)
    A = (n + 2) / (n * (n - 1)**2) * (q + 2 * (n**2 - 1) / (n + 2) * p)**2
    B = n / (n - 1) * p**2
    C = n / (n - 1) * p * q
    D = (3 * n + 2) / n

    S1 = (h**2 * phi**3) / 4 * (A + B + C + D)
    return S1

# 示例:n=1.5, r1=50mm, r2=-100mm, f=100mm, h=10mm
n = 1.5
r1 = 50.0
r2 = -100.0
f = 100.0
h = 10.0

S1 = seidel_spherical(n, r1, r2, f, h)
print(f"初级球差系数 S₁ = {S1:.4f}")

注意:这个公式只适用于薄透镜和初级近似。实际系统中透镜有厚度,光线有高度变化,需要用光线追迹来精确计算。但作为快速估算,它非常实用。我曾经在方案论证阶段用这个公式半小时排除了三个不合适的结构。

1.6 本章小结——你该带走什么

  • 像差是光线偏离理想路径的度量,几何和波前两个视角都要理解。
  • 赛德尔五种初级像差是分析一切成像系统的基础。
  • 按视场/孔径分类能帮你快速定位问题、制定优化策略。
  • 初级球差系数公式虽然简单,但工程上很有用。