如何为射线光学仿真创建复杂的透镜几何结构

Stuart Barnes 2018年 5月 7日

“射线光学模块”扩展了 COMSOL Multiphysics® 软件的建模功能,允许用户引入射线追踪仿真。有了该模块,在集成软件环境中对复杂光学系统的热性能、结构及其他方面进行高阶研究不再是一个难题。创建几何模型是仿真成功的第一步。本文以 Petzval 透镜为例,探讨了如何创建复杂的透镜几何结构。

定义复杂透镜系统的光学指标

一般复杂光学系统的常见示例之一是带平场透镜的 Petzval 透镜。下图展示了焦距为 100 mm,焦比约为 f/2.4 的多元透镜系统。

Petzval 透镜示意图。
包含平场透镜的 Petzval 透镜。

下表给出了这款摄影机镜头的光学指标(与参考文献 1 一致)。几何结构由两个双合透镜和一个平场透镜组成。射线总共折射穿过八个不同的表面。图片还显示了另外两个表面:孔径光阑和图像平面。

表面索引
单元数量
名称
曲率半径(mm)
厚度(mm)
通光孔半径(mm)
材料
0
不适用
物体
不适用
不适用
1
1
透镜 1
99.56266
13.00000
28.478
S-BK7
2
2
透镜 2
-86.84002
4.00000
26.276
S-BASF12
3
不适用
不适用
-1187.63858
40.00000
22.020
不适用
4
3
光阑
40.00000
16.631
不适用
5
4
透镜 3
57.47191
12.00000
20.543
S-SK2
6
5
透镜 4
-54.61865
3.00000
20.074
S-SF5
7
不适用
不适用
-614.68633
46.82210
16.492
不适用
8
6
透镜 5
-38.17110
2.00000
17.297
S-SF5
9
不适用
不适用
1.87179
18.940
不适用
10
不适用
图像
不适用
17.904
不适用

在使用 COMSOL Multiphysics 及其附加的“射线光学模块”进行射线光学仿真之前,我们首先需要创建模型的几何结构。在下面的章节中,我们将讨论一些可用的选项。

创建 Petzval 透镜的几何模型

在 COMSOL Multiphysics 中创建模型几何结构有很多种方法。一种方法是使用内置的几何体素组合,包括球体、圆柱体、多边形和线段。你可以利用布尔、分割、变换和转换运算将这些简单的几何实体组合成更特别的形状。

COMSOL Multiphysics® 各种透镜几何选项截图。for lens geometries.
截图显示布尔和分割运算。

各种几何体素(左图)以及布尔和分割运算(右图)。

你很快会发现,即便是创建最简单的光学几何结构(比如单透镜),也需要大量的运算。为了创建完整的几何模型,我们需要采用不同的数值多次重复相同的运算序列。举例来说,不同透镜的创建步骤是相同的,但是每个透镜的表面曲率半径各不相同。为了避免连续多次建立相同的几何序列,我们可以定义一些几何零件。这些零件是参数化序列,能够像几何体素一样调用。通过这种方式,我们每次可以使用零件实例 节点来重复创建透镜。在此节点中,相关的输入参数均取自光学指标。

下图示例展示了一个用户自定义的几何零件。此例中,此零件为透镜,它具有任意的前后曲率半径,外径、表面直径和通光孔径具有多个不同的定义。

COMSOL Multiphysics® GUI 截图显示用户定义几何零件示例。
用户自定义几何零件的示例。

“射线光学模块”提供了一组预定义零件,这些零件拥有光学仿真最常用的形状,包括上文提到的透镜。这些零件都可以直接在“零件库”中调用。下节将讨论“射线光学模块”的“零件库”。

使用“射线光学模块”的“零件库”

“射线光学模块”已经创建了各种二维和三维零件。一个更高级的案例是三维普通球面透镜(左下图)。此零件可用于创建各种形式的透镜,包括凹凸透镜表面的任意组合。实际上,我们可以灵活地利用它创建所有的 Petzval 透镜和双高斯透镜。下图中还展示了圆形平面环 零件。该零件可方便我们创建孔径光阑并定义图像平面。

COMSOL Multiphysics® 零件库截图。
射线光学模块零件库截图。

“射线光学模块”的“零件库”中的零件示例:三维普通球面透镜(左图)和圆形平面环(右图)。

“射线光学模块”提供的“零件库”中的零件经常包含一个或多个变量。这些变量是为了方便以各种不同的方式使用相同的基本零件。比如,为三维普通球面透镜 指定不同的通光孔径或通光孔径分数。其他零件允许指定中心厚度或边缘厚度,以生成各种变量。我们还可以指定有效焦距(和折射率)来替代曲率半径。

将光学指标参数加载到 COMSOL Multiphysics® 中

