云南師范大學(xué)物理與電子信息學(xué)院 李小志 王 靜
基于MATLAB GUI的電流環(huán)磁場分布模擬
云南師范大學(xué)物理與電子信息學(xué)院 李小志 王 靜
利用MATLAB軟件的GUI設(shè)計功能建立用戶界面,模擬電流環(huán)的磁場及磁感線分布,可應(yīng)用于課堂的輔助教學(xué)。
電流環(huán);磁場;MATLAB GUI
環(huán)電流的磁場分布是電磁學(xué)中的一個重要課題。目前,國內(nèi)外很多學(xué)者對電流環(huán)的磁場分布作了大量的相關(guān)研究。郭志勇,劉得軍在文獻(xiàn)[1]《一種圓環(huán)電流空間磁場數(shù)值計算方法》中提到圓環(huán)電流是最基本的理論磁體單元。介紹了利用“割圓法”的思想,從畢奧—薩伐爾定律出發(fā),推導(dǎo)了一種簡單的圓環(huán)電流周圍空間任意點磁感應(yīng)強(qiáng)度數(shù)值計算方法。孫愛良在文獻(xiàn)[2]《環(huán)形電流平面內(nèi)的磁場》中應(yīng)用矢量方法并將數(shù)學(xué)中的橢圓積分應(yīng)用于計算中,給出了環(huán)形電流平面內(nèi)任意一點的磁感應(yīng)強(qiáng)度計算公式,更全面地討論了電流環(huán)的磁場在電流環(huán)平面上的磁場分布。張星輝在文獻(xiàn)[3]《圓電流磁感線的分布及磁感應(yīng)強(qiáng)度的函數(shù)表達(dá)式》一文中從矢量的角度對電流環(huán)在空間上任一一點的磁感線進(jìn)行了嚴(yán)格的計算分析,并利用MATLAB軟件將電流環(huán)在空間上的磁感線分布圖形象的顯示出來但繪制的磁感線分布圖為二維圖像用戶無法設(shè)置參數(shù)設(shè),不便于直觀比較不同參數(shù)下,電流環(huán)的磁場分布情況。
本文利用畢奧—薩伐爾定律討論圓環(huán)電流所產(chǎn)生的磁場分布情況,利用MATLAB軟件計算其數(shù)值解[4],并利用MATLAB軟件的GUI功能設(shè)計一交互式的用戶界面,用戶可以設(shè)定參數(shù)值,實時得到電流環(huán)的磁場分布和磁感線分布圖像。
圖1
y如圖1所示,根據(jù)畢奧—薩伐爾定律,以表示恒定電流的一電流元,在P點處產(chǎn)生的磁場:
根據(jù)以上三式得:
將(4)式和(5)式代入畢奧-薩伐爾定律,得:
即有:
將上式沿著x軸,y軸,z軸三個方向分解,并進(jìn)行積分,得:
由對稱性可知,只要求得xoz平面上的磁場,則整個空間的磁場可知。因此當(dāng)P點在x-z平面上時有y=0,此時P點的坐標(biāo)為(x,0,z)的計算結(jié)果具有普遍意義。
將P點的坐標(biāo)帶入以上各式,得:
MATLAB軟件具有強(qiáng)大的數(shù)值計算、仿真和可視化功能。對于(9)、(10)、(11)式的積分,可利用MATLAB的符號積分工具編程得到結(jié)果。在此基礎(chǔ)上,利用MATLAB的GUI功能編寫一參數(shù)可調(diào)的交互式用戶平臺。用戶任意輸入?yún)?shù),該平臺即可得到該參數(shù)條件下的環(huán)形電流在空間中的磁場分布和磁感線分布圖像,計算結(jié)果直觀、生動。
圖2 電流環(huán)的磁場分布設(shè)計界面
2.1 界面設(shè)計
GUI界面設(shè)計窗口由菜單欄、工具欄、控件工具欄及圖形對象設(shè)計區(qū)等部分組成。通過對這些環(huán)節(jié)編寫相應(yīng)的回調(diào)函數(shù)代碼,設(shè)計出用戶需要的GUI交互環(huán)境[5]。電流環(huán)磁場分布模擬的MATLAB GUI界面設(shè)計如圖2所示。
它包括:(1)建立1主面板;(2)建立一個坐標(biāo)軸對象,設(shè)置屬性為axes1.用于顯示磁場分布或磁感應(yīng)強(qiáng)度的分布情況;(3)建立2個單選按鈕,提供滿足操作者不同視角觀察需求;(4)建立2個按鈕,用于重置參數(shù)和繪制目標(biāo)圖像;(5)建立5個文本標(biāo)簽,其中一個文本標(biāo)簽標(biāo)明實驗主題,其余4個分別標(biāo)注環(huán)半徑、環(huán)電流及其相應(yīng)的單位;(6)建立3個文本框,其中2個用于分別輸入不同的參數(shù),1個根據(jù)坐標(biāo)軸對象標(biāo)注相應(yīng)的名稱;(7)建立一個下拉列表框,用戶通過選擇下拉列表框的項目運(yùn)行所需要的模擬圖像;(8)建立兩個菜單項,分別提示是否退出界面和實驗原理
本例設(shè)計的電流環(huán)磁場分布的模擬界面如圖2所示。
2.2 回調(diào)函數(shù)編寫
在gui設(shè)計中,通過回調(diào)函數(shù)的編寫來實現(xiàn)控件功能的實現(xiàn)。對于本例,回調(diào)程序的程序代碼如下:
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 %繪制磁感線分布圖像
用戶可以輸入不同的環(huán)半徑和環(huán)電流的值,繪制相應(yīng)的電流環(huán)磁場分布圖像和磁感線分布圖像。例如當(dāng)用戶設(shè)置環(huán)半徑為1m,環(huán)電流為200A時,點擊繪制圖像按鈕,得到以下如圖3和圖4所示的兩個圖像。
圖3 電流環(huán)y=0處x-z平面上的磁感強(qiáng)度分布
圖4 電流環(huán)y=0處x-z平面上的磁感線分布布
觀察以上圖像,可以直觀地看出,通電電流環(huán)的磁場分布關(guān)于環(huán)對稱。在附近小范圍內(nèi)的磁場強(qiáng),越往周邊擴(kuò)展,磁場衰減得非常快,其他區(qū)域的磁感強(qiáng)度較弱,電流環(huán)的磁感線分布也關(guān)于環(huán)對稱,并且越靠近原點,磁感線分布越密集。
在利用畢奧—薩伐爾定律對電流環(huán)產(chǎn)生的磁場進(jìn)行分析的基礎(chǔ)上,利用MATLAB軟件強(qiáng)大的積分運(yùn)算功能得到磁場分布,再利用 GUI功能設(shè)計一交互式的用戶界面。用戶可以任意輸入?yún)?shù)并選擇觀察視角,實時觀察電流環(huán)的磁感強(qiáng)度分布和磁感線分布,節(jié)省了大量的計算時間,并能形象、直觀得觀察磁場分布,是對課堂教學(xué)的有效輔助。
[1]郭智勇,劉得軍.一種圓環(huán)電流空間磁場數(shù)值計算方法[J].科學(xué)與技術(shù)工程,2013(29):8715-8720.
[2]孫愛良.環(huán)形電流平面內(nèi)磁場[J].蘭州鐵道學(xué)院學(xué)報,1999(1):101-104.
[3]張星輝.圓電流磁感線的分布及磁感應(yīng)強(qiáng)度的函數(shù)表達(dá)式[J].大學(xué)物理,2006(1):32-37.
[4]高翠云,汪莉麗.利用MATLAB進(jìn)行電磁學(xué)計算及可視化教學(xué)[J].孝感學(xué)院學(xué)報,2006:28-30.
[5]陳垚光.精通MATLAB GUI設(shè)計[M].北京:電子工業(yè)出版社,2011:182.
李小志(1993—),女,云南師范大學(xué)物理與電子信息學(xué)院2011級本科生,物理教育專業(yè)。
王靜(1979—),女,碩士,云南師范大學(xué)物理與電子信息學(xué)院講師,主要從事物理教育研究。