2. 光学系统建模:表面、材料与坐标

好,我们正式开始搭建光学系统。你想想看,一个光学系统再怎么复杂,拆开来看无非就是三样东西:光线碰到什么面、穿过什么材料、以及这些面怎么摆。这一章我们就把这三大块讲透。

2.1 光学表面类型

表面是光线发生偏折的地方。我这些年做过的项目里,90% 的坑都出在表面定义上。咱们从最简单的说起。

2.1.1 球面

球面是最基础、最常用的表面。它的 sagitta(矢高)公式很简单:

z(r) = (r² / R) / (1 + sqrt(1 - (1+k) * r² / R²))

当 k=0 时,就是标准球面。R 是曲率半径,r 是径向坐标。

我的习惯: 刚开始做设计时,先用球面把光路跑通。球面计算快、加工便宜,别一上来就上非球面。

2.1.2 非球面

非球面就是在球面基础上加了高次项。我常用的偶次非球面公式:

z(r) = (r² / R) / (1 + sqrt(1 - (1+k) * r² / R²)) + A₂r² + A₄r⁴ + A₆r⁶ + ...

这里 k 是圆锥系数,A₂、A₄、A₆ 是高次项系数。

避坑指南: 我曾经在一个投影镜头里加了太多高次项,结果加工出来面型完全不对。非球面阶数不是越高越好,一般到 A₆ 或 A₈ 就够了。

2.1.3 自由曲面

自由曲面是最近十年才真正用起来的。它没有对称轴,用 XY 多项式或 Zernike 多项式描述。我去年做的一个 AR 眼镜项目,就靠自由曲面把畸变从 15% 压到了 2%。

常用的 XY 多项式形式:

z(x,y) = Σ Cᵢⱼ xⁱ yʲ

说白了,自由曲面就是给你更多自由度去校正像差。但代价是加工和检测都贵很多。

表面类型 自由度 加工成本 典型应用
球面 1(R) 低 常规镜头、目镜
非球面 3-6(k + 高次项) 中 手机镜头、投影物镜
自由曲面 10+(多项式系数) 高 AR/VR、离轴系统

2.2 光学材料与色散模型

光穿过不同材料,速度会变,方向也会变。这就是折射。但问题来了——不同颜色的光,折射率不一样。这就是色散。

2.2.1 常用光学材料

我常用的玻璃牌号就那么几种:

  • BK7:最通用的冕牌玻璃,可见光波段首选
  • F2:火石玻璃,色散大,常用于消色差
  • SF6:重火石玻璃,高折射率,用于短焦距
  • CaF₂:氟化钙,紫外到红外都透,但贵

2.2.2 色散模型

折射率随波长变化,我们不能只用一个数。常用的模型有:

  1. Sellmeier 方程(最常用):
    n²(λ) = 1 + B₁λ²/(λ² - C₁) + B₂λ²/(λ² - C₂) + B₃λ²/(λ² - C₃)
  2. Cauchy 方程(近似用):
    n(λ) = A + B/λ² + C/λ⁴
  3. Schott 公式(老牌号常用)
关键参数: Abbe 数 Vd = (nd - 1) / (nF - nC)。Vd 越大,色散越小。BK7 的 Vd 约 64,F2 约 36。

我记得有一次,供应商给的玻璃批次折射率偏了 0.001,结果整个镜头后焦跑了 0.3mm。从那以后,我每次都要确认材料实测数据,不只看标称值。

2.3 系统坐标与孔径定义

坐标系统一了,大家才能沟通。孔径定义错了,光线根本进不去。

2.3.1 坐标约定

我习惯用右手坐标系:

  • Z 轴:光轴方向,从左到右
  • Y 轴:垂直向上
  • X 轴:水平指向纸面外

每个表面都有一个局部坐标系,原点在表面顶点。光线从物面出发,沿 Z 正方向传播。

2.3.2 孔径定义

孔径决定了有多少光线能通过系统。常用的定义方式:

孔径类型 定义方式 我常用的场景
入瞳直径 直接指定 EPD 定焦镜头
F 数 F/# = EFL / EPD 摄影镜头
NA NA = n * sin(θ) 显微物镜、光纤耦合
浮动孔径 随视场变化 变焦系统
注意: 我曾经犯过一个低级错误——把入瞳直径和机械孔径搞混了。入瞳是光阑被前方光学系统所成的像,不是实际镜片的口径。实际镜片口径要比入瞳大,否则会切光。

2.4 知识体系总览

下面这张图把本章的核心内容串起来了。你可以把它当作一个检查清单,每次建模前过一遍。

光学系统建模知识体系 光学系统建模核心要素 光学表面 光学材料 坐标与孔径 球面 非球面 自由曲面 Sellmeier Cauchy Abbe 数 右手坐标系 局部坐标 入瞳 / F# / NA 建模顺序:先定坐标 → 选表面类型 → 配材料 → 设孔径 每个环节都要和加工、检测方确认可行性 💡 我建议:新手从球面 + BK7 + 固定孔径开始,跑通了再升级

2.5 实战建议

说了这么多,最后给几条实在的建议:

  • 先简单后复杂:球面能搞定就别上非球面,BK7 能搞定就别上特殊材料
  • 留余量:孔径别卡太死,留 10-20% 的余量给装配误差
  • 确认数据来源:玻璃库数据是标称值,实际批次可能有偏差
  • 文档化:每个表面的定义、材料、坐标,写清楚。我吃过亏——三个月后回看自己的文件,完全想不起当时为什么选那个参数
一句话总结: 光学系统建模就是把物理世界翻译成数学语言。表面、材料、坐标、孔径,这四个要素定义清楚了,后面的追迹和优化才有意义。