第四节:序列模式下的自由曲面建模

好,咱们进入正题。序列模式下的自由曲面建模,说白了就是在Zemax的序列系统里,用非球面的“升级版”来干活。我刚开始接触这个功能时,也觉得它有点玄乎,但用顺手了就会发现,它比标准面型灵活太多了。

4.1 为什么选Extended Polynomial面型?

你可能会问:Zemax里那么多面型,为什么偏偏选Extended Polynomial?

嗯,原因很简单。标准球面只能描述一个曲率半径,非球面多了几个圆锥系数和高次项,但自由度还是有限。而Extended Polynomial面型,说白了就是给面型加了一个“多项式叠加层”。你可以把它想象成在基础球面上,用数学公式“捏”出任意形状。

我在项目中遇到过这样一个案例:客户要求设计一个离轴反射系统,用标准非球面死活搞不定像差。换成Extended Polynomial后,只加了6个多项式项,像质就达标了。所以,当你发现传统面型“不够用”时,试试它准没错。

核心优势:Extended Polynomial面型支持任意阶数的x-y多项式叠加,适合描述非旋转对称的自由曲面。

4.2 设置面型参数

好,咱们打开Zemax,实际操作一下。假设你已经在序列模式下新建了一个镜头文件,现在要插入一个自由曲面透镜。

4.2.1 选择面型

在Lens Data Editor里,双击Surface Type列,选择“Extended Polynomial”。这时你会看到一堆参数栏弹出来。别慌,咱们一个一个来。

参数名称 说明 我的建议值
Radius 基础球面的曲率半径 先设为Infinity(平面),后面再优化
Conic 圆锥系数 通常设为0,除非你明确需要
Max Term # 多项式最大项数 新手建议从第4项开始,别贪多
Normalize Radius 归一化半径 设为透镜半口径的1.2倍左右

这里有个小细节:Normalize Radius这个参数很容易被忽略。我刚开始用的时候,直接用了默认值1,结果多项式系数变得奇大无比,优化半天不收敛。后来才明白,这个值应该和透镜的实际口径匹配。你想想看,如果归一化半径设得太小,多项式项在边缘处会剧烈振荡,像质肯定好不了。

4.2.2 输入多项式系数

在参数列表里,你会看到一堆“Term 1, Term 2, ...”。这些就是多项式的系数。Zemax里Extended Polynomial的数学形式是这样的:

z = (c * r^2) / (1 + sqrt(1 - (1+k)*c^2*r^2)) + Σ(A_i * x^p * y^q)

其中,A_i就是你要输入的系数。每个Term对应一组(p, q)指数。比如:

  • Term 1: x^1 * y^0 (即x方向的一阶项)
  • Term 2: x^0 * y^1 (即y方向的一阶项)
  • Term 3: x^2 * y^0 (x方向的二阶项)
  • Term 4: x^1 * y^1 (交叉项)
  • ...以此类推

我个人习惯是:先只打开Term 3和Term 5(即x^2和y^2项),看看能不能满足基本要求。如果不行,再逐步增加高阶项。记住,多项式项数不是越多越好。项数多了,优化变量多,容易陷入局部最优,而且加工难度也会飙升。

避坑指南:我曾经在一个项目中,为了追求极致像质,一口气开了20个多项式项。结果优化了三天三夜,出来的面型像“搓衣板”一样,根本没法加工。后来老老实实从4项开始,逐步增加到8项,反而得到了一个平滑且可加工的面型。

4.3 初步光线追迹

参数设置好了,咱们来跑一下光线追迹,看看效果。

4.3.1 设置追迹参数

在Analysis菜单下,找到“Ray Trace”或者直接按快捷键Ctrl+R。这里有几个关键设置:

  • Number of Rays: 建议先设成3条(边缘、0.7视场、中心),快速验证
  • Wavelength: 用主波长,比如550nm
  • Field: 先设一个轴上视场,看看基本光路对不对

点击“Trace”按钮,你会看到光线穿过自由曲面后的路径。如果光线乱飞或者穿出透镜,别急,这很正常。我第一次用Extended Polynomial时,光线直接打到镜筒外面去了,当时还以为软件坏了。后来检查发现,是多项式系数的符号搞反了。

4.3.2 分析追迹结果

追迹完成后,重点看两个指标:

  1. Spot Diagram:看光斑大小。如果光斑很大,说明你的多项式系数还没调对。
  2. Ray Fan:看光线像差曲线。如果曲线不是平滑的,说明面型有突变。

嗯,这里要注意:不要一上来就追求完美的点列图。我通常的做法是:先让光线能顺利通过系统,光斑直径在艾里斑的3-5倍以内就算合格。后面再通过优化函数慢慢收紧。

重要提醒:在序列模式下,Extended Polynomial面型默认是“反射”还是“折射”,取决于你设置的玻璃材料。如果材料是MIRROR,它就是反射面;如果是玻璃,就是折射面。我见过有人把反射镜设成了玻璃材料,结果光线全部透射过去了,追迹结果完全不对。

4.4 一个简单的示例

咱们来走一个完整的流程。假设你要设计一个自由曲面反射镜,口径20mm,曲率半径-100mm。

步骤:
1. 在Surface 2上,设置Type为"Extended Polynomial"
2. Radius = -100, Conic = 0
3. Max Term # = 4 (只开前4项)
4. Normalize Radius = 12 (口径的1.2倍)
5. 在Term 3输入 1e-5 (x^2项)
6. 在Term 5输入 -5e-6 (y^2项)
7. 设置材料为MIRROR
8. 点击Ray Trace,观察结果

跑完之后,你会发现光斑形状有点“椭圆”。这是因为x和y方向的多项式系数不同,导致面型在两个方向上的弯曲程度不一样。这就是自由曲面的魅力——你可以独立控制每个方向的光线偏折。

好了,这一节的内容就到这里。记住,自由曲面建模的核心是“逐步逼近”,别想一口吃成胖子。下一节咱们会讲怎么用优化函数来“驯服”这些多项式系数,让它们乖乖听话。