Petzval 透镜几何模型已经基本成型。接着,我们继续插入一个三维普通球面透镜 的实例,然后直接输入光学指标表格中的几何参数(也就是曲率半径、中心厚度和直径)。不过,我们可以通过调整光学指标的格式,使之作为一个整体(比如文本文件)被加载到当前模型的全局定义 节点中,从而简化上述过程。如此一来,以后只要需要调整光学指标,就可以在一处地方完成所有修改。Petzval 透镜的光学指标参数如下图所示。

Petzval 透镜的光学指标参数设置窗口截图。
Petzval 透镜模型的光学指标参数。

现在已经从“零件库”中加载了两个几何零件(三维普通球面透镜圆形平面环 零件),现在插入 Petzval 透镜(“透镜 1”)的第一个单元。上文定义的光学指标参数可用作零件实例 节点的输入参数。每个透镜参数都拥有一个唯一的名称(比如 Tc_1、R1_1、R2_1 等),所以这些值可以直接输入到表达式 字段中。我们也可以加载包含每个透镜单元的相关表达式定义的文本文件,从而简化此过程。

透镜几何模型的第一个单元的设置窗口截图。
Petzval 透镜几何模型的第一个单元(透镜 1)。

需要注意的是,除了允许定义表面通光孔径外,三维普通球面透镜零件还可用于指定每个表面的物理直径和整个透镜直径。这些功能使得我们可以构建出与计划制造的几何结构非常匹配的几何结构。举例来说,可以轻松创建包含透镜及其四周的镜筒上的力学与热效应的高保真模型。

接下来,如下图所示,插入三维普通球面透镜 的第二个实例,它的作用是定义“透镜 2”。当然,这个单元必须被置于几何模型内合适的绝对位置上。标准的光学指标通常指定了当前透镜的入射面与前面透镜的出射面之间的距离。因此,三维普通球面透镜 零件的定义中包含可定位每个透镜表面的入射和出射顶点的工作平面。之后,根据位于前面透镜的出射顶点上的工作平面来放置每个透镜零件实例。如下所示,“T_1”是透镜 1 的出射面和透镜 2 的入射面之间的距离(在此例中,间隔正好是 0。由此我们成功创建了双合透镜,但是同样的原理适用于任何给定的间隔)。

Petzval 透镜几何的第二个单元的截图。
Petzval 透镜模型几何结构的第二个单元(透镜 2)。

多物理场耦合:Petzval 透镜的射线追踪

其他表面可与透镜单元一起添加到定义了孔径光阑和图像平面的 Petzval 透镜几何模型中。为了方便起见,我们可以将整个几何模型另存为几何序列,这样就可以将它应用到其他 COMSOL Multiphysics 仿真中。完整模型(忽略了杂光孔径)如下所示。我们可以看到,“射线光学模块”具有对完全划分网格的几何结构进行射线追踪的特殊功能。相同的网格还可用于求解其他物理量,比如透镜几何结构中的温度和结构位移,借此简化双向耦合多物理场模型的创建过程。

完整 Petzval 透镜几何模型的表面网格单元图片。
完整的 Petzval 透镜几何模型,图片显示了表面网格单元。

其他特征可以添加到零件的定义中。比如,工作平面还被定义在三维普通球面透镜 零件中,可指示透镜前后边的位置。这些工作平面可用于精确定位阻挡杂光的光阑,或者定位机械装配特征。此外,我们通过定义选择来分离各个透镜零件的通光孔径、障碍物和边。这些选择可用于快速定义几何光学仿真需要的各种物理特征,如下图所示。

图片突出显示用于定义 Petzval 透镜通光孔径的选择。
图片突出显示透镜中的障碍物。

Petzval 透镜中用于定义通光孔径(左图)和障碍物(右图)的选择。

在这个射线追踪案例中,我们基于栅格的射线轨迹生成了单个波长(550 nm)和视场角(轴上)上的结果。在后处理过程中,为了增加视觉效果,下图所示的结果利用了定制颜色表达式。左图(射线追踪)的颜色表达式基于图像平面上的射线位置。右图(点图)则基于入射光瞳的射线位置。利用不同颜色表达式有利于直观显示入射光瞳的光线对最终图像质量的相对贡献程度。

Petzval 透镜模型的射线追踪。
COMSOL® 软件中的点图。

Petzval 透镜的射线追踪(左图)和点图(右图)。

后续操作

上文的案例展示了如何在进行射线追踪仿真之前创建光学几何结构。点击下方按钮尝试操作此模型。进入“案例下载”页面后,如果您拥有 COMSOL Access 账号和有效的软件许可证,你可以下载 MPH 文件。

学习更多关于透镜建模的知识

参考文献

  1. M.J. Kidger, Fundamental Optical Design, SPIE Press, 2001.

博客分类

正在加载评论...

博客分类


博客标签