news 2026/10/2 1:01:15

Zemax牛顿望远镜设计:球差优化与从球面到抛物面的完整流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Zemax牛顿望远镜设计:球差优化与从球面到抛物面的完整流程

入坑Zemax做牛顿望远镜设计,很多人上来就踩同一个坑:以为把主镜设成抛物面、副镜转45度就完事了。结果光路在软件里怎么摆都不对,副镜加进去焦平面跑到了镜筒外面,优化了半天球差还是压不下去。去年有位同好拿着自己磨的200mm球面牛反来找我,说土星环始终看不锐,怀疑是镀膜问题。我一算他那支F/5的球面镜,边缘波前差已经接近3个波长,问题根本不在镀膜。后来就是在Zemax里把这套光路一步一步复原,从球面优化到接近衍射极限,他才真正理解了“球面到抛物面”那一下到底改了什么。

这篇文章就拿一个150mm口径、F/6的牛顿望远镜当例子,把从参数确定到像质验收的完整5步流程拆开讲,重点放在球差优化上。适合正在学Zemax光学设计的在校学生、自己磨镜的DIY玩家,以及想把球面主镜牛反改成抛物面方案的同好参考。五分步先放这:确定参数、搭建序列模型、配置视场与评价函数、球差优化、像质验收与公差分析。

1. 先把光路走通:牛顿望远镜的构建逻辑与球差来源

1.1 主镜、副镜和聚焦点的角色划分

牛顿望远镜本质上是“一凹一平”两片反射镜的组合。凹面主镜负责收集光线并聚焦,平面副镜则把焦点从镜筒正前方引到侧面,方便目镜或相机接入。相比折射镜,反射系统的最大好处是不产生色差,因为反射不依赖材料折射率,也和波长没有关系。

但平面副镜不是白装的。它挡在主镜前方,必然遮挡一部分入射光;它还会把光路折成90度,导致像面不在主镜光轴延长线上。很多新手第一次建模时,就是因为这最后一条栽了跟头。实际上,在设计阶段可以先不建副镜,把它留到最后做装配验证时再加。原因很简单:理想平面镜只改变光路方向,不引入任何球差、彗差等像差。主镜单独聚焦的像质,和装上理想平面副镜后的像质是完全一致的。

1.2 球面反射镜的球差:公式与直觉

球面镜好磨、好检测,所以几乎所有DIY都是从球面起步。但球面镜有个绕不开的毛病——边缘光线比近轴光线提前聚焦,这就是球差。这个像差对口径极其敏感,边缘光线的波前差近似与镜面半口径的四次方成正比。换句话说,口径翻倍,球差增大16倍。这就是为什么同样F/6的焦比下,80mm口径球面镜还凑合,150mm口径球面镜就已经完全没法看了。

拿我选的这个案例来算笔账。150mm口径的球面主镜,半口径h=75mm,焦距900mm对应曲率半径R=1800mm(凹面镜的曲率中心在入射光一侧,Zemax里符号为负)。用三级像差公式估算边缘波前差:

W ≈ h⁴ / (8R³) = 75⁴ / (8 × 1800³) ≈ 0.000678mm = 678nm

换算到550nm中心波长,大约是1.2个波长的波前误差。而瑞利判据要求波前差不超过四分之一波长。也就是说,球面镜在F/6时超标接近5倍。直接看纵向球差也行,边缘光线焦点比近轴焦点提前约0.39mm,而焦深只有大约±2λF²≈±40μm,远超十倍以上。

所以我能理解那位同好的困惑——镜面和镀膜都挺漂亮,但成像就是肉。球差这种低阶大像差把星点能量全部散开了,放大倍数越高越明显。

1.3 抛物面为什么是经典解

要消除球差,最直接的办法就是把主镜面形从球面改成抛物面。在Zemax里,抛物面用Conic常数k=-1来描述,球面则是k=0。当k从0变到-1时,系统对轴上点光源的球差会完全消失,平行光经过抛物面反射后理想会聚到同一个焦点。

