刚入行那年,我对着Zemax里一片红色的光斑图发呆了整整半个小时。
焦点处,光线乱成一锅粥。旁边的老工程师扫了一眼,说了一句话让我记了十年:
“你知道这1000条光线想告诉你什么吗?”
我不知道。
我以为光学设计就是”调参数”——把半径、厚度、折射率往里一填,软件给你出个MTF曲线,好看就行,难看就接着调。
直到那次项目死磕之后,我才明白:光线追迹不是在画图,是在审问系统里的每一个物理矛盾。
1000条光线的”供词”
那个项目是一枚用于手持设备的小型变焦镜头,要求500lp/mm的分辨率,全视场畸变≤1%,后截距还不能太短——三个目标,每一个单独都能做到,但凑在一起就是互相掣肘。
我在Zemax里跑了无数次优化,每次看到光斑图里那些散开的红点,都感觉像被系统在嘲笑。
有一天,我换了个思路——不再盯着Merit Function的数字,而是逐条去”审问”那些表现异常的光线。
我打开3D Layout,把追迹条数从默认的20条改成1000条,然后一个视场、一个视场地去看:
那一刻,我突然明白了:光学设计,设计的不是玻璃,而是像差的平衡关系。
每一片镜片、每一个曲率半径,本质上都是在”讨价还价”——你帮我压住球差,我就给你引入一点彗差;我用非球面消掉高级像差,但代价是制造公差更严苛。
1000条光线,每一条都在告诉你:系统里哪里在”撒谎”,哪里在”妥协”。
光学设计,到底在设计什么?
讲完故事,咱们来把这件事说透。
一、像差才是光学设计的真正语言
初学者盯着的是参数:半径、厚度、折射率、非球面系数……
但这些参数本身没有意义,它们的意义在于它们共同决定了系统的像差分布。
Seidel初级像差理论给出了五种经典单色像差:
|
|
|
|
|---|---|---|
| 球差(Spherical Aberration) |
|
|
| 彗差(Coma) |
|
|
| 像散(Astigmatism) |
|
|
| 场曲(Field Curvature) |
|
|
| 畸变(Distortion) |
|
|
加上两种色差——轴向色差和横向色差,这七个”敌人”,是每个光学设计师终身的对手。
设计的本质,就是在给定约束条件下,把这七个敌人的综合危害压到可接受范围以内。
二、为什么”调参数”解决不了问题?
因为参数空间是高维的,而像差之间的耦合是非线性的。
举个例子:你想压球差,于是把前组的曲率半径加大(弯月形变弱),球差确实小了——但同时弯月镜对彗差的贡献也变了,然后为了补彗差你动了后组,后组一动场曲又跑了……
这就是为什么光学设计老手不会无脑点”优化”按钮——他们会先在脑子里”解方程”,判断当前系统的像差结构,然后选择正确的调整方向。
Zemax的优化是工具,不是设计思路。工具用得再溜,方向错了照样兜圈子。
三、1000条光线能告诉你什么?
在Zemax里做光线追迹,不同的追迹数量、不同的显示方式,能揭示不同层面的问题:
① 少量光线(3×3 或 5×5 网格)→ 看系统骨架
用于初步判断像差的性质和量级。光斑收得很紧?基本像差平衡了。光斑有明显的”尾巴”?彗差。光斑在两个方向上散开不一样大?像散。
② 大量光线(64×64 或更多)→ 看高级像差
初级像差压下去之后,高级像差才会显现。一个看起来”差不多”的设计,用1000条光线一跑,可能会发现边缘视场的残余高级球差,或者特定孔径处的”暗藏杀机”。
③ 单根光线追迹 → 诊断具体问题
遇到异常光线,可以用Ray Trace单独追一根,看它在每个面的入射角、折射角、偏折量。这是诊断哪片镜片”贡献”了多少像差的最直接方式。
告诉大家一个实用小技巧:Zemax的Seidel Aberration Coefficients(塞德尔像差系数表)会列出每个面的像差贡献量,正负抵消是系统在”互相补偿”。这张表是平衡像差的”账本”,要学会看。
四、”设计”不等于”优化”
很多人问我:光学设计和光学优化有什么区别?
设计是确定系统的结构——用几片镜片、什么型式(双胶合?反远距?库克?天塞?)、大致的光焦度分配,这一步要靠理论和经验。
优化是在已定结构下,找到最优的参数组合——这一步才是软件大显身手的地方。
如果结构选错了,优化再久也只是在局部极值里打转。
就好像你要从北京开车去上海,你用了最好的导航软件——但一开始上了错误的高速,导航再厉害也帮不了你。
正确的顺序是:用理论选结构 → 用经验设初始值 → 用软件做精细优化。
五、光学设计师的核心能力
总结下来,一个真正懂光学设计的人,需要具备这三层能力:
第一层:能读懂像差,看光斑图、MTF曲线、波前图,知道系统”病”在哪里。
第二层:能分析像差来源,知道哪片镜片贡献了什么像差,如何通过改变结构来改变分布
第三层:能预判设计空间,给定规格,脑子里能大致判断什么结构可行、什么不可行,知道哪些是"物理极限",哪些是"工程妥协"。
大多数人卡在第一层到第二层之间。
会用软件很简单,但会”读”软件的输出,需要大量的实践和理论积累。
你现在在哪一层?
回到文章开头那个问题:那1000条光线想告诉你什么?
现在你知道了——它们在告诉你,这个系统里每一种像差的分布,每一片镜片的贡献,每一个结构决策的代价。
光学设计,设计的从来不是玻璃的形状,而是对光的控制方式,以及在无数物理约束之间寻找那个”最优的妥协点”。
如果你也在学光学设计,我想问你三个问题: