Ansys Lumerical | 行波马赫曾德尔调制器的仿真设计与优化

news2024/11/11 8:02:12

说明

本案例将Lumerical和HFSS在行波MZM调制器建模中的功能与optiSLang相结合,提供了强大的优化能力以寻找最佳性能设计。

下载

联系工作人员获取附件

综述

本案例建立在已有的硅波导建模实例(Ansys Lumerical 行波 Mach-Zehnder 调制器仿真分析)的基础上,该示例由反向偏置 pn 结进行相位调制,由 Al 共面传输线驱动。该示例的演示目标是找到具有最佳品质因数的设计,相移、损耗和速度失配等结果与所选输入,掺杂和电极形状等参数的函数关系。分立的器件电学、光学以及RF模型都将被导入到optiSLang当中,并在optiSLang建立元模型,对大量输入进行优化以找到最佳设计。此外,还可以将INTERCONNECT添加到optiSLang中计算误码率。

步骤1:运行多物理仿真获得初始结果

使用 Charge 仿真得到调制区在不同偏压 (-0.4V~4V) 的载流子分布,并导出  monitor_charge 的结果。

不同偏压下电荷密度分布

使用 MODE 计算在上述载流子的分布下,整个波导的损耗、群折射率以及等效折射率等。

使用 HFSS 计算行波电极在 10-100GHz 下的损耗,端口阻抗,等效折射率等。

以上参数将被作为optiSLang的输入参数,用于后续的模型建立和优化当中。更多详细信息可参考Ansys Lumerical 行波 Mach-Zehnder 调制器仿真分析。

步骤2:创建系统响应的元模型

optiSLang优化文件由三个主要模块组成,参数敏感性分析、元模型模块和优化算法模块。

首先,参数敏感性分析与品质因数相关联,在本例中是通过提供CHARGE、MODE和HFSS 文件的仿真脚本和仿真数据的来完成,将仿真数据导入到optiSLang并识别输入和响应即可建立初始的元模型,用于对结果优化和可视化。

其次,将参数敏感性分析应用于系统以建立系统的元模型,元模型优化主要关注三个品质因数(FOM):最小化速度失配、最小化损耗和增大与电压相关的相移(最小化Vpi/Lpi)。这些在Criteria选项中指定:

变参仅仅针对调制器掺杂浓度和掺杂位置(n,p),以及电极形状等 6 个参数:

找到适当数量的样本很重要,器件级仿真运行的次数与“Adaption”选项中指定的相同,增加仿真次数提升优化后模型性能,但同时也增加完成优化所需的时间,可以通过勾选“show advanced setting”来设置采样选项,本例中选择了“Advanced Latin Hypercube Sampling”,包含60个初始样本,在局部CoP(预测系数)和优化标准的重要性之间采用70:30比例。此外,还设置了每次迭代12个样本,至少6次迭代来生成元模型。运行后,每个独立设计的结果将记录在“Result designs”中,元模型就生成了。

后处理结果的模型质量记录在CoP矩阵,基于统计的思想通过一个预测质量的关键指标预测系数(CoP - Coefficient of Prognosis)来评估对实际模型的预测质量。CoP的值越大表明预测得到的模型准确性更高。通常在二维或三维图像基础上,辅以各点的不同颜色配合色块来说明各个参数对模型目标函数的函数值的影响。每个输入参数的总有效性用红色表示,单击这些值中的每一个也会更新3D曲面图,代表输出对指定输入的依赖性。下图是Vpi_Lpi作为n和p掺杂值的函数的例子:

从上述步骤,我们通过参数敏感性分析了解到我们创建的元模型可以准确预测在优化过程中的系统表现,因此可以继续进行后续大量的变参优化步骤,以确定最佳设计。

步骤3:优化和获得最佳设计

通过参数敏感性分析了解设计参数和设计目标的设计行为,并使用结果支持我们的优化算法。这是一个多目标优化,自动运行数千种敏感性和优化设计,可以得到一组最佳设计,称为帕累托前展面(Pareto Frontier)。所有设计条件的品质因数都显示在帕累托图中,可以左键单击并拖动以放大代表最佳设计的帕累托前展面。

在本例中,我们关注获得最佳相移、损耗和速度失配输出,在后处理页面的视图部分拖动“3D Cloud Plot”,可以获得三个品质因数所有设计的概览。最佳设计是所有位于plot边缘的点(即上述帕累托前展面)。为了能够更好地观察这些设计,点击“Select best design(s)”,点击“Invert selection”,然后在图上右键单击并选择“deactivate”:

如前所述,会有几个设计都提示是最佳设计,因为在FOM之间必然会有妥协。根据模型需求或优化优先级的不同,最终的选择可能不同。点击任意一点都会更新对应输入值和结果绘图,在这里我们可以看到对应掺杂浓度、偏移量和电极参数确定值,以及所选最佳设计的对应结果。

此外,本例中还能进一步在参数求解系统中引入INTERCONNECT用以获得误码率(BER),获得的参数可以进一步更新模型并将监测与初始设计相比误码率的降低情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69695.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

知乎zse-96算法-jsrpc方案

文章目录 1.git 下载exe文件2. 控制台执行JsEnv.js,建立连接3.抠取 加密js代码4. python 调用rpc临时有知乎需求,就研究了一下知乎搜索接口,发现主要是zse-96算法难,补环境又有很多坑,又想快速解决问题,就有了用jsrpc来解决的想法,后面有时间了就研究一下再发一个补环境…

JavaScript中的sessionStorage

