文章目录
- 光扇图的基本概念
- 测试
- RayFan
光扇图的基本概念
Ray Fan即光扇图,是光学设计中用于分析一维截面上几何像差的核心工具。与点列图展示二维平面上的光斑分布不同,Ray Fan 将三维的光线追迹结果降维,通过二维曲线直观地展示横向像差(Transverse Ray Aberration)随入瞳坐标的变化关系。
设入瞳归一化坐标为H HH,范围是[ − 1 , 1 ] [-1,1][−1,1],光线在像面上的实际交点高度为y ′ y'y′,参考点的高度为y 0 ′ y'_0y0′,则光扇图的纵坐标定义为
ϵ y ( H ) = y ′ ( H ) − y 0 ′ \epsilon_y(H)=y'(H)-y'_0ϵy(H)=y′(H)−y0′
由于相差具有方向性,光扇图通常分为两组曲线
- 切向/子午光扇图,其采样方向为入瞳的Y YY轴方向(子午面内),反映子午面内的光线聚焦情况。主要受球差、彗差、像散和场曲影响。
- 弧矢光扇图,采样方向:入瞳的X XX轴方向(垂直于子午面),反映弧矢面内的光线聚焦情况。主要受像散和场曲影响,通常不受彗差影响(因为彗差在弧矢面上是对称的)。
测试
下面以最简单的消色差胶合透镜为例,其结构如下
图中共针对三个物点进行成像,不同颜色的光线代表不同的波长。这三个点的RayFan图如下
图中可见,位于光轴上的点比较理想,随着光线逐渐偏离光轴,光扇图的倾斜度越来越大,表示离焦增强。绘图代码如下
importmatplotlib.pyplotaspltfromoptiland.samplesimportCementedAchromat lens=CementedAchromat()lens.draw()plt.show()fromoptiland.analysisimportRayFan rf=RayFan(lens)rf.view()plt.show()光扇图并不是直线,而是存在一定的弯曲,这种过原点的三次曲线一般表示球差。下面创建一个更加质朴的单透镜,可以看到明显的球差
绘图代码如下
importnumpyasnpfromoptilandimportoptic lens=optic.Optic()lens.surfaces.add(index=0,thickness=np.inf)lens.surfaces.add(index=1,thickness=7,radius=20.0,is_stop=True,material="N-SF11")lens.surfaces.add(index=2,thickness=23.0)lens.surfaces.add(index=3)lens.set_aperture(aperture_type="EPD",value=20)lens.fields.set_type(field_type="angle")lens.fields.add(y=0)lens.wavelengths.add(value=0.55,is_primary=True)lens.draw(num_rays=10)plt.show()rf=RayFan(lens)rf.view()plt.show()RayFan
【RayFan】是optiland中的光扇图类,在上面的示例中,只输入了一个optic类型的参数,这也是唯一必须输入的参数,其他参数如下
- 【fields】指定需要计算点列图的视场,默认为’all’
- 【wavelengths】指定参与光线追迹的波长,默认为’all’
- 【num_points】入瞳直径方向上的采样点数,默认256,决定了曲线的平滑度。256 个点足以精确描绘高阶像差(如五级球差)引起的微小波动。如果曲线出现锯齿状,可适当增加此值。