- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
MATLAB-CST联合仿真之三:结构参数优化
而按照理论设计建立好天线模型之后,一般情况下并不能立马达到最优性能,我们还需要进一步优化其中的一些结构参数,因此仿真模型的结构参数优化是一项重要且不可避免的工作。
CST自带有参数优化工具,可以进行参数扫描、也可以利用各种数值优化算法对其多个参数进行优化,目标函数的设置也比较灵活,如图1所示。
图1 CST中参数优化工具
在结构优化设计的最后阶段,我们一般都会采用全波仿真来验证结构的有效性。对于全波计算来说,CST的计算性能通常比我们自己编写的普通FDTD算法要快且准确很多,在仿真微波器件时,利用CST来计算诸如反射系数、耦合系数、方向图、增益、极化等参数时非常便捷。借助MATLAB控制CST的手段,我们就可以将CST的很多功能当作一个函数来使用了。在优化设计中,我们常常会遇到多种结构参数的物理实现上存在相互约束的情况,需要有灵活的初始化机制来对优化变量的取值做出预选,比如在优化过程中某个参数必须一直小于或大于另一个参数,也可能需要某个参数在一些不连续的变化区间取值,也可能某个参数和另外多个参数存在某种非解析的函数关系等等,那么单纯采用CST自带的优化工具将略显不足,导致我们不得不将优化过程分拆成很多步骤。
所以利用MATLAB灵活的编程方式,并通过其控制CST全波仿真来优化结构参数,是本节主要解决的问题。
本节内容旨在提供一种结构参数优化设计的编程思路,给出的示例程序只实现了一个简单的参数扫描功能,通过扫描不同的结构参数得到器件对应的反射系数,最后根据自己定义的目标函数选出一组反射系数最优的结构参数,从而完成优化的功能。
图2 微带—基片集成波导过渡结构优化设计演示(gif)
如图2所示,演示的就是在结构参数扫描过程中,微带—基片集成波导过渡结构的变化情况,每一次改变结构参数之后都会进行一次全波仿真得到其S11参数,然后将其代入预设的目标函数中计算,通过函数值的大小来判断其满足目标要求的程度,最后从若干组目标函数值中选出最优结果对应的结构参数,再更新到模型中仿真得到优化后的S11参数。本示例中,我们的优化目标是使该结构的S11参数在8~12GHz的频带范围内小于-20dB,最终从一系列参数中选出了最优的一组,如图3所示。大家会发现,在8~8.2GHz的频段内,S11参数没有满足设计要求,那么此时可以在优化后的结构参数附近进行微调,假如还是不能满足,就只能放大搜索范围寻求更优的结果,想要自动完成此过程,可以将参数扫描的过程修改为数值迭代优化的过程(采用遗传算法、粒子群算法生成结构参数等)。
图3 优化后的S11参数
此示例程序中包含一个小技巧:很多人在参考官方文件导出S11参数的幅度值时,会用到以下命令:result =invoke(mws, 'Result1D', 'a1(1)1(1)');大多数人看到这行代码都会有点懵,这个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个时,大家会采用什么样的过程来预先确定各参数的取值范围和步进,和什么样的数值优化方式来优化结构参数呢?
MATLAB—CST联合仿真由 国防科大 刘燚原创,共六小节。
作者简介:刘燚,
国防科技大学电子科学学院电子科学系电磁调控技术教研室讲师,主要从事微波毫米波技术、天线理论与设计等方向的教学和科研。
邮箱:yi_liu@nudt.edu.cn
适用人群:想节约时间做点更有意义事情的天线设计人员软件操作:能读懂MATLAB代码,在CST中独立仿真过微波器件
软件版本:CST 2018,MATLAB2016b
内容安排:
第一节:MATLAB—CST联合仿真之入门
第二节:MATLAB—CST联合仿真之建模
第三节:MATLAB—CST联合仿真之结构参数优化
第四节:MATLAB—CST联合仿真之方向图分析与综合
第五节:MATLAB—CST联合仿真之共形天线建模与端口设置
学习方法:最好边运行代码边看文字