4. 光机设计基础

变焦镜头设计的核心,说白了就是解决一个问题:怎么让镜头在改变焦距的同时,还能把像面稳稳地固定住。我早年刚接触这个领域时,总觉得变焦就是简单地把镜片前后推一推。直到第一次自己动手算变焦曲线,才发现这里面门道深得很。

这一章,我们就来啃这块硬骨头。我会从高斯光学的基本参数讲起,一步步推导变焦方程,最后告诉你如何求解那条关键的变焦曲线。

4.1 高斯光学:变焦的数学语言

变焦设计离不开高斯光学。你想想看,一个变焦系统本质上就是一组薄透镜的组合,只不过它们的间距在变化。我们用高斯光学来描述这个过程,既简洁又直观。

我个人习惯把变焦系统拆成三个基本部分:前固定组、变倍组和补偿组。有时候还会加上后固定组。每个组元都可以看作一个薄透镜,用它的焦距和位置来描述。

这里有几个关键参数,你得记牢:

参数 符号 含义
焦距 f' 组元对无限远物体的成像焦距
物距 l 物点到组元主面的距离
像距 l' 像点到组元主面的距离
倍率 β 像高与物高之比,β = l'/l
间隔 d 相邻组元主面之间的距离

高斯光学的基本公式就两个,但足够用了:

高斯公式:1/l' - 1/l = 1/f'
倍率公式:β = l'/l

嗯,这里要注意。变焦系统里,物距和像距都是随着组元移动而变化的。我们不能把它们当成常数。

4.2 变焦方程的推导

变焦方程,就是描述变倍组和补偿组之间运动关系的数学表达式。它的核心思想是:变倍组移动改变焦距,补偿组移动补偿像面位移。

我们以最常见的两群变焦结构为例。假设前组是变倍组,焦距为 f1';后组是补偿组,焦距为 f2'。两组之间的间隔为 d。

整个系统的总焦距 F' 可以写成:

F' = f1' * f2' / (f1' + f2' - d)

这个公式你肯定见过。但变焦的关键在于,d 不是固定的。当变倍组移动 Δx 时,d 就变成了 d₀ + Δx。补偿组需要移动 Δy 来让像面回到原位。

我在项目中遇到过一种情况:只考虑了变倍组的移动,忽略了补偿组的非线性响应。结果变焦到中间位置时,像面跑出去好几毫米。那叫一个惨。

完整的变焦方程推导过程如下:

  1. 写出变倍组的成像关系:设变倍组的物距为 l₁,像距为 l₁',满足 1/l₁' - 1/l₁ = 1/f1'。
  2. 写出补偿组的成像关系:补偿组的物距 l₂ = d - l₁',像距 l₂' 满足 1/l₂' - 1/l₂ = 1/f2'。
  3. 像面固定条件:系统总像距 L = l₁ + d + l₂' 必须为常数。
  4. 联立求解:将 l₁、l₁'、l₂、l₂' 用变倍组位移 Δx 和补偿组位移 Δy 表示,代入像面固定条件,得到 Δx 和 Δy 的关系。

最终推导出来的变焦方程长这样:

Δy = f2'² / (f1' + f2' - d₀ - Δx) - f2'² / (f1' + f2' - d₀)

这个方程告诉你:补偿组的位移 Δy 是变倍组位移 Δx 的非线性函数。它不是简单的线性关系,而是一条曲线。

核心结论:变焦方程的本质是像面位置不变的约束条件。任何变焦系统的设计,最终都要归结到求解这个方程上。

4.3 变焦曲线的求解

有了变焦方程,下一步就是求解变焦曲线。变焦曲线,就是变倍组和补偿组的位移随焦距变化的轨迹。

求解方法有两种:解析法和数值法。

解析法适用于简单的两群结构。直接把变焦方程反解出来,得到 Δx 和 Δy 关于焦距 F' 的显式表达式。但说实话,实际工程中很少用纯解析法。因为系统一复杂,解析解就变得极其繁琐。

数值法才是工程界的标配。我建议你用以下步骤:

  1. 设定焦距范围:比如从 50mm 到 200mm,取 N 个采样点。
  2. 对每个采样点:用变焦方程迭代求解 Δx 和 Δy。
  3. 插值拟合:将离散点拟合成光滑曲线,得到凸轮槽的加工数据。

我曾经用 MATLAB 写过一段求解代码,核心逻辑是这样的:

% 变焦曲线求解示例(伪代码)
f1 = 100;   % 变倍组焦距
f2 = -50;   % 补偿组焦距
d0 = 80;    % 初始间隔

F_target = linspace(50, 200, 100);  % 目标焦距序列
dx = zeros(size(F_target));
dy = zeros(size(F_target));

for i = 1:length(F_target)
    % 用牛顿法求解变焦方程
    dx_guess = 0;
    for iter = 1:50
        F_cur = f1*f2/(f1+f2-(d0+dx_guess));
        dy_cur = f2^2/(f1+f2-d0-dx_guess) - f2^2/(f1+f2-d0);
        % 更新 dx 直到 F_cur 接近 F_target(i)
        dx_guess = dx_guess + (F_target(i)-F_cur)*0.1;
    end
    dx(i) = dx_guess;
    dy(i) = dy_guess;
end

% 输出凸轮曲线数据
plot(dx, dy);  % 这就是变焦曲线

工程小技巧:求解变焦曲线时,别忘了考虑机械间隙和凸轮压力角。我曾经吃过这个亏——曲线算得漂漂亮亮,结果凸轮加工出来卡死了。后来才意识到,压力角超过了 45 度,机械上根本推不动。

4.4 知识结构总览

下面这张图,把变焦方程和高斯光学的核心逻辑串在了一起。你可以把它当作这一章的知识地图。

变焦方程与高斯光学知识结构图 变焦方程与高斯光学 · 知识结构 变焦系统 高斯光学参数 焦距 · 物距 · 像距 · 倍率 变焦方程 像面固定约束 变焦曲线 凸轮轨迹求解 薄透镜模型 组元拆分 变倍组位移 补偿组位移 解析法 数值法 💡 核心逻辑 变倍组移动 → 焦距变化 → 像面偏移 补偿组移动 → 像面复位 → 保持清晰成像

4.5 避坑指南与工程经验

做变焦设计这些年,我踩过不少坑。挑几个典型的说说:

⚠️ 坑一:忽略组元之间的光线高度变化

高斯光学计算时,很多人只关心主光线,忽略了边缘光线。结果变焦到长焦端,边缘光线被镜筒切掉了。我建议你在计算变焦曲线时,同步追迹几条特征光线,确保整个变焦范围内都没有渐晕。

⚠️ 坑二:变焦曲线过于陡峭

我曾经设计过一个 10 倍变焦镜头,变焦曲线在某个区间斜率特别大。凸轮加工出来之后,镜筒稍微有点公差,变倍组就卡住了。后来我把变焦范围拆成两段,中间加了一个过渡组,曲线就平缓多了。

💡 经验之谈:变焦曲线的平滑度,直接决定了镜头的变焦手感。如果你在做消费级产品,用户对变焦手感的敏感度远超你的想象。我一般要求变焦曲线的二阶导数连续,这样变焦时不会有顿挫感。

4.6 小结

变焦方程和高斯光学,是变焦镜头设计的数学根基。没有这个根基,后面所有的优化、公差分析、加工制造都是空中楼阁。