摘要
电磁从业人员按照分工大致可以分为两类:一类从事CEM(计算电磁学),一类从事CAE(计算机辅助设计)。CEM工程师日常的工作内容主要就是“码代码”,目的在于设计“速度更快,精度更高,内存占用更小”的仿真工具,而CAE工程师的日常工作内容主要就是“跑仿真”,目的是利用各种仿真工具,完成诸如天线/滤波器/功分器等元器件的设计。他们的分工与“铸剑师”和“剑客”的关系是一样一样的。
该篇为“缘起收敛性”系列的第二篇文章,也是"电磁CAEer"基础理论部分体系性的一篇文章,旨在为电磁CAE工程师提供一份CEM几种重要算法以及对应的CAE仿真工具的使用说明,并使用最为通俗易懂的语言对这些算法的底层原理进行说明,以期让大家对CEM的底层理论获得最为直观的认知。
正文
1.说在前面
这篇文章是要正式介绍“计算电磁学”的发展历程/现状以及相关底层原理。主要内容分为两个部分:
希望通过这两个部分的讲解来回答大多数电磁CAEer在平时软件选择和使用中碰到的两个主要的疑问:1)选什么软件好;2)这个软件好在哪。
2.历史与现状
20世纪60年代以来,随着计算电磁学的发展,针对电磁问题的数值求解方法层出不穷,其中有三种方法发展最为成熟,形成“鼎立”之势:1)时域有限差分法Finite-Difference Time-Domain method(FDTD),该方法由K.S.Yee在20世纪60年代首先提出,核心思想是采用差分直接离散时域麦克斯韦方程;2)有限元法Finite-Element-Method(FEM),P.P.Silvester在20世纪60年代末首先使用该方法用于波导本征值问题的求解;3)矩量法Method of MoMents(MoM),K.K.Mei于 20世纪60年代初首先将其应用于二维散射问题的求解,后在此基础之上发展而来的多层快速多级子算法(MLFMM)更是极大的提高了MoM的计算效率。有关“计算电磁学”的发展历程和现状,大家有兴趣可以阅读文献《电磁计算方法研究进展综述》,我在此就不赘述了。工程上,三种算法各自形成了电磁CAE领域成熟的商业软件,其中要以达索公司的CST(有限积分法),ANSYS公司的HFSS(有限元)以及Altair公司的FEKO(矩量法)应用最为广泛。
电磁计算算法大致可以按照“时域/频域”和“微分/积分”两个标准,通过两两组合划分为四类。三大算法中,按照第一个标准,FDTD为时域算法,而FEM和MoM同为频域算法;按照第二个标准,FDTD和FEM同为微分方法,而MoM为积分方法。
底层原理的差异也使得三种方法的适用环境明显不同,了解了不同算法的优势,才能在软件选择时更加得心应手。四种主要算法在计算速度,计算精度,内存消耗,收敛性以及计算模型的电尺寸5个主要性能对比情况如图所示(数值只代表相对差异):
达索,ANSYS,Altair三大巨头通过数十年来的行业整合,最终分别将电磁CAE界的三大主流软件CST,HFSS以及FEKO收入门下,而CST,HFSS以及FEKO通过这么多年的发展,也早已不在局限于各自的核心算法发展,各自向对方的腹地拓展,均发展成为“时域与频域兼顾,积分与微分并举”的综合软件。但是,通过对实际仿真软件的使用情况来看,每种软件在其核心算法上的优势还是无法撼动的。
3.底层原理
本文四大算法底层原理的写作支撑主要有三个:1)计算电磁学圣殿UIUC电磁学实验室和计算电磁学中心主任金建铭教授的著作《计算电磁学(第二版)》;2)作者研究生期间的《计算电磁学》笔记,授课教师为计算电磁学大佬/电子科大副校长胡俊教授;3)各类算法的相关研究文献。
本文将以专业的学术著作为支撑,用最通俗易懂的方式介绍FDTD,FEM,MoM以及MLFMM四种算法的底层原理,揭示基于不同算法的商业软件在处理不同电磁问题时性能差异的本质来源。
3.1时域有限差分法(FDTD)
FDTD是最古老也是最简单的一种数值方法,其离散的对象直接是时域微分形式的Maxwell方程组:
FDTD所使用离散形式也是最为简单的立方体网格。
如上一篇文章所述,方程中包含了对电场和磁场分布函数的时间微分运算以及空间微分运算,以电场为例,其中表示对时间的微分运算,和表示对空间的微分运算,其中和最终均可以拆解为,,的组合,这四种微分运算可以用这种通用的表达式进行描述,其可近似为一种简单差分形式:
利用这个近似运算,可以将电场对时间的微分运算转换成前一时刻的电场与后一时刻电场之间的运算关系。同样地电场E对空间微分运算转换成前一位置处的电场与后一位置处的电场之间的运算关系 ,因而只要给定了电磁场的初始值和(初始条件)以及边界值和(边界条件),即可以基于差分关系式,通过不断的循环迭代,求解出任意时刻,任意位置处的电磁场分布和和。其优缺点十分明显:
3.2有限元(FEM)
有限元法基于频域Maxwell方程,其求解的对象是时谐电磁场,即电磁场在时间维度上是周期性分布,循环往复,无始无终,时间变量自然也就失去了意义,电磁场只是空间变量的分布函数:
其采用了拟合效果更好的四面体网格对求解区域体进行剖分。
求解空间离散后,紧接着是要空间中待求解的电磁场分布进行离散,其核心思想在于寻找到一组展开未知解的基函数:
其中为第j条棱边的切向分量,为待求的切向分量,而为相应棱边上对应的基函数,一旦将所有未知量求解出来,则整个空间中电场分布就完成了求解。这类似于傅里叶级数中使用三角函数展开任意形式的周期函数,所要做的就是求解每个基函数前面系数,然而对于形状不规则的电磁问题,这种基函数的寻找是及其困难甚至不可能的,有限元法的做法是将目标离散成小的单元(三角形,四面体),然后使用非常简单的线性函数或二次函数来近似这个单元上的未知解,这些简单的基函数是一种子域基函数,其与上文中傅里叶级数展开中的全局基函数有着很大的不同。利用有限元将目标离散,并依据电场E在空间Ω满足的波动方程和在边界Γ上满足的边界条件条件建立子域基函数的系数所满足的方程组:
该方程未知量为子域基函数的系数,完成所有未知量的求解,整个空间的电场分布既可以表示为子域函数的叠加。
3.3快速多级子(MLFMM)
矩量法的出现将未知量的求解区域从“场分布空间”聚焦到目标体上,虽然极大减少了未知量的数目,但是由于“等效源”之间的互耦关系,待求解的散射矩阵为稠密矩阵,求解过程需要消耗大量的存储内存和求解时间,对于电大尺寸目标的计算还是不够友好。此时,快速多级子算法横空出世,其核心思想为:1)根据电流元在空间的位置进行分组;2)基于“矢量加法原理”将组内不同电流元发出的辐射场变成一个共同中心辐射的场。通过这一过程大幅减少了未知量的互耦所带来的巨大计算量。
我们现在利用“快递邮寄”来对这个过程进行解释,假定:国内的每个城市都是一个“电流元”,每个城市之间包裹一次往来就是“电流元”之间互耦的计算,每个省就是一个“分组”,省会就是“组中心”。
现取两个省(任意两个分组)中,并分别从中各取四市(电流元),八个城市之间进行“快递往来”(互耦计算),这个问题可以分为两类:1)同省之间的快递往来(组内电流元的互耦计算);2)跨省之间的快速往来(组间电流元的互耦计算)。
矩量法:不管是同省快递还是跨省快递,每个城市都向剩余7个城市开辟一条货运路线,进行快递运输,其路线图就如图所示,看到这样这样的路线图,相信你也凌乱了;
快速多级子:将同省快速和跨省快递分类解决:1)对于同省快递,运输方案与方案一相同,每个城市分别开通至剩余三市的运输线路;2)对于跨省快递,则先在各自省会设立一个“集散中心”,先将广东四市的快递运输至广州(聚合),再将包裹统一发往福州(转移),最后再由福州分发至福建四市(解聚),其路线图如图所示,由图可知,线路图规整了许多,简直就是强迫症福音。
由图可知,通过“聚合-转移-解聚”这个过程,跨省之间的运输线路显著减少,反映至快速多级子算法上,就是未知量之间互耦计算规模显著减少,而且这种优势会随着未知量增加呈现出指数级变化,从而显著减少内存消耗,提高计算速度。
当然,凡事有利就有弊,快速多级子算法在收获“计算速度提高,内存消耗减少”优点的同时,也付出了“精度下降,收敛性变差”的代价,这个暂且不表,如果大家感兴趣,点赞过百,我会再出一期,详细介绍快速多级子算法引起精度下降,收敛性变差的底层原理。
3.4 矩量法(MoM)
总结
好了,如同”裹脚布“一般的这篇文章终于结束了。首次尝试这种万字长文,从年前写到年后,拖更了快两个月,在经历了一个多月的“学习-消化-理解“这样一个过程后,终于以一种我认为最通俗易懂的方式完成了枯燥深奥的计算电磁学理论的讲解。希望各位读者大人能分三个层次掌握计算电磁学的基本理论。第一层次:对文中有关计算电磁学基本理论的类比图形成深刻的印象;第二层次:能掌握文中关于计算电磁学理论的几个重要的数学推演过程;第三层次:能通过文末补充的专业学术文献和课程笔记全面掌握计算电磁学的所有数学推演过程与结论(当然,这也就成神了)。
最后,我想回到文章最开始的疑问:“作为一个CAE设计师,有必要了解计算电磁学吗?”
看完这篇文章,明天你的仿真该花多长时间可能还是花多少时间 ,该遇到的bug可能一个也不会少,该不收敛的时候可能还是不收敛......,它可能无法解决你仿真过程中遇到的棘手问题,但却可以像武林绝学中的“心法“一样,帮助你在电磁CAE的修罗场里,能够始终多一份笃定与从容。
Copyright © 2021 .长沙麦涛网络科技有限公司 All rights reserved.
湘ICP备20015126号-2
联系我们