- 計算機仿真技術與CAD
- 李國勇主編
- 144字
- 2019-01-09 15:00:29
第2章 控制系統的數學模型及其轉換
控制系統計算機仿真是建立在控制系統數學模型基礎之上的一門技術。對系統進行仿真,首先應該知道系統的數學模型,然后才可以在此基礎上設計一個合適的控制器,使得原系統的響應達到預期的效果。本章將著重介紹常見的控制系統數學模型、系統數學模型間的相互轉換及其MATLAB的實現。
2.1 線性系統數學模型的基本描述方法
根據系統數學描述方法的不同,系統可建立不同形式的數學模型。
1.傳遞函數
單輸入單輸出系統可以用高階微分方程來表示,其一般形式為

對此系統的微分方程做拉普拉斯變換,則在初始條件為零時,可得單輸入單輸出系統的傳遞函數為

傳遞函數在MATLAB下可以方便地由其分子和分母多項式系數所構成的兩個向量唯一確定出來,即
num=[b0 b1… bm];den=[1 a1 a2… an]
可見,在這樣的表示方法下,分子和分母向量的內容分別是傳遞函數的分子和分母系數的降冪排列。
【例2-1】 若給定系統的傳遞函數為

解 MATLAB命令及其執行結果如下:

當傳遞函數的分子或分母由若干個多項式的乘積表示時,它可由MATLAB提供的多項式乘法運算函數conv()來處理,以獲得分子和分母多項式向量。此函數的調用格式為
p=conv(p1,p2)
其中,p1和p2分別為由兩個多項式系數構成的向量;而p為p1和p2多項式的乘積多項式系
數向量。conv()函數的調用是允許多級嵌套的。
【例2-2】 若給定系統的傳遞函數為

解 MATLAB命令及其執行結果如下:

相應地,離散時間系統的動態模型一般是以差分方程來描述的。假設在采樣k時刻系統的輸入信號為u(kT),且輸出信號為y(kT),其中 T為采樣周期,則此系統相應的差分方程可以寫成

對上述差分方程進行z變換,在初始條件為零時,可得系統的脈沖傳遞函數為

這種系統在MATLAB下也可以由其分子和分母系數構成的兩個向量來唯一確定,即
num=[h0 h1 h2… hm];den=[1 g1 g2… gn]
對具有r個輸入和m個輸出的多變量系統,可把m ×r的傳遞函數矩陣G(s)寫成和單變量系統傳遞函數相類似的形式,即

式中,B0,B1,…,Bn均為m ×r實常數矩陣,分母多項式為該傳遞函數矩陣的特征多項式。
在MATLAB控制系統工具箱中,提供了表示單輸入多輸出系統的表示方法,即
num=[B0 B1… Bn];den=[1 a1 a2… an]
其中,分子系數包含在矩陣num中,num行數與輸出的維數一致,每行對應一個輸出,den是行向量,為傳遞函數矩陣的公分母多項式的系數。
因此,系統的傳遞函數矩陣在MATLAB命令下也可以用兩個系數向量來唯一確定。
【例2-3】 對于單輸入多輸出系統

解 在MATLAB命令窗口中,可將其用下列MATLAB命令表示
>>num=[0,0,3,2;1,0,2,5];den=[3,5,2,1];printsys(num,den)
執行后結果顯示:

2.零極點增益形式
單輸入單輸出系統的零極點模型可表示為

