光学镜头设计是一门融合几何光学、物理光学、材料科学和精密机械的综合性工程学科。对于刚接触的工程师或学生而言,面对复杂的像差理论、繁多的设计参数和专业的软件操作,常常感到无从下手。本文旨在提供一个从零开始的、可实践的手把手教学节选,将聚焦于一个经典且基础的设计目标:设计一个用于可见光波段、焦距为50mm、F数为2.0的简单双胶合消色差透镜。我们将从设计目标定义、初始结构计算、软件建模、像差分析与优化,到最终性能评估,完整走一遍流程。通过这个过程,读者不仅能学会使用光学设计软件(以Zemax OpticStudio为例)的基本操作,更重要的是理解镜头设计背后的核心逻辑:如何在众多变量中寻找平衡,以达成特定的成像质量要求。本文假设读者具备基础的几何光学知识,并已安装相关软件。
1. 理解设计目标与初始结构计算
在打开软件之前,必须明确设计目标,这决定了整个设计的起点和评价标准。盲目地在软件中调整参数是低效的。
1.1 明确设计规格
我们的目标是设计一个用于可见光(通常取F, d, C三条谱线,对应486.1nm, 587.6nm, 656.3nm)的消色差透镜。具体规格如下:
- 焦距 (EFL): 50 mm
- F数 (F/#): 2.0
- 成像波段: 可见光 (486nm - 656nm)
- 透镜类型: 双胶合透镜 (由一片冕牌玻璃和一片火石玻璃胶合而成)
- 主要像差校正目标: 球差、彗差、位置色差
根据F数可以推导出入瞳直径 (EPD) = 焦距 / F数 = 50mm / 2.0 = 25mm。这是后续光线追迹的基础。
1.2 计算初始结构参数
对于双胶合消色差透镜,我们可以利用薄透镜理论进行初始估算,为软件优化提供一个合理的起点。主要计算三个参数:两片透镜的光焦度(焦距的倒数)和胶合面的曲率半径。
1. 总光焦度分配:假设透镜系统在空气中,总光焦度 Φ = 1 / EFL = 1/50 = 0.02 mm⁻¹。 设冕牌玻璃透镜的光焦度为 Φ1,火石玻璃透镜的光焦度为 Φ2,则有 Φ1 + Φ2 ≈ Φ。
2. 消色差条件:对于薄透镜紧密接触的双胶合透镜,消色差条件近似为: Φ1 / ν1 + Φ2 / ν2 ≈ 0 其中,ν1和ν2分别是冕牌玻璃和火石玻璃的阿贝数。阿贝数越大,色散越小。通常选择阿贝数大的冕玻璃和阿贝数小的火石玻璃组合。 例如,选择常见玻璃:冕牌玻璃选用 H-K9L (nd=1.5168, νd=64.17),火石玻璃选用 H-ZF2 (nd=1.6725, νd=32.17)。
联立上面两个方程: Φ1 + Φ2 = 0.02 Φ1/64.17 + Φ2/32.17 = 0
解这个方程组,可得: Φ1 ≈ 0.0367 mm⁻¹ (对应焦距 f1 ≈ 27.25mm) Φ2 ≈ -0.0167 mm⁻¹ (对应焦距 f2 ≈ -59.88mm)
3. 估算曲率半径:利用透镜制造者公式的简化形式(薄透镜,在空气中): Φ = (n - 1) * (1/R1 - 1/R2) 对于双胶合透镜,有三个面:前表面(空气-冕玻璃)、胶合面(冕玻璃-火石玻璃)、后表面(火石玻璃-空气)。我们通常先确定胶合面的曲率,因为它对像差平衡很关键。 一个常用的初始设定是让两片透镜的贡献平均分配光焦度,并假设前两个面等弯月形。更简单实用的方法是采用“弯曲”的方法,先为系统设定一个大致形状。我们可以从专利库或教材中找到一个接近的初始结构,但作为教学,我们设定一个简单的起点:
- 设定第一面为平面(无限大半径)。
- 根据Φ1和玻璃折射率n1,利用公式计算第二面(胶合面)的曲率半径R2。
- 再根据Φ2、n2和已知的R2,计算第三面的曲率半径R3。
计算过程略(涉及符号约定),一个可行的初始结构数值如下表所示:
| 面序号 | 面型 | 曲率半径 (mm) | 厚度 (mm) | 玻璃材料 | 半口径 (mm,估算) |
|---|---|---|---|---|---|
| OBJ | 标准面 | Infinity | Infinity | ||
| STO | 标准面 | Infinity | 0.0 | 12.5 (入瞳半径) | |
| 1 | 标准面 | Infinity | 4.0 | H-K9L | ~15 |
| 2 | 标准面 | -100.0 | 2.0 | H-ZF2 | ~15 |
| 3 | 标准面 | 150.0 | 45.0 | ~15 | |
| IMA | 标准面 | Infinity |
注意:这是一个非常粗略的起点。曲率半径和厚度值是基于经验假设的,目的是让系统有一个正的焦距并能开始光线追迹。真正的优化将完全依赖软件。
2. 在 Zemax OpticStudio 中建立模型
有了初始结构参数,我们开始在软件中搭建模型。这里以 Zemax OpticStudio 界面为例进行说明。
2.1 创建新文件与系统设置
- 打开 Zemax OpticStudio,新建一个空白序列模式文件。
- 进入
System Explorer->General,设置孔径类型为“Entrance Pupil Diameter”,值设为25mm(根据F数计算得出)。 - 设置视场:在
Fields中,添加2-3个视场点,例如:0度(轴上),10度,14度。类型选择“Angle (Deg)”。 - 设置波长:在
Wavelengths中,添加F, d, C三条谱线(486.1nm, 587.6nm, 656.3nm),并将d光设为主波长。
2.2 输入透镜数据
在Lens Data Editor中,按照我们计算的初始结构输入数据。
- 第0面是物面(OBJ),厚度设为无限远(1e10)。
- 第1面是光阑面(STO)。将其“面型”栏标记为“STO”,厚度设为0。光阑通常放在透镜第一面之前。
- 第2面是透镜第一面。曲率半径设为“Infinity”(平面),厚度设为4.0,玻璃材料栏输入“H-K9L”。
- 第3面是胶合面。曲率半径设为-100.0,厚度设为2.0,玻璃材料栏输入“H-ZF2”。
- 第4面是透镜最后一面。曲率半径设为150.0,厚度设为45.0(这个厚度是后截距,即最后一面到像面的距离,需要优化)。
- 第5面是像面(IMA)。曲率半径不变,厚度留空。
输入完成后,Lens Data Editor应类似于下表:
| Surf:Type | Comment | Radius | Thickness | Glass | Semi-Diameter |
|---|---|---|---|---|---|
| OBJ:Stand | Infinity | 1.00E+10 | 0.000 | ||
| 1:Stand | STOP | Infinity | 0.000 | 12.500 | |
| 2:Stand | Infinity | 4.000 | H-K9L | 15.000 | |
| 3:Stand | -100.000 | 2.000 | H-ZF2 | 15.000 | |
| 4:Stand | 150.000 | 45.000 | 15.000 | ||
| IMA:Stand | Infinity | 13.392 |
2.3 检查初始性能
在优化前,先查看当前初始结构的性能,建立一个基准。
- 打开
Analysis->Reports->System Data,查看EFFL(有效焦距),此时它很可能不是50mm。 - 打开
Analysis->Fans->Ray Aberration,查看光线像差图。你会看到很大的球差和色差。 - 打开
Analysis->Spot Diagrams,查看点列图。光斑会非常大且弥散。
这些图表确认了我们的初始结构确实需要优化。
3. 设定优化目标与执行优化
优化是镜头设计的核心环节,即通过调整变量,使系统性能向预定目标靠近。
3.1 设置变量与边界条件
我们需要告诉软件哪些参数可以调整,以及调整的范围。
- 设置变量:在
Lens Data Editor中,将我们希望优化的参数设为变量(V)。通常将两个透镜的三个曲率半径(R2, R3, R4)和两个透镜的厚度、后截距设为变量。玻璃材料也可以设为“替代(Substitute)”变量,但本次我们先固定材料。- 点击R2(-100.000)单元格,按Ctrl+Z,或右键选择“Solve Type” -> “Variable”。该单元格会显示“V”。
- 同样,将R3(150.000)、R4(Infinity,即像面前一面)、厚度2(4.000)、厚度3(2.000)、厚度4(45.000)设为变量。
- 设置边界条件:在
System Explorer->General->Aperture确保入瞳直径正确。同时,需要控制边缘光线和中心光线的走向,防止透镜形状变得不切实际(如中心太厚或边缘太薄)。这通常通过控制光线在透镜表面的入射高度和角度来实现,更直接的方法是设置曲率半径和厚度的边界条件。- 进入
Optimization->Operands,我们可以添加控制透镜中心厚度和边缘厚度的操作数(如CTGT, ETGT)。
- 进入
3.2 构建评价函数
评价函数是一个数值,它综合反映了当前系统与设计目标的差距。软件的目标就是最小化这个函数。
- 打开
Optimization->Optimization Wizard。 - 优化函数:选择“RMS” -> “Spot Radius” -> “Centroid”。这是一种常用的基于点列图均方根半径的优化方式。
- 参考点:选择“Chief Ray”。
- 视场和波长:选择“All”。这样会综合考虑所有视场和所有波长的像差。
- 点击“OK”,软件会自动生成一系列默认的操作数(如EFFL控制焦距,SPHA控制球差,COMA控制彗差等)并构建一个初始的评价函数。我们需要手动添加最关键的操作数。
- 在
Optimization->Operands中,手动添加以下操作数:EFFL: 目标值50,权重设为1。控制焦距。TTHI: 控制最后一面到像面的距离(后截距),给它一个合理的范围,例如大于35mm。MNCA, MXCA: 控制透镜中心最小和最大厚度,确保可加工性。MNEG, MXEG: 控制透镜边缘最小和最大厚度。
一个简化的评价函数编辑器内容示例如下:
# 示例操作数列表(非完整) 1 EFFL 目标值=50,权重=1 2 TTHI 操作面=4,目标值=40,权重=0.5 3 SPHA 权重=0.3 4 COMA 权重=0.3 5 AXCL 控制轴向色差,权重=1 ... (其他由向导生成的RMS点列图操作数)3.3 执行优化
- 点击
Optimization->Optimize!(或按F5)开始优化。 - 软件会迭代调整变量,试图降低评价函数值。可以观察评价函数值“Merit Function”的下降过程。
- 优化可能会陷入局部最小值。如果评价函数值不再显著下降,但性能仍未达标,可以尝试:
- 锤化优化:使用
Optimization->Hammer Optimization,它能在更大范围内搜索变量空间,更有可能找到全局较优解,但耗时更长。 - 调整变量:释放更多变量(如将某个固定曲率改为变量),或暂时固定一些变量。
- 修改评价函数权重:增加未达标像差对应的操作数权重。
- 锤化优化:使用
4. 分析优化结果与像差平衡
优化不会产生一个“完美”的镜头,而是在各种像差和约束之间取得最佳平衡。我们需要学会解读分析图。
4.1 关键性能指标检查
优化几轮后,检查以下关键指标:
- 焦距:查看
System Data中的EFFL,应接近50mm。 - F数:检查
System Data中的Image Space F/#,应接近2.0。 - 后截距:检查最后一面到像面的距离,应满足预留空间要求。
- 透镜外形:打开
Analysis->Layout->2D Layout,查看透镜的剖面图。检查透镜是否过薄、过厚、形状是否怪异(如弯月形过于极端),这关系到加工可行性。
4.2 像差图分析
- 点列图:
Analysis->Spot Diagrams。这是最直观的评价方式。查看各视场下,光斑的RMS半径和几何半径(GEO Radius)。对于F/2.0的镜头,RMS半径通常希望小于艾里斑半径(约6-8μm量级)。我们的设计可能还达不到,但可以看到相比初始结构有巨大改善。 - 光线像差图:
Analysis->Fans->Ray Aberration。这张图将各种像差分解开来。- X轴是归一化光瞳坐标。
- Y轴是像差大小(单位通常是微米或毫米)。
- 不同颜色的曲线代表不同波长。
- 曲线在Y轴的偏移代表畸变。
- 曲线的斜率代表离焦。
- 曲线的曲率代表球差。
- 不同视场曲线的分离代表彗差、像散等。
- 理想情况下,我们希望所有视场、所有波长的曲线都尽可能贴近Y=0的横轴。
- 调制传递函数:
Analysis->MTF->FFT MTF。MTF是评价成像系统分辨率和对比度传递能力的权威指标。查看各视场下,不同空间频率(如0-100 lp/mm)的MTF曲线。曲线越高、越平缓越好。对于50mm F/2镜头,在50 lp/mm处,轴上MTF值大于0.3通常是可以接受的目标。
4.3 像差平衡的艺术
你可能会发现,优化后轴上点(0视场)的球差和色差减小了,但边缘视场(如14度)的像散或场曲变大了。这就是像差平衡的典型体现。设计者需要根据镜头的用途来权衡:
- 如果用于中心视场高分辨率拍摄,可以牺牲边缘像质。
- 如果用于广角目镜,则需要重点控制边缘像差。
此时,你可以返回Optimization Operands,调整不同视场的权重。例如,增加边缘视场操作数的权重,迫使软件更多地优化边缘性能。
5. 常见问题、陷阱与生产考量
光学设计从软件仿真到实际产品,中间有大量工程细节需要处理。
5.1 软件优化中的常见陷阱
| 问题现象 | 可能原因 | 检查与解决思路 |
|---|---|---|
| 优化停滞,评价函数不降 | 陷入局部最小值;变量间耦合太强;边界条件冲突。 | 1. 尝试“锤化优化”。 2. 暂时固定部分变量,分阶段优化。 3. 检查操作数是否矛盾(如同时要求极短后截距和极小畸变)。 4. 换一组不同的初始结构重新开始。 |
| 透镜形状怪异(边缘极薄或中心孔) | 评价函数缺乏对透镜形状的约束;优化过度追求像质而忽略工艺。 | 1. 添加控制中心厚度(CT)、边缘厚度(ET)的操作数(如MNCA,MXCA,MNEG,MXEG)。2. 添加控制曲率半径合理性的操作数。 |
| 焦距始终不达标 | EFFL操作数权重太低;变量自由度不够。 | 1. 提高EFFL操作数的权重。2. 检查是否将关键的曲率或厚度设为了变量。 |
| 高级像差(如倍率色差)难以校正 | 当前玻璃组合或透镜形式可能不足以校正。 | 1. 考虑使用更特殊的玻璃组合。 2. 增加透镜片数(如三片式)。 3. 将双胶合改为分离式,增加一个可变量。 |
5.2 从设计到生产的考量要点
软件中的理想模型需要经过一系列转换才能成为可制造的图纸。
- 公差分析:这是决定设计能否量产的关键。通过
Tolerance功能,给每个曲率半径、厚度、偏心、倾斜等参数赋予一个合理的加工公差(如半径±0.05%,厚度±0.02mm),然后进行蒙特卡洛分析,评估在公差范围内,系统性能(如MTF)的良率。如果良率过低,说明设计对加工误差太敏感,需要重新优化一个更“宽松”的设计。 - 鬼影与杂散光分析:非成像光线在镜片间多次反射会形成鬼影。需要使用非序列模式或专门的杂散光分析工具来模拟和抑制。
- 环境效应分析:温度变化会导致镜片折射率和机械结构变化,从而离焦。需要进行热分析,并通过主动/被动方式补偿。
- 镀膜要求:在
Lens Data Editor中可以为每个面定义增透膜,以减少表面反射损失。对于F/2.0的镜头,每个空气-玻璃界面反射约4%的光,多个面累积会导致严重光损失和眩光。 - 图纸输出:最终需要生成包含所有面型、公差、材料、镀膜要求的详细图纸。Zemax的
Reports->Prescription Data可以生成部分数据,但完整图纸通常需要在CAD软件中完成。
5.3 设计流程检查清单
完成一个镜头设计后,建议按此清单复查:
- [ ]规格满足:EFL, F/#, 后截距,通光孔径是否达标?
- [ ]像质达标:中心及边缘视场的点列图/RMS半径、MTF曲线是否满足应用要求?
- [ ]像差平衡:各种像差图是否显示各视场像差得到了合理平衡?
- [ ]结构合理:2D布局图中,透镜形状是否无异常弯曲?中心与边缘厚度是否在可加工范围内(通常>0.5mm)?
- [ ]公差敏感度:是否进行了初步公差分析?性能下降是否在可接受范围?
- [ ]工艺性:是否有极端凹面(易加工)或超大陡峭面(难镀膜)?胶合面两边玻璃的热膨胀系数是否匹配?
- [ ]成本:所选玻璃是否为常用、环保材料?是否可用更便宜的替代材料达到近似性能?
6. 扩展方向与深入学习建议
本次设计的双胶合透镜是光学设计的“Hello World”。掌握了这个流程,你可以向更复杂、更实用的设计迈进。
- 复杂化镜头结构:尝试设计三片式库克镜头、双高斯镜头(大光圈人像镜头常用)、远摄或反远摄结构。理解每种结构形式校正像差的内在原理。
- 引入非球面:在透镜中引入一个非球面,可以极大地校正球差、彗差等,简化结构。学习非球面系数的含义和优化技巧。
- 变焦镜头设计:学习如何通过移动镜组来实现焦距连续变化,同时保持像质稳定。这是光学设计中难度较高的领域。
- 衍射光学元件:研究如何利用衍射光学元件来校正色差、热差,实现轻薄化设计。
- 系统集成分析:将设计好的镜头与传感器(考虑像素大小、微透镜)、机械结构(考虑装配公差)一起进行系统级性能分析。
- 学习其他软件:Code V, LightTools, FRED 等软件各有侧重,掌握多种工具能拓宽解决问题的能力。
最好的学习方法是实践加理论。找一些公开的专利镜头数据,在软件中复现它,然后尝试优化它,或者改变其焦距、F数等规格,观察像差如何变化。同时,精读像差理论经典教材,如《光学系统像差概论》,将软件中的现象与理论公式对应起来,才能真正理解光是如何被驾驭的。记住,光学设计没有唯一解,它是在多重约束下寻找最优妥协方案的艺术。