但抛物面不是免费的午餐。磨制抛物面比球面难得多,检测也需要无球差点检验或干涉仪,DIY成本直线上升。更要命的是,抛物面消掉球差之后,还有另一个像差在等你好——离轴彗差。视场稍微偏一点点,星点就会拖出彗星状尾巴。F越小的牛顿镜,可用视场越窄。这也是为什么很多摄影用牛反要在焦平面前加彗差改正镜。

理解了这些,后面所有优化步骤才有意义:所谓“球差优化”,本质就是让Conic系数从0逼近-1,同时兼顾焦距不跑偏、离轴像差可接受。

2. 前两步落地:从参数表到Zemax序列模型

2.1 口径、焦比、遮挡比:参数表的博弈

设计一个牛顿望远镜,一开始就要定四个数:口径、焦距、焦比和副镜遮挡比。我选的是150mm口径、900mm焦距、F/6焦比。这个搭配在入门天文镜里很常见,既不像F/4那样对彗差极端敏感,也不像F/8那样把镜筒拉得过长。

遮挡比指的是副镜线尺寸与主镜线尺寸之比。它对成像有三个影响:减少进光量(面积遮挡比约为直径比的平方)、降低低频MTF、让星点衍射环能量外移。经验上是这样——摄影向的牛反,遮挡比尽量压在0.25以内;目视为主可以放宽到0.35。150mm口径取0.3左右是比较通用的选择,对应的副镜尺寸大约是45mm。

参数表的完整设置参考:

参数数值
入瞳直径150mm
主镜焦距900mm
系统焦比F/6
主镜曲率半径-1800mm
副镜遮挡比0.3
后截距(焦点到副镜距离)约120mm

2.2 反射镜建模:把“凹面镜朝哪边”翻译给软件

Zemax序列模式的建模逻辑很简单——每个面一排参数,光线从左往右追迹。但反射系统特殊在,光线碰到Mirror面后会反向传播,LDE厚度要填负值才能把焦点摆到镜子前方正确的位置。

以这个案例为例,打开新系统后做三件事。第一,把系统孔径设为Entrance Pupil Diameter,填150。第二,把物面厚度设为Infinity,表示无穷远目标。第三,在LDE里按下表搭建:

面编号面型厚度曲率半径/参数说明
OBJStandardInfinity—无穷远物面
1 (STO)Standard50Infinity入瞳/光阑
2Standard (Mirror)-900Radius=-1800, Conic=0主镜
IMAStandard——焦平面

主镜的Radius填-1800是负号,因为凹面镜朝入射光方向,曲率中心在镜面左侧。Conic先填0即球面,后面优化再放开。厚度从光阑到主镜填50mm,代表入射光到主镜前表面的距离。从主镜到像面填-900mm,负号表示光线反射后向回走,焦点落在主镜前方900mm处。

如果这一步填对了,3D Layout里看到的应该是:平行光从左边过来,打到凹面镜后被反射回左边,并在主镜前方约900mm处会聚。这是牛顿镜的“原始”光路,副镜还没加进来。

2.3 坐标断点与副镜折叠:光路从直线变成折线

优化阶段不建副镜,不代表永远不建。等主镜像质优化完,想让屏幕上的光路图和实际镜筒一致,就要用坐标断点(Coordinate Break)把光路折成Z字形。

具体的思路是:在主镜反射面之后插入一个坐标断点面,设置绕X轴或Y轴的倾斜量;然后放一个平面反射镜(厚度设为0的Standard面,勾选Mirror);再补一个坐标断点把坐标转回来,让后续像面垂直于反射后的光轴。这个过程繁琐但机械,核心就是“倾斜-反射-补偿坐标”。

很多新手在这里纠结:副镜建模会不会影响优化结果?不会。理想平面镜不引入像差,它的位置和旋转只会改变像面朝向和焦点位置,不会改变点列图大小和波前差。所以先优化、后折转,是效率最高的做法。如果你需要在非序列模式里做完整的物理光路模拟,也可以把主镜、副镜、像面按实际角度摆放,不过那是后面做杂散光分析时的事了。

3. 第三步:视场、波长与评价函数的三件套配置

3.1 视场设定的真实考量

牛顿望远镜的视场不大,但设计时也不能只给0度一个视场,否则你只会看到轴上像质。目视观察时,2寸目镜在900mm焦距下大概能得到1度以上的实际天空视场;用APS-C画幅相机直焦,传感器对角线约28mm,对应全视场约1.8度,半视场0.9度。

我建议设三到五个视场,从小到大覆盖实际使用范围。以半视场角为例,设0°、0.15°、0.3°三挡就够了。0.3°半视场对应约0.6°全视场,已经是普通目视场景比较真实的情况。再往上设,f/6牛反的彗差会大到你怀疑人生,反而干扰球差优化的判断。

这里有个Zemax的使用细节:对无穷远物面,视场类型用Angle(角度)而不是Object Height。在System Explorer里的Field选项卡中,选Angle,然后在Y-Field栏输入0、0.15、0.3,X-Field保持0。系统会在半视场内对称采样。

3.2 波长和后继探测器

反射系统无色差,但设计时波长还是要设。原因有两个:一是Zemax计算MTF和波前差时需要波长和权重;二是如果后续加改正透镜,色差就会成为新问题,必须一开始就把波长设全。

目视用途选F、d、C三色光(486.1nm、587.6nm、656.3nm)即可,权重可以默认1:1:1。如果做单色优化节省时间,可以先用587.6nm单波长跑球差,最后再切回三波长确认。摄影用途可以加400nm到700nm的连续波段,但反射系统本身无色差,最终设计结果和三波长差别很小。

3.3 默认评价函数向导怎么选:Spot还是Wavefront

这是新手最容易搞混的地方。打开Merit Function Editor,选择Optimization Wizard后,第一个选项就是“像质评价基准”。Zemax给了两种:RMS Spot Radius(点列图均方根半径)和RMS Wavefront(波前差均方根)。

我的建议非常直接:做望远镜,选RMS Wavefront。原因是天文望远镜看的是星点能量集中度,波前差与斯特列尔比直接相关,而Spot Radius在优化大球差时可能会把能量扩散的细节“平均”掉,优化结果看起来RMS不算大,但MTF回升不明显。RMS Wavefront则能从光程差层面更严格地约束像质。

Wizard里还有两个关键参数:Pupil Integration Method和Rings。保持默认的Gaussian Quadrature,Rings取6到8。环数越多采样越密,优化越准但越慢。在F/6这种中焦比系统上,6环已经够用。

3.4 优化变量和约束的提前绑定

评价函数只是目标,变量才是优化的“旋钮”。这个案例里可用的变量有两个:主镜Radius和主镜Conic。

如果目标是设计一支纯软件方案的牛反,两个都设为变量没问题;但如果你已经在磨镜,主镜曲率半径已经磨成了约1800mm,那就把Radius固定,只放开Conic。后一种更贴近现实——磨镜的人改变不了曲率半径,只能通过修改面形(非球面度)来消球差。

同时必须加一条约束:焦距不能跑偏。评价函数里插入一个EFFL操作数,目标值填900,权重给1。如果不加这条,优化器为了让球差减小,很可能会把焦距悄悄拉大(球差与焦距三次方成反比),导致系统实际焦比和镜筒结构全部对不上。

4. 第四步:球差优化的三阶段操作法

4.1 第一阶段:看清球差的初始大小和走向

优化前先别急着跑,先看初始像差。打开点列图分析,把Airy Radius显示开出来。优化前的球面镜,Spot RMS通常在几十微米量级,而艾里斑半径只有约4μm(1.22 × 0.55μm × 6),差了十几倍。再看OPD Fan曲线,如果呈明显的三次曲线形状,说明球差主导。

这时也可以用分析工具里的Seidel Diagram,直接看各面的赛德尔系数。主镜面的球差系数会是一个较大的非零值,而彗差、像散在轴上视场为0。这一步的意义是:让你在动手优化之前就知道“敌人”是谁、有多大。

4.2 第二阶段:曲率半径与Conic的协同优化

确认球差主导后,把优化器打开。具体操作:在评价函数编辑器里点Tools → Optimization → Optimization Wizard,选RMS Wavefront + Centroid参考,Rings设6;然后回到LDE把Conic设为Variable,Radius是否放开取决于你上面说的磨镜情况。点Optimize开始。

正常情况下,优化器会把Conic从0推向-1附近。如果Radius也参与了优化,它可能做小幅修正,最终Conic落在-0.95到-1.05之间都是正常的。优化完成后看一眼点列图,RMS半径应该降到微米级甚至亚微米级,与艾里斑半径可比;OPD Fan曲线的S形弯曲大幅收平。

这里有个经典翻车案例:Conic优化到-2甚至更负,波前看起来也不错,但焦距已经跑到了1500mm。这就是漏了EFFL约束的结果。加了焦距约束后,优化器才不敢乱拉系统尺寸。

4.3 第三阶段:残余球差的精细平衡与约束

到了这一步,大球差基本消干净了,但如果你想要更顶真的结果,可以用操作数做精细校零。在MFE里手动插入TRAY操作数,用以控制特定口径处的横向光线像差。

以下是我实际用过的MFE配置片段,可供参考:

操作数参数设置目标值权重
EFFLSurf=2, Hx=0, Hy=09001
TRAYSurf=IMA, Hx=0, Hy=0, Px=0, Py=0.701
TRAYSurf=IMA, Hx=0, Hy=0, Px=0, Py=1.001

TRAY里的Py代表归一化孔径坐标,Py=1对应边缘光线,Py=0.7对应0.7口径处的光线。把这两处的横向像差压到0,就能确保球差在孔径上均匀且完全消除,而不是仅靠“某种平衡”掩盖问题。

这个阶段还要注意一个陷阱:优化收敛后一定要切回0.3度视场看一眼。抛物面消球差只对轴上点有效,离轴后彗差马上冒出来。如果你的评价函数里视场权重分配不合理,优化器可能会用球差去“补偿”彗差,导致轴上反而变差。所以做牛反优化时,球差校零最好只在0度视场下做,彗差问题留给改正镜或视场取舍去解决。

4.4 球差优化里的进阶招:球面主镜时代的低成本方案

如果不想磨抛物面,还有一条路:球面主镜加改正透镜。这个方案在商业望远镜里很常见,历史上称为Rosin改正镜或类似的两片式改正组,放在焦平面前方,用透镜组合产生的反向球差去抵消球面镜的球差。

在Zemax里做这个优化,流程稍作调整:在主镜和像面之间插入一个透镜组面序列,把透镜曲率半径设为变量,主镜保持球面(Conic=0),然后用RMS Wavefront做默认评价函数。注意这时波长必须用三色光,因为透镜一进来就带了色差,需要用胶合或分离结构做消色差。

这个方案的软件设计难度不大,但物理实现有代价:改正镜增加了光学件数量、表面反射损失和杂散光风险,小型牛反装上后性价比不一定比直接上抛物面高。所以我的看法是——球面主镜加改正镜适合大口径系统,因为大口径抛物面磨制成本指数上升,而改正镜成本相对固定;150mm这种级别,还是老老实实优化Conic上抛物面更划算。

5. 第五步:像质验收与副镜遮挡的真相

5.1 用四种工具验收一个望远镜设计

优化收敛不等于设计完成。我每次交设计前,都会用四个工具把系统过一遍,缺一不可。

第一个是点列图(Spot Diagram)。打开时记得勾选Show Airy Radius。如果RMS半径小于艾里斑半径,说明几何像差已经不再是限制因素,系统接近衍射极限。第二个是MTF曲线。看零视场的MTF是否紧贴衍射极限曲线,同时看0.3度视场的MTF在低频段是否塌得厉害——这是判断彗差是否可接受的最快方式。

第三个是OPD Fan(光程差曲线)。轴上视场的OPD曲线应该是一条接近水平的直线,任何明显的S形弯曲都意味着残余球差还没清干净。第四个是斯特列尔比,在评价函数里插入STRC操作数直接读值,轴上视场大于0.8就是衍射极限级,0.5以下说明像质还有明显缺陷。

对150mm F/6这个案例,验收标准大致是:轴上视场的点列图RMS小于艾里斑半径,STRC大于0.9,F/d/C三波长的MTF低频段下降不超过10%。

5.2 副镜遮挡对MTF和衍射能量的影响

现在回到副镜。在System Explorer的Aperture选项卡里,有个Central Obscuration参数,直接填0.3。它表示副镜对入瞳的线性遮挡比例。加上这个参数后,重新看MTF和PSF,你会看到两个明显变化。

第一,MTF曲线整体下压。遮挡会让大幅度的中低频响应降低,星点能量从中心衍射斑转移到了外面的衍射环上,直观感受就是“星点变毛了”。摄影派玩家特别在意这件事。第二,系统的理论截止频率不变,所以细节分辨率并不会因为遮挡而突然消失,只是对比度降低。

实际设计里,如果副镜遮挡比从0.3降到0.2,MTF中频响应会有可感知的提升,但副镜尺寸太小又会导致目视时出瞳亮度和照明均匀性变差。所以遮比不是越小越好,美观和实用性要平衡。

5.3 公差测试:设计好不等于磨得好

最后一步,公差分析。设计文件里再完美的像质,落到实际镜片和装配上都会被误差拉低。Zemax里的Tolerance Wizard可以一键完成大半工作,但参数得自己填合理。

我给这个案例常用的初始化公差就三条:主镜曲率半径±5mm、主镜面形误差PV控制在八分之一波长以内、副镜角度误差±0.3度。再加上像面间距±0.2mm,模拟调焦座的对焦余量。运行灵敏度分析和500次蒙特卡洛模拟后,看90%置信区间的波前差。

如果90%的模拟结果STRC还大于0.8,说明设计余量充足,可以放心加工;如果后90%只有0.6,就得考虑收紧面形公差或改小遮挡比。实际经验是,150mm F/6抛物面牛反只要主镜面形靠谱、副镜安装别太歪,成品达到衍射极限是大概率事件。

整套流程走下来我最大的体会是:球差优化的难度从来不在软件操作,而是你到底有没有提前算清“球面离抛物面差多少”这笔账。Zemax只是个高度称手的验算台,真正决定设计成败的,是参数表的一开始的取舍和优化时的约束意识。拿起软件之前先把钱算明白,你至少能少走一半弯路。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 1:01:06

MBConv模块深入解析:从EfficientNet核心结构到工程实践避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/2 1:01:06

Intel RST存储加速原理与实战:从BIOS设置到数据恢复

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/2 0:52:47

PyTorch DDP 单卡改双卡训练结果对齐实战指南

单卡跑通的训练脚本,直接套上torchrun --nproc_per_node2就一定能得到和单卡一致的结果吗?我一开始也是这么以为的,直到某次实验里 loss 曲线在双卡下明显抖了一下,排查了大半天才发现是 DataLoader 的 shuffle 种子没对齐。LLM T…

作者头像 李华
网站建设 2026/10/2 0:26:58

STM32F103开发板学习路线:从环境搭建到实战避坑

STM32F103开发板到手,先把这条学习路线理顺板子刚拿到手,别急着插线、别急着点灯,先把思路理顺。STM32F103这款芯片,在嵌入式圈子里几乎是“入门标配”,不是因为它的性能有多爆炸,而是因为它太典型了——Co…

作者头像 李华
网站建设 2026/10/2 0:12:44

ESXi 6.7物理服务器启动盘制作全指南

1. 这不是普通装系统,是给物理服务器“打底”的关键一步你手头有一台闲置的旧服务器、一台二手Dell R720、或者刚淘来的HP ProLiant DL360,想把它变成一个稳定跑虚拟机的私有云平台——这时候,ESXi 6.7 就成了最务实的选择。它轻量、高效、资…

作者头像 李华