JavaScript中的sessionStorage 该文章需要联系这篇文章学习:JavaScript中的localStorage 案例池子: JS实现鼠标悬停变色 JavaScript中的排他算法实现按钮单选 JavaScript中的localStorage JavaScript中的sessionStorage JavaScript实现网页关灯效果…

[C++]类和对象【上篇】

​ 🥁作者: 华丞臧 📕​​​​专栏:【C】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉LeetCode 文章目录1.面向…

归并排序 (递归+非递归)

文章目录1. 归并排序 递归1.基本思想2. 使用两个函数完成归并3. 递归结束条件4.时间复杂度与空间复杂度计算1. 时间复杂度2. 空间复杂度5. 代码2. 归并排序 非递归1. 思想2. 越界问题1. .end1 beign2 end2 越界方式 1方式 2整体拷贝与拷贝一部分,归并一部分的区别2.…

数据库与身份认证:数据库的基本概念

什么是数据库 数据库(database)是用来组织、存储和管理数据的仓库。 当今世界是一个充满着数据的互联网世界,充斥着大量的数据。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据&…

【知识图谱】(task1)知识图谱概论

note 知识图谱技术要素 文章目录note一、语言与知识二、知识图谱的起源三、知识图谱的价值四、知识图谱的技术内涵4.1 知识图谱是交叉领域4.2 技术内涵(1)基于图的表示学习(2)图数据存储和查询(3)知识图谱…

企业庆典年会活动如何邀约媒体记者到现场报道

媒体邀约是指企业或者是公司根据其发生的公关事件,比如展览展会、新品上市以及合作签约等事宜,向特定的媒体发出邀请,如果邀请得到媒体的通过之后,那么相应的媒体就会到公司的现场进行实时采访和报道,之后还会在国内的…

node.js的四种内置模块

目录 1、node.js内置模块的概念 2、fs内置模块 3、path内置模块 4、url内置模块 5、http内置模块 1、node.js内置模块的概念 node.js的内置模块也叫作node.js的核心模块,它是node.js自带的模块,在下载了node.js后就会有的,并不需要从外…

猿如意中的【Code:: Blocks】工具详情介绍

文章目录一、工具名称二、下载安装渠道2.1 什么是猿如意?2.2 如何下载猿如意?2.3 如何在猿如意中下载开发工具Code:: Blocks?三、工具介绍四、Code::Blocks 功能介绍4.1、VC 6.04.2、Code::Blocks4.3、Dev-C4.4 Visual Studio4.5、C-Free五、…

BF706和BF609的Flash Program新技巧,可以使用第三方插件

作者的话 CCES来做Flash Program,需要CMD,然后敲一大堆的命令,刚开始搞的时候,会觉得很麻烦,那么是否有更简单的办法呢?在Blackfin处理器里,我找到了一个第三方插件,用这个插件就可…

Uniapp 如何用离线打包工程制作自定义调试基座

如何用离线打包工程制作自定义调试基座 Tips⚠️: 确保版本一致,请确保从HBuilderX导出的打包资源的HBuilderX的版本号和App离线SDK发布的版本号是一致的,如下2张图里的版本号: 打开原生iOS工程 1、在打包原生工程里找到 control.xml文件&a…

单向链表理解——java

概述 单线链表:单向链表又叫单链表,是链表的一种。由节点构成,head指针指向第一个称为表头节点,而终止指向最后一个null指针 特点 链表连接的方向都是单向的链表的访问要通过顺序从头部开始链表是使用指针进行构造的列表是由一个一个节点组…

Python读取Excel文件

最近需要用到Python来操作excel表,读取表格内容到数据库。所以就搜索了相关资料。 查找了一下,可以操作excel表的几个库有以下几个: openpyxl 这个是推荐使用的库,可以读写Excel 2010以上格式,以.xlsx结尾的文件。 x…

SpringBoot+Vue项目校园二手交易平台

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

HCI opcode

HCI控制命令由两个字节的OpCode定义,每个OpCode由一个字节的OGF(OpCode Group Field)和一个字节的OCF(OpCode Command Field)组成。参考: HCI Command Packet Command的数据包格式如下图: 其中…

海量数据下查询慢、数据不一致难题如何解?看某游戏公司的技术实践

导语: 复杂架构的危害是隐性且持续增长的,尤其在海量数据处理的业务场景下,导致系统吞吐量增长、各功能模块相互影响,且数据重复、维护困难。某游戏公司就面临这样的困境,在寻求解决方案的过程中,携手Ocean…

通用的异常处理程序机制与处理返回值方案

通用的异常处理程序机制与返回值方案文章目录通用的异常处理程序机制与返回值方案现状示例方案原理步骤总结附完整代码现状相信很多人都为处理错误返回值代码都烦恼过。例如:一个程序嵌套了10个方法,嵌套最深的方法一旦有个业务错误代码,那么…

如何通过文档改善用户体验和客户关系

文档对你的员工和客户来说都是一个宝贵的信息来源。你策划和分享的每一个教程、"如何做 "的文章和指南都可以改善用户体验和客户关系。 在这个数字时代,每个人都希望立即得到答案,很少或没有人际互动,一个坚实的知识库软件使你领先…

TIOBE12月编程语言榜发布:C++首超Java!

本月TIOBE更新了榜单,其中变化最大的莫过于C以0.12%微弱优势,总市场份额首次超过了Java。 在今年6月份的时候,TIOBE的CEOPaul Jansen曾做出过预测,C将会是下一个超越Java的语言。果然在最新版本的C 20的推动下,超越了…

模板方法模式(python)

一、模式定义 1.模板方法模式(Template Method Pattern):定义一个操作中算法的框架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2.模板方法是一种类行为型模式。 二、模式结构 …