馬會芳,閆映策
(太原師范學院 物理系,山西 太原 030031)
Matlab GUI在電磁學可視化教學中的應用
馬會芳,閆映策
(太原師范學院 物理系,山西 太原 030031)
針對電磁學課程內(nèi)容理論性強、概念抽象的特點,利用Matlab強大的數(shù)值計算和圖形繪制功能,文章以電粒子在均勻電磁場中的運動和平面電磁波的傳播為例,制作了Matlab圖形用戶界面,動態(tài)展示了帶電粒子的運動和平面電磁波的傳播,解決了傳統(tǒng)教學方式在可視化環(huán)節(jié)上難以實現(xiàn)動態(tài)性的問題,展現(xiàn)了Matlab的圖形用戶界面在電磁學可視化教學方面的優(yōu)越性。
可視化教學;Matlab GUI;電磁學
“電磁學”是物理專業(yè)學生學習的一門難度較大的專業(yè)課程,主要講授電磁場的基本規(guī)律和性質(zhì)。磁場和電磁波的抽象性,使學生在學習過程中存在概念難以理解、空間模型構建困難的問題[1]。教師在電磁學的教學過程中,需要繪制大量的圖形幫助學生構建。傳統(tǒng)的黑板教學,存在繪圖效率低的局限,結合多媒體教學,雖然將教師從復雜的繪圖中解放出來,但仍存在動態(tài)性、立體性差的問題[2]。因此,如何使抽象的模型立體化、動態(tài)化,在電磁學的教學中就顯得尤為重要。
目前,利用Matlab輔助教學,在電磁學教學可視化方面取得了較好的效果,不但提高了教師的教學效率,也提高了學生的學習效率。Matlab的圖形用戶界面(Graphical User Interface,GUI)是Matlab推出的圖形用戶開發(fā)環(huán)境,具有操作界面簡單、交互性強的優(yōu)點[3]。本文將以帶電粒子在電磁場中的運動和平面電磁波的傳播為例,講述如何利用Matlab GUI實現(xiàn)在電磁學教學中的動態(tài)演示。不但可以協(xié)助學生構建直觀的物理情景,還可以激發(fā)學生的學習興趣,而且便于學生自學。
Matlab GUI 具有操作界面簡單的優(yōu)點。用戶通過簡單的鼠標操作可以設計GUI用戶界面,同時自動生成m文件框架,只需將程序?qū)懭雖文件中各組件對應的callback函數(shù)下,即可控實現(xiàn)相應組件對用戶操作的響應。GUI能幫助使用者向計算機發(fā)出操作指令。教師在課堂授課的過程中,使用GUI生成的用戶界面,無需根據(jù)不同的物理情景進行復雜的程序操作;學生自學時,也不需考慮程序的編寫問題,通過與界面間的互動即可實現(xiàn)對程序的操作。
1.1 帶電粒子在恒定電磁場中的運動
以帶電粒子在恒定電磁場中的運動為例,演示Matlab GUI在電磁學可視化教學中的應用。帶電粒子在不同分布的電場、磁場中有不同的運動軌跡,情況比較復雜,考慮帶電粒子以任意速度和角度進入電磁場中,運動方程如下:

將其在空間直角坐標系內(nèi)分解:

在Matlab中,調(diào)用ode45函數(shù)求解方程組(2),可獲得帶電粒子在任一時刻的位置坐標。在GUI空白模板上的工具欄中選擇組件,GUI設計界面如圖1所示。

圖1 GUI設計界面
包括輸入?yún)?shù)的文本框、命令按鈕以及顯示運行結果的坐標軸。保存GUI界面,系統(tǒng)將自動生成對應的m文件框架。在m文件中,將下列語句寫入“開始”按鈕對應的callback函數(shù)下:global g Ex Ey Ez Bx By Bz A。
g=get(handles.g_check,’Value’);%獲取重力復選框的取值,考慮重力時返回值為1
Bx=str2num(get(handles.Bx,’String’));%獲取用戶輸入的磁場、電場等參數(shù)

