MATLAB程序設計課件第9章_第1頁
MATLAB程序設計課件第9章_第2頁
MATLAB程序設計課件第9章_第3頁
MATLAB程序設計課件第9章_第4頁
MATLAB程序設計課件第9章_第5頁
已閱讀5頁,還剩401頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

MATLAB程序設計及應用第9章MATLAB在工程中的應用

MATLAB程序設計及應用第9章MATLAB在工程中的應1第9章MATLAB在工程中的應用

cc由于MATLAB的使用非常方便,并且提供了數(shù)值計算、圖形繪制、數(shù)據(jù)處理、圖像處理等方面的強大功能,因此許多工程領域專家在MATLAB的基礎上為他們擅長的領域寫了一些專用的應用程序集,稱之為工具箱(Toolbox)。第9章MATLAB在工程中的應用cc由于MAT2第9章MATLAB在工程中的應用

cc

MATLAB中含有豐富的專門用于控制系統(tǒng)分析與設計的函數(shù),可以實現(xiàn)對線性系統(tǒng)的建模、時域或頻域分析與設計,利用的是控制系統(tǒng)工具箱中的各種算法程序,而這些算法程序大部分都是M函數(shù)文件,可以直接調用。9.1MATLAB在自動控制中的應用第9章MATLAB在工程中的應用ccMATLA39.1MATLAB在自動控制中的應用

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)控制系統(tǒng)的數(shù)學模型通常是指動態(tài)數(shù)學模型。自動控制系統(tǒng)中最基本也是最重要的數(shù)學模型是微分方程,它反映了部件或系統(tǒng)的動態(tài)運行規(guī)律。應用拉氏變換將線性微分方程轉化為傳遞函數(shù),以及基于傳遞函數(shù)的圖形化形式——系統(tǒng)結構圖,都是自動控制系統(tǒng)的數(shù)學模型。MATLAB處理的是數(shù)組對象,而其控制系統(tǒng)工具箱處理的系統(tǒng)是線性時不變(LTI)系統(tǒng)。在MATLAB中,可以用4種數(shù)學模型表示自動控制系統(tǒng),其中前3種是用數(shù)學表達式描述。每種數(shù)學模型都有連續(xù)時間系統(tǒng)和離散時間系統(tǒng)兩個類別。MATLAB中的Simulink結構圖是第4種數(shù)學模型。9.1MATLAB在自動控制中的應用9.1.14

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

1.控制系統(tǒng)數(shù)學模型的MATLAB實現(xiàn)

LTI對象可以是連續(xù)時間系統(tǒng),也可以是離散時間系統(tǒng)。連續(xù)時間系統(tǒng)一般是由微分方程來描述的。而線性系統(tǒng)又是以線性微分方程來描述的。假設系統(tǒng)的輸入、輸出信號分別為和,則系統(tǒng)的微分方程可寫成 (9.1)其中,和為常數(shù)。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)5

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

對應的傳遞函數(shù)定義為:在零初始條件下,系統(tǒng)輸出量的拉氏變換與輸入量的拉氏變換之比 (9.2)

對于離散時間系統(tǒng),常常以定常系數(shù)線性差分方程來描述。單輸入單輸出(SISO)的LTI系統(tǒng)的差分方程為

(9.3)其中,和為常數(shù)。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)6

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

對應的脈沖傳遞函數(shù)為 (9.4)

無論是連續(xù)時間系統(tǒng)還是離散時間系統(tǒng),傳遞函數(shù)的分子、分母多項式均按‘s’或‘z’的降冪排列,都可以直接用分子、分母多項式系數(shù)構成的兩個向量num和den表示系統(tǒng),即 (9.5)9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)7

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)在MATLAB中,分別用一維“行”數(shù)組(向量)表示完分子、分母多項式系數(shù)后,再利用控制系統(tǒng)工具箱的函數(shù)tf就可以用一個變量表示傳遞函數(shù)模型。tf函數(shù)的調用格式為 sys=tf(num,den) sys=tf(num,den,T)【說明】

在第1種格式中,輸出宗量sys為連續(xù)時間系統(tǒng)的傳遞函數(shù)模型;輸入宗量num和den分別為系統(tǒng)的分子與分母多項式系數(shù)向量。在第2種格式中,輸出宗量sys為離散時間系統(tǒng)的脈沖傳遞函數(shù)模型;輸入宗量num和den含義同上;T為采樣周期,當T=-1或T=[]時,系統(tǒng)的采樣周期未定義。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)8

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)需要注意的是:當多項式的某項系數(shù)為0時,千萬不能忽略不寫。如果忽略,多項式將降階。

對于已知的傳遞函數(shù)模型,其分子與分母多項式系數(shù)向量可以分別用指令sys.num{1}和sys.den{1}求出。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)9

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)如果連續(xù)時間系統(tǒng)的傳遞函數(shù)用系統(tǒng)零點、極點和增益來表示,稱為系統(tǒng)的零極點增益模型,即有

(9.6)其中,k為系統(tǒng)增益;-z1,-z2,…,-zm為系統(tǒng)零點;-p1,-p2,…,-pn為系統(tǒng)極點(下同)。

離散時間系統(tǒng)的脈沖傳遞函數(shù)也可用系統(tǒng)零點、極點和增益來表示,有

(9.7)9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)10

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

無論是連續(xù)時間系統(tǒng)還是離散時間系統(tǒng),都可以直接用列向量z,p和k構成的向量組來表示,即有 (9.8)在MATLAB中,用函數(shù)zpk來建立控制系統(tǒng)的零極點增益模型。zpk函數(shù)的調用格式為 sys=zpk(z,p,k) sys=zpk(z,p,k,T)9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)11

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)【說明】

第1種格式中,輸出宗量sys為連續(xù)系統(tǒng)的零極點增益模型;輸入宗量z,p和k分別為系統(tǒng)的零點、極點和增益。

第2種格式中,輸出宗量sys為離散系統(tǒng)的零極點增益模型;輸入宗量z,p和k含義同上;T為采樣周期,當T=-1或T=[]時,系統(tǒng)的采樣周期未定義。

