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}, k1,2,\cdots,N \right\}S{(xi(k)​,yi(k)​)​(xp(k)​,yp(k)​)∈Pupil,k1,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 lensCementedAchromat()lens.draw()plt.show()fromoptiland.analysisimportThroughFocusSpotDiagram spotThroughFocusSpotDiagram(lens)spot.view()plt.show()ThroughFocusSpotDiagram【ThroughFocusSpotDiagram】是optiland提供的离焦点列图类在上面的示例中只输入了一个optic类型的参数这也是唯一必须输入的参数其他参数如下【delta_focus】相邻两个分析平面之间的步长离焦增量默认0.1mm决定了扫描的精细度。如果步长过大可能会错过 RMS 半径的最小值点最佳焦点如果步长过小计算量会显著增加。【num_steps】为总平面数默认 5是在名义焦点Nominal Focus的前后各分析的平面数量。