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 来让像面回到原位。
我在项目中遇到过一种情况:只考虑了变倍组的移动,忽略了补偿组的非线性响应。结果变焦到中间位置时,像面跑出去好几毫米。那叫一个惨。
完整的变焦方程推导过程如下:
- 写出变倍组的成像关系:设变倍组的物距为 l₁,像距为 l₁',满足 1/l₁' - 1/l₁ = 1/f1'。
- 写出补偿组的成像关系:补偿组的物距 l₂ = d - l₁',像距 l₂' 满足 1/l₂' - 1/l₂ = 1/f2'。
- 像面固定条件:系统总像距 L = l₁ + d + l₂' 必须为常数。
- 联立求解:将 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' 的显式表达式。但说实话,实际工程中很少用纯解析法。因为系统一复杂,解析解就变得极其繁琐。
数值法才是工程界的标配。我建议你用以下步骤:
- 设定焦距范围:比如从 50mm 到 200mm,取 N 个采样点。
- 对每个采样点:用变焦方程迭代求解 Δx 和 Δy。
- 插值拟合:将离散点拟合成光滑曲线,得到凸轮槽的加工数据。
我曾经用 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 小结
变焦方程和高斯光学,是变焦镜头设计的数学根基。没有这个根基,后面所有的优化、公差分析、加工制造都是空中楼阁。