對于已知的零極點增益模型,其零點與極點系數(shù)向量及增益可以分別用指令sys.z{1},sys.p{1}和sys.k求出。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)12

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)離散時間系統(tǒng)的脈沖傳遞函數(shù)模型還有一種以為因子的分子分母多項式的形式(即DSP形式),建立DSP形式脈沖傳遞函數(shù)模型的MATLAB函數(shù)為filt,其調用格式為 sys=filt(num,den) sys=filt(num,den,T)【說明】第1種格式用來建立一個采樣周期未指定的DSP形式脈沖傳遞函數(shù)。第2種格式用來建立一個采樣周期指定為T的DSP形式脈沖傳遞函數(shù)。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)13連續(xù)LTI系統(tǒng)的狀態(tài)空間模型為

(9.9)其中,u(t)是系統(tǒng)控制輸入向量;x(t)是系統(tǒng)狀態(tài)向量;y(t)是系統(tǒng)輸出向量;A為系統(tǒng)矩陣(或稱狀態(tài)矩陣);B為控制矩陣(或稱輸入矩陣);C為輸出矩陣(或稱觀測矩陣);D為輸入輸出矩陣(或稱直接傳輸矩陣)。

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)連續(xù)LTI系統(tǒng)的狀態(tài)空間模型為9.1.1控14

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)離散時間系統(tǒng)的狀態(tài)空間模型為

(9.10)其中,u(k)、x(k)和y(k)分別是離散時間系統(tǒng)的控制輸入向量、系統(tǒng)狀態(tài)向量和系統(tǒng)輸出向量;A,B,C和D的含義同上;k表示采樣點。

連續(xù)時間系統(tǒng)和離散時間系統(tǒng)的狀態(tài)空間模型都可以直接用二維數(shù)組(即矩陣)組表示。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)15

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)在MATLAB中,用函數(shù)ss來建立控制系統(tǒng)的狀態(tài)空間模型。ss函數(shù)的調用格式為 sys=ss(A,B,C,D) sys=ss(A,B,C,D,T)【說明】

第1種格式中,輸出宗量sys為連續(xù)時間系統(tǒng)的狀態(tài)空間模型。

第2種格式中,輸出宗量sys為離散時間系統(tǒng)的狀態(tài)空間模型;T為采樣周期,當T=-1或T=[]時,系統(tǒng)的采樣周期未定義。

對于已知的狀態(tài)空間模型,其參數(shù)矩陣A,B,C和D可以分別用指令sys.a,sys.b,sys.c和sys.d求出。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)16

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)【例9.1】將傳遞函數(shù)模型輸入到MATLAB工作空間。編寫M腳本文件exam9_1.m如下:%exam9_1clearnum=[12,24,12,20];den=[2,4,6,2,2];sys=tf(num,den) %獲得系統(tǒng)的數(shù)學模型9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)17

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)exam9_1.m的運行結果【說明】

運行該程序后,在MATLAB的工作空間中可以看到一個變量,其值為一個1×1的傳遞函數(shù)。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)18

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)%exam9_2clearnum=[1.6,-5.8,3.9];den=[1,-0.7,2.4];sys=tf(num,den,0.1)sys1=filt(num,den,0.1)【例9.2】已知二階離散時間系統(tǒng)的脈沖傳遞函數(shù)為

試求采樣周期時,系統(tǒng)脈沖傳遞函數(shù)的DSP形式。編寫M腳本文件exam9_2.m如下:9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)19

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)exam9_2.m的運行結果9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)20

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)%exam9_3clearp=[-1;-2;-3;-4];%注意應使用列向量z=[-5;-2+2i;-2-2i];sys=zpk(z,p,6)【例9.3】將零極點增益模型輸入到MATLAB工作空間。編寫M腳本文件exam9_3.m如下:9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)21

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)exam9_3.m的運行結果【說明】

在MATLAB的零極點增益模型顯示中,如果有復數(shù)零極點存在,則用二階多項式來表示兩個因式,而不直接展開成一階復數(shù)因式。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)22

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

不一定非要有用數(shù)學表達式描述的數(shù)學模型,才能對系統(tǒng)進行研究。MATLAB中特有的另外一種數(shù)學模型就是Simulink模型窗(叫做“untitled”窗)里的動態(tài)結構圖。只要在Simulink工作窗里,按其規(guī)則(參見第8章)畫出動態(tài)結構圖,就是對系統(tǒng)建立了數(shù)學模型。再按規(guī)則將結構圖的參數(shù)用實際系統(tǒng)的數(shù)據(jù)進行設置,就可以直接、方便地對系統(tǒng)進行各種仿真。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)23

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

2.LTI對象模型之間的相互轉換LTI對象模型之間的相互轉換是指連續(xù)時間系統(tǒng)(或離散時間系統(tǒng))的傳遞函數(shù)模型、零極點增益模型和狀態(tài)空間模型之間的相互轉換。直接應用函數(shù)tf,zpk和ss即可以完成。需要指出的是,此類轉換從理論上講是不存在轉換誤差的。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)24

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)【例9.4】已知系統(tǒng)的狀態(tài)空間模型求其等效的傳遞函數(shù)模型和零極點增益模型。編寫M腳本文件exam9_4.m如下:9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)25%exam9_4clearA=[0.3,0.1,0.05;1,0.1,0;1.5,8.9,0.05];B=[2;0;4];C=[1,2,3];D=0;sys_ss=ss(A,B,C,D);sys_tf=tf(sys_ss)sys_zpk=zpk(sys_tf)exam9_4.m的運行結果

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)即傳遞函數(shù)模型為%exam9_4exam9_4.m的運行結果9.126

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

3.連續(xù)時間模型與離散時間模型之間的相互轉換MATLAB的控制系統(tǒng)工具箱還提供實現(xiàn)連續(xù)時間系統(tǒng)和離散時間系統(tǒng)之間相互轉換的函數(shù)。這些函數(shù)對于傳遞函數(shù)模型、零極點增益模型和狀態(tài)空間模型均適用。需要指出的是,此類轉換從理論上講是存在轉換誤差的。

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)27

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)如果有連續(xù)時間系統(tǒng)模型sysc,將其轉換為離散時間系統(tǒng)模型的指令格式為 sysd=c2d(sysc,T,‘method’)【說明】

輸出宗量sysd為轉換后離散時間模型對象;輸入宗量sysc為連續(xù)時間模型對象;T為采樣周期,單位為sec;method用來指定離散化采用的方法(缺省時,method=zoh): zoh 采用零階保持器; foh 采用一階保持器; imp 采用脈沖響應不變法; tustin采用雙線性變換法(Tustin法) prewarp 采用改進的Tustin法; matched 采用SISO系統(tǒng)的零極點根匹配法。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)28

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)如果有離散時間系統(tǒng)模型sysd,將其轉換為連續(xù)時間系統(tǒng)模型的指令格式為 sysc=d2c(sysd,‘method’)【說明】

