光学课堂 首页 资讯 查看内容

ZEMAX软件技术应用专题:利用RCWA方法模拟表面浮雕光栅

2023-2-28 23:01| 发布者:optkt| 查看:1071| 评论:0

摘要:本文介绍了如何使用ZEMAX软件中的RCWA方法模拟表面浮雕光栅,包括梯形光栅和阶梯光栅等。这些光栅广泛应用于光谱仪、增强现实、虚拟现实和头戴显示器等现代设备中。文章详细讨论了DLL参数,如周期、频率、深度、旋转光栅、镀膜文件和插值模式等。这些参数可以帮助用户更准确地模拟光栅,提高系统的性能和精度。
表面浮雕光栅 (SRG) 广泛应用于各种传统光学系统,如光谱仪、分束器、三维扫描系统、衍射透镜和脉冲放大系统等。近年来,表面浮雕光栅在平视显示器 (HUD) 、增强现实 (AR)、虚拟现实 (VR) 头戴显示器 (HMD) 等现代设备中得到广泛应用。它们能够以任意角度衍射光线,综合其波长和角度选择性,使得光学系统比传统设计更紧凑、更轻,而传统设计通常需要使用棱镜和自由曲面来达到同样的性能,会导致系统更复杂,体积更庞大。
OpticStudio一直可以模拟光栅,但没有考虑衍射效率。为了准确地反映衍射光线的衍射效率和偏振态,就必须在模拟时考虑光栅的微观结构等特性。
本文将讨论两个用来模拟梯形和阶梯光栅的DLL。承接上周的内容,下篇将包含DLL参数等。

DLL 参数

在OpticStudio 20.3中,共有5个RCWA DL用于模拟不同形状的1D光栅:
  • srg_trapezoid_RCWA.dll
  • srg_step_RCWA.dll
  • srg_blaze_RCWA.dll
  • srg_GridWirePolarizer_RCWA.dll
  • srg_user_defined_RCWA.dll
本节描述了这些DLL的参数,从所有DLL相同的参数开始,然后解释每个DLL的特定参数。

相同的参数

以下参数在所有 RCWA DLL 中具有相同的含义。
+周期/频率(µm) 和深度 (µm)
这些凹槽周期单位为µm,光栅的剖面深度单位为µm。
  • 当“+周期/-频率(µm)”是正值,它对应于凹槽周期(µm);
  • 当它是负值,对应于凹槽频率(1 /µm)。周期和频率是互为倒数的。图10显示了光栅的凹槽周期和深度。

图10. 梯形和阶梯光栅的槽深和凹槽周期。
建议周期不要太大,例如波长的100 倍。这意味着所需的?ZUI大级次非常大,以至于不能有一个准确的结果。有关ZUI大级次初始值的建议,请参阅"谐波(级次)的概念"部分。
ZUI大级次
请参阅"谐波(级次)的概念"部分。
这目前限制为10(共 21 个谐波)。当数字大于10时,在DLL中将其修改为 10。联系支持团队以增加限制。
旋转光栅(°)
此参数允许用户旋转光栅线的方向。
  • 当它设置为零时,光栅线沿着Y方向,这意味着光线在X方向弯曲。
  • 当它设置为非零时,正值则光栅线以逆时针方向旋转(+X +Y),负值则顺时针向旋转。请注意,此处描述的X和Y方向基于对象的本地坐标系统。
