光学设计入门:先算清焦距、视场与光圈,再开始优化


从八十毫米视场的小型成像任务出发,建立传感器、倍率、主平面距离、焦距、有效光圈与运动曝光之间的预算,推导一阶敏感性,并用反算与极限检查发现软件优化之前就应该排除的方案。

一阶预算回答方案能否成立

设计成像镜头时,先调曲率很容易得到数学上收敛、机械上却放不下的解。一阶预算的价值是把任务转成互相约束的量:多大视场要装进多大传感器,允许多长物距,最小特征占几个像素,曝光是否足以冻结运动,光圈是否还有衍射和通光余量。

这里讨论空气中的近轴、有限共轭系统,用正数 u、v 分别表示实物与实像到相应主平面的距离,倍率 m 只取绝对值。物面与像面平行,焦距不随对焦机构改变。真实镜头涉及厚透镜、内对焦、瞳放大率与畸变,后续必须回到完整模型验证。

示例要求水平物方视场 W=80 mm,传感器有效宽度 S=6.4 mm,物距 u≈200 mm,像元间距 p=3.45 μm。200 mm 暂时是主平面模型值,尚不是从镜头外壳前端量起的最终工作距离。

把倍率、焦距与结构长度联立

倍率由所需视场直接给出:

1
2
3
4
5
m = S/W = 6.4/80 = 0.08
1/f = 1/u + 1/v
m = v/u
所以 v = m·u = 16 mm
f = m·u/(1+m) = 14.8148 mm

如果物方主平面位置合理,约 15 mm 的焦距可以作为初始搜索区间。这里同时得到像距 16 mm,后续要与镜头后组位置、滤光片、保护玻璃和相机接口空间比较。有效焦距、后焦距和法兰距不是同一个尺寸。

薄透镜中 u+v=216 mm 是物像间总距离;厚透镜还要计入两个主平面的间隔。不能把软件输出的有效焦距直接当成最后一片镜片到传感器的距离,也不能用机械工作距离替换 u 而不说明误差。

通用选型常用 f≈m·u=S·u/W 估算,参见 NI 的图像采集系统概念。本文保留有限共轭的 1+m 分母。示例中远距离近似给出 16 mm,比 14.8148 mm 高 8%;倍率越高,忽略这一项越不合适。

反算比“看起来像合适焦距”可靠

若直接选择 25 mm 镜头,在相同薄透镜模型和 u=200 mm 下:

1
2
3
v = f·u/(u−f) = 28.571 mm
m = f/(u−f) = 0.142857
W = S/m = 44.8 mm

它无法覆盖 80 mm 视场。若必须使用 25 mm,则为达到 m=0.08,所需主平面物距为 u=f(1+1/m)=337.5 mm,像距为 27 mm。方案可以通过增加安装距离成立,但总长度与照明布置随之改变。

这给出一个实用判断顺序:先由视场与传感器定倍率,再根据可用物距估焦距,最后反算实际选定焦距需要的物距与像距。标准镜头型号通常是离散焦距,反算能够提前暴露机械空间是否足够。

对误差敏感的究竟是哪一个量

在焦距与传感器固定的薄透镜模型中,W=S(u−f)/f,因此:

1
2
3
∂W/∂u = S/f
∂W/∂f = −S·u/f²
δW/W ≈ δu/(u−f) − u·δf/[f(u−f)]

示例焦距为 14.8148 mm,物距误差 2 mm 对应视场约变化 0.864 mm,即约 1.08%。焦距变化 1% 在物距固定时,也会导致约 1.08% 的视场变化,方向相反。若任务需要稳定尺寸,安装高度和实际有效焦距都不能只写一个整数名义值。

这些偏导把变量视为可独立变化。真实内对焦镜头调焦时可能同时改变焦距与主平面位置,直接套单一偏导就不够。选型验证应测量多个实际工作距离,记录对焦位置与视场,再判断简化模型是否满足预算用途。

此外,若倍率由 S/W 反推而传感器宽度本身不确定,则输入误差还会通过倍率进入焦距计算。工程预算应避免同一个不确定量在多条公式中重复记账。

分辨率预算先看物方采样

像元间距 0.00345 mm、倍率 0.08 时,物方采样间距为 p/m=0.043125 mm,即约 43.1 μm/像素。若最小线宽为 0.10 mm,它只占约 2.32 个像素;如果要求的是一个完整线对周期 0.10 mm,则对应的亮线宽只有 0.05 mm,两种任务的难度完全不同。

同样需要区分“发现存在”“稳定分割”与“高精度尺寸测量”。亚像素定位可以改善边缘位置估计,但不能保证恢复已被采样和光学模糊丢失的任意结构。预算表要记录的是任务所需采样和对比度,不能简单写成“像元小于缺陷尺寸,所以满足”。

当宽度与像元间距不整除时,相机真实像素数量决定实际有效成像宽度。本例把 S 与 p 都作为近似输入;最终应使用相机有效像素数乘以实际像元间距,统一到同一组规格。