輸出宗量sysc為轉換后連續(xù)時間模型對象;輸入宗量sysd為離散時間模型對象;method用來指定離散化采用的方法(缺省時,method=zoh): zoh 采用零階保持器; tustin 采用雙線性變換法(Tustin法) prewarp 采用改進的Tustin法; matched 采用SISO系統(tǒng)的零極點根匹配法。在該函數(shù)調用中無需再申明采樣周期信息,因為該信息已包含在離散模型sysd中。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)29

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

【例9.5】已知連續(xù)系統(tǒng)的傳遞函數(shù)模型為試分別對系統(tǒng)采用零階保持器和雙線性變換法求其離散化狀態(tài)空間模型(設采樣周期T=1sec)。編寫M腳本文件exam9_5.m如下:9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)30%exam9_5clearnum=[1];den=[1,3,2];sys_continuous=tf(num,den);t=1;%將連續(xù)傳遞函數(shù)轉換成脈沖傳遞函數(shù)(zoh)disp('DiscreteSystem--usingc2dwithzoh')sys_discrete_zoh=c2d(sys_continuous,t);%將脈沖傳遞函數(shù)轉換成狀態(tài)空間模型sys_zoh=ss(sys_discrete_zoh)%采用雙線性變換法

disp('DiscreteSystem--usingc2dwithtustin')sys_discrete_tustin=c2d(sys_continuous,t,'tustin');sys_tustin=ss(sys_discrete_tustin)

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)%exam9_59.1.1控制系統(tǒng)數(shù)學模型及轉換31

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)exam9_5.m的運行結果(上半部)DiscreteSystem--usingc2dwithzoha=x1x2x10.5032-0.1991x20.250b=u1x10.5x20c=x1x2y10.39960.588d=u1y10Samplingtime:1Discrete-timemodel.9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)32

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)exam9_5.m的運行結果(下半部)DiscreteSystem--usingc2dwithtustina=x1x2x10.33330x210b=u1x10.5x20c=x1x2y10.38890.1667d=u1y10.08333Samplingtime:1Discrete-timemodel.9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)33

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)即采用零階保持器和雙線性變換法的離散化狀態(tài)空間模型分別為9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)34

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

4.環(huán)節(jié)方框圖模型的化簡

自動控制系統(tǒng)是由被控對象與控制裝置組成的,即系統(tǒng)有多個環(huán)節(jié),每個環(huán)節(jié)又是由多個元件構成的。環(huán)節(jié)在MATLAB中又叫做模塊。自動控制的對象可以是一個元件,一個環(huán)節(jié),也可以是一個模塊,一個裝置,甚至是一個系統(tǒng)。這要根據(jù)討論問題的實際情況來確定。系統(tǒng)方框圖的化簡同樣適用于環(huán)節(jié)的、模塊的、裝置的方框圖模型的化簡。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)35

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

環(huán)節(jié)串聯(lián)是指一個環(huán)節(jié)的輸出為相鄰的下一個環(huán)節(jié)的輸入,其余依此類推(圖9.1為兩個環(huán)節(jié)串聯(lián))。將串聯(lián)的多個環(huán)節(jié)的傳遞函數(shù)方框依次串聯(lián)畫出即成為系統(tǒng)方框圖模型??刂葡到y(tǒng)的環(huán)節(jié)串聯(lián)及其化簡就是模塊方框圖模型的串聯(lián)及其化簡。圖9.1

當n個模塊方框圖模型sys1,sys2,…,sysn串聯(lián)連接時,其等效的方框圖模型為:sys=sys1*sys2*…*sysn。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)36

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

當n個模塊方框圖模型sys1,sys2,…,sysn并聯(lián)連接時,其等效的方框圖模型為:sys=sys1±sys2±…±sysn(取“+”或“-”由系統(tǒng)結構圖決定)。

環(huán)節(jié)并聯(lián)是指多個環(huán)節(jié)的輸入信號相同,所有環(huán)節(jié)輸出的代數(shù)和為其總輸出。兩個環(huán)節(jié)的并聯(lián)如圖9.2所示。圖9.29.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)37

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

MATLAB中的函數(shù)feedback可以將兩個環(huán)節(jié)反饋連接后求其等效傳遞函數(shù)。feedback函數(shù)的調用格式為 sys=feedback(sys1,sys2,sign)【說明】feedback函數(shù)將兩個環(huán)節(jié)按反饋方式連接起來;sys1為圖9.3中的G(s);sys2為H(s)(單位反饋時,sys2=1,且不能省略);sign是反饋極性(缺省時,默認為負反饋,即sign=-1)。

兩個環(huán)節(jié)的反饋連接如圖9.3所示。

圖9.39.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)38

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)

【例9.6】圖9.4是晶閘管—直流電機轉速負反饋單閉環(huán)調速系統(tǒng)的系統(tǒng)方框圖,求系統(tǒng)的閉環(huán)傳遞函數(shù)。圖9.4編寫M腳本文件exam9_6.m如下:9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)39

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)%exam9_6clearn1=[1];d1=[0.017,1];s1=tf(n1,d1);n2=[1];d2=[0.075,0];s2=tf(n2,d2);s=s1*s2;sys1=feedback(s,1);%求小閉環(huán)的傳遞函數(shù)n3=[0.049,1];d3=[0.088,0];s3=tf(n3,d3);n4=[44];d4=[0.00167,1];s4=tf(n4,d4);n5=1;d5=0.01925;s5=tf(n5,d5);%比例環(huán)節(jié)也要寫成分子、分母多項式形式n6=0.01178;d6=1;s6=tf(n6,d6);sysq=sys1*s3*s4*s5;sys=feedback(sysq,s6)9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)40

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)exam9_6.m的運行結果9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)41

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)5.利用Simulink模型求取系統(tǒng)的數(shù)學模型將Simulink模型和編程相結合,可以直接求出系統(tǒng)的數(shù)學模型。

