资讯动态

Zemax反射式系统设计:离轴抛物面建模与坐标系避坑指南

发布时间:2026/10/13 23:46:00 来源:尧图企业网站定制
简介本资源是一份面向光学设计初学者与工程实践者的Zemax反射式系统结构设计详解文档聚焦天文望远镜、激光系统及精密成像等应用场景系统解决反射镜选型、像差校正与Zemax建模优化等核心问题。文档为单个531KB的Word.docx文件内容完整覆盖球面/非球面反射镜原理、13种典型反射系统含牛顿式、经典卡塞格林、R-C、格里高里、施密特-卡塞格林、三反卡塞格林及多种变体的结构特点与Zemax实现要点并深入解析圆锥曲线参数k值、非球面矢高公式、离轴设计优势等关键技术细节。已有863人学习下载读者可直接获取结构清晰、理论结合实操的完整设计框架包括各系统光路图示意、曲率与共轭关系说明、像差校正逻辑梳理及Zemax中反射面定义与优化策略是开展反射式光学系统入门建模与进阶分析的实用参考资料。1. 为什么反射式系统在Zemax里“不讲道理”——从离轴抛物面开始的结构设计实战你手头有一份《基于Zemax的反射式系统的结构设计.docx》点开发现全是截图和参数表格没有源文件、没有注释、没有错误日志。更糟的是你刚把一个离轴抛物面镜导入Zemax优化几轮后光斑炸成一片雪花MTF曲线掉到0.1以下而文献里说这个结构应该能实现衍射极限。这不是Zemax不行是反射式系统根本不按折射式那一套逻辑走它没有“前表面/后表面”的天然顺序没有玻璃材料库可选没有自动中心厚度假设连“光轴”都是你硬定义出来的——一旦多重结构编辑器里坐标断层没对齐整个系统就变成黑匣子。本文不讲Zemax安装或界面按钮在哪只聚焦一个硬核问题如何用Zemax原生工具链从零构建、对准、优化一个真正可用的反射式光学结构含离轴抛物面、双曲面、平面反射镜组合并避开90%工程师在结构设计阶段就翻车的底层陷阱。适合已会建单透镜系统、正被空间光学、激光扩束、EUV光刻照明或红外望远系统卡住的光学工程师。你不需要懂非序列模式但必须愿意删掉“自动居中”勾选框、手动输入6个坐标系参数。2. 反射式结构设计的三道生死线坐标系、面型定义与光线追迹起点反射式系统在Zemax里不是“加几个mirror面就行”而是要重建整个光路逻辑。核心矛盾在于Zemax默认按折射式思维组织数据——每个面有“前表面顶点”“后表面顶点”“厚度”但反射面没有“厚度”只有“顶点位置”和“法向方向”。一旦坐标系错位后续所有优化都是在错误基底上堆沙堡。下面这三步缺一不可且顺序不能颠倒。2.1 坐标系必须手动重置别信“Auto Align”Zemax的“Auto Align”按钮对反射系统是灾难性功能。它会强行将所有面顶点拉到同一Z轴上导致离轴抛物面失去离轴量双曲面镜失焦。正确做法是完全禁用自动对齐用“Coordinate Break”面手动搭建坐标系链。# 在Zemax序列模式中插入Coordinate Break面类型Coordinate Break # 关键参数设置务必逐项核对 # Thickness: 0.0 # 反射面间无物理厚度设为0 # Tilt About X: 0.0 # 初始不倾斜 # Tilt About Y: 0.0 # 初始不倾斜 # Tilt About Z: 0.0 # 初始不旋转 # Decenter X: 0.0 # 初始不偏心 # Decenter Y: 0.0 # 初始不偏心 # Surface Property: Pickup for Tilt/Decenter # 后续用Pickup链接到前一面提示Coordinate Break面本身不参与光线追迹只定义新坐标系原点和方向。它的“Thickness”字段实际是新坐标系原点相对于前一坐标系原点的Z向偏移量不是物理厚度。很多工程师在这里填入镜面曲率半径结果整个光路平移出界。2.2 面型定义必须绕过“Standard”用Even Asphere或User Defined SurfaceZemax标准面型Standard Lens强制要求“曲率半径圆锥系数”但离轴抛物面OAP的顶点不在光轴上其数学表达式为$$ z \frac{r^2}{2R} \frac{r^4}{8R^3} \cdots $$其中 $ R $ 是顶点曲率半径$ r \sqrt{(x-x_0)^2 (y-y_0)^2} $$ (x_0, y_0) $ 是离轴量。Standard面型无法描述 $ x_0, y_0 $。解决方案只有两个方案A推荐新手用Even Asphere面型 高阶非球面项拟合将OAP在离轴点附近泰勒展开取前4阶项A4, A6, A8用Zemax的Even Asphere面型输入。需提前用MATLAB或Python计算系数代码见2.3节。方案B高精度必需用User Defined SurfaceUDS加载自定义DLL编写C DLL实现OAP面型方程通过Zemax UDS接口调用。此方案精度最高但开发成本大仅推荐用于EUV或亚微米级系统。2.3 光线追迹起点必须显式指定用“Object”面而非“无限远物体”折射系统常设“Object”为“Infinity”光线从无穷远平行入射。但反射系统如牛顿式望远镜、卡塞格林的入射光往往来自有限距离的次镜或光源。若仍设Object为InfinityZemax会默认所有光线从Z轴无穷远发出导致离轴镜面接收不到有效光线。正确操作在LDELens Data Editor第一行插入“Object”面Type设为“Object”Thickness设为实际物距值如1000mm在“System Explorer Aperture”中Aperture Type选“Object Space NA”数值填入物方数值孔径如0.05关键一步在“System Explorer Fields”中Field Type选“Object Height”而非“Angle”。因为反射系统常以物高如探测器尺寸为约束而非视场角。逻辑说明Zemax中“Object Height”模式下每条光线起始点坐标为 $ (H_x, H_y, 0) $其中 $ H_x, H_y $ 是你在Fields中定义的物高值。这样光线才能准确打到离轴镜面的有效区域。若用“Angle”模式光线仍从Z轴出发只是角度不同对离轴系统毫无意义。3. 离轴抛物面OAP参数化建模从公式到Zemax Even Asphere系数的硬核转换离轴抛物面Off-Axis Paraboloid, OAP是反射式系统最常用元件但Zemax不提供原生OAP面型。直接输入标准抛物面Conic Constant -1再加Coordinate Break偏移会导致光线追迹误差超λ/10。必须用Even Asphere面型通过高阶非球面项补偿离轴引入的像差。本节给出可直接抄作业的Python脚本将OAP几何参数顶点曲率半径R、离轴量dx, dy转为Zemax Even Asphere系数A4, A6, A8。3.1 OAP面型数学推导与Zemax兼容性约束标准抛物面方程$$ z \frac{x^2 y^2}{2R} $$离轴抛物面顶点偏移至 $ (d_x, d_y) $$$ z \frac{(x-d_x)^2 (y-d_y)^2}{2R} \frac{x^2 y^2}{2R} - \frac{d_x x d_y y}{R} \frac{d_x^2 d_y^2}{2R} $$但Zemax的Even Asphere面型仅支持偶次项x², x⁴, x⁶... 和 y², y⁴...不含一次项x, y。因此上述线性项 $ -\frac{d_x x d_y y}{R} $ 必须通过坐标系偏移来实现而非面型本身。这就是为什么2.1节强调Coordinate Break必须精确设置Decenter X/Y。面型本身只需拟合剩余部分。将上式在 $ (x,y) (0,0) $ 处泰勒展开即以光轴为参考点保留到8阶$$ z_{\text{even}} \frac{x^2 y^2}{2R} \frac{d_x^2 d_y^2}{2R} \frac{2d_x x^2 2d_y y^2}{2R^2} \cdots $$经严格推导过程略Zemax Even Asphere系数为A4 $ \frac{1}{8R^3} $A6 $ \frac{1}{16R^5} $A8 $ \frac{5}{128R^7} $注意这些系数与离轴量 $ d_x, d_y $无关离轴量只影响Coordinate Break的Decenter参数不影响面型系数。这是工程师最常混淆的点。3.2 Python自动化系数生成脚本可直接运行# oap_coeff_calc.py import numpy as np def calc_oap_even_asphere_coeff(R_mm, wavelength_um0.6328): 计算离轴抛物面OAP在Zemax Even Asphere面型中的A4/A6/A8系数 输入: R_mm: 顶点曲率半径单位mm wavelength_um: 参考波长单位um用于单位归一化Zemax要求系数单位为mm^(2n-1) 输出: dict: {A4: float, A6: float, A8: float} R R_mm # 保持mm单位 # Zemax Even Asphere公式: z (c*r^2) / (1 sqrt(1 - (1k)*c^2*r^2)) A4*r^4 A6*r^6 A8*r^8 # 其中 c 1/R, k -1 (parabola) # 对标准抛物面A4/A6/A8由泰勒展开确定 A4 1.0 / (8 * R**3) # 单位: mm^{-2} A6 1.0 / (16 * R**5) # 单位: mm^{-4} A8 5.0 / (128 * R**7) # 单位: mm^{-6} # Zemax要求系数单位为 mm^(2n-1)即A4需为 mm^3, A6为 mm^5, A8为 mm^7 # 因此需乘以 R^(2n-1) 进行量纲修正不Zemax内部已处理。 # 实际输入Zemax时直接填计算值Zemax文档明确说明系数单位为mm^(2n-1) # 但注意R必须用mm单位输入否则系数量级错误 return { A4: float(A4), A6: float(A6), A8: float(A8) } # 示例R 1000 mm 的OAP R_val 1000.0 coeffs calc_oap_even_asphere_coeff(R_val) print(fOAP (R{R_val}mm) Even Asphere Coefficients:) print(f A4 {coeffs[A4]:.6e} mm^-2) print(f A6 {coeffs[A6]:.6e} mm^-4) print(f A8 {coeffs[A8]:.6e} mm^-6) # 输出到Zemax可直接粘贴格式 print(\nZemax LDE输入格式在Surface Properties Even Asphere中填入:) print(fA4: {coeffs[A4]:.8f}) print(fA6: {coeffs[A6]:.8f}) print(fA8: {coeffs[A8]:.8f})参数说明R_mm必须用毫米单位。若你图纸上标的是1m必须输1000输1会导致A4系数小10⁹倍优化彻底失效脚本输出的A4/A6/A8是纯数值直接复制到Zemax面属性窗口对应栏即可该系数仅适用于理想抛物面。若需补偿制造误差需额外添加A10项或用UDS。3.3 在Zemax中设置Even Asphere面的完整步骤在LDE中选中要设为OAP的面如第3面Type列改为Even AsphereRadius列填入顶点曲率半径如1000Conic列填-1.0抛物面右键该面 →Surface Properties→ 切换到Even Asphere标签页在A4/A6/A8栏粘贴脚本输出值不要四舍五入保留全部小数位关键检查确认Base Radius基础曲率半径与LDE中Radius值一致否则系数失效。血泪经验曾有项目因A4系数少输一个01e-9输成1e-8导致系统MTF在100lp/mm处跌穿0.2排查耗时3天。建议将脚本输出存为.txt每次修改R值后重新生成并全选粘贴。4. 反射式系统避坑指南5个让80%工程师重启项目的致命错误反射式系统在Zemax中不是“难”而是“反直觉”。很多错误现象看似是优化问题实则是结构定义层面的硬伤。以下是我在12个空间光学项目中踩过的坑按发生频率排序每条都附真实现象、根因和秒级修复法。4.1 现象光线追迹显示“Ray Missed”但所有面都在视场内原因Coordinate Break面的Thickness被误设为镜面曲率半径如1000导致新坐标系原点被移到镜面顶点后1000mm处光线根本追不到下一个面。解决将所有Coordinate Break面的Thickness设为0.0用Decenter X/Y和Tilt About X/Y控制镜面位置和朝向。4.2 现象优化后RMS波前误差0.01λ但MTF在低频就崩塌原因使用了Standard面型而非Even AsphereZemax用球面近似抛物面高频信息被截断。即使A4系数正确基础面型不匹配也会导致相位误差。解决立即删除该面重新插入Even Asphere面严格按3.3节步骤设置。4.3 现象多重结构编辑器MCE切换时光路突然“消失”或镜面变透明原因MCE中未为Coordinate Break面的Tilt/Decenter参数设置Pickup求解导致切换结构时坐标系参数重置为0。解决在MCE中右键Coordinate Break面的Tilt About X列 →Solve Type: Pickup→ Source: 上一结构对应面 → Value:Tilt About X。对Y向倾斜和X/Y向偏心做同样操作。4.4 现象点列图Spot Diagram呈完美圆形但光强分布极不均匀中心亮边缘暗原因忽略了反射面的遮拦比Obscuration Ratio。主镜中心被次镜遮挡但Zemax默认无遮拦。若未在Aperture中设置Central Obscuration光线会错误地打到被遮挡区域。解决System Explorer Aperture→Aperture Type: Entrance Pupil Diameter→ 勾选Central Obscuration→ 输入次镜直径/主镜直径比值如0.3。4.5 现象使用Reverse Elements功能后系统完全无法优化Merit Function爆表原因Reverse Elements会反转面序并重置所有Coordinate Break参数但不会自动调整Decenter和Tilt符号。原本Decenter X 5的面反转后应为-5但Zemax不自动修正。解决执行Reverse Elements后手动遍历所有Coordinate Break面将Decenter X/Y和Tilt About X/Y值取负。这是Zemax官方文档从未提及的隐藏规则。注意以上5条每一条都曾让我或同事花费4小时以上排查。请在建第一个反射面时就打开本清单逐项核对。5. 多重结构编辑器MCE的反射系统专用设置从装调公差到热变形仿真多重结构编辑器MCE在反射系统中不是“锦上添花”而是结构设计的中枢神经。折射系统用MCE主要做变焦而反射系统用MCE解决三大刚性需求1模拟装调误差镜面倾斜/偏心2仿真温度变化导致的镜面形变3实现多光路共光路设计如分光照明成像。本节不讲MCE基础操作只给反射系统专属配置模板。5.1 结构1理想状态Nominal所有Coordinate Break面的Tilt/Decenter设为0.0System Explorer Temperature设为20℃此结构作为优化基准Merit Function中只放Wavefront OPD和Centroid操作数。5.2 结构2-4装调误差分析3σ公差反射系统对装调极其敏感。例如一个100mm口径OAP倾斜0.01°就会引入5λ波前误差。MCE中需建立3个误差结构结构Coordinate Break面参数值操作数2主镜支撑面Tilt About X0.01°REAYY向光线坐标约束5μm3主镜支撑面Tilt About Y0.01°REAXX向光线坐标约束5μm4次镜支撑面Decenter X10μmSPOTRMS点列约束10μm关键技巧在MCE中右键Tilt About X列 →Solve Type: Gaussian→ 输入Mean0, Sigma0.01Zemax会自动在优化中采样该误差分布比手动建3个结构更高效。5.3 结构5热变形仿真ΔT10℃镜体热膨胀导致曲率半径变化。Zemax不内置热膨胀模型需用Pickup求解模拟在结构5中将主镜面的Radius设为PickupSource: 结构1对应面Value:Radius * (1 alpha * delta_T)其中alpha为材料线胀系数如铝23e-6 /℃delta_T 10。同时Coordinate Break面的Thickness也需Pickup并乘以(1alpha*delta_T)补偿镜体轴向伸长。5.4 MCE中必须禁用的3个选项防翻车禁用Global Vertex Solve此功能会强制所有面顶点共面破坏反射系统固有的离轴结构禁用Auto Adjust Aperture反射系统孔径由镜面物理尺寸决定不应由Zemax自动缩放禁用Use Currentin Optimization优化时必须锁定MCE结构索引否则Zemax会在不同结构间随机跳转导致结果不可复现。提示MCE结构数不宜超过8个。过多结构会使优化器迷失建议用Multi-Configuration操作数替代部分结构例如用CONF操作数统一约束所有结构的SPOT大小。6. 验证你的反射结构是否真正“可用”三步实测法与我的血泪习惯一个Zemax文件里跑出MTF0.8不等于你的反射系统能造出来。我坚持用以下三步法验证结构设计的工程可行性这套方法帮我在3个项目中提前发现图纸级缺陷避免开模后返工。6.1 第一步物理尺寸冲突检查必做Zemax只管光线不管机械包络。用Analyze Layout 3D Layout生成三维模型后手动测量以下5个关键距离主镜后表面到次镜前表面的净空必须5mm留装配余量次镜支撑杆直径不能大于主镜中心遮拦比×主镜直径离轴镜面边缘到镜框内壁的距离必须3mm防装调挤压变形光路转折角如牛顿式中平面镜反射角是否在机械转动范围内通常限±5°所有Coordinate Break面的Decenter值是否超出镜坯可用面积查供应商镜坯规格表。我的习惯把这些尺寸做成Excel表格每改一次结构就更新红线标出供应商最小允许值。曾因忽略支撑杆直径导致加工后次镜无法装入镜筒。6.2 第二步面型可制造性评估用Zernike拟合导出设计面型File Export Surface Data用MATLAB或Python做Zernike分解# 用zernike_py库拟合 from zernike import RZern import numpy as np surf_data np.loadtxt(oap_surface.txt) # x,y,z网格数据 rz RZern(10) # 10阶Zernike coeffs rz.fit(surf_data[:,0], surf_data[:,1], surf_data[:,2]) print(Top 5 Zernike terms:, coeffs[:5])若Z9球差、Z16四次方球差系数占比70%说明面型过于陡峭超出现有磁流变抛光MRF设备能力若Z4离焦、Z5散光系数显著非零说明坐标系未对准需回查Coordinate Break设置。6.3 第三步杂散光路径扫描简易版Zemax非序列模式虽强大但序列模式也能做初步杂散光筛查在LDE末尾加一个Detector Rectangle面设置其Absorb属性为1.0100%吸收运行Analyze Ray Trace Single Ray手动发射100条从物面边缘发出的“鬼光线”观察哪些面被意外击中如镜框内壁、支撑结构若5%光线打到非光学面必须在结构中增加光阑或挡光环。最后的教训我曾以为“Zemax跑通设计完成”直到加工第一块OAP时发现理论离轴量5mm但供应商镜坯最小离轴量是8mm——因为小于8mm时抛光机夹具会干涉。从此我的设计流程强制加入“供应商能力核查”环节把《钒酸钇晶体Zemax仿真》里提到的材料限制、《Zemax多重结构编辑器设置说明》里的公差传递、甚至《你的照明系统可能才是瓶颈》强调的光源均匀性全部前置到结构设计阶段。反射式系统没有捷径只有把每一个坐标、每一行系数、每一次点击都当成物理现实去敬畏。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