图11. 光栅旋转 135 度。
使用镀膜文件
此参数是一个标志。如果是非零正整数,则表示分散数据(指数与波长)在文本文件中定义。文本文件必须保存在 {Zemax}\Coatings\COATING_xx.dat中,其中 xx 是"使用涂料文件"参数中指定的正整数。
例如,如果将"使用涂层文件"设置为 7,则将COATING_7.dat读取分散数据。
在COATING_xx.dat文件中,散射数据的定义可用参考“The Libraries Tab > Coatings Group > Defining Coatings > The MATE Data Section"下的帮助文件。材料名称应始终从RCWAxx开始,其中xx是两位数的整数。所有文本依次排布。
例如,我们可以定义RCWA01TIO2。DLL将读取 RCWA 材料1,并将忽略随后的TIO2文本。图12显示了一个涂层文件与几个材料散射数据的例子。
图12. 如何在COATING_xx.dat中定义分散数据的示例。
材料编号可以指定光栅折射率(R)、环境折射率(R)或膜层折射率(R)。使用等于材料数乘以-1的负整数。
例如,如果我们要将RCWA02设置为Grate区域的索引数据,则只需将光栅折射率(R)设置为 -2。
查看”光栅折射率(R)、光栅折射率(I)、环境折射率(R)、环境折射率(I)“和”膜层折射率(R)、膜层折射率(I)、膜层顶部厚度(µm)、膜层侧面厚度(µm)“小节获取更多信息
插值
这个参数需是一个整数。
  • 如果为零,DLL 将不使用插值模式。
  • 如果设置为非零值,DLL将在插值模式下工作,这意味着DLL在计算时将在RAM中缓存RCWA数据。然后,这些数据用于插值以进行进一步的光线追迹。这可以显著提高系统中许多光线追迹的速度,例如,跟踪超过一百万条光线。
  • 当插值设置为1时,将使用201*201采样网格。
  • 当它大于1时,它代表采样网格的大小。换句话说,用户可以通过将插值设置为大于1的数字来定义采样网格的大小。但请注意,ZUI低采样网格大小为21。
  • 当插值设置为负整数时,DLL将采取绝对值来查找采样网格,但会使用不同的方法进行插值。这种插值方法更准确,但速度较慢。
设置插值参数是为了速度和精度之间的正确平衡。
图13. 当参数插值为非零整数时,插值模式将打开。当它是负数的时,使用不同的插值方法。这种方法较慢,但更准确。
插值模式 (Interpolation Mode) 是如何工作的?
首先,在LM空间中定义一个采样网格。当光线入射到光栅上时,光线的方向可以用单位矢量(L,M,N)表示。LMN也被称为光线的方向余弦。当光线击中光栅时,它在x和y方向上的方向余弦L和M被映射到LM空间。然后检查ZUI近的四个采样点,如果在这四个点中没有任何一个点已经计算出RCWA数据,则计算这些点的数据并将其保存在RAM中。然后用这四个点对入射光的RCWA数据进行线性插值。注意,插值不仅是为了提高衍射效率,也是为了实现电场。换句话说,在缓存数据和插值的过程中,要充分考虑相位、偏振态和振幅的变化。
如果光栅数据或光的波长发生变化,DLL将创建另一个采样网格来保存RCWA数据。因此,将光栅参数或波长设置为变量时,用户不应在优化过程中打开插值功能。这意味着追踪许多光线(>1000)时,插值会起到加速优化的作用。但是,如果在优化过程中仅通过光栅跟踪几条光线(如<10),建议关闭插值。
关于进一步的讨论,请参阅“优化(Optimization)”一节。
图14. 在插值模式下,衍射数据的计算如图所示。
仅这些级次(Only these order)
当参数"仅这些级次"为0或负时,DLL将照常工作。所有级次都将追踪。当该参数为正整数时,允许用户指定用户想要跟踪的传输和反射中的衍射级次。
"仅这些级次"只是一个整数,所以下表是它的定义。下表将级次映射为唯一的正整数。
"仅这些级次"是2的幂级数的总和。
举个例子,如果用户想要追迹0级反射光线(R0)和+1级透射光线(T+1)。”仅这些级次“参数应该被设置为2^0 + 2^5 = 1 + 32 = 33。
图.15 ”仅这些级次“ 允许用户指定用户想要跟踪的传输和反射中的衍射级次
注意在使用这个参数的时候,开始级次和结束级次需要包含指定的追迹级次。
此参数也可以使用可视化工具设置。这是一种更容易的方法,因为不需要计算。
图.16 可视化工具中可用直接设置该参数。
随机模式
  • 这也可以称为蒙特卡罗方法或者概率分裂
  • 当参数设置为0时,DLL正常工作
  • 当设置为1,2或3时,随机模式将会生效。当随机模式工作时,DLL会让光线随机衍射,如图17所示。跟踪每个衍射级次的概率基于衍射级次之间的能量比。
图17.  随机模式下,任意入射光线会随机衍射,产生衍射的级次的概率取决于每个级次的能量比。这张图片显示了只有1条光线随机衍射的情况。
  • 对于每条入射光线,可能有任意数量的出射光。要衍射的光线数量由计算决定(截至级次-初始级次+1)。换句话说,用户可以设置参数"初始级次"和"截至级次"来定义出射的光线数量。同样,在光线追迹过程中,随机决定每一条光线的衍射级次。每个出射光线都携带Pi/n的功率,其中Pi是入射光线功率,n是出射线的数量。
