FRED案例展示:对3片反射镜5倍无焦望远镜建模仿真
本文展示了如何根据Warren J. Smith在McGraw-Hill出版的《现代镜头设计:资源手册》中提供的数据来建模一个三反射镜5倍率望远镜。
在该模型的设置中使用了一个脚本来追迹系统光轴上的“中心光线”,并打印出光线照射在表面时的垂直位置。这种设置使用户能够快速确定系统中第二个和第三个反射镜所需的垂直位置和孔径大小。模型设置完成后,使用分析表面在像平面上计算位置点图来检查系统的性能。
此处,厚度参数定义为沿着图中实线所示的共同光轴,相邻镜面顶点之间的距离。具体如下图所示。
“sa”参数定义了每个反射镜从抛物线原点到反射镜最外侧部分的垂直距离。如下图所示。
①添加第一个反射镜
这些离轴反射镜并不是FRED中的“标准反射镜对象”,因此需要用自定义元件和自定义表面来定义。
为了定义一个抛物面形状,表面类型需要设置为“Conicoid”,并根据数据指定曲率半径和圆锥常数。
反射镜表面的大小和形状在“Aperture ”标签页定义。数据定义了32mm的垂直偏心,因此Y中心值为32mm。
(此时不妨停下来阅读一篇相关文章:如何定义离轴抛物面。)
“sa”值被规定为44mm,意味着在y和x方向上的半孔径值为12。定义孔径的Z方向的值被选择得足够大,以避免在水平方向上裁剪反射镜。
第一个反射镜的位置被定义为距光源(假设已创建)水平方向43.84毫米,并且在y值为32毫米下方居中。
新表面的默认涂层和光线追迹控制分别为“Absorb”和“Halt All”。为了表示反射镜,显然需要在表面的“Coating/Raytrace Control”控制标签页将这些改为“Reflect”和“Reflect Specular”。
②添加第二个和第三个反射镜
定义第二面反射镜和第三面反射镜时,也使用带有“Conicoid”表面的另一个自定义元件。每个反射镜的位置首先通过将其放入前一个反射镜的坐标系中定义,然后根据数据中的厚度参数在Z方向应用偏移来轻易确定。
与第一个反射镜不同,后续反射镜的孔径位置和大小没有明确定义。
确定正确孔径的最简单方法是以一个近似大小开始,然后沿着系统的光轴追迹一条光线到第二个反射镜的表面。光线在接触表面时的垂直位置定义了孔径的Y中心值,因为“sa”值已经在数据中给出,所以孔径大小也可以设定。
以下脚本通过执行高级光线追迹并在第26行定义的表面停止光线,并输出垂直位置到输出窗口。请注意,这里使用了一个称为“Single Ray Source”的光源,它只追踪一条光线。
使用此脚本我们发现当光线照射在第二个反射镜表面时的y坐标为y = 11mm。由于知道该反射镜的“sa”为17mm,孔径被设置为6mm:
第三个反射镜的形状和位置可以按照上述过程定义,只需将脚本中的第26行更改为adv.stopSurfID = mirror_3。
在像平面上添加一个平面元件元素和一个分析表面后,系统模型就完成了。
执行光线追迹的光源定义为随机分布在10mm半孔径的x和y方向上的1000条光线网格,波长范围均匀分布于420nm至650nm之间。
在像平面上绘制的位置点图显示了一个±2μm的分布,从而验证了这是一个5倍望远镜系统的证明。