4. 多组态系统建模流程
变焦镜头设计里,最核心的机械实现就是凸轮。说白了,凸轮曲线就是变焦组的运动轨迹。你光学算得再好,凸轮曲线没弄好,镜头装出来要么卡死,要么变焦不顺畅。我早年吃过这个亏,后面会细说。
4.1 变焦曲线的基本概念
变焦曲线描述的是:随着变焦倍率变化,每个运动组元的位置变化关系。通常横轴是焦距或变焦倍率,纵轴是组元相对于某个参考面的轴向位移。
在 Code V 里,我们通过多重组态(Multi-Configuration)来定义不同焦距下的组元位置。每个组态对应一个焦距点,组态之间的位置变化就构成了变焦曲线。
- 像面稳定——变焦过程中像面位置不变或微变
- 平滑连续——曲线一阶导数连续,不能有拐点
- 无干涉——组元之间在任何位置都不碰撞
我习惯把变焦曲线分成两类:
| 类型 | 特点 | 适用场景 |
|---|---|---|
| 光学补偿式 | 组元运动简单,像面有微小漂移 | 低倍率、低成本镜头 |
| 机械补偿式 | 组元运动复杂,像面严格稳定 | 高倍率、专业级镜头 |
大多数专业变焦镜头都用机械补偿式。你想想看,像面漂移哪怕 0.01mm,在传感器上就是好几个像素的模糊。
4.2 凸轮曲线的生成与优化
凸轮曲线生成,在 Code V 里其实有套路。我一般分三步走:
- 定义组态——在变焦范围内取 5~11 个焦距点
- 优化组元位置——每个组态单独优化,保证像质
- 拟合曲线——把离散位置点拟合成连续曲线
Code V 里可以用 CAM 命令来生成凸轮数据。举个例子:
! 定义变焦组态
CFG 1
THC S1 2.0
THC S3 15.0
CFG 2
THC S1 5.0
THC S3 12.0
CFG 3
THC S1 8.0
THC S3 9.0
! 生成凸轮曲线
CAM
MCF 1 2 3
THC S1
THC S3
GO
这里 CAM 命令会根据三个组态的位置数据,自动生成 S1 和 S3 的凸轮曲线。输出结果包括每个组态的凸轮角度和对应的位移量。
优化凸轮曲线时,我重点关注两个指标:
- 曲线斜率变化率——斜率变化太陡,凸轮加工困难,运动也不顺
- 残余像面漂移——拟合后的曲线与原始优化位置之间的偏差
我曾经遇到一个项目,凸轮曲线斜率在某个位置突然变陡,结果样机装出来变焦到那个位置时,马达明显吃力,还伴有异响。后来重新优化曲线,把斜率变化率控制在 0.5 以内,问题就解决了。
4.3 平滑变焦的实现方法
平滑变焦,说白了就是让变焦过程中像质不抖动、像面不漂移、手感不卡顿。实现方法有三个方面:
4.3.1 光学层面的平滑
在优化时,不能只看单个组态的像质。我习惯把相邻组态放在一起做差分优化。具体做法是:
- 在优化函数里加入组态间的像差变化约束
- 控制像面位置在组态间的变化量小于 0.005mm
- 监控 MTF 在变焦过程中的波动,波动幅度不超过 0.1
4.3.2 机械层面的平滑
凸轮曲线本身要满足:
- 二阶连续——加速度不能突变
- 压力角合理——凸轮压力角一般控制在 30° 以内
- 升程均匀——避免某一段升程过大或过小
4.3.3 仿真验证
Code V 里可以用 ZOO 命令做变焦仿真,检查整个变焦过程中的像质变化。我一般会:
- 在变焦范围内取 20~30 个中间位置
- 计算每个位置的 MTF 和像面位置
- 绘制 MTF 随变焦位置的变化曲线
- 检查曲线是否平滑,有没有突变点
嗯,这里要注意:仿真时一定要考虑公差。我曾经有个项目,仿真时 MTF 很平滑,但实际装出来变焦到某个位置像质突然下降。后来一查,是凸轮槽的公差和镜片偏心公差叠加导致的。从那以后,我都在仿真里加入公差分析。
最后说一句,凸轮设计不是一锤子买卖。我每次做完凸轮曲线,都会和机械工程师一起过一遍,确认加工工艺能不能实现。有些曲线理论上很完美,但加工中心做不出来,那就白搭。设计要落地,才是真本事。