【例9.7】對于圖9.4晶閘管—直流電機轉速負反饋單閉環(huán)調速系統(tǒng)的系統(tǒng)方框圖,利用Simulink模型求其閉環(huán)傳遞函數(shù)。圖9.49.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)42

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)(1)建模的基本思路本例的系統(tǒng)數(shù)學模型是通過形象直觀的方框圖和各環(huán)節(jié)的傳遞函數(shù)給出的。這特別便于用Simulink的傳遞函數(shù)模塊建模。(2)構造“用于系統(tǒng)傳遞函數(shù)計算”的Simulink模型根據(jù)題給方框圖和各環(huán)節(jié)的具體傳遞函數(shù)構造Simulink模型(exam9_7_mdl.mdl),如圖9.5所示。圖9.59.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)43

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)(3)系統(tǒng)傳遞函數(shù)的獲取編寫M腳本文件exam9_7.m如下:%exam9_7clear[A,B,C,D]=linmod2('exam9_7_mdl');%從Simulink模型得到狀態(tài)空間模型sys_tf=tf(ss(A,B,C,D))%將狀態(tài)空間模型轉化為傳遞函數(shù)模型9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)44

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)exam9_7.m的運行結果9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)45

9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)【說明】

函數(shù)linmod2用于獲取系統(tǒng)的線性化模型。本例獲得的傳遞函數(shù)模型不一定是狀態(tài)空間模型的最小實現(xiàn)。如果要得到最小實現(xiàn)的傳遞函數(shù)模型,則最后一條指令應改為:

sys_tf=tf(minreal(ss(A,B,C,D)))其中,函數(shù)minreal用于去除相消零極點對應的狀態(tài)變量。本例所得結果與【例9.6】所得的計算結果在形式上不一樣。這是因為MATLAB自動對分母多項式的最高項系數(shù)進行了“標幺化”處理。事實上,如果將【例9.6】所得的計算結果的各項系數(shù)同時除以3.607e-9,則與本例結果完全相同。9.1.1控制系統(tǒng)數(shù)學模型及轉換的MATLAB實現(xiàn)469.1MATLAB在自動控制中的應用

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)控制系統(tǒng)時域響應的MATLAB數(shù)值解方法有兩種:一種是在MATLAB的函數(shù)方式下進行;另一種是利用Simulink動態(tài)結構圖進行時域仿真(參見第8章)。1.線性系統(tǒng)的階躍響應和脈沖響應利用MATLAB所提供的求取系統(tǒng)的單位階躍響應函數(shù)step和dstep,單位脈沖響應函數(shù)impulse和dimpulse,可以求出其對應的響應。9.1MATLAB在自動控制中的應用9.1.247

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)

step函數(shù)的調用格式為 step(sys) step(sys,t) [y,t]=step(sys) [y,t,x]=step(sys)【說明】

LTI對象的sys可以是由函數(shù)tf,zpk和ss中任何一個建立的連續(xù)時間系統(tǒng)模型。9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)48

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)

第1種格式為無輸出宗量的格式,函數(shù)在當前圖形窗中直接繪制出系統(tǒng)的單位階躍響應曲線。第2種格式用于計算系統(tǒng)的單位階躍響應并繪制出對應的曲線。其中,t可以指定為一個仿真終止時間,此時t為一標量;也可以設置為一個時間向量(例如,用指令t=0:dt:Tfinal);函數(shù)中的t也可以沒有。對于離散系統(tǒng)階躍響應函數(shù)dstep,時間間隔dt必須與采樣周期匹配。第3種格式為帶有輸出宗量引用的函數(shù),計算系統(tǒng)單位階躍響應的輸出數(shù)據(jù),而不繪制曲線。輸出宗量y為系統(tǒng)的響應向量,t為取積分值的時間向量。9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)第49

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)第4種格式為帶有輸出宗量引用的函數(shù),計算系統(tǒng)單位階躍響應的輸出數(shù)據(jù),而不繪制曲線。輸出宗量y為系統(tǒng)的響應向量,t為取積分值的時間向量,x為系統(tǒng)的狀態(tài)軌跡數(shù)據(jù)。需要注意的是:輸出宗量[y,t,x]三個元素的順序不能錯。這種格式通常用于以函數(shù)ss建立的系統(tǒng)模型。如果想同時繪制出多個系統(tǒng)的階躍響應曲線,則可以仿照plot指令給出系統(tǒng)階躍響應指令,例如,step(sys1,'-',sys2,'-.',sys3,':r')。上述4種格式離散系統(tǒng)階躍響應函數(shù)dstep同樣適用。單位脈沖響應函數(shù)impulse和dimpulse的調用格式相同。9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)第50

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)

【例9.8】單位反饋系統(tǒng)前向通道的傳遞函數(shù)為試作出其單位階躍響應曲線。編寫M腳本文件exam9_8.m如下:%exam9_8clearsys_tf=tf(80,[1,2,0]);closys=feedback(sys_tf,1);step(closys)9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)51

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)exam9_8.m的運行結果圖9.6(a)9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)exa52

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)圖9.6(b)exam9_8.m的運行結果

在自動繪制的系統(tǒng)單位階躍響應曲線上,若單擊曲線上的某點,可以顯示出該點對應的時間信息和相應的幅值信息,如圖9.6(b)所示。通過這樣的方法就可以很容易地分析系統(tǒng)階躍響應的情況。9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)圖9.53

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)exam9_8.m的運行結果圖9.7線性系統(tǒng)的階躍響應通常采用一些定量的性能指標來描述,如系統(tǒng)的超調量、上升時間、調節(jié)時間等。在MATLAB自動繪制的階躍響應曲線中,如果想要得出這些性能指標,只需在得到的圖上右擊鼠標鍵,則將得出如圖9.7所示的菜單。點擊Characteristics(特征)項,從中選取合適的分析內(nèi)容,就可以得出系統(tǒng)的階躍響應指標,如圖9.7所示。若想獲得某個性能指標的具體值,單擊曲線上的對應點即可。9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)exa54

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)

值得一提的是:step函數(shù)中的上升時間(RiseTime)不是一般自控原理的教科書中提到的“階躍響應曲線第1次達到穩(wěn)態(tài)值的時間”,而是“階躍響應曲線從穩(wěn)態(tài)值的10%上升到穩(wěn)態(tài)值的90%所需的時間”。9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)55

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)2.線性系統(tǒng)的零輸入響應零輸入響應是系統(tǒng)初始狀態(tài)引發(fā)的動態(tài)過程。此時,系統(tǒng)無輸入信號作用,響應只與系統(tǒng)的初始狀態(tài)、結構及參數(shù)有關。零輸入響應函數(shù)initial的調用格式為 initial(sys,x0) initial(sys,x0,t) [y,t]=initial(sys,x0) [y,t,x]=initial(sys,x0)【說明】x0為初始狀態(tài);sys必須是狀態(tài)空間模型;其余均與step函數(shù)完全一致。離散時間系統(tǒng)零輸入響應函數(shù)dinitial調用格式基本相同。9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)56

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)

