1. 光学优化概述:为什么我们要折腾这件事?

做光学设计这些年,我最大的感触就是:没有一次设计是“画完就完事”的。你辛辛苦苦搭好初始结构,光线追迹一看,像差大得离谱,MTF 惨不忍睹。这时候怎么办?手动调半径、调厚度、调非球面系数?调一两个变量还行,几十个变量同时调,人脑根本算不过来。

所以,优化就来了。说白了,优化就是让计算机替我们干“找最佳参数”的苦活。你给它一个目标,它自己迭代、自己试错,最后给你一组接近最优的解。

1.1 光学系统优化的意义

我刚开始带项目时,有个同事跟我说:“优化嘛,就是让像差变小。” 这话没错,但太片面了。优化真正的意义,我总结成三点:

  • 提升性能:把 MTF 从 0.3 拉到 0.5,把畸变从 5% 压到 1%。这是最直观的。
  • 满足约束:总长不能超过 50 mm,镜片不能太厚,后焦要留够。这些硬指标,优化时得一并考虑。
  • 平衡取舍:球差小了,色散可能变大;分辨率高了,公差可能变紧。优化就是在这些矛盾里找平衡点。

我个人习惯:在开始优化前,先问自己三个问题——
① 这个系统最关键的指标是什么?
② 哪些参数可以动,哪些必须锁死?
③ 我准备接受多大的像差余量?

想清楚再动手,比盲目跑优化省一半时间。

1.2 优化变量与评价函数

优化变量,就是你可以让计算机去调整的参数。常见的包括:

变量类型 举例 说明
曲率半径 R1, R2, R3 ... 最常用的变量,直接影响光焦度
厚度 镜片厚度、空气间隔 影响光路长度和像差平衡
非球面系数 Conic, 4th, 6th ... 高阶项,校正高级像差
玻璃材料 折射率、阿贝数 通常作为离散变量处理

评价函数呢?它就是计算机用来判断“当前系统好不好”的数学表达式。最常见的做法是:

MF = Σ (Wi * (Target_i - Current_i))²

其中 Wi 是权重,Target_i 是目标值,Current_i 是当前值。评价函数越小,说明系统越接近你的目标。

避坑指南:我曾经把权重设得太大,结果系统为了满足一个指标,把其他指标全牺牲了。后来我学乖了——权重不是越大越好,要按实际需求来。比如 MTF 权重给 1,畸变给 0.5,总长给 0.3,这样系统会优先保证成像质量,再兼顾其他。

1.3 局部优化与全局优化

这两个概念,我当年学的时候也绕了一阵。简单说:

  • 局部优化:从当前结构出发,沿着“下山”的方向走,找到最近的谷底。速度快,但容易掉进局部最优。
  • 全局优化:在整个参数空间里“撒网”,尝试各种可能的组合,找到全局最优或接近全局最优的解。速度慢,但不容易被局部最优困住。

你想想看,局部优化就像你站在一个山头上,只看得见脚下的路,顺着坡往下走,走到最近的谷底就停了。全局优化呢?你开着直升机在天上飞,把整片山区都看一遍,然后挑一个最低的谷底降落。

对比项 局部优化 全局优化
搜索范围 当前结构附近 整个参数空间
计算速度 快(秒级到分钟级) 慢(分钟级到小时级)
结果质量 依赖初始结构 不依赖初始结构
典型算法 阻尼最小二乘法 遗传算法、模拟退火
适用场景 已有较好初始结构 初始结构未知或很差

注意:全局优化不是万能的。它找到的“全局最优”可能加工不出来——公差太紧、镜片太贵、装配太难。所以我的做法是:先用全局优化找几个候选结构,再用局部优化精修,最后用公差分析筛选。三步走,稳得很。

1.4 知识体系框架

下面这张图,是我自己整理的光学优化知识体系。每次带新人,我都先让他们看这个,心里有个谱。

光学优化知识体系框架 光学优化知识体系 光学优化 优化变量 评价函数 优化算法 曲率半径 厚度/间隔 非球面系数 玻璃材料 像差目标 MTF目标 权重分配 约束条件 局部优化 全局优化 阻尼最小二乘 遗传/模拟退火 核心思路:先全局探索 → 再局部精修 → 最后公差验证 三者缺一不可,顺序不能乱

嗯,这张图基本把本章的核心内容串起来了。优化变量是“你能调什么”,评价函数是“你想调成什么样”,优化算法是“怎么调过去”。三者缺一不可。

我记得刚入行时,总以为优化就是“点一下按钮等结果”。后来被现实教育了——不懂变量选择,优化会跑偏;不懂评价函数,优化会乱跑;不懂算法区别,优化会白跑。所以这一章,咱们先把地基打牢。