简介:这是一份围绕Zemax光学设计软件完成牛顿望远镜设计的doc格式文档,适合光学工程、应用物理专业学生以及天文望远镜DIY爱好者阅读。文档先回顾牛顿反射望远镜的历史与结构,说明其采用凹球面主镜将光线会聚,同时点出球面像差、彗差等固有缺陷;随后进入Zemax实操层面,依次给出设计要求、光学系统优化算法使用和分析工具应用,并附录物镜焦距、像差、球面镜与异形镜结构等性能指标,能帮助读者从原理到仿真完整走通一个经典反射式光学系统的设计流程。压缩包共1个doc文件,大小约30KB,内容紧凑、目录清晰,便于按章节查阅。目前已有339人学习,对于想快速掌握Zemax基础建模与望远镜性能分析的用户来说,是一个轻量且实用的参考资料。
1. 给光学设计师的牛顿望远镜:为什么先在 Zemax 里建模,再谈镜架
把牛顿望远镜从一张装配图变成可加工、可装调的光学系统,Zemax 建模是绕不开的第一步。很多人拿到口径 150mm、F/5 这类参数就直接去画镜筒,结果主镜磨好了、副镜也粘上了,星点却是一团带尾巴的彗差,最后只能靠运气调光轴。这篇文章不讲抽象光学推导,而是按我的实际设计顺序,把基于 Zemax 的牛顿望远镜设计讲透:先定光学常数,再搭序列模式模型,然后看波前、点列图和 MTF,做像差优化和公差分析,最后用仿真指导装调。适合光学工程在校生、DIY 望远镜的老手,以及刚接触反射系统、被坐标断点和负厚度整到怀疑人生的从业者。
2. 从光路到参数:在 Zemax 序列模式下把牛顿望远镜说清楚
2.1 光学常数先定死:口径、焦比、遮挡比不是随便填的
设计牛顿望远镜,第一步不是打开 Zemax,而是先把指标写清楚。最常见的口径是 150mm 和 200mm,焦比 F/5 到 F/8 之间。口径决定分辨率,焦比决定镜筒长度和副镜遮挡比。焦比越小,副镜越小,但轴外彗差越明显,而且镜筒短了以后对副镜倾斜公差更敏感。
我一般先按以下顺序把常数定下来:口径 D=200mm,焦距 f=1000mm,这样焦比 F/5,主镜到焦点的距离是 1m,去掉副镜偏折后像面到副镜中心的距离留 100mm 左右,主镜到副镜顶点大约 900mm。这个距离不是拍脑袋来的,它决定了副镜短轴尺寸。副镜短轴如果取 40mm,遮挡比就是 40/200=20%,在亮度和衍射之间比较均衡;如果镜筒想做得更紧凑、后截距留大,副镜就要更大,遮挡比可能上升到 25%。在 Zemax 里,这个比例要在"System Aperture"里用地化和环形遮挡体现,否则后面 MTF 曲线会比实际好看。
还有一点容易忽略:牛顿望远镜用的是抛物面主镜,不是球面。球面镜会带来严重球差,所以 Zemax 的 Standard 面上圆锥系数要填 -1,而不是默认的 0。这个值直接影响轴上像质,后面优化时要当成核心变量。
2.2 最小可跑的模型:入瞳到像面的六个面
打开 Zemax OpticStudio 的序列模式,从 Lens Data Editor 开始。把默认的初始系统清空,按光路顺序填下面这些面。这个模型仅供参考,但足以用来验证光路方向,也是一种能跑通的最小牛顿镜模型。
Surface Type Radius Thickness Conic Semi-Diameter OBJ Infinity Infinity Infinity 0 - STO Standard (MIRROR) -2000 -900 -1 100 CB Coordinate Break 0 0 0 - Standard (MIRROR) Infinity -100 0 50 CB Coordinate Break 0 0 0 - IMG Standard Infinity 0 0 -这里的关键在符号。Zemax 中,曲率半径为负表示曲率中心在表面左侧,凹面镜面向入射光时就是这样,所以 R=-2000mm,对应焦距 f=R/2=1000mm。主镜厚度填 -900 表示反射后的光沿 -Z 方向传播,回到主镜前方 900mm 处的那块副镜;副镜厚度 -100 同理,表示光被副镜偏折后到像面的距离。很多人第一次看到负厚度会以为是软件算错了,其实这是反射系统在序列模式下的标准写法,千万不要把符号改掉。
副镜倾斜我没直接写在表里,因为要先用坐标断点。在副镜标准面之前插入一个 Coordinate Break,设置绕 X 轴旋转 45°,光路就会折向 -Y 方向;副镜之后再放一个 Coordinate Break,绕 X 轴旋转 -45°,把坐标系恢复到接近水平,方便看像面。实际建模时副镜半直径要给 50mm 以上,否则边缘光线会被切掉,点列图会少一圈光点。
2.3 主镜曲率半径与圆锥系数:先算后填不玄学
主镜曲率半径和圆锥系数是牛顿镜最核心的两个参数,但它们不是靠优化"跑"出来的,而是由指标直接算出来的。抛物面主镜的焦距 f 和曲率半径 R 的关系是 R=2f,所以口径 200mm、焦距 1000mm 时 R 必须是 -2000mm。圆锥系数决定了面形偏离球面的程度,抛物面对应 K=-1。
Zemax 的 Standard 面本来就能表达圆锥曲面,不需要专门用 Asphere 面型。把 Conic 设为 -1 以后,轴上平行光经过反射会严格聚焦到一个点,点列图的 RMS 半径趋近于衍射极限。如果你用的是球面镜,Conic=0,点列图会看到明显的球差。这个先算后填的步骤是防止后面优化跑飞的基础:变量可以设,但初始值必须物理正确。
填完这个表格以后,立刻打开 Analyze 里的 3D Layout 看光线走势。好的结果是:入射平行光先打到主镜,反射后向副镜汇聚,再折转 90° 落在像面。如果看到光线穿过镜子或者出现很奇怪的折返,优先检查两件事:镜面 Coating 是否选了 MIRROR,坐标断点的旋转轴方向是否正确。这两个坑下面专门说。
3. 参数表填完只是开始:像质评价与三个必调参数
3.1 波前图、点列图和 MTF:牛顿镜像差该看哪张
序列模式建模跑通以后,第一件事是看 Analyze 里的 Spot Diagram、Wavefront Map 和 MTF。对一个 F/5 的 200mm 抛物面反射镜,轴上点列图应该接近 Airy 斑,RMS 半径小于 10μm;波前图应该是平坦的,轴上的 RMS 波前误差一般在 0.05λ 以下。如果一个抛物面镜轴上波前就不好,那别急着优化副镜,先查主镜的 Conic 和 R。
牛顿望远镜最典型的轴外问题是彗差,不是球差。把视场设到 0.3°、0.5° 后再看点列图,彗差的形状是带方向的点状弥散,像一簇从中心扯出去的短线。MTF 曲线在高频部分会比衍射极限低不少。这时候就涉及三个必调参数了:离焦量、副镜倾斜角、主镜圆锥系数。它们的优先级不一样,不能一上来就把圆锥系数放开优化。
在 Zemax 里,我会分别建三个评价函数场景:RMS Wavefront 用于轴上优化,RMS Spot X 和 RMS Spot Y 用于轴外彗差评估。优化变量优先级是:后截距(对应调焦)→ 副镜绕 X 轴倾斜角 → 主镜曲率半径和圆锥系数。顺序不能反,因为装配时分寸的误差首先来自离焦,熟练以后你会发现 80% 的像质问题靠后截距就能救回来。
3.2 离焦补偿:后截距比换镜片更常见
后截距在这里指副镜反射点到像面的距离,也就是 LDE 里第二个坐标断点后、副镜之后那个 -100 厚度。改它不会影响主镜焦距,但会影响焦点是否落在探测器靶面。实际镜筒里就是调焦座前后移动的范围。
Zemax 里有两种做法:直接手动改负厚度,或者把它设为变量再优化。我常用后一种,原因是它同时把球差和彗差的平衡考虑进去了。设置优化函数时,用默认的 RMS Wavefront,再加一个边界条件:后截距保持在 80~120mm,这对应你的调焦座行程。优化结果通常是主镜厚度做微微调整,后截距落在允差范围内。有个经验值:200mm F/5 的镜子,离焦 0.5mm,RMS 波前会增加约 0.1λ,这在实际检测中是能感觉到的。
如果看到 MTF 在低频就掉得厉害,而波前图是高阶球差为主,那么单纯调后截距不够,这时候要检查主镜的 Conic 是否因为加工偏离了 -1。注意不要在主镜半径和圆锥系数同时放开时跑优化,两个参数高度相关,容易跑出 R=-2050、K=-0.7 这种"光学上等效但实际加工不现实"的奇葩组合。
3.3 副镜位置与中心遮挡:三个敏感参数
副镜位置有两个维度:沿光轴方向的平移和绕 X 轴的倾斜。沿光轴平移一点,等于是改变了后截距,可以用调焦补偿一部分;绕 X 轴倾斜 45° 的角度如果不是刚好 45°,光轴就会偏折成 89° 或 91°,像面上一侧离焦一侧清晰,这就是典型彗差。很多人以为副镜歪了只会让星点变暗,实际误差明显时,星点会带一个扇形的拖尾。
在 Zemax 里判断副镜倾斜误差的方法是:把视场设到 0.5°,看 Spot Diagram 里 Y 方向拖尾是否随视场变化。如果轴上星点也是一个方向拉长,而且随着焦内焦外位置变换方向,那就是副镜倾斜有问题。建议在坐标断点里把 Tilt X 的初始值填 45.000° 而不是 45°,留出 0.1° 级别的变量空间,因为装配时一个垫片 0.05mm 就能让角度偏 0.2°。
中心遮挡的建模,则不是序列模式默认会做的。要准确模拟遮挡衍射,可以在系统孔径设置里把入瞳定义为环形,或者切换到非序列模式把副镜的实体挡住一半光路。序列模式直接看 MTF 会偏乐观,尤其是第一暗环的位置和 Strehl 比值,这点在验收仿真报告时要注意。
4. 避坑:Zemax 建模牛顿望远镜的 5 个常见翻车点
4.1 主镜圆锥系数忘填 -1
现象:点列图轴上看到一圈明显的球差,RMS 半径几十微米,波前图是蜂窝状的高阶环。
原因:Standard 面默认 Conic=0,也就是球面。很多人记得曲率半径要算,却忘了抛物面这个核心参数,于是设计出来的模型实际上是一个球面镜牛顿镜。球面镜在 F/5 时球差很大,完全达不到衍射极限。
解决:在 LDE 里面,主镜那一行的 Conic 列填 -1。填完以后重新看 Spot Diagram,轴上点列图会立刻缩小到衍射斑附近。如果以后要跑优化,记得把这个值设成变量加边界约束,允许漂移范围是 -1.00 左右,不要让它变成正数。
4.2 反射面没有设置 MIRROR 镀膜
现象:光线直接穿过了主镜和副镜,像面光斑很小但能量很低,3D Layout 里看不到反射折叠。
原因:Zemax 序列模式的 Standard 面默认是透射面,需要主动指定反射镀膜。没镀膜就等于一块透明玻璃,光根本不反射。
解决:在主镜和副镜两个 Standard 面的 Coat/Scatter 选项卡里,把 Coating 设置成 MIRROR,或者用自定义的反射镀膜。设置完以后立刻看 3D Layout,确认光线确实在镜面位置折返。个人建议养成习惯:任何反射面建立以后,第一件事就是做这个,否则后面所有分析都是白搭。
4.3 负厚度符号反了
现象:光线在主镜反射后继续往 -Z 方向跑,结果下一面半口径太小,边缘光线全部跳过,点列图只剩中心几根光线。
原因:反射以后传播方向反转,而 Zemax 的厚度是有符号的。有人把主镜到副镜的厚度填成 +900,软件会认为副镜仍然在反射光前方,但那是透射方向,光线根本到不了那个位置。
解决:反射面后面的厚度都填负值。这个规则不需要背,只要记住"光走哪个方向,下一面就在哪个方向":反射后往 +Z 变成往 -Z,所以厚度为负。给副镜和像面之间的厚度也按照这个逻辑填,符号千万不能为保持"看起来合理"而改成正值。
4.4 坐标断点旋转轴搞错
现象:副镜装了 Coordinate Break,但光线跑到镜筒外面,或者像面位置完全不对。
原因:坐标断点的旋转轴和旋转方向不对。牛顿镜副镜把光折转到镜筒侧面,常见的布局是绕 X 轴旋转 45°,让出射光线沿 -Y 方向。不少人用绕 Y 轴旋转,结果光走的是水平方向,和镜筒冲突。
解决:先明确你的像面打算放在哪个方向。侧面出射就用 Tilt X,顶部出射就用 Tilt Y。确认旋转方向的方法是随手加一个标记面,在 3D Layout 里旋转一下视角,看坐标点的走向。另外,坐标断点要放在副镜面的前一行,而不是副镜面的后面;放错了就会先偏转后反射,等效于把副镜摆歪。
4.5 序列模式高估了 MTF,却不知道遮挡
现象:仿真报告里 MTF 接近衍射极限,实际装出来却看到明显的衍射环和星芒。
原因:序列模式里,副镜挡住的光路只是被忽略,不在像面上产生遮挡衍射。入射光被副镜挡住的那部分能量在中焦面上会产生额外的衍射亮环,序列模式计算时会把它当成没有遮挡。
解决:在系统通用设置里,把入瞳设为环形孔径,遮挡比填和副镜一致的 20%;更严谨的做法是用非序列模式,把副镜建为一面矩形挡板,用它的实体遮挡光路。这样 MTF 在第一暗环的位置会有明显下降。仿真报告和实测差值如果很大,第一反应不是镜子质量差,而是你建模时没把遮挡放进评价。
5. 从仿真到能装的镜子:公差分析与工艺落地
5.1 公差表这样设:曲率半径、面形、间距和倾斜
建好模型、优化完像质,那只代表"理想镜片"的性能。真正能做出来、装起来仍然能看的镜子,取决于公差分析。打开 Zemax 的 Tolerance 功能,不要按默认的透射系统公差填,要按反射镜的实际情况来。
以下是我做 200mm F/5 牛顿镜时的常用公差表,初值可以根据自己加工水平放宽或收紧:
| 公差项目 | 初值 | 说明 |
|---|---|---|
| 主镜曲率半径 | ±0.5mm | 主要影响焦距,可通过调焦补偿一部分 |
| 主镜圆锥系数 | ±0.005 | 直接影响轴上球差,很难靠装调救 |
| 副镜倾斜角 | ±0.2° | 影响彗差,装配时最容易超 |
| 副镜偏心 | ±0.1mm | 让光轴平移,影响视场中心对准 |
| 主镜与副镜间距 | ±1mm | 造成离焦,调焦座可补偿 |
| 镜面不规则度 | λ/4 P-V | 波前低频误差,太松会毁掉 MTF |
| 像面倾角 | ±0.3° | 传感器歪了,轴外像质明显下降 |
在 Tolerancing 设置里,评价标准选 RMS Wavefront,采样点用中心视场加 0.3° 离轴视场各一半权重。最重要的是设定补偿器:实际装配里调焦座可以改变后截距,所以把像面厚度设为 Compensator,这样公差分析会自动反映"装配时我会先调焦"的现实情况。
5.2 用公差分析结果写镜筒加工要求
公差分析跑出来的不是一个数,而是一张分布表。我一般看两个指标:90% 的蒙特卡洛样本波前 RMS 落在多少以内,以及最坏情况由哪个公差贡献。90% 如果好于 λ/4,说明这套公差能保证分辨力;最坏情况如果来自副镜倾斜,就得在镜筒设计里增加微调机构。
用这个结果去给 CNC 和镜座供应商提要求,比直接写"精度要高"有用得多。例如曲率半径 ±0.5mm,在加工时很容易做到;副镜倾斜 ±0.2° 对粘接来说就很难,所以设计上要让副镜座保留三个调节螺丝,而不是用死胶固定。镜面不规则度 λ/4 P-V 则要求你至少要跟磨镜供应商确认干涉仪检测报告,不要省这一步。
5.3 公差超了怎么办:把敏感项转成 Zemax 优化变量
公差表初值跑完以后,通常总有一项严重超差。最常见的就是副镜倾斜。当你发现 90% 波前都不合格时,不要急着把公差收紧,因为装配实现不了。更好的办法是把这个敏感项转换成优化变量,重新设计光路。
具体操做:把 Coordinate Break 里 Tilt X 的初始值保留 45°,但放松公差,例如 ±0.3°;然后把它设为变量,并约束副镜中心位置不动,跑一轮优化。这样等于在设计阶段就把装调误差范围考虑进去,让系统对副镜倾斜不那么敏感。另一个技巧是把主镜圆锥系数公差设为变量的一部分:如果圆锥系数加工出来是 -0.98,而系统仍能通过优化副镜后截距回到 λ/4,那么这块镜子的合格门槛就低了。
这个过程没办法完全用公式替代,但有一个经验:牛顿镜的像差以彗差为主,而彗差主要是偏心光路造成的。减少副镜倾斜公差敏感度可以从增大后截距、拉长副镜到焦点距离入手。在 Zemax 里试三组后截距 80、100、120mm,观察同一倾斜误差下的 RMS 波前变化,选最平缓的那组分给机械设计。
6. 装调阶段的 Zemax:把星点像差反推镜面误差
6.1 离焦星点模拟,先把"歪光轴"长什么样看熟
实际装调时,我会先在 Zemax 里生成一组焦内、焦点、焦外的 FFT PSF 模拟图:把像面厚度分别偏移 -1、-0.5、0、+0.5、+1mm,存成对比图。如果副镜倾斜多了 0.3°,焦内星点伸长方向会翻转,焦点处又变回接近圆形的斑,这是判断"离焦"和"彗差"的标准区别。这个技巧不是装调完才用,而是在开装之前就装到工作目录里。
6.2 人为注入误差,反向练习误差识别
我习惯把光轴误差以公差形式注入 Zemax 模型,比如副镜绕 X 轴 +0.2°、绕 Y 轴 +0.1°,然后重复离焦模拟。从图像上看,彗差拖尾会在绕 X 轴和绕 Y 轴两个方向上呈现不同角度;这样当你拿起真实望远镜看到星点有拖尾时,就能立刻判断是哪根螺丝该拧,而不是来回调三个螺丝碰运气。我以前直接用主镜压圈做微调,结果越调越糟,后来先在仿真里认了一遍误差方向,再动手就快很多。这个流程花不了半小时,但能省掉整个周末的夜站时间。希望帮到你。
本文还有配套的精品资源,点击获取