optiland绘制离焦点列图

optiland绘制离焦点列图

文章目录

    • 离焦点列图的基本概念
    • 测试
    • ThroughFocusSpotDiagram

离焦点列图的基本概念

离焦点列图(Through-Focus Spot Diagram),是一种通过沿光轴移动像面,观察点列图形态和尺寸变化规律的分析方法。本质上是将三维的光束汇聚过程进行切片展示,用于寻找系统的最佳焦面(Best Focus)并评估焦深(Depth of Focus)。

所谓点列图,是光学系统对物点发出光束在像面上截痕的几何投影,就数学意义来说,是入瞳坐标到像面坐标的非线性映射。设入瞳平面坐标为( x p , y p ) (x_p, y_p)(xp,yp),经光学系统的光线追迹后,光线在像面上的交点坐标为( x i , y i ) (x_i, y_i)(xi,yi),点列图即为该映射函数在离散入瞳采样点上的集合

S = { ( x i ( k ) , y i ( k ) ) ∣ ( x p ( k ) , y p ( k ) ) ∈ Pupil , k = 1 , 2 , ⋯ , N } S=\left\{\left(x_i^{(k)},y_i^{(k)}\right)\bigg\vert \left(x_p^{(k)},y_p^{(k)}\right)\in \text{Pupil}, k=1,2,\cdots,N \right\}S={(xi(k),yi(k))(xp(k),yp(k))Pupil,k=1,2,,N}

其中N NN为追迹光线的总数。点列图的形态直接反映了映射函数的非线性畸变程度,即系统的几何像差。

测试

下面以最简单的消色差胶合透镜为例,其结构如下

图中共针对三个物点进行成像,不同颜色的光线代表不同的波长。这三个点的离焦点列图图如下

上图在焦点附近,沿着光轴选取了5个切片,Δ z = − 0.2 , − 0.1 , 0 , 0.1 , 0.2 \Delta z=-0.2, -0.1, 0, 0.1, 0.2Δz=0.2,0.1,0,0.1,0.2。上中下三行分别表示切片y yy轴不同位置,对应光学系统中选取的三个像点。绘图代码如下

importmatplotlib.pyplotaspltfromoptiland.samplesimportCementedAchromat lens=CementedAchromat()lens.draw()plt.show()fromoptiland.analysisimportThroughFocusSpotDiagram spot=ThroughFocusSpotDiagram(lens)spot.view()plt.show()

ThroughFocusSpotDiagram

【ThroughFocusSpotDiagram】是optiland提供的离焦点列图类,在上面的示例中,只输入了一个optic类型的参数,这也是唯一必须输入的参数,其他参数如下

  • 【delta_focus】相邻两个分析平面之间的步长(离焦增量),默认0.1mm,决定了扫描的精细度。如果步长过大,可能会错过 RMS 半径的最小值点(最佳焦点);如果步长过小,计算量会显著增加。
  • 【num_steps】为总平面数,默认 5,是在名义焦点(Nominal Focus)的前后各分析的平面数量。