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

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

其分量分別為

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

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

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

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

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

圖3 程序運行示例2
由于點電荷的數目、坐標、電量等可以任意設置,尤其是可以通過Slider控件不間斷地連續調整參數,可以觀察到電場的動態變化.4 結語
利用MATLAB設計了點電荷系電場分布的用戶圖形界面,實現了電荷數目不限的點電荷系電場線和等勢面分布的計算和顯示.用戶圖形界面,不需要改動源程序,就可以任意設定電荷的數量、位置及電荷量,可以直觀地分析比較不同條件下的電場分布情況,具有良好交互性,使用過程簡單、清晰.
[1]莫照,胡奇光.用計算機模擬點電荷在二維平面上的靜電場[J].大學物理,2003,1(22):31-33.
[2]劉雅彬,魯曉東.Matlab對靜電場等勢線的最小二乘描繪[J].大學物理實驗,2013,2(26):82-84.
[3]陳偉,易志俊,丁益民.利用Matlab模擬點電荷系的電場線和等勢面[J].大學物理實驗,2014,3(27):94-96.
[4]馬文蔚.物理學(上冊)[M].北京:高等教育出版社,2006: 154-178.
[5]亨塞爾曼.精通Matlab7[M].北京:清華大學出版社,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
遼寧省教育廳高等教育本科教學改革研究項目(UPRP20140568);教育部高等學校大學物理課程教學指導委員會高等學校教學改革研究項目(DWJZW201403db).
欒玲,女,副教授,主要從事非線性光學與混沌同步研究和大學物理教學工作.luanling@dlu.edu.cn
欒玲,劉杰,馮立軍.基于Matlab的點電荷系電場分布的用戶圖形界面設計[J].物理與工程,2016,26(4):72-74,78.