如果你是一名光学工程师、工业设计师,或者正在学习光学相关专业,那么你一定遇到过这样的困境:面对Zemax、CodeV等专业光学设计软件,感觉无从下手;看到复杂的像差理论、优化函数和评价标准,觉得光学设计高深莫测;想要设计一个简单的镜头,却不知道从何开始,更不用说优化到量产级别了。
这篇文章要解决的问题,正是打破这种“光学设计很难”的固有印象。我将通过一个从零开始、手把手的镜头设计实战案例,向你展示光学设计的核心流程并非遥不可及。我们不会陷入繁琐的数学公式推导,而是聚焦于工程化的设计思维和软件操作逻辑。读完本文,你将能清晰地理解一个镜头从规格定义、初始结构选择、参数优化到像差分析与控制的完整闭环,并能够自己动手复现这个过程。更重要的是,你会掌握一种“解决问题”的思路,而不仅仅是记住几个按钮的位置。
本文节选并重构自一个完整的单透镜设计教学案例,我们将设计一个用于机器视觉的定焦工业镜头。它的目标很明确:在有限的成本和复杂度下,满足特定的视场、分辨率和像质要求。让我们暂时忘掉那些令人望而生畏的理论,直接从打开软件、输入第一个面型开始。
1. 光学设计到底在解决什么问题?
在深入操作之前,我们必须先统一认知:光学设计的本质是什么?它不是艺术创作,而是一个在多重约束下寻找最优解的工程问题。
这些约束通常包括:
- 性能约束:分辨率(MTF)、畸变、色差、场曲等像质要求。
- 物理约束:总长、口径、后截距(BFL)等机械尺寸限制。
- 成本与工艺约束:镜片数量、玻璃材料价格、非球面使用、公差敏感度等。
- 环境约束:温度范围、振动等。
设计师的工作,就是在这些常常相互矛盾的约束中,通过调整镜片的曲率、厚度、间距、材料以及面型(球面/非球面),找到一个平衡点。现代光学设计软件(如Zemax)的核心价值,就是提供了强大的数值优化引擎,帮助设计师在这个高维参数空间中快速导航,找到局部或全局较优解。
所以,学习光学设计,第一步是建立“约束-变量-优化”的思维模型。我们的设计过程,就是不断明确约束、释放变量、评估结果、调整策略的迭代循环。
2. 设计起点:明确规格书 (Specifications)
任何设计都始于一份清晰的规格书。凭空想象是无法开始设计的。对于我们的定焦工业镜头,假设我们收到如下客户需求(这是一个非常典型的场景):
- 传感器:1/1.8英寸CMOS,像元尺寸3.45μm。
- 焦距 (EFL):16mm。
- F数 (F/#):2.8(关系到通光量和景深)。
- 视场角 (FOV):对角线视场≥ 28°(对应传感器尺寸计算得出)。
- 接口:C接口,后截距 (BFL) ≥ 6mm。
- 总长 (TTL):尽可能短,目标<40mm。
- 像质要求:
- 全视场MTF @ 145 lp/mm > 0.3(基于像元尺寸计算,Nyquist频率≈1/(2*3.45μm)=145 lp/mm)。
- 相对畸变 < 2%。
- 无渐晕(要求相对照度>80%)。
关键计算步骤:
- 传感器尺寸:1/1.8英寸格式的对角线长度约为9mm。根据焦距16mm,可估算半视场角:ω = arctan( (像高/2) / 焦距 ) = arctan( (9/2) / 16 ) ≈ 15.8°。因此全视场角约31.6°,满足≥28°的要求。
- F数决定入瞳直径:入瞳直径 = 焦距 / F数 = 16mm / 2.8 ≈ 5.71mm。这是镜头前端需要的最小通光口径。
这些规格将贯穿我们整个设计过程,成为所有优化和评价的准绳。
3. 环境准备与软件设置
我们使用Zemax OpticStudio进行演示(版本22.9以上均可,界面逻辑类似)。即使你使用CodeV或其他软件,核心思路也完全一致。
- 新建镜头文件:打开Zemax,选择“File -> New”。
- 系统孔径设置:在“System Explorer -> Aperture”中,类型选择“Image Space F/#”,值输入2.8。这告诉软件我们的系统F数是2.8。
- 视场设置:在“Fields”中,我们通常设置3-5个视场点。对于轴对称系统,可以设置0(轴上)、0.7(0.7视场)和1.0(最大视场)三个点。类型选择“Angle (Deg)”,输入0, 10.5, 15(对应半视场角,最大15°来自之前计算)。
- 波长设置:在“Wavelengths”中,添加可见光波段常用的几个波长,例如F, d, C光(486.1nm, 587.6nm, 656.3nm),权重分别为1,2,1。这用于控制色差。
- 初始结构:从专利库或简单模型开始:对于新手,不建议从零(单透镜)开始优化复杂镜头,效率极低。Zemax内置了“Lens Catalog”功能,可以搜索接近规格的专利镜头。我们也可以从一个简单的双胶合透镜开始,作为优化的起点。
- 在“Lens Data Editor”中,输入以下初始结构(表面1为物面,表面2为光阑面,表面3、4为第一片透镜,空气间隔,表面5、6为第二片透镜,最后是像面):
| Surf:Type | Comment | Radius | Thickness | Glass | Semi-Diameter |
|---|---|---|---|---|---|
| OBJ:Standard | 物体 | Infinity | Infinity | ||
| 1:Standard | 光阑 | Infinity | 0.500000 | 3.000 | |
| 2:Standard | 透镜1前表面 | 20.000 | 3.000000 | H-K9L | 4.000 |
| 3:Standard | 透镜1后表面 | -15.000 | 1.000000 | 4.000 | |
| 4:Standard | 透镜2前表面 | -15.000 | 2.000000 | H-F4 | 4.000 |
| 5:Standard | 透镜2后表面 | 50.000 | 10.000000 | 4.000 | |
| IMA:Standard | 像面 | Infinity |
这是一个非常粗略的、F数约为4的双胶合透镜起点,离我们的目标还很远,但有了一个可优化的实体。
4. 核心流程一:建立评价函数与首次优化
优化是设计的核心。我们需要告诉软件“什么是好”的标准。
- 打开评价函数编辑器:按F6或点击“Optimize -> Merit Function Editor”。
- 生成默认评价函数:在评价函数编辑器空白处右键,选择“Optimization Wizard (优化向导)”。
- 优化类型:选择“RMS” -> “Spot Radius” -> “Centroid”。这是最常用的基于点列图均方根半径的优化。
- 参考点:选择“Chief Ray”(主光线)。
- 孔径权重:选择“Uniform”(均匀)。
- 视场权重:保持均匀。
- 波长权重:保持之前设置的。
- 点击“OK”,软件会自动生成一系列操作数(如
TRAC,OPLT等)来约束光线追迹和边界条件。
- 添加必要的边界约束操作数:默认评价函数只关心光斑大小,我们还需要手动添加操作数来满足规格书:
EFFL:控制有效焦距为16mm。EFFL(波长),目标值16,权重1。TOTR:控制总长(从第一面到像面)小于40mm。TOTR,目标值40,权重1,符号设为“<”(小于)。CTGT和CTLT:控制中心/边缘厚度,避免镜片太薄无法加工或太厚成本高。例如CTGT(面号, 值)要求某面中心厚度大于某个值(如0.8mm),CTLT要求小于某个值(如5mm)。BFL:控制后截距大于6mm。可以使用OPLT操作数约束最后一面到像面的厚度。DMVA:控制畸变。DMVA(视场),目标值0,权重1,但畸变通常先优化其他像差,后期再严格控制。
- 设置优化变量:在“Lens Data Editor”中,将需要优化的参数设为变量(
V)。通常包括:- 所有透镜的曲率半径(
Radius)。 - 所有透镜的厚度和空气间隔(
Thickness,除了最后像距)。 - (后期)玻璃材料(
Glass),使用MNCA,MXCA等操作数配合GLSS或GLCC进行玻璃替代优化。
- 所有透镜的曲率半径(
- 执行优化:点击“Optimize -> Optimization”或按F5。选择“Automatic”,开始优化。软件会不断调整变量,试图降低评价函数值(MF)。
首次优化后,你会发现结构发生了变化,但像质可能依然很差。这很正常,我们只是迈出了第一步。
5. 核心流程二:像差分析与诊断
优化不能盲目进行。每轮优化后,我们必须分析当前系统存在的主要像差,从而指导下一步的优化策略。Zemax提供了强大的分析工具。
- 点列图 (Spot Diagram):按
Shift+F2。它显示不同视场光线在像面上的分布。一个理想的点应该汇聚成一个小圆。如果散开很大,说明像差严重。查看“RMS Radius”和“GEO Radius”值,它们应远小于像元尺寸(3.45μm)。 - 光线像差曲线 (Ray Aberration):按
Shift+F3。它更细致地展示了各类像差。横轴是光瞳坐标,纵轴是光线在像面上的偏差。曲线越平、越靠近零线越好。不同的曲线形态对应不同的像差(球差、彗差、场曲、畸变等)。 - 场曲与畸变 (Field Curvature / Distortion):按
Ctrl+F。查看“Field Curvature / Distortion”图。场曲图应尽可能平直且靠近零线,否则边缘视场会模糊。畸变值应查看“Distortion”曲线或直接用DMVA操作数读取,确保<2%。 - MTF曲线 (Modulation Transfer Function):按
F5。这是最重要的像质评价工具,直接关联系统分辨率。横轴是空间频率(lp/mm),纵轴是对比度传递率(0-1)。我们的要求是145 lp/mm处,所有视场的MTF值>0.3。查看“Diffraction MTF”图,关注最大频率处的曲线高度。 - 赛德尔系数 (Seidel Coefficients):在“Analysis -> Aberrations -> Seidel Coefficients”中。这是一个非常关键的诊断工具。它将总像差分解为球差(SPHA)、彗差(COMA)、像散(ASTI)、场曲(FCUR)和畸变(DIST)等初级像差分量,并列出每个表面对该像差的贡献量。
- 诊断实战:假设优化后MTF在边缘视场下降严重。查看赛德尔系数,发现像散(ASTI)和场曲(FCUR)值很大,且主要贡献来自某一片透镜的某个面。那么,下一步的优化策略就可以是:尝试改变该面的曲率(强化变量),或者在该面附近引入一个新的透镜来校正这些像差。
通过分析,我们可能发现当前的双胶合结构无法同时满足大孔径(F2.8)和较大视场的要求,像散和场曲尤其难以校正。
6. 核心流程三:结构复杂化与再优化
当简单结构无法满足要求时,我们需要增加自由度,即增加镜片或使用特殊面型。
- 插入新镜片:在现有结构中最需要校正像差的位置(例如光阑前后),插入新的标准面。右键点击“Lens Data Editor”中的行号,选择“Insert Surface”。通常,在光阑前加正透镜,可以收集大角度光线,有助于校正轴外像差;在光阑后加负透镜,有助于平场和校正畸变。
- 将球面改为非球面 (Aspheric):非球面(如偶次非球面、Q型非球面)比球面拥有更多的自由度(高阶系数),可以同时校正多种像差,特别是高级像差。在表面属性中,将“Surface Type”从“Standard”改为“Even Asphere”或“Q-type”。然后,将非球面系数(如
Conic,A4,A6…)设为变量进行优化。注意:非球面加工成本高,通常只在必要时用于最后一片或两片镜片。 - 玻璃材料优化:将透镜的“Glass”材料设为“替代”(
S),在评价函数中添加玻璃边界操作数(如MNCA,MXCA控制阿贝数范围),然后运行“Hammer Optimization”(锤形优化)。软件会在指定的玻璃库中自动寻找更合适的材料组合。这是一个改变系统色差校正能力和高级像差的关键步骤。 - 分步优化策略:
- 第一阶段:优化焦距、总长、后截距等一阶参数,确保系统规格达标。
- 第二阶段:优化球差、彗差等轴上和近轴像差,提升中心视场像质。
- 第三阶段:重点优化像散、场曲和畸变,提升边缘视场像质。此时可以调整视场权重,给边缘视场更高权重。
- 第四阶段:进行全局优化和锤形优化,跳出局部最优解,寻找更好的玻璃和曲率组合。
- 第五阶段:严格控制公差敏感度,为生产做准备。
经过数轮“优化-分析-结构调整-再优化”的迭代,我们可能得到一个4片式(甚至更多)的镜头结构。以下是一个可能的中间结果示例(数据已简化):
(示例:一个四片式镜头结构数据示意) Surf Type Radius Thickness Glass Diameter Conic A4 OBJ Standard Infinity Infinity 0.000 1 Standard Infinity 0.500 3.500 0.000 0.000 2 Standard 15.329(V) 2.500(V) H-LAK54A 4.200 0.000 0.000 3 Standard -12.456(V) 0.200(V) 4.100 0.000 0.000 4 Standard -11.987(V) 1.000(V) H-ZF7 4.000 0.000 0.000 5 Standard 30.112(V) 3.500(V) 4.500 0.000 0.000 6 Standard 8.905(V) 2.000(V) H-K9L 4.800 0.000 0.000 7 Standard 22.147(V) 0.800(V) 4.600 0.000 0.000 8 Standard Infinity 1.000(V) 4.200 0.000 0.000 9 EvenAsphere 10.005(V) 2.500(V) H-ZF52 4.500 -0.567(V) 1.23E-05(V) 10 Standard 7.889(V) 8.000(V) 4.000 0.000 0.000 IMA Standard Infinity 4.000(V)表示该参数在优化中被设为变量。
7. 核心流程四:像质达标与性能验证
当优化评价函数值趋于稳定,且通过分析工具判断像质已接近目标时,进行最终验证。
- MTF达标检查:打开MTF曲线图,查看145 lp/mm处,0视场、0.7视场、全视场的MTF值是否均大于0.3。通常边缘会略低,但需满足要求。
数据显示全视场MTF为0.32,刚刚满足>0.3的要求。如果未达标,需要返回调整优化权重或结构。(模拟MTF数据读取示例) 频率 (lp/mm) | 视场0 | 视场0.7 | 视场1.0 (全视场) -------------|--------|----------|--------------- 145 | 0.52 | 0.41 | 0.32 - 畸变检查:使用
DIMX操作数读取最大畸变值,或查看畸变图。确保其绝对值<2%。(操作数示例) DIMX: 最大畸变值 = 1.85% (符合<2%要求) - 相对照度检查:在“Analysis -> Illumination -> Relative Illumination”中查看。确保边缘视场照度>80%,以满足“无渐晕”要求。
- 公差分析初探(进阶):一个设计再好,如果对生产误差极其敏感,也无法量产。在“Tolerancing”选项卡中,可以设置各项加工和装配公差(如曲率半径误差、厚度误差、偏心、倾斜等),然后执行灵敏度分析或蒙特卡洛分析,预测量产后的良率。如果像质下降太多,需要返回优化,通常采用“降低公差敏感度”的优化策略,或收紧某些关键公差。
8. 常见问题与排查思路
在光学设计过程中,你会频繁遇到以下问题:
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 优化无法进行,光线追迹失败 | 1. 光线在某个面发生全反射或拦截。 2. 镜片厚度或间隔为负或过小,导致物理不可实现。 3. 曲率过大,光线高度超过镜片半口径。 | 1. 查看“Ray Fan”图,是否有光线中断。 2. 检查“Lens Data Editor”中的厚度和口径数据。 3. 打开“3D Layout”图,观察光线路径是否异常。 | 1. 在评价函数中添加OPLT/OPGT操作数约束边缘光线高度。2. 添加 CTGT/CTLT操作数约束镜片厚度。3. 暂时放宽边界条件,先让优化跑起来,再逐步收紧。 |
| 评价函数值下降,但MTF反而变差 | 优化陷入了“局部最优解”。当前评价函数(如点列图RMS)的优化方向与MTF的提升方向不完全一致。 | 对比优化前后的MTF曲线、点列图和赛德尔系数。 | 1. 更换评价函数类型,尝试“Wavefront”或“PTV”优化。 2. 使用“Global Search”或“Hammer Optimization”跳出局部最优。 3. 手动调整某个关键曲率,给优化一个新的起点。 |
| 中心视场很好,边缘视场像质极差 | 轴外像差(像散、场曲、彗差)未得到有效校正。 | 1. 查看“Field Curv/Dist”图,场曲是否严重弯曲。 2. 查看赛德尔系数,像散(ASTI)和场曲(FCUR)贡献量大的面。 | 1. 调整光阑位置。 2. 在边缘光线高度较大的位置(通常是前组或后组)引入新镜片或使用非球面。 3. 优化时增加边缘视场的权重。 |
| 色差严重(彩色边缘) | 不同波长光线焦距不同,材料色散未校正。 | 查看“Longitudinal Aberration”图或“Chromatic Focal Shift”。 | 1. 使用胶合透镜(正负透镜搭配,利用阿贝数差异校正色差)。 2. 优化玻璃材料组合,使用 GLSS或GLCC操作数进行玻璃替代。 |
| 设计满足要求,但公差分析结果很差 | 设计过于“完美”,对加工装配误差容忍度低。 | 运行“Sensitivity Analysis”,查看对像质影响最大的公差项。 | 1. 在优化时,使用TOLR操作数或“Robust Optimization”功能,直接优化公差敏感度。2. 放宽某些非关键面的公差要求,或改用更易加工的面型(如将高次非球面改为低次)。 |
9. 最佳实践与工程建议
- 从已知结构开始:不要总从零开始。充分利用专利库、教科书案例或公司历史设计作为起点,可以节省大量时间。
- 分阶段优化,明确目标:每次优化集中解决一两个主要像差。先保证一阶参数(焦距、F数),再优化轴上像差,最后攻坚轴外像差。
- 变量由少到多:初期只将曲率和间隔设为变量。等结构稳定后,再释放厚度、圆锥系数、非球面系数,最后进行玻璃优化。一次释放太多变量容易导致优化失控。
- 善用多重结构 (Multi-Configuration):如果需要同时优化多个焦距(变焦镜头)、多个物距(对焦)或温度状态,多重结构是必备工具。它为同一组镜片参数定义了多套系统条件。
- 像质平衡的艺术:不存在“完美”的设计,只有“平衡”的设计。可能需要牺牲一点边缘MTF来换取更低的畸变,或者接受轻微色差来降低成本和公差敏感度。这需要与系统工程师、客户反复沟通确认。
- 为制造而设计 (Design for Manufacturing):
- 镜片形状:避免极端弯月形或中心过薄的镜片。
- 公差分配:对敏感参数(如关键曲率、空气间隔)分配更紧的公差,对不敏感参数放宽公差以降低成本。
- 装配基准:设计明确的机械基准面,方便装配校准。
- 环境适应性:考虑温度变化对像质的影响(使用
THERMAL分析功能)。
- 文档化与版本控制:对每个重要设计迭代保存版本,并记录修改原因和像质结果。使用Zemax的“Notes”功能或外部文档。清晰的记录是团队协作和问题回溯的关键。
光学设计是一门结合了物理、数学、工程和大量经验的学科。手把手教学能带你走过第一个完整的流程,但真正的精通来自于持续的项目实践、不断的失败分析和经验积累。当你成功地将第一个自己的设计送去加工、组装并测试,看到它清晰地成像时,那种成就感是无与伦比的。建议你以本文的案例为蓝本,尝试改变一个规格(例如将F数从2.8改为2.0),重新走一遍优化流程,亲自体会参数变化带来的挑战和解决方案。