详解OpticStudio中离轴抛物镜的建模
摘要
离轴抛物镜可以理解为从较大的抛物镜中截取的一小部分,整块抛物面镜也称作“基镜”。对这类系统建模时,特别是第一次,看起来会很麻烦。然而只要一些指导和练习,我们就可以掌握离轴抛物镜的操作,并将它设置为我们想要的状态。
这篇文章通过一个实际工作中的设计任务来介绍离轴抛物镜的建模,该任务为结合现有光学系统使用离轴抛物镜。
介绍
当设计系统中使用离轴抛物镜时,我们需要时刻注意基底抛物镜的位置并将其显示在系统中。只有在设计的最后一步再把偏心的(离轴的)孔径从基底抛物镜中剪裁出来。在本例中,我们要设计一个离轴抛物镜的位置和旋向,来得到特定的光斑输出,并确定离轴抛物镜和系统中其他元件的相对位置。这是一个非常实际的设计问题,在这个过程中我们将使用OpticStudio中许多实用的小技巧。附件文件为本系统的初始结构。
抛物面镜
抛物镜可以对有限远共轭的轴上视场(对于准直入射的平行光)完美成像。下图为F数0.3的抛物面镜将准直平行光汇聚到一个完美的焦点:
由上图也可以看出,当许多光学系统光源为点光源时,使用抛物面镜作为准直器是一个理想的选择。然而如果直接使用这样一个准直器,那么孔径中的部分光将会被遮挡。另一点需要注意的是,大多数系统并不需要F数这么小的准直器,相反只需一小块反射镜即可满足使用需求。
为了解决遮挡并尽可能的减小反射镜的尺寸,我们需要使用离轴抛物镜来代替一整块抛物镜。离轴抛物镜实际上是基底抛物镜上的一小部分。下图展示了离轴抛物镜和基底抛物镜的关系:
在之后操作离轴抛物镜时,我们需要时刻注意基底抛物镜的位置。
设计离轴抛物镜
假设您已经在之前的光学系统中得到了一个F数为8的焦点,并且您希望将该焦点准直为直径约80mm的平行光。在这个例子中我们需要一个焦距为640mm的准直器(直径乘以F数),我们可以使用SORL公司生产的型号为25-055-04的离轴抛物镜。该离轴抛物镜的参数为焦距25inches(635mm),离轴距离为5.5inches(139.7mm),并且它的直径为4inches(101.6mm)足够我们用来准直80mm的平行光。
需要注意的是SORL提供的参数“离轴距离”表示的是原抛物面中心到离轴抛物镜内部孔径边缘的距离,但OpticStudio中我们定义离轴抛物面内部孔径的中心到整个抛物面的中心为离轴距离。因此您只需要将SORL提供的离轴距离加上离轴抛物面的半孔径即可得到OpticStudio中使用的离轴距离。所以在本例中,OpticStudio定义的离轴距离为139.7+(101.6/2)=190.5mm。
我们将在OpticStudio中使用一个曲率半径为1270mm(由于材料为Mirror,因此曲率半径为焦距的两倍)的标准面作为基底抛物镜,并且由于这是一个完美的抛物面,因此标准面的圆锥系数(conic)为-1(圆锥系数的数学定义请参考帮助系统中的Standard面型)。
放置离轴抛物面
假设聚焦的光束以一定空间角度进入光学平台上的准直系统,并且你需要计算这个角度并将其准直为与光学平台平行的平行光束。这是我们实际工作中经常会遇到的情况,并且只要按照如下流程操作您可以轻松将这一系统在OpticStudio中进行建模。
附件提供的示例系统(OAP_starter.ZMX)是本例中使用的初始结构。其中表面1-9表示之前的光学系统出射的F数为8的聚焦光束。在本例中,我们并不关心表面1-9所表示的之前的系统,我们只需知道之前的光学系统汇聚到一个完美焦点并且光束传播方向与光学平台存在一定角度。在这里我们假设光学平台平行于X-Z平面。系统如下图所示。
首先,我们在表面11处添加一个抛物面反射镜,并且光束焦点位于抛物镜的焦点上(焦点与表面顶点距离为635mm),需要输入的参数如下图所示。
当对抛物镜做出改变时应及时查看点列图结果,当抛物镜设置错误时点列图将得到一个较为直观的错误结果。提醒:我们使用这个抛物镜产生准直光线,因此我们需要在查看点列图前做一些小小的改动。打开系统选项,在系统孔径中勾选无焦像空间(Afocal image space)。这将设置像面的参考面为平面,否则在计算光程差时会因为错误参考而产生错误。
此时检查点列图,分析结果显示抛物镜准直结果完美,像差为零。接下来我们要将抛物面设置偏轴。当我们使用一束平行光入射抛物面时,只需设置输入光在抛物面之前偏心,并在抛物面之后使用主光线求解来旋转光轴即可完成光线完美汇聚。这里的操作逻辑是,先设置平行光偏心(平移抛物面),再设置光轴旋转与抛物镜焦点重合(使光轴与出射光束方向一致)。
不幸的是,由于我们的系统以汇聚焦点为起始点,因此我们不得不反过来进行设置。我们可以按照如下流程进行设置:在抛物面前后分别插入坐标断点面,在抛物面前设置沿X轴倾斜(使抛物面的光轴与入射光束的光轴一致),然后在抛物面后设置偏心(将光轴移动到与目标出射光线光轴)。由于我们并不知道光轴应该倾斜多少,因此我们首先设置初始倾斜量为5°,之后我们会通过优化得到准确的倾斜角度,如下图所示:
首先我们观察到,第13个面上的主光线求解没有起到任何作用。我们期待光轴入射到倾斜的抛物镜之后发生偏移但是并没有效果。这是一个非常微小的线索,它提示我们抛物镜设置有误,但如果我们打开点列图,就会发现实际上错误结果变得非常明显。
这里的问题在于,我们需要在距离焦点635mm处此位置之前就旋转光轴。也就是说首先光轴进行倾斜,然后发散的光束传播635mm的距离到达抛物镜。如此一来抛物镜的中心就不再与光束光斑中心重合了。这样抛物面后设置的主光线求解的偏心就会产生影响。我们需要将系统进行如下修改:
点列图分析结果又显示正常。然而我们设置的沿X轴倾斜5度并不精确,因为抛物面后的偏心并不是190.5mm。我们可以猜测X轴倾斜几度会得到准确的190.5mm偏心。但这是在OpticStudio中建模,我们不需要去猜测。我们可以使用优化功能来帮助我们求解。打开评价函数编辑器,添加一行操作数PMVA及之后的参数(备注行只是为了说明,您无需输入)。该操作数的作用是返回透镜编辑器中 特定表面的特定参数值,这里我们需要返回第13表面的Y轴偏心(参数2),并设置目标值为190.5权重为1。设置表面11的X轴倾斜为变量,如下图所示:
然后点击优化按钮开始优化。经过短暂的优化器中目标值应该降到0.0000000。现在抛物镜的倾斜和偏心就设置完成了。现在我们需要在抛物面后添加一定厚度,这样我们就能看到从离轴抛物面出射的平行光束了:
接下来我们还需设置:输出光束平行于光学平台(X-Z平面)。为了实现这一需求我们需要将抛物面沿Z轴旋转(沿Z轴倾斜)直到输出平行光束与光学平台平行。
旋转抛物镜
试想我们的离轴抛物镜已经从基底抛物镜上剪裁下来。假设让这片反射镜在保持焦点位置与输入光焦点重合的情况下绕Z轴旋转,则基底抛物面则会看起来像是绕着剪裁下来的离轴抛物旋转。
如上图所示gif动画展示当抛物面旋转时,基底抛物面、剪裁下来离轴抛物面、焦点以及输出平行光之间的相互位置关系。
在镜头编辑器中,选择第11、12、13表面,点击透镜编辑器上方工具栏中的“旋转/偏心元件”按钮。你可以保留所有选项为默认参数,但这里为了避免造成混淆,我们将插入的坐标断点面在透镜编辑器中的颜色改为其他颜色:
我们想要旋转离轴抛物镜,直到输出的平行光与光学平台平行(X-Z面)。这意味着我们需要使输出光束在Y轴上没有方向分量。为了实现这一需求,我们需要在评价函数编辑器中新添加一行操作数RAGB,该操作数会返回光线到达在指定表面时Y方向的方向余弦。在本例中,我们想要第17表面输出的光束的方向余弦优化为零。在优化函数编辑器中我们还需要添加几行约束操作数,我们需要将第11表面沿Z轴的倾斜量约束在±180°之内,超过这个范围系统位置将于周期内的位置重复。此处使用操作数PMVA提取旋转角度;使用操作数ABSO取出旋转角度的绝对值;使用操作数OPLT使目标操作数返回值小于一定数值,这里我们设置ABSO返回的角度绝对值小于180°。操作数设置如下图所示:
现在点击优化。同上次优化一样,评价函数值会在很快的时间里下降为0.000000。需要注意的是,当前结构在所约束的角度范围内有两个符合标准的结果。这两个结果会使输出平行光沿不同X方向平行于光学平台出射。在本例中出于演示目的,我们并不需要从两种中确定一个结果,因此您可能会得到与下图所示结构稍有不同的结果,并且它们都会使抛物镜输出的光线沿水平方向出射。
到目前为止,我们不仅得到了正确设置倾斜和偏心的抛物镜,我们还得到了平行于光学平台输出的光束。为了只显示反射光线的抛物镜部分,我们可以打开第13表面的表面属性,在孔径选项卡中设置一个100mm直径的偏心圆形孔径,如下图所示:
最终的布局图如下图所示:
为了更好的演示,这里我们使用非序列元件表面,在原系统中添加了一块平行于X-Z平面的光学面包板。这样通过动画我们可以清晰的看到系统中各部件的相对位置以及输出光线的方向。最后,为了确保光束在每个元件上都是准直的,我们再检查一次点列图如下图所示。确认无误后,我们接下来将计算离轴抛物镜与之前系统的相对位置。
放置离轴抛物镜
在OpticStudio中,离轴抛物镜实际上就是在整个抛物面上设置一个偏心的子孔径。因此OpticStudio计算离轴抛物面的中心实际上就是整个抛物面的中心,这和实际加工出来的离轴抛物镜元件的机械中心差别很大。
观察镜头数据编辑器,看起来从之前系统输出光斑的中心(表面9)到离轴反射镜(表面13)的距离是1435.00mm,但由于前文所述的原因这个距离并不是光束到离轴抛物镜上光斑中心的距离。然而,我们可以在优化函数编辑器中使用操作数来精确的计算这段距离。
我们需要首先读取之前系统的光斑中心和离轴抛物镜光斑中心的空间坐标,然后通过空间两点的距离公式计算两点距离。因此我们需要使用的操作数有RAGX,RAGY,RAGZ,他们分别测量光线在对应表面上的全局坐标(x,y,z),在本例中需要测量视场坐标Hx,Hy为(0,0)光瞳坐标Px,Py为(0,0)的主光线在表面9(之前系统的光焦点)和表面13(离轴抛物镜)上的全局坐标。然后通过操作数DIFF计算出两坐标点在三个轴上坐标差值。使用操作数QSUM完成计算三个操作数的平方和并计算平方根。操作数QSUM最终返回的值即为空间两点的间距,也就是焦点到离轴抛物镜光斑中心的距离。操作数设置如下图所示:
通过操作数计算后我们可以看到之前系统的光斑输出中心到离轴抛物镜光斑中心的实际距离为1449.288mm。回想我们从透镜编辑器中读取的厚度1435.00mm。这个看似很小的距离误差实际上会给系统引入15个波长以上的波前差。
在实际生产及安装离轴抛物镜时,我们应当使用中心光线在离轴抛物镜上的全局坐标计算安装距离,而不是用基底抛物面中心的全局坐标。
总结
在本例中我们设计了一款离轴抛物面光束准直器。另外,我们使用优化函数来确定离轴抛物面的位置和方向。这也是我们在实际使用中经常会遇到的问题。我们还使用操作数精确计算了离轴抛物镜与系统中其他光学元件的相对位置。