控制系統常用的數學(xué)模型有三種:傳遞函數、零極點(diǎn)增益和狀態(tài)空間。每種模型均有連續/離散之分,它們各有特點(diǎn),有時(shí)需在各種模型之間進(jìn)行轉換。本節主要介紹它們的MATLAB表示及三種模型之間的相互轉換。
2.8.1連續系統數學(xué)模型的MATLAB表示 1. 傳遞函數模型 當: 則在MATLAB中,直接用分子/分母的系數表示,即 num=[b0,b1,…,bm]; den = [a0,a1,…,an]; 例2-7 用MATLAB表示傳遞函數為 的系統。 解:在MATLAB環(huán)境下輸入 ng=[1 1]; dg=[1 3 2]; printsys(ng,dg) %此處printsys命令是傳遞函數顯示命令。
則執行后得到如下結果:
2. 零極點(diǎn)增益模型 當: 時(shí) |
則在MATLAB中,用[z,p,k]矢量組表示,即 z=[z0,z1,…,zm]; p=[p0,p1,…,pn]; k=[k]; 例2-8 用MATLAB表示傳遞函數為 的系統。 解:在MATLAB環(huán)境下輸入 z=-1; p=[0 -1 -2]; k=1.5; [num,den]=zp2tf[z,p,k]; printsys(num,den) %此處printsys命令是傳遞函數顯示命令。 則執行后得到如下結果:
3. 狀態(tài)空間模型 當: 時(shí) |
則在MATLAB中,該控制系統可用(a,b,c,d)矩陣組表示。 4. 傳遞函數的部分分式展開(kāi) 當: 時(shí) |
在MATLAB中直接用分子/分母的系數表示時(shí)有 num=[b0,b1,…,bm]; den = [a0,a1,…,an]; 則命令 [r,p,k] = residue(num,den) 將求出兩個(gè)多項式Y(s)和X(s)之比的部分分式展開(kāi)的留數、極點(diǎn)和直接項。Y(s)/X(s)的部分分式展開(kāi)由下式給出: 例2-A2 考慮下列傳遞函數: 命令 [r,p,k] = residue(num,den) 將給出下列結果: [r,p,k]=residue(num,den) r= -6.000 -4.000 3.000 p= -3.000 -2.000 -1.000 k= 2 留數為列向量r,極點(diǎn)位置為列向量p,直接項是行向量k。以下是Y(s)/X(s)的部分分式展開(kāi)的MATLAB表達形式: 命令 [num,den] = residue(r,p,k) 執行后得到如下結果:
[num,den]=residue(r,p,k) num= 2.0000 5.0000 3.0000 6.0000 den= 1.0000 6.0000 11.0000 6.0000
2.8.2離散系統數學(xué)模型的MATLAB表示 1. 傳遞函數模型: 2. 零極點(diǎn)增益模型: 3. 狀態(tài)空間模型: 2.8.3模型之間的轉換 同一個(gè)控制系統都可用上述三種不同的模型表示,為分析系統的特性,有必要在三種模型之間進(jìn)行轉換。MATLAB的信號處理和控制系統工具箱中,都提供了模型變換的函:ss2tf,ss2zp,tf2ss,tf2zp,zp2ss,zp2tf,它們的關(guān)系可用圖2-17所示的結構來(lái)表示。  | 圖2-18 三種模型之間的轉換 |
說(shuō)明: ss2tf命令:將狀態(tài)空間模型轉換成傳遞函數模型。 格式為:[num,den]=ss2tf(A,B,C,D,iu) 式中,iu為輸入的序號。轉換公式為
ss2zp命令:將狀態(tài)空間模型轉換成零極點(diǎn)增益模型。 格式為:[Z, P, K]=ss2zp(A, B, C, D, iu) 式中,iu為輸入的序號。
tf2ss命令:將傳遞函數模型轉換成狀態(tài)空間模型。 格式為:[A, B, C, D]=tf2ss(num, den)
tf2zp命令:將傳遞函數模型轉換成零極點(diǎn)增益模型。 格式為:[Z, P, K]=tf2zp(num, den)
zp2ss命令:將零極點(diǎn)模型轉換成狀態(tài)空間模型。 格式為:[A, B, C, D]=zp2ss(Z, P, K)
zp2tf命令:將零極點(diǎn)模型轉換成傳遞函數模型。 格式為:[num, den]=zp2tf(Z, P, K) 2.8.4控制系統建模 對簡(jiǎn)單系統的建??芍苯硬捎萌N基本模型:傳遞函數、零極點(diǎn)增益、狀態(tài)空間模型。但實(shí)際中經(jīng)常遇到幾個(gè)簡(jiǎn)單系統組合成一個(gè)復雜系統。常見(jiàn)形式有:并聯(lián)、串聯(lián)、閉環(huán)及反饋等連接。 1. 并聯(lián):將兩個(gè)系統按并聯(lián)方式連接,在MATLAB中可用parallel函數實(shí)現。命令格式為:[nump, denp] = parallel(num1, den1, num2, den2) 其對應的結果為:Gp(s)=G1(s)+G2(s) 2. 串聯(lián):將兩個(gè)系統按串聯(lián)方式連接,在MATLAB中可用series函數實(shí)現。命令格式為:[nums, dens] = series(num1, den1, num2, den2) 其對應的結果為:Gs(s)=G1(s)+G2(s) 3. 閉環(huán):將系統通過(guò)正負反饋連接成閉環(huán)系統,在MATLAB中可用feedback函數實(shí)現。命令格式為:[numf, denf] = feedback(num1, den1, num2, den2, sign) sign為可選參數,sign=-1為負反饋,而sign=1對應為正反饋。缺省值為負反饋。其對應的結果為: 4. 單位反饋:將兩個(gè)系統按反饋方式連接成閉環(huán)系統(對應于單位反饋系統),在MATLAB中可用cloop函數實(shí)現。命令格式為:[numc, denc] = cloop(num, den, sign) sign為可選參數,sign=-1為負反饋,而sign=1對應為正反饋。缺省值為負反饋。其對應的結果為: |
評論