式中,zj(j=1,2,…,m)和pi(i=1,2,…,n)稱為系統的零點和極點,它們既可以為實數又可以為復數,而K稱為系統的增益。
在MATLAB下,零極點模型可以由增益K和零極點所構成的列向量唯一確定出來。即
Z=[z1;z2;…;zm];P=[p1;p2;…;pn];K=K
零極點模型實際上是傳遞函數模型的另一種表現形式,其原理是分別對原系統傳遞函數的分子和分母進行分解因式處理,以獲得系統的零極點表示形式。系統的增益K即為原傳遞函數分子的最高項系數與分母最高項系數的比值。
系統的零極點模型可以被直接用來判斷系統的穩定性。如果系統的所有極點都位于左半s平面,即Re{pi} <0,i=1,2,3,…,n,則稱該系統是穩定的,否則稱系統是不穩定的。如果穩定系統所有的零點都位于左半s平面,即Re{zj} <0,j=1,2,…,m,則稱該系統為最小相位系統,否則稱為非最小相位系統。如果系統的某個零點的值恰好等于其中一個極點的值,則它們之間可以對消,直接獲得一個完全等效的低階系統。
對于式(2-4)所表示的脈沖傳遞函數來說,也可用類似的方法直接獲得其零極點表示的模型。這時若系統的全部極點都位于單位圓內,即 |pi|<1,i=1,2,…,n,則稱該系統為穩定系統,否則稱為不穩定系統。同樣若穩定系統的全部零點均位于單位圓內,則稱系統為最小相位系統。
對于單輸入多輸出系統,列向量P中儲存系統的極點;零點儲存在矩陣Z中,Z的列數等于輸出向量的維數,每列對應一個輸出,對應增益則在列向量K中。
因此,系統的零極點模型在MATLAB命令下可用一個增益向量、零點向量和極點向量來唯一確定。
【例2-4】 已知單輸入雙輸出系統的零極點模型

解 在MATLAB命令窗口中,可將其用下列MATLAB語句表示
>>K=[3;4],Z=[ -12 -1;inf -2],P=[ -3;-4;-5]
在此多輸出系統中,第一分子比第二分子的階次低,因此,要使用inf來將第一分子在無窮遠處拓展一個零點,使之與第二分子階次相同。
MATLAB工具箱中的函數poly()和roots()可用來實現多項式和零極點間的轉換。例如,在MATLAB命令窗口中進行如下操作可實現互相轉換。
>>P=[1 3 5 2];R=roots(P),P1=poly(R)
結果顯示:

對于離散系統,零極點增益模型為

可記為
Z=[z1;z2;…;zn],P=[p1;p2;…;pn],K=K
3.部分分式形式
傳遞函數也可表示成部分分式或留數形式,即

式中,pi(i =1,2,…,n)為該系統的 n 個極點,與零極點形式的 n 個極點是一致的;ri(i=1,2,…,n)是對應各極點的留數;h(s)則表示傳遞函數分子多項式除以分母多項式的余式。若分子多項式的階次與分母多項式的相等,h(s)為標量;若分子多項式階次小于分母多項式,該項不存在。
在MATLAB下它也可由系統的極點、留數和余式系數所構成的向量唯一確定,即
P=[p1;p2;…;pn];R=[r1;r2;…;rn];H=[h0;h1;…;h(m-n)]
因此,系統的部分分式模型在MATLAB命令下可用一個極點向量、留數向量和余式系數向量來唯一確定。
4.狀態空間表達式
狀態空間表達式是描述控制系統的一種常用的方式。對多輸入多輸出(MIMO)系統而言,狀態空間表達式是唯一方便的模型描述方法。由于它是基于系統的不可見的狀態變量,所以又稱為系統的內部模型。傳遞函數和微分方程都只描述了系統輸入與輸出之間的關系,而沒有描述系統內部的情況,所以這些模型稱為外部模型。從仿真的角度來看,為在計算機上對系統的數學模型進行試驗,就要在計算機上復現(實現)這個系統,有時,僅僅復現輸入量及輸出量是不夠的,還必須復現系統的內部變量——狀態變量。
設線性定常連續系統的狀態空間表達式為

式中,A:n ×n;B:n ×r;C:m ×n;D:m ×r
如果傳遞函數(陣)各元素為嚴格真有理分式,則D=0,此時上式可寫為

它們可分別簡記為∑(A,B,C,D)和∑(A,B,C)
因此,系統的狀態方程在MATLAB下可以用一個矩陣組∑(A,B,C,D)或∑(A,B,C)來唯一確定。
【例2-5】 設系統的狀態空間表達式為

解 此系統在MATLAB命令窗口中,可由下面的MATLAB命令唯一地表示出來
>>A=[0 0 1;-3/2 -2 -1/2;-3 0 -4] >>B=[1 1;-1 -1;-1 -3],C=[1 0 0;0 1 0],D=zeros(2,2)
對于離散系統,狀態空間表達式可表示為

或

它們分別簡記為∑(G,H,C,D)或∑(G,H,C)