图18. 在随机模式下,一条入射光线可用对应多条衍射出射光线。
注意,如果”仅这些级次“不为零,则随机模式按照如下规则运行。
  • 当随机模式为1时,”仅这些级次“被忽略。
  • 当随机模式为2时,随机模式先于”仅这些级次“生效,一条光线可能由随机模式随机化,但被"仅限这些命令"设置的规则阻止。
  • 当随机模式为3时,”仅这些级次“先于随机模式生效,光栅仍然以随机方式衍射光线,但衍射光线始终在"仅这些级次"指定的一组级次中随机化。
错误日志
如果这个参数不为0,则会生成一个报告计算错误的txt文件。该日志文件会保存在{Zemax}\DLL\Diffractive\中,并且与指定的衍射DLL同名。这一参数通常应该设置为0,除非出现了未知的错误。
查看”几何错误“小节获取更多相关信息。

梯形光栅参数(Trapezoid parameters)

以下是梯形光栅 (srg_trapezoid_RCWA.dll) 的参数:
深度,Alpha (度),Beta (度)和填充因子。
这四个参数按照如下规则控制光栅的形状:
  • 深度决定了光栅的高度,如图19所示。
  • 从-z旋转到+x方向时,Alpha和Beta是正的,从+x旋转到-z方向时,Alpha和Beta是负的。例如,在图19中Alpha是正的,Beta是负的。
  • 填充因子是0到1之间的数字,表示底面与凹槽周期的比值。
图19. 梯形光栅的4个参数定义了光栅形状。
膜层折射率(R)、膜层折射率(I)膜层顶部厚度(µm)膜层侧面厚度(µm)
这4个参数用于模拟光栅的膜层。DLL可以使用户定义顶部厚度(膜层顶部厚度(µm))和侧面厚度(膜层侧面厚度(µm))。
注意,膜层的厚度不包括在深度参数中。例如,如果深度是5 µm,顶部厚度为200 nm,则光栅的总厚度为5.2µm。
图11. 梯形光栅膜层的顶部厚度。
由于膜层材料可以是金属,DLL提供了另外两个参数来定义膜层材料的复折射率;实部为折射率(R),虚部为折射率(I)。在OpticStudio中,对于吸收材料来说,折射率的虚部通常是负的。例如,铝的复折射率为0.7-7.0i。
膜层折射率(R)不能为零,但可以是负整数。当它是负整数时,意味着它由文本文件中的数据单独定义。有关详细信息,请参阅"使用镀膜文件"部分。
光栅折射率(R)、光栅折射率(I)、环境折射率(R)、环境折射率(I)
光栅结构可分为两个部分,如图 21所示:由”Grate”和“Env“指示的2个不同区域,表示光栅及其环境。光栅被外部区域(Outside)和基板区域(Substrate)包围。基板和外部区域的折射率由光学系统定义。光栅和环境的折射率由DLL中的参数定义。
DLL中包含了4个参数来定义光栅和环境的折射率。
  • 光栅和环境的折射率均由复数定义。
  • 对于光栅区域,折射率的实数部分和虚数部分由光栅折射率(R)和光栅折射率(I)指定。
  • 对于环境区域,折射率的实数部分和虚数部分由环境折射率(R)和环境折射率(I)指定。
  • 当光栅和环境的折射率的实数部分被设为0时,有一项特殊的定义。如果光栅折射率设为0,则表示光栅的折射率与基板的折射率一致。基板折射率由光学系统定义。同样的,如果环境折射率设为0,则表示环境的折射率和外部区域的折射率一致。
  • 光栅和环境的折射率的实数部分(R)可以是负数,意味着它由文本文件中的数据单独定义
有关详细信息,请参阅"使用镀膜文件"部分。
图21. 梯形光栅可用分为两个区域,光栅(Grate)和环境(Env)。两个区域的折射率可用分别定义。

层数 

这个参数是用来建模梯形形状的层数。有关更多信息,请查看“层的概念”一节。

锯齿光栅参数(Blaze parameters)

锯齿光栅的参数 (“srg_blze_RCWA.dll”) 与梯形光栅的参数(“srg_trapezoid_RCWA.dll”)一致,除了”深度“。
对于锯齿光栅,深度可以由给定的Alpha和Beta参数计算得来,如图22所示。
图22. 锯齿光栅的形状由三个参数定义:Alpha,Beta和填充因子。

阶梯光栅参数(Step parameters)

