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