孙贤明,王海华,刘万强
(山东理工大学电气与电子工程学院,山东淄博 255049)
“电磁场与电磁波”课程为电子信息工程专业和通信工程专业的一门主干课,其目的是培养学生运用场的观点对工程电磁问题进行初步分析与计算,锻炼学生科学的思维方式和分析方法,完善知识能力结构,提高专业的总体素质[1]。
“电磁场与电磁波”课程理论性强、数学基础要求高和概念抽象。其主要特点是要想掌握电磁场和电磁波在空间传播时的不同状态,需要很强的空间思维能力。笔者利用Matlab软件和Fortran语言,基于时域有限差分法,对“电磁场与电磁波”课程中的场和波问题进行求解模拟,实现了结果的可视化。我们用数据和图像形象地描述了场的分布以及波的传播特点,帮助学生理解和掌握电磁场的规律。
有限差分法为计算电磁场问题的数值算法之一,其基本思想是用网格节点的差分方程近似代替场域内的偏微分方程来求解。主要应用在计算静态场边值问题和分析时变电磁场问题,如电磁波的传播需要采用时域有限差分法FDTD(Finite Difference Time Domain)求解麦克斯韦微分方程[2]。计算时将空间某一样本点的电场与周围格点的磁场直接相关联,且介质参数已赋值给空间每一个元胞,同时,FDTD的随时间推进可以方便地给出电磁场的时间演化过程,在计算机上以伪彩色方式显示。这种电磁场可视化结果可以清楚地显示电磁波传播的物理过程,便于问题的分析。
FDTD作为一种时域电磁场数值计算方法,具有许多优点。最突出的一点是,可以用一幅幅图形以每一个时间步进的形式动态形象地描绘电磁波的传播过程和与目标相互作用的过程。
将FDTD计算的电磁场数据以图形方式表示的方法很多,其中Matlab的三维绘图功能特别强大,非常适合绘制电磁场分布图形。我们如果用Matlab来实现FDTD算法,需要大量的循环和迭代,其计算效率极低;而Fortran语言简洁高效,特别适合于科学计算,缺点是绘制图形方面的功能较弱。本文综合Fortran和Matlab各自的特长,利用二者的混合编程来实现FDTD中电磁场的可视化。其主要思路是:首先用 Fortran语言实现主体 FDTD算法,而后将计算的每一时刻的电磁场数据传递给Matlab,由Matlab进行电磁场的图形显示[3]。
Matlab提供了与Fortran语言的接口函数,可方便地在Fortran中调用[4]。在Fortran和Matlab混合编程中主要用到以下几个接口函数:①engOpen(启动Matlab引擎);②engClose(关闭Matlab引擎);③engGetVariabl(从Matlab引擎中获取变量);④eng-PutVariabl(向Matlab引擎中传递变量);⑤engEval-String(在Matlab引擎中执行命令行语句)。
在FDTD计算程序中,首先启动Matlab引擎并完成相关的初始化工作,而后进行FDTD的电磁场迭代,每计算完一个时间步进后,将需要的电磁场数据实时传递给Matlab,由Matlab通过其丰富的绘图命令将电磁场数据以图形方式显示出来。并且,还可在Matlab中创建 avi格式的动画,将绘制的每幅图形作为一帧添加到动画文件中,形成动态序列。计算完成后,通过该动画可以生动连续地再现电磁波传播的特点。整个程序的流程图如图1所示。
均匀平面波在理想介质、导电媒质以及理想导体中传播时特性差异很大,在理想介质中传输时,波速比真空中的慢,波长比真空中的短,但是波振幅没有衰减;而在导电介质中传输,波速度会减慢,且波振幅随传播距离的增长而衰减;对于理想导体,电磁波无法进入。这些结论虽然经过了严格推导,但是
图1 Matlab和Fortran混合编程流程图
学生很难有直观的感受,因此我们利用FDTD,结合Fortran语言和Matlab语言,模拟了这三种情况下电磁波的传播特点,并将其保存为动画,实现了电磁波在媒质中传输的动态模拟。
图2给出了平面电磁波(频率f=300MHz)在自由空间中传播的二维电场分布图。图2(a)和图2(b)分别为运行150个和500个时间步进的结果。
图2 自由空间电场分布图
图3(a)给出了平面电磁波(频率f=300MHz)入射到理想导体后的仿真图像,动态图像可以清楚地看到电磁波无法穿透方形导体进行传播,图3(b)给出了电磁波从真空中入射到理想介质中的情况。从图像中可以看出,电磁波出现了弯折,说明波速度变慢了,且从图中可以看出电磁波的波长也变短了,但其振幅并没减少。
图3 导体和理想介质中电场分布图
图4给出了平面电磁波(频率f=300MHz)入射到导电媒质时的传输图像。从图4(a)良导体(εr=3.5,μr=0,σr=4S/m)情况可以看出,电磁波仅能进入良导体很少一部分,即趋肤深度很小。我们从图4(b)一般弱导电媒质(εr=3.5,μr=0,σr=0.01S/m)情况可以看出,电磁场进入图中方形的导电媒质后,不仅速度变慢,其振幅也变小了。
图4 良导体和弱导电媒质电场分布图
本文提出了利用Matlab和Fortran混合编程,基于时域有限差分法实现电磁波在不同媒质中传播的动态模拟,使抽象的电磁波变得形象直观,提高了学生的学习兴趣。我们下一步还将继续开发电磁波在媒质分界面的反射、透射、在波导中的传输以及天线的辐射特性等。我们将探索把仿真和硬件实验设备相结合,让学生自己利用FDTD或者Ansoft HFss等电磁仿真软件仿真发射天线的辐射方向图,然后自行动手设计制作接收天线,并仿真其辐射特性,制成发光电磁波传感器,观察不同类型天线对电磁波的接收能力。这样可以使学生将电磁波强弱、极化、波长和驻波一大堆看不见的概念可视化,从而加深学生对基础知识的理解,同时能锻炼学生观察和分析问题的能力以及进一步培养学生的创新能力。
[1] 谢处方.电磁场与电磁波(第4版)[M].北京:高等教育出版社,2006
[2] 葛德彪,闫玉波.电磁波时域有限差分方法[M].西安:西安电子科技大学出版社,2003
[3] 刘建勇.时域有限差分方法在复杂目标散射和光学微腔中的的应用,西安电子科技大学硕士论文,2008年
[4] 钱懿华,董慎行用计算机模拟点电荷在二维平面上的静电场[J],北京:大学物理,2003,22(1),31-33