【例9.9】系統(tǒng)模型如圖9.4所示,繪制初始狀態(tài)為x0=[1,0,0,0]T時的輸入響應曲線。編寫M腳本文件exam9_9.m如下:%exam9_9clear[A,B,C,D]=linmod2('exam9_7_mdl');x0=[1,0,0,0]';initial(ss(A,B,C,D),x0)9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)57圖9.8

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)exam9_9.m的運行結果圖9.89.1.2控制系統(tǒng)時域響應的MATLAB58

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)3.任意輸入下系統(tǒng)的響應

如果輸入信號由其它數(shù)學模型描述,或輸入信號的數(shù)學模型未知,則需要借助于函數(shù)lsim和dlsim來繪制系統(tǒng)的時域響應曲線。lsim函數(shù)的調用格式與step等函數(shù)的調用格式相類似。所不同的是,需要提供有關輸入信號的函數(shù)值。lsim函數(shù)的調用格式為 lsim(sys,u,t) lsim(sys,u,t,x0) [y]=lsim(sys,u,t) [y,t,x]=lsim(sys,u,t,x0)【說明】u和t用于描述輸入信號,u中的點對應于各個時間點處的輸入信號值。離散時間系統(tǒng)任意輸入響應函數(shù)dlsim的調用格式基本相同。9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)59

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)

【例9.10】某二階系統(tǒng)的數(shù)學模型為試繪制系統(tǒng)對99點隨機噪聲的響應曲線。編寫M腳本文件exam9_10.m如下:%exam9_10clearnum=[2,-6.8,3.6];den=[3,-4.3,1.75];u=rand(99,1);dlsim(num,den,u); %在dlsim函數(shù)中直接使用系統(tǒng)模型參數(shù)title('隨機噪聲響應')xlabel('時間');ylabel('振幅');grid9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)60圖9.9

9.1.2控制系統(tǒng)時域響應的MATLAB實現(xiàn)exam9_10.m的運行結果圖9.99.1.2控制系統(tǒng)時域響應的MATLAB619.1MATLAB在自動控制中的應用

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)在自動控制系統(tǒng)特性分析中,系統(tǒng)的穩(wěn)定性是最重要的指標。如果系統(tǒng)穩(wěn)定,則可以進一步分析系統(tǒng)的其它性能;反之,系統(tǒng)不能直接應用,需要引入控制器來使得系統(tǒng)穩(wěn)定。對系統(tǒng)穩(wěn)定性的分析通常是通過代數(shù)穩(wěn)定性判據(jù)、根軌跡圖和頻率特性圖來進行的。對于后兩種方法,MATLAB提供便捷的作圖和分析結果;對于第一種方法,MATLAB則是通過求出系統(tǒng)特征值的數(shù)值解而完全取代了傳統(tǒng)的代數(shù)穩(wěn)定性判據(jù)。9.1MATLAB在自動控制中的應用9.1.362

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)1.線性系統(tǒng)特征根的求取

MATLAB中與求取系統(tǒng)特征根相關的常用函數(shù)的調用格式為 p=eig(sys) pzmap(sys) pole(sys) zero(sys)【說明】LTI對象的sys可以是由函數(shù)tf,zpk和ss中任何一個建立的系統(tǒng)模型,且無論系統(tǒng)是連續(xù)的還是離散的。第1種格式返回系統(tǒng)的全部特征根。第2種格式用圖形的方式繪制出系統(tǒng)所有零極點在s平面(或z平面)上的位置。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)63

第3種格式求出系統(tǒng)的所有極點。第4種格式求出系統(tǒng)的所有零點?!纠?.11】假設離散時間系統(tǒng)(采樣周期T

=0.1sec)的被控對象和控制器的模型分別為 ,試分析單位反饋下閉環(huán)系統(tǒng)的穩(wěn)定性。編寫M腳本文件exam9_11.m如下:

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)第3種格式求出系統(tǒng)的所有極點?!纠?.11】假64

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)%exam9_11clearnum1=[6,-0.6,-0.12];den1=[1,-1,0.25,0.25,-0.125];h=tf(num1,den1,0.1);num2=[0.3,-0.3*0.6];den2=[1,0.8];g=tf(num2,den2,0.1);sys=h*g;closys=feedback(sys,1);abs(eig(closys)')%求出系統(tǒng)特征值的模pzmap(closys)9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)%65

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)exam9_11的運行結果圖9.10

由于前兩個特征根的模均大于1,所以判定閉環(huán)系統(tǒng)是不穩(wěn)定的。這一點從圖9.10也可看出(系統(tǒng)存在單位圓外的極點)。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)66

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)2.根軌跡分析的MATLAB實現(xiàn)根軌跡繪制的基本思路是:假設單變量系統(tǒng)的開環(huán)傳遞函數(shù)為G(s),且設控制器的增益為K,整個控制系統(tǒng)是由單位負反饋構成的閉環(huán)系統(tǒng),閉環(huán)系統(tǒng)的特征根可以由下列方程求出

(9.11)從而化為多項式方程求根的問題。對于指定的K值,可以求出閉環(huán)系統(tǒng)的一組特征根。改變K的值可能得出另外的一組根。對K的不同取值,則可以繪制出每個特征根變化的曲線,即系統(tǒng)的根軌跡。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)67

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)

MATLAB中提供了函數(shù)rlocus,可以直接用于系統(tǒng)的根軌跡繪制。rlocus函數(shù)的調用方法類似于step函數(shù),常用的調用格式為 rlocus(sys) rlocus(sys,k) [r,k]=rlocus(sys)【說明】

第1種格式不輸出宗量,自動繪制根軌跡曲線。第2種格式是根據(jù)給定的增益向量繪制根軌跡曲線。第3種格式輸出增益和對應的閉環(huán)特征根??梢酝瑫r繪制出若干個系統(tǒng)的根軌跡。例如,rlocus(sys1,'-',sys2,'-.',sys3,':r')。上述3種格式對連續(xù)時間系統(tǒng)和離散時間系統(tǒng)均適用。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)68

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)繪制出系統(tǒng)的根軌跡曲線后,利用grid指令將在根軌跡曲線上疊印出等阻尼線和等自然頻率線,根據(jù)等阻尼線可以進行基于根軌跡的系統(tǒng)設計。

