光学系统建模基础:如何建立初始光学系统(透镜、反射镜、坐标断点等),为优化做准备
在Zemax OpticStudio中,优化函数(Merit Function)的威力再强大,也必须依托于一个结构合理、坐标正确、变量设置恰当的初始光学系统。如果初始模型本身存在坐标错乱、面型定义错误或变量冲突,优化过程轻则陷入局部极小值,重则直接发散或报错。本章将系统讲解从零构建初始光学系统的完整流程,重点覆盖透镜与反射镜的建模方法、坐标断点(Coordinate Break)的核心逻辑,以及为后续优化所做的变量与约束准备。
3.1 系统级参数的定义与全局设置
在输入任何光学面之前,必须先定义系统的全局参数。这些参数决定了光线追迹的物理基础,也是后续优化函数计算像差时的基准。在Zemax中,通过系统选项(System Options)和波长/视场/孔径对话框完成设置。
核心原理:系统参数是优化的“物理边界”
系统参数包括:波长(Wavelength)、孔径(Aperture)、视场(Field)、单位(Units)以及介质折射率(Index of Refraction)。这些参数直接决定了光线在系统中的传播路径。例如,若系统用于可见光成像,通常选择F、d、C三色光(486nm、587nm、656nm),权重各为1;若用于红外系统,则需自定义3~5μm或8~12μm波段。孔径类型(入瞳直径、像方F/#、数值孔径)决定了光通量大小,而视场类型(角度、物高、像高)则定义了成像范围。
- 打开
系统选项 → 单位,设置长度单位为毫米(mm),角度单位为度(°)。 - 在
波长对话框中,选择“F,d,C(可见光)”或自定义波长,并设置权重。 - 在
孔径对话框中,选择“入瞳直径”并输入数值(如20mm),或选择“像方F/#”并输入F数。 - 在
视场对话框中,选择“角度”并输入0°、10°、14°等视场角,设置权重。 - 确认介质折射率:Zemax内置玻璃库(如SCHOTT、OHARA),但需检查温度、压力设置是否影响折射率。
案例拆解:一个双胶合透镜的初始参数设置
假设我们要设计一个焦距100mm、F/4的双胶合消色差透镜,用于可见光成像。初始参数设置如下:
| 参数项 | 设置值 | 说明 |
|---|---|---|
| 波长 | F(486nm), d(587nm), C(656nm) | 权重1:1:1 |
| 孔径类型 | 入瞳直径 = 25mm | F/# = 100/25 = F/4 |
| 视场 | 0°、7°、10° | 半视场角,权重1:0.8:0.5 |
| 单位 | mm, 度 | 标准光学单位 |
这些参数设置完成后,Zemax会自动计算入瞳位置、主光线路径等,为后续面型输入提供基准。
3.2 透镜与反射镜的建模方法
透镜和反射镜是光学系统的基本组成单元。在Zemax的序列模式(Sequential Mode)中,每个光学面通过面型(Surface Type)、曲率半径(Radius)、厚度(Thickness)、玻璃(Glass)和半直径(Semi-Diameter)来定义。
核心原理:面型参数与光线追迹
标准球面(Standard)是最基础的面型,由曲率半径R和圆锥系数k决定。非球面(Even Asphere)则通过多项式系数(2nd、4th、6th、8th、10th阶)描述面形偏离球面的程度。反射镜与透镜的区别仅在于玻璃设置为“Mirror”,此时厚度表示反射镜到下一面的距离,光线在镜面处反射。
操作流程:从第一面到像面
- 物面(Object Surface):厚度为无穷大(Infinity)时表示物在无穷远;若物距有限,则输入具体距离。
- 光阑面(Stop Surface):通常设置在第一个透镜前表面或某个透镜面上,控制孔径光阑位置。
- 透镜前表面:输入曲率半径(如50mm)、厚度(如5mm)、玻璃(如BK7)。
- 透镜后表面:输入曲率半径(如-45mm)、厚度(如空气间隙50mm)、玻璃(空气)。
- 像面(Image Surface):厚度为0,用于接收成像。
面序号 面型 曲率半径(mm) 厚度(mm) 玻璃
0 物面 Infinity Infinity -
1 光阑面 Infinity 5 BK7
2 标准 50 - 空气
3 标准 -50 95 空气
4 像面 Infinity - -
此结构表示一个平凸透镜(R1=50mm,R2=-50mm),厚度5mm,物距无穷远,像距95mm。注意:厚度为负表示光线传播方向与Z轴正方向相反,但在序列模式中通常保持正厚度,通过坐标断点处理折叠光路。
反射镜建模的特殊性
反射镜只需将玻璃设置为“Mirror”,曲率半径和厚度定义方式与透镜相同。但需注意:反射镜会改变光线传播方向,因此后续面的坐标需要重新计算。此时必须使用坐标断点(Coordinate Break)来定义反射后的局部坐标系。
3.3 坐标断点(Coordinate Break)的深度解析
坐标断点(CB)是Zemax中最重要的建模工具之一,它允许在任意位置定义新的局部坐标系,从而实现偏心、倾斜、折叠光路等复杂结构。没有坐标断点,就无法建模反射镜系统、离轴系统或棱镜系统。
核心原理:局部坐标系的变换机制
坐标断点面本身不改变光线方向,它只是定义了一个新的坐标系原点(通过偏心X/Y/Z)和坐标轴方向(通过倾斜Alpha/Beta/Gamma)。后续所有面(直到下一个坐标断点)都参考这个新的局部坐标系。Zemax使用右手坐标系,倾斜顺序为:先绕X轴旋转Alpha,再绕Y轴旋转Beta,最后绕Z轴旋转Gamma。
| 参数 | 含义 | 典型应用 |
|---|---|---|
| 偏心X/Y/Z | 新坐标系原点相对于旧坐标系的偏移 | 离轴反射镜、偏心透镜 |
| 倾斜Alpha/Beta/Gamma | 新坐标系绕X/Y/Z轴的旋转角度 | 折叠反射镜、棱镜转向 |
| 顺序 | 先偏心后倾斜,或先倾斜后偏心 | 需根据实际机械结构确定 |
操作流程:折叠反射镜系统的建模
- 在反射镜前插入一个坐标断点面,设置倾斜Alpha=45°(绕X轴旋转)。
- 设置反射镜面,玻璃为“Mirror”,曲率半径为所需值。
- 在反射镜后插入第二个坐标断点,设置倾斜Alpha=-45°,使光轴恢复水平。
- 继续输入后续透镜或像面。
假设需要建模一个离轴抛物面镜,母镜焦距200mm,离轴量50mm。步骤如下:
面0:物面(Infinity)
面1:坐标断点(偏心Y=50mm)
面2:标准面(R=-400mm,圆锥系数k=-1,玻璃=Mirror)
面3:坐标断点(偏心Y=-50mm)
面4:像面
这里的关键是:抛物面母镜的顶点在全局坐标原点,通过偏心Y=50mm将局部坐标系移到离轴区域,反射后再移回。这样建模的离轴量精确,且优化时只需将偏心Y设为变量即可调整离轴量。
3.4 为优化准备:变量设置与约束条件
初始模型建立后,需要将某些参数设为变量(Variable),并添加必要的约束条件,才能启动优化。变量是优化函数可以调整的参数,约束条件则限制变量的变化范围,防止系统发散到物理不可实现的结构。
核心原理:变量与约束的平衡
优化过程本质上是求解一个多变量非线性方程组。变量过多会导致优化速度慢且容易陷入局部极小值;变量过少则无法达到目标性能。约束条件包括:边界约束(如厚度>0)、玻璃约束(如折射率范围)、焦距约束(通过操作数EFFL控制)等。
操作流程:设置变量与约束
- 在透镜编辑器(Lens Data Editor)中,双击曲率半径、厚度或玻璃列,在“求解类型”中选择“变量(Variable)”。
- 在“工具 → 优化 → 优化向导”中,选择优化类型(如RMS Spot Radius),设置目标值。
- 在评价函数编辑器中,手动添加操作数(如MNCA、MXCA)限制中心厚度和边缘厚度。
- 添加EFFL操作数控制系统焦距,添加TOTR控制总长。
初始结构:焦距100mm,F/4,视场±10°。变量设置如下:
| 面序号 | 参数 | 变量状态 | 初始值 | 边界约束 |
|---|---|---|---|---|
| 1 | 曲率半径R1 | 变量 | 50mm | 10~200mm |
| 1 | 厚度T1 | 变量 | 5mm | 2~10mm |
| 2 | 曲率半径R2 | 变量 | -45mm | -200~-10mm |
| 2 | 厚度T2 | 变量 | 3mm | 1~8mm |
| 3 | 曲率半径R3 | 变量 | -100mm | -300~-20mm |
| 3 | 厚度T3 | 变量 | 90mm | 50~150mm |
约束操作数:EFFL=100(权重1),MNCA(最小中心厚度)=2mm,MXCA(最大中心厚度)=10mm,TOTR(总长)<150mm。
3.5 常见误区与总结复盘
在初始建模阶段,以下问题最为常见,需要特别注意:
| 误区 | 后果 | 正确做法 |
|---|---|---|
| 未设置系统孔径/视场 | 优化函数无法计算像差 | 先定义孔径和视场 |
| 坐标断点倾斜顺序错误 | 光路折叠方向错误 | 画草图确认旋转轴 |
| 反射镜后未加坐标断点 | 后续面坐标错乱 | 反射后必须恢复坐标系 |
| 变量范围过宽 | 优化发散或陷入局部极小 | 根据物理限制设定边界 |
| 忽略玻璃库折射率温度系数 | 环境变化时性能漂移 | 设置参考温度/压力 |
总结复盘:建立初始光学系统的核心逻辑是“先全局后局部、先坐标后参数、先结构后优化”。系统参数定义是基础,透镜/反射镜建模是主体,坐标断点是处理复杂光路的关键工具,变量与约束则是连接建模与优化的桥梁。在实际工程中,建议按照以下流程操作:
- 明确设计指标(焦距、F/#、视场、波长)。
- 在Zemax中设置系统参数。
- 输入初始结构(可从专利库或经验公式获得)。
- 检查3D光路图,确认坐标正确。
- 设置变量和约束,保存初始副本。
- 运行优化,观察评价函数变化。