4、序列模式核心概念:序列光线追迹原理、面型类型、坐标系统、光线数据、孔径和视场定义
序列模式(Sequential Mode)是 Code V 乃至绝大多数光学设计软件(如 Zemax OpticStudio 的序列模式)最核心的计算引擎。在序列模式下,光线按照用户定义的表面顺序,从物方空间依次通过每一个光学表面,最终到达像面。这种“逐面追迹”的确定性流程,使得系统评价函数(如波前差、MTF、点列图)能够被快速且稳定地计算。理解序列模式的底层逻辑——包括光线如何传播、面型如何描述、坐标如何统一、孔径与视场如何约束——是进行后续优化设计的基础。本章将深入拆解这五大核心概念,帮助您建立完整的序列追迹心智模型。
上图展示了序列模式中各核心概念之间的逻辑关系。光线从物面出发,依次经过各光学表面(包括光阑面),最终到达像面。在此过程中,坐标系统定义了光线在空间中的位置与方向,面型类型决定了光线在表面上的折射/反射行为,光线数据则记录了光线在入瞳和视场上的归一化坐标,而孔径与视场共同约束了参与追迹的光线集合。下面我们将逐一深入剖析。
4.1 序列光线追迹原理:从物面到像面的确定性传播
序列光线追迹的核心思想是:光线在光学系统中的传播路径完全由表面的顺序和面型参数决定,不存在“分支”或“反射后再回到前方表面”的情况(除非显式定义反射面并调整表面顺序)。在 Code V 中,系统由一系列表面(Surface)组成,每个表面都有一个序号(0 表示物面,中间表面依次编号,最后一个为像面)。光线追迹时,软件从物面发出光线,计算光线与第一个表面的交点,然后根据斯涅尔定律(折射)或反射定律,求出光线在该表面后的新方向,再继续追迹到下一个表面,如此循环直至像面。
这一过程的核心数学工具是矢量形式的斯涅尔定律:
n' * (L' × N) = n * (L × N)
其中,n 和 n' 分别为入射介质和出射介质的折射率,L 和 L' 为入射和出射光线的单位方向矢量,N 为表面法线矢量。Code V 内部使用高精度浮点运算,并支持实际光线追迹(Real Ray Tracing)与近轴光线追迹(Paraxial Ray Tracing)两种模式。实际光线追迹用于计算像差、点列图等真实性能;近轴光线追迹则用于计算系统的一阶光学特性(如焦距、主面位置、F/#)。
4.2 面型类型:从球面到自由曲面的数学描述
Code V 支持数十种面型类型,但最常用的可以归为以下几大类。面型的选择直接决定了系统的像差校正能力和设计自由度。
| 面型类型 | 数学表达式(简化) | 典型应用场景 | Code V 中的表示 |
|---|---|---|---|
| 球面(Sphere) | z = c·r² / (1 + √(1 - (1+k)·c²·r²)),其中 k=0 | 常规透镜、反射镜 | SPH |
| 偶次非球面(Even Asphere) | z = c·r² / (1 + √(1 - (1+k)·c²·r²)) + A₂r² + A₄r⁴ + ... | 手机镜头、车载镜头、激光准直 | ASP(偶次) |
| 奇次非球面(Odd Asphere) | 包含 r¹, r³, r⁵ 等奇次项 | 某些特殊像差校正 | ASP(奇次) |
| 衍射面(Diffractive) | 相位分布 φ(r) = 2π/λ₀ · (A₁r² + A₂r⁴ + ...) | 消色差、光谱仪、激光光束整形 | KIN / ZRN |
| 自由曲面(Freeform) | Zernike 多项式或 XY 多项式 | AR/VR 光学、离轴反射系统、汽车 HUD | XYP / ZRN |
| 环形面(Toric) | 两个正交方向曲率不同 | 柱面镜、变形系统 | TOR |
在 Code V 中,面型参数通过 SLS(Surface Listing)或 SPC(Surface Property Change)命令定义。例如,定义一个偶次非球面,需要指定曲率半径(Radius)、圆锥系数(Conic)、以及各阶非球面系数(A4, A6, A8...)。面型的选择需要权衡设计自由度和加工可行性——非球面能显著改善像差,但高阶非球面可能难以加工和检测;自由曲面提供了极大的设计自由度,但对加工和装调提出了极高要求。
4.3 坐标系统:全局坐标与局部坐标的转换
Code V 使用右手笛卡尔坐标系。光轴方向通常定义为 Z 轴(光线传播方向为正),X 轴和 Y 轴垂直于光轴。每个表面都有自己的局部坐标系,其原点位于表面顶点(Surface Vertex)。当系统存在偏心(Decenter)或倾斜(Tilt)时,局部坐标系相对于全局坐标系发生平移和旋转。
在序列模式下,坐标转换遵循“先偏心后倾斜”的规则(在 Code V 中通过 DEC 和 TIL 命令定义)。具体来说,光线到达一个表面时,首先根据该表面的偏心量(XDE, YDE)和倾斜量(ADE, BDE, CDE)将光线坐标从全局系转换到局部系,然后计算交点与折射,再将结果转换回全局系,继续追迹到下一个表面。
表面定义示例(Code V 命令行):
SLS 3 ; 选择表面 3
RDY 50.0 ; 曲率半径 50mm
THI 5.0 ; 厚度 5mm
DEC 2.0 0.0 ; X 方向偏心 2mm
TIL 0.0 1.5 0.0 ; 绕 Y 轴倾斜 1.5 度
理解坐标系统对于处理离轴系统(如离轴三反)和折叠光路(如潜望式镜头)至关重要。在这些系统中,光轴不再是直线,而是被反射镜折叠。此时,每个反射面后的坐标方向都会改变,Code V 会自动处理这些变换,但设计者必须清楚每个表面的局部坐标方向,否则容易在定义后续表面时出错。
SLS 中检查坐标转换的优先级。
4.4 光线数据:归一化坐标与光线采样
在序列模式中,每条光线都由两个关键参数唯一确定:入瞳坐标(Px, Py)和视场坐标(Hx, Hy)。这两个坐标都是归一化的,取值范围通常在 [-1, 1] 之间。
- 入瞳坐标 (Px, Py):表示光线在入瞳平面上的位置。Px² + Py² = 1 表示光线通过入瞳边缘,Px = Py = 0 表示主光线(Chief Ray)。
- 视场坐标 (Hx, Hy):表示光线对应的物点位置。Hx = Hy = 0 表示轴上视场(物点在光轴上),Hx = 1, Hy = 0 表示最大视场(通常为最大物高或最大视场角)。
Code V 在计算像差(如赛德尔像差)和点列图时,会按照一定的采样模式生成光线网格。常见的采样模式包括:
- 矩形网格(Rectangular Grid):在入瞳上均匀分布 Px, Py 网格点。
- 六角形网格(Hexagonal Grid):更接近真实光瞳形状,采样效率更高。
- 环形网格(Annular Grid):用于分析不同环带的光线。
光线数据的输出可以通过 RAY 命令查看,例如 RAY P1Y 0.0 0.0 可以追迹一条从视场中心、入瞳中心发出的光线(即主光线)。理解光线数据是进行像差分析的基础——例如,球差表现为不同入瞳高度(Px, Py)的光线在像面上聚焦点不同;彗差表现为轴外视场(Hx ≠ 0)的光线在像面上形成不对称的弥散斑。
SPO(Spot Diagram)命令快速查看点列图,并通过 RAY 命令追迹特定光线来诊断像差来源。例如,追迹边缘光线(Px=0, Py=1)和主光线(Px=0, Py=0),比较它们在像面上的交点差异,可以快速判断球差的大小。
4.5 孔径和视场定义:约束光线采样范围
孔径(Aperture)决定了系统允许通过的光束大小,直接影响系统的光通量和分辨率。在 Code V 中,孔径可以通过以下几种方式定义:
- 入瞳直径(Entrance Pupil Diameter, EPD):直接指定入瞳的物理直径。
- F/#(F-number):定义为焦距与入瞳直径之比。F/# = f / D。
- 数值孔径(Numerical Aperture, NA):NA = n · sin(θ),其中 θ 为物方或像方最大孔径角。常用于显微物镜等系统。
光阑(Stop)是限制光束的实际孔径光阑,通常位于某个光学表面或空气间隙中。在 Code V 中,通过 STO 命令指定光阑面。光阑的位置对像差(特别是场曲和畸变)有显著影响。
视场(Field)定义了系统需要成像的物方范围。视场可以用以下方式表示:
- 物高(Object Height):对于有限共轭系统(如显微镜、投影镜头),直接指定物面上的最大高度(mm)。
- 像高(Image Height):对于无限共轭系统(如照相镜头),指定像面上的最大高度。
- 视场角(Field Angle):对于无限共轭系统,指定最大半视场角(度)。
在 Code V 中,通过 FIE(Field)命令定义视场点。可以定义多个视场(如 0, 0.5, 0.7, 1.0 视场),并为每个视场分配权重(Weight),权重用于优化时评价函数的加权计算。
视场定义示例(Code V 命令行):
FIE 0.0 0.0 1.0 ; 轴上视场,权重 1.0
FIE 0.0 0.5 0.8 ; 0.5 视场(Y 方向),权重 0.8
FIE 0.0 1.0 0.5 ; 最大视场,权重 0.5
4.6 实战场景:一个双胶合透镜的序列模式设置
为了将上述概念串联起来,我们以一个经典的双胶合消色差透镜为例,演示如何在 Code V 中设置序列模式系统。
设计目标:设计一个焦距 f = 100mm,F/# = 5(入瞳直径 D = 20mm),半视场角 2° 的可见光消色差透镜。使用 K9(n=1.5168, v=64.2)和 F2(n=1.6242, v=36.1)玻璃。
操作步骤:
- 初始化系统:使用
NEW命令新建一个镜头文件。 - 定义系统孔径:输入
EPD 20.0设置入瞳直径为 20mm。 - 定义视场:输入
FIE 0.0 0.0 1.0(轴上)、FIE 0.0 1.0 0.5(最大视场角 2°)。注意,Code V 默认视场单位为角度(对于无限共轭系统)。 - 定义表面数据:
SLS 1 RDY 62.5 ; 第一面曲率半径 THI 5.0 ; 第一片透镜厚度 GLN K9 ; 玻璃材料 SLS 2 RDY -45.0 ; 胶合面曲率半径 THI 3.0 ; 第二片透镜厚度 GLN F2 ; 玻璃材料 SLS 3 RDY -120.0 ; 最后一面曲率半径 THI 95.0 ; 后焦距(近似) - 设置光阑:将光阑放在第一面上(或第一面之前)。输入
STO 1将表面 1 设为光阑面。 - 检查系统:使用
LIS(Listing)命令查看系统数据,使用SPO查看点列图,使用RAY追迹主光线和边缘光线。
结果分析:通过 SPO 可以看到,轴上视场的点列图接近艾里斑(衍射极限),而最大视场的点列图可能因场曲和像散而变大。此时,可以通过优化曲率半径和厚度来改善。在优化时,需要将曲率半径设为变量(SLS 1 RDY V),并定义评价函数(自动优化或手动编写误差函数)。
4.7 常见误区与总结复盘
在序列模式的学习和实践中,以下误区最为常见:
| 误区 | 后果 | 正确做法 |
|---|---|---|
| 混淆视场单位(角度 vs 物高) | 系统实际视场与设计不符,优化结果无效 | 在 FIE 中明确单位,无限共轭用角度,有限共轭用物高 |
| 光阑位置设置不当 | 系统 F/# 变化,像差分布异常 | 光阑应放在能有效限制光束的位置,通常为第一面或中间面 |
| 忽略坐标转换顺序 | 偏心/倾斜后的表面位置错误 | 牢记“先偏心后倾斜”规则,并在 SLS 中检查 |
| 面型选择过于复杂 | 优化难以收敛,加工困难 | 从球面开始,逐步增加非球面阶数 |
| 光线采样不足 | 点列图无法反映真实像差 | 使用 SPO 时增加光线密度(如 32x32 网格) |
总结:序列模式是 Code V 优化的基石。掌握光线追迹原理、面型类型、坐标系统、光线数据以及孔径和视场定义,是进行任何光学设计的前提。在实际操作中,建议遵循以下流程:先定孔径和视场 → 再建表面模型 → 检查光线追迹 → 分析像差 → 开始优化。每一步都需要对底层概念有清晰的理解,才能避免“黑盒”式的盲目操作。
- 序列追迹是逐面、确定性的几何光学计算。
- 面型类型决定了像差校正能力,但需权衡可制造性。
- 坐标系统(全局/局部)是处理偏心、倾斜和离轴系统的基础。
- 光线数据(Px, Py, Hx, Hy)是像差诊断的“语言”。
- 孔径和视场共同定义了光线的采样空间,是优化的输入边界。