摘 要:為了將用抽象、繁雜的數(shù)學(xué)公式描述的電路特性直觀地顯示出來(lái),借助Matlab強(qiáng)大的數(shù)學(xué)計(jì)算和圖形顯示功能,利用Matlab GUIDE設(shè)計(jì)工具開(kāi)發(fā)了電路特性演示平臺(tái)。平臺(tái)可動(dòng)態(tài)演示電路參數(shù)變化時(shí)的電路特性,將常用的典型電路特性以圖形方式直觀地表現(xiàn)出來(lái)。實(shí)例表明,該平臺(tái)界面良好、操作方便,便于理解電路特性,有助于提高課堂教學(xué)效果。
關(guān)鍵詞:電路特性; Matlab; GUI; 演示平臺(tái)
中圖分類號(hào):TN71034; TP391.77 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1004373X(2012)22016003
電路特性往往是由抽象、繁雜的數(shù)學(xué)公式描述的,其難以理解,不易掌握。受實(shí)驗(yàn)學(xué)時(shí)和設(shè)備的限制,有關(guān)電路特性測(cè)試的實(shí)驗(yàn)開(kāi)設(shè)得很少?;谏鲜隹紤],利用 Matlab高效的數(shù)值計(jì)算功能和完備的圖形處理功能,并運(yùn)用Matlab自帶的GUIDE設(shè)計(jì)工具,開(kāi)發(fā)了界面友好、操作簡(jiǎn)單的電路特性演示平臺(tái),旨在動(dòng)態(tài)演示電路參數(shù)變化時(shí)電路特性的變化情況,解決繁雜數(shù)學(xué)公式抽象、不易理解的難題,幫助理解和掌握電路特性。
1 演示平臺(tái)總體結(jié)構(gòu)
電路特性演示平臺(tái)模塊結(jié)構(gòu)如圖1所示,界面布局采用自頂向下設(shè)計(jì)方法,即先設(shè)計(jì)主界面,再設(shè)計(jì)子界面。平臺(tái)包含11個(gè)演示項(xiàng)目,涵蓋了常用的典型電路的特性演示。
2 主界面設(shè)計(jì)
主界面是用戶進(jìn)入各個(gè)演示平臺(tái)的入口。為方便用戶進(jìn)入具體的演示項(xiàng)目,采用子菜單選擇演示項(xiàng)目,如圖2所示。
圖2 電路特性演示平臺(tái)主界面在每個(gè)子菜單的回調(diào)函數(shù)中用close關(guān)閉當(dāng)前窗口,打開(kāi)子菜單指定的文件。如項(xiàng)目1回調(diào)函數(shù)如下:
function xiangmu1_Callback(hObject, eventdata, handles)
close
shiyan1
其中xiangmu1是“項(xiàng)目1”子菜單的Tag(標(biāo)識(shí)),shiyan1是要打開(kāi)文件的文件名。
3 演示項(xiàng)目設(shè)計(jì)
每個(gè)演示項(xiàng)目的設(shè)計(jì)包括三個(gè)內(nèi)容:數(shù)學(xué)模型建立、界面設(shè)計(jì)和控件回調(diào)函數(shù)設(shè)計(jì)。
3.1 數(shù)學(xué)模型建立
每個(gè)演示項(xiàng)目旨在演示動(dòng)態(tài)演示電路特性,因此首先要對(duì)每個(gè)演示電路建立數(shù)學(xué)模型,確定最能反映該電路特性的參數(shù),然后根據(jù)需要演示的內(nèi)容建立數(shù)學(xué)模型。
以RLC串聯(lián)的二階電路零輸入響應(yīng)為例,其響應(yīng)形式有三種[1],即過(guò)阻尼、欠阻尼和無(wú)阻尼。阻尼來(lái)自電阻,因此電阻的大小決定了響應(yīng)的形式。當(dāng)R<2L/C時(shí),為欠阻尼,表現(xiàn)為電容振蕩性放電;當(dāng)R<2L/C時(shí),為過(guò)阻尼,表現(xiàn)為電容單調(diào)性放電;當(dāng)R=0時(shí),為無(wú)阻尼,表現(xiàn)為等幅震蕩。演示的目的在于觀察電阻變化時(shí)電路響應(yīng)的三種形式。為此選擇電阻為可變參數(shù),觀察電阻變化時(shí)電容電壓和電感電流的響應(yīng)形式,建立的數(shù)學(xué)模型為三種情況下的電容電壓和電感電流的數(shù)學(xué)表達(dá)式。
3.2 界面設(shè)計(jì)
利用Matlab自帶的 GUIDE可以完成用戶界面設(shè)計(jì)。仍以二階電路零輸入響應(yīng)為例,其界面如圖3所示。
圖3 二階電路零入響應(yīng)演示界面其中用兩個(gè)坐標(biāo)軸顯示電容電壓和電感電流的波形,一個(gè)坐標(biāo)軸顯示電路圖,兩個(gè)靜態(tài)文本框分別顯示電路初始條件和電路參數(shù),為了動(dòng)態(tài)顯示電阻變化時(shí)的響應(yīng),采用滑動(dòng)條改變電阻,其值用可編輯文本框顯示,“特性說(shuō)明”按鈕用于打開(kāi)一個(gè)“特性說(shuō)明”窗口,“返回”按鈕用于返回主界面,“退出”按鈕用于關(guān)閉該窗口。
3.3 控件回調(diào)函數(shù)設(shè)計(jì)
控件響應(yīng)的事件是通過(guò)執(zhí)行其回調(diào)函數(shù)完成的。以二階電路零輸入響應(yīng)為例,主要是滑動(dòng)條的回調(diào)函數(shù)(Callback)設(shè)計(jì),設(shè)計(jì)的關(guān)鍵問(wèn)題:
(1) 滑動(dòng)條控件屬性設(shè)置
滑動(dòng)條(slider)包括3個(gè)部分,即滑動(dòng)槽、滑塊和滑動(dòng)條兩端的箭頭,它們分別表示取值范圍、滑動(dòng)條當(dāng)前位置和滑動(dòng)條的移動(dòng)。二階電路零輸入響應(yīng)觀察的是電阻R從0~20 Ω時(shí)的電路特性,因此滑動(dòng)條的MAX設(shè)定為20,滑塊移動(dòng)距離為默認(rèn)值,即MAX的10%,箭頭移動(dòng)距離為MAX的5%,即每點(diǎn)擊一次箭頭,變化1 Ω。
(2) 滑動(dòng)條當(dāng)期值獲取
為了將滑動(dòng)條當(dāng)前值顯示出來(lái),并將其代入相應(yīng)的公式中計(jì)算,可將滑動(dòng)條當(dāng)前值賦予一個(gè)可編輯文本框,并將該文本框“String”賦給變量R。在滑動(dòng)條回調(diào)函數(shù)中此部分程序代碼如下:
set(handles.edit1,′String′,...
num2str(get(handles.slider1,′Value′)));
R=str2num(get(handles.edit1,′String′));
(3)無(wú)阻尼、欠阻尼和過(guò)阻尼三種情況響應(yīng)波形顯示
將滑動(dòng)條當(dāng)前值,即電阻R的值2L/C與比較,確定是哪種響應(yīng)形式,比較時(shí)用if –else條件語(yǔ)句,程序結(jié)構(gòu)及部分代碼如下:
if R<=2*sqrt(L/C)
if R==0
set(handles.uc1,′NextPlot′,′replace′);
%刪除當(dāng)前坐標(biāo)軸和它的子對(duì)象,用新的坐標(biāo)軸代替
set(handles.iL1,′NextPlot′,′replace′);
set(handles.axes20,′Visible′,′on′);
%坐標(biāo)軸可視
set(handles.axes22,′Visible′,′on′);
set(handles.text7,′String′,′無(wú)阻尼′)
…;
%計(jì)算特征根、求出響應(yīng)
axes(handles.axes20);
%在Tag是axes20的坐標(biāo)軸上畫(huà)圖
plot(t,uc,′k′),grid on;
%畫(huà)uc波形
axis([0 1-1 1]);
%設(shè)定坐標(biāo)軸范圍
axes(handles.axes22);
plot(t,iL,′k′),grid on
%畫(huà)iL波形
axis([0 1-0.2 0.2])
else
…;
%刪除當(dāng)前坐標(biāo)軸和它的子對(duì)象,用新的坐標(biāo)軸代替,畫(huà)出欠阻尼波形
end
end
if R>2*sqrt(L/C)
…;
%畫(huà)出過(guò)阻尼波形
end
在二階電路零輸入響應(yīng)演示界面中點(diǎn)擊滑動(dòng)條改變電阻值,得到三種情況下響應(yīng)波形如圖4~圖6所示。
圖4 R=0無(wú)阻尼波形
圖5 R從1 Ω變化到10 Ω欠阻尼波形4 結(jié) 語(yǔ)
基于Matlab GUI 開(kāi)發(fā)的電路特性演示平臺(tái),充分發(fā)揮了Matlab在計(jì)算電路響應(yīng)、繪制圖形方面的優(yōu)勢(shì),將抽象的數(shù)學(xué)公式用圖形直觀地顯示出來(lái)。平臺(tái)層次分明,操作簡(jiǎn)單,調(diào)整電路參數(shù),可實(shí)時(shí)觀察結(jié)果,便于學(xué)生理解和掌握電路特性。
圖6 R從11 Ω變化到20 Ω過(guò)阻尼波形
參 考 文 獻(xiàn)
[1] 于歆杰,朱桂萍,陸文娟.電路原理[M].北京:清華大學(xué)出版社,2007.
[2] 陳垚光,毛濤濤.精通Matlab CUI設(shè)計(jì)[M ].北京:電子工業(yè)出版社,2008.
[3] 龔妙昆.基于Matlab的GUI 設(shè)計(jì)應(yīng)用軟件[J].微型電腦應(yīng)用,2011,27(8):5355.
[4] 田社平,陳洪亮,張峰.Matlab函數(shù)編程在電路分析中的應(yīng)用[J].電氣電子教學(xué)學(xué)報(bào),2010,32(6):105107.
[5] 廖曉輝,秦毅男.基于Matlab 圖形用戶界面的電路分析演示系統(tǒng)[J].電腦知識(shí)與技術(shù),2007(2):591592.
[6] 宗節(jié)保,段柳云.基于Matlab GUI軟件制作方法的研究與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2010,18(7):5456.
[7] 丁益民,陳倩.基于Matlab的RLC電路暫態(tài)過(guò)程的模擬[J].大學(xué)物理實(shí)驗(yàn),2011,24(2):7880.
[8] 李娟.基于Matlab的計(jì)算機(jī)輔助電路分析[J].微計(jì)算機(jī)信息,2010,26(3):178181.
[9] 吳迪,劉軍,徐朋,等.基于Matlab GUI的大學(xué)物理交互式演示實(shí)驗(yàn)動(dòng)畫(huà)設(shè)計(jì)[J].大學(xué)物理實(shí)驗(yàn),2010,23(1):5253.
[10] 李念念,張紅梅.基于Matlab GUI的信號(hào)與系統(tǒng)分析軟件開(kāi)發(fā)[J].工業(yè)控制計(jì)算機(jī),2011,24(3):1921.
作者簡(jiǎn)介: 李京秀 女,1964年出生,山西人,碩士,教授。主要從事電路理論、電子技術(shù)方面教學(xué)與研究工作。