曹萬蒼, 王中文, 孫福玉
(1.赤峰學(xué)院, 內(nèi)蒙古 赤峰 024000;2.吉林省公主嶺市范家屯第一中學(xué), 吉林 四平 136105)
基于GUI的電磁學(xué)實(shí)驗(yàn)處理系統(tǒng)研究
曹萬蒼1, 王中文2, 孫福玉1
(1.赤峰學(xué)院, 內(nèi)蒙古 赤峰 024000;2.吉林省公主嶺市范家屯第一中學(xué), 吉林 四平 136105)
我們對分壓電路進(jìn)行分析時(shí)一般會遇到圖像和數(shù)據(jù)的處理問題,而這些圖像和數(shù)據(jù)的處理使得我們很是費(fèi)心.文章利用 MATLAB 的 GUI功能設(shè)計(jì)了基于 GUI的分壓電路的處理方法.通過對 GUI開發(fā)環(huán)境中回調(diào)函數(shù)的設(shè)計(jì),在 GUI界面上實(shí)現(xiàn)了分壓電路圖像和數(shù)據(jù)的處理,展示了方便靈活的數(shù)據(jù)輸入和結(jié)果圖形輸出效果.對實(shí)現(xiàn)系統(tǒng)的最佳設(shè)計(jì)提供了一個(gè)實(shí)用、方便的仿真操作平臺.
GU I;分壓電路;交互式;回調(diào)函數(shù)
分壓電路的實(shí)驗(yàn)比較簡單,但實(shí)驗(yàn)的處理比較煩瑣,本文給出了一種 MATLAB的 GUI處理方法,可以非常容易的解決這個(gè)問題,通過 GUI界面,可非常方便的觀察不同 K值下分壓電路的實(shí)驗(yàn)動(dòng)態(tài)仿真結(jié)果的仿真輸出.
分壓電路通??煞譃殡娫?、控制和測量三個(gè)部分.測量電路是先根據(jù)實(shí)驗(yàn)要求而確定好的,例如選一標(biāo)準(zhǔn)的電壓表和它并聯(lián),它可等效于一個(gè)負(fù)載,這個(gè)負(fù)載可能是容性的、感性或簡單的電阻,以 RZ表示負(fù)載.根據(jù)測量的要求,負(fù)載的電流I和電壓值U在一定的范圍內(nèi)變化,這就要求有一個(gè)合適的電源.控制電路的任務(wù)就是控制負(fù)載的電流和電壓使其數(shù)值和范圍達(dá)到預(yù)定的要求.常用的制流電路和分壓電路控制元件主要使用滑線變阻器或變阻箱.
最簡單的分壓電路如圖一所示,變阻器有兩個(gè)固定端A、B與電源 E相接,負(fù)載 Rz接變阻器滑動(dòng)端 C和固定端 A上,當(dāng)滑動(dòng)頭 C由 A端滑至 B端,電壓表上電壓由 0變到E,它調(diào)節(jié)的范圍與變阻器的阻值無關(guān).
圖1 分壓電路
當(dāng)滑動(dòng)頭 C處于某一位置時(shí),AC兩端的分壓值 U為
U=K·X·E/(K+X-X·X)
圖2 分壓特性曲線
由實(shí)驗(yàn)可測得不同 K值的分壓特性曲線,用 X-Y坐標(biāo)表示如圖2所示.
GUI是 Graphical User Interfaces Development Environment的一個(gè)縮寫,意為圖形用戶界面開發(fā)環(huán)境,簡稱 GUI,GUI是MATLAB的一個(gè)子窗口,它具有非常強(qiáng)大的功能,其優(yōu)點(diǎn)是方便靈活的參數(shù)輸入,動(dòng)態(tài)仿真結(jié)果輸出.
可采用下列步驟設(shè)計(jì)分壓電路實(shí)驗(yàn)數(shù)據(jù)處理的 GUI界面:
(1)啟動(dòng) MATLAB,點(diǎn)擊 file菜單,選中 GUIDE子窗口選項(xiàng),打開 GUI的布局編輯器窗口.
(2)如圖三分壓電路 GUI界面所示,拖放所需要的控件,這里拖放一個(gè)動(dòng)態(tài)文本框到工作區(qū),用來放置分壓電路實(shí)驗(yàn)中的原始數(shù)據(jù),拖放一個(gè)坐標(biāo)軸控件用來放置分壓電路實(shí)驗(yàn)中不同 K值的曲線,拖放一個(gè) pop-up menu控件到工作區(qū),用于對 K值的選取,拖放三個(gè)靜態(tài)文框到工作區(qū),用來對動(dòng)態(tài)文本框、坐標(biāo)軸控件和 pop-up menu控件進(jìn)行說明,拖放一個(gè)按鈕控件,當(dāng)按鈕控件 Push Buttor按下后,GUI將開始運(yùn)行.我們可以使用幾何位置排列工具對這些控件的位置進(jìn)行重新排列和調(diào)整.
(3)雙擊所選控件,編輯其屬性,主要有 fontname,fontsize,fontweight,string,tag等屬性.編輯三個(gè)靜態(tài)文本的 fontsize屬性為‘16’,string屬性分別為‘labrate graphic date’、‘K’和‘original date’,其余的屬性為默認(rèn)值.編輯 pop-up menu的string屬性為‘0.05 0.1 1 2 10’,其余的屬性為默認(rèn)值.編輯按鈕控件的 fontsize屬性為‘16’,string屬性為‘開始’,其余屬性為默認(rèn)值.
(4)運(yùn)行 GUI程序,在自動(dòng)生成的 M-file中 添加 Push Buttor按鈕控件的 Callback回調(diào) 函數(shù)如下[1-6]所示:
x0=0:0.2:1;
U0=numeric(get(handles.u0,'string'));
k=get(handles.popupmenu1,'Value');
x=0:0.01:1;
Umax=10;
u=interp1(x0,U0,x,'spline');
switch k
case 1
hold on
k=0.05
U=Umax.*k.*x./(k+x-x.^2);
plot(x0,U0,'kp',x,U,'b.',x,u,'m-','LineWidth',3,'MarkerSize', 6);
gtext('k=0.05');
case 2
hold on
k=0.1
U=Umax.*k.*x./(k+x-x.^2)
plot(x0,U0,'kp',x,U,'b.',x,u,'m-','LineWidth',3,'MarkerSize',6);
gtext('k=0.1');
case 3
hold on
k=1
U=Umax.*k.*x./(k+x-x.^2)
plot(x0,U0,'kp',x,U,'b.',x,u,'m-','LineWidth',3,'Marker-Size',6);
gtext('k=1');
case 4
hold on
k=2
U=Umax.*k.*x./(k+x-x.^2)
plot(x0,U0,'kp',x,U,'b.',x,u,'m-','LineWidth',3,'Marker-Size',6);
gtext('k=2');
case 5
hold on
k=10
U=Umax.*k.*x./(k+x-x.^2)
plot(x0,U0,'kp',x,U,'b.',x,i,'m-','LineWidth',3,'MarkerSize', 6);
gtext('k=10');
end
legend('原始數(shù)據(jù) ','理論曲線 ','實(shí)驗(yàn)曲線 ')
(5)運(yùn)行 M-file,出現(xiàn)分壓電路 GUI界面如圖三所示,點(diǎn)擊 pop-up menu控件的下拉三角,從中選取不同的 K值,在原始數(shù)據(jù)處的動(dòng)態(tài)文本框中輸入分壓電路實(shí)驗(yàn)數(shù)據(jù),點(diǎn)擊 Push Buttor按鈕控件,即可在坐標(biāo)軸控件中觀察到分壓電路在不同的K值下的特性曲線.
圖3 分壓電路GUI界面
MATLAB不僅有強(qiáng)大的計(jì)算功能,還有很強(qiáng)的圖形顯示功能.利用這些特性及 GUI功能可以實(shí)現(xiàn)交互式實(shí)驗(yàn)數(shù)據(jù)處理.圖形用戶界面的設(shè)計(jì)確定了應(yīng)用程序的主要框架和基本功能,完成了窗口、圖標(biāo)、按鈕等用戶界面,軟件開發(fā)者只需在由軟件開發(fā)工具自動(dòng)生成的程序代碼中添加自己的運(yùn)算或控制代碼,就可以完成自己的設(shè)計(jì).本文利用 MATLAB設(shè)計(jì)了基于 GUI的實(shí)驗(yàn)處理方法,展示了方便靈活的數(shù)據(jù)輸入和結(jié)果圖形輸出效果,開發(fā)設(shè)計(jì)出了具有良好界面的交互處理實(shí)驗(yàn)系統(tǒng).
〔1〕賈起民,鄭永令,陳暨耀.電磁學(xué)[M].北京:高等教育出版社,2001.
〔2〕孫福玉,韓偉,等.MATLAB程序設(shè)計(jì)教程[M].遠(yuǎn)方出版社,2006.
〔3〕彭芳麟.數(shù)學(xué)物理方程的MATLAB解法與可視化[M].北京:清華大學(xué)出版社,2004.
〔4〕李顯龍.MATLAB界面設(shè)計(jì)與編譯技巧[M].北京:電子工業(yè)出版社,2006.225-283.
〔5〕楊述武.普通物理實(shí)驗(yàn)(二、電磁學(xué)部分)[M].北京:高等教育出版社,2001.
〔6〕吳越華,馮昊.基于Matlab圖形用戶界面的對話框設(shè)計(jì)的應(yīng)用[J].福建電腦,2003(5).
O4-39
A
1673-260X(2014)08-0007-02
赤峰學(xué)院學(xué)報(bào)·自然科學(xué)版2014年15期