Ansys Lumerical | 用于增强现实系统的表面浮雕光栅
在本示例中,我们使用 RCWA 求解器设计了一个斜面浮雕光栅 (SRG),它将用于将光线耦合到单色增强现实 (AR) 系统的波导中。光栅的几何形状经过优化,可将正常入射光导入-1 光栅阶次。
然后我们将光栅特性导出为 Lumerical Sub-Wavelength Model (LSWM) JSON 格式,以便在 Speos 的系统级仿真中对 SRG 进行建模(请参阅 "Augmented Reality Optical System”).

概述

SRG 几何图形根据其倾斜角度、填充因子和高度进行参数化,如下所示:

光栅和基板的折射率为1.8。光栅被空气包围。周期固定在 393 nm。
将对光栅进行优化,以将波长为 550 nm 的光传输到 -1 光栅阶次。RCWA 求解器用于SRG的优化和完整的特性描述,具体包含定义仿真参数和运行仿真这两个步骤。
第 1 步:耦合光栅的优化
使用内置的粒子群优化(PSO)实用程序,优化SRG的倾斜角、填充因子和光栅高度,以最大限度地提高在法向入射时 550 nm波长下S偏振的透射率。
第 2 步:完整特性描述和数据导出
光栅优化是使用来自光栅上方的正常入射光进行的。但是,一旦选择了优化的几何结构,就必须针对光线追踪仿真中预期的入射角范围以及前进和后退方向计算完整的光栅特性。然后将结果导出到一个 JSON 文件,该文件可以使用脚本在 Speos 或 Zemax 中使用。
运行和结果
第 1 步:优化 SRG 几何结构
-
打开并运行模拟文件 ar_srg.fsp 。
-
右键单击“grating_orders”结果,然后选择“ 新建可视化工具 >可视化 ”。
-
单击并拖动绘图以放大“Ts_grating”结果(绿线)。

这些结果表明,初始设计将大约56%的正常入射S偏振光引导到-1光栅阶次。现在,我们将使用优化实用程序优化 光栅几何结构以增加此值。
-
在“优化和扫描”窗口中运行优化对象“optimization”。
-
优化完成后,通过右键单击“优化”对象并选择“应用最佳解决方案”来应用最佳 几何图形。
“优化”对象将优化 SRG 的倾斜角度、填充因子和光栅高度,这些被定义为“slanted_grating” 结构组 的参数。传输到 S 偏振的 -1 光栅阶次中的功率用作品质因数 (FOM),如“优化”对象的 FOM 脚本中定义。结果如下所示:

在优化几何结构下,-1光栅阶数的衍射效率约为94.7%。
请注意,这种类型的光栅可以具有此FOM的多个局部最大值[1]。虽然内置的PSO工具是一种方便的快速优化方法,但可以使用更高级的优化方法来充分探索参数空间。有关详细信息,请参阅进一步使用模型部分。
第 2 步:完整特性描述和数据导出
-
传播方向 :两者
-
入射角 :范围
-
最小θ :0
-
最大θ :85
-
θ点 :18
-
最小 phi :0
-
最大 phi :360
-
PHI点 数 :37
-
在同一模拟文件中,为“RCWA”对象设置以下属性:
-
通过单击工具栏中的“运行”按钮来运行 RCWA 模拟。
-
运行脚本 LSWM_JSON_export.lsf 。
在此步骤中,针对前向和后向的指定入射角范围计算优化 SRG的S参数。然后将这些结果导出为适合使用脚本文件导入Speos或Zemax的LSWM JSON格式。
使用参数更新模型
光栅几何形状
SRG 几何体被定义为结构组 ,这使得创建用户指定的几何体参数(如倾斜角度和填充因子)变得更加容易。用户可以通过更改结构组的设置脚本来修改此 SRG 几何形状,例如在光栅上添加欠蚀刻或过度蚀刻。或者,可以通过添加新的结构组并编写自定义安装脚本来创建不同的光栅几何体。
优化参数
优化变化的参数及其边界在优化扫描对象中定义。这些可以通过右键单击“优化”对象并选择“编辑”来更改。仿真对象的几乎任何属性都可以用作优化参数,但通常使用用户在结构组或分析组中创建的几何参数。
进一步发展模型
自定义优化品质因数
在本例中,SRG针对单一波长和入射角进行了优化。但是,也可以使用包含一系列波长或入射角的FOM,例如在整个视场上进行优化。
为此,请指定要包含在 RCWA 求解器对象的 FOM 中的波长和入射角。RCWA 求解器的结果将作为数据集返回,其中波长/频率、θ 和 phi 作为参数。然后,可以在优化扫描对象的 FOM 脚本中处理结果,以计算包含完整范围的 FOM。请注意,FOM 最终必须是优化实用程序的单个实数。
替代优化技术
内置的优化实用程序使用粒子群优化方法,用于该光栅的优化。 但是,可以通过Ansys optiSLang使用更高级的优化技术,也可以通过Lumerical Python API使用Python 库。用户还可以通过脚本使用内置实用程序定义不同的优化方法。参数空间的初始探索也可以使用参数扫描工具执行。
相关出版物
-
Jonathan S. Maikisch 和 Thomas K. Gaylord,“最佳平行面倾斜表面浮雕光栅”,Appl. Opt. 46, 3674-3681 (2007)
相关文章:
Ansys Lumerical | 用于增强现实系统的表面浮雕光栅
在本示例中,我们使用 RCWA 求解器设计了一个斜面浮雕光栅 (SRG),它将用于将光线耦合到单色增强现实 (AR) 系统的波导中。光栅的几何形状经过优化,可将正常入射光导入-1 光栅阶次。 然后我们将光栅特性导出为 Lumerical Sub-Wavelength Model …...
QT day3作业
1.思维导图 2、 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密…...
【Ubuntu】设置永不息屏与安装 dconf-editor
方式一、GUI界面进行设置 No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal打开 Ubuntu 桌面环境的设置菜单。你可以通过点击屏幕右上角的系统菜单,然后选择设置。在设置菜单中,…...
gRPC 的原理 介绍带你从头了解gRPC
gRPC 的原理 什么是gRPC gRPC的官方介绍是:gRPC是一个现代的、高性能、开源的和语言无关的通用 RPC 框架,基于 HTTP2 协议设计,序列化使用PB(Protocol Buffer),PB 是一种语言无关的高性能序列化框架,基于 HTTP2PB 保…...
Apriori算法
Apriori算法由R. Agrawal和R. Srikant于1994年在数据集中寻找布尔关联规则的频繁项集。该算法的名称是Apriori,因为它使用了频繁项集属性的先验知识。我们应用迭代方法或逐层搜索,其中k-频繁项集用于找到k1个项集。 为了提高频繁项集逐层生成的效率&…...
肖sir__linux讲解(2.1)
linux命令 cp 复制命令 a、cp 原文件名称 新文 件名称(不存在的文件) 案例:cp a k 截图: b.cp 原文件名称 原有文 件名称(存在的文件) 案例:cp a b 截图: c、cp 指定路径复制 格式ÿ…...
The ultimate UI kit and design system for Figma 组件库下载
Untitled UI 是世界上最大的 Figma UI 套件和设计系统。可以启动任何项目,为您节省数千小时,并祝您升级为专业设计师。 采用 100% 自动布局 5.0、变量、智能变体和 WCAG 可访问性精心制作。 900全局样式、变量:超级智能的全局颜色、排版和效…...
Selenium——利用input标签上传文件
Selenium利用input标签上传文件 完整流程 打开文件上传页面选择要上传的文件点击上传按钮确认文件上传成功介绍怎么方便的获取对应元素的Xpath或者Css 简单介绍 在使用Selenium进行浏览器自动化测试时,文件上传是一个常见的需求。而 标签就是实现文件上传功能的…...
C++初阶 日期类的实现(下)
目录 一、输入输出(>>,<<)重载的实现 1.1初始版 1.2友元并修改 1.2.1简单介绍下友元 1.2.2修改 1.3>>重载 二、条件判断操作符的实现 2.1操作符的实现 2.2!操作符的实现 2.3>操作符的实现 2.4>,<,<操作符的实现 三、日期-日期的实现 …...
大师学SwiftUI第16章 - UIKit框架集成
其它相关内容请见虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记 SwiftUI是一套新框架,因此并没有包含我们构建专业应用所需的所有工具。这意味着我们会需要求助于UIKit(移动设备)和AppKit(Mac电脑)等原…...
7.docker运行redis容器
1.准备redis的配置文件 从上一篇运行MySQL容器我们知道,需要给容器挂载数据卷,来持久化数据和配置,相应的redis也不例外。这里我们以redis6.0.8为例来实际说明下。 1.1 查找redis的配置文件redis.conf 下面这个网址有各种版本的配置文件供…...
unity教程
前言 伴随游戏行业的兴起,unity引擎的使用越来越普遍,本文章主要记录博主本人入门unity的相关记录大部分依赖siki学院进行整理。12 一、认识unity引擎? 1、Unity相关信息: Unity的诞生:https://www.jianshu.com/p/550…...
未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘Link‘
报错 检查对函数"Link"得调用中是否缺失参数或参数数据类型不正确。 未定义与"double"类型的输入参数相对应的函数"Link"。 问题描述 网上搜了搜一般说是toolbox没有下载导致的,相当于调用的包本地没有。 但是我看看了 Robotics…...
为什么Transformer模型中使用Layer Normalization(Layer Norm)而不是Batch Normalization(BN)
❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...
Vite - 配置 - 文件路径别名的配置
为什么要配置别名 别名的配置,主要作用是为了缩短代码中的导入路径。例如有如下的项目目录: project-name| -- src| -- a| --b| --c| --d| --e| -- abc.png| -- index.html| -- main.js如果想在 main.js 文件中使用 abc.png ,则使用的路径是 ࿱…...
phpStorm Xdebug调试 加FireFox浏览器
步骤1: [Xdebug] zend_extension“D:\phpstudy_pro\Extensions\php\php5.4.45nts\ext\php_xdebug.dll” xdebug.collect_params1 xdebug.collect_return1 xdebug.remote_enableOn xdebug.remote_hostlocalhost xdebug.remote_port9001 xdebug.remote_handlerdbgp ;…...
多维时序 | MATLAB实现PSO-BiGRU-Attention粒子群优化双向门控循环单元融合注意力机制的多变量时间序列预测
多维时序 | MATLAB实现PSO-BiGRU-Attention粒子群优化双向门控循环单元融合注意力机制的多变量时间序列预测 目录 多维时序 | MATLAB实现PSO-BiGRU-Attention粒子群优化双向门控循环单元融合注意力机制的多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 …...
linux配置固定ip(两种方法)
首先刚下载的vm,刚创建的虚拟机,肯定是需要配置ip的 其次以前我的每次都是设置自动ip,这样每次登录都会自动获取ip地址,并且每次的ip都不相同。 ~方法: 开机登陆后 1)Cd /etc/sysconfig/network-scripts 2)Vi ifcf…...
什么是缓存雪崩、击穿、穿透?
背景 数据一般是存储于数据库中,数据库中的数据都是存在磁盘上的,磁盘读写的速度相较于内存或者CPU中的寄存器来说是非常慢的了。 如果用户的请求都直接访问数据库的话,请求数量一上来,数据库很容易就崩溃了,所以为了…...
可以通过电脑远程控制安卓设备的软件
有些时候,我们需要用电脑远程控制安卓设备,比如远程维护门店设备、安卓系统的户外广告牌等等。我们来探索和比较几款允许用户通过电脑远程控制安卓设备的软件。 1、Splashtop Business Splashtop 是一种多功能远程访问解决方案,以其高性能流…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...
表单设计器拖拽对象时添加属性
背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...
Vue 实例的数据对象详解
Vue 实例的数据对象详解 在 Vue 中,数据对象是响应式系统的核心,也是组件状态的载体。理解数据对象的原理和使用方式是成为 Vue 专家的关键一步。我将从多个维度深入剖析 Vue 实例的数据对象。 一、数据对象的定义方式 1. Options API 中的定义 在 Options API 中,使用 …...
