欒 玲劉 杰馮立軍
(1大連大學(xué)物理科學(xué)與技術(shù)學(xué)院,遼寧大連 116622;2海軍大連艦艇學(xué)院基礎(chǔ)部,遼寧大連 116018)
基于MATLAB的點電荷系電場分布的用戶圖形界面設(shè)計
欒 玲1劉 杰1馮立軍2
(1大連大學(xué)物理科學(xué)與技術(shù)學(xué)院,遼寧大連 116622;2海軍大連艦艇學(xué)院基礎(chǔ)部,遼寧大連 116018)
電場強度與電勢是描述靜電場性質(zhì)的重要物理量,利用電場線與等勢面可以形象地描述靜電場的分布,對其進行數(shù)值計算和模擬顯示,可以使教學(xué)內(nèi)容更加直觀,提高教學(xué)效率.本文利用MATLAB編程和MATLAB的GUIDE開發(fā)了點電荷系所形成的電場場強分布及電勢分布的用戶圖形界面(GUI),實現(xiàn)了二維平面內(nèi)任意點電荷系電場的電場線和等勢面分布的可視化,并可以方便地調(diào)整電荷數(shù)目、電量及位置并實時顯示,在教學(xué)中能起到很好的演示作用.
Matlab;用戶圖形界面;等勢面;電場線
靜電場是大學(xué)物理教學(xué)的重要組成部分.由于場的概念比較抽象,學(xué)生對其理解相對困難.電場線與等勢面可以形象地描述靜電場的分布,因此研究用計算機繪制電場線和等勢面具有重要的現(xiàn)實意義.近年來一些文獻利用各類工程計算和數(shù)據(jù)分析軟件,對靜電場的分布進行數(shù)值計算和模擬顯示,但其研究往往局限于特定點數(shù)目、電量和特定位置的點電荷系[1-3].本文利用Matlab這一高級矩陣語言的強大矩陣運算能力和圖形顯示能力,直接計算出任意點電荷系在平面各點的電勢和電場強度,然后針對數(shù)值計算結(jié)果,利用Matlab的GUIDE開發(fā)了點電荷系電場分布的用戶圖形界面(GUI),繪制出等勢線以及電場線的矢量圖.用戶根據(jù)需求在一定范圍內(nèi)任意調(diào)整各點電荷的數(shù)目、電量及位置,即可實時顯示出該條件下的電場線和等勢面,具有良好的交互性,便于學(xué)生進行自主學(xué)習.
設(shè)真空中某平面上分布有若干個點電荷,電量分別為Q1,Q2,Q3,……,Qn,則點電荷系在場點P的電場強度為[4]

式中,ri為點電荷Qi到場點P的距離,ei為Qi指向場點P的位矢ri的單位矢量.
建立平面直角坐標系,設(shè)場點P的坐標為(x,y)、點電荷Qi的坐標為(xi,yi),則點電荷Qi在場點P處的電場強度的數(shù)值為

其分量分別為

則點電荷系在場點P處的電場強度為

該點電荷系在場點P的電勢為[4]

2.1 界面設(shè)計
GUI(Graphical User Interface),即圖形用戶接口,是一個整合了諸如窗口、圖標、按鈕、菜單和文本等圖形對象的用戶接口.選中或者激活這些對象通常都會導(dǎo)致某個動作或變化的發(fā)生.最常用的激活方法是用鼠標或其他定點設(shè)備來控制屏幕上指針或光標的移動,并通過按下鼠標按鍵通知應(yīng)用程序選中一個對象或要執(zhí)行其他的操作[5].
GUIDE全稱為Graphical User Interface Development Environment,是Matlab提供的用于開發(fā)GUI的專用環(huán)境.在編輯器中使用鼠標拖動需要的控件進行布局.
界面分為圖形顯示和參數(shù)設(shè)定兩個區(qū)域.圖形顯示設(shè)置有axes控件,用于電場線及等勢線的顯示.參數(shù)設(shè)定區(qū)域設(shè)置有“基本參數(shù)”“當前調(diào)整電荷”“顯示模式”“點電荷相關(guān)參數(shù)”4個uipanel.“基本參數(shù)”uipanel設(shè)定點電荷的數(shù)目以及顯示電場線時矢量箭頭的大小比例,2個參數(shù)可以通過Edit Text輸入,也可以使用Slider連續(xù)調(diào)整.“點電荷相關(guān)參數(shù)”uipanel集中設(shè)定點電荷的坐標、電量等參數(shù).“當前調(diào)整電荷”uipanel通過Radio Button來設(shè)定當前調(diào)整的是哪一個電荷的參數(shù).“顯示模式”uipanel通過Radio Button設(shè)定電荷分布于二維平面上或是三維立體空間內(nèi).

