




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、MATLAB-ch020(線性控制系統分析與設計)第20講 線性控制系統分析與設計內容提要:重點及難點: 自從MATLAB出現以來,它強大的矩陣運算和圖形可視化的功能以及豐富的工具箱,使其成為控制界最流行和最廣泛使用的系統分析和設計工具。 MATLAB中具有豐富的可用于控制系統分析和設計的函數;MATLAB的控制系統工具箱(Control System Toolbox)可以提供對線性系統分析、設計和建模的各種算法;MATLAB的系統辨識工具箱(System Identification Toolbox)可以對控制對象的未知模型進行辨識和建模。 本章主要使用控制系統工具箱對于線性時不變系統(LT
2、I)進行分析和設計,可以處理連續的和離散的系統,使用傳遞函數或狀態空間法來描述系統。分析方法有時域、頻域和根軌跡法等。20.1 線性系統的描述 在分析和設計控制系統之前,需要對系統的數學模型進行描述,下面對單變量連續的反饋控制系統進行描述。一、狀態空間描述法 1、用狀態空間描述系統方程 狀態空間描述法是使用狀態方程模型來描述控制系統,狀態方程為一階微分方程,用數學形式描述為: (20.1.1)其中:,C=c1 c2 cn,D=d。 例如,二階系統,可以用狀態方程描述為: (20.1.2) 則: 寫成矩陣形式: (20.1.3) 另外,系統的狀態方程也可以表示為: (20.1.4) 2、ss函數
3、和dss函數 MATLAB中狀態方程模型的建立使用ss和dss命令。 調用格式: (1)G=ss(a,b,c,d) 由a,b,c,d參數獲得狀態方程模型 (2)G=dss(a,b,c,d,e) 由a,b,c,d,e參數獲得狀態方程模型二、傳遞函數描述法 1、用傳遞函數描述系統方程 傳遞函數是由線性微分方程經過Laplace變換得出的,Laplace變換得出控制系統的數學描述為: (20.1.5) 傳遞函數表示為有理函數形式為: (20.1.6) 2、tf函數 MATLAB中使用tf命令來建立傳遞函數。 【調用格式】: G=tf(num, den) 由傳遞函數分子分母得出其中:num為分子向量,
4、num=bl,b2,bm,bm+1;den為分母向量,den=al,a2,an-1,an。三、零-極點描述法 1、用零-極點描述系統方程 零-極點描述法是線性系統的另一種數學模型,是將傳遞函數的分子分母多項式進行因式分解。 傳遞函數的零極點形式為: (20.1.7)其中:k是系統增益,zi(i=1,2,)是系統零點,pj(j=1,2,)是系統極點。 2、zpk函數 MATLAB中使用zpk命令可以實現由零極點得到傳遞函數模型。 【調用格式】: G=zpk(z, p, k) 由零點、極點和增益獲得其中:z為零點列向量;p為極點列向量;k為增益。四、部分分式法 1、部分分式法描述系統方程 控制系統
5、的傳遞函數也可以用部分分式法表示,部分分式法可以歸類于零極點增益描述法,部分分式法是將傳遞函數表示成部分分式或留數形式: (20.1.8) 2、residue函數 在MATLAB中可以使用residue命令來實現由傳遞函數得出部分分式的極點和系數。 例20-1example20_1.m 寫出二階系統,=0.707,n=1時的狀態方程。 (1)狀態方程描述zeta=0.707; wn=1;A=0 1;-wn2-2*zeta*wn;B=0;wn2;C=1 0;D=0;G=ss(A,B,C,D) %建立狀態方程 a= x1 x2 x1 0 1 x2 -1 -1.414 b= u1 x1 0 x2 1
6、 c= x1 x2 y1 1 0 d= u1 y1 0 Continuous-time model (2)傳遞函數描述num=1;den=1 1.414 1;G=tf(num, den) 得出傳遞函數 Transfer function 1- s2+1.414s+1 (3)得出二階系統的零極點,并得出傳遞函數。z=roots(num) z= Empty matrix:0-by-1p=roots(den) %roots函數可以得出多項式的根,零極點形式是以實數形式表示的 p= -0.7070+0.7072i -0.7070-0.7072izpk(z, p, 1) Zero/pole/gain 1
7、- (s2+1.414s+1) (4)將傳遞函數轉換成部分分式法,得出各系數。r, p, k=residue(num, den) r= 0-0.7070i 0+0.7070i p= -0.7070+0.7072i -0.7070-0.7072i k= 五、離散系統的數學描述 在MATLAB中,線性的離散系統和連續系統一樣,也有狀態空間、Z變換脈沖傳遞函數、零極點增益等多種描述方式。 1、狀態空間描述法 線性時不變離散系統可以用一組差分方程來表示: (20.1.9)其中:u為輸入向量,x為狀態向量,y為輸出向量,n為采樣時刻。 狀態空間描述離散系統也可使用ss和dss命令。 語法: (1)G=s
8、s(a, b, c, d,Ts) 由a,b,c,d參數獲得狀態方程模型 (2)G=dss(a, b, c, d, e, Ts) 由a,b,c,d,e參數獲得狀態方程模型其中:Ts為采樣周期,為標量,當采樣周期未指明可以用-1表示。 例20-2Example20_2.m 用狀態空間法建立離散系統。a=-1.5 -0.5;1 0;b=1;0;c=0 0.5;d=0;G=ss(a, b, c, d, 0.1) %采樣周期為0.1s a= x1 x2 x1 -1.5 -0.5 x2 1 0 b= u1 x1 1 x2 0 c= x1 x2 y1 0 0.5 d= u1 y1 0 Sampling ti
9、me: 0.1 Discrete-time model 2、脈沖傳遞函數描述法 將離散系統的狀態方程描述變換為脈沖傳遞函數,脈沖傳遞函數的等效表達式為: (20.1.10) 其脈沖傳遞函數形式為: (20.1.11) (1)tf函數 脈沖傳遞函數也可以用tf命令實現。 語法: G=tf(num, den, Ts) 由分子分母得出脈沖傳遞函數其中:Ts為采樣周期,為標量,當采樣周期未指明可以用-1表示,自變量用z表示。 (2)filt函數 MATLAB中還可以用filt命令產生脈沖傳遞函數。 語法: G=filt(num, den, Ts) 由分子分母得出脈沖傳遞函數其中:Ts為采樣周期,當采樣
10、周期未指明Ts可以省略,也可以用-1表示,自變量用z-1表示。 3、零-極點增益描述法 將脈沖傳遞函數因式分解得出零-極點增益形式: (20.1.12) 離散系統的零-極點增益用zpk命令實現。 語法: G=zpk(z, p, k, Ts) 由零-極點得出脈沖傳遞函數 4、分部分式法 由脈沖傳遞函數轉換為部分分式或留數形式為: (20.1.13) 離散系統的部分分式描述的獲得和連續系統一樣,直接由脈沖傳遞函數通過residue命令獲得。 例20-3Example20_3.m 創建離散系統脈沖傳遞函數。 (1)使用tf函數numl=0.5 0;den=1 -1.5 0.5;Gl=tf(num1,
11、 den, -1) Transfer function 0.5z- z2-1.5z+0.5 Sampling time: unspecified (2)使用filt命令產生脈沖傳遞函數。num2=0 0.5;G2=filt(num2, den) Transfer function: 0.5z-1- 1-1.5z-1+0.5z-2 Sampling time: unspecified (3)使用zpk命令產生零-極點增益傳遞函數。G3=zpk(0, 0.5 1, 0.5, -1) Zero/pole/gain: 0.5z- (z-0.5)(z-1) Sampling time: unspecif
12、ied 程序說明:用filt命令生成的脈沖傳遞函數的自變量不是z而是z-1,因此分子應改為“0 0.5”。20.2 線性系統模型之間的轉換 線性系統模型的不同描述方法之間存在內在的等效關系,因此都可以相互轉換;連續系統和離散系統之間的轉換也是很常用的,MATLAB提供了相互轉換的命令。一、連續系統模型之間的轉換 對于線性控制系統的狀態空間描述法、傳遞函數描述法和零-極點增益描述法之間都可以相互轉換,每一種都可以轉換成另一種,因為它們都是等效的。 在MATLAB中,線性系統模型轉換的函數如表20-1所示。表20-1 線性系統模型轉換函數表函數調用格式功能tf2ssa, b, c, d=tf2ss
13、(num, den)傳遞函數轉換為狀態空間tf2zpz, p, k=tf2zp(num, den)傳遞函數轉換為零-極點描述ss2tfnum, den=ss2tf(a, b, c, d, iu)狀態空間轉換為傳遞函數ss2zpz, p, k=ss2zp(a, b, c, d, iu)狀態空間轉換為零-極點描述zp2ssa, b, c, d=zp2ss(z, p, k)零-極點描述轉換為狀態空間zp2tfnum, den=zp2tf(z, p, k)零-極點描述轉換為傳遞函數 說明:a,b,c,d是狀態空間以可控標準型的形式給出的;iu為第幾個輸入信號;num和den分別是傳遞函數的分子多項式和
14、分母多項式的系數向量;z為零點列向量,p為極點列向量;k為增益。 1、系統模型的轉換 (1)狀態空間模型的獲得 從數組角度來說,尤其是對于高階系統,狀態空間描述對象的性能最好。由命令ss和dss實現將傳遞函數和零-極點增益轉換為狀態空間模型。 語法: G=ss(傳遞函數) 由傳遞函數轉換獲得 G=dss(零-極點模型) 由零-極點模型轉換獲得 (2)傳遞函數的獲得 由tf命令實現將系統的狀態空間法和零-極點增益模型轉換為傳遞函數。 語法: G=tf(狀態方程模型) 由狀態空間轉換 G=tf(零-極點模型) 由零-極點摸型轉換 (3)零-極點模型的獲得 由zpk命令實現將狀態空間法、傳遞函數轉換
15、為零-極點模型。 語法: G=zpk(狀態方程模型) %狀態方程模型轉換 G=zpk(傳遞函數) %由傳遞函數轉換 2、模型參數的獲取 MATLAB還提供了專門獲取各種模型參數的命令,有ssdata,dssdata,tfdata和zpkdata,都是在獲取模型的命令后面加“data”。 語法: (1)a, b, c, d=ssdata(G) 獲取狀態空間參數 (2)a, b, c, d, e=dssdata(G) 獲取狀態空間參數 (3)num, den=tfdata(G) 獲取傳遞函數參數 (4)z, p, k=zpkdata(G) 獲取零-極點參數 3、模型類型的檢驗 MATLAB提供了多
16、個函數可以檢驗各種模型的類型,如表20-2所示。表20-2 模型類型檢驗函數表函數調用格式功能classclass(G)得出系統模型的類型isaisa(G, 類型名)判斷G是否對應的類型名,是則為1(True)isctisct(G)判斷G是否連續系統,是則為1(True)isdtisdt(G)判斷G是否離散系統,是則為1(True)issisoissiso(G)判斷G是否SISO系統,是則為1(True) 例20-6example20_6 將單輸入、雙輸出的系統傳遞函數轉換為狀態空間描述。 解:(1)由傳遞函數轉換為狀態空間描述num=0 3 2;1 2 3;den=3 5 2 1;G11=t
17、f(num(1,:), den) Transfer function: 3s+2- 3s3+5s2+2s+lG12=tf(num(2,:), den) Transfer function: s2+2s+3- 3s3+5s2+2s+1G=ss(G11;G12) a= xl x2 x3 x1 -1.667 -0.3333 -0.1667 x2 2 0 0 x3 0 1 0 b= u1 x1 1 x2 0 x3 0 c= x1 x2 x3 y1 0 0.5 0.3333 y2 0.3333 0.3333 0.5 d= u1 y1 0 y2 0 Continuous-time model. (2)由狀
18、態空間描述轉換為傳遞函數Gl=tf(G) Transfer function from input to output s+0.6666 #1: - s3+1.667s2+0.6666s+0.3334 0.3333s2+0.6666s+1 #2: - s3+1.667s2+0.6666s+0.3334 (3)由傳遞函數和狀態方程模型轉換為零-極點模型G2=zpk(G) %由狀態方程模型轉換 Zero/pole/gain from input to output (s+0.6666) #1: - (s+1.357)(s2+0.3102s+0.2457) 0.3333(s2+2s+3) #2:-
19、(s+1.357)(s2+0.3102s+0.2457)G2=zpk(G1); %由傳遞函數轉換 (4)獲取各模型的參數a, b, c, d=ssdata(G1) 獲取狀態方程參數 a= -1.6670e+000 -3.3330e-001 -1.6670e-001 2.000e+000 0 0 0 1.0000e+000 0 b= 1 0 0 c= 0 5.0000e-001 3.3330e-001 3.3330e-001 3.3330e-001 5.0000e-001 d= 0 0num, den=tfdata(G2) 獲取傳遞函數參數 num= 14 double 14 double de
20、n= 14 double 14 doublez, p, k=zpkdata(G) %獲取零-極點參數 z= -6.6660e-001 2l double p= 31 double 31 double k= 1.0000e+000 3.3330e-001 注意:tfdata獲取的傳遞函數的參數num和den都是元胞數組。 (5)檢驗模型的類型class(G) %得出系統模型類型 ans= ssisa(G,tf) %檢驗系統模型類型 ans= 0二、連續系統與離散系統之間的轉換 隨著控制系統中計算機的廣泛應用,系統經常由連續系統部分和離散系統部分連接構成,使用A/D和D/A轉換連接連續和離散的部分
21、。因此幾乎沒有一個采樣系統可以完全用差分方程來表示,在分析系統時必須將連續系統轉換為性能相當的離散系統。 MATLAB控制工具箱提供了c2d,d2c和d2d命令實現復雜的相互轉換。 1、c2d命令 c2d命令用于將連續系統轉換為離散系統。 語法: Gd=c2d(G, Ts, method) %以采樣周期Ts和method方法轉換為離散系統其中:G為連續系統模型;Gd為離散系統模型;Ts為采樣周期;method為轉換方法,可省略,包括5種方法:zoh(默認零階保持器)、foh(一階保持器)、tustin(雙線性變換法)、prewarp(頻率預修正雙線性變換法)、mached(根匹配法)。 2、d
22、2c命令 d2c命令是c2d的逆運算,用于將離散系統轉換為連續系統。 語法: G=d2c(Gd,method) %轉換為連續系統其中:method為轉換方法,可省略,與c2d相似,只是少了foh(一階保持器)方法。 3、d2d命令 d2d命令是將離散系統改變采樣頻率。 語法: Gd2=d2d(Gdl,Ts2) %轉換離散系統的采樣頻率為Ts2 【說明】: 其實際的轉換過程是先把Gdl按零階保持器轉換為原連續系統,然后再用Ts2和零階保持器轉換為Gd2。 例20-8example20_8.m (1)將二階連續系統轉換為離散系統。a=0 1;-1 -1.414;b=0;1;c=1 0;d=0;G=
23、ss(a, b, c, d);Gd=c2d(G, 0.1) a= x1 x2 x1 0.9952 0.0931 x2 -0.0931 0.8636 b= u1 x1 0.004768 x2 0.0931 c= x1 x2 y1 1 0 d= u1 y1 0 Sampling time: 0.1 Discrete-time model (2)將二階離散系統轉換為連續系統。G=d2c(Gd) a= x1 x2 x1 5.51e-016 1 x2 -1 -1.414 b= u1 x1 -2.776e-016 x2 1 c= x1 x2 y1 1 0 d= u1 y1 0 Continuous-tim
24、e model. (3)將二階離散系統改變采樣頻率Gd2=d2d(Gd,0.3) a= x1 x2 x1 0.961 0.2408 x2 -0.2408 0.6205 b= u1 x1 0.03897 x2 0.2408 c= x1 x2 y1 1 0 d= u1 y1 0 Sampling time: 0.3 Disarete-time model.三、模型對象的屬性 MATLAB的控制工具箱中規定了線性時不變系統的3種子對象ss(狀態空間)、tf(傳遞函數)和zpk(零-極點增益)。每種對象都對應有自己的屬性和方法。 1、模型對象的屬性 ss,tf和zpk對象除了具有線性時不變系統共有的屬
25、性以外,還具有其各自的屬性,共有屬性如表20-3所示,其各自的屬性如表20-4所示。 在表20-3和表20-4中的3種子對象的屬性,在前面都已使用過,MATLAB提供了get和set命令對屬性進行獲取和修改。表20-3 對象共有屬性屬性名屬性值的數據類型意義Ts標量采樣周期,為0表示連續系統;為-1表示采樣周期未定Td數組輸入延時,僅對連續系統有效,省略表示無延時InputName字符串數組輸入變量名OutputName字符串數組輸入變量名Notes字符串描述模型的文本說明Userdata任意數據類型用戶需要的其他數據表20-4 3種子對象特有屬性對象名屬性名屬性值的數據類型意義tfden行數
26、組組成的單元列陣傳遞函數分母系數num行數組組成的單元列陣傳遞函數分子系數variables,p,z,q,z-1之一傳遞函數變量ssa矩陣系數b矩陣系數c矩陣系數c矩陣系數e矩陣系數StateName字符串向量用于定義每個狀態變量的名稱zpkz矩陣零點p矩陣極點k矩陣增益variables,p,z,z-1之一零-極點增益模型變量 2、get命令 get命令可以獲取模型對象的所有屬性。 語法: get(G) 獲取對象的所有屬性值 get(G,PropertyName,) 獲取對象的某些屬性值其中:G為模型對象名;PropertyName為屬性名。 3、set命令 set命令用于修改對象屬性名。
27、語法: set(G, PropertyName, Propertyvalue,) 修改對象的某些屬性值 4、直接獲取和修改屬性 根據對象和屬性的關系,也可以直接用“”符號來獲取和修改屬性。 例20-9 已知二階系統的傳遞函數G(s)=1/(s2+1.414s+1),獲取其傳遞函數模型的屬性,并將傳遞函數修改為1/(z2+2z+1)。 (1)獲取傳遞函數模型的屬性num=1;den=1 1.414 1;G=tf(num, den);get(G) 獲取所有屬性 num: 0 0 1 den: 1 1.41 1 Variable: s Ts: 0 ioDelay: 0 InputDelay: 0 O
28、utputDelay: 0 InputName: OutputName; InpuGroup: 02 cell OutputGroup: 02 cell Notes: UserData: set(G, den, 1 2 1, Variable, z) %設置屬性G Transfer function: 1- z2+2z+1 Sampling time: unspecified (2)將上面的傳遞函數模型對象的分母修改為原來的值。G.dm=1 1.414 1;G Transfer function: 1- z2+1.414z+1 Sampling time: unspecified20.3 結構
29、框圖的模型表示 控制系統的模型通常是由相互連接的模塊構成的,模塊通過串聯、并聯和反饋環節構成結構框圖。MATLAB提供了由復雜的結構框圖得出傳遞函數的方法。一、串聯結構 SISO的串聯結構是兩個模塊串聯在一起,如圖20-1所示。圖20-1 串聯結構 實現串聯結構傳遞函數的命令: G=G1*G2 G=series(G1, G2)二、并聯結構圖20-2 并聯結構 SISO的并聯結構是兩個模塊并聯在一起,如圖20-2所示。 實現并聯結構傳遞函數的命令: G=G1+G2 G=parallel(G1, G2)三、反饋結構 反饋結構是前向通道和反饋通道模塊構成正反饋和負反饋,如圖20-3所示。圖20-3
30、反饋結構 實現反饋結構傳遞函數的命令: G=feedback(G1,G2,Sign)其中:Sign=-1或省略,則表示為負反饋,否則表示為正反饋。 例20-11 根據系統的結構框圖求出整個系統的傳遞函數,結構框圖如圖20-4所示,G1(s)=1/(s2+2s+1),G2(s)=1/(s+1),G3(s)=1/(2s+1),G4(s)=1/s。圖20-4 結構框圖 解:Gl=tf(1, 1 2 1) Tramfer function: 1- s2+2s+1G2=tf(1, 1 1);G3=tf(1, 2 1);G4=tf(1, 1 0);G12=G1+G2 并聯結構 Transfer funct
31、ion: S2+3s+2- s3+3s2+3s+1G34=G3+C4 %并聯結構 Tramfer function: -s-1- 2s2+sG=feedback(G12,G34,-1) %反饋結構 Transfer function: 2s4+7s3+7s2+2s- 235+7s4+8s3+s2-4s-2 【注意】: 如果在進行串聯、并聯和反饋連接的模塊時,不是都用同一種描述方式,而是有的用傳遞函數,有的用狀態空間或零極點增益描述,則進行連接合并后總系統的模型描述方式按照:狀態空間描述法零極點增益描述法傳遞函數描述法的順序來確定。 例如,上圖的兩個并聯結構G1和G2,如果G1用狀態空間描述,則
32、并聯運算的結果也是用狀態空間法描述:G1=ss(tf(1, 1 2 1); %狀態空間描述G2=tf(1, 1 1);G1+G2 a= x1 x2 x3 x1 -2 -1 0 x2 1 0 0 x3 0 0 -1 b= u1 x1 1 x2 0 x3 1 c= x1 x2 x3 y1 0 1 1 d= ul y1 0 Continuous-time:model.四、復雜的結構框圖 在實際應用中經常遇到更復雜的結構框圖,結構框圖中出現相互連接交叉的模塊,MATLAB提供了處理復雜模型的方法。 求取復雜結構框圖的數學模型的步驟: (1)將各模塊的通路排序編號; (2)建立無連接的數學模型:使用ap
33、pend命令實現各模塊未連接的系統矩陣。 G=append(G1, G2, G3, ) (3)指定連接關系:寫出各通路的輸入、輸出關系矩陣Q,第1列是模塊通路編號,從第2列開始的幾列分別為進入該模塊的所有通路編號;INPUTS變量存儲輸入信號所加入的通路編號;OUTPUTS變量存儲輸出信號所在通路編號。圖20-5 系統結構框圖 (4)使用connect命令構造整個系統的模型。 Sys=connect(G, Q, INPUTS, OUTPUTS) 如果各模塊都使用傳遞函數,也可以用blkbuild命令建立無連接的數學模型,則第2步修改為:將各通路的信息存放在變量中:通路數放在nblocks,各通
34、路傳遞函數的分子和分母分別放在不同的變量中;用blkbuild命令求取系統的狀態方程模型。 例20-13 根據如圖20-5所示的系統結構框圖,求出系統總的傳遞函數。 解: 方法一:使用append命令。 (1)將各模塊的通路排序編號,如圖20-6所示為信號流圖。 (2)使用append命令實現各模塊未連接的系統矩陣。Gl=tf(1, 1 0);G2=tf(1, 1 1 0);G3=tf(1, 1 1 0);圖20-6 信號流圖G4=tf(-2, 1);G5=tf(-1, 1);G6=tf(1, 1 0);G7=tf(-1, 1 1);Sym=append(G1,G2,G3,G4,G5,G6,G
35、7) Transfer function from input 1 to output 1 #1: - s #2: 0 #3: 0 #4: 0 #5: 0 #6: 0 #7: 0 Transfer function from input 2 to output #1: 0 1 #2: - s2+s #3: 0 #4: 0 #5: 0 #6: 0 #7: 0 【程序分析】: 將每個模塊用append命令放在一個系統矩陣中,可以看到Sys模塊存放了7個模塊的傳遞函數。為了節省篇幅,在此未列出完整的Sys模塊。 (3)指定連接關系Q=1 6 5; %通路1的輸入信號為通路6和通路5 2 1 7; %
36、通路2的輸入信號為通路l和通路7 3 2 0; %通路3的輸入信號為通路2 4 3 0; 5 4 0; 6 2 0; 7 3 0;INPUTS=1; %系統總輸入由通路1輸人OUTPUTS=4; %系統總輸出由通路4輸出 【程序分析】:Q矩陣建立了各通路之間的關系,共有7行;每行的第l列為通路號,從第2列開始為各通路輸入信號的通路號;INPUTS變量存放系統輸入信號的通路號;OUTPUTS變量存放系統輸出信號的通路號。 (4)使用connect命令構造整個系統的模型。G=connect(Sys, Q, INPUTS, OUTPUTS) Transfer function: -2s2-2s- s
37、7+3s6+3s5+s4-s3-3s2-3s-6.661e-016 【程序分析】:用connect命令完成整個系統的傳遞函數模型。 方法二:從第2步開始使用blkbuild命令來實現。 (1)將各通路的信息存放在變量中。nblocks=7; %通路數為7nl=l; d1=1 0; %通路1的分子和分母n2=l; d2=1 1 0;n3=l; d3=1 1 0;n4=-2; d4=1;n5=-1; d5=1;n6=l; d2=1 0;n7=-l; d7=1 1; 【程序分析】:通路數nblccks為7;各通路傳遞函數的分子存放在變量ni,分母存放在變量di。 用blkbuild命令求取系統的狀態
38、方程模型:blkbuild State modela, b, c, d of the block diagram has 7 inputs and 7 outputs. 【程序分析】:增廣狀態方程模型即7條通路的輸入、輸出信號狀態模型建立了,存放在a,b,c,d變量中。 (2)建立連接矩陣Q指定連接關系,Q矩陣同前面。 (3)使用connect命令構造整個系統的模型。A, B, C, D=connect(a, b, c, d, Q, INPUTS, OUTPUTS)20.4 線性系統的時域分析 線性系統的時域分析是主要分析系統在給定的典型輸入信號作用下,在時域的暫態和穩態響應,以及系統的穩定性
39、。一、零輸入響應分析 系統的輸出響應由零輸入響應和零狀態響應組成,零輸入響應是指系統的輸入信號為零。系統的輸出是由初始狀態產生的響應。 1、連續系統的零輸入響應 MATLAB中使用initial命令來計算和顯示連續系統的零輸入響應。 語法: (1)initial(G,x0,Ts) %繪制系統的零輸入響應曲線 (2)initial(G1,G2,x0,Ts) %繪制系統多個系統的零輸入響應曲線 (3)y,t,x=initial(G,x0,Ts) %得出零輸入響應、時間和狀態變量響應其中:G為系統模型,必須是狀態空間模型;x0是初始條件;Ts為時間點,如果是標量則為終止時間,如果是數組,則為計算的時
40、刻,可省略;y為輸出響應;t為時間向量(可省略);x為狀態變量響應(可省略)。 2、離散系統的脈沖響應 離散系統表示為:,離散系統的零輸入響應使用dinitial命令實現。 語法: (1)dinitial(a, b, c, d, x0) %繪制離散系統零輸入響應 (2)y=dinitial(a, b, c, d, x0) %得出離散系統的零輸入響應 (3)y, x, n=dinitial(a, b, c, d, x0) %得出離散系統n點的零輸入響應其中:a,b,c,d為狀態空間的系數矩陣;x0為初始條件;y為輸出響應;t為時間向量;x為狀態變量響應;n為點數。二、脈沖響應分析 理想的脈沖函數
41、(t)為Dirac函數, 1、連續系統的脈沖響應 連續系統的脈沖響應由impluse命令來得出。 語法: (1)impulse(G, Ts) %繪制系統的脈沖響應曲線 (2)y,t,x=impulse(G,Ts) %得出脈沖響應其中:G為系統模型,可以是傳遞函數、狀態方程、零-極點增益的形式;y為時間響應;t為時間向量;x為狀態變量響應,t和x可省略;Ts為時間點(可省略)。 例20-15某反饋系統,前向通道的傳遞函數為Gl=12/(s+4),反饋通道傳遞函數為H=1/(s+3)。圖20-7 零輸入響應曲線 解:(1)求出其初始條件為12時的零輸入響應,其曲線如圖20-7所示。Gl=tf(12
42、, 1 4);H=tf(1, 1 3);GG=feedback(G1, H) Transfer function: 12s+36 S2+7S+24G=ss(GG);initial(G,1 2) %繪制零輸入響應 (2)求出初始條件為0,該系統的單位脈沖響應并畫曲線,如圖20-8所示。impulse(G) %繪制脈沖響應曲線t=0:0.1:10;圖20-8 脈沖響應曲線y=impulse(G,t) %根據時間,得出脈沖響應 2、離散系統的脈沖響應 離散系統的脈沖響應使用dimpulse命令實現。 語法: (1)dimpulse(a,b,c,d,iu) %繪制離散系統脈沖響應曲線 (2)y,x=d
43、impulse(a,b,c,d,iu,n) 得出n點離散系統的脈沖響應 (3)y,x=dimpulse(num,den,iu,n) %由傳遞函數得出n點離散系統的脈沖響應其中:iu為第幾個輸入信號;n為要計算脈沖響應的點數;y的列數與n對應;x為狀態變量,可省略。 例20-18 根據系統數學模型,得出離散系統的脈沖響應,如圖20-9所示。圖20-9 離散系統脈沖響應曲線a=-2 0;0 3;b=1;1;c=1 4;d=1;dimpluse(a,b,c,d,1,10) %繪制離散系統脈沖響應的10個點三、階躍響應分析 階躍信號的定義為: 1、連續階躍響應 階躍響應可以用step命令來實現。 語法
44、: (1)step(G,Ts) 繪制系統的階躍響應曲線 (2)y,t,x1=step(G,Ts) 得出階躍響應 【說明】: 參數設置與impulse命令相同。 例20-19根據例20-11的系統模型得出階躍響應曲線,如圖20-10所示。圖20-10 階躍響應曲線Gl=tf(12,1 4);H=tf(1,1 3);G=feedback(G1,H) Transfer function: 12s+36 s2+7s+24step(G) %繪制階躍響應曲線 可以由step命令根據時間t的步長不同,得出不同的階躍響應波形,如圖20-11所示。t1=0:0.1:5;(a)階躍響應曲線 (b)步長增大的階躍響
45、應曲線圖20-11 不同的階躍響應曲線y1=step(G,t1);plot(t1,y1)t2=0:0.5:5;y2=step(G,t2);plot(t2,y2) 2、離散系統的階躍響應 離散系統階躍響應使用dstep命令來實現,語法規則與dimpluse相同。四、任意輸入的響應圖20-12 正弦輸入信號的輸出響應 1、連續系統的任意輸入響應 連續系統對任意輸入的響應用lsim命令來實現。 語法: (1)lsim(G,U,Ts) %繪制系統的任意響應曲線 (2)lsim(G1,G2,U,Ts) %繪制多個系統任意響應曲線 (3)y,t,x=lsim(G,U,Ts) %得出任意響應其中:U為輸入序
46、列,每一列對應一個輸入;Ts為時間點,U的行數和Ts相對應;參數t和x可省略。 例20-20根據輸入信號和系統的數學模型,得出任意輸入的輸出響應,輸入信號為正弦信號,系統為阻尼系數變化的二階系統,輸出響應如圖20-12所示。t=0:0.1:5;u=sin(t);G1=tf(1, 1 1.41 1) Transfer function: 1- s2+1.41s+1G2=tf(1,1 0.6 1) Transfer function: 1- s2+0.6s+1Lsim(G1, r, G2,bo,u,t) 繪制兩個系統的正弦輸出響應 2、離散系統的任意輸入響應 離散系統的任意輸入響應用dlsim命令
47、來實現。 語法: (1)d1sim(a,b,c,d,U) 繪制離散系統的任意響應曲線 (2)y,x=dlsim(num,den,U) 得出離散系統任意響應和狀態變量響應 (3)y,x=dlsim(a,b,c,d,U) 得出離散系統響應和狀態變量響應其中:U為任意序列輸入信號。 例20-23 根據離散系統的z變換表達式G(z)=(2+5z-1+z-2)/(1+2z-1+3z-2),得出正弦序列輸入響應,輸出響應如圖20-13所示。num=2 5 1;圖20-13 正弦序列輸入信號的輸出響應den=1 2 3;t=0:0.1:5;u=sin(t);y=dlsim(num, den, u);五、系統
48、的結構參數 線性系統的時域響應的性能,與系統的結構參數有關。 1、極點和零點 (1)pole命令計算極點 語法: p=pole(G) 【說明】: 當系統有重極點時,計算結果不一定準確。 (2)tzero命令計算零點和增益 語法:z=tzero(G) 得出連續和離散系統的零點z,gain=tzero(G) 獲得零點和零-極點增益 【說明】: 對于單輸入、單輸出系統,tzero命令也用來計算零-極點增益。 (3)pzmap命令繪制零-極點。 語法:pzmap(G) 繪制系統的零-極點pzmap(G1,G2,) 繪制多個系統的零-極點p,z=pzmap(G) 得出系統的零-極點值 2、閉環系統的阻尼
49、系數和固有頻率 damp命令用來計算閉環系統所有共軛極點的阻尼系數和固有頻率n。 語法: wn, zeta=damp(G) 3、時域響應的穩態增益 穩態增益可使用dcgain命令來得出。 語法: k=dcgain(G) 獲得穩態增益 例20-25 獲得G(s)=(5s+100)/(s4+8s3+32s2+80s+100)系統的零-極點。num=5 l00;den=1 8 32 80 100;G=tf(num, den);p=pole(G) p= -1.0000e+000+3.0000e+000i -1.0000e+000-3.0000e+000i -3.0000e+000+1.0000e+00
50、0i -3.0000e+000-1.0000e+000iz,gain=taero(G) 得出零點和零-極點增益 z= -20 gain= 5 (2)計算所有閉環極點的和n。wn, zeta=damp(G) wn= 3.1623e+000 3.1623e+000 3.1623e+000 3.1623e+000 zeta= 9.4868e-001 9.4868e-001 3.1623e-001 3.1623e-001dcgain(G) 得出線性系統的穩態增益 ans= 120-5線性系統的頻域分析 線性系統的頻域分析是以頻率為參變量來分析系統的。頻域分析的基本概念是當輸入一個頻率為的正弦信號時,其
51、輸出也是同頻率的正弦信號,幅值和相角隨輸入信號的頻率而變化。一、頻域特性 線性系統的頻域響應可以寫成:G(j)=|G(j)|ej()=A()ej()其中:A()=|G(j)|,()=G(j),A()為幅頻特性,()為相頻特性。 頻域特性由下式求出: (1)Gw=polyval(num, j*w)./polyval(den, j*w) (2)mag=ahs(Gw) 幅頻特性 (3)pha=angle(Gw) 相頻特性其中:j為虛部變量。 例20-26 由二階系統傳遞函數G(s)=1/(s2+1.414s+1),得出頻域特性。mum=1;den=1 1.414 1;w=1;Cw=polyval(n
52、um, j*w)./polyval(den, j*w) 得出系統頻率特性 Gw= 0-0.7072iAw=abs(Gw) 得出幅頻特性 Aw= 0.7072Fw=angle(Gw) 得出相頻特性 Fw= -1.5708二、連續系統頻域分析 連續系統的頻域特性主要由幾種圖形表示:bode圖、nyquist曲線和nichols圖等。 1、bode圖 bode圖是對數幅頻和對數相頻特性曲線,橫坐標為以logl0(w)均勻分度,使用bode命令繪制和計算。 語法: (1)bode(G, w) 繪制bode圖 (2)mag, pha=bode(G, w) 得出w對應的幅值和相角 (3)mag, pha,
53、 w=bode(G) 得出幅值、相角和頻率其中:G為系統模型,w為頻率向量,mag為系統的幅值,pha為系統的相角。 例20-28 根據系統傳遞函數G(s)=1/s(s+1)(s+2),繪制bode圖如圖20-14(a)所示。 解:(1)利用bode圖num=l;den=conv(1 1, 1, 2) den= 1 3 2G=tf(num, den 0) Transfer function: 1- s3+3s2+2s (a)bode圖 (b)用semilogx命令繪制對數幅頻和相頻特性圖20-14 bode圖和用semilogx命令繪制對數曲線bode(G) 繪制bode圖 也可以通過計算獲取
54、幅值和相角特性,用semilogx命令繪制對數曲線。 (2)使用semilogx命令繪制對數幅頻和相頻特性,如圖20-14(b)所示。w=logspace(-1, 2);m, p=bode(num, den, w);subplot(2, 1, 1)semilogx(w, 20*log10(m)subplot(2, 1, 2)semilogx(w, p) 2、nyquist曲線 nyquist曲線是幅相頻率特性曲線,使用nyquist命令繪制和計算。 語法: (1)nyquist(G, w) 繪制nyquist曲線 (2)nyquist(G1, G2, , w) 繪制多條nyquist曲線 (3
55、)Re, Im=nyquist(G, w) 由w得出對應的實部和虛部 (4)Re, Im, w=nyquist(G) 得出實部、虛部和頻率其中:G為系統模型;w為頻率向量,也可以用wmin, wmax表示頻率的范圍;Re為頻率特性的實部,Im為頻率特性的虛部。 例20-30 根據傳遞函數G1(s)=1/(s(s+1)(s+2),G2(s)=1/(s(s+1)(s+2)和G3(s)=1/s(s+1),繪制各系統的nyquist曲線,如圖20-15所示。num=1;den1=cony(1 1,1 2,0);圖20-15 nyquist曲線Gl=tf(num, den1) Transfer func
56、tion: 1- s3+3s2+2sden2=conv(1 1,1 2);G2=tf(num, den2) Transfer function: 1- s2+3s+2den3=1 1 0;G3=tf(num, den3) Transfer function: 1- s2+snyquist(G1, r, G2, b: , G3, g-., 0.1, 180/57.3) 頻率范圍0.1, 180/57.3 獲得頻率特性的實部和虛部:w=1:2;re, im=nyquist(G1,w) re(:, :, 1)= -3.0000e-001 re(:, :, 2)= -7.5000e-002 im(:,
57、 :, 1)= -1.0000e-001 im(:, :, 2)= 2.5000e-002 【程序分析】: re和im是三維數組,數組元素下標為(Ny, Nu, Length(w),其中Ny為輸出,Nu為輸入。 3、nichols圖 nichols圖是對數幅相頻率特性曲線,使用nichols命令繪制和計算。 語法: (1)nichols(G, w) 繪制nichols圖 (2)nichols(G1,G2,w) 繪制多條nichols圖 (3)Mag, Pha=nichols(G, w) 由w得出對應的幅值和相角 (4)Mag, Pha, w=nichols(G) 得出幅值、相角和頻率 在單位反
58、饋系統中,閉環系統的傳遞函數可以寫成G(s)/(1+G(s),因此nichols圖的等M圓和等N圓就映射成等M線和等線,MATLAB提供了繪制nichols框架下的等M線和等線的命令ngrid。 語法: ngrid(new) 清除圖形窗口并繪制等M線和等線 說明: new為創建的圖形窗口,清除該圖形窗口并繪制等M線和等線,如果繪制了nichols圖后可省略new,直接添加等M線和等線。產生-4040dB的幅值和-360000的范圍,并保持圖形。 例20-31 根據傳遞函數G1(s)=1/s(s+1)(s+2),繪制等M線、等線和nichols圖,如圖20-16所示。 解:ngrid(nicho
59、ls1) 繪制等M線和等線Nichols(G1) 繪制nichols圖圖20-16 nichols圖w=1:2;Mag, Pha=nichols(G1, w) 獲得幅值和相負數值 Mag(:, :, 1)= 3.1623e-001 Mag(:, :, 2)= 7.9057e-002 Pha(:, :, 1)= -1.6157e+002 Pha(:, :, 2)= -1.9843e+002 程序分析:用“ngrid命令可以創建等M線和等線圖形窗口,用鼠標單擊圖形中的某點,可以看到其相關信息。三、幅值裕度和相角裕度 在頻域分析中,幅值裕度和相角裕度是反映系統的性能指標。MATLAB提供了得出幅值裕
60、度和相角裕度的命令margin。 語法: (1)margin(G) 繪制bode圖并標出幅值裕度和相角裕度 (2)Gm, Pm, Wcg, Wcp=margin(G) 得出幅值裕度和相角裕度其中:Gm為幅值裕度,Wcg為幅值裕度對應的頻率;Pm為相角裕度,Wcp為相角裕度對應的頻率(穿越頻率)。如果Wcg或Wcp為nan,inf,則對應的Gm或Pm為無窮大。 例20-32 求出G1(s)=1/s(s+1)(s+2)系統的幅值裕度和相角裕度。G1 Transfer function 1- s3+3s2+2sGm, Pm, Wcg, Wcp=margin(G1) Gm= 6.0000e+000 P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 仰天湖大草原活動方案
- 任意超市活動方案
- 企業一日游活動方案
- 企業產品促銷活動方案
- 企業全年員工活動方案
- 企業農莊活動方案
- 企業醫師節日活動方案
- 企業品牌打卡活動方案
- 企業培訓師活動方案
- 企業安排會展活動方案
- 全國二卷-2025年高考語文真題作文深度點評與分析
- 防排煙系統設計畢業答辯
- 血脂異常健康管理專題
- 利用學習畫像實現個性化學習路徑設計與優化策略研究
- 2025年人工智能應用技術職業資格考試試卷及答案
- 鐵路工程竣工驗收管理辦法
- 《工程完工結算單》word版
- 如何落實“三管三必須”完整ppt
- SPC基礎知識培訓教材ppt課件
- 2022年《明碼標價和禁止價格欺詐規定》重點解讀
- 電力電子第三版習題及解答
評論
0/150
提交評論