官术网_书友最值得收藏!

1.5 MATLAB在系統數學模型變換中的應用

本節主要介紹基于MATLAB的線性定常系統(LTI)建模分析的常用命令函數。

1.5.1 系統的模型

1.傳遞函數模型

設單輸入單輸出(SISO)連續系統的傳遞函數為

在MATLAB中,可用傳遞函數分子、分母多項式按s的降冪系數排列的行向量,即

num=[b1b2,…,bn-1bn]

den=[a0a1,…,an-1an]

描述式(1-211)所示傳遞函數Gs)的多項式模型。而由命令函數tf()則可建立系統的傳遞函數模型TF,其調用格式為

sys=tf(num,den)

其中,num、den分別是傳遞函數分子、分母多項式系數行向量,且系數均按s的降冪排列。

【例1-24】 已知系統傳遞函數為

則可以利用程序MATLAB Program 1_1將上述系統模型表示出來,并將其建立在MATLAB的工作空間(Workspace)中。

%MATLABProgram1_1
num=[29];                 %Gs)分子多項式按s的降冪系數排列的行向量
den=[1 3 2 4 6];          %Gs)分母多項式按s的降冪系數排列的行向量
G=tf(num,den)           %建立傳遞函數模型,存放于G

執行MATLAB Program 1_1后得到

Transfer function:
              2s+9
-----------------------
s4+3s3+2s2+4s+6

對SISO線性定常離散系統,其脈沖傳遞函數一般可表示為關于z的降冪多項式分式形式,即

在MATLAB中,對于式(1-212)所示離散系統,同樣可用tf()命令建立其脈沖傳遞函數模型,調用格式為

nu m=[cmcm-1,…,c1c0];

den=[anan-1,…,a1a0];

sys=tf(num,den,Ts

其中,Ts為系統采樣周期。

另外,系統的傳遞函數還可表示成零極點形式,即

在MATLAB中,可用傳遞函數的零點向量、極點向量及增益,即

描述式(1-213)所示傳遞函數Gs)的零極點模型。而由命令函數zpk()則可建立零極點模型ZPK,其調用格式為

sys=zpk(zpk

2.狀態空間模型

r維輸入、m維輸出的MIM O線性定常系統的狀態空間表達式為

式中,xyu分別為n×1、m×1、r×1維的列向量,ABCD分別為n×nn×rm×nm×r維的常數矩陣。

在MATLAB中,只要按照矩陣輸入方式建立式(1-214)系統相應的系數矩陣,即

A=[a11a12,…,a1 na21a22,…,a2 n;…;an 1an 2,…,an n]

B=[b11b12,…,b1 rb21b22,…,b2 r;…;bn 1bn 2,…bn r]

C=[c11c12,…,c1 nc21c22,…,c2 n;…;cm 1cm 2,…,cm n]

D=[d11d12,…,d1rd21d22,…,d2r;…;dm 1dm 2,…,dmr]

即可描述式(1-214)系統的狀態空間模型。而由命令函數ss()則可建立系統的狀態空間模型SS,其調用格式為

sys=ss(ABCD

對線性定常離散系統

在按常數矩陣輸入方式建立系數矩陣GHCD后,同樣調用

sys=ss(GHCDTs

則可建立式(1-215)離散系統的狀態空間模型。其中,Ts為系統采樣周期。

3.組合系統模型

MATLAB提供了兩個子系統G1、G2并聯連接系統函數parallel()、串聯連接系統函數series()及反饋連接系統函數feedback(),由此可計算相應組合系統的模型,其調用格式分別為

sys=parallel(G1,G2)

sys=series(G1,G2)

sys=feedback(G1,G2)

其中,G1、G2為子系統1、子系統2已建立的模型,其可均為傳遞函數模型TF,也可均為狀態空間模型SS。

1.5.2 系統模型的轉換

1.狀態空間表達式向傳遞函數形式的轉換

MATLAB提供了模型轉換函數,可以完成系統數學模型的相互轉換,利用ss2tf()函數可由系統狀態空間表達式求其傳遞函數(陣)。對SISO系統,ss2tf()的調用格式為

[num,den]=ss2tf(ABCD

執行以上語句,可實現將描述為(ABCD)的系統狀態空間模型中各系數矩陣轉換為傳遞函數模型中分子、分母多項式系數行向量num、den。對多輸入系統,ss2tf()的調用格式為

[num,den]=ss2tf(ABCD,iu)

其中,iu用于指定變換所使用的輸入量,iu默認則為單輸入情況。

【例1-25】 已知系統狀態空間表達式為

試應用MATLAB求取系統的傳遞函數陣。

該系統為雙輸入單輸出系統,因此其傳遞函數陣Gs)為1×2維向量,即

其中,G1s)、G2s)分別為輸出量y與輸入量u1u2之間的傳遞函數。利用ss2tf()函數可以進行指定輸入的狀態方程向傳遞函數的轉換。MATLAB Program 1_2為求解本題的程序。

Gs)=[G1sG2s)]