【例9.12】假設系統(tǒng)的開環(huán)傳遞函數(shù)為試繪制系統(tǒng)的根軌跡曲線,并判斷系統(tǒng)的穩(wěn)定性與增益的關系。編寫M腳本文件exam9_12.m如下:%exam9_12clearnum=[1,4,8];den=[1,18,120.5,357.5,478.5,306];sys=tf(num,den);rlocus(sys)9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)69

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)exam9_12的運行結果(圖9.11)

單擊根軌跡上的點,可以顯示出該點處的增益值和其它相關信息。從圖9.11可以看出,該系統(tǒng)是條件穩(wěn)定的。單擊根軌跡與虛軸相交的點,可以得出該點處增益的臨界值約為779。可見,若系統(tǒng)的增益K>779,閉環(huán)系統(tǒng)不穩(wěn)定。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)70

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)

前面介紹的都是繪制的負反饋系統(tǒng)的根軌跡曲線,而使用指令rlocus(-sys)可以直接繪制出正反饋系統(tǒng)的根軌跡曲線(即所謂“廣義根軌跡”)。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)71

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)3.頻域分析的MATLAB實現(xiàn)

頻域分析中主要用到兩種曲線(或叫圖):Nyquist圖和Bode圖。它們就是頻域分析的兩種工具。Nyquist圖主要用于頻域穩(wěn)定性分析;Bode圖可以用于分析系統(tǒng)的幅值穩(wěn)定裕度、相位穩(wěn)定裕度、截止頻率、-180°穿越頻率、帶寬、擾動抑止及其穩(wěn)定性等,因而在頻域分析中有著重要的地位。

MATLAB控制系統(tǒng)工具箱中提供了函數(shù)nyquist,可以直接繪制系統(tǒng)的Nyquist圖。該函數(shù)常用的調用格式為 nyquist(sys) nyquist(sys,w) [re,im,w]=nyquist(sys)9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)72

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)【說明】

LTI對象的sys可以是由函數(shù)tf、zpk、ss中任何一個建立的系統(tǒng)模型,且無論系統(tǒng)是連續(xù)的還是離散的。第1種格式不輸出宗量,而自動繪制Nyquist曲線(默認的頻率ω的范圍為0→+∞,并且利用對稱性畫出了ω從-∞→0曲線的鏡像)。第2種格式是根據(jù)給定的頻率點繪制Nyquist曲線。如果要定義頻率范圍,w必須是[wmin,wmax]格式;如果定義的是頻率點,則必須是由所需要頻率點頻率構成的向量。第3種格式計算系統(tǒng)在頻率w處的頻率響應輸出數(shù)據(jù),而不繪制曲線。輸出宗量re為頻率響應的實部;im為頻率響應的虛部;w是頻率點。可以同時繪制出若干個系統(tǒng)的Nyquist曲線。例如,nyquist(sys1,'-',sys2,'-.',sys3,':r')。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)【說73

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)

繪制出系統(tǒng)的Nyquist曲線后,利用grid指令將在Nyquist圖上疊印出等M圓?!纠?.13】假設系統(tǒng)的開環(huán)傳遞函數(shù)為試繪制其Nyquist圖,并判斷閉環(huán)系統(tǒng)的穩(wěn)定性。編寫M腳本文件exam9_13.m如下:9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)74

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)%exam9_13clearn1=2.7778;d1=[1,0];s1=tf(n1,d1);n2=[1];d2=[1,2,1];s2=tf(n2,d2);n3=[1,0.192,1.92];d3=[1,0.384,2.56];s3=tf(n3,d3);sys=s1*s2*s3;nyquist(sys)%為觀察(-1,j0)點附近Nyquist曲線走向,調整坐標范圍axis([-2.5,0,-1.5,1.5])grid9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)%75

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)exam9_13的運行結果(圖9.12)

單擊Nyquist曲線上的點,則可以顯示出在該點處頻率、實部和虛部等信息,如圖9.12所示。這種獲得附加信息的方法對后面介紹的函數(shù)bode和margin同樣適用。從圖9.12可以看出,盡管曲線的走向比較復雜,但整個Nyquist曲線并不包圍(-1,j0)點;同時,由于開環(huán)系統(tǒng)不含有不穩(wěn)定的極點,所以根據(jù)控制理論中的Nyquist判據(jù)可以斷定:閉環(huán)系統(tǒng)是穩(wěn)定的。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)76

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)MATLAB控制系統(tǒng)工具箱中提供的函數(shù)bode,可以直接繪制系統(tǒng)的Bode圖。該函數(shù)常用的調用格式為 bode(sys) bode(sys,w) [mag,phase,w]=bode(sys)【說明】

該函數(shù)的使用類似于函數(shù)nyquist。第3種格式的輸出宗量mag為頻率響應的幅值A(ω);phase為頻率響應的相位φ

(ω);w是頻率點。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)77

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)【例9.14】續(xù)【例9.13】,試繪制系統(tǒng)的Bode圖,并判斷閉環(huán)系統(tǒng)的穩(wěn)定性。編寫M腳本文件exam9_14.m如下:%exam9_14clearn1=2.7778;d1=[1,0];s1=tf(n1,d1);n2=[1];d2=[1,2,1];s2=tf(n2,d2);n3=[1,0.192,1.92];d3=[1,0.384,2.56];s3=tf(n3,d3);sys=s1*s2*s3;bode(sys,{0.1,10})%繪制ω從0.1→10的Bode圖,注意格式grid9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)78

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)exam9_14的運行結果和系統(tǒng)的單位階躍響應(圖9.13)點擊Bode圖上對數(shù)頻率特性曲線在0dB處的點,并查出對應頻率點處的相位值(約為-178°)??梢姡洪]環(huán)系統(tǒng)是穩(wěn)定的,但由于穩(wěn)定裕度太小,其階躍響應的振蕩是很劇烈的。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)79

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)圖9.14

在得到的Bode圖上右擊鼠標鍵,則將得到如圖9.14所示的菜單。選擇Characteristics項,從中選取合適的分析內(nèi)容則得到如圖9.14所示的Bode圖。這個功能對函數(shù)nyquist也適用。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)圖980

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)

基于頻域分析的穩(wěn)定裕度是衡量系統(tǒng)穩(wěn)定情況的有效的定量指標。MATLAB控制系統(tǒng)工具箱中提供了函數(shù)margin,可以直接用于系統(tǒng)的幅值和相位穩(wěn)定裕度的求取。該函數(shù)常用的調用格式為 margin(sys) [gm,Pm,wg,wc]=margin(sys)【說明】

