摘 要:首先总结FDTD算法中的两种典型边界条件的算法特点,然后提出用Matlab语言编程的步骤和应注意的问题,并结合具体例子讲解编程的方法,最后得出用Matlab语言对FDTD算法编程的几点结论。 关键词:FDTD;算法编程;Matlab语言;边界条件
时域有限差分(FDTD)方法自Yee(1966年)提出以来就得到迅速发展,其主要思想是以Yee元胞为空间电磁场离散单元,将麦克斯韦旋度议程转化为差分方程,在时间轴和空间轴上逐 步推进地求解,最终求出空间场的分布。本文主要讨论如何结合FDTD算法边界条件特点,用 Matlab语言进行编程时应注意的问题,以及如何进行程序的编写。
1FDTD算法的几个边界条件 在当今FDTD算法中,涉及到的边界条件主要有Mur吸收边界条件[1]、廖氏吸收边界条件、超吸收边界条件、完全匹配层(PML),在本文中主要针对Mur吸收边界条件和完全匹配层(PML)来讲述编程方法,对于其余两种边界条件请参阅文献[1]。 1.1Mur吸收边界条件 其具体推导过程可参考文献[2],递推公式如下: 一阶条件下的递推公式: 二阶条件下Mur的FDTD递推公式:  这就是Mur所建议的具有二阶近似的、适用于二维问题的近似吸收边界条件。他在FDTD中有 着广泛的应用。 1.2PML吸收边界条件 完全匹配层是一种非物理性的电磁波吸收层,有关性质和在具体条件下PML格式的FD TD递推公式见文献[2]。
2基于Matlab编程的方法 编程之前首先应根据要求选择适当的边界条件。一般来说,如果对角区域要求不高,且计算机性能较差的情况下,选用Mur边界条件;如果对计算要求的精度比较高,且计算机硬件条件较好,则可选用PML边界条件。其次,根据FDTD的计算步骤进行编程前的准备工作: (1) 求入射场在总场边界上的等效电磁场切向分量。 (2) 将计算出来的数学模型进行差分,将其写成差分格式,如上面所列出的两种边界条件的差分形式。 (3) 将计算区域(总场区和散射场区)用网格离散化,并用FDTD方程的差分离散形式按时间步写出程序。 (4) 根据选定的边界条件写出边界和角点的程序。 注意FDTD的模拟只限于空间有限域。欲了解此有限域以外的散射场,包括远场区,可以借助等效原理。在总场边界和截断边界之间的散射场区设置散射数据存储边界,应用等效原理便可计算此边界以外的散射近场与远场。 以“平行 2D_TM wave 照射金属方柱的2D辐射场”为例介绍FDTD算法仿真的实现步骤。首先根据麦克斯韦方程写出“二维TM波”的空间分布数学模型,再由数学模型写出其FDTD差分格式见公式(2);然后根据计算需求确定边界条件(在此,确定为Mur边界条件);其次进行FDTD网格形式的划分,必须在截断处设置适当的吸收边界条件,以便用有限网格空间模拟开放的无限空间或无限长的传输结构。理想的吸收边界条件应在截断边界上只有向外传输的波而没有向内的反射波。设置FDTD格式,必须依靠激励信号的波长来划分,一般来说,当自由空间网格为48×48时,外面四周Mur层厚度为8个步长,散射场取5个步长,总场取6个步长,其余为散射体的大小,其具体分布如图1所示(最里层为金属铁片区,紧接着是总场区,次外层为散射场区,最外层为Mur层的厚度)。
注意在网格的划分过程中,空间步长取Δx=Δy=3 mm,时间步长取为Δt=Δx/(2c),其中c为自由空间光速,信号最高频率为10 GHz。在FDTD中时间步长Δt必须很小,尽管增大时间步长会减小精度,但实际编程中为满足稳定性要求,时间步长不会很大。另外在编程过程中,如果时间步长和空间步长的比例选取不适当,可能在伪彩图中没有激励的波形,一般来说,时间步长与空间步长之比应小于10倍的光速大小。之所以小于10倍光速大小,主要是由于波在空气中一般以小于光速传播,而在进行采样分析时,在一个波长范围内至少要采10个点才能保证波不至于失真,如图2所示的源的波形。(在编程过程中,网格的划分具有非常重要的作用,他与仿真的成败息息相关,编程人员一定要慎重处理);最后一步就是写出上例的程序流程图,如图3所示。限于篇幅,此处不做讨论,有兴趣的读者可参阅文献[3]。
图4是用FDTD方法得出的几个仿真图。
3结语 从以上分析可以看出,FDTD方法在复杂电磁场的数值计算中是一种比较实用可行的方法,可以帮助我们更加形象准确的理解场。FDTD方法是一种计算复杂目标电磁散射数值的有效方法,本文以形状简单的金属方柱的2D辐射场为例,是因为2D辐射场具有精确的散射解,便于说明FDTD方法的正确性。在应用FDTD方法时需要注意:

(1)为了保证FDTD解的稳定性和收敛性,离散网格边长δ应满足条件δ≤λ/12。 (2)总场边界与散射体间的距离应大于5δ,总场边界与散射场数据存储边界间的距离应大于2δ,散射场数据存储边界与截断边界间的距离应大于8δ。 (3)由于受计算机内存和速度的限制,FDTD方法不适宜于计算高频(或大目标)电磁散射。 在进行编程前对要分析的场有一个准确的理解和进行正确的网格划分至关重要,他不但可使编程简化,而且可使数值计算达到要求。对于大型的程序,编写程序流程也是非常重要的一步,他有助于理清思路,以便能快速地写出程序。
参考文献
[1]王长清,祝西里.电磁场计算中的时域有限差分法[M].北京:北京大学出版社,1994 [2]葛德彪,闫玉波.电磁波时域有限差分方法[M].西安:西安电子科技大学出版社,2001 [3][美]Deitel H M.C程序设计教程[M].薛万明译.北京:机械工业出版社,2000 [4]姚纪欢,冯晓霞,乔灵爱.用时域有限差分方法计算电磁散射[J].山西大学学报,1999,22(2) [5]胡来平,刘占军.FDTD方法中的吸收边界条件[J].现代电子技术,2003,26(9):3032 [6]Telfove A Computional Electrodynamics: The Finitedif ference Timedomain Method, Norwood MA:Artech House, 1995.
|