%MATLABProgram 1_2
A=[2.25-5-1.25-0.5;2.25-4.25-1.25-0.25;
   0.25-0.5-1.25-1;1.25-1.75-0.25-0.75];
B=[46;24;22;02];
C=[0202];
D=[00];
[num1,den1]=ss2tf(A,B,C,D,1) %指定第一輸入信號u1
所對應的轉換
G1=tf(num1,den1)
[num2,den2]=ss2tf(A,B,C,D,2) %指定第二輸入信號u2
所對應的轉換
G2=tf(num2,den2)

程序MATLAB Program 1_2的運行結果為

num1=
        0  4.0000  14.0000  22.0000  15.0000
den1=
        1.0000  4.0000  6.2500  5.2500  2.2500
Transfer function:
              4s3+14s2+22s+15
        -----------------------------
        s4+4s3+6.25s2+5.25s+2.25
num2=
        0  12.0000  32.0000  37.0000  17.0000
den2=
        1.0000 4.0000 6.2500 5.2500 2.2500
Transfer function:
              12s3+32s2+37s+17
        -----------------------------
        s4+4s3+6.25s2+5.25s+2.25

由此得系統的傳遞函數陣為

與ss2tf()類似,應用MATLAB函數ss2zp()可由系統狀態空間表達式求其零極點模型的參數(zpk)。對SISO系統,ss2zp()的調用格式為

