德阳建设网站的公司,域名查询官网入口,网站底部的备案号,有专业做网站的学校吗附件下载
联系工作人员获取附件 本文提出并演示了一种以二维光栅为外耦合器的出瞳扩展器#xff08;EPE#xff09;系统的仿真方法#xff0c;并给出了优化和公差分析的实例。
在此工作流程中#xff0c;我们使用 Lumerical 构建光栅模型#xff0c;并使用 RCWA 求解器模… 附件下载
联系工作人员获取附件 本文提出并演示了一种以二维光栅为外耦合器的出瞳扩展器EPE系统的仿真方法并给出了优化和公差分析的实例。
在此工作流程中我们使用 Lumerical 构建光栅模型并使用 RCWA 求解器模拟其响应。完整的EPE系统内置于OpticStudio中并动态链接到Lumerical以集成精确的光栅模型。外耦合器OC是一种具有复杂结构的二维光栅其功能在局部进行了优化。最后利用optiSLang通过修改光栅模型对系统级优化进行整体控制实现整个EPE系统所需的光学性能。 概述 设计具有EPE的AR系统可以增加眼盒的尺寸这对系统级的优化来说是一个挑战因为它需要大量的参数。一种解决方案是使用多个一维光栅来模拟瞳孔有关详细信息请参阅《Ansys Lumerical | 采用一维光栅的出瞳扩展器的优化》。在本文中波导由Lumerical设计的两个光栅组成。内耦合器IC是一维斜光栅外耦合器OC是由平行四边形柱组成的二维光栅。这些光栅通过动态链路在OpticStudio光学系统中使用。2D OC光栅被分成几个部分其中的光栅参数部分可以分别进行调整。
然后optiSLang 通过 Python 节点处理优化。optiSLang 的使用带来了很大的优势例如能够在每个优化周期内执行预处理和后处理例如使用瞳孔函数对结果进行卷积。此外可以通过在 python 代码中定义函数来控制参数而不是直接使用不同区域中的所有单个光栅特性从而减少变量总数从而缩短优化时间。该过程由 Sensitivity 模块启动以便系统在运行优化时可以识别影响最大的参数。在文章中《Ansys Lumerical | 采用一维光栅的出瞳扩展器的优化》 可以学习如何优化一维光栅的最基本特性高度、占空比和倾斜角度。在文章《Ansys Lumerical带 1D-2D 光栅的出瞳扩展器》中介绍了OpticStudio中2D光栅的设计但由于仅在OpticStudio中执行因此优化受到限制。在这项工作中我们演示了如何使用 optiSlang 通过使用 7 个不同的变量来局部控制平行四边形柱子的形状来执行 2D 光栅的复杂优化。
本文分为 4 个主要步骤如下所示
第 1 步使用 Lumerical 设置光学系统
在本节中我们提出了将被优化的光学系统。我们可以在文章《Ansys Lumerical带 1D-2D 光栅的出瞳扩展器》中找到同一类型的系统。请注意在最初的设计中能量不会分布在整个眼盒中因为大部分光在与折叠光栅和外耦合器进行几次交互后被外耦合。
第 2 步在 optiSLang 中设置优化
本文的目的是演示如何使用 optiSlang 来控制使用 Zemax 构建的光学系统的优化。本节介绍将用于优化的参数以及用作优化目标的指标。
第 3 步查看优化结果
优化已经设置结果可用。在本节中我们将提供有关 optiSlang 文件结构的信息并解释如何可视化来自多次优化运行的结果。
第 4 步使用所需设计更新系统
最后一部分是分步指南用于从不同的运行中选择特定设计并将相应的参数推送到光学系统。 运行和结果
第 1 步使用 Zemax 和 Lumerical 设置光学系统 在Zemax OpticStudio中打开文件EPE_2D_out-coupler.zprj查看系统设置。
IC是一个倾斜的光栅被认为已经过优化。该系统的核心是OC它是一种二维光栅由以六边形周期结构排列的平行四边形柱组成。
在OpticStudio内置的波导系统中准直光束入射到IC光栅上并通过波导传播到OC。二维光栅的六边形周期结构允许光束传播并分布到波导中的大区域如下图所示。通过这种方式光线通过OC传播并在多个位置被提取到眼盒有效地模拟了瞳孔。 探测器设置为直接在超频光栅的输出端捕获光线。优化的目标是增强朝向眼睛的辐照度图输出的均匀性同时最大限度地提高总功率。
为了准备优化OC光栅被分成几个区域在这些区域中光栅特性将独立优化。 第 2 步在 optiSLang 中设置优化 在optiSLang中打开文件[[EPE_2D_out-coupler.opf]]以检查优化设置。 双击 Python 图标“EPE_2D_for_OptiSlang.py”以可视化代码。
这种优化不会只调整高度和占空比等最基本的参数而是会使用2D光栅提供的七个参数作为自变量这些参数将用作变量因此可以优化柱子本身的形状如下图所示。 为了进行优化超频光栅被划分为几个区域在这些区域内光栅特性将独立优化。不是在每个区域单独设置所有这些参数而是通过定义如下的参数函数来控制跨 OC 多个区域的光栅参数 V代表这些变量dC,dR,dL,θC,θR,θL,h中的任意一个。n代表1,2,3,4中的任意一个数字对应于 4 个角的部分。由这个方程可知每个部分的 7 个光栅参数可以通过 4 个角的参数和wn和非线性功率p来进行一些加权来控制。请注意对称性也被用于减少系统的大小和变量的数量。
在随附的文件夹中准备了一个python文件EPE_2D_for_OptiSlang.py用于将optiSLang链接到OpticStudio。有关如何设置此类文件的更多详细信息请参阅文章《Ansys Lumerical | 采用一维光栅的出瞳扩展器的优化》的附录。
光栅参数按照预定义的优化算法例如进化算法通过optiSlang进行变化。不同的参数值被设置到python代码中并将其向下传输到OpticStudio中的每个光栅部分。在这个过程中Python代码在OpticStudio中将这些变量转换为确切的参数。只有当我们使用optiSLang而不是OpticStudio中的内置优化器来优化系统时才能使用Python中定义的函数进行这种预数据处理。通过这种方式optiSLang可以基于一些在OpticStudio UI中没有直接公开的虚拟或高级变量来优化系统。
设置好参数后代码的其余部分包括调用OpticStudio来追踪光线并从探测器收集结果。使用 optiSLang 优化系统的另一个好处是后数据处理。在这个优化过程中我们不直接优化眼盒上的辐照度分布。取而代之的是我们首先使用瞳孔函数对辐照度分布进行卷积然后根据这个卷积结果设置优化目标。在此示例中优化目标是对比度、总功率和均匀性定义如下 Python 代码的最后一部分是绘制眼框处的辐照度结果以及其卷积结果然后导出图片。这对于用户直接在optiSLang后处理中检查每个优化系统的辐照度很有用。 第 3 步查看优化结果 双击后处理 1 图标以可视化优化结果。
优化开始时首先执行灵敏度分析以确定最重要的参数。使用此输入进化算法运行并生成一系列结果。这些结果可以直接在帕累托图中的optiSLang中可视化。
下图中红色标记的设计称为帕累托前。帕累托前沿说明了多个目标之间的权衡其中没有一个设计在性能方面主导另一个目标。这意味着所有这些设计都显示了多个标准例如均匀性与总功率的不同平衡。我们收集了 3 个结果并在下面显示它们。对于每个设计点对应一对图分别显示眼框内的对比度和均匀性。 第 4 步使用所需设计更新系统
1.将“敏感度”块复制/粘贴到页面中然后双击块标题“AMOP 1”进行编辑。 a.在“适配”选项卡中选中“显示高级设置”选项然后选中“仅使用启动设计”。 b.在“其他”选项卡中选中“评估设置”菜单中的“再次求解开始设计”选项。 c.在“开始设计”选项卡中选择“从系统导入起始值”选项然后选择在帕累托图上确定的所需设计例如#986。
2.在OpticsStudio中点击编程选项卡中的“交互式扩展”按钮然后运行OptiSlang仿真。
优化已经在附件中完成打开文件时可以可视化优化结果。有时我们可能想选择一个优化的设计并在OpticStudio中进行研究。但是optiSLang 仅将输入参数保存在表格中。我们不保留OpticStudio系统。为了在optiSLang中选择特定的设计并将参数推送到OpticStudio的光学系统中我们可以复制灵敏度模块并将其起点定义为所需的设计。通过禁用动态采样运行该模块将简单地从所选设计中读取参数值并将相应的数据推送到OpticStudio中。然后用户可以手动将新系统保存为其他名称。在optiSLang中获取具有任何设计设计的OpticStudio系统的另一种选择是在python代码中添加一个命令以便在optiSLang中运行优化时直接将系统保存为.zmx文件例如TheSystem.SaveAsdesign_optimized.zmx。请注意第二种方法仅在我们在 optiSLang 中运行优化之前在 Python 中进行更改时才有效。 重要模型设置 由于系统依赖于 Python 代码因此假定已安装 Python 以及脚本中调用的所有其他模块。 确保为所有光栅表面选择了正确版本的动态链接。 在optiSLang中运行任何内容之前确保“交互式扩展”在OpticStudio编程选项卡中处于活动状态非常重要。 在本文中我们演示了optiSlang可用于处理具有许多参数的复杂优化问题但需要注意的是在可能的情况下依靠系统的对称性始终是简化优化的最佳方法。 使用参数更新模型 本例中的光学系统呈现的是具有两个一维光栅的 EPE这些光栅分为几个部分。由用户自定义光栅的形状、性质和位置。这些部分的形状和数量也可以直接在光学系统中定制。 变量和优化目标在设置 optiSLang 时定义并且可以自定义。有关如何在optiSLang中设置优化模型的更多详细信息请参阅文章《Ansys Lumerical | 采用一维光栅的出瞳扩展器的优化》一文的附录。 在本文中变量是使用函数间接定义的。在示例的 Python 代码中它的名称为“linsp”。任何自定义函数也可以由用户使用定义可以简单地在Python代码中更新。 进一步发展模型 在这个演示中我们只考虑中心场即通常入射到波导上的准直光束。为了进行更全面的优化可以添加更多视场以覆盖全视场的均匀性。 同样该系统仅针对单个波长而设计。根据系统设计优化可以包括多个波长。 一些辐照度分布看起来更均匀但会导致更高的对比度。可以通过修改 Python 代码来改进标准。 另一个需要优化的维度是晶格角。在所展示的系统中柱子以六边形结构排列但Lumerical支持不同的排列可以带来更多的可能性。