光圈、衍射与曝光必须放在一起

标称 F 数 N=f/D,D 为入瞳直径,并非任何一片镜片的机械口径。对近轴、瞳放大率接近 1 的有限共轭系统,可用 N有效≈N(1+m) 估算像方光锥。相应定义见 Edmund Optics 的通光量、F 数与数值孔径说明。

示例 N=4 时,N有效≈4.32,入瞳直径约 3.704 mm。对于理想圆孔、单色 λ=0.55 μm 的标量衍射近似,第一暗环直径 d≈2.44λN有效≈5.797 μm,约 1.68 像素;N=8 时约为 11.595 μm,约 3.36 像素。这里比较的是衍射图样直径和像元间距,不是直接宣告系统分辨率合格。公式边界见 艾里斑与衍射极限。

收小孔径可能改善某些像差和几何离焦,同时降低照度、增强衍射。若其他条件相同,F/4 到 F/8 的理想像面照度约降为四分之一,保持光电子数需要约四倍曝光。高速目标却可能不允许延长曝光。

例如物体横向速度 100 mm/s,允许运动在像面拖动不超过 0.5 像素,则:

1
2
3
t最大 = 0.5·p/(m·速度)
= 0.5×0.00345/(0.08×100)
≈ 0.0002156 s = 0.216 ms

这只是运动长度预算,实际允许值还要通过任务对比度验证。若光圈缩小后曝光需从 0.15 ms 增至 0.60 ms,就已经超过此预算,需要增加照明、脉冲同步、降低速度或重新分配模糊余量,而非只继续收光圈。

用一段脚本保持单位与反算一致

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Python 3 标准库;长度统一为 mm,时间为 s。
sensor_mm, fov_mm, object_mm = 6.4, 80.0, 200.0
pitch_mm, speed_mm_s = 0.00345, 100.0
m = sensor_mm / fov_mm
f = m * object_mm / (1 + m)
v = m * object_mm
print(f"m={m:.5f}, f={f:.4f} mm, v={v:.3f} mm")
assert abs(sensor_mm * (object_mm - f) / f - fov_mm) < 1e-9

for n in (4, 8):
n_eff = n * (1 + m)
airy_um = 2.44 * 0.55 * n_eff
print(n, "有效F数", n_eff, "艾里斑um", airy_um)
print("物方采样um", pitch_mm / m * 1000)
print("半像素拖影曝光ms", 0.5 * pitch_mm / (m * speed_mm_s) * 1000)

设计余量应落在可改变的变量上

若视场必须至少覆盖 80 mm,不宜把标称视场恰好设为 80 mm,再期待装配永远没有变化。应根据物距、有效焦距和传感器有效区的不确定度,预留覆盖余量,同时检查余量带来的物方采样损失。把视场从 80 mm 放大到 88 mm,若像素数不变,单位像素覆盖的物方长度也增加 10%,这可能压缩最小缺陷的像素数量。

不同误差不能无条件互相抵消。靠调物距补偿焦距差,可以恢复视场,但可能改变最佳像面位置与照明角度;靠裁剪传感器恢复构图,可以保留中心部分,却没有恢复边缘分辨率和完整覆盖。预算应写清可调参数、调节行程与调节后需要重新验证的指标。

对于量产设备,最好保留两个版本的预算:名义方案和极限组合。名义方案用于设计搜索,极限组合用于确认机械空间、通光与任务余量。若极限组合显然不可行,就应尽早修改需求或结构,而不是把风险全部留给后续公差优化。

从预算进入完整设计时验收什么

预算表至少应包含视场、有效传感器尺寸、倍率、距离基准、焦距、像距、物方采样、工作光圈、波长和曝光上限。每项再写“输入需求”“模型推导”或“待实测”,避免让估算值在反复传递中变成已确认规格。

进入软件后,先核对边缘视场、实际工作距离、后焦空间、全孔径通光和像面倾斜,再评估像质与公差。若系统必须改变结构形式,重新计算一阶预算,而不是把旧结果视为永远成立的前提。这样得到的是可追踪的设计闭环,而不只是一张焦距计算表。


 上一篇
光学设计评估:如何把 MTF、像元采样和公差联系起来 光学设计评估:如何把 MTF、像元采样和公差联系起来
从物方任务频率推导像方评价点,将镜头、像元积分与曝光拖影纳入同一套对比度预算,再通过敏感度、受限补偿和蒙特卡洛通过率评估制造后的表现,区分名义最优、平均值与可交付的良率。
2026-10-16
本篇 
光学设计入门:先算清焦距、视场与光圈,再开始优化 光学设计入门:先算清焦距、视场与光圈,再开始优化
从八十毫米视场的小型成像任务出发,建立传感器、倍率、主平面距离、焦距、有效光圈与运动曝光之间的预算,推导一阶敏感性,并用反算与极限检查发现软件优化之前就应该排除的方案。
2026-10-16
  目录