如何创建一个简单的非序列系统

这篇文章介绍了OpticStudio非序列模式中的一些基本操作。主要包括:在非序列元件编辑器中添加和编辑物体;在布局图中观察系统以及利用光线追迹获取系统相关的数据;如何在非序列系统中创建光源、透镜和探测器;如何进行光线追迹以及分析追迹结果。此外,这篇文章还展示了创建照明应用中常用的导光管和抛物面反射镜的实例。

作者 Nam-Hyong Kim

下载

示例文件

简介

非序列模式下的光线追迹可以实现很多序列模式无法轻易实现的功能。这主要是因为非序列模式中,光线能够和任何位于其路径上的物体相互作用,并且可以分裂成很多可追迹的子光线。但是在进入到具体的非序列模式功能展示示例之前,我们首先需要梳理一下非序列模式和序列模式之间基本的区别。

非序列模式光线追迹

OpticStudio中有两种不同的光线追迹模式——序列模式和非序列模式。序列模式主要用于设计成像系统,而非序列系统主要用于设计照明系统或对成像系统进行杂散光分析。二者的关键区别是,非序列模式中,光线遵循物理效应追迹路径,来判断光线会与哪个物体或表面相交,而不像序列模式中严格规定光线与多个表面的相交顺序。非序列模式光线可能会与一个物体多次相交也可能完全不经过某个物体。一根光线也能够经过反射、折射和散射分裂出多根子光线,子光线也能够同时进行追迹。非序列模式中最重要的分析工具是探测器查看器 (Detector Viewer) 它能以不同的形式显示光线追迹的结果,如角度或空间的相干或非相干辐照度或辐射强度等。用户还可以将光线追迹的结果保存在ZRD格式文件中,进而使用光线数据库查看器 (Ray Database Viewer) 路径分析 (Path Analysis) 进一步分析光线路径。

设置系统的基本属性

现在我们要创建一个非序列系统,其中包括一个灯丝光源、一个抛物面反射镜、一个平凸透镜,它用来将光线耦合进一个矩形的导光管中,如下图所示:

NSC_Shaded_model_1

我们需要将光线追迹至光学系统中不同位置的探测器,以获得系统不同位置处的照度分布。这是我们最终得到的结果:

NSC_Shaded_model_2

OpticStudio启动时默认处于序列模式/混合模式中。如果想要切换到纯非序列模式,则在启动OpticStudio后,点击设置 (Setup) 选项卡中系统 (System) 区的非序列模式 (Non-sequential)

一旦切换到非序列模式,编辑器窗口的名称会从序列模式下的镜头数据编辑器 (Lens Data Editor) 变为非序列元件编辑器 (Non-Sequential Editor)。其中镜头数据编辑器只在序列模式或者混合模式中使用。

Editor

在本例中,首先设置系统波长。在系统选项 (System Explorer) 窗口中选择波长 (Wavelength),并设置波长为0.587um:

Wavelength

同样,在系统选项单位 (Unit) 菜单中设置单位如下所示(默认设置):

Units

除了可以将辐照度单位设置为瓦特/平方厘米以外,您还可以将光亮度单位设置为流明/平方厘米或者将能量单位设置为焦耳/平方厘米。在这个案例中我们选择默认的辐照度单位的设置。

创建反射镜

您可以使用键盘上的insert键在非序列元件编辑器中插入几行空物体。

Insert_object

在开始设计的第一部分中,我们要创建一个灯丝光源,并用一个抛物面的反射镜让光线准直地出射。然后我们需要在相隔一段距离的位置放置一个探测器以查看光源在此位置的辐照度分布。

如果想要把第一个物体设置成抛物面的反射镜,我们需要在编辑器中点击物体1的物体类型 (Object Type) 栏或者打开物体1的物体属性 (Object Properties)。将类型设置为标准面 (Standard Surface)

Standard surface

在编辑器中的对应位置输入以下参数,其中一些参数可能需要您向右滑动滑块,以找到写有对应名称的表格单元。

