云南師范大學物理與電子信息學院 李小志 王 靜
基于MATLAB GUI的電流環磁場分布模擬
云南師范大學物理與電子信息學院 李小志 王 靜
利用MATLAB軟件的GUI設計功能建立用戶界面,模擬電流環的磁場及磁感線分布,可應用于課堂的輔助教學。
電流環;磁場;MATLAB GUI
環電流的磁場分布是電磁學中的一個重要課題。目前,國內外很多學者對電流環的磁場分布作了大量的相關研究。郭志勇,劉得軍在文獻[1]《一種圓環電流空間磁場數值計算方法》中提到圓環電流是最基本的理論磁體單元。介紹了利用“割圓法”的思想,從畢奧—薩伐爾定律出發,推導了一種簡單的圓環電流周圍空間任意點磁感應強度數值計算方法。孫愛良在文獻[2]《環形電流平面內的磁場》中應用矢量方法并將數學中的橢圓積分應用于計算中,給出了環形電流平面內任意一點的磁感應強度計算公式,更全面地討論了電流環的磁場在電流環平面上的磁場分布。張星輝在文獻[3]《圓電流磁感線的分布及磁感應強度的函數表達式》一文中從矢量的角度對電流環在空間上任一一點的磁感線進行了嚴格的計算分析,并利用MATLAB軟件將電流環在空間上的磁感線分布圖形象的顯示出來但繪制的磁感線分布圖為二維圖像用戶無法設置參數設,不便于直觀比較不同參數下,電流環的磁場分布情況。
本文利用畢奧—薩伐爾定律討論圓環電流所產生的磁場分布情況,利用MATLAB軟件計算其數值解[4],并利用MATLAB軟件的GUI功能設計一交互式的用戶界面,用戶可以設定參數值,實時得到電流環的磁場分布和磁感線分布圖像。

圖1
y如圖1所示,根據畢奧—薩伐爾定律,以表示恒定電流的一電流元,在P點處產生的磁場:


根據以上三式得:

將(4)式和(5)式代入畢奧-薩伐爾定律,得:

即有:

將上式沿著x軸,y軸,z軸三個方向分解,并進行積分,得:

由對稱性可知,只要求得xoz平面上的磁場,則整個空間的磁場可知。因此當P點在x-z平面上時有y=0,此時P點的坐標為(x,0,z)的計算結果具有普遍意義。
將P點的坐標帶入以上各式,得:

MATLAB軟件具有強大的數值計算、仿真和可視化功能。對于(9)、(10)、(11)式的積分,可利用MATLAB的符號積分工具編程得到結果。在此基礎上,利用MATLAB的GUI功能編寫一參數可調的交互式用戶平臺。用戶任意輸入參數,該平臺即可得到該參數條件下的環形電流在空間中的磁場分布和磁感線分布圖像,計算結果直觀、生動。

圖2 電流環的磁場分布設計界面
2.1 界面設計
GUI界面設計窗口由菜單欄、工具欄、控件工具欄及圖形對象設計區等部分組成。通過對這些環節編寫相應的回調函數代碼,設計出用戶需要的GUI交互環境[5]。電流環磁場分布模擬的MATLAB GUI界面設計如圖2所示。
它包括:(1)建立1主面板;(2)建立一個坐標軸對象,設置屬性為axes1.用于顯示磁場分布或磁感應強度的分布情況;(3)建立2個單選按鈕,提供滿足操作者不同視角觀察需求;(4)建立2個按鈕,用于重置參數和繪制目標圖像;(5)建立5個文本標簽,其中一個文本標簽標明實驗主題,其余4個分別標注環半徑、環電流及其相應的單位;(6)建立3個文本框,其中2個用于分別輸入不同的參數,1個根據坐標軸對象標注相應的名稱;(7)建立一個下拉列表框,用戶通過選擇下拉列表框的項目運行所需要的模擬圖像;(8)建立兩個菜單項,分別提示是否退出界面和實驗原理
本例設計的電流環磁場分布的模擬界面如圖2所示。
2.2 回調函數編寫
在gui設計中,通過回調函數的編寫來實現控件功能的實現。對于本例,回調程序的程序代碼如下:
axes(handles.axes1);
cla;
popup_sel_index = get(handles.listbox1,’Value’);
I=str2double(get(handles.edit2,’String’));
R=str2double(get(handles.edit1,’String’));
switch popup_sel_index
case 1 %繪制磁場分布圖像
mu0=4*pi*1e-7;
c0=mu0/(4*pi)*I;
N=100;
x=linspace(-3,3,N);y=x;
thta0=linspace(0,2*pi,N+1);
thta1=thta0(1:N);
y1=R*cos(thta1);
z1=R*sin(thta1);
thta2=thta0(2:N+1);
y2=R*cos(thta2);
z2=R*sin(thta2);
xc=0;yc=(y2+y1)/2;zc=(z2+z1)/2;
dlx=0;dly=y2-y1;dlz=z2-z1;
NGx=N;NGy=NGx;
for i=1:NGy
for j=1:NGx
rx=x(j)-xc;ry=y(i)-yc;rz=0-zc;
r3=sqrt(rx.^2+ry.^2+rz.^2).^3;
dlxr_x=dly.*rz-dlz.*ry;
dlxr_y=dly.*rx-dlx.*rz;
Bx(i,j)=sum(c0*dlxr_x./r3);
Bz(i,j)=sum(c0*dlxr_y./r3);
B=(Bx.^2+Bz.^2).^0.5;
end
end
surf(x,y,B);
shading interp
grid on
case 2 %繪制磁感線分布圖像
用戶可以輸入不同的環半徑和環電流的值,繪制相應的電流環磁場分布圖像和磁感線分布圖像。例如當用戶設置環半徑為1m,環電流為200A時,點擊繪制圖像按鈕,得到以下如圖3和圖4所示的兩個圖像。

圖3 電流環y=0處x-z平面上的磁感強度分布

圖4 電流環y=0處x-z平面上的磁感線分布布
觀察以上圖像,可以直觀地看出,通電電流環的磁場分布關于環對稱。在附近小范圍內的磁場強,越往周邊擴展,磁場衰減得非常快,其他區域的磁感強度較弱,電流環的磁感線分布也關于環對稱,并且越靠近原點,磁感線分布越密集。
在利用畢奧—薩伐爾定律對電流環產生的磁場進行分析的基礎上,利用MATLAB軟件強大的積分運算功能得到磁場分布,再利用 GUI功能設計一交互式的用戶界面。用戶可以任意輸入參數并選擇觀察視角,實時觀察電流環的磁感強度分布和磁感線分布,節省了大量的計算時間,并能形象、直觀得觀察磁場分布,是對課堂教學的有效輔助。
[1]郭智勇,劉得軍.一種圓環電流空間磁場數值計算方法[J].科學與技術工程,2013(29):8715-8720.
[2]孫愛良.環形電流平面內磁場[J].蘭州鐵道學院學報,1999(1):101-104.
[3]張星輝.圓電流磁感線的分布及磁感應強度的函數表達式[J].大學物理,2006(1):32-37.
[4]高翠云,汪莉麗.利用MATLAB進行電磁學計算及可視化教學[J].孝感學院學報,2006:28-30.
[5]陳垚光.精通MATLAB GUI設計[M].北京:電子工業出版社,2011:182.
李小志(1993—),女,云南師范大學物理與電子信息學院2011級本科生,物理教育專業。
王靜(1979—),女,碩士,云南師范大學物理與電子信息學院講師,主要從事物理教育研究。