孫賢明,王海華,劉萬強(qiáng)
(山東理工大學(xué)電氣與電子工程學(xué)院,山東淄博 255049)
“電磁場與電磁波”課程為電子信息工程專業(yè)和通信工程專業(yè)的一門主干課,其目的是培養(yǎng)學(xué)生運(yùn)用場的觀點(diǎn)對工程電磁問題進(jìn)行初步分析與計算,鍛煉學(xué)生科學(xué)的思維方式和分析方法,完善知識能力結(jié)構(gòu),提高專業(yè)的總體素質(zhì)[1]。
“電磁場與電磁波”課程理論性強(qiáng)、數(shù)學(xué)基礎(chǔ)要求高和概念抽象。其主要特點(diǎn)是要想掌握電磁場和電磁波在空間傳播時的不同狀態(tài),需要很強(qiáng)的空間思維能力。筆者利用Matlab軟件和Fortran語言,基于時域有限差分法,對“電磁場與電磁波”課程中的場和波問題進(jìn)行求解模擬,實(shí)現(xiàn)了結(jié)果的可視化。我們用數(shù)據(jù)和圖像形象地描述了場的分布以及波的傳播特點(diǎn),幫助學(xué)生理解和掌握電磁場的規(guī)律。
有限差分法為計算電磁場問題的數(shù)值算法之一,其基本思想是用網(wǎng)格節(jié)點(diǎn)的差分方程近似代替場域內(nèi)的偏微分方程來求解。主要應(yīng)用在計算靜態(tài)場邊值問題和分析時變電磁場問題,如電磁波的傳播需要采用時域有限差分法FDTD(Finite Difference Time Domain)求解麥克斯韋微分方程[2]。計算時將空間某一樣本點(diǎn)的電場與周圍格點(diǎn)的磁場直接相關(guān)聯(lián),且介質(zhì)參數(shù)已賦值給空間每一個元胞,同時,F(xiàn)DTD的隨時間推進(jìn)可以方便地給出電磁場的時間演化過程,在計算機(jī)上以偽彩色方式顯示。這種電磁場可視化結(jié)果可以清楚地顯示電磁波傳播的物理過程,便于問題的分析。
FDTD作為一種時域電磁場數(shù)值計算方法,具有許多優(yōu)點(diǎn)。最突出的一點(diǎn)是,可以用一幅幅圖形以每一個時間步進(jìn)的形式動態(tài)形象地描繪電磁波的傳播過程和與目標(biāo)相互作用的過程。
將FDTD計算的電磁場數(shù)據(jù)以圖形方式表示的方法很多,其中Matlab的三維繪圖功能特別強(qiáng)大,非常適合繪制電磁場分布圖形。我們?nèi)绻肕atlab來實(shí)現(xiàn)FDTD算法,需要大量的循環(huán)和迭代,其計算效率極低;而Fortran語言簡潔高效,特別適合于科學(xué)計算,缺點(diǎn)是繪制圖形方面的功能較弱。本文綜合Fortran和Matlab各自的特長,利用二者的混合編程來實(shí)現(xiàn)FDTD中電磁場的可視化。其主要思路是:首先用 Fortran語言實(shí)現(xiàn)主體 FDTD算法,而后將計算的每一時刻的電磁場數(shù)據(jù)傳遞給Matlab,由Matlab進(jìn)行電磁場的圖形顯示[3]。
Matlab提供了與Fortran語言的接口函數(shù),可方便地在Fortran中調(diào)用[4]。在Fortran和Matlab混合編程中主要用到以下幾個接口函數(shù):①engOpen(啟動Matlab引擎);②engClose(關(guān)閉Matlab引擎);③engGetVariabl(從Matlab引擎中獲取變量);④eng-PutVariabl(向Matlab引擎中傳遞變量);⑤engEval-String(在Matlab引擎中執(zhí)行命令行語句)。
在FDTD計算程序中,首先啟動Matlab引擎并完成相關(guān)的初始化工作,而后進(jìn)行FDTD的電磁場迭代,每計算完一個時間步進(jìn)后,將需要的電磁場數(shù)據(jù)實(shí)時傳遞給Matlab,由Matlab通過其豐富的繪圖命令將電磁場數(shù)據(jù)以圖形方式顯示出來。并且,還可在Matlab中創(chuàng)建 avi格式的動畫,將繪制的每幅圖形作為一幀添加到動畫文件中,形成動態(tài)序列。計算完成后,通過該動畫可以生動連續(xù)地再現(xiàn)電磁波傳播的特點(diǎn)。整個程序的流程圖如圖1所示。
均勻平面波在理想介質(zhì)、導(dǎo)電媒質(zhì)以及理想導(dǎo)體中傳播時特性差異很大,在理想介質(zhì)中傳輸時,波速比真空中的慢,波長比真空中的短,但是波振幅沒有衰減;而在導(dǎo)電介質(zhì)中傳輸,波速度會減慢,且波振幅隨傳播距離的增長而衰減;對于理想導(dǎo)體,電磁波無法進(jìn)入。這些結(jié)論雖然經(jīng)過了嚴(yán)格推導(dǎo),但是
圖1 Matlab和Fortran混合編程流程圖
學(xué)生很難有直觀的感受,因此我們利用FDTD,結(jié)合Fortran語言和Matlab語言,模擬了這三種情況下電磁波的傳播特點(diǎn),并將其保存為動畫,實(shí)現(xiàn)了電磁波在媒質(zhì)中傳輸?shù)膭討B(tài)模擬。
圖2給出了平面電磁波(頻率f=300MHz)在自由空間中傳播的二維電場分布圖。圖2(a)和圖2(b)分別為運(yùn)行150個和500個時間步進(jìn)的結(jié)果。
圖2 自由空間電場分布圖
圖3(a)給出了平面電磁波(頻率f=300MHz)入射到理想導(dǎo)體后的仿真圖像,動態(tài)圖像可以清楚地看到電磁波無法穿透方形導(dǎo)體進(jìn)行傳播,圖3(b)給出了電磁波從真空中入射到理想介質(zhì)中的情況。從圖像中可以看出,電磁波出現(xiàn)了彎折,說明波速度變慢了,且從圖中可以看出電磁波的波長也變短了,但其振幅并沒減少。
圖3 導(dǎo)體和理想介質(zhì)中電場分布圖
圖4給出了平面電磁波(頻率f=300MHz)入射到導(dǎo)電媒質(zhì)時的傳輸圖像。從圖4(a)良導(dǎo)體(εr=3.5,μr=0,σr=4S/m)情況可以看出,電磁波僅能進(jìn)入良導(dǎo)體很少一部分,即趨膚深度很小。我們從圖4(b)一般弱導(dǎo)電媒質(zhì)(εr=3.5,μr=0,σr=0.01S/m)情況可以看出,電磁場進(jìn)入圖中方形的導(dǎo)電媒質(zhì)后,不僅速度變慢,其振幅也變小了。
圖4 良導(dǎo)體和弱導(dǎo)電媒質(zhì)電場分布圖
本文提出了利用Matlab和Fortran混合編程,基于時域有限差分法實(shí)現(xiàn)電磁波在不同媒質(zhì)中傳播的動態(tài)模擬,使抽象的電磁波變得形象直觀,提高了學(xué)生的學(xué)習(xí)興趣。我們下一步還將繼續(xù)開發(fā)電磁波在媒質(zhì)分界面的反射、透射、在波導(dǎo)中的傳輸以及天線的輻射特性等。我們將探索把仿真和硬件實(shí)驗(yàn)設(shè)備相結(jié)合,讓學(xué)生自己利用FDTD或者Ansoft HFss等電磁仿真軟件仿真發(fā)射天線的輻射方向圖,然后自行動手設(shè)計制作接收天線,并仿真其輻射特性,制成發(fā)光電磁波傳感器,觀察不同類型天線對電磁波的接收能力。這樣可以使學(xué)生將電磁波強(qiáng)弱、極化、波長和駐波一大堆看不見的概念可視化,從而加深學(xué)生對基礎(chǔ)知識的理解,同時能鍛煉學(xué)生觀察和分析問題的能力以及進(jìn)一步培養(yǎng)學(xué)生的創(chuàng)新能力。
[1] 謝處方.電磁場與電磁波(第4版)[M].北京:高等教育出版社,2006
[2] 葛德彪,閆玉波.電磁波時域有限差分方法[M].西安:西安電子科技大學(xué)出版社,2003
[3] 劉建勇.時域有限差分方法在復(fù)雜目標(biāo)散射和光學(xué)微腔中的的應(yīng)用,西安電子科技大學(xué)碩士論文,2008年
[4] 錢懿華,董慎行用計算機(jī)模擬點(diǎn)電荷在二維平面上的靜電場[J],北京:大學(xué)物理,2003,22(1),31-33