- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
CST进阶之路:第三节 MATLAB—CST联合仿真之结构参数优化
太赫兹雷达技术空间应用与研究进展
微波仿真论坛 原创投稿MATLAB—CST联合仿真由 国防科大 刘燚 原创,并首发微波仿真论坛(公众号)。共六小节,分六天连载。每节均附有示例代码 + 课后讨论 + 配套微信群深入交流 + 论坛赞助礼品奖励。如需转载请联系 刘燚 博士获取授权。
作者简介
作者:刘燚,国防科技大学电子科学学院电子科学系电磁调控技术教研室讲师,主要从事微波毫米波技术、天线理论与设计等方向的教学和科研。
邮箱:yi_liu@nudt.edu.cn
作者注:"欢迎同学们来信讨论相关问题,也欢迎来我室学习深造。"
内容安排及教程代码获取
适用人群:想节约时间做点更有意义事情的天线设计人员
阅读时间:10分钟
实操时间:30分钟
软件操作:能读懂MATLAB代码,在CST中独立仿真过微波器件
专业基础:电磁波与天线,阵列天线理论
软件版本:CST 2018,MATLAB2016b
内容安排:
第一节:MATLAB—CST联合仿真之入门(点击查看)
第二节:MATLAB—CST联合仿真之建模(点击查看)
第三节:MATLAB—CST联合仿真之结构参数优化(本节)
第四节:MATLAB—CST联合仿真之方向图分析与综合
第五节:MATLAB—CST联合仿真之共形天线建模与端口设置
第六节:MATLAB—CST联合仿真之有奖自测
学习方法:最好边运行代码边看文字
教程获取:关注公众号“微波仿真论坛”
示例代码:请在公众号后台回复“CST003”获取下载链接
加群方式:加Amy_wang微信: 18010874378
(加群请备注:MATLAB-CST)
论坛交流:http://bbs.rfeda.cn/read-htm-tid-112944.html
正文 第二节
CST进阶之路:第三节
MATLAB—CST联合仿真之结构参数优化
第二节中我们学习了怎么用MATLAB控制CST进行复杂天线的建模,主要是为了解决常见复杂天线模型的绘制问题。
而按照理论设计建立好天线模型之后,一般情况下并不能立马达到最优性能,我们还需要进一步优化其中的一些结构参数,因此仿真模型的结构参数优化是一项重要且不可避免的工作。
CST自带有参数优化工具,可以进行参数扫描、也可以利用各种数值优化算法对其多个参数进行优化,目标函数的设置也比较灵活,如图1所示。
图1 CST中参数优化工具
在结构优化设计的最后阶段,我们一般都会采用全波仿真来验证结构的有效性。对于全波计算来说,CST的计算性能通常比我们自己编写的普通FDTD算法要快且准确很多,在仿真微波器件时,利用CST来计算诸如反射系数、耦合系数、方向图、增益、极化等参数时非常便捷。
借助MATLAB控制CST的手段,我们就可以将CST的很多功能当作一个函数来使用了。在优化设计中,我们常常会遇到多种结构参数的物理实现上存在相互约束的情况,需要有灵活的初始化机制来对优化变量的取值做出预选,比如在优化过程中某个参数必须一直小于或大于另一个参数,也可能需要某个参数在一些不连续的变化区间取值,也可能某个参数和另外多个参数存在某种非解析的函数关系等等,那么单纯采用CST自带的优化工具将略显不足,导致我们不得不将优化过程分拆成很多步骤。所以利用MATLAB灵活的编程方式,并通过其控制CST全波仿真来优化结构参数,是本节主要解决的问题。
本节内容旨在提供一种结构参数优化设计的编程思路,给出的示例程序只实现了一个简单的参数扫描功能,通过扫描不同的结构参数得到器件对应的反射系数,最后根据自己定义的目标函数选出一组反射系数最优的结构参数,从而完成优化的功能。
图2 微带—基片集成波导过渡结构优化设计演示(gif)
如图2所示,演示的就是在结构参数扫描过程中,微带—基片集成波导过渡结构的变化情况,每一次改变结构参数之后都会进行一次全波仿真得到其S11参数,然后将其代入预设的目标函数中计算,通过函数值的大小来判断其满足目标要求的程度,最后从若干组目标函数值中选出最优结果对应的结构参数,再更新到模型中仿真得到优化后的S11参数。
本示例中,我们的优化目标是使该结构的S11参数在812GHz的频带范围内小于-20dB,最终从一系列参数中选出了最优的一组,如图3所示。大家会发现,在88.2GHz的频段内,S11参数没有满足设计要求,那么此时可以在优化后的结构参数附近进行微调,假如还是不能满足,就只能放大搜索范围寻求更优的结果,想要自动完成此过程,可以将参数扫描的过程修改为数值迭代优化的过程(采用遗传算法、粒子群算法生成结构参数等)。
图3 优化后的S11参数
此示例程序中包含一个小技巧:
很多人在参考官方文件导出S11参数的幅度值时,会用到以下命令:
大多数人看到这行代码都会有点懵,这个a1(1)1(1)是哪里来的?很难有人想到S11的幅度要这么来读取!
那要是读取其他数据呢,它们有没有如此简洁的名字可供使用,不得而知。其实,我用了一个非常简单的方法就可以方便读取到S11的幅度,那就是用代码复现手动操作的过程来实现。想象一下,我们在操作CST时,点击结果树中的S11就会出现一条曲线,还可以修改显示单位,然后还可以导出成txt文件。
因此,我们需要做的就是利用MATLAB控制CST去完成点击的操作(见本节示例代码,里面有详细的命令)、导出曲线,这样的话就方便MATLAB再从这个文件读取数据来使用了。用代码复现操作的思想非常重要,当你想获得各种各样的参数时,只要你能在结果树里面找到,理论上就可以导出。这样就避免了我们去查找CST内部定义的奇怪名字的麻烦,我们也只需要想象一下操作并用代码复现就可很简单的实现了。
学了这节课程最大的用处我觉得可以从文献[1]看出,这篇文献里面有段话是这样的:
The desired goal for thisoptimization problem is expanding the bandwidth of the antenna. Therefore, by linking AE-LGMS-FOA source codesto an electromagnetic simulator, the performance of the antenna can beoptimized in a wide range of frequencies. For these kinds of iterativeproblems, finite-difference time-domain(FDTD)-based simulators are more attractive than method-of-moments (MOM)-basedones. This is due to the fact that FDTD-based simulators provide fast andwideband simulations.
我想大家看了这段话后,大家应该很好奇这位作者是用什么编程软件控制什么样的FDTD全波仿真软件,不过我们学习本节内容之后就可以MATLAB-CST联合仿真的方法来实现了,同学们可以自己加入数值优化算法来试一下结构参数优化功能。
参考文献:
[1] Darvish A, Ebrahimzadeh A. Improved Fruit-Fly OptimizationAlgorithm and its Applications in Antenna Arrays Synthesis[J]. IEEETransactions on Antennas & Propagation, 2018, 66(4):1756-1766.
课后讨论(加相关微信群)
课后讨论(移步 论坛 或 交流群):
当需要优化结构参数超过10个时,大家会采用什么样的过程来预先确定各参数的取值范围和步进,和什么样的数值优化方式来优化结构参数呢?
致谢
本节校对与代码测试人员:
黄志洵,国防科技大学电子科学学院硕士研究生在读。
作者简介:
刘燚,国防科技大学电子科学学院电子科学系电磁调控技术教研室讲师,主要从事微波毫米波技术、天线理论与设计等方向的教学和科研。
邮箱:yi_liu@nudt.edu.cn
获取代码及深入交流
教程获取:关注公众号“微波仿真论坛”
示例代码:请在公众号后台回复“CST003”获取下载链接
配套微信群:加编辑Amy_wang微信: 18010874378 (请备注:MATLAB-CST)
论坛留言:http://bbs.rfeda.cn/read-htm-tid-112944.html
微波仿真论坛 公众号(bbs.rfeda.cn)
2006-2018专注微波12年,现13万微波会员
长按二维码关注公众号
会员注册 | 资料下载 | 会议信息 | 微波培训
加编辑Amy_wang微信 (备注:MATLAB-CST)
至 论坛留言 交流 点击阅读原文
嘻嘻嘻嘻嘻嘻嘻嘻寻寻寻
为什么要将原来的模型的三维sat文件导出?原.m文件我运行结束之后点击CST里面的保存,CST就卡死了?但是我之前也有做过类似的.m建模的,却没有出现卡死的情况,还有一个问题就是.m文件里面的单位以及背景条件,频率范围,我新建CST文件再导入sat文件之后,这些都没有了?这是为什么,matlab程序可以解决吗?
请详细看第一节里面的描述
我使用的是CST2017,第一节的东西我也跑了,同样的结果,在使用你的程序 MATLAB连接CST建立了一个贴片天线模型并仿真结束之后,我关闭了patchantenna这个项目,之后再次打开这个项目时,frequency全变为0,units变成了标准单位 m Hz s K ,background变成了PEC,boundries变成了的 Et=0 ,这样的情况实在无法理解,希望你能给我一点指导
借同学电脑使用CST2018跑也是一样。
请看详细完整的看第一节内容
看一看。学一学
讲的太好了
是啊 怎么 看图片啊
加群方式:加Amy_wang微信: 18010874378
(加群请备注:MATLAB-CST)
申明:网友回复良莠不齐,仅供参考。如需专业解答,请学习易迪拓培训专家讲授的CST视频培训教程。