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 是一种多功能远程访问解决方案,以其高性能流…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...