第1種格式無輸出宗量,自動繪制系統(tǒng)的Bode圖,并在圖上標出系統(tǒng)的對數(shù)幅值穩(wěn)定裕度值Gm、相位穩(wěn)定裕度值Pm、-180°穿越頻率和截止頻率。若某個穩(wěn)定裕度為無窮大,則顯示Inf(下同)。第2種格式不繪制系統(tǒng)的Bode圖,輸出宗量為系統(tǒng)的幅值穩(wěn)定裕度值gm、相位穩(wěn)定裕度值Pm、截止頻率和-180°穿越頻率。幅值穩(wěn)定裕度值gm與對數(shù)幅值穩(wěn)定裕度Gm之間的關系為9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)81

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)

【例9.15】續(xù)【例9.14】,試確定系統(tǒng)的穩(wěn)定裕度。編寫M腳本文件exam9_15.m如下:%exam9_15clearn1=2.7778;d1=[1,0];s1=tf(n1,d1);n2=[1];d2=[1,2,1];s2=tf(n2,d2);n3=[1,0.192,1.92];d3=[1,0.384,2.56];s3=tf(n3,d3);sys=s1*s2*s3;[gm,Pm,wg,wc]=margin(sys)margin(sys)9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)82

9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)exam9_15的運行結果(圖9.15)gm=1.1050Pm=2.0985wg=0.9621wc=0.9261

系統(tǒng)的幅值穩(wěn)定裕度為1.1050(對應的對數(shù)幅值穩(wěn)定裕度為20*lg(1.1050)=0.8669dB),頻率(即-180°穿越頻率)為0.9621rad/sec;相位穩(wěn)定裕度為2.0985°,頻率(即截止頻率)為0.9261rad/sec。由于穩(wěn)定裕度較小,閉環(huán)系統(tǒng)的階躍響應將有劇烈振蕩。9.1.3控制系統(tǒng)穩(wěn)定性分析的MATLAB實現(xiàn)839.1MATLAB在自動控制中的應用

9.1.4經(jīng)典控制的MATLAB輔助設計簡介在經(jīng)典控制理論中,所謂系統(tǒng)設計,就是在給定的性能指標條件下,對于給定的對象模型,確定一個能夠完成給定任務的控制器(常稱為校正器或者補償器),即確定控制器的結構和參數(shù)。控制系統(tǒng)的設計又叫做控制系統(tǒng)的校正或者控制系統(tǒng)的校正設計。控制系統(tǒng)的校正設計的方法很多,利用MATLAB的控制系統(tǒng)工具箱中的眾多函數(shù),可以大大地減少計算和繪制圖形的工作量,達到事半功倍的效果。9.1MATLAB在自動控制中的應用9.1.484

9.1.4經(jīng)典控制的MATLAB輔助設計簡介

【例9.16】已知單位反饋系統(tǒng)的被控對象為試設計串聯(lián)校正器,使得:①在單位斜坡信號的作用下,系統(tǒng)的速度誤差系數(shù)Kv≥30sec-1;

②系統(tǒng)校正后的截止頻率ωc≥2.3rad/sec;③系統(tǒng)校正后的相位穩(wěn)定裕度Pm>40°。9.1.4經(jīng)典控制的MATLAB輔助設計簡介85

9.1.4經(jīng)典控制的MATLAB輔助設計簡介

采用Bode圖法設計串聯(lián)校正器。

(1)確定K0被控對象為I型系統(tǒng),單位斜坡響應的速度誤差系數(shù) Kv

=K=K0≥30sec-1其中,K0是系統(tǒng)的開環(huán)增益。取K0=30sec-1,則被控對象的傳遞函數(shù)為9.1.4經(jīng)典控制的MATLAB輔助設計簡介86

9.1.4經(jīng)典控制的MATLAB輔助設計簡介(2)作原系統(tǒng)的Bode圖和階躍響應曲線,檢查是否滿足要求編寫M腳本文件exam9_16_1.m如下:%exam9_16_1cleark0=30;z=[];p=[0;-10;-5];sys0=zpk(z,p,k0*10*5);figure(1);margin(sys0);grid %函數(shù)figure用來創(chuàng)建圖形窗口figure(2);step(feedback(sys0,1)),grid9.1.4經(jīng)典控制的MATLAB輔助設計簡介87

9.1.4經(jīng)典控制的MATLAB輔助設計簡介exam9_16_1的運行結果(圖9.16)9.1.4經(jīng)典控制的MATLAB輔助設計簡介e88

9.1.4經(jīng)典控制的MATLAB輔助設計簡介從圖9.16可以看出,未校正系統(tǒng)的頻域性能指標為: 對數(shù)幅值穩(wěn)定裕度Gm0=-6.02dB-180°穿越頻率ωg0=7.07rad/sec

相位穩(wěn)定裕度Pm0=-17.2°

截止頻率ωc0=9.77rad/sec對數(shù)幅值穩(wěn)定裕度和相位穩(wěn)定裕度均為負值,這樣的系統(tǒng)根本無法工作。系統(tǒng)必須進行校正。9.1.4經(jīng)典控制的MATLAB輔助設計簡介89

9.1.4經(jīng)典控制的MATLAB輔助設計簡介(3)求校正器的傳遞函數(shù)由于給定的開環(huán)截止頻率ωc≥2.3rad/sec,遠小于ωc0=9.77rad/sec,可以通過壓縮頻帶寬度來改善相位裕度,因此采用串聯(lián)滯后校正是合理的。令校正器的傳遞函數(shù)為顯然,應有β>1。9.1.4經(jīng)典控制的MATLAB輔助設計簡介90

9.1.4經(jīng)典控制的MATLAB輔助設計簡介

①確定新的開環(huán)截止頻率ωc希望的相位穩(wěn)定裕度Pm>40°,所以根據(jù)滯后校正的設計方法,應有其中,(2°~5°)是附加相位補償角。取其等于5°,則有于是,有9.1.4經(jīng)典控制的MATLAB輔助設計簡介91

9.1.4經(jīng)典控制的MATLAB輔助設計簡介

從圖9.16(a)的對數(shù)相頻特性圖上可以取得對應于-135°的ω為2.77rad/sec,即有。9.1.4經(jīng)典控制的MATLAB輔助設計簡介92

9.1.4經(jīng)典控制的MATLAB輔助設計簡介

