衛(wèi) 延
(北京交通大學(xué) 全光網(wǎng)與現(xiàn)代通信網(wǎng)教育部重點(diǎn)實(shí)驗(yàn)室, 北京100044)
“電磁場與電磁波”課程內(nèi)容抽象,因?yàn)殡姶艌隹床灰?,摸不到,?dǎo)致學(xué)生難以理解電磁場的基本概念與理論。為提高教學(xué)質(zhì)量,有必要引入直觀性手段。隨著計(jì)算機(jī)與軟件技術(shù)的蓬勃發(fā)展,基于Matlab、Mathematica等軟件的可視化技術(shù)在教學(xué)中廣泛應(yīng)用,產(chǎn)生了眾多清晰的場分布圖形和生動(dòng)的動(dòng)畫,帶來了直觀性,從而激發(fā)了學(xué)生學(xué)習(xí)興趣,提升了教學(xué)效果[1~9]。
電磁場模型繁多,場分布千變?nèi)f化,目前國內(nèi)尚無文獻(xiàn)對電磁場可視化問題進(jìn)行系統(tǒng)的分類,并指出各類問題具體的可視化方法手段。根據(jù)教學(xué)經(jīng)驗(yàn),電磁場可視化的問題從內(nèi)容和方法上可以分為三類。第一類是如何制作示意性的圖形和動(dòng)畫,實(shí)現(xiàn)方式有多種;第二類是如何表示有解析解或近似解析解的真實(shí)電磁場,即制作圖形和動(dòng)畫來描述這類電磁場的空間分布和隨時(shí)間的動(dòng)態(tài)演化,有解析解的電磁場和電磁波通常是課程中最基本的內(nèi)容,在課程教學(xué)中占據(jù)重要地位;第三類問題是無解析解的電磁場和波的可視化,在工程中絕大多數(shù)電磁場問題沒有解析解,所以在實(shí)際應(yīng)用中無解析解的電磁場問題的可視化最常見。
本文針對這三類電磁場可視化問題,詳細(xì)介紹了相關(guān)的可視化技術(shù)手段、細(xì)節(jié)、注意事項(xiàng)和相關(guān)軟件的應(yīng)用,并展示可視化實(shí)例。
“電磁場與電磁波”課程中的某些內(nèi)容,比如媒質(zhì)磁化、介質(zhì)極化、邊界條件、位移電流、穩(wěn)恒電流、電磁感應(yīng)等等,在授課時(shí)宜用圖形和動(dòng)畫表示,可省去大段的語言描述。繪制圖形可以用Microsoft Word中的繪圖工具,而更好的方式是采用專業(yè)的二維繪圖工具,比如AutoCAD等軟件。繪制同樣的圖形,AutoCAD比Word定位精準(zhǔn),操作方便快速,并且出圖效果更清晰美觀。動(dòng)態(tài)物理過程,需要?jiǎng)赢媮砻枋?。制作示意性的?dòng)畫常常用到Photoshop軟件,動(dòng)畫制作的基本步驟是:先用AutoCAD繪制一系列某參數(shù)漸變的圖形,然后把這些圖形以堆棧方式載入到Photoshop中,再用 “時(shí)間軸”工具將這些圖形串聯(lián)起來,存為web所用格式,即可得到相關(guān)的gif格式幀動(dòng)畫。圖1為用AutoCAD和Photoshop制作的示意性動(dòng)畫,圖1(a)表示恒定電流的產(chǎn)生,圖1(b)反應(yīng)媒質(zhì)的磁化過程。
(a)恒定電流動(dòng)畫 (b)媒質(zhì)磁化動(dòng)畫 圖1 用AutoCAD和Photoshop制作的示意性動(dòng)畫
為防止幀動(dòng)畫在播放時(shí)出現(xiàn)抖動(dòng),幀數(shù)要充足,另外每幀靜態(tài)圖形所表示的區(qū)域應(yīng)該完全相同,即在截取每張圖形時(shí),圖形的外邊框應(yīng)嚴(yán)格一致。在用AutoCAD繪制這些靜態(tài)圖形時(shí),要給每個(gè)圖形四周繪制一個(gè)統(tǒng)一的定位圖框,按照定位圖框截取圖形,從而保證定位精準(zhǔn)。
電磁學(xué)中的很多問題解決的前提是對場分布有一定的了解。真實(shí)的、準(zhǔn)確的場分布圖形和場變化動(dòng)畫能帶給學(xué)生積極、正確的信息,顯著提升學(xué)生對基本理論、公式和結(jié)論的理解,所以準(zhǔn)確的場分布圖形和場變化動(dòng)畫是可視化的目標(biāo),而靜態(tài)場分布圖形是最基本的元素。幀動(dòng)畫正是由一張張靜態(tài)圖合成的,場可視化的第一步就是得到最基礎(chǔ)的靜態(tài)場分布圖形。課程中的基本電磁場模型通常有解析結(jié)果,可以用Matlab等軟件來繪制靜態(tài)場分布圖形。對于電磁場中的標(biāo)量,如電位,常用Matlab中的contour命令繪制等高線,也可用surf、mesh等命令來描繪電位在某個(gè)區(qū)域中的分布。
對于電場強(qiáng)度、磁感應(yīng)強(qiáng)度等矢量,既要表示其數(shù)值大小,又要標(biāo)明其方向??梢杂脙深悎D形來描繪矢量場分布,其一是用quiver命令繪制矢量點(diǎn)圖,即在要繪制圖形的區(qū)域中均勻選擇一系列點(diǎn),每個(gè)點(diǎn)上繪制一個(gè)帶箭頭的有向線段,線段的長度表示矢量場數(shù)值的大小,箭頭指向?yàn)槭噶繄鲈谠擖c(diǎn)的方向;其二是用streamline命令繪制矢量線圖(流線圖),即通常的電力線圖(或磁力線圖),電力線上任意一點(diǎn)處的切線方向是該點(diǎn)電場強(qiáng)度的方向,任意點(diǎn)處電力線的疏密程度反映該點(diǎn)電場強(qiáng)度的數(shù)值的大小。相比于矢量點(diǎn)圖,矢量線圖具有整體性,能清楚反映出場分布的全局概況,揭示出場與源的關(guān)系,具有深刻的物理意義。在電磁場的可視化過程中,最好采用矢量線圖來描述電磁場分布。
用contour、surf、mesh、quiver等4個(gè)命令繪制圖形,簡單直接,基本步驟是先用meshgrid命令定義一個(gè)矩陣區(qū)域以及其中的眾多矩形陣列點(diǎn),然后用矩陣給這些點(diǎn)賦值,值是這些陣列點(diǎn)上的標(biāo)量場的值,也可以是矢量場的分量值,再使用這4個(gè)命令直接繪圖即可。而用streamline命令繪制矢量線圖,除了上面的基本步驟外,還需要繪圖者有一定的經(jīng)驗(yàn)和技巧。streamline命令需要根據(jù)經(jīng)驗(yàn)精心選擇矢量線的起點(diǎn),有時(shí)還需要分割繪圖區(qū)域,拼接圖形,還要仔細(xì)判別繪圖結(jié)果的正確性,改正某處的錯(cuò)誤繪圖,保證理論上的正確性。
如圖2所示,設(shè)在自由空間無限大勻強(qiáng)電場(電場方向?yàn)樗椒较颍瑥淖蟮接?,稱之為原場)中放置一個(gè)無限長均勻介質(zhì)圓柱體,圓柱體軸線垂直與電場方向??梢杂梅蛛x變量法求出電場強(qiáng)度和電位的解析解,從解析解可知圓柱體內(nèi)的電場是同方向的勻強(qiáng)電場。圖2(a)是用contour和quiver命令繪制的圓柱體附近的等位面和電場矢量點(diǎn)圖,該圖反應(yīng)出圓柱體外面的勻強(qiáng)電場受到了擾動(dòng),并且圓柱體內(nèi)是一個(gè)水平向右的勻強(qiáng)電場,場強(qiáng)小于原場。圖2(b)中豎直方向的線仍然是等位面,與圖2(a)一致,水平方向的線是用streamline命令直接繪制出來的電力線。該電力線反映出圓柱體內(nèi)部的電場強(qiáng)度數(shù)值大于原場,是錯(cuò)誤的,應(yīng)該去掉幾條電力線,變成圖2(c),才能正確反應(yīng)出圓柱體內(nèi)部的電場強(qiáng)度分布。根據(jù)圓柱體內(nèi)電場強(qiáng)度與原場的比值,可以確定出需要去掉的電力線的條數(shù)。圖2(c)是修正后的等位面和電力線分布圖,電力線箭頭通過Matlab圖形面板中的箭頭工具添加。比較圖2(c)與圖2(a),顯然矢量線圖比矢量點(diǎn)圖更清晰美觀,更有整體性,能更清晰地反應(yīng)出場和源的關(guān)系,電力線在介質(zhì)圓柱體表面上不連續(xù),是因?yàn)榻橘|(zhì)圓柱體的外表面出現(xiàn)了極化面電荷。用quiver命令繪制的矢量點(diǎn)圖雖然粗糙,但結(jié)果是正確的,所以將contour命令與streamline命令結(jié)合使用是更好的途徑。如果矢量線圖與矢量點(diǎn)圖不一致,就修正矢量線圖,矢量點(diǎn)圖可作為一個(gè)判斷矢量線圖正誤的標(biāo)準(zhǔn)。
(a) 等位面與電場矢量點(diǎn)圖 (b)等位面與電力線圖(有誤)
矢量線的起點(diǎn)需要根據(jù)經(jīng)驗(yàn)精心選擇,由于圖2中的原場是勻強(qiáng)電場,矢量線的起點(diǎn)選擇為區(qū)域左邊緣上均勻分布的一組點(diǎn)。對于復(fù)雜的情況,矢量線起點(diǎn)不容易選擇,并且streamline命令繪制的電力線,只能從電位高的點(diǎn)出發(fā),增加了起點(diǎn)選擇上的困難。圖3是無限長帶電平行雙線的等位面和電力線圖,帶箭頭的線表示電力線,不帶箭頭的圓弧形線表示等位面。圖3(a)為平行雙線橫斷面上的電力線與等位面分布圖,圖3(b)為圖(a)的旋轉(zhuǎn)后得到的3D圖,更生動(dòng)形象。
(a)橫截面分布圖 (b)3D分布圖 圖3 無限長帶電平行雙線的電力線與等位面分布圖
用streamline命令繪制平行雙線的電力線時(shí),起點(diǎn)如何選擇?如果不存在能畫出全部電力線的一組起點(diǎn),又該如何處理呢?電力線從正電荷出發(fā),終止于負(fù)電荷,起點(diǎn)自然選擇在左邊帶正電的線電荷上,但是線電荷的電場強(qiáng)度無限大,具有奇異性,合適的選擇是將線電荷變成一個(gè)半徑很小的圓柱體,其橫截面外邊緣是個(gè)小圓圈,電力線起點(diǎn)選擇為小圓圈上一組均勻的點(diǎn)。為什么是均勻的一組點(diǎn)?因?yàn)楫?dāng)圓圈半徑很小時(shí),距離線電荷很近,遠(yuǎn)處電荷產(chǎn)生的電場可以忽略,電場主要是線電荷自身產(chǎn)生的輻射狀的圓柱對稱場,因而在小圓圈上選擇均勻的點(diǎn)作為電力線的起點(diǎn)是合理的。如此選擇起點(diǎn)后,并不能畫出全部的電力線,因?yàn)橛行╇娏€從正電荷發(fā)出后,穿出了繪圖區(qū)域,經(jīng)過了很遠(yuǎn)的路徑,再返回來進(jìn)入繪圖區(qū)域終止到負(fù)電荷,streamline命令無法繪制這些返程的電力線。所以無法僅設(shè)置一組起點(diǎn)來繪制全部的電力線。
通過設(shè)置兩組點(diǎn)和多組點(diǎn),可以繪制出全部的電力線,但是會(huì)發(fā)生電力線交疊、重復(fù)等情況,需要大量的圖形編輯工作。解決的方法是分成左右兩個(gè)區(qū)域,分別繪制電力線,然后將圖形拼接起來。有兩種手段處理這個(gè)問題,其一是鏡像對稱法,先繪制左半?yún)^(qū)域的電力線,再沿著中分面做個(gè)鏡像,得到右半?yún)^(qū)域的電力線,拼接后得到全部的電力線,該方法適合于電力線分布鏡像對稱的情況,并且需要Photoshop軟件。其二是先繪制左半?yún)^(qū)域的電力線,然后將平行雙線的電荷設(shè)置為左負(fù)右正,再繪制右邊的電力線,拼接后得到全區(qū)域的電力線,該方法在Matlab中即可實(shí)現(xiàn),不需要另外的圖形編輯軟件。用streamline命令繪制矢量線,對于無法選擇一組起點(diǎn)繪制全部矢量線的情形,分割區(qū)域、拼接圖形是有效的途徑。用Matlab繪制帶電平行雙線的等位面和電力線分布圖的主要代碼如下:
rho_1=1e-8;%C/m, 電荷線密度
b=2.5;%m, 繪圖區(qū)域?qū)挾?/p>
a=1;%m, 線電荷中心距
h=2.5;%m, 繪圖區(qū)域高度
delta=0.001;%防止出現(xiàn)奇異值,設(shè)置小偏移
M=101;N=101;%繪圖區(qū)域x、y方向點(diǎn)數(shù)
K=9e9;%靜電力常數(shù)
[x,y]=meshgrid(-b:2*b/(M-1):b,-h:2*h/(N-1):h);
r1=sqrt((x+a/2).^2+y.^2+delta);
r2=sqrt((x-a/2).^2+y.^2+delta);
Phi=2*K*rho_1*log(r2./r1);%電位
figure;contour(x,y,Phi,15);%繪制等位面
hold on;
plot(-a/2,0,'r+','MarkerSize',10);%繪制正電荷標(biāo)志“+”
axis equal;%令圖上x、y方向的單位長度相等
%----下面繪制左半?yún)^(qū)域電力線------
[x1,y1]=meshgrid(-b:2*b/(M-1):0,-h:2*h/(N-1):h);
r11=sqrt((x1+a/2).^2+y1.^2+delta);
r21=sqrt((x1-a/2).^2+y1.^2+delta);
Phi_1=2*K*rho_1*log(r21./r11);
[Ex1,Ey1]=gradient(-Phi_1);%根據(jù)電位求電場強(qiáng)度
aa=0.1;%電力線起點(diǎn)所在圓的半徑
KK=1:18;
Max=max(KK);
xx1=[-a/2+aa*cos(2*pi/Max.*KK)];%電力線起點(diǎn)x坐標(biāo)
yy1=[aa*sin(2*pi/Max.*KK)];%電力線起點(diǎn)y坐標(biāo)
streamline(x1,y1,Ex1,Ey1,xx1,yy1);%繪制左半?yún)^(qū)域電力線
%----下面繪制右半?yún)^(qū)域電力線------
[x2,y2]=meshgrid(0:2*b/(M-1):b,-h:2*h/(N-1):h);
r12=sqrt((x2+a/2).^2+y2.^2+delta);
r22=sqrt((x2-a/2).^2+y2.^2+delta);
Phi_2=2*K*rho_1*log(r22./r12);
[Ex2,Ey2]=gradient(Phi_2);%電場取相反數(shù),繪圖方便
xx2=[a/2+aa*cos(pi-(2*pi/Max.*KK))];
yy2=[aa*sin(pi-(2*pi/Max.*KK))];
streamline(x2,y2,Ex2,Ey2,xx2,yy2);
無解析解的電磁場模型的可視化,需要借助電磁場分析軟件求出數(shù)值解,如HFSS,Comsol,Ansoft等等,然后根據(jù)計(jì)算出的數(shù)值解來繪制電磁場分布圖形。其中Comsol軟件計(jì)算可靠,出圖清晰,既能輸出靜態(tài)圖,又能輸出avi和gif格式的動(dòng)畫,是電磁場可視化的一種理想工具。
使用Comsol計(jì)算電磁場模型,遵循有限元方法的基本步驟。首先定義求解區(qū)域,選擇正確的電磁模組(電磁場方程),選取準(zhǔn)確的材料參數(shù),設(shè)置正確的邊界條件,劃分合適的網(wǎng)格,然后計(jì)算出結(jié)果,再經(jīng)過后處理步驟得到各物理量(標(biāo)量場或矢量場的分量)在網(wǎng)格節(jié)點(diǎn)的數(shù)值。
根據(jù)可靠的數(shù)值計(jì)算結(jié)果繪制電磁場分布圖形,制作可視化所需的圖形和動(dòng)畫,要注意兩點(diǎn)。首先要搞清楚計(jì)算模型中最基本、最重要、最有意義的物理量有哪些,這些基本物理量的有關(guān)圖形即可作為可視化的結(jié)果。其次,直接繪制的三維電磁場分布圖形比較復(fù)雜和混亂,而二維圖形比三維圖形更能清晰、直觀地反映出電磁場的變化規(guī)律。所以繪制圖形時(shí),要注意選取某個(gè)合適截面上的某個(gè)合適的物理量。
圖4(a)是用Comsol軟件繪制的某電偶極子天線遠(yuǎn)場方向圖,是軸對稱的,跟解析結(jié)果是一致的。
圖4(b)是以偶極子天線為軸線的子午面(偶極子天線所在的一個(gè)剖面)上電場強(qiáng)度矢量點(diǎn)圖,由于偶極子天線的電磁場空間分布具有軸對稱性(以偶極子天線為軸),該圖能清晰反應(yīng)出電場強(qiáng)度的空間分布特性。
圖4(c)是電偶極子天線中垂面上電場強(qiáng)度的幅度分布圖,說明空間電場分布是軸對稱且向遠(yuǎn)處震蕩減弱的。
用Comsol軟件制作動(dòng)畫,要選擇某個(gè)合適的參數(shù),它的變化能反映計(jì)算模型中電磁場的變化規(guī)律。(衛(wèi) 延文)
(a)方向圖 (b)子午面電場強(qiáng)度分布圖
比如頻率或相位,在Comsol建模后,將頻率或相位定義成一個(gè)漸變的參數(shù),從某個(gè)初值變化到終值,進(jìn)行掃描計(jì)算,根據(jù)這個(gè)掃描計(jì)算的結(jié)果,使用Comsol軟件可以直接生成動(dòng)畫。以圖4(b)(c)為例,選擇相位為漸變參數(shù),從0變化到2π,進(jìn)行掃面計(jì)算后,可以輸出電磁場分布隨時(shí)間變化的動(dòng)畫。
本文對電磁場與電磁波的可視化工作進(jìn)行了分類,并指出了各類可視化圖形和動(dòng)畫的制作方法、應(yīng)用軟件和注意事項(xiàng),還詳細(xì)說明了用streamline命令繪制矢量線圖的方法和技巧,對電磁場相關(guān)課程的可視化工作具有指導(dǎo)作用,對電磁場可視化技術(shù)的發(fā)展也具有重要參考意義。