以下参数用于定义阶梯光栅(“srg_step_RCWA.dll”)。
深度,阶梯数和Alpha (度)。
  • 深度决定了光栅的高度或厚度,如图23所示。
  • 阶梯数定义了每个周期中阶梯形状的数量,如图23所示。实际上,这通常与制造过程有关。请注意,光栅的形状正在"向下"朝+x方向移动,如下图所示。要反转方向,用户应将光栅绕z轴旋转180度。
图23.  参数 “阶梯数”定义了每个周期中阶梯形状的数量。
  • 参数Alpha定义另一侧的斜角,如下图所示。当从+z旋转到-x时,Alpha的符号是正的。图24显示了 Alpha为正的示例.
图24. 参数 Alpha 定义了另一侧的斜角。
每阶梯层数(Layers per step)
这个参数定义了每个阶梯中的层数,此参数只能在参数 Alpha 不为零的情况下使用。否则就是无效的,因为计算结果不会改变。下图显示了该参数如何影响斜面的采样。
图25.  参数Lays of 1 stp定义了每个阶梯中的层数。
膜层折射率(R)、膜层折射率(I)膜层顶部厚度(µm)膜层侧面厚度(µm)
这四个参数的定义与梯形光栅一致。参照梯形光栅中的解释。
图26. 阶梯光栅膜层的顶部和侧面的厚度。
光栅折射率(R)、光栅折射率(I)、环境折射率(R)、环境折射率(I)
这四个参数的定义与梯形光栅一致。参照梯形光栅中的解释。
图21. 阶梯型光栅可用分为两个区域,光栅(Grate)和环境(Env)。两个区域的折射率可用分别定义。

网格偏振线栅参数(Grid Wire Polarizer parameters)

以下是网格偏振线栅参数(“srg_GridWirePolarizer_RCWA.dll”)的参数。
这种光栅基本上是二进制光栅。此DLL可用于建模网格线偏振器。
深度 (µm) 和填充因数
  • 深度时光栅的高度。
  • 填充因子是0到1之间的数字,表示栅格区域的宽度与周期的比值。如图28所示。
折射率(R)和折射率(I)
与梯形光栅,锯齿光栅和阶梯光栅类似,网格偏振线栅可以分为四个区域,这两个参数用于定义光栅区域的折射率,如图28所示。
环境区域的折射率不能在DLL中定义,因为它总是与外部区域的数值保持一致。外部区域和基板区域的折射率都在OpticStudio中定义,它们不能在DLL中更改。
图28. 网格偏振线栅可以分为四个区域:外部区域,光栅区域,环境区域和基板区域。光栅形状由深度和填充因子决定。

用户自定义光栅参数(User Defined Grating parameters)

用户自定义光栅(“srg_user_defined_RCWA.dll”)只有一个参数。
文件编号
该参数必须是1-99内的正整数。DLL会从位于\Documents\Zemax\DLL\Diffractive\的名为“user_grating_data_xx.txt”的txt文件内读取光栅数据,其中xx就是”文件编号“参数。
DLL将仅读取用户自定义的光栅文本一次,并将数据保存在内存中。如果文本被修改并且需要重新载入,则将"文件编号"参数设置为负数。确保通过系统中的光栅跟踪至少一条光线以触发重新加载:更新布局图或使用射线跟踪控制运行射线跟踪。更新形状数据后,请记住将"文件编号"参数设置为正值,让DLL不会一直重新加载文本文件以更新光栅数据。
图29. 用户自定义的光栅数据写在文本文件"user_grating_data_xx.txt"中,其中 xx 是正整数,可以通过使用 DLL"srg_user_defined_RCWA.dll"进行读取。
用户自定义光栅的文件格式
光栅形状由多个层定义。每层由背景材料定义,并可选包含其他材料的几个部分。有关层的更多信息,请参阅"层的概念"部分。
用户定义的光栅文本文件包含3个关键字:"层数"、"层"和"节"。当 DLL 读取文件时,它会逐行扫描文本以查找这些关键字。找到关键字后,它会读取下一行上的数据。关键字行和以下行必须遵循下面所述的文件格式。其他部分可以添加任何文本使阅读更加方便。
层数
"层数"关键字下的行应包含一个表示文本中定义的层数的整数。
"层"关键字下的行包括 4 个数字:
  1. 本节中要添加的节数
  2. 层的厚度(微米)
  3. 折射率的实数部分
  4. 折射率的虚数部分。
这里的折射率是"背景材料折射率"。
"节"关键字下的行包括4个数字:
  1. 该节的移位量
  2. 该节的宽度
  3. 折射率的实数部分
  4. 折射率的虚数部分
