張光斌 王冰雪
(陜西師范大學(xué)物理學(xué)與信息技術(shù)學(xué)院 陜西 西安 710119)
基于Matlab GUI的物理演示實(shí)驗(yàn)設(shè)計
張光斌 王冰雪
(陜西師范大學(xué)物理學(xué)與信息技術(shù)學(xué)院 陜西 西安 710119)
以中學(xué)物理實(shí)驗(yàn)中的布朗運(yùn)動、光的干涉以及波的合成與疊加為例,運(yùn)用Matlab語言在圖形可視化、圖形用戶界面設(shè)計(GUI)等方面的優(yōu)勢,通過模擬仿真及動態(tài)演示,將復(fù)雜、抽象的物理過程直觀地體現(xiàn)在教學(xué)過程中,使教學(xué)效果更加突出明顯,內(nèi)容更加形象生動,達(dá)到提高課堂教學(xué)效率的目的.
中學(xué)物理實(shí)驗(yàn)設(shè)計 Matlab GUI 布朗運(yùn)動 光的干涉 波的疊加
物理實(shí)驗(yàn)在物理學(xué)的發(fā)展過程中占據(jù)著重要的地位.生活中的一些物理現(xiàn)象可以幫助學(xué)生探究自然的規(guī)律,構(gòu)建物理學(xué)基礎(chǔ)知識,并有利于培養(yǎng)學(xué)生的形象思維能力.一般探究性實(shí)驗(yàn)可以使學(xué)生通過實(shí)驗(yàn)探究物理學(xué)規(guī)律,加深對物理知識的理解;開放性實(shí)驗(yàn)可以充分發(fā)揮學(xué)生的想象力,通過設(shè)計不同的實(shí)驗(yàn)過程,培養(yǎng)學(xué)生的發(fā)散性思維和創(chuàng)新性能力.但是在實(shí)際的教學(xué)過程中,我們往往會遇到一些對實(shí)驗(yàn)設(shè)施要求高、實(shí)驗(yàn)現(xiàn)象不夠明顯甚至觀察不到的問題,從而給學(xué)生對物理知識的學(xué)習(xí)和理解造成一定的影響.隨著計算機(jī)技術(shù)的發(fā)展,利用計算機(jī)軟件模擬和仿真一些抽象的物理實(shí)驗(yàn)現(xiàn)象成為解決這一問題的重要手段[1~3].Matlab語言在數(shù)值仿真、實(shí)驗(yàn)數(shù)據(jù)處理、圖像可視化等具有獨(dú)特的優(yōu)勢,已經(jīng)有很多學(xué)者將其應(yīng)用于大學(xué)數(shù)學(xué)、物理和電子類課程的教學(xué)中.本文利用Matlab GUI(Graphical UserInterfaces)在圖形演示方面的獨(dú)特優(yōu)勢,開發(fā)了幾個可用于中學(xué)物理演示實(shí)驗(yàn)的圖形用戶界面,該實(shí)驗(yàn)演示界面可以將復(fù)雜、抽象的物理過程和現(xiàn)象,直觀地展現(xiàn)在學(xué)生的面前,使學(xué)生對知識點(diǎn)有全新的認(rèn)識,從而提高學(xué)生的認(rèn)知和理解能力.
Matlab是MathWorks[3]公司于1984 年推出的一套具有科學(xué)計算、符號運(yùn)算和圖像處理等多種功能的高性能軟件,其應(yīng)用領(lǐng)域主要包括數(shù)值計算、數(shù)據(jù)處理、統(tǒng)計分析、工程等各個方面,在各大公司、科研機(jī)構(gòu)和高校得到了普遍應(yīng)用.Matlab GUI是一種交互式的軟件開發(fā)工具,利用其在軟件開發(fā)方面的的強(qiáng)大功能,結(jié)合實(shí)際應(yīng)用背景,可以開發(fā)出具有不同應(yīng)用的工具箱[4].
2.1 GUI簡介
GUI是由窗口、光標(biāo)、按鍵、菜單、文字說明等對象構(gòu)成的一個具有開發(fā)功能的圖形用戶界面,如圖1所示.
圖1 Matlab GUI界面設(shè)計模板
用戶可以通過Matlab的句柄操作,選擇、激活這些圖形對象,使計算機(jī)產(chǎn)生某種動作或變化,實(shí)現(xiàn)參數(shù)變化、數(shù)值計算、圖形顯示等.一般創(chuàng)建Matlab圖形用戶界面必須具有以下3個基本元素.
(1)組件
在Matlab GUI中的每一個項目(如按鈕、標(biāo)簽、面板、編輯框等)都是一個圖形化組件.組件可分為3類:圖形化控件(如按鈕、編輯框、列表、滾動條等)、靜態(tài)元素(如窗口和文本字符串)、菜單和坐標(biāo)系.
圖形化控件和靜態(tài)元素由函數(shù)uicontrol創(chuàng)建,菜單由函數(shù)uimenu和uicontextmenu創(chuàng)建,坐標(biāo)系經(jīng)常用于顯示圖形化數(shù)據(jù),由函數(shù)axes創(chuàng)建.
(2)圖形用戶界面
GUI的每一個組件都必須安排在圖形用戶界面中.在畫數(shù)據(jù)圖像時,圖像窗口通常會被自動創(chuàng)建.但還可以用函數(shù)figure來創(chuàng)建空圖像窗口,空圖像窗口經(jīng)常用于放置各種類型的組件.
(3)編寫組件回調(diào)程序
圖形用戶界面上的組件是可以被用戶用鼠標(biāo)單擊或者用鍵盤輸入一些信息來進(jìn)行控制.在Matlab GUI中,是通過編寫每一個組件的回調(diào)程序來實(shí)現(xiàn)對每一個組件的控制,從而在用鼠標(biāo)點(diǎn)擊時,組件可以完成相應(yīng)的功能.
2.2 GUI設(shè)計原則與步驟
(1)GUI的設(shè)計原則
一般而言,一個較好的GUI應(yīng)遵循以下原則:
1)簡單性.是指在設(shè)計GUI界面時,應(yīng)力求簡潔、直觀、清晰地體現(xiàn)出界面的功能和特征,刪除一些可有可無的設(shè)計.
2)一致性.是指界面的風(fēng)格盡量一致.
3)習(xí)慣性.是指用戶在設(shè)計界面時,應(yīng)盡量使用人們熟悉和經(jīng)常使用的的符號和標(biāo)志,設(shè)計出友好的用戶界面.
(2)GUI的一般設(shè)計步驟
GUI的設(shè)計主要包括界面設(shè)計和程序?qū)崿F(xiàn),一般制作步驟如下.
步驟1:分析界面所要實(shí)現(xiàn)的主要功能,明確設(shè)計任務(wù);
步驟2:從使用者和功能實(shí)現(xiàn)的角度出發(fā),構(gòu)思草圖,并上機(jī)實(shí)現(xiàn);
步驟3:編寫對象的相應(yīng)實(shí)現(xiàn)程序,對其要實(shí)現(xiàn)的功能進(jìn)行逐項檢查.
下面以3個典型的物理實(shí)驗(yàn)為例[5,6],設(shè)計 Matlab GUI界面,并通過編寫回調(diào)程序來實(shí)現(xiàn)對物理實(shí)驗(yàn)現(xiàn)象的演示.
3.1 用Matlab GUI演示分子的布朗運(yùn)動
3.1.1 實(shí)驗(yàn)原理
1827年英國植物學(xué)家布朗用顯微鏡觀察懸浮在液體中的花粉時發(fā)現(xiàn),懸浮在液體中的小顆??傇诓粩嗟刈鰺o規(guī)則運(yùn)動,后來把懸浮微粒的這種無規(guī)則運(yùn)動叫做布朗運(yùn)動.在液體中,懸浮顆粒受到來自各個方向的液體分子不斷撞擊,當(dāng)顆粒足夠小時,受到來自各個方向液體分子的撞擊是不平衡的.在某一瞬間,微粒在某個方向受到的撞擊作用強(qiáng),致使微粒沿著這個方向運(yùn)動.在下一瞬間,微粒在另一方向受到的撞擊強(qiáng),致使懸浮微粒又朝著另一個方向運(yùn)動.這樣,就導(dǎo)致了懸浮微粒的無規(guī)則的布朗運(yùn)動[6].
3.1.2 布朗運(yùn)動的GUI窗口設(shè)計
(1)建立1個坐標(biāo)軸對象,用于顯示布朗運(yùn)動的動態(tài)模擬;
(2)建立3個按鈕,分別用于開始、結(jié)束布朗運(yùn)動和關(guān)閉窗口;
(3)建立1個靜態(tài)文本標(biāo)簽,用于顯示實(shí)驗(yàn)名稱.
創(chuàng)建好GUI界面并調(diào)整好各控件的大概位置后,設(shè)置這些控件的屬性,布朗運(yùn)動的仿真實(shí)驗(yàn)結(jié)果如圖2所示.
圖2 布朗運(yùn)動演示實(shí)驗(yàn)界面
圖2中,可以通過點(diǎn)擊“開始”按鈕來顯示分子的布朗運(yùn)動,通過點(diǎn)擊“結(jié)束”按鈕結(jié)束程序.
3.2 用Matlab GUI演示光的雙縫干涉
3.2.1 實(shí)驗(yàn)原理
如圖3所示,當(dāng)某一單色光通過兩個窄縫射向屏幕時,位置不同的兩個相同頻率相同相位的相干光源S1和S2在相遇時形成光的疊加.由于到達(dá)屏幕各點(diǎn)的距離不同,引起相位差,在某些區(qū)域始終加強(qiáng),在另一些區(qū)域始終減弱,造成了光的干涉現(xiàn)象.
圖3 雙縫干涉示意圖
兩個相干光源到屏幕上任意點(diǎn)的距離為
其中,L1為S1到屏幕上一點(diǎn)P的距離,L2為S2到屏幕上P點(diǎn)的距離,則光程差為
ΔL=L1-L2
相位差為
式中λ為單色光的波長.則兩個振幅A0合成后的振幅和光強(qiáng)分別為
(1)
3.2.2 光的雙縫干涉實(shí)驗(yàn)界面設(shè)計
根據(jù)光的雙縫干涉的實(shí)驗(yàn)原理,按照以下的步驟設(shè)計實(shí)驗(yàn)的GUI界面.
(1)建立2個坐標(biāo)軸對象,用于顯示雙縫干涉的圖樣條紋和光強(qiáng)分布;
(2)建立3個按鈕,用于繪制圖樣、清空圖樣和結(jié)束程序;
(3)建立1個靜態(tài)文本標(biāo)簽,用于顯示實(shí)驗(yàn)名稱;
(4)建立3個可編輯文本框,分別用來輸入波長、雙縫之間的距離d和光柵到屏幕的距離L;
(5)建立3個靜態(tài)文本標(biāo)簽,用來標(biāo)注相應(yīng)控件的提示.
創(chuàng)建好GUI界面并調(diào)整好各控件的大概位置后,設(shè)置這些控件的屬性,并通過編寫回調(diào)程序?qū)丶M(jìn)行操作,雙縫干涉的仿真實(shí)驗(yàn)結(jié)果如圖4所示.實(shí)驗(yàn)中,可用改變波長、縫的距離和光柵到屏幕的距離,觀察不同的光雙峰干涉圖像.
圖4 光的雙縫干涉實(shí)驗(yàn)仿真界面
3.3 波形圖的繪制及波的疊加
3.3.1 波的疊加原理
不同波源產(chǎn)生的幾列波在同一種介質(zhì)中傳播時,每列波都會保持各自的特性(頻率、波長、振幅、傳播方向等),每一列波并不因其他波的存在而改變其傳播規(guī)律.在幾列波相遇的區(qū)域內(nèi),任何一個質(zhì)點(diǎn)的振動都等于各列波單獨(dú)傳播時在該位置所引起的振動之和,這叫做 “波的疊加原理”.
設(shè)有以下兩列簡諧波,其方程分別為
y1=a1cos(ω1t+θ1)y2=a2cos(ω2t+θ2)
(2)
根據(jù)波疊加原理,疊加后的方程為
y=y1+y2=
a1cos(ω1t+θ1)+a2cos(ω2t+θ2)
(3)
3.3.2 波的疊加GUI實(shí)驗(yàn)界面設(shè)計
(1)建立3個坐標(biāo)軸對象,用于顯示已知波的圖像和疊加后波的圖像;
(2)建立3個按鈕,用于繪制圖像、清空圖像和結(jié)束程序;
(3)建立6個可編輯文本框,用來輸入對應(yīng)變量;
(4)建立6個靜態(tài)文本標(biāo)簽,用來標(biāo)注相應(yīng)控件的提示.
(5)建立1個靜態(tài)文本標(biāo)簽,用于顯示實(shí)驗(yàn)名稱;
(6)建立2個面板,分別用于顯示已知波形的相關(guān)參數(shù).
創(chuàng)建好GUI界面并調(diào)整好各控件的大概位置后,設(shè)置這些控件的屬性,仿真實(shí)驗(yàn)結(jié)果如圖5所示.該圖像用戶界面可用分別輸入兩個波的振幅、頻率和相位,實(shí)現(xiàn)對不同頻率、不同幅度和相位的兩個波疊加后波形的觀察.
圖5 波的疊加實(shí)驗(yàn)仿真結(jié)果
本文利用Matlab軟件對中學(xué)物理實(shí)驗(yàn)中常見的布朗運(yùn)動、波的干涉、波的疊加進(jìn)行了GUI界面設(shè)計,利用圖形用戶界面設(shè)計可以更容易地改變實(shí)驗(yàn)參數(shù),應(yīng)用圖像顯示可以很方便地顯示在不同條件下的實(shí)驗(yàn)現(xiàn)象和實(shí)驗(yàn)結(jié)論.
因此,基于Matlab語言的物理實(shí)驗(yàn)?zāi)M方法具有教學(xué)意圖明確、成本低廉、操作簡單、人機(jī)交互性強(qiáng)、交互參數(shù)調(diào)節(jié)方便、響應(yīng)速度快等特點(diǎn).在教學(xué)中適當(dāng)?shù)匾隡atlab物理實(shí)驗(yàn)輔助教學(xué),可以使教學(xué)內(nèi)容更加生動形象,有助于學(xué)生對物理概念的深入理解,提高課堂的教學(xué)效果.
1 李斌,譚鵬,陳國杰,等.MATLAB GUI 在大學(xué)物理實(shí)驗(yàn)教學(xué)中的應(yīng)用.實(shí)驗(yàn)科學(xué)與技術(shù),2013,11(3):35~37
2 于建,姚宇鳳.基于Matlab GUI的“信號與系統(tǒng)”課程教學(xué)仿真系統(tǒng)開發(fā).河北民族師范學(xué)院學(xué)報,2016,36(2):105~109
3 崔祥霞,楊兆華,陳君.基于MATLAB的光學(xué)衍射與干涉實(shí)驗(yàn)仿真.泰山學(xué)院學(xué)報,2009,31(3):109~113
4 陳垚光,毛濤濤,王正林,等.精通MATLAB GUI設(shè)計.北京:電子工業(yè)出版社,2008
5 范中和.大學(xué)物理學(xué)下冊.(第二版).西安:陜西師范大學(xué)出版社, 2008
6 肖明,肖飛,主編.普通物理實(shí)驗(yàn)教程.北京:科學(xué)出版社,2011
2016-12-26)