做光学设计的同行都知道,所谓多档变形系统——就是通过切换或移动镜组,在同一套光路里得到不同焦距、不同倍率成像的系统——在现实产品里出现频率高得惊人。安防领域的一体机、机器视觉里的可变倍率镜头、测量设备上的倍率转换器,背后基本都是这套逻辑。OCAD作为国产光学设计软件里相当成熟的一支,用它来做多档变形系统设计,比从零搭结构顺手得多。这篇文章我把一次实际的三档变形物镜设计过程完整过一遍,从指标拆解、初始结构选取、OCAD多组态建模,到像差平衡、公差分析、机械切换约束,全程按真实项目的思路走,给那些要做多倍率切换系统的朋友一个能直接落地的参考。
1. 多档变形系统设计:先想清楚它到底是什么
1.1 多档变形系统的本质与常见实现形式
多档变形系统的核心矛盾在于:光学系统只有一个物理框架,却要承担多个不同的焦距状态。这本质上是一个“约束优化”问题——在同一个镜头数据表里,让镜片间距、光焦度分配、像差平衡同时满足多个工作状态的要求。
我在工程里见得最多的实现形式有这么几种:
| 实现形式 | 原理 | 优点 | 短板 | OCAD建模特点 |
|---|---|---|---|---|
| 前置附加镜切换 | 在基础物镜前插入不同倍率的无焦望远镜组 | 结构简单,像面位置天然稳定 | 高倍档F数变大,系统变暗 | 多组态中前组面整体增删 |
| 变倍组轴向移动 | 负变倍组沿光轴移动到预设停靠位置 | 镜片数量少,倍率切换连续可设计 | 补偿组需要联动,机械精度要求高 | 各组态只改间隔数据 |
| 后置镜组切换 | 切换成像光路中的补偿镜组 | 像质容易保证 | 结构笨重,驱动复杂 | 后组多组态重组 |
前置附加镜方案在实际产品里最普及,原因很实际:基础物镜可以沿用成熟设计,附加镜组是相对独立的部件,研发风险和成本都低。下面整篇的设计案例就是围绕这套方案展开的。
1.2 为什么挑OCAD来做这件事
不少同行一提多组态设计就默认要上别的商业软件,其实OCAD在这方面一点不虚。OCAD支持多组态数据管理,你可以在一个工程文件里维护若干套完整的光学参数,每个组态可以单独定义镜面间隔、面型系数,甚至孔径和视场。优化时多个组态一起参与评价函数计算,也就是说你能同一轮迭代里同时逼着几个档位的像质往目标跑。
这对我这种习惯“一套数据管理到底”的人太重要了。以前用临时脚本算多个档位,改一个参数要同步改好几处,数据一致性容易出问题。OCAD把组态做成了表格化的数据结构,切换、对比、优化都在一个界面里完成,中间环节少,出错概率低。再加上它对国产玻璃库的支持比较完善,出图、出报告这些交付动作也顺畅,整个设计周期能省不少时间。
2. 指标拆解与初始结构选型:成败就在前两步
2.1 先把指标量化到每一档
设计开始前,指标不能含糊。我这里用的是三档变形物镜的典型需求:
- 系统总焦距三档:40mm、80mm、160mm,对应1倍、2倍、4倍状态
- 基础物镜:40mm F/2.8,双高斯结构
- 靶面:1/1.8英寸,对角线约8.9mm
- 工作波段:可见光486nm至656nm,主波长587.6nm
- 后工作距:不小于17.5mm,适配C接口
- 像质目标:各档在特征频率50lp/mm处,中心MTF不低于0.4,0.7视场不低于0.3
视场角要先算明白。对角线视场角公式是2×arctan(像面对角线/(2×焦距)),于是:
- 40mm档对角线视场约12.7度
- 80mm档约6.4度
- 160mm档约3.2度
这个数据一眼看去很直观,但它告诉你一个重要结论:高倍档的视场角小、像差放大倍数大,像质通常是最难啃的一块。设计资源要往高倍档倾斜。
2.2 前置附加镜方案:为什么它天然适合多档
前置附加镜的本质是一个伽利略望远镜:单片正透镜做物镜,单片负透镜做目镜,两者间隔等于正负透镜焦距绝对值之差,出射光为平行光,系统无焦。把这个无焦系统放在基础物镜前面,系统的总焦距等于基础焦距乘以望远镜角倍率。
角倍率公式:
M = f正 / |f负|
以正组f=+100mm为例:
- 2倍档:负组焦距-50mm,间隔=100-50=50mm
- 4倍档:负组焦距-25mm,间隔=100-25=75mm
这里最大的红利在于:伽利略望远镜是无焦系统,它不改变后方基础物镜的像面位置。也就是说,无论你插入2倍还是4倍的附加镜,后工作距理论上都不变,切换档位后不需要重新调焦。跟变倍组轴向移动方案比,这一步省掉了最棘手的像面稳定性补偿问题,机械结构也简单得多。
当然它也有代价:附加镜会让系统入瞳位置和口径发生变化,高倍档的F数会按倍率放大。4倍时系统等效F数约为11.2,当然比1倍档的F/2.8暗不少。这在很多观察类和测量类设备里可以接受,因为高倍档通常配合更强的照明或更长的曝光时间。如果产品硬性要求各档F数一致,就不该选这个方案,而要上带孔径光阑切换的连续变倍结构。
2.3 OCAD里的初始数据准备
初始结构我分两块录入:
第一块是基础物镜。一个40mm F/2.8双高斯,结构数据来自成熟参考设计,镜片材料走常规路线,比如K9、ZF系列做主副镜。这部分录入OCAD后先单独验证一遍像质,确认基础没问题再往后走。
第二块是附加镜。2倍档和4倍档各一组,每组都是正负两片。为了控制色差和高级球差,正负单片我一开始就按双胶合设计了,也就是一组附加镜实际是两片胶合透镜。这样OCAD数据表里每个档位插进来的是两个标准面,建模工作量不大,但像质余量明显好于单透镜。
口径估算也不能疏忽。像方F数定了,物方光束口径由焦距和视场共同决定。40mm档全视场12.7度时,前组通光口径至少要在25mm以上,我实际取到35mm左右留足装配余量。OCAD里把这些口径直接作为面数据输入,后续优化时再根据光线追迹结果微调。
3. 在OCAD中建立多组态模型:核心实操环节
3.1 多组态建立的完整流程
OCAD里做多组态,核心操作思路是先把基准状态完整建起来,再复制扩展出其他状态。我前面按1倍、2倍、4倍三个状态来组织,具体流程如下:
第一步,录入基础物镜。把40mm双高粱的全部面数据——曲率半径、厚度、玻璃牌号、半口径——都输进去,作为组态1。光阑位置按双高斯的设计习惯放在镜组中部,也就是孔径光阑通常在双高斯的两片胶合之间。
第二步,在OCAD的组态管理里新增组态2和组态3。复制组态1的数据作为起点,保证三套组态的基础物镜部分初始参数一致,省得后面手动同步。
第三步,在组态2的基础物镜前方插入附加镜。OCAD支持在任意位置插入面,这里插四个面:正组胶合的两个面+负组胶合的两个面,间隔按表中数据填。组态3同样操作,只改负组焦距和间隔。
这里有一个操作细节:附加镜的间隔到底按哪个面算,必须跟数据表定义的口径方向一致,否则差一个焦距的符号就能让整个组态离焦几毫米。我一般先算一遍近轴焦距,确认和设计值对上再继续。
| 组态 | 正组焦距 | 负组焦距 | 正负组间隔 | 系统总焦距 | 备注 |
|---|---|---|---|---|---|
| 1(1倍) | — | — | — | 40mm | 基础物镜单独工作 |
| 2(2倍) | +100mm | -50mm | 50mm | 约80mm | 附加镜插入 |
| 3(4倍) | +100mm | -25mm | 75mm | 约160mm | 附加镜插入 |
3.2 光阑、孔径和视场在各档位的设置
多组态模型最容易出问题的就是光阑和视场的匹配。
看我这个案例:光阑放在基础物镜内部,附加镜在光阑前方。插入附加镜后,系统的入瞳位置跑到了附加镜前方,入瞳口径也随倍率变化。OCAD里如果你锁死了光阑面,它会在每个组态里自动重算入瞳位置,这个逻辑是对的,你要做的是确认各档的物方孔径角符合F数预期。
视场设置这里有个常见误区:多档系统的视场在每个档位是变了的,但像高没变。所以我习惯在OCAD里用“像高+物方角度”混合定义视场。三个组态的物方半视场角分别是6.35度、3.2度、1.6度左右,像高都用4.45mm(半像高)。这样各组态的视场彼此独立,优化时不会互相串扰。
波长权重也要统一设置:486nm、587.6nm、656nm,按典型可见光权重分配。不同组态用同一套波长设置,像差评价结果才能横向对比。
3.3 像面一致性的验证方法
虽然理论说无焦附加镜不改变后工作距,但实际镜头有厚度、有像差,不是理想近轴模型。在OCAD里验证像面一致性是必须的动作。
具体做法:三个组态都追迹轴上光线和边沿光线,读后截距。如果三组后截距一致,说明像面重合;如果差了几毫米,先查附加镜的正负组间隔是不是严格满足无焦条件,再查玻璃厚度数据有没有录错。还有一种情况是基础物镜的场曲在像面边缘不平衡,导致不同档位边缘清晰度不一致——这个属于像差层面问题,放到第四章一起处理。
我第一次做这套系统时,4倍档后截距比1倍档短了0.8mm。排查后发现是负组胶合的等效厚度算错了一个面。改回来之后三档后截距完全对齐,这个经验说明:无焦系统的理论优势是前提,但细节数据一个都不能马虎。
4. 像差评价与多组态优化:把像质一步一步逼出来
4.1 先看像差,再动手优化
多档系统的像差分析有一个基本顺序:先看单色像差,再看色差,最后看高级像差。OCAD的点列图、光线扇形图和像差曲线都能直接调出来,我习惯每个档位都过一遍这三样。
第一轮分析下来的典型结果是这样的:1倍档基础物镜本身的像质尚可,球差和彗差保持在合理范围;2倍档因为附加镜的口径不大,像差增加不算夸张;4倍档最难看,边缘光线在附加镜正组上的入射高度高,球差和轴向色差明显放大,点列图RMS半径接近1倍档的三倍。
这里要摊开说一个规律:附加镜的倍率越高,光线在其正组上的入射高度越大,高级球差和色差的贡献就越突出。所以高倍档通常成为整个系统的像质瓶颈,优化策略必须围绕它设计。
色差也是重点。单透镜附加镜的双胶合设计在这里就是必要项——胶合正组用低色散K9和色散稍大的ZF错开,负组类似。这样胶合面产生补偿色差,各档的轴向色差和倍率色差能同时得到控制。如果坚持用单透镜,4倍档的色差大概率收不回来。
4.2 多组态优化的变量与权重策略
OCAD的优化思路与其他光学软件通用:定义变量、构建评价函数、执行迭代。但多组态设计里变量和权重的分配是有讲究的。
我的做法分三个阶段:
第一阶段,变量只有附加镜的面曲率和间隔。基础物镜全部面锁定。这样先保证附加镜本身像差平衡,不让基础物镜的参数受到附加镜的连累。
第二阶段,放开基础物镜后组的部分面。具体说,把双高斯后组的两个曲率半径设为变量,间隔暂时不动。这样做的原因是,附加镜的加入改变了系统的光瞳像差,基础物镜后组需要微微调整来适应新的光路。
第三阶段,所有变量一起优化,但给三个组态设置权重。OCAD里每个组态可以配权重,然后整体作为优化目标。权重我按4倍档1.3、2倍档1.0、1倍档0.8来给。这个权重分配的目的是让像质压力向高倍档倾斜,又不至于让低倍档劣化到不可用。
评价函数方面不要贪多。我一般用所有视场的RMS spot半径作为主要目标,再加两个附加约束:系统总焦距在每个组态保持目标值,边缘光线在像面的入射高度不要超出探测器范围。焦距约束特别重要——优化过程中焦距跑了,档位就名存实亡。
4.3 优化过程中的经验与禁忌
优化是一个反复拉扯的过程,其中有不少值得记下来的坑。
第一,不要在优化初期放开所有变量。我见过同行一上来把几十个曲率半径全部解锁,结果OCAD在解空间里乱跳,跑了两个小时也不收敛。多组态比单组态耗时长得多,变量少而精才是正解。
第二,玻璃材料不要轻易换。很多人优化不收敛就考虑换玻璃,其实换玻璃会改变色差平衡,牵一发动全身。正确的做法是先保持材料不变,把所有几何变量调到极限再说。实在不行了,再定向替换某一两片,每次只动一个品种,重新优化后对比像质。
第三,杂散光和鬼像要在优化中期就检查。OCAD能做鬼像分析,多组态系统里附加镜的胶合面是鬼像高发区。如果发现某个面产生的鬼像正好落在探测器敏感区域,宁可牺牲一点像质,也要调整面形或者间隔把它移出去。这个坑等到后期发现,返工成本非常高。
第四,优化收敛后要回看中间像面。前置附加镜方案里附加镜和基础物镜之间存在一个虚拟的中间像面,光路在这个位置可能发生交叉或者临近遮挡。OCAD里追迹实际光线可以看到光束直径,如果中间像面附近的光束直径大于镜筒内径,说明机械结构上过不去,必须对间隔做调整。
这套三档系统最终优化结果:4倍档中心MTF在50lp/mm处做到0.45,0.7视场0.32;2倍档和1倍档都明显优于目标值。三个档位的RMS spot半径基本控制在艾里斑半径以内,畸变在2%以下。从第一轮分析到收敛,大约花了四轮迭代,每轮调整的变量都不超过六个。
5. 公差分析与机械切换约束:设计能落地才算完
5.1 公差项的设定与灵敏度排序
光学设计不能停在评价函数好看的阶段,公差分析是落地前必须过的关。OCAD的公差分析我通常按两类走:灵敏度分析加蒙特卡洛统计。
公差项先按加工厂的实际能力给,不要拍脑袋追求极端精度。常用的初值:曲率半径公差±3个光圈、镜片厚度±0.05mm、空气间隔±0.05mm、镜片偏心±0.03mm、镜片倾斜±0.03度。材料折射率公差按牌号等级,通常给到±0.001。
灵敏度分析的结果一出来,问题往往集中在几个点上:
| 公差项 | 对像质影响程度 | 处理建议 |
|---|---|---|
| 附加镜正组与负组的空气间隔 | 极高,尤其4倍档 | 收紧到±0.02mm,切换机构上加精密垫片 |
| 附加镜整体偏心 | 高,影响倍率色差 | 收紧到±0.02mm |
| 基础物镜后组间隔 | 中 | 保持常规公差即可 |
| 镜片厚度 | 低 | 放宽到±0.08mm,降低成本 |
蒙特卡洛按500次随机抽样,合格判据是各档MTF下降不超过设计值的20%。模拟结果通常显示高倍档的良率是最低的,因为它对间隔公差最敏感。解决办法就是上面表格里的定向收紧:只把高敏感公差收紧,不敏感项不花冤枉钱。
5.2 机械切换结构怎么反过来约束光学
多档变形系统的机械实现和光学设计必须放在一起考虑。转塔式切换的附加镜框架,旋转重复定位精度直接决定光学性能的稳定性。我在设计阶段就做了一个事:把切换机构的定位误差作为一个额外的公差项加进蒙特卡洛模拟里考虑,比如转塔转角误差折算成附加镜倾斜±0.02度、轴向位置误差±0.015mm。
结果证实了我的担心:4倍档对这个机械误差极其敏感,轴向位置误差超过0.02mm时MTF掉得肉眼可见。所以我最后在转塔结构上加了锥面定位机构,把轴向重复定位精度锁在±0.01mm以内,光学公差分析才显示良率达到要求。
另外,附加镜组重量对机械的影响也别忽略。4倍档的胶合镜组比2倍档大不少,转塔两侧重量不平衡会导致旋转到位后残余振动。我在光机设计协调会上给机械工程师提了两个要求:一是附加镜框架材料用轻量化金属,二是切换到位后加一个小阻尼吸振结构。这些细节看起来跟光学无关,但它们最终都会以偏心、倾斜误差的形式反馈到系统像质上。
5.3 环境适应性检查
多档系统常在户外使用,温度影响必须过一遍。OCAD可以结合材料热膨胀系数和折射率温度系数做无热化分析。我的做法是取-20度和50度两个极端温度,看各档的像面漂移和MTF变化。
因为附加镜是独立插在基础物镜前的,温度变化时各镜组的间隔变化可能不一致,导致像面漂移方向不同。实测分析下来,温差30度时4倍档的焦面漂移超过0.1mm,超出了无热化容许范围。这里我用了一点被动无热化设计:把附加镜的镜筒材料选成和基础物镜镜筒线膨胀系数不同的金属,利用长度变化反过来补偿镜组间隔变化。改完材料匹配后,全温区像面漂移控制在0.03mm以内。
6. 常见问题与排查技巧实录
每次做完一套系统,都会攒下一些典型问题。这里挑五个频率最高的分享。
第一,高倍档像质突然崩坏。症状是4倍档MTF断崖式下降,点列图散得很开。原因多数在附加镜正组的球差和色差没有消干净,或者正负组间隔离设计值偏差太大。排查方法:先在OCAD里做近轴焦距核对,确认倍率是否准确;再看赛德尔系数的分布,哪个像差类别异常放大,就针对哪个面去调。
第二,切换档位后画面忽明忽暗。这不是像质问题,是各档F数变化导致的通光量差异。前置附加镜方案里这个现象几乎必然存在。处理手段可以在系统端增加中性密度片补偿,或者接受差异后用快门和增益来平衡。关键是在设计时就要明确告知产品端这个特性,别等到样机测试才发现,到时候改方案就很被动。
第三,边缘畸变明显。附加镜的负组会产生比较明显的桶形畸变,尤其在低倍档边缘。检查OCAD畸变曲线,如果超过目标值,优化函数里显式加入畸变约束,或者把负组胶合的胶合面曲率重新分配。这个改善通常不难,但要注意畸变约束过紧会挤压其他像质的优化空间,要反复权衡。
第四,切换后光轴偏移。机械切换结构的重复定位精度不够,附加镜插回原位时跟基础物镜不同轴,表现为像面一侧清晰一侧模糊,或者点列图不对称。排查时先在OCAD里单独建一个带偏心的组态模拟,看多少偏心对应多大像质损失,然后把这个数值反馈给机械工程师作为定位精度指标。
第五,优化迭代不收敛、评价函数来回震荡。概率最高的原因是组态权重设置不当,某个组态的评价函数值量级比其他组态大一两个数量级,权重失衡导致迭代在组态之间反复横跳。解决办法是把各组的RMS spot半径归一化之后再看权重配比,同时减少同时变化的变量数量。
设计多档变形系统这活,说到底考验的是两件事:能不能把档位之间的耦合关系想清楚,以及能不能耐心地做多组态平衡优化。OCAD提供了足够趁手的工具,但决定系统上限的,还是你对像差本质的理解和对工程约束的把握。
这套三档系统的完整版本在项目里最终顺利交付,后续量产良率也在合格线之上。回过头来最深的体会是:多档系统的设计周期里,花在“想清楚再动手”上的时间永远值得。前置附加镜方案帮我省掉了大量的像面补偿工作,多组态权重优化帮我同时守住了三个档位的像质底线,而公差分析和机械约束的双向校验,让样机一次就装调成功。如果你也要做类似的多档变形系统,先别急着建模型,把档位指标、机构实现方式、公差能力这三张表列清楚,后面所有工作都会顺很多。