②計算高頻衰減率β從圖9.16(a)的對數(shù)幅頻特性圖上可以取得對應于的L為19.2dB,于是,有從而9.1.4經(jīng)典控制的MATLAB輔助設計簡介93

9.1.4經(jīng)典控制的MATLAB輔助設計簡介③計算兩個轉折頻率ω1和ω2所以,校正器的傳遞函數(shù)為校正后的開環(huán)傳遞函數(shù)為9.1.4經(jīng)典控制的MATLAB輔助設計簡介94

9.1.4經(jīng)典控制的MATLAB輔助設計簡介(4)校驗系統(tǒng)校正后的頻域性能是否滿足要求編寫M腳本文件exam9_16_2.m如下:%exam9_16_2clear,clck0=30;z=[];p=[0,-10,-5];sys0=zpk(z,p,k0*10*5);n=[3.6,1];d=[32.9,1];sys1=tf(n,d);sys=tf(sys0)*sys1;figure(1);margin(sys);grid figure(2);step(feedback(sys,1)),grid9.1.4經(jīng)典控制的MATLAB輔助設計簡介95

9.1.4經(jīng)典控制的MATLAB輔助設計簡介exam9_16_2的運行結果(圖9.17)9.1.4經(jīng)典控制的MATLAB輔助設計簡介e96

9.1.4經(jīng)典控制的MATLAB輔助設計簡介從圖9.17可以看出,校正后系統(tǒng)的頻率性能指標為:

對數(shù)幅值穩(wěn)定裕度Gm=12.5dB-180°穿越頻率ωg=6.8rad/sec

相位穩(wěn)定裕度Pm=40.3° 截止頻率ωc=2.78rad/sec顯然,系統(tǒng)校正后的相位穩(wěn)定裕度和截止頻率均滿足給定的要求。9.1.4經(jīng)典控制的MATLAB輔助設計簡介979.1MATLAB在自動控制中的應用

9.1.5現(xiàn)代控制的MATLAB輔助設計簡介現(xiàn)代控制理論的基本設計方法是狀態(tài)反饋控制器設計,包括狀態(tài)反饋增益矩陣的設計和狀態(tài)觀測器增益矩陣的設計,如圖9.18所示。圖9.189.1MATLAB在自動控制中的應用9.1.598

9.1.5現(xiàn)代控制的MATLAB輔助設計簡介

開環(huán)系統(tǒng)的狀態(tài)空間模型為

(9.12)由圖9.18,將代入上式中,則在狀態(tài)反饋增益矩陣K下,閉環(huán)系統(tǒng)的狀態(tài)空間模型可寫為 (9.13)如果開環(huán)系統(tǒng)完全可控,則選擇合適的K矩陣,可以將閉環(huán)系統(tǒng)矩陣(A-BK)的特征值配置到任意地方(當然,還要滿足共軛復數(shù)的約束)。

9.1.5現(xiàn)代控制的MATLAB輔助設計簡介99

9.1.5現(xiàn)代控制的MATLAB輔助設計簡介在極點配置過程中,假設了系統(tǒng)的所有狀態(tài)都可被量測并用于反饋。然而在實際情況中,并非所有狀態(tài)都可被直接量測,這就需要對不可直接量測的狀態(tài)進行估計。對不可量測的狀態(tài)進行估計稱為狀態(tài)觀測,觀測狀態(tài)變量的裝置(或計算機程序)稱為狀態(tài)觀測器。根據(jù)現(xiàn)代控制理論,狀態(tài)觀測器滿足的誤差狀態(tài)方程為 (9.14)其中,。只要開環(huán)系統(tǒng)是完全可觀的,可以將矩陣(A-LC)的特征值配置到任意地方,從而可以使觀測出的狀態(tài)可以逼近原系統(tǒng)的狀態(tài)(只要將該矩陣的特征值全部配置在左半s平面上)。9.1.5現(xiàn)代控制的MATLAB輔助設計簡介100

9.1.5現(xiàn)代控制的MATLAB輔助設計簡介將(9.12)式代入(9.14)式,并將觀測出的狀態(tài)作為輸出反饋量,則得觀測器滿足的狀態(tài)空間模型為 (9.15)

令則有

(9.16)9.1.5現(xiàn)代控制的MATLAB輔助設計簡介101

9.1.5現(xiàn)代控制的MATLAB輔助設計簡介

MATLAB的控制系統(tǒng)工具箱提供了一系列函數(shù),可用于狀態(tài)反饋控制器的輔助設計。它們常用的調用格式為 ctrb(sys) obsv(sys) K=place(A,B,p) L=place(A',C',p)【說明】

以上函數(shù)要求對象模型sys為狀態(tài)空間模型。第1種格式求出系統(tǒng)的可控性矩陣。第2種格式求出系統(tǒng)的可觀性矩陣。第3種格式求出狀態(tài)反饋增益矩陣。A為系統(tǒng)的狀態(tài)矩陣;B為系統(tǒng)的輸入矩陣;p為指定的閉環(huán)系統(tǒng)極點;輸出宗量K為狀態(tài)反饋增益矩陣。9.1.5現(xiàn)代控制的MATLAB輔助設計簡介102

9.1.5現(xiàn)代控制的MATLAB輔助設計簡介

第4種格式求出狀態(tài)觀測器增益矩陣。A'為系統(tǒng)的狀態(tài)矩陣A的轉置;C'為系統(tǒng)的觀測矩陣C的轉置;p為指定的閉環(huán)系統(tǒng)極點;輸出宗量L為狀態(tài)觀測器增益矩陣。【例9.17】已知某控制系統(tǒng)的開環(huán)傳遞函數(shù)為試判斷系統(tǒng)的可控性并求狀態(tài)反饋增益矩陣K,使得系統(tǒng)的閉環(huán)極點為:,。在系統(tǒng)的閉環(huán)極點不變的情況下,計算狀態(tài)觀測器增益矩陣L。以狀態(tài)反饋和狀態(tài)觀測器構成閉環(huán)回路完成單位階躍仿真。9.1.5現(xiàn)代控制的MATLAB輔助設計簡介103

9.1.5現(xiàn)代控制的MATLAB輔助設計簡介

(1)判別系統(tǒng)的可控性并求出狀態(tài)反饋增益矩陣K編寫M腳本文件exam9_17_1.m如下:%exam9_17_1cleark=10;z=[];p=[-1;-2;-3];s=zpk(z,p,k);sys=ss(s);A=sys.a;B=sys.b;C=sys

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論