圖1 GUI界面設(shè)計
各控件拖放完成后,要對其屬性進行適當設(shè)置.如各控件的Tag值、取值范圍、缺省值,Slider控件的步長,以及各控件的callback屬性等.其中Tag值影響到回調(diào)操作,而callback屬性直接定義控件對象的控制動作.
3.2 M文件與callback函數(shù)
GUI的M文件是由GUIDE命令生成的,它控制整個GUI并決定它對用戶的行為進行響應(yīng).但是GUIDE命令只產(chǎn)生了M文件的骨架,為了實現(xiàn)必要的功能,用戶必須對各個響應(yīng)進行編程,即編寫callback函數(shù).
編寫callback函數(shù)時,要注意以下幾個方面的問題:
(1)Edit Text與Slider的協(xié)調(diào)
由于多個參數(shù)都可以通過Edit Text或Slider輸入,在使用一個控件輸入時,另一個控件的值要隨之改變,并做出相應(yīng)的顯示.而且各控件的取值要合理,如不能出現(xiàn)非整數(shù)個電荷數(shù),不允許輸入非數(shù)字的字符.必要時要通過程序檢錯和自動糾錯.
(2)Radio Button的顯示
當設(shè)定了點電荷的數(shù)目時,“當前調(diào)整”uipanel中要顯示相應(yīng)的Radio Button.例如,電荷數(shù)目為“1”時,只顯示標記為“1”的Radio Button;電荷數(shù)目為“2”時,顯示標記為“1”和“2”的2個Radio Button;以此類推.
(3)電荷的空間分布
當電荷分布于二維平面上時,平面內(nèi)電場強度的分布、等勢線的分布以及電場強度與等勢線的關(guān)系,在圖形中都能夠清晰準確地顯示,便于學(xué)生觀察理解.
而考慮到普遍性,電荷可能分布于三維空間中.需要對三維情況中的電場強度分布重新計算,并進行繪圖處理.由于數(shù)據(jù)處理及繪圖的復(fù)雜性,程序中對于步長的處理可不同于二維情況.
(4)電場分布的實時顯示
當重新設(shè)定了某個參數(shù)時,要立即刷新顯示出當前條件下的電場線與等勢線.
如圖2正電荷以紅色“+”表示,負電荷以藍色“-”表示.等勢線依其電勢的高低,從紅色逐漸過渡到藍色.用箭頭表示各點的電場強度的方向,箭頭的長度取決于該點場強的大小.當箭頭過小不便于觀察時,通過改變“場強顯示比例”同步按比例地調(diào)整各箭頭的大小.
設(shè)定顯示模式為“2D”,即電荷分布于同一平面,在該平面內(nèi)觀察電場強度及電勢的分布.此時“點電荷相關(guān)參數(shù)”uipanel只允許設(shè)定電荷的x、y坐標及電量,而不顯示設(shè)定z坐標的Edit Text和Slider.取點電荷數(shù)目為4,設(shè)各點電荷的坐標分別為(-3,0)、(3,0)、(0,3)、(0,-3),電量分別為+1c、+1c、+1c和-1c,電場分布如圖2所示.用Edit Text控件或Slider控件改變各點電荷的坐標或電量,可以看到電場分布的動態(tài)演化.

圖2 程序運行示例1
設(shè)定顯示模式為“3D”,即電荷分布于三維立體空間中.“點電荷相關(guān)參數(shù)”uipanel中出現(xiàn)設(shè)定z坐標的Edit Text和Slider.其余參數(shù)則繼承了二維情況時的各參數(shù)值.此時電場空間分布如圖3所示.同樣,通過Edit Text控件或Slider控件改變各點電荷的參數(shù),可以看到電場空間分布的動態(tài)演化.

圖3 程序運行示例2
由于點電荷的數(shù)目、坐標、電量等可以任意設(shè)置,尤其是可以通過Slider控件不間斷地連續(xù)調(diào)整參數(shù),可以觀察到電場的動態(tài)變化.4 結(jié)語
利用MATLAB設(shè)計了點電荷系電場分布的用戶圖形界面,實現(xiàn)了電荷數(shù)目不限的點電荷系電場線和等勢面分布的計算和顯示.用戶圖形界面,不需要改動源程序,就可以任意設(shè)定電荷的數(shù)量、位置及電荷量,可以直觀地分析比較不同條件下的電場分布情況,具有良好交互性,使用過程簡單、清晰.
[1]莫照,胡奇光.用計算機模擬點電荷在二維平面上的靜電場[J].大學(xué)物理,2003,1(22):31-33.
[2]劉雅彬,魯曉東.Matlab對靜電場等勢線的最小二乘描繪[J].大學(xué)物理實驗,2013,2(26):82-84.
[3]陳偉,易志俊,丁益民.利用Matlab模擬點電荷系的電場線和等勢面[J].大學(xué)物理實驗,2014,3(27):94-96.
[4]馬文蔚.物理學(xué)(上冊)[M].北京:高等教育出版社,2006: 154-178.
[5]亨塞爾曼.精通Matlab7[M].北京:清華大學(xué)出版社,2006: 440-463.
DISTRIBUTION OF THE ELECTRIC FIELD OF A POINT CHARGE SYSTEM BASED ON THE GUI OF MATLAB
Luan Ling1Liu Jie1Feng Lijun2
(1College of Physical Science and Technology,Dalian University,Dalian,Liaoning 116622;2Dept.of Basic Science,Dalian Naval Academy,Dalian,Liaoning 116018)
The electric field intensity and the electric potential are two fundamental physical quantities describing the static electric field,while the electric field lines and the equipotential surfaces are applied to describe the distribution of the electrostatic field graphically,whose numerical and analog displays can make teaching more intuitive and effective.MATLAB is used to develop the graphical user interface(GUI)of the distribution of the electric field intensity and the electric potential of a point charge system in this paper.The visualization of the distribution of the electric field is achieved at any point within a two-dimensional plane.The number together with the quantity and the position of the electric charges can be easily adjusted,which provide an effective demonstration in teaching.
MATLAB;Graphical User Interface(GUI);equipotential surface;electric field lines
2015-09-24;
2016-03-09
遼寧省教育廳高等教育本科教學(xué)改革研究項目(UPRP20140568);教育部高等學(xué)校大學(xué)物理課程教學(xué)指導(dǎo)委員會高等學(xué)校教學(xué)改革研究項目(DWJZW201403db).
欒玲,女,副教授,主要從事非線性光學(xué)與混沌同步研究和大學(xué)物理教學(xué)工作.luanling@dlu.edu.cn
欒玲,劉杰,馮立軍.基于Matlab的點電荷系電場分布的用戶圖形界面設(shè)計[J].物理與工程,2016,26(4):72-74,78.