请注意,移位和宽度都没有单位。它们表示与该光栅周期的比率。折射率是覆盖背景材料折射率的"节折射率"。位移参数定义了相对于单个周期框左边缘的中心位置。如图30的例子中,位移量=0.5,宽度=0.5,它们定义了一个从0.25开始到0.75结束的节。
用户自定义光栅数据的例子
图30展示了一个由用户自定义光栅文件定义的光栅,右侧是数据文件,左侧是光栅示意图。在这个例子中,所有的层都只有一个节,但是每一层可以包含0个或多个节。同时也请注意,同一层中包含两种不同材料时,其中一种需要被定义为”背景材料参数“,另一种则被定为节参数。哪一个作为背景材料取决于用户自身。
图30. 用户自定义光栅的一个例子。移位量相对于单个周期框的左边缘。宽度以位移量所定义的位置为中心。
编辑用户自定义光栅的工具
虽然用户定义的光栅数据可以在文本编辑器(如记事本)中直接编辑,但也可以在可视化工具中进行编辑,如图31所示。用户需要设置一个带有"srg_user_defined_RCWA.dll"DLL的虚拟系统来读取此文本文件。可视化工具还可以读取其他RCWA DLL定义的光栅数据。
当然,在编辑后,数据只能输出为用户自定义光栅数据。
图31. 可视化工具可以读取,编辑保存用户自定义光栅数据。

Ansys Zemax光学设计软件

产品概述

Ansys Zemax是一套综合性的光学设计软件,它提供先进的、且符合工业标准的分析、优化、公差分析功能,能够快速准确的完成光学成像及照明设计。



 
三种不同的版本:Professional,Premium,Enterprise
Zemax有三种不同的版本:Professional是专业版,包含序列光学系统设计、非序列光学系统设计、偏振光线追迹、物理光学分析;Premium是旗舰版,包含专业版的功能,适用于更高级专业用户,增加了ParkLink™、AssemblyLink™、光源模型库、高级光路分析以及闪电追迹等功能;Enterprise是企业版,包含旗舰版的所有功能,增加了star模块。
Zemax现在有订阅版模式,客户可以根据需要按时间进行付费使用。
 
产品用途
Zemax的应用领域及范围
● 显微镜、望远镜、目镜等镜头设计等
● 相机镜头、各种变焦镜头、手机摄像头、夜视系统设计等
● 各种LED二次配光透镜,色度分析及颜色混合优化等
● 车灯、LCD 背光板和LED等照明系统设计优化
● 光管、光纤连接器,有源及无源器件、光纤耦合
● DVD、VCD 激光读写头、干涉仪、全息光学
● LCOS、DLP等各种投影仪及光学引擎设计
● 物理光学BPM计算,偏振光学
● 激光光学系统,扩束镜,F-theta扫描镜,整形镜
● RCWA 微纳光栅设计(微结构、体全息)
● AR、VR光学设计,HUD设计
 
技术性能
软件可以实现的主要功能
● 几何光学设计:成像镜头设计、成像质量分析、温度环境分析、加工公差分析等
● 物理光学设计:激光系统及元件的设计及分析,光学相干衍射特性分析、光纤耦合等
● 照明系统设计:照明系统的设计,光机设计,和3D模型软件动态链接,光源库等
● ZPL语言扩展:自带的编程语言可以实现功能的扩展
● 扩展功能:可以和C语言、C++、python等编程语言进行配合使用
 
新版本相关简介
OpticStudio®  是 Zemax 的旗舰光学设计解决方案。22.2 版改进了光线瞄准向导、增强型光线瞄准算法,以及将光学模型导出到 Ansys Speos 以进行全面集成仿真的新功能。
OpticStudio STAR Module 简化并优化了有限元分析 (FEA) 包和 OpticStudio 之间的工作流程。22.2 版增加了性能分析工具,可逐个表面地分析温度变化和变形对光学系统性能的影响。
OpticsBuilderTM简化了光机封装。22.2 版推出主光线工具改进功能,包括 Rayfootprint Boundary Tools,可帮助 CAD 用户对机械组件-光线路径交互做出更清晰的决策,以及新的 OpticsBuilder 课程:如何借助 OpticsBuilder 插件将 Zemax OpticStudio 提供的转换工作流程应用到 CAD 环境。


路过

雷人

握手

鲜花

鸡蛋

最新评论

联系客服 关注微信 访问手机版 返回顶部