保存并運行m文件,生成的GUI界面如圖2所示。用戶使用時,在參數(shù)設置區(qū)輸入?yún)?shù),點擊“開始”按鈕,帶電粒子的運動軌跡將在空間直角坐標系中顯示。在程序的演示過程中,學生們可以直觀地觀察到帶電粒子的動態(tài),圖2(a)和(b)分別截取了帶電粒子兩個不同時刻的軌跡。通過界面右側列表框,還可以選擇在平面坐標系中,分解觀察帶電粒子在不同受力方向上的軌跡,更好地幫助學生理解帶電粒子的受力和運動狀態(tài)。
可以看出,利用GUI設計的操作界面,只需要和界面互動,就可以顯示運動的狀態(tài),不涉及復雜的程序調(diào)試,方便學生自學,學生通過操作觀察,可以全面地構建帶電粒子在磁場中的運動空間模型,深入理解本部分知識要點。
1.2 平面電磁波的傳播
在電磁學的課程中還涉及部分平面電磁波的內(nèi)容,學生們還未學習電動力學,對電磁波和波動方程難以理解,對偏微分方程的求解更是一頭霧水,因此給學生建立一個平面電磁波的波動模型,可以加深學生對波動傳播以及等相位面的認識,為電動力學課程做鋪墊。我們利用有限差分法解波動方程[4],結合GUI設計了一個可以顯示平面電磁波在自由空間傳播狀態(tài)的界面。截取兩個不同時刻的波動,如圖3所示,可以直觀地觀測到電場的振動和波動傳播過程,幫助學生理解電磁波波動狀態(tài)的傳播。
在界面中的列表框中選擇波面圖,如圖4所示,還可以觀察電磁波傳播過程中的波面圖,紅色表示振動處于波峰,藍色表示處于波谷。通過演示,既可以提高學生的空間想象力,又可以加強學生對波面及平面電磁波的認識。

圖2 帶電粒子的運動軌跡

圖3 平面電磁波的波動

圖4 平面電磁波的波面
利用Matlab GUI操作簡單、交互性強的優(yōu)點設計動態(tài)演示界面,可將電磁學問題清晰直觀地呈現(xiàn)出來,既可以將教師從復雜的圖形繪制中解放,又能培養(yǎng)學生的空間想象力,激發(fā)學生獨立探索問題解決問題的能力。本文以帶電粒子在恒定電磁場中的運動和平面電磁波的傳播為例,制作了動態(tài)演示界面,可以看到利用Matlab GUI能夠直觀、動態(tài)地演示電磁學問題,這對輔助電磁學教學,提高學生對物理概念的理解和專業(yè)知識的獲取都有幫助。
[1]楊凡.電磁學課程教學改革探討[J].綿陽師范學院學報,2011(5):133-136.
[2]錢旭鴦.教學設計可視化研究:教學設計的視覺轉向[J].全球教育展望,2010(7):30-35.
[3]張志涌,楊祖櫻. Matlab教程R2010a[M].北京:北京航天航空大學出版社,2010.
[4]趙德奎,劉勇. Matlab在有限差分法數(shù)值計算中的應用[J].四川理工學院學報(自然科學版),2005(4):61-64.
Application of Matlab GUI in the visualized teaching of electromagnetism
Ma Huifang, Yan Yingce
(Physics Department of Taiyuan Normal University, Taiyuan 030031, China)
In this paper, aiming at the strong theoretical and abstract characteristics of electromagnetism course content, making use of the powerful numerical calculation and graphic rendering function of Matlab. The Matlab user interface is fabricated by taking the motion of the electric particles in the uniform electromagnetic fi eld and the propagation of the plane electromagnetic wave as an example.Dynamic display of the motion of charged particles and the propagation of planar electromagnetic waves, which solves the problem that the traditional teaching methods are dif fi cult to realize the dynamic in the visualization, and demonstrates the superiority of Matlab graphical user interface in electromagnetism visualization teaching.
visualization teaching; Matlab GUI; electromagnetism
國家自然科學基金應急管理項目;項目編號:11647038。
馬會芳(1983— ),女,內(nèi)蒙古赤峰,博士,講師;研究方向:理論物理。