[zpk]=ss2zp(ABCD

而對多輸入系統,其調用格式為

[zpk]=ss2zp(ABCD,iu)

2.傳遞函數到狀態空間表達式的變換

利用MATLAB函數tf2ss()、zp2ss()可分別由多項式形式、零極點形式的傳遞函數求其狀態空間模型中的各系數矩陣。其調用格式分別為

[ABCD]=tf2ss(num,den)

[ABCD]=zp2ss(zpk

上面兩條語句分別由已知的(num,den)、(zpk)經模型轉換返回狀態空間表達式中各系數矩陣(ABCD)。

【例1-26】 已知系統傳遞函數為

應用MATLAB的模型轉換函數求狀態空間模型的系數矩陣。

MATLAB Program 1_3為求解本題的程序。

%MATLABProgram1_3
num=[18,36];
den=[140.4391150];
[A,B,C,D]=tf2ss(num,den)

程序MATLAB Program 1_3的運行結果為

A=
        -40.4000-391.0000  -150.0000
        1.0000          0         0
              0      1.0000         0
B=
        1
        0
        0
C=
        0   18   36
D=
        0

應該指出,函數ss()不僅可用于建立系統的狀態空間模型SS,而且可將任意LTI系統模型sys(傳遞函數模型TF、零極點模型ZPK)轉換為狀態空間模型SS,其調用格式為

SYS=ss(sys)

事實上,MATLAB中建立LTI系統3種模型的3個函數tf()、zpk()及ss()均可用類似的調用格式實現由一種模型到另一種模型的轉換。

1.5.3 系統的線性非奇異變換與標準型狀態空間表達式

1.系統的線性非奇異變換

MATLAB中函數ss2ss()可實現對系統的線性非奇異變換。其調用格式為

GT=ss2ss(GT

其中,GGT分別為變換前、后系統的狀態空間模型,T為線性非奇異變換陣。或為

[AtBtCtDt]=ss2 ss(ABCDT

其中,(ABCD)、(AtBtCtDt)=(TAT-1TBCT-1D)分別為變換前、后系統的狀態空間模型的系數陣,T為線性非奇異變換陣。

【例1-27】 已知系統狀態空間表達式的系數陣為

A=

B=

C=[0.5-0.4375 0.4375],D=0

試應用ss2ss()函數進行系統的線性非奇異變換。

變換陣T只要保證其非奇異即可,在此選擇單位反對角陣作為變換陣。MATLAB Program 1_4為求解本題的程序。

%MATLABProgram 1_4
A=[10-42;800;020];
B=[2;0;0];
C=[0.5 -0.4375 0.4375];
D=0;
G1=ss(A,B,C,D);     %建立變換前原狀態空間模型G1
T=fliplr(eye(3));    %構造線性非奇異變換陣T為單位反對角陣
GT=ss2ss(G1,T)         %獲得變換后狀態空間模型GT

程序MATLAB Program 1_4運行結果略。

MATLAB沒有提供將一般狀態空間表達式化為約當標準型的函數,但可先利用其計算約當標準型函數jordan()求出化約當標準型的變換陣,再利用函數ss2ss()得約當標準型。jordan()的調用格式為

[TJ]=jordan(A

執行以上語句,可得到化A為約當標準型J的變換陣T,即J=T-1ATTA的線性獨立特征向量、廣義特征向量為列向量構成。

【例1-28】 應用MATLAB求解例1-11。

MATLAB Program 1_5為求解本題的程序。

%MATLABProgram 1_5
A=[010;001;230];
B=[0;0;1];
C=[100];
D=0;
G=ss(A,B,C,D);     %建立變換前狀態空間模型
[T,J]=jordan(A);     %求化A為約當標準型的變換陣T及約當陣J
GT=ss2ss(G,inv(T))  %狀態空間模型變換,變換陣為T-1

程序MATLAB Program 1_5運行結果略。

2.標準型狀態空間表達式的實現

MATLAB提供了標準型狀態空間表達式的實現函數canon(),以得到LTI系統模型sys的標準型狀態空間表達式的實現。其調用格式為

G1=canon(sys,type)

若LTI系統模型sys為對應狀態向量x的狀態空間模型,可應用函數canon()將其變換為在新的狀態向量下的標準型狀態空間表達式,其調用格式為

[G1,P]=canon(sys,type)

其中,sys為原系統狀態空間模型,P是返回的線性非奇異狀態變換陣,滿足=Px關系。或為

[AtBtCtDtP]=canon(ABCD,type)T=[α β]

其中,(ABCD)為對應x的原系統狀態空間模型的系數陣,(AtBtCtDt)則為對應新狀態向量(仍滿足=Px)的標準型狀態空間模型的系數陣。

以上函數canon()調用中的字符串type確定標準型類型。它可以是模態(modal)標準型,也可以是伴隨(companion)標準型形式。

當系統矩陣A可對角化但具有共軛復數特征值時,若仍用1.3.1節的方法化成對角標準型,計算特征向量將出現復數向量,且對角標準型及變換陣均為復數矩陣,給分析計算帶來困難,且復數的物理意義也不清晰,此時,可將系統矩陣化為模態(modal)標準型。設二階系統∑(ABC)具有共軛復數特征值λ1,2=σ±jω,則可用線性非奇異狀態變換將系統矩陣化為形如

的模態(modal)標準型。且可證明變換陣為

式中,列向量αβ分別是對應特征值λ1=σ+jω的復數特征向量α+jβ的實部、虛部。

【例1-29】 已知系統∑(ABCD)的系數陣為

A=

B=

C=[1 2 5 2],D=0

將其變換為模態標準型或對角標準型,并給出變換陣。

應用狀態方程的規范實現函數canon()容易進行該變換,MATLAB Program 1_6為求解本題的程序。

%MATLABProgram 1_6
A=[5210;0460;0-3-50;0-3-6-1];
B=[1;2;3;4];C=[1252];D=0;
sys=ss(A,B,C,D);
[G,T]=canon(sys,′modal′)

程序MATLAB Program 1_6運行結果略。

主站蜘蛛池模板: 土默特左旗| 安西县| 永平县| 积石山| 荃湾区| 琼海市| 金秀| 玉环县| 新化县| 文山县| 民乐县| 达日县| 新疆| 阳曲县| 梅河口市| 防城港市| 定陶县| 姜堰市| 永昌县| 鹤山市| 琼结县| 得荣县| 怀远县| 梅河口市| 闸北区| 瓦房店市| 休宁县| 鸡西市| 昔阳县| 杂多县| 安陆市| 甘南县| 尼木县| 密山市| 平定县| 龙山县| 德钦县| 红桥区| 定结县| 休宁县| 绵阳市|