本系列共3篇文章,旨在介绍如何使用OpticStudio序列模式界面进行操作。本文以单透镜为例,介绍了设计透镜的基本过程,包括构建系统(第1部分)、分析其性能(第2部分),以及根据所需的指标参数和设计约束对其进行优化(第3部分)。
简介
单透镜为OpticStudio中建模最简单的成像系统。尽管如此,这个简单的成像系统的设计可以帮助您了解OpticStudio的界面,了解基本的设计概念和策略,并演示如何使用一些基本的分析功能来优化和确定光学性能。
这是由三篇文章组成的系列文章的第1部分。首先介绍OpticStudio用户界面的序列模式 (Sequential mode) ,然后重点介绍如何使用系统选项 (System Explorer) 和镜头数据编辑器 (Lens Data Editor) 正确设置单透镜。它还解释了如何使用求解 (Solves) 来强制设计约束。
在第2部分中,我们将讨论一些可用于评估系统性能的分析。在第3部分中,我们将讨论如何优化单透镜,使其在设计约束下获得更好的性能。(持续关注即将更新后续部分内容)
镜头分类参数和设计约束
在这个练习中,我们将设计和优化一个玻璃材料为N-BK7, F数为4的单透镜。最终设计方案应满足以下规格和约束条件:
规格 | 约束 |
焦距 | 100 mm |
半视场角 (SFOV) | 5 ° |
波长 | 632.8 nm (HeNe) |
单透镜中心厚度 | 在 2 mm -- 12 mm 之间 |
单透镜边缘厚度 | 大于 2 mm |
优化标准 | 全视场 RMS 均方根半径平均值 |
物体位置 | 无穷远 |
使用给定OpticStudio的用户界面和可用的工具,可以很容易地建模和优化单透镜!
镜头数据编辑器
在计算机辅助序列透镜设计中,光线按其排列的顺序从一个表面追迹到下一个表面。为此,OpticStudio使用一种名为镜头数据编辑器 (LDE) 的电子表格。
打开OpticStudio后,OpticStudio主窗口(工作区)中将出现一个空白的镜头数据编辑器。除了工作区中的镜头数据编辑器,您还将看到一个标题栏,其中指定打开的窗口的类型;菜单(Ribbon)栏,其中提供对OpticStudio所有特性的访问;以及窗口顶部的快速访问工具栏 (Quick Access Toolbar) 。在左边,您将看到系统选项 (System Explorer) ,其中包含有关当前设计的特定系统信息。在序列模式下,镜头数据编辑器是主要的电子表格,其中输入了大部分镜头数据。部分主要输入项包括:
列名称 | 描述 |
表面类型 (Surface Type) | 表面类型(标准面 (Standard) 、偶次非球面 (Even Aslphere) 、衍射光栅 (Diffraction Grating) 等) |
标注 (Comment) | 用于输入特定表面注释的可选区域 |
曲率半径 (Radius) | 镜头单位定义的表面曲率半径(曲率的倒数) |
厚度 (Thickness) | 镜头单位定义的厚度,区分当前和其后表面顶点 |
材料 (Material) | 材料类型(玻璃、空气等),区分当前面与其后的面 |
净口径 (clear Semi-Diameter) | 镜头单位定义的表面孔径的半尺寸 |
镜头数据编辑器中的每一行表示一个表面。在OpticStudio序列模式中,每个光学系统从物面 (OBJ) 开始,到像面 (IMA) 结束。除了物面和像面外,剩余表面中的一个表面必须定义为光阑 (STOP) 。
通过在高亮单元格中键入所需的值,可以将数据输入到镜头数据编辑器中。光标键或鼠标可以将高亮栏移动到所需的任何一栏。
定义系统设置
大多数情况下,系统孔径是开始新设计时定义的第一个参数。系统孔径不仅决定了OpticStudio将通过光学系统光线追迹的光束的大小,还决定了物面上每个视场点发出光线的初始方向余弦。系统孔径可由多种类型定义,包括入瞳直径 (EPD) 、像方空间F/#、物方空间NA、光阑尺寸浮动 (Float By Stop Size) 等。每种类型都在OpticStudio帮助文件对应部分有更详细的定义:“设置选项卡 (The Setup Tab) >系统组 (System Group) >系统选项 (System Explorer) >系统孔径 (Aperture) ”。
入瞳直径可能是最常用的系统孔径类型,也是当前示例中最方便的定义。在OpticStudio中,入瞳直径被定义为从物空间看到的光瞳直径,以镜头单位为单位。
我们可以很容易地确定单透镜所需的入瞳直径。如前所述,单透镜的F/#必须等于4,有效焦距为100mm。由于F/#为无限共轭的近轴有效焦距与近轴入瞳直径之比,因此入瞳直径为25mm:
这个值是在哪里输入到OpticStudio的呢?系统孔径以及其它系统特定设置都由系统选项 (System Explorer) 设置。通常,系统资源管理器已经打开,但如果不是,您可以通过打开设置 (Setup) > 系统选项 (System Explorer) 访问它:
一旦打开系统选项,我们就可以为当前的设计输入合适的系统孔径类型和值。在系统选项的系统孔径 (Aperture) 选项卡下,选择入瞳直径 (Entrance Pupil Diameter) 作为孔径类型 (Aperture Type) ,输入孔径值 (Aperture Value) : 25.0:
孔径值 (The Aperture Value) 是用镜头单位定义的,在OpticStudio的大多数电子表格编辑器中,镜头单位定义了尺寸的度量单位。这些尺寸包括诸如曲率半径、厚度、入瞳直径和OpticStudio中的大多数其它参数。在开始设计之前定义系统单位是非常重要的。始终检查以验证系统镜头单位是否为您所期望的。
OpticStudio的镜头单位有四种选择:毫米、厘米、英寸或米。就本设计而言,将使用毫米。在系统选项 (System Explorer) >单位 (Units) ,选择镜头单位 (Lens Units) :毫米。
目前,其它系统设置可以保留为默认选项。
在OpticStudio中定义视场
OpticStudio中的视场在系统选项中的视场数据 (Field Data) 对话框中定义。要访问视场数据对话框,请在系统选项中选择视场 (Fields) ,打开视场数据编辑器 (Open Field Data Editor) :
OpticStudio支持五种不同的模型来定义视场:
视场类型 | 说明 |
角度( Angle )(以度为单位) | 主光线相对于物方空间Z轴的角度。根据定义,主光线穿过入瞳中心,因此测量了入瞳中心的视场角。正的视场角是指该方向光线为正斜率,因此指向远处的物体坐标为负。 这个选项在无限共轭时最有用。 |
物高( Object Height ) | X和Y高度直接作用于物面 (OBJ) 的位置。高度单位为镜头单位。 此选项不能在无限共轭情况下使用。 |
近轴像高( Paraxial Image Height ) | 像面上的近轴像高位置。这个选项对于固定框架尺寸的设计非常有用,例如照相机系统中的胶卷。 这个选项只适用于可用近轴光学很好描述的系统。 |
实际像高( Real Image Height ) | 像面上的实际像高。这个选项对于固定框架尺寸的设计也很有用。但是,由于OpticStudio必须使用迭代方法来确定像平面上主光线的真实光线坐标,因此使用此选项的光线追迹稍微慢一些。 |
经纬角( Theodolite Angle ) | 极坐标角表示的水平角 θ 和 竖直角 φ ,以度为单位。这些角度通常用于测量和天文学。 |
为了实现单透镜设计的目的,我们将用角度定义视场。与使用单个视场表示水平视场角 (HFOV) 不同,三个视场将在5°范围内定义:(0,0)、(0,3.5)和(0,5)。
OpticStudio标准版的视场数据编辑器最多可以输入12个视场(专业版和旗舰版允许输入更多视场)。每个视场中都可以设置一个权重,这在优化中非常有用。但是,出于本设计的目的,所有视场权重都保留为1。在视场数据对话框的前三项中输入三个视场,如下所示。要插入其它视场,可以使用键盘上的<Insert>键,或者<右键单击>并选择插入视场 (Insert Field) 。
您还应该看到这些数据填充在系统选项 (System Explorer) 的视场 (Fields) 部分。您现在可以选择是否关闭视场数据编辑器 (Field Data Editor) 。
设置波长
将波长数据输入到OpticStudio中的操作与输入视场数据类似,只是波长数据输入到波长数据 (Wavelength Data) 对话框内。您可以通过选择系统选项 (System Explorer) 访问波长 (Wavelength) ,再双击设置 (Settings) 。
此单透镜设计是纯单色的(使用单一波长)。从最初的设计参数来看,使用的波长为0.6328 mm(HeNe激光器的波长)。
将这个波长输入波长数据 (Wavelength Data) 对话框,也可以在波长数据对话框底部的下拉菜单中选择一个预先编辑好的的波长选项来输入。默认情况下,F、d、C(可见光)是第一个选项。首先,从下拉菜单中选择HeNe (.6328) ,然后按下“选为当前 (Select Preset) ” 选择当前设计波长。OpticStudio将自动将这个波长放入第一项。
请注意,OpticStudio中的波长总是以微米为单位输入的,而不考虑系统的镜头单位!也支持对单个波长进行加权,但是在这个设计中,我们将保持所有的权重统一。按下窗口右上角的“X”键关闭波长数据对话框。
插入表面
一旦确定了系统设置,就可以将每个表面的特定信息输入镜头数据编辑器 (Lens Data Editor) 。重申一下,镜头数据编辑器中的每一行表示一个表面。因此,由玻璃分隔的两个表面组成一个单独的元件。因此,对于单透镜,总共需要4个表面:
-
物面 (OBJ) :光线发出的位置。
-
透镜的前表面:光线进入透镜的地方。对于这个设计,这里也是光阑 (STO) 。
-
透镜的后表面:光线从后表面射入空气。
-
像面 (IMA) :光线追迹停止的位置(始终是最后一个表面)。
默认情况下,镜头数据编辑器中只包含三个表面。可以通过按键盘上的<Insert> ,或通过在表面上<右键单击>并选择插入表面 (Insert surface) ,将表面添加到镜头数据编辑器中。使用此方法,将在高亮光标当前所在的行之前添加一个表面。要在当前表面之后添加另一个表面,按下键盘上的<Ctrl + Insert>或右键单击当前表面,然后选择插入后续面 (Insert after) 。
由于光阑位于单透镜的前表面,所以在表面1之后插入另一个表面(表示透镜的后表面)。
镜头数据编辑器中的标注 (Comment) 列对于跟踪每个表面表示的内容非常有用。要为一个表面输入注释,请高亮该单元格,并键入所需的文本。完成后,点击<Enter>或使用箭头键将光标移动到另一个单元格。在设计进程中编写注释是一个很好的习惯。对于单透镜,通过在镜头数据编辑器中的每个适当单元格中键入以下文本来标识每个表面。
输入镜头数据
单透镜由N-BK7玻璃制成。在OpticStudio中,材料用于区分透镜前后表面。想通过输入材料类型来区分两个表面,只需在透镜数据编辑器中的适当单元格中键入材料名称(本例中为N-BK7)。
OpticStudio自动将这种材料类型识别为内置玻璃库 (Glass Catalog) 中编译的众多玻璃之一。玻璃库包含了世界各地制造商提供的数百种玻璃的所有必要信息。OpticStudio将自动在其数据库中查找这种玻璃,以确定每种设计波长下材料的折射率。
一旦将玻璃类型输入到透镜数据编辑器中,单片透镜的透镜厚度就可以输入到表面1 (Surface 1) 的厚度栏中。由于厚度是沿光轴到下一个表面的距离,这就称为透镜元件的中心厚度。作为起始点,可以使用4 mm的厚度,因为它是孔径为25 mm透镜的合理中心厚度。在表面1的厚度列中键入值:4。注意,这个参数稍后将被设置为优化变量。
同样,第一个表面的曲率半径和透镜后表面与像面之间的厚度不需要预先确定,因为它们将被设置为优化变量。目前,我们将保持表面1的曲率半径为无穷大,并将表面2的厚度更改为100mm。将值100输入到表面2的厚度列中。
求解
当光学设计存在约束时,保持这些约束的方法有两种:
-
将影响这些约束的参数设置为变量,并将边界约束添加到评价函数编辑器 (Merit Function Editor) 中(稍后将介绍);
-
使用内置的求解功能来执行约束,消除不必要的变量。
后一种选择要好得多。虽然这两种方法都可以调整透镜参数以保持特定的约束,但边界约束会减慢评价函数的执行速度。
OpticStudio中有许多不同的求解类型,每个求解类型都有特定的用途。然而,该设计的性能指标只要求使用其中一个求解类型:设置系统F/#以保持所需的焦距。要打开求解对话框,可以单击所需单元格右侧的较小单元格。基于所选择的参数,可以使用不同的求解类型。
为了保证系统F/#,可以在表面2的曲率半径上放置F数求解 (F Number solve) 。F数求解调节最后一个光学表面的曲率以保证系统焦距。单击表面2的曲率半径单元格右侧的框,打开曲率求解 (Curvature solve dialog) 对话框。选择求解类型 (Solve Type) :F数 (F Number) 并输入F/#: 4。
输入求解设置后,要关闭求解对话框,请按键盘上的<Enter>。
一旦设置了F数求解,OpticStudio将自动调整半径,以保持所需的F/#。换句话说,只要改变透镜参数,系统就会自动重新计算一个解。曲率半径旁边的字母“F”表示F数求解设置已完成。
现在,单透镜已经建立完成,我们将在《如何设计单透镜 ,第二部分:分析》中解释如何可视化和评估系统性能,请期待后续更新。