材料 (Materials) MIRROR
曲率半径 (Radius) 100
圆锥系数 (Conic) -1 (抛物线)
最大孔径 (Max Aper) 150
最小孔径 (Min Aper) 20

其他参数均采用默认值。

Parameters

您可以点击分析 (Analysis) 选项卡中的非序列3D视图 (NSC 3D Layout) 按钮打开非序列三维布局图,或者点击分析菜单中的非序列实体模型 (NSC Shaded Model) 按钮打开NSC实体模型图来查看反射镜的几何形状:

Reflector

创建光源

和上述对应操作类似,在编辑器中改变物体2(目前是空物体)的物体类型为灯丝光源 (Source Filament) 我们希望灯丝光源位于抛物面反射镜的焦点处,这样出射光才会是平行光。我们假设灯丝线圈在20mm的长度里环绕了10圈,并且环绕半径为5mm:

SourceFilament_10_turns

在编辑器中设置灯丝光源的参数如下:

Z位置 (Z Position) 50
陈列光线条数 (#Layout Rays)

20

分析光线条数 (#Analysis Rays) 5,000,000
长度 (Length) 20
曲率半径 (Radius) 5
圈数 (Turns)

10

 

Filament source parameters

双击三维布局图以更新显示结果:

Layout update

布局图中显示了20条从光源发射出的光线,这和陈列光线条数参数中所设置的数量相同。

旋转光源

目前灯丝光源的方向是沿着Z轴排布的,如果我们想让它沿着X轴排布,就需要把光源绕Y轴旋转90度。在光源参数的Y倾斜 (Tilt About Y) 参数栏中输入90:

Tilt about Y

在布局图中默认显示YZ截面的视图,可以看到灯丝方向现在是沿着X轴排布的。但从XZ截面视图可以发现灯丝在X轴正向偏移了一段距离。您可以通过在布局图参数设置栏中设置视图旋转参数来改变视角,也可以通过键盘的上下左右方向键和Page Up、Page Down按键来旋转视图:

Layout_Source_Rotation_Settings

Rotation     Rotation Z

产生偏离的原因是灯丝的旋转轴并不在其中心,而是在它的端点位置。如果想要把光源放在沿X轴的中心,则需要在光源的X位置 (X Position) 参数栏输入-10:

X position

更新布局图中的显示,现在我们可以看到灯丝以正确的方向位于预想的中心位置。

放置探测器

下面我们需要在离光源一定距离的地方放置一个探测器来分析光源在该位置的辐照度分布情况。

第三个物体设置为矩形探测器并输入以下参数:

Z位置 (Z Position) 800
X半宽 (X Half Width) 150
Y半宽 (Y Half Width) 150
X像元数 (#X Pixels) 150
Y像元数 (#Y Pixels) 150
颜色 (Color)

其他参数保持默认值。

YZ截面视图(默认)如下图所示:

Layout_With_Detector

从布局图中可以看到光线穿过了探测器,这是因为这里探测器的材料类型是空气(编辑器中为空白),它对光线来说是完全透明的。

追迹光线至探测器

如果要想查看探测器上的光强分布,可以点击分析选项卡中的探测器查看器 (Detector Viewer)

Detector viewer

您会看到,虽然在布局图中我们可以看到光线到达了探测器的位置,但此时探测器查看器显示的数据仍是空的,总功率也是0。这是因为在布局图中和探测器查看器中的光线追迹结果是相互独立的。如果想要看到探测器上的追迹结果,我们首先需要执行光线追迹,将光线追迹到探测器上。通过编辑器中的“分析光线条数”参数来设置光线追迹的数量,该参数的数值通常很大,在这个示例中为5百万根光线。需要注意的是,布局图中的光线不影响探测器查看器中的追迹结果,只有分析的光线才会产生影响。

如果想要把分析光线追迹到探测器上,点击分析选项卡中的光线追迹 (Ray Trace) 按钮,打开光线追迹控制 (Ray Trace Control) 对话框:

Ray_trace_control

在开始追迹前一定要点击清空探测器 (Clear Detector) 按钮来清空探测器之前保存的数据,以免之前的追迹结果影响这一次的追迹分析。点击清空探测器按钮,然后点击追迹 (Trace),光线追迹完成后再点击退出 (Exit)

探测器查看器会显示如下辐照度分布结果,其中我们可以看到灯丝光源的像:

Irradiance_Distribution

如果您在探测器查看器中得到了和上图不同的结果,打开探测器查看器的设置对话框,确认设置参数与下图中的完全相同:

Detector settings

您也可以在NSC实体模型图的设置中,把探测器选项设置为像素颜色由最后一次追迹结果决定 (Color Pixels By Last Analysis),得到如下追迹结果:

Settings    Shaded_Model

添加平凸透镜

目前,我们已经添加了一个光源和一个反射镜,现在我们需要在探测器右侧10mm的位置添加一个平凸透镜用来偏折光线。在编辑器中的矩形探测器行后插入一行物体,选择物体类型为标准透镜 (Standard Lens) 并输入如下参数:

参考物体 (Ref Object) 3
Z位置 (Z Position) 10
材料 (Material) N-BK7
半径1 (Radius) 300
净孔径1 (Clear 1) 150
边缘孔径 (Edge 1) 150
厚度 (Thickness) 70
净孔径2 (Clear 2) 150
边缘孔径2 (Edge 2) 150

 

更新三维布局图:

3D_Layout_Update_Plano_Convex_Lens

需要注意的是,我们是以物体3(矩形探测器)为参考面定义的透镜位置,因此在参考物体栏输入了数字3,然后在Z位置处输入数字10,而不是以全局坐标系为参考(即以物体0为参考)的参数大小810。在以探测器为参考面定义透镜位置时,无论探测器的位置在哪儿,透镜永远保持在探测器右侧(Z轴正向)10mm的位置处。这也是在非序列模式中定义物体间相对位置的常用技巧。

为了得到汇聚光束的光强分布,在透镜右侧(Z轴正向)650mm处再添加一个探测器,并输入参数如下:

参考物体 (Ref Object) 4
Z位置 (Z Position) 650
X半宽 (X Half Width) 100
Y半宽 (Y Half Width) 100
X像元数 (#X Pixels) 150
Y像元数 (#Y Pixels) 150
颜色 (Color) 1

其他参数均采用默认值。

更新三维布局图:

3D_Layout_Second_Detector_Rectangle

追迹光线并计算偏振损失

点击分析选项卡中的探测器查看器,将打开的探测器查看器如下图所示进行设置:

2nd Detector viewer

现在,我们已经准备好重新进行光线追迹并分析探测器结果了。由于材料为N-BK7的平凸透镜没有镀膜,我们需要考虑光线在透镜表面的反射损耗(菲涅尔反射),因此在光线追迹控制对话框中需要勾选“使用偏振 (Use Polarization)选项。(需要注意的是,此时没有勾选NSC分裂光线 (Split NSC Rays)选项,因此分析只考虑反射损失的能量,但被反射的能量没有考虑在探测器能量计算之中。在勾选“NSC光线分裂”时,反射生成的子光线的能量即为反射损耗的能量。)

Ray_Trace_Control_Polarization

现在,探测器查看器中展示的总功率考虑了反射损耗和透镜中的体吸收效应:

Irradiance_Second_Detector

添加矩形导光管

最后一步,我们需要在探测器5的右侧(Z轴正向)20mm的位置添加一个矩形的丙烯酸 (Acrylic) 导光管。在编辑器的探测器5之后添加矩形体物体 (Rectangle Volume Object),输入以下参数:

参考物体 (Ref Object) -1
Z位置 (Z Position) 20
材料 (Material) Acrylic
X1半宽 (X1 Half Width) 70
Y1半宽 (Y1 Half Width) 70
Z长度 (Z Length) 2000
X2半宽 (X2 Half Width) 70
Y2半宽 (Y2 Half Width) 70

其他参数均采用默认值。

在材料栏中输入Acrylic时,您可能会看到如下图所示的提示信息。点击“Yes”后OpticStudio会自动将玻璃库MISC添加到当前系统的玻璃库中,在该文件中包含了丙烯酸的材料数据。

Error

这次我们把参考物体设置为-1,这表示编辑器中的前一个物体(物体5矩形探测器)。对于该参数来说,它和输入数字5的结果一样的。使用负数定义目标和参考物体之间的相对关系是个非常有用的技巧,尤其是在编辑器中需要将一组物体进行复制、粘贴到其他非序列元件编辑器中的时候:

RefObject_Parameters

在编辑器中再添加一个矩形探测器作为物体7,输入参数如下:

参考物体 (Ref Object) -1
Z位置 (Z Position) 0
材料 (Material) ABSORB
X半宽 (X Half Width) 100
Y半宽 (Y Half Width) 100
X像元数 (#X Pixels) 150
Y像元数 (#Y Pixels) 150
颜色 (Color) 1

 其他参数均采用默认值。

使用拾取求解定义探测器位置

更新后三维布局图:

3D_Layout_Detector_5_and_7

材料类型设置为Absorb,这使得探测器对光线而言是不透明的,我们可以从布局图上看到光线被吸收。

由于我们将探测器7作为参考面并设置Z位置为0,探测器目前位于导光管的前表面上。现在,我们希望把这个探测器放在导光管的右侧(Z轴正向)10mm的位置,那么Z位置的数值应该是2010mm(即矩形体的厚度再加10mm)。如果我们改变了矩形体的厚度,探测器7的Z位置数值也应该相应的改变。因此为了方便,我们不在编辑器中直接输入数字2010,而是用一个拾取类型的求解值来给出探测器的Z位置大小。OpticStudio会根据物体6的厚度自动计算这个厚度,然后再加10mm的数值,最终定义Z位置的大小。

点击物体7的Z位置参数栏右侧的小方块,打开求解参数对话框,如下图所示输入参数:

Pick up

在非序列元件编辑器中,材料栏的参数编号为0,因此对应于矩形体物体来说,Z长度对应的参数编号为3。选择求解类型为拾取,并设置拾取自物体6的参数3。

设置完成后,在对应参数的右侧会出现一个字母“P”,这代表该参数现在为拾取类型的求解值。

完整追迹整个系统

打开第三个探测器查看器,追迹并查看探测器7的结果。记得在光线追迹控制对话框中勾选“使用偏振”选项,并在追迹前清空探测器。

在使用配置为Dell Precision M4800,2.9GHz i7处理器,16GB内存的计算机时,用Windows 7专业版操作系统进行光线追迹所花费的时间为12秒。

从探测器查看器中可以看出导光管有效地移除了原来光强分布中的灯丝像,并使得整体的照度分布更接近均匀:

Irradiance_Third_Detector

本文提供的下载链接中提供了完整的系统设计文件。

在NSC实体模型图中也可以显示探测器的光线追迹结果。我们建议您通过用户手册、查阅其他知识库文章和示例文件来继续学习OpticStudio在非序列模式下的更多功能。

总结

这篇文章介绍了如何在OpticStudio中创建和分析一个简单的非序列系统,主要内容有:

OpticStudio的序列模式和非序列模式有许多主要的区别,用户在尝试开始设计一个非序列系统之前需要清楚这些不同。布局图中显示的光线并不影响探测器中的光线追迹结果。在追迹分析到达探测器的光线时,为了考虑菲涅尔损耗和体吸收效应,需要在光线追迹时勾选“使用偏振”选项。

KA-01592

这篇文章有帮助吗?
63 人中有 61 人觉得有帮助

评论

0 条评论

登录写评论。