馮巧紅
滁州職業(yè)技術(shù)學(xué)院機電系,安徽滁州,239000
隨著全球產(chǎn)業(yè)的信息化、自動化、智能化的發(fā)展,對電氣類專業(yè)人才的需求日漸增長。電路理論是機械電子、通訊技術(shù)、信息工程以及自動化專業(yè)的一門重要的專業(yè)技術(shù)基礎(chǔ)課,是電氣類專業(yè)人才必備的理論基礎(chǔ)。然而,由于電類課程中很多知識理論性較強,在學(xué)習(xí)過程中存在公式多,電路圖、波形圖和示意圖多以及電路分析的方程和定理推理嚴謹?shù)纫幌盗袉栴},使得教師的教和學(xué)生的學(xué)成為教學(xué)中的共性問題。近幾年,隨著計算機技術(shù)的飛速發(fā)展,仿真技術(shù)在教學(xué)中的應(yīng)用越來越受到廣大師生的青睞,MATLAB GUI 設(shè)計工具因其可以設(shè)計出符合各種功能要求的人機交互界面以及快速產(chǎn)生各種圖形對象的開發(fā)環(huán)境,尤其在分析計算電路動態(tài)響應(yīng)、繪制響應(yīng)波形方面,有著一般軟件無法比擬的優(yōu)勢,因而倍受廣大電氣類師生們的青睞。筆者利用MATLAB GUI設(shè)計了二階電路在零輸入響應(yīng)下存在的三種狀態(tài)對應(yīng)的波形圖,為師生們直觀而形象地學(xué)習(xí)這部分內(nèi)容提供一個很好的參考平臺。
二階電路如圖1所示,設(shè)電路原來在穩(wěn)態(tài),在t=0時開關(guān)閉合,電路進入暫態(tài)。
根據(jù)KVL可得:uR+uL+uC=0
整理方程可得:
圖1 二階電路圖
該電路的初始條件有uC(0),iL(0),此處令初始條件為uC(0)=U0、iL(0)=0,下文也都以此作為初始條件。上述微分方程的特征根方程為:
LCp2+RCp+1=0
可知方程的根為:
根據(jù)電阻R、L、C的取值情況,電路的工作狀態(tài)可分三種情況來討論。
uC(t)=A1ep1t+A2ep2t
uC(t)=(A1+A2)e-δt
為了便于分析,下面在MATLAB的GUI的環(huán)境中設(shè)計分析界面。首先在布局編輯器中選用合適的控件,形成框架:建立3個坐標(biāo)軸對象,分別用來顯示過阻尼響應(yīng)、臨界阻尼響應(yīng)和欠阻尼響應(yīng);建立兩個按鈕,分別用來輸入數(shù)據(jù)、計算并繪制響應(yīng)曲線和結(jié)束程序;建立9個靜態(tài)文本標(biāo)簽,其中3個用來顯示輸入的3組不同的R、L、C的值以產(chǎn)生過阻尼、臨界和欠阻尼響應(yīng),其余6個文本標(biāo)簽用來標(biāo)注相應(yīng)控件的提示和顯示輸入的數(shù)據(jù)。具體界面設(shè)計如圖2所示,保存為指定文件名。
設(shè)置第一個按鈕的“String”為“分析”,作為數(shù)據(jù)輸入、結(jié)果分析及繪制相應(yīng)的響應(yīng)曲線。編寫代碼實現(xiàn)該按鈕執(zhí)行指定的功能,也就是先依次彈出3個輸入對話框以輸入并獲取R、L、C的數(shù)值,并且在相應(yīng)的文本標(biāo)簽中顯示出來,然后將所獲數(shù)據(jù)轉(zhuǎn)化為文本數(shù)據(jù)進行對應(yīng)的結(jié)果分析和計算,同時在對應(yīng)的3個坐標(biāo)軸上繪制對應(yīng)的響應(yīng)曲線。具體實現(xiàn)代碼如下:
圖2 GUI界面
function pushbutton1_Callback (hObject,event data,handles)
t=0:0.005:50;
str={'R','L','C','U'};
abcData=InputDlg(str,'輸入R L C U2的值',1); %從輸入對話框輸入R L C U0的值
if ~isempty(abcData)
R=str2double(abcData(1));
L=str2double(abcData(2));
C=str2double(abcData(3));
U=str2double(abcData(4));%從輸入對話框中獲取R L C U0的數(shù)值
set(handles.text1,'String',strcat('R=',abc Data(1),',L=',abcData(2),',C=',abc Data(3),',U0=',abcData(4))); %將R L C U0的值顯示在對話框中
x1=R/(2*L);x2=1/(L*C);P1=-x1+sqrt(x1^2-x2);P2=-x1-sqrt(x1^2-x2);
A1=P2*U/(P2-P1);A2=P1*U/(P1-P2);%計算相關(guān)參數(shù)
uc1=A1*exp(P1*t)+A2*exp(P2*t);
i1=C*P1*A1*exp(P1*t)+C*P2*A2 *exp(P2*t);
axes(handles.axes1);%選定第一個坐標(biāo)軸繪制過阻尼響應(yīng)曲線
set(handles.axes1,'XMinorTick','on');
plot(t,uc1,'k',t,i1,'r');%繪制過阻尼響應(yīng)曲線
end
t=0:0.1:4;
abcData=InputDlg(str,'輸入R L C U0的值',1);
if~isempty(abcData)
R=str2double(abcData(1));
L=str2double(abcData(2));
C=str2double(abcData(3));
U=str2double(abcData(4));
set(handles.text2,'String',strcat('R=',abcD ata(1),',L=',abc Data(2),',C=',abc Data(3),',U0=',abcData(4)));
x1=R/(2*L);
uc2=U*(1+x1*t).*exp(-x1*t);
i2=-U/L*t.*exp(-x1*t);
axes(handles.axes2);
plot(t,uc2,'K',t,i2,'r');
end
t=0:0.001:20;
abcData=InputDlg(str,'輸入R L C U1的值',1);
if~isempty(abcData)
R=str2double(abcData(1));
L=str2double(abcData(2));
C=str2double(abcData(3));
U=str2double(abcData(4));
set(handles.text3,'String',strcat('R=',abcD ata(1),',L=',abc Data(2),',C=',abc Data(3),',U0=',abcData(4)));
x=R/(2*L);w0=1/sqrt(L*C);w=sqrt (w0^2-x^2);
uc3=w0/w*U*exp(-x*t).*sin(w*t+atan(w/x));
i3=C*w0/w*U*exp(-x*t).*(w* cos(w*t+atan(w/x))-x*sin(w*t+atan (w/x)));
axes(handles.axes3);
plot(t,uc3,'k',t,i3,'r');
end
設(shè)置第二個按鈕的“String”為“結(jié)束”,用來結(jié)束程序。調(diào)用其Callback函數(shù)執(zhí)行關(guān)閉圖形,代碼如下:
function pushbutton2_Callback(hObject,event data,handles)
close
界面設(shè)計好以后,即可進行程序運行。點擊“運行”,單擊“分析”按鈕,依次調(diào)用3個輸入對話框,如圖3所示,分別輸入R、L、C的值(R=2,L=1,C=4,U0=2;R=2,L=0.5,C=0.5,U0=2;R=2,L=4,C=0.4,U0=2),在對應(yīng)的坐標(biāo)軸中繪制過阻尼、臨界和欠阻尼響應(yīng)曲線,如圖4所示。
圖3 輸入對話框
圖4 響應(yīng)波形
對電路動態(tài)響應(yīng)的研究具有重要的實際意義,因為我們有時需要采取相應(yīng)的措施以避免電路在動態(tài)過程中產(chǎn)生過電壓、過電流現(xiàn)象,而有時又需要利用動態(tài)過程達到某種技術(shù)目的。在分析二階電路的零輸入響應(yīng)時,利用MATLAB設(shè)計的GUI可以輸入不同的R、L、C值并實時觀察對應(yīng)的放電波形,這樣具有直觀性。既可以讓“教”者節(jié)省繪圖和分析時間,又可讓“學(xué)”者能通過改變輸入值而改變輸入波形,更具有直觀性,同時,利用GUI提供的良好的人機對話可以避免枯燥的理論分析,提高學(xué)習(xí)興趣,讓學(xué)生在學(xué)習(xí)電類專業(yè)基礎(chǔ)知識的同時,學(xué)習(xí)計算機軟件知識。
參考文獻:
[1]陳光,毛濤濤,王正林,等.精通MATLAB GUI設(shè)計[M].2版.北京:電子工業(yè)出版社,2011:219-271
[2]石生.電路基本分析[M].3版.北京:高等教育出版社,2008:228-265
[3]馮巧紅.二階電路的動態(tài)響應(yīng)分析與仿真[J].滁州學(xué)院學(xué)報,2012(2):42-44
[4]藺紅,樊艷芳.二階電路的MATLAB仿真[J].新疆大學(xué)學(xué)報:自然科學(xué)版,2004(1):65-68
[5]李樹燕.電路基礎(chǔ)[M].2版.北京.高等教育出版社,1994:478-487
[6]田敏,李江全,鄧紅濤,等.案例解說MATLAB典型控制應(yīng)用[M].北京:電子工業(yè)出版社,2010:28-34
[7]朱明揚.RLC串并聯(lián)穩(wěn)態(tài)電路的MATLAB界面設(shè)計[J].東北電力大學(xué)學(xué)報,2009(4):21-25
[8]劉洋,楊薇,張付杰.二階系統(tǒng)性能改善的MATLAB仿真分析[J].現(xiàn)代電子技術(shù),2012(12):98-100
[9]羅志娟,劉敏,易圖林,等.基于MATLAB的RC串聯(lián)電路暫態(tài)過程仿真[J].大學(xué)物理實驗,2012(4):105-107