1. 优化函数基础:到底什么是优化函数?
各位同学,欢迎来到《Zemax 优化函数进阶训练营》。我是你们这趟旅程的向导。
咱们开门见山。你打开 Zemax,建好了一个初始结构,光线乱飞,像一团乱麻。这时候你点下「优化」按钮,Zemax 就开始自动调整镜片曲率、厚度……直到光线乖乖汇聚。这个「自动调整」背后的总指挥,就是优化函数。
说白了,优化函数就是一套评分标准。它告诉 Zemax:「什么样的系统算好,什么样的算差。」Zemax 的任务就是拼命修改参数,让这个评分尽可能高——或者说,让评价函数的值尽可能小。
核心定义:优化函数(Merit Function)是一个数值,它量化了当前光学系统与「理想目标」之间的差距。数值越小,系统越接近目标。
我刚开始学 Zemax 时,总觉得这东西很玄。后来我把它想象成「打靶」——你的目标是十环,优化函数就是测量每一发子弹离靶心有多远的尺子。尺子越准,你调整枪口的效率就越高。
1.1 评价函数编辑器(Merit Function Editor)长什么样?
你可以在 Zemax 菜单栏找到它:Editors → Merit Function,或者直接按快捷键 F6。
打开后,你会看到一个表格。别被它密密麻麻的格子吓到,其实结构很简单。我习惯把它分成三个区域来看:
| 区域 | 位置 | 作用 |
|---|---|---|
| 目标栏(Target) | 第 4 列 | 你希望系统达到的理想值。比如,你希望像高是 10 mm,这里就填 10。 |
| 权重栏(Weight) | 第 5 列 | 这个目标有多重要。权重越大,Zemax 越优先满足它。 |
| 贡献值(Contrib) | 第 6 列 | 当前这个操作数对总评价函数的「贡献」有多大。这是诊断瓶颈的关键。 |
嗯,这里要注意:贡献值这一列是只读的,但它是我最常盯着看的一列。为什么?因为它能告诉你,系统目前「卡」在哪里。
我的小技巧:优化不收敛时,先看贡献值最大的那几行。通常那就是问题的根源。我曾经有一个镜头,怎么优化球差都降不下来,最后发现是某个操作数的权重设得太高,把其他像差全压住了。去掉它,系统反而更好了。
1.2 操作数与权重:优化函数的「砖块」和「水泥」
评价函数不是凭空产生的。它由一个个操作数(Operand)搭建而成。每个操作数就像一块砖,负责测量系统的某一个具体指标。
举个例子,常用的操作数有:
- EFFL:测量有效焦距
- SPHA:测量球差系数
- COMA:测量彗差系数
- RSCE:测量参考球面上的光程差
每个操作数都有自己的参数,比如针对哪个面、哪个波长、哪个视场。你把这些操作数像搭积木一样放进编辑器,就构成了评价函数。
但光有砖块还不够,你得告诉 Zemax 哪块砖更重要。这就是权重(Weight)的作用。
避坑指南:我曾经犯过一个经典错误——把所有操作数的权重都设为 1。结果优化出来的系统,焦距对了,但像散大得离谱。因为焦距和像散在评价函数里「平起平坐」,Zemax 觉得差不多就行。后来我把像散相关的操作数权重提到 10,系统才老实。
权重的本质是优先级。你想想看,一个投影镜头,畸变要求 1% 以内,但焦距必须精确到 0.1%。那焦距操作数的权重就应该远大于畸变操作数。Zemax 会优先保证高权重的目标。
1.3 评价函数到底怎么算的?
Zemax 内部的计算公式其实不复杂:
MF² = Σ (Weight_i × (Value_i - Target_i)²) / Σ Weight_i
其中:
- Value_i:当前系统第 i 个操作数的实际值
- Target_i:你设定的目标值
- Weight_i:权重
Zemax 把所有操作数的「偏差平方×权重」加起来,再除以权重总和,得到的就是评价函数值 MF。优化过程,就是 Zemax 不断调整镜片参数,让这个 MF 值一路下降。
我习惯把 MF 值想象成「痛苦指数」。刚开始优化时,这个值可能几千甚至几万。随着优化进行,它会逐渐下降。当它降到 0.1 以下,通常系统就比较理想了。
关键认知:MF 值不是越小越好。它只是一个相对指标。有时候 MF=0.05 的系统,实际成像质量还不如 MF=0.1 的系统——因为你的操作数设置可能漏掉了某些关键像差。所以,别只盯着 MF 值,要结合点列图、MTF 一起看。
1.4 本章知识体系总览
为了让你对本章内容有个整体印象,我画了一张结构图。它把优化函数、评价函数编辑器、操作数和权重的关系串在了一起。
这张图把本章的核心逻辑串起来了。你从「优化函数」出发,左边是它的载体——评价函数编辑器,右边是它的构成材料——操作数和权重。编辑器里的目标栏、权重栏、贡献值,和操作数列表一起,共同决定了优化函数的走向。
1.5 小结与实操建议
这一章我们只做一件事:建立对优化函数的直觉。你不用记住所有操作数,也不用背公式。你只需要记住:
- 优化函数是一把尺子,衡量系统好坏
- 评价函数编辑器是放尺子的工具箱
- 操作数是尺子上的刻度,权重是刻度的粗细
我建议你现在就打开 Zemax,随便建一个单透镜,然后按 F6 打开评价函数编辑器。看看默认的优化函数长什么样,点开几个操作数,观察它们的 Target 和 Weight。不用改任何东西,先混个脸熟。
课后小练习:在评价函数编辑器里,找到贡献值(Contrib)最大的一行。试着把它的权重改成 0,再优化一次。看看系统发生了什么变化?这个实验能让你直观感受到「权重」的力量。