李慧+白雪峰
摘要:本文針對工程電磁場教學過程中遇到的難講、難學問題,利用科學計算語言MATLAB的運算和繪圖等輔助功能,幫助學生理解和掌握工程電磁場的分布規律。這樣不僅激發學生的學習興趣,而且鍛煉他們使用計算機的能力,有效提高課堂教學質量。
關鍵詞:工程電磁場;MATLAB;教學
中圖分類號:G642.41 文獻標志碼:A 文章編號:1674-9324(2015)27-0220-02
“工程電磁場”是電氣工程及其自動化專業的專業基礎課,利用高等數學的積分與微分、場論和矢量分析等知識解決工程電磁場中的物理問題,不僅是大學物理中電磁學內容的深化,也是電氣工程專業后續課程所不可缺少的計算工具?!肮こ屉姶艌觥鄙婕暗闹R面廣、課程內容難度大、對高等數學的應用要求高,被公認為難講、難學的一門課程,學生們普遍產生厭學情緒,課程通過率較低。為了適應21世紀教學改革中精簡學時的要求,有必要改變原有的僅公式推導的教學方法,借助MATLAB等可視化輔助教學手段,使學生從復雜的數學問題中“解放”出來,主動參與到教學過程中,提高學生的學習積極性。
一、MATLAB軟件特點及應用
MATLAB(矩陣實驗室)是MATrix LABoratory的縮寫,是一款由美國The MathWorks公司出品的商業數學軟件。它作為一款集科學計算、圖像處理、信號處理于一體的程序仿真開發工具,具有許多突出優點[1]。
1.功能性強。MATLAB是一個包含大量計算算法的集合,擁有600多個工程中要用到的數學運算函數,可以方便地實現用戶所需的各種計算功能。還具有可擴展性,用戶可以根據自己的需要任意擴充函數工具庫。
2.簡單易用。MATLAB是一個高級的矩陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對象編程特點。新版本的MATLAB語言是基于最為流行的C++語言編寫的,更加符合科技人員對數學表達式的書寫格式,使之更利于非計算機專業的科技人員使用。這種語言可移植性好、可拓展性強,界面友好。
3.圖形處理能力強。MATLAB不僅具有一般數據可視化軟件的功能,例如二維曲線和三維曲面的繪制和處理等,還具有一些其他軟件沒有的功能,例如圖形的光照處理、色度處理以及四位數據的表現等。MATLAB軟件如此強的功能特性,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。目前,大學教育和科學研究中的應用也日益廣泛[2,3]。
二、MATLAB在矢量運算中的應用
1.矢量場分析。利用MATLAB的矢量分析函數,學生可以很方便地進行矢量運算,并用此來驗證手算的正確性。在運算過程中,主要用到的函數有:
點積:dot(A,B)
叉積:cross(A,B)
求模:norm(A)
其中,A、B為任意矢量。
例如,已知矢量■=2■■+3■■+■■,■=4■■+2■■+5■■,■=6■■+5■■+4■■。求(1)矢量■的長度;(2)(■×■)·■。
代碼如下:
A=[2 3 1];B=[4 2 5];C=[6 5 4];
norm(B) %求模
dot(cross(A,B),C) %先求旋度,再求散度
2.場的梯度、散度和旋度的計算。除了進行常數矢量運算外,利用MATLAB的符號運算功能,還可以進行符號的微分和積分。因為梯度、散度、旋度都是微分算子,所以可以用符號微分進行計算。
例如:一個矢量場■=4x■■■+(2xz-5y■)■■+3xyz,求■的散度和旋度。代碼如下:
syms x y z %定義符號變量
A=[4*x^2,2*x*z-5*y^2,3*x*y*z];
divA=diff(A(1),x)+diff(A(2),y)+diff(A(3),z) %計算散度
rotA=[diff(A(3),y)-diff(A(2),z)-diff(A(3),x),diff(A(2),x)-diff(A(1),y)] %計算旋度
由以上代碼可以看出,MATLAB實現矢量運算簡單,代碼數極少,糾錯性強,學生使用起來方便快捷。
三、MATLAB在圖形演示中的應用
工程電磁場課程的難點之一就是理論知識概念抽象,需要學生具有較強的多維空間想象能力和邏輯思維能力,而往往大部分學生不能直觀地進行觀察和研究,在學習時難以很好地掌握[4]。借助MATLAB強大的圖形處理功能,可以很方便地演示電磁場中的物理現象。下面通過兩個典型的例子介紹MATLAB圖形處理在工程電磁場教學中的應用。
1.靜電場電位和電場強度線的MATLAB演示。在求解電磁場問題中,靜電場場量的計算和場圖的繪制是基礎。當涉及到矢量的積分運算時,求解過程及其復雜。但是,如果應用MATLAB軟件進行輔助求解并繪圖,過程相當簡單。例如,已知空間電位分布函數為■=3x■■■+4y■■■,計算空間各點的電場強度,并畫出電位線和電場強度線。我們知道,電場強度與電位的關系是負梯度的關系,即
■=-grad■=-(■■■+■■■)?搖?搖 (1)
因此,可以利用MATLAB中的gradient函數來求解上述問題。其代碼如下:
x_Max=8;N_Grid=20; %設置繪圖區域和網格線數
x_Plot=linspace(-x_Max,x_Max,N_Grid); %生成線性空間
[x,y]=meshgrid(x_Plot); %生成二維網格
F_Plot=log(3*x.^2+4*y.^2); %電位endprint
[Ex_Plot,Ey_Plot]=gradient(-F_Plot); %求解場強
subplot(1,2,1),meshc(F_Plot); %畫三維電位圖
xlabel('x');ylabel('y');zlabel(‘空間電位); %標出坐標
subplot(1,2,2),axis([-x_Max,x_Max,-x_Max,x_Max]);
qh=contour(x,y,F_Plot); %畫等高線
clabel(qh);hold on; %加上編號
quiver(x,y,Ex_Plot,Ey_Plot); %加上場強
xlabel('x');ylabel('y');
經過MATLAB編程,很方便得出■=3x■■■+4y■■■的等位線和電場分布圖(即電場強度線),如圖1所示。
2.無限長平面電流磁場分布的MATLAB演示。假設無限長平面電流沿z軸方向,即與z軸平行,則電流產生的磁場在z軸方向的分量為0,即磁場分布與z軸無關,所以計算時只需考慮x-y平面內磁場分布的情況。若流過單位寬度的導體薄板的線電流密度為I/2a,經過推導得到空間P(x,y)點處的磁感應強度大小的表達式為:
利用MATLAB可以直觀地將x-y平面內磁場分布的曲線在計算機上模擬出來。為了方便,設A=■為常數1,取a=20。其代碼如下:
[x,y]=meshgrid(-100:2:100); %生成二維網格
a=20;
a1=atan((x+a)./y)-atan((x-a)./y);
a2=(1/2).*log(((x+a).^2+y.^2)./((x-a).^2+y.^2));
c=sqrt(a1.^2+a2.^2); %計算磁感應強度
mesh(c);gridon %繪制磁力線
最終,得到無限長平面電流磁場的三維空間分布圖。
四、結束語
在“工程電磁場”課程教學過程中,充分利用MATLAB軟件矩陣運算和繪圖功能,一方面可以使學生從煩瑣的數學計算中解脫出來,另一方面讓學生對電磁場的抽象理論有感官認識,激發他們的學習興趣,提高教學質量。
參考文獻:
[1]魏巍.MATLAB信息工程工具箱技術手冊[M].北京:國防工業出版社,2004.
[2]張新建,范娟,魯艷旻,等.基于Matlab的“電力電子技術”課程仿真教學研究[J].中國電力教育,2014,(9):75-76,102.endprint