3.7.1 線性系統(tǒng)的MATLAB表示
系統(tǒng)的傳遞函數(shù)用兩個數(shù)組來表示??紤]下列系統(tǒng):  | (3-17) |
該系統(tǒng)可以表示為兩個數(shù)組,每一個數(shù)組由相應的多項式系數(shù)組成,并且以s的降冪排列如下: num=[0 0 25] den=[1 4 25] 注意,必要時需補加數(shù)字零。 如果已知num和den(即閉環(huán)傳遞函數(shù)的分子和分母),則命令step(num,den),step(num,den,t) 將會產(chǎn)生出單位階躍響應圖(在階躍命令中,t為用戶指定時間)。 當階躍命令的左端含有變量時,如:[y,x,t]=step(num,den,t)顯示屏上不會顯示出響應曲線。因此,必須利用plot命令去查看響應曲線。矩陣y和x分別包含系統(tǒng)在計算時間點t求出的輸出響應和狀態(tài)響應(y的列數(shù)與輸出量數(shù)相同,每一行對應一個相應的時間t單元。x的列數(shù)與狀態(tài)數(shù)相同,每一行對應一個相應的時間t單元)。 3.7.2傳遞函數(shù)系統(tǒng)單位階躍響應的求法 下面討論由方程(3-17)描述的系統(tǒng)的單位階躍響應。MATLAB Program3-1將給出該系統(tǒng)的單位階躍響應曲線。該單位階躍響應曲線如圖3-13所示。 其源程序為: MATLAB Program 3-1 num=[0 0 25]; den=[1 4 25]; step(num,den) grid title('Unit-Step Response of G(s)=25/(s^2+4s+25)') 3.7.3在圖形屏幕上書寫文本 為了在圖形屏幕上書寫文本,例如,可以輸入下列語句: text(3.4, -0.06, 'Y1') 和 text(3.4, 1.4, 'Y2') 第一個語句告訴計算機,在坐標點x=3.4,y=-0.06上寫出"Y1"。類似地,第二個語句告訴計算機,在坐標點x=3.4,y=1.4上寫出"Y1"。 3.7.4脈沖響應 利用下列MATLAB命令中的一種命令,可以得到控制系統(tǒng)的單位脈沖響應: impulse(num,den) [y,x,t]=impulse(num,den) [y,x,t]=impulse(num,den,t) 例3-11 試求下列系統(tǒng)的單位脈沖響應: 。MATLAB Program3-2將產(chǎn)生脈沖響應。由此得到的單位脈沖響應曲線如圖3-14所示。 其源程序為: MATLAB Program 3-2 num=[0 0 1]; den=[1 0.2 1]; impulse(num,den); grid title(‘Unit-Impulse Response of G(s)=1/(s^2+0.2s+1)’) 3.7.5求脈沖響應的另一種方法 當初始條件為零時,G(s)的單位脈沖響應與sG(s)的單位階躍響應相同。 考慮上例中討論過的系統(tǒng)的單位脈沖響應。因為對于單位脈沖輸入量,R(s)=1,所以 因此,可以將G(s)的單位脈沖響應變換成sG(s)的單位階躍響應。 如果向MATLAB輸入下列num和den: num=[0 1 0] den=[1 0.2 1] 利用在MATLAB Program3-2中給出的階躍響應命令,可以得到系統(tǒng)的單位脈沖響應曲線,如圖3-15所示。在圖3-15中,x軸和y軸都是自動地進行標注的。如果希望對x軸和y軸做不同的標注,則需要改變階躍命令。例如,如果需要在x軸上標注"t Sec",在y軸上標注"Input and Output",則應利用帶有左端變量的階躍響應命令,其源程序如下:
MATLAB Program 3-3 num=[0 1 1]; den=[1 0.2 1]; impulse(num,den); grid; title('G(s)=s/(s^2+0.2s+1)的單位脈沖響應')
圖3-15 用 的單位階躍響應求得的單位脈沖響應曲線 |
c=step(num,den,t) 或者 [y,x,t]=step(num,den,t) 參見MATLAB Program3-4。
3.7.6斜坡響應
在MATLAB中沒有斜坡響應命令,因此,需要利用階躍響應命令求斜坡響應。特別是當求傳遞函數(shù)系統(tǒng)G(s)的斜坡響應時,可以先用s除G(s),再利用階躍響應命令。例如,考慮下列閉環(huán)系統(tǒng):
對于單位斜坡輸入量,R(s)=1/(s2),因此 為了得到系統(tǒng)的單位斜坡響應,往MATLAB程序中輸入下列分子和分母: num=[0 0 0 1]; den=[1 1 1 0]; 并應用階躍響應命令。參見MATLAB Program3-4,利用此程序獲得的響應曲線如圖3-16所示。其源程序如下: MATLAB Program 3-4 num=[0 0 0 1]; den=[1 1 1 0]; t=0:0.1:7; c=step(num,den,t); plot(t,c,'o',t,t,'-') grid; title('Unit-Ramp Response Curve for System G(s)=1/(s^2+s+1)') xlabel('t Sec') ylabel('Input and Output') |
評論