ZEMAX:如何创建一个简单的非序列系统
2020-01-31 by:CAE仿真在线 来源:互联网
概述
这篇文章介绍了OpticStudio非序列模式中的一些基本操作。主要包括:在非序列元件编辑器中添加和编辑物体、在布局图中观察系统以及利用光线追迹获取系统相关的数据。本文使用的附件请从以下链接处下载:
https://customers.zemax.com/support/knowledgebase/Knowledgebase-Attachments/How-to-Create-a-Simple-Non-Sequential-System/Basic.aspx
https://customers.zemax.com/support/knowledgebase/Knowledgebase-Attachments/How-to-Create-a-Simple-Non-Sequential-System/Open_seq_files.aspx
介绍
非序列模式下的光线追迹可以实现很多序列模式无法轻易实现的功能。这主要是因为非序列模式中,光线能够和任何位于其路径上的物体相互作用,并且可以分裂成很多可追迹的子光线。但是在进入到具体的非序列模式功能展示示例之前,我们首先需要梳理一下非序列模式和序列模式之间基本的区别。
在OpticStudio中有两种不同的光线追迹模式:序列模式和非序列模式。两者之间的主要区别有以下几点:
序列模式
-
主要用来设计成像系统和无焦系统
-
在镜头数据编辑器中定义系统的每个表面
-
光线只能和每个表面接触一次,而且必须遵循特定的顺序(即依次经过的编号为#0、#1、#2…的表面),序列追迹的名称即由此而来
-
当表面的材料类型为MIRROR时,光线只能被反射。OpticStudio还会计算在折射表面上发生的部分反射(菲涅尔反射),以此得到正确的折射能量比例,例如光线在介质膜反射镜和金属反射镜上的透过能量比
-
每个表面都具有属于它自己的局域坐标系。每个表面在光轴上的位置是相对于它前一个表面来定义的。也就是说镜头数据编辑器中的“厚度”栏表示的是下一个表面与当前表面的距离,而不是相对一个全局的参考点的距离
非序列模式
-
该模式主要应用在非成像系统上,例如照明系统或者对成像系统进行杂散光分析
-
物体的表面或体积是在非序列元件编辑器中进行定义的
-
机械零件可以很方便的从CAD软件导入,这可实现完整的光机系统分析
-
光线可以和同一个物体作用不止一次,也能够以任意的次序接触多个物体,这也是非序列名称的由来
-
除非特别声明,所有物体都定义在全局坐标系下
-
对于发生在折射界面的部分反射,除了追迹折射光线以外,非序列模式还可以同时追迹发生反射的部分光线,以实现同时追迹反射和折射光线,这一过程称为光线分裂。
-
在序列系统中存在的成像系统参数例如光阑位置、入瞳、出瞳、视场、系统孔径等,在非序列系统中可能没有意义
-
非序列模式的主要分析功能是基于探测器的光线追迹,它可以给出相干或非相干的光线的空间和角度数据
另外,OpticStudio还支持混合模式(包含入射窗口的非序列模式),其中序列光线追迹和非序列光线追迹同时存在与一个系统之中。
设置系统的基本属性
现在我们要创建一个非序列系统,其中包括一个灯丝光源、一个抛物面反射镜、一个平凸透镜,它用来将光线耦合进一个矩形的导光管中,如下图所示:
我们需要将光线追迹至光学系统中不同位置的探测器,以获得系统不同位置处的照度分布。这是我们最终得到的结果:
如果OpticStudio现在还没运行,请启动软件。
OpticStudio启动时默认处于序列模式/混合模式中。如果想要切换到纯非序列模式,则在启动OpticStudio后,点击设置 (Setup)选项卡中系统 (System)中的非序列模式 (Non-sequential):
一旦切换到非序列模式,编辑器窗口的名称会从序列模式下的镜头数据编辑器 (Lens Data Editor)变为非序列元件编辑器 (Non-Sequential Editor)。其中镜头数据编辑器只在序列模式或者混合模式中使用。
在本例中,首先设置系统波长。在系统选项 (System Explorer)窗口中选择波长 (Wavelength),并设置波长为0.587um:
同样,在系统选项的单位 (Unit)菜单中设置单位如下所示(默认设置):
除了可以将辐照度单位设置为瓦特/平方厘米以外,您还可以将光亮度单位设置为流明/平方厘米或者将能量单位设置为焦耳/平方厘米。在这个案例中我们选择默认的辐照度单位的设置。
创建反射镜
您可以使用键盘上的insert键在非序列元件编辑器中插入几行空物体。
在开始设计的第一部分中,我们要创建一个灯丝光源,并用一个抛物面的反射镜让光线准直地出射。然后我们需要在相隔一段距离的位置放置一个探测器以查看光源在此位置的辐照度分布。
如果想要把第一个物体设置成抛物面的反射镜,我们需要在编辑器中点击物体1的物体类型 (Object Type)栏或者打开物体1的物体属性 (Object Properties)。将类型设置为标准面 (Standard Surface):
在编辑器中的对应位置输入以下参数,其中一些参数可能需要您向右滑动滑块,以找到写有对应名称的表格单元。
材料 (Materials):Mirror
曲率半径 (Radius):100
圆锥系数 (Conic):-1(抛物线)
最大孔径 (Max Aper):150
最小孔径 (Min Aper):20(反射镜中央的孔)
其他参数均采用默认值。
您可以点击分析选项卡中的非序列3D视图 (NSC 3D Layout)按钮打开非序列三维布局图,或者点击分析菜单中的非序列实体模型 (NSC Shaded Model)按钮打开NSC实体模型图来查看反射镜的几何形状:
创建光源
和上述对应操作类似,在编辑器中改变物体2(目前是空物体)的物体类型为灯丝光源 (Source Filament):
我们希望灯丝光源位于抛物面反射镜的焦点处,这样出射光才会是平行光。我们假设灯丝线圈在20mm的长度里环绕了10圈,并且环绕半径为5mm:
在编辑器中设置灯丝光源的参数如下:
Z位置 (Z Position):50(抛物面反射镜的焦点)
显示光线条数 (#Layout Rays):20
分析光线条数 (#Analysis Rays):5,000,000
长度 (Length):20
曲率半径 (Radius):5
圈数 (Turns):10
双击三维布局图以更新显示结果:
布局图中显示了20条从光源发射出的光线,这和显示光线条数参数中所设置的数量相同。
旋转光源
目前灯丝光源的方向是沿着Z轴排布的,如果我们想让它沿着X轴排布,就需要把光源绕Y轴旋转90度。在光源参数的倾斜Y (Tilt About Y) 参数栏中输入90:
在布局图中默认显示YZ截面的视图,可以看到灯丝方向现在是沿着X轴排布的。但从XZ截面视图可以发现灯丝在X轴正向偏移了一段距离。您可以通过在布局图参数设置栏中设置视图旋转参数来改变视角,也可以通过键盘的上下左右方向键和Page Up、Page Down按键来旋转视图:
产生偏离的原因是灯丝的旋转轴并不在其中心,而是在它的端点位置。如果想要把光源放在沿X轴的中心,则需要在光源的X位置 (X Position)参数栏输入-10:
更新布局图中的显示,现在我们可以看到灯丝以正确的方向位于预想的中心位置。
放置探测器
下面我们需要在离光源一定距离的地方放置一个探测器来分析光源在该位置的辐照度分布情况。
第三个物体设置为矩形探测器并输入以下参数:
Z位置 (Z Position):800
材料 (Material):空白(不用输入"空白"而是保持表格单元为空的)
X半宽 (X Half Width):150
Y半宽 (Y Half Width):150
X像元数 (#X Pixels):150
Y像元数 (#Y Pixels):150
颜色 (color):1(探测器用反灰度图的范式显示数据)
其他参数保持默认值。
YZ截面视图(默认)如下图所示:
从布局图中可以看到光线穿过了探测器,这是因为这里探测器的材料类型是空气(编辑器中为空白),它对光线来说是完全透明的。
追迹光线至探测器
如果要想查看探测器上的光强分布,可以点击分析选项卡中的探测器查看器 (Detector Viewer):
您会看到,虽然在布局图中我们可以看到光线到达了探测器的位置,但此时探测器查看器显示的数据仍是空的,总功率也是0。这是因为在布局图中和探测器查看器中的光线追迹结果是相互独立的。如果想要看到探测器上的追迹结果,我们首先需要执行光线追迹,将光线追迹到探测器上。通过编辑器中的“分析光线条数”参数来设置光线追迹的数量,该参数的数值通常很大,在这个示例中为5百万根光线。需要注意的是,布局图中的光线不影响探测器查看器中的追迹结果,只有分析的光线才会产生影响。
如果想要把分析光线追迹到探测器上,点击分析选项卡中的光线追迹 (Ray Trace)按钮,打开光线追迹控制 (Ray Trace Control)对话框:
在开始追迹前一定要点击清空探测器 (Clear Detector)按钮来清空探测器之前保存的数据,以免之前的追迹结果影响这一次的追迹分析。点击清空探测器按钮,然后点击追迹 (Trace),光线追迹完成后再点击退出 (Exit)。
探测器查看器会显示如下辐照度分布结果,其中我们可以看到灯丝光源的像:
如果您在探测器查看器中得到了和上图不同的结果,打开探测器查看器的设置对话框,确认设置参数与下图中的完全相同:
您也可以在NSC实体模型图的设置中,把探测器选项设置为像素颜色由最后一次追迹结果决定 (Color Pixels By Last Analysis),得到如下追迹结果:
添加平凸透镜
目前,我们已经添加了一个光源和一个反射镜,现在我们需要在探测器右侧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
更新三维布局图:
需要注意的是,我们是以物体3(矩形探测器)为参考面定义的透镜位置,因此在参考物体栏输入了数字3,然后在Z位置处输入数字10,而不是以全局坐标系为参考(即以物体0为参考)的参数大小810。在以探测器为参考面定义透镜位置时,无论探测器的位置在哪儿,透镜永远保持在探测器右侧(Z轴正向)10mm的位置处。这也是在非序列模式中定义物体间相对位置的常用技巧。
为了得到汇聚光束的光强分布,在透镜右侧(Z轴正向)650mm处再添加一个探测器,并输入参数如下:
参考物体 (Ref Object):4
Z位置 (Z Position):650
材料 (Material):空白
X半宽 (X Half Width):100
Y半宽 (Y Half Width):100
X像元数 (#X Pixels):150
Y像元数 (#Y Pixels):150
颜色 (color):1
其他参数均采用默认值。
更新三维布局图:
追迹光线并计算偏振损失
点击分析选项卡中的探测器查看器,将打开的探测器查看器如下图所示进行设置:
现在,我们已经准备好重新进行光线追迹并分析探测器结果了。由于材料为N-BK7的平凸透镜没有镀膜,我们需要考虑光线在透镜表面的反射损耗(菲涅尔反射),因此在光线追迹控制对话框中需要勾选“使用偏振 (Use Polarization)”选项。(需要注意的是,此时没有勾选“NSC分裂光线 (Split NSC Rays)”选项,因此分析只考虑反射损失的能量,但被反射的能量没有考虑在探测器能量计算之中。在勾选“NSC光线分裂”时,反射生成的子光线的能量即为反射损耗的能量。)
现在,探测器查看器中展示的总功率考虑了反射损耗和透镜中的体吸收效应:
添加矩形导光管
最后一步,我们需要在探测器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添加到当前系统的玻璃库中,在该文件中包含了丙烯酸的材料数据。
这次我们把参考物体设置为-1,这表示编辑器中的前一个物体(物体5矩形探测器)。对于该参数来说,它和输入数字5的结果一样的。使用负数定义目标和参考物体之间的相对关系是个非常有用的技巧,尤其是在编辑器中需要将一组物体进行复制、粘贴到其他非序列元件编辑器中的时候:
在编辑器中再添加一个矩形探测器作为物体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
其他参数均采用默认值。
使用拾取定义位置
更新后三维布局图:
材料类型设置为Absorb,这使得探测器对光线而言是不透明的,我们可以从布局图上看到光线被吸收。
由于我们将探测器7作为参考面并设置Z位置为0,探测器目前位于导光管的前表面上。现在,我们希望把这个探测器放在导光管的右侧(Z轴正向)10mm的位置,那么Z位置的数值应该是2010mm(即矩形体的厚度再加10mm)。如果我们改变了矩形体的厚度,探测器7的Z位置数值也应该相应的改变。因此为了方便,我们不在编辑器中直接输入数字2010,而是用一个拾取类型的求解值来给出探测器的Z位置大小。OpticStudio会根据物体6的厚度自动计算这个厚度,然后再加10mm的数值,最终定义Z位置的大小。
点击物体7的Z位置参数栏右侧的小方块,打开求解参数对话框,如下图所示输入参数:
在非序列元件编辑器中,材料栏的参数编号为0,因此对应于矩形体物体来说,Z长度对应的参数编号为3。选择求解类型为拾取,并设置拾取自物体6的参数3。
设置完成后,在对应参数的右侧会出现一个字母“P”,这代表该参数现在为拾取类型的求解值。
完整追迹整个系统
打开第三个探测器查看器,追迹并查看探测器7的结果。记得在光线追迹控制对话框中勾选“使用偏振”选项,并在追迹前清空探测器。
在使用配置为Dell Precision M4800,2.9GHz i7处理器,16GB内存的计算机时,用Windows 7专业版操作系统进行光线追迹所花费的时间为12秒。
从探测器查看器中可以看出导光管有效地移除了原来光强分布中的灯丝像,并使得整体的照度分布更接近均匀:
本文提供的下载链接中提供了完整的系统设计文件。
在NSC实体模型图中也可以显示探测器的光线追迹结果。我们建议您通过用户手册、查阅其他知识库文章和示例文件来继续学习OpticStudio在非序列模式下的更多功能。
小结
这篇文章介绍了如何在OpticStudio中创建和分析一个简单的非序列系统,主要内容有:
-
OpticStudio的序列模式和非序列模式有许多主要的区别,用户在尝试开始设计一个非序列系统之前需要清楚这些不同
-
布局图中显示的光线并不影响探测器中的光线追迹结果
-
在追迹分析到达探测器的光线时,为了考虑菲涅尔损耗和体吸收效应,需要在光线追迹时勾选“使用偏振”选项。
相关标签搜索:ZEMAX:如何创建一个简单的非序列系统 zemax光学培训 zemax光学培训课程 zemax光学分析 zemax光学在线视频教程 zemax光学技术学习教程 zemax光学软件教程 zemax光学资料下载 zemax光学代做 zemax光学基础知识 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训