![cover](https://img-blog.csdnimg.cn/6aa3486dca574516aeb04508b9afa41e.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NhcmlmZWU=,size_16,color_FFFFFF,t_70)
Zemax学习笔记(3)- Zemax中的序列模式和非序列模式
Zemax学习笔记(3)- Zemax中的序列模式和非序列模式序列模式与非序列模式序列模式窗口浮动或者固定主要分析非序列模式序列模式与非序列模式在设置界面可以看到,软件可以设置为序列模式(Sequential)和非序列(Non-sequential)模式。那么两者分别有什么功能或者具体的区别呢?序列模式光线追迹广泛应用于模拟光在光学系统中的传播过程。使用光学追迹的方式对光的传播进行模拟的方法通常称
Zemax学习笔记(3)- Zemax中的序列模式和非序列模式
序列模式与非序列模式
在设置界面可以看到,软件可以设置为序列模式(Sequential)和非序列(Non-sequential)模式。那么两者分别有什么功能或者具体的区别呢?
序列模式
光线追迹广泛应用于模拟光在光学系统中的传播过程。使用光学追迹的方式对光的传播进行模拟的方法通常称为几何光学。
在序列模式的光迹追踪过程中,光线会按预先定义的一系列表面的顺序进行追迹,从物面穿过整个系统传播到像面上。其中光线与所定义的每个序列表面只接触一次。使用序列表面能够很好地描述成像系统。并且光线在序列表面中追迹的计算速度非常快。因此在进行光学系统的设计、优化和公差分析时非常有用。通过光线追迹可以快速实现光学成像系统的相差计算,例如光线光扇图的绘制、衍射计算以及波前差计算等。
许多传统的光学系统都可以归类为光学成像系统,包括相机物镜、远摄镜头、显微镜、望远镜、中继镜和光谱仪系统。
窗口浮动或者固定
任一小窗口都可以设定为浮动状态或者固定状态(布局),右键窗口选择即可。
主要分析
序列模式下可以进行的主要分析有:
点裂图分析
光线和OPD光扇图分析
MTF分析
拓展图像分析
离轴系统: 包含反射镜、倾斜的元件或者离轴的圆锥曲面镜的光学系统。
系统选项: 系统孔径、视场和波长数据。
非序列模式
在序列模式中,光线仅限于从一个物体传播到下一个物体。这种特性是的序列模式成为对成像系统和无焦系统进行分析的理想选择。但是如果需要用到高度灵活的模式,那么就需要使用非序列模式。
非序列光线追迹功能允许光线以任意的次序通过光学元件,并允许光线被分裂、散射并反射回已经经过的物体。这种特性使得非序列模式能够分析任何系统类型中的杂散光、散射和照明问题等。
只要一个光学系统能够使用光线追迹来描述,我们就可以用Zemax的非序列模式来仿真。
非序列光线追迹:
非序列光线追迹意味着在光线追迹过程中,不存在预先定义好的一系列表面。光线与物体表面的接触点仅由它的物理位置、物体属性和光线方向来决定。光线可以入射到非序列物体的任意部位,也可以多次入射到相同的物体或一次也不接触。
而在非序列模式中,光学元件以真正的三维物体创建,它可以以表面或实体的形式存在。每个物体都是以全局坐标系中的x,y,z坐标进行定义,并且每个物体坐标和方向的定义相互独立。在很多光学应用中,简单的序列表面模型不能很好地描述一些光学元件,我们需要使用实际的三维模型来跟好滴描述他们的光学性质。其中需要使用非序列光学追迹才能进行建模的光学元件包括:复杂棱镜、角立方棱镜、导光管、多面体元件、在CAD中创建的元件以及嵌入式元件(例如一些位于其他元件内部的元件)等。
在Zemax中,可以用以下两种模式来进行非序列光线追迹模拟:
①纯非序列模式
②序列/非序列混合模式
当使用纯非序列模式时,所有光学元件都处在同一个非序列元件组中。除此之外,光源和探测器均在元件组中进行设置,用来发射和记录光线。在非序列模式中,Zemax的光源设置更加丰富多样。
在序列模式中只能在物面上设置点光源,或使用各种可用的图像分析功能进行建模。非序列模式的光源类型可以使简单的点光源或者为具有复杂三维分布的光源。
从非序列光源中发射出来的光线,被称之为NSC(Non-Senquential)光线,光线入射到光学元件时可以发生分裂或散射,也可以在使用现为妙术的元件或表面上发生衍射。在使用NSC光线进行光线追迹时,可以通过评估探测器上的辐射强度数值或者查看储存在光学数据库中的光线数据对系统进行分析。
探测器的形状可以设置为平面、曲面或者是一个三维物体。探测器数据支持多种显示类型,其中包括:非相干照度(Incoherent Irradiance)、相干照度(Coherent Irradiance)、想干相位(Coherent Phase)、辐射照度(Radiant Intensity)、辐亮度(Radiance)以及真彩色(True Color)结果。
混合模式
即混合使用序列模式和非序列模式。当该功能被使用时,非序列元件将在非序列组中进行设置。该非序列组是上一级更大序列系统的组成部分。序列模式追迹的光线通过一个入射端口进入非序列组,最后再通过一个出射端口从非序列组中出射,继续在序列系统中传播。
可以在同一个序列系统中定义多个不同的非序列组,每组中可以设置任意数量的元件。
基于改功能,可以讲多面镜、屋脊棱镜或者CAD元件等非序列元件整合到一个序列模式设计中。
该模式适用于模拟哪些本身结构就是序列设置的系统,但在系统中包含了一个或多个使用三维模型进行建模更方便的元件。
以下两个文件均是序列\非序列混合模式的示例文件,感兴趣的可以打开文件看一看。可以在设置中勾选光线箭头Fletch Rays,观察光线的传播路径。
Zemax\Samples\Non-sequential\Reflectors\Toroidal faceted reflector.zmx
Zemax\Samples\Non-sequential\Prisms\Half penta prisms and amici roof.zmx
光源建模
打开这个实例,Zemax\Samples\Non-sequential\Reflectors\3 helical lamps with reflectors.zmx
该示例文件展示了从三个灯丝光源发出的光线入射到三个探测器上的情况。
可以在分析部分,进行光线追迹、探测器查看、分析光线条数等。
创建复杂的几何体
CAD 导入
当想要的结构无法使用Zemax内置的物体类型进行创建时,其中一个解决方案是在CAD软件中绘制您所需的几何结构,再导入到Zemax中。
有两种方法可以实现这一操作:静态导入和动态导入。
静态导入是指以常用的CAD文件格式,如STP、SAT、IGS、STL等进行导入。可以在Zemax中导入这些格式的文件,并设置相应的光学性质然后进行模拟。通过这种方法导入的物体只能做等比例缩放,不能对其形状进行修改,因此称为静态导入。
动态导入是指通过CAD链接的形式 (只在旗舰版中可用) 导入用SolidWorks、Autodesk Inventor或者PTC Creo等软件构建的零件或装配体,导入物体的参数可以进行相应的修改。动态导入功能需要您事先安装相应版本的CAD软件。
下图展示了一个导入到OpticStudio中的SolidWorks零件:
布尔命令
另一个方案是利用布尔物体来创建。布尔物体可以使物体进行一系列的布尔运算,进行布尔运算的非序列三维物体数量最多为10个。最后得到的布尔物体仍然可以通过调整源物体的参数来对结构进行修改。
打开文件Zemax\Samples\Non-sequential\Geometry Creation\Boolean example 4- a lens mount.zmx。该示例文件展示了如何使用布尔物体来构建复杂的几何结构。
从非序列元件编辑器中可以看到该文件总共定义了4个物体(一个矩形体,即长方体和三个圆柱体)。此外还定义了一个布尔物体。
在示例中,标注栏中定义了“a-b-c-d”,这表示物体B、C和D都将从物体A中被减去。因此三个圆柱体将从立方体中被减去,让我们最后得到了一个简单的镜头卡座结构。在实体模型图中展示了4个源物体和对应的布尔物体。
该示例展示了使用布尔减法运算得到的布尔物体,还可以利用加法、交集以及异或运算来创建几何体。
光线的分裂和散射
光线分裂
打开文件Zemax\Samples\Non-sequential\Ray splitting\Beam splitter.zmx
这个示例展示了非序列模式中的光线分裂功能。
该示例文件展示了如何用两个斜面重叠的棱镜(使用多边形物体类型创建)来模拟一个立方体分束镜。在默认情况下,光线入射到多边形物体时会直接透射穿过多边形物体。我们可以通过在物体表面上设置一个部分反射/透射的膜层,来同时得到反射光线和透射光线。膜层的性质在物体属性对话框的膜层/散射 (Coat/Scatter) 选项卡下进行设置。打开非序列元件编辑器中物体3的物体属性设置菜单中的膜层/散射选项卡。所有关于膜层性质的设置都是在这个界面下完成。
在该示例中,分束器的所有表面都设置了膜层。其中,所有的立方体外侧的表面都设置了抗反射膜层,而中间的分束面则设置了50%透射/50%反射的膜层。在3D视图中可以看到入射到立方体的光线分成了两束。
打开3D视图的设置对话框,确保NSC光线分裂 (Split NSC Rays) 和使用偏振 (Use Polarization) 两个选项已经勾选。取消勾选该选项并点击确认 (OK),将会看到光线不再分开,只有一束光线从左向右穿过了立方体。在分析光线追迹过程中同样也可以考虑光线分裂。在光线追迹控制器中必须同时勾选光线分裂和偏振计算两个选项。
光线散射
打开文件Zemax\Samples\Non-sequential\Scattering\ABg Scattering Surface.zmx。该示例文件同时展示了光线在非序列模式中的分裂和散射。
当布局图设置中勾选了NSC散射光线 (NSC Scatter Rays) 选项时,3D视图中会显示光线在物体2(一个平整的方形镜)上发生的散射。此时没有开启光线分裂功能,因此每条入射光线经过物体2后将得到一条散射反射光线。实体模型图中同时显示了光线的分裂和散射(同时勾选NSC光线分裂和NSC光线散射选项)。
当在散射系统中开启光线分裂功能时,Zemax会生成多条分裂的散射光线,光线的条数取决于散射表面/物体的物体属性对话框中膜层/散射选项卡下中光线数 (Number of Rays) 设置的数值。查看物体2中对应的表面,可以看到此时光线数设置为每一条入射光线将生成3条散射光线。
Zemax支持的散射模型包括朗伯 (Lambertian)、高斯 (Gaussian)、ABg、BSDF、IS库和用户自定义散射模型。其中IS库为常用的商用材料散射数据库。在示例文件物体2的膜层/散射选项卡中可以看到,物体2使用了ABg散射模型(在ABg模型中选择TP_TEST文件)。
高级功能
衍射光栅
非序列模式的光线分裂功能更利于模拟光线的衍射。
打开文件Zemax\Samples\Non-sequential\Diffractives\Diffraction grating multiple orders.zmx
可以看到每一条入射的光线都分裂为5条光线。
在这个示例中,光线并不是由于膜层或散射的原因发生分裂,而是因为物体2的物体类型为衍射光栅,光线的能量分裂到不同衍射级次的衍射光线上。这个光栅的基本性质(光栅周期,单位线对数/微米)可以在该物体相应的参数栏中进行定义。本例中使用的衍射光栅物体实际上相当于在标准透镜物体的参数上添加光栅周期(刻线/μm)的数据。
在物体属性中的衍射 (Diffraction) 选项卡中对光线的分裂进行设置。在衍射选项卡中,可以定义每个衍射级之间的相对能量关系。
相干建模
Zemax中另外一个高级功能是模拟光的相干性。打开文件Zemax\Samples\Non-sequential\Coherence\A Simple Interferometer.zmx。这个非序列示例文件展示了如何在非序列模式下对光的相干性进行建模。
文件模拟了一个干涉仪。光线从左上方的矩形光源中出射,并在多边形物体2上透射和反射,其中物体2的表面设置了50%透射/50%反射膜层。然后光线分别沿着干涉仪的两臂到达布局图中右下方的探测器(物体6和7)。其中,在探测器前的两条光路,通过第二个具有50%透射/50%反射膜层的多边形物体(物体5)重新合为一路。干涉仪左下方一路的反射镜(物体3)沿x轴存在额外的0.005度倾角,这使得两束光在到达探测器表面时的光程差不再相等。
在探测器的相干设置中,Zemax根据每条光线到达探测器表面时的振幅和相位,计算它们相干叠加的结果。该功能可以使Zemax定性地模拟干涉仪的干涉条纹。如要看到这样的效应,可以在在探测器查看器设置的显示数据 (Show Data) 选项中,选择相干照度 (Coherent Irradiance) 或者相干相位 (Coherent Phase):
打开探测器查看器,在设置中选择探测器物体6。设置显示数据 (Show Data) 选项为相干照度 (Coherent Irradiance) 并点击确认 (OK) 按钮。观察因为反射镜(物体3)额外的0.005度倾角所产生的倾斜条纹。再次打开探测器查看器的设置对话框,设置显示数据 (Show Data) 为非相干照度 (Incoherent Irradiance) 并点击确认 (OK) 按钮。可以看到,由于探测器不考虑光线的相干性,分析窗口中不再显示干涉条纹。
吸收分析
打开文件Zemax\Samples\Non-sequential\Miscellaneous\Voxel detector for flash lamp pumping.zmx 查看光线在材料中的体吸收现象
在前文中的探测器类型为矩形探测器物体,它们均为平面探测器。而Zemax同样能模拟更复杂的探测器,例如曲面探测器或者三维体探测器。
该示例展示了如何在一个简易的激光泵浦系统中使用体探测器物体。其中,谐振腔由一对分处两端的环形镜 (Toroidal Mirror) 构成(物体3和4)。在靠近每个镜子的位置设置有一个线光源(物体1和2)来发射光线。在谐振腔的中间有一个体探测器(物体6)来模拟谐振腔中的增益晶体。
需要注意的是,体探测器(物体5)与图中的圆柱体重叠。
体探测器是一个包含由三维像素点阵组成的立方体,把每个像素点称为体元 (Voxel)。Zemax能够在每个体元上记录入射进来的光通量。当体探测器在空间上覆盖了另外一个定义了透射数据的三维物体时,Zemax就能够记录在体探测器里的每个体元上,被吸收的光通量。在这个示例中,被覆盖的圆柱体的材料为BK7玻璃,该玻璃型号的透射数据已经在材料数据库中进行了定义,可以在数据库 (Libraries) 选项卡的材料库 (Materials Catalog) 中查看。
点击在非序列元件编辑器中物体5对应的行,向右找到有关探测器体积的设置参数。可以看到体探测器沿着X、Y方向各有101个像素点,而沿着Z方向则有25个像素点。
查看已打开的探测器查看器,可以看到它显示了体探测器中的吸收光的通量。另外在分析窗口的底部列出了所在Z平面位置的信息。探测器查看器只能以二维的形式显示数据,因此探测器查看器每次只能查看其中一个切面的数据。Z平面设置能够让您调节Z方向像素点位置(本例中为1到25),并查看相应XY切面的数据。可以在探测器查看器的设置中改变Z平面的位置,或者直接用键盘上的左右方向键进行更改。
在Zemax中有很多类型的物体都可以被转换为体探测器,可以更方便的模拟复杂的表面或壳层结构的探测器物体。
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)