欒 玲劉 杰馮立軍
(1大連大學(xué)物理科學(xué)與技術(shù)學(xué)院,遼寧大連 116622;2海軍大連艦艇學(xué)院基礎(chǔ)部,遼寧大連 116018)
基于MATLAB的點(diǎn)電荷系電場(chǎng)分布的用戶圖形界面設(shè)計(jì)
欒 玲1劉 杰1馮立軍2
(1大連大學(xué)物理科學(xué)與技術(shù)學(xué)院,遼寧大連 116622;2海軍大連艦艇學(xué)院基礎(chǔ)部,遼寧大連 116018)
電場(chǎng)強(qiáng)度與電勢(shì)是描述靜電場(chǎng)性質(zhì)的重要物理量,利用電場(chǎng)線與等勢(shì)面可以形象地描述靜電場(chǎng)的分布,對(duì)其進(jìn)行數(shù)值計(jì)算和模擬顯示,可以使教學(xué)內(nèi)容更加直觀,提高教學(xué)效率.本文利用MATLAB編程和MATLAB的GUIDE開(kāi)發(fā)了點(diǎn)電荷系所形成的電場(chǎng)場(chǎng)強(qiáng)分布及電勢(shì)分布的用戶圖形界面(GUI),實(shí)現(xiàn)了二維平面內(nèi)任意點(diǎn)電荷系電場(chǎng)的電場(chǎng)線和等勢(shì)面分布的可視化,并可以方便地調(diào)整電荷數(shù)目、電量及位置并實(shí)時(shí)顯示,在教學(xué)中能起到很好的演示作用.
Matlab;用戶圖形界面;等勢(shì)面;電場(chǎng)線
靜電場(chǎng)是大學(xué)物理教學(xué)的重要組成部分.由于場(chǎng)的概念比較抽象,學(xué)生對(duì)其理解相對(duì)困難.電場(chǎng)線與等勢(shì)面可以形象地描述靜電場(chǎng)的分布,因此研究用計(jì)算機(jī)繪制電場(chǎng)線和等勢(shì)面具有重要的現(xiàn)實(shí)意義.近年來(lái)一些文獻(xiàn)利用各類工程計(jì)算和數(shù)據(jù)分析軟件,對(duì)靜電場(chǎng)的分布進(jìn)行數(shù)值計(jì)算和模擬顯示,但其研究往往局限于特定點(diǎn)數(shù)目、電量和特定位置的點(diǎn)電荷系[1-3].本文利用Matlab這一高級(jí)矩陣語(yǔ)言的強(qiáng)大矩陣運(yùn)算能力和圖形顯示能力,直接計(jì)算出任意點(diǎn)電荷系在平面各點(diǎn)的電勢(shì)和電場(chǎng)強(qiáng)度,然后針對(duì)數(shù)值計(jì)算結(jié)果,利用Matlab的GUIDE開(kāi)發(fā)了點(diǎn)電荷系電場(chǎng)分布的用戶圖形界面(GUI),繪制出等勢(shì)線以及電場(chǎng)線的矢量圖.用戶根據(jù)需求在一定范圍內(nèi)任意調(diào)整各點(diǎn)電荷的數(shù)目、電量及位置,即可實(shí)時(shí)顯示出該條件下的電場(chǎng)線和等勢(shì)面,具有良好的交互性,便于學(xué)生進(jìn)行自主學(xué)習(xí).
設(shè)真空中某平面上分布有若干個(gè)點(diǎn)電荷,電量分別為Q1,Q2,Q3,……,Qn,則點(diǎn)電荷系在場(chǎng)點(diǎn)P的電場(chǎng)強(qiáng)度為[4]
式中,ri為點(diǎn)電荷Qi到場(chǎng)點(diǎn)P的距離,ei為Qi指向場(chǎng)點(diǎn)P的位矢ri的單位矢量.
建立平面直角坐標(biāo)系,設(shè)場(chǎng)點(diǎn)P的坐標(biāo)為(x,y)、點(diǎn)電荷Qi的坐標(biāo)為(xi,yi),則點(diǎn)電荷Qi在場(chǎng)點(diǎn)P處的電場(chǎng)強(qiáng)度的數(shù)值為
其分量分別為
則點(diǎn)電荷系在場(chǎng)點(diǎn)P處的電場(chǎng)強(qiáng)度為
該點(diǎn)電荷系在場(chǎng)點(diǎn)P的電勢(shì)為[4]
2.1 界面設(shè)計(jì)
GUI(Graphical User Interface),即圖形用戶接口,是一個(gè)整合了諸如窗口、圖標(biāo)、按鈕、菜單和文本等圖形對(duì)象的用戶接口.選中或者激活這些對(duì)象通常都會(huì)導(dǎo)致某個(gè)動(dòng)作或變化的發(fā)生.最常用的激活方法是用鼠標(biāo)或其他定點(diǎn)設(shè)備來(lái)控制屏幕上指針或光標(biāo)的移動(dòng),并通過(guò)按下鼠標(biāo)按鍵通知應(yīng)用程序選中一個(gè)對(duì)象或要執(zhí)行其他的操作[5].
GUIDE全稱為Graphical User Interface Development Environment,是Matlab提供的用于開(kāi)發(fā)GUI的專用環(huán)境.在編輯器中使用鼠標(biāo)拖動(dòng)需要的控件進(jìn)行布局.
界面分為圖形顯示和參數(shù)設(shè)定兩個(gè)區(qū)域.圖形顯示設(shè)置有axes控件,用于電場(chǎng)線及等勢(shì)線的顯示.參數(shù)設(shè)定區(qū)域設(shè)置有“基本參數(shù)”“當(dāng)前調(diào)整電荷”“顯示模式”“點(diǎn)電荷相關(guān)參數(shù)”4個(gè)uipanel.“基本參數(shù)”uipanel設(shè)定點(diǎn)電荷的數(shù)目以及顯示電場(chǎng)線時(shí)矢量箭頭的大小比例,2個(gè)參數(shù)可以通過(guò)Edit Text輸入,也可以使用Slider連續(xù)調(diào)整.“點(diǎn)電荷相關(guān)參數(shù)”uipanel集中設(shè)定點(diǎn)電荷的坐標(biāo)、電量等參數(shù).“當(dāng)前調(diào)整電荷”uipanel通過(guò)Radio Button來(lái)設(shè)定當(dāng)前調(diào)整的是哪一個(gè)電荷的參數(shù).“顯示模式”uipanel通過(guò)Radio Button設(shè)定電荷分布于二維平面上或是三維立體空間內(nèi).
圖1 GUI界面設(shè)計(jì)
各控件拖放完成后,要對(duì)其屬性進(jìn)行適當(dāng)設(shè)置.如各控件的Tag值、取值范圍、缺省值,Slider控件的步長(zhǎng),以及各控件的callback屬性等.其中Tag值影響到回調(diào)操作,而callback屬性直接定義控件對(duì)象的控制動(dòng)作.
3.2 M文件與callback函數(shù)
GUI的M文件是由GUIDE命令生成的,它控制整個(gè)GUI并決定它對(duì)用戶的行為進(jìn)行響應(yīng).但是GUIDE命令只產(chǎn)生了M文件的骨架,為了實(shí)現(xiàn)必要的功能,用戶必須對(duì)各個(gè)響應(yīng)進(jìn)行編程,即編寫(xiě)callback函數(shù).
編寫(xiě)callback函數(shù)時(shí),要注意以下幾個(gè)方面的問(wèn)題:
(1)Edit Text與Slider的協(xié)調(diào)
由于多個(gè)參數(shù)都可以通過(guò)Edit Text或Slider輸入,在使用一個(gè)控件輸入時(shí),另一個(gè)控件的值要隨之改變,并做出相應(yīng)的顯示.而且各控件的取值要合理,如不能出現(xiàn)非整數(shù)個(gè)電荷數(shù),不允許輸入非數(shù)字的字符.必要時(shí)要通過(guò)程序檢錯(cuò)和自動(dòng)糾錯(cuò).
(2)Radio Button的顯示
當(dāng)設(shè)定了點(diǎn)電荷的數(shù)目時(shí),“當(dāng)前調(diào)整”uipanel中要顯示相應(yīng)的Radio Button.例如,電荷數(shù)目為“1”時(shí),只顯示標(biāo)記為“1”的Radio Button;電荷數(shù)目為“2”時(shí),顯示標(biāo)記為“1”和“2”的2個(gè)Radio Button;以此類推.
(3)電荷的空間分布
當(dāng)電荷分布于二維平面上時(shí),平面內(nèi)電場(chǎng)強(qiáng)度的分布、等勢(shì)線的分布以及電場(chǎng)強(qiáng)度與等勢(shì)線的關(guān)系,在圖形中都能夠清晰準(zhǔn)確地顯示,便于學(xué)生觀察理解.
而考慮到普遍性,電荷可能分布于三維空間中.需要對(duì)三維情況中的電場(chǎng)強(qiáng)度分布重新計(jì)算,并進(jìn)行繪圖處理.由于數(shù)據(jù)處理及繪圖的復(fù)雜性,程序中對(duì)于步長(zhǎng)的處理可不同于二維情況.
(4)電場(chǎng)分布的實(shí)時(shí)顯示
當(dāng)重新設(shè)定了某個(gè)參數(shù)時(shí),要立即刷新顯示出當(dāng)前條件下的電場(chǎng)線與等勢(shì)線.
如圖2正電荷以紅色“+”表示,負(fù)電荷以藍(lán)色“-”表示.等勢(shì)線依其電勢(shì)的高低,從紅色逐漸過(guò)渡到藍(lán)色.用箭頭表示各點(diǎn)的電場(chǎng)強(qiáng)度的方向,箭頭的長(zhǎng)度取決于該點(diǎn)場(chǎng)強(qiáng)的大小.當(dāng)箭頭過(guò)小不便于觀察時(shí),通過(guò)改變“場(chǎng)強(qiáng)顯示比例”同步按比例地調(diào)整各箭頭的大小.
設(shè)定顯示模式為“2D”,即電荷分布于同一平面,在該平面內(nèi)觀察電場(chǎng)強(qiáng)度及電勢(shì)的分布.此時(shí)“點(diǎn)電荷相關(guān)參數(shù)”uipanel只允許設(shè)定電荷的x、y坐標(biāo)及電量,而不顯示設(shè)定z坐標(biāo)的Edit Text和Slider.取點(diǎn)電荷數(shù)目為4,設(shè)各點(diǎn)電荷的坐標(biāo)分別為(-3,0)、(3,0)、(0,3)、(0,-3),電量分別為+1c、+1c、+1c和-1c,電場(chǎng)分布如圖2所示.用Edit Text控件或Slider控件改變各點(diǎn)電荷的坐標(biāo)或電量,可以看到電場(chǎng)分布的動(dòng)態(tài)演化.
圖2 程序運(yùn)行示例1
設(shè)定顯示模式為“3D”,即電荷分布于三維立體空間中.“點(diǎn)電荷相關(guān)參數(shù)”uipanel中出現(xiàn)設(shè)定z坐標(biāo)的Edit Text和Slider.其余參數(shù)則繼承了二維情況時(shí)的各參數(shù)值.此時(shí)電場(chǎng)空間分布如圖3所示.同樣,通過(guò)Edit Text控件或Slider控件改變各點(diǎn)電荷的參數(shù),可以看到電場(chǎng)空間分布的動(dòng)態(tài)演化.
圖3 程序運(yùn)行示例2
由于點(diǎn)電荷的數(shù)目、坐標(biāo)、電量等可以任意設(shè)置,尤其是可以通過(guò)Slider控件不間斷地連續(xù)調(diào)整參數(shù),可以觀察到電場(chǎng)的動(dòng)態(tài)變化.4 結(jié)語(yǔ)
利用MATLAB設(shè)計(jì)了點(diǎn)電荷系電場(chǎng)分布的用戶圖形界面,實(shí)現(xiàn)了電荷數(shù)目不限的點(diǎn)電荷系電場(chǎng)線和等勢(shì)面分布的計(jì)算和顯示.用戶圖形界面,不需要改動(dòng)源程序,就可以任意設(shè)定電荷的數(shù)量、位置及電荷量,可以直觀地分析比較不同條件下的電場(chǎng)分布情況,具有良好交互性,使用過(guò)程簡(jiǎn)單、清晰.
[1]莫照,胡奇光.用計(jì)算機(jī)模擬點(diǎn)電荷在二維平面上的靜電場(chǎng)[J].大學(xué)物理,2003,1(22):31-33.
[2]劉雅彬,魯曉東.Matlab對(duì)靜電場(chǎng)等勢(shì)線的最小二乘描繪[J].大學(xué)物理實(shí)驗(yàn),2013,2(26):82-84.
[3]陳偉,易志俊,丁益民.利用Matlab模擬點(diǎn)電荷系的電場(chǎng)線和等勢(shì)面[J].大學(xué)物理實(shí)驗(yàn),2014,3(27):94-96.
[4]馬文蔚.物理學(xué)(上冊(cè))[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é)改革研究項(xiàng)目(UPRP20140568);教育部高等學(xué)校大學(xué)物理課程教學(xué)指導(dǎo)委員會(huì)高等學(xué)校教學(xué)改革研究項(xiàng)目(DWJZW201403db).
欒玲,女,副教授,主要從事非線性光學(xué)與混沌同步研究和大學(xué)物理教學(xué)工作.luanling@dlu.edu.cn
欒玲,劉杰,馮立軍.基于Matlab的點(diǎn)電荷系電場(chǎng)分布的用戶圖形界面設(shè)計(jì)[J].物理與工程,2016,26(4):72-74,78.