基于MATLAB的控制系統(tǒng)分析_第1頁
基于MATLAB的控制系統(tǒng)分析_第2頁
基于MATLAB的控制系統(tǒng)分析_第3頁
基于MATLAB的控制系統(tǒng)分析_第4頁
基于MATLAB的控制系統(tǒng)分析_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于MATLAB的控制系統(tǒng)分析摘要:運(yùn)用MATLAB 軟件處理和仿真,分析所建立的控制系統(tǒng)模型的可行性。利用MATLAB平臺(tái)分析系統(tǒng)傳遞函數(shù)的穩(wěn)定性,利用MATLAB軟件得出系統(tǒng)的單位階躍響應(yīng)和脈沖響應(yīng),分析說明MATLAB在自動(dòng)控制系統(tǒng)方面的應(yīng)用。關(guān)鍵詞:控制系統(tǒng) MATLAB 穩(wěn)定性 Simulink0引言自動(dòng)控制技術(shù)已經(jīng)廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、交通運(yùn)輸業(yè)、航空及航天業(yè)等眾多產(chǎn)業(yè)部門,極大地提高了社會(huì)勞動(dòng)生產(chǎn)率,改善了人們的勞動(dòng)條件,豐富與提高了人們的生活水平。在當(dāng)今的社會(huì)生活中,自動(dòng)化裝置無所不在,為人類文明進(jìn)步做出了重要貢獻(xiàn)。隨著科學(xué)技術(shù)的發(fā)展,控制系統(tǒng)變得越來越復(fù)雜,控制理論和系統(tǒng)的分

2、析如果僅靠人工計(jì)算已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足學(xué)習(xí)和研究的要求了。MATLAB是高性能的數(shù)值計(jì)算和可視化軟件,他集數(shù)值分析、矩陣運(yùn)算、信號(hào)處理和圖形顯示于一體,構(gòu)成了一個(gè)方便、界面友好的用戶環(huán)境。MATLAB的出現(xiàn)給控制系統(tǒng)的分析提供了極大的方便。MATLAB(Matix Laboratory,即“矩陣實(shí)驗(yàn)室”)是美國MathWorks公司開發(fā)的用于概念設(shè)計(jì)、算法開發(fā)、建模仿真、實(shí)時(shí)實(shí)現(xiàn)的理想的集成環(huán)境。從1984年MATLAB誕生到現(xiàn)在,它已經(jīng)集成了許多工具箱,例如控制系統(tǒng)工具箱(Control System Toolbox)、Simulink工具箱等。為此,MATLAB軟件在控制工程領(lǐng)域已獲得了廣泛的

3、應(yīng)用,使得MATLAB成為控制系統(tǒng)仿真分析的必要工具1系統(tǒng)的穩(wěn)定性分析穩(wěn)定是控制系統(tǒng)的重要性能,也是系統(tǒng)能夠正常運(yùn)行的首要條件。在分析控制系統(tǒng)時(shí),首先遇到的問題就是系統(tǒng)的穩(wěn)定性。對(duì)線性系統(tǒng)來說,如果一個(gè)系統(tǒng)的所有幾點(diǎn)都位于左半s平面,則該系統(tǒng)是穩(wěn)定的。對(duì)于離散系統(tǒng)來說,如果一個(gè)系統(tǒng)的全部極點(diǎn)都在單位圓內(nèi),則該系統(tǒng)可以被認(rèn)為是穩(wěn)定的。由此可見,線性系統(tǒng)的穩(wěn)定性完全取決于系統(tǒng)的極點(diǎn)在根平面上的位置。判斷一個(gè)線性系統(tǒng)穩(wěn)定性的一種最有效的方法是直接求出系統(tǒng)所用的極點(diǎn),然后根據(jù)極點(diǎn)的分布情況來確定系統(tǒng)的穩(wěn)定性。下面舉一個(gè)具體的例子進(jìn)行說明:已知閉環(huán)系統(tǒng)的傳遞函數(shù)為 G(s)=判斷系統(tǒng)的穩(wěn)定性,并給出不穩(wěn)

4、定極點(diǎn)可以采用下面的MATLAB程序%ex1.mnum=3 2 1 4 2;den=3 5 1 2 2 1;z,p=tf2zp(num,den);ii=find(real(p)0);n1=length(ii);if(n10) disp(The Unstable Poles are:); disp(p(ii);else disp(System is Stable);end執(zhí)行結(jié)果顯示:The Unstable Poles are: 0.4103+0.6801i 0.4103-0.6801i 在增加一下兩條語句,則可畫出如圖所示的零極點(diǎn)圖pzmap(num,den);title(Zero-Pole

5、 Map)這是一個(gè)高階系統(tǒng),如果用人工計(jì)算的話就是十分麻煩的了,而且容易出現(xiàn)很多錯(cuò)誤,還會(huì)影響控制系統(tǒng)的開發(fā)時(shí)間。而運(yùn)用MATLAB軟件就可以用幾句簡(jiǎn)單易懂的程序語句就可以得到簡(jiǎn)單直觀的系統(tǒng)穩(wěn)定性的結(jié)果,這無疑是給控制系統(tǒng)的分析與研究帶來了極大地方便,這樣正是MATLAB軟件在控制系統(tǒng)的分析領(lǐng)域應(yīng)用得越來越廣泛的原因之一。除了上述的利用極點(diǎn)判斷系統(tǒng)的穩(wěn)定性,我們還可以運(yùn)用MATLAB的其它指令語句,利用特征值判斷系統(tǒng)的穩(wěn)定性;在高階系統(tǒng)或者特征多項(xiàng)式中,當(dāng)某些系數(shù)不是數(shù)值時(shí),利用求閉環(huán)極點(diǎn)或特征值的方法來判斷系統(tǒng)的穩(wěn)定性是比較困難的。在這種情況下利用李雅普諾夫第二法來判斷系統(tǒng)的穩(wěn)定性比較有效。

6、尤其在系統(tǒng)含有非線性環(huán)節(jié)時(shí)更是如此。運(yùn)用MATLAB軟件進(jìn)行求解則省去了復(fù)雜的運(yùn)算,可以直接地得到結(jié)果。2運(yùn)用MATLAB軟件分析控制系統(tǒng) 對(duì)于一個(gè)控制系統(tǒng)而言僅僅關(guān)注它的穩(wěn)定性是不夠的,我們還要對(duì)自動(dòng)控制系統(tǒng)做全面的分析以滿足生產(chǎn)實(shí)際的要求,例如系統(tǒng)的動(dòng)態(tài)性能、穩(wěn)態(tài)誤差等等。在控制工程中,幾乎所用的控制系統(tǒng)都是高階系統(tǒng),即用高階微分方程描述的系統(tǒng)。對(duì)于不能用一、二階系統(tǒng)近似的高階系統(tǒng)來說,其動(dòng)態(tài)性能指標(biāo)的確定是比較復(fù)雜的,為了減少計(jì)算量和工作強(qiáng)度,工程上經(jīng)常直接應(yīng)用MATLAB軟件進(jìn)行高階系統(tǒng)的分析。假設(shè)某一功能下系統(tǒng)的數(shù)學(xué)模型的閉環(huán)傳遞函數(shù)為:(s)=由于(s)=,其開環(huán)函數(shù)為G(s)=系

7、統(tǒng)的單位階躍響應(yīng)和脈沖響應(yīng)在運(yùn)用MATLAB軟件分析系統(tǒng)的單位脈沖響應(yīng)和單位階躍響應(yīng)的時(shí)候,我們可以調(diào)用MATLAB軟件的impulse和step指令,其指令格式為:Y=impulse(sys,t)當(dāng)不帶輸出變量y時(shí),impulse命令可以直接繪制脈沖響應(yīng)曲線;t用于設(shè)定仿真時(shí)間,可省略。Y=step(sys,t)當(dāng)不帶出輸出變量y時(shí),step命令可以直接繪制出階躍響應(yīng)曲線;t用于設(shè)定仿真時(shí)間,可以省略。下面運(yùn)用上面介紹的兩條指令語句對(duì)上述系統(tǒng)進(jìn)行仿真MATLAB 程序?yàn)?clear ;close all ;num = 3 ;den = 1 6 11 6 ;subplot (2 ,1 ,1)

8、,step (num ,den) ;subplot (2 ,1 ,2) ,impulse (num ,den) ;系統(tǒng)的單位階躍響應(yīng)和脈沖響應(yīng)如圖所示: 單位脈沖響應(yīng) 單位階躍響應(yīng)系統(tǒng)的穩(wěn)定性分析 系統(tǒng)的穩(wěn)定性分析有多種方法,這里在介紹一種運(yùn)用MATLAB軟件繪制系統(tǒng)的Bode圖和Nyquist圖判斷系統(tǒng)的穩(wěn)定性的方法。調(diào)用MATLAB的程序?yàn)椋篶lear ;close all ;num = 3 ;den = 1 6 11 6 ;figure (1) ,bode (num ,den) ;margin (num ,den) ;figure (2) ,nyquist (num ,den) ;該程序

9、可以的到系統(tǒng)的Bode圖和Nyquist圖,如下圖所示 系統(tǒng)的Bode圖 系統(tǒng)的Nyquist圖由系統(tǒng)的Bode 圖和Nyquist 圖可以判斷,該系統(tǒng)是穩(wěn)定的。(3) 運(yùn)用Simulink 進(jìn)行系統(tǒng)仿真 Simulink是一個(gè)用來對(duì)動(dòng)態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的軟件包。它支持連續(xù)、離散及兩者混合的線性和非線性系統(tǒng),同時(shí)它也支持具有不同部分擁有不同采樣率的多種采樣速率的系統(tǒng)仿真。Simulink為用戶提供了一個(gè)圖形化的用戶界面,對(duì)于用方框圖表示的系統(tǒng),通過圖形界面,利用鼠標(biāo)點(diǎn)擊和拖拉方式,建立系統(tǒng)模型就像用鉛筆在在紙上繪制系統(tǒng)的方框圖一樣簡(jiǎn)單,它與用微分方程和差分方程建模的傳統(tǒng)仿真軟件包相比,

10、具有更直觀、更方便、更靈活的優(yōu)點(diǎn),它不但實(shí)現(xiàn)了可視化的動(dòng)態(tài)仿真,也實(shí)現(xiàn)了與MATLAB、C或FORTRAN語言,甚至和硬件之間的數(shù)據(jù)傳送,大大的擴(kuò)展了它的功能。在MATLAB的主界面下點(diǎn)擊Simulink的快捷圖標(biāo),打開系統(tǒng)模型庫,在建立的M-file文中直接加入所需要的模塊,該系統(tǒng)的系統(tǒng)仿真模型如圖所示。(注:其中den(s)=)通過上述系統(tǒng)的模擬仿真,我們得到了如下的系統(tǒng)階躍響應(yīng)的仿真圖3結(jié)論通過本文的論述和實(shí)例分析可見, 利用MATLAB 分析控制系統(tǒng)穩(wěn)定性具有編程簡(jiǎn)單、操作方便、處理速度快, 分析結(jié)果準(zhǔn)確可靠等優(yōu)點(diǎn)。由此可見,MATLAB 為工程技術(shù)人員分析、設(shè)計(jì)較優(yōu)的控制系統(tǒng)提供了強(qiáng)

11、有力的工具。 4學(xué)習(xí)心得在剛開始學(xué)習(xí)MATLAB這門課程的時(shí)候并沒有得到我的重視,因?yàn)樗皇且粋€(gè)工具性的軟件,學(xué)習(xí)好自己的專業(yè)課程才是最重要的。直到MATLAB和自動(dòng)控制原理兩門課程都進(jìn)行到重要的部分時(shí)候,我發(fā)現(xiàn)MATLAB現(xiàn)在就可以應(yīng)用到我們的專業(yè)課自動(dòng)控制原理上,隨著學(xué)習(xí)的深入,控制系統(tǒng)的分析也變得越來越復(fù)雜,用傳統(tǒng)方法的計(jì)算,時(shí)間周期長而且準(zhǔn)確率不高。但是在學(xué)習(xí)完MATLAB軟件以后發(fā)現(xiàn),其實(shí)我們可以運(yùn)用現(xiàn)在學(xué)習(xí)的MATLAB的知識(shí)可以分方便的解決自動(dòng)控制原理方面的問題。MATLAB的軟件編程語言非常簡(jiǎn)單易懂,更重要的是利用MATLAB軟件的Simulink軟件包可以非常方便的得到各種自

12、動(dòng)控制系統(tǒng)的響應(yīng)圖像,要比我們?cè)趯?shí)驗(yàn)室的到相應(yīng)的圖像要方便簡(jiǎn)單的多。在更深入的學(xué)習(xí)了MATLAB軟件的使用以后,對(duì)它的強(qiáng)大功能有了更加深刻的認(rèn)識(shí),我相信在今后的學(xué)習(xí)和工作當(dāng)中會(huì)有更多的地方運(yùn)用到這一款軟件,給我們的學(xué)習(xí)和工作帶來更多的方便與快捷。參考文獻(xiàn)胡壽松 自動(dòng)控制原理 第五版 北京 科學(xué)出版社 2007李國勇 謝克明 楊麗娟 計(jì)算機(jī)仿真與CAD基于MATLAB的控制系統(tǒng) 第二版 北京 電子工業(yè)出版社 20073、薛定宇,陳陽泉. 基于MATLAB/ Simulink 的系統(tǒng)仿真技術(shù)與應(yīng)用 . 北京 清華大學(xué)出版社,2002.附錄資料:MATLAB Cell函數(shù)使用技巧談?wù)凪ATLAB中c

13、ell函數(shù)如果p為一個(gè)數(shù),那么h(1)=p,是沒有問題的。如果p為一個(gè)向量,那么h(1,:)=p是沒有問題的。如果p是一個(gè)矩陣的話,上面的兩種賦值方法都是會(huì)有錯(cuò)誤的。那么要如何處理呢?這時(shí)就用到了cell數(shù)據(jù)類型了。cell的每個(gè)單元都可以存儲(chǔ)任何數(shù)據(jù),比如傳遞函數(shù)等。當(dāng)然,存儲(chǔ)矩陣更是沒有問題的了。但是用cell數(shù)據(jù)類型之前,要先初始化。a=cell(n,m)那么就把a(bǔ)初始化為一個(gè)n行m列的空cell類型數(shù)據(jù)。如何賦值呢?a1,1=rand(5)那么a的1行1列的單元中存儲(chǔ)的就是一個(gè)隨機(jī)的55的方陣了。那么要用第一個(gè)單元中的方陣中的某個(gè)值呢?可以如下引用:a1,1(2,3)就可以了,引用ce

14、ll單元時(shí)要用,再引用矩陣的某個(gè)數(shù)據(jù)就要用()了。cell單元中的每個(gè)單元都是獨(dú)立的,可以分別存儲(chǔ)不同大小的矩陣或不同類型的數(shù)據(jù)。下面舉個(gè)例子:a=cell(2,2);%預(yù)分配a1,1=cellclass;a1,2=1 2 2;a2,1=a,b,c;a2,2=9 5 6;a1,1ans =cellclassa1,2ans = 1 2 2a2,:ans =abcans = 9 5 6 b=a1,1b =cellclass元胞數(shù)組:元胞數(shù)組是MATLAB的一種特殊數(shù)據(jù)類型,可以將元胞數(shù)組看做一種無所不包的通用矩陣,或者叫做廣義矩陣。組成元胞數(shù)組的元素可以是任何一種數(shù)據(jù)類型的常數(shù)或者常量,每一個(gè)元素

15、也可以具有不同的尺寸和內(nèi)存占用空間,每一個(gè)元素的內(nèi)容也可以完全不同,所以元胞數(shù)組的元素叫做元胞(cell)。和一般的數(shù)值矩陣一樣,元胞數(shù)組的內(nèi)存空間也是動(dòng)態(tài)分配的。(1)元胞數(shù)組的創(chuàng)建 a=matlab,20;ones(2,3),1:10a = matlab 20 2x3 double 1x10 double b=matlab,20;ones(2,3),1:10b = matlab 20 2x3 double 1x10 double c=10c = 10c(1,2)=2c = 10 2c(2,2)=5c = 10 2 5isequal(a,b)ans = 1whosName Size Byte

16、s Class Attributesa 2x2 388 cell ans 1x1 1 logical b 2x2 388 cell c 2x2 208 cell 用cell函數(shù)創(chuàng)建元胞數(shù)組,創(chuàng)建的數(shù)組為空元胞。cell函數(shù)創(chuàng)建空元胞數(shù)組的主要目的是為數(shù)組預(yù)先分配連續(xù)的存儲(chǔ)空間,節(jié)約內(nèi)存占用,提高執(zhí)行效率。 a=cell(1)a = b=cell(1,2)b = c=cell(3,3)c = d=cell(2,2,2)d(:,:,1) = d(:,:,2) = whosName Size Bytes Class Attributesa 1x1 4 cell ans 1x1 1 logical b

17、 1x2 8 cell c 3x3 36 cell d 2x2x2 32 cell (2)元胞數(shù)組的數(shù)據(jù)獲得從元胞數(shù)組中讀取數(shù)據(jù),可保存為一個(gè)標(biāo)準(zhǔn)的數(shù)組或一個(gè)新的單元數(shù)組,或取出數(shù)組進(jìn)行計(jì)算。元胞數(shù)組中數(shù)據(jù)的訪問,可通過元胞內(nèi)容的下標(biāo)進(jìn)行,用元胞數(shù)組名加大括號(hào)。大括號(hào)中數(shù)值表示元胞的下標(biāo)。如a1,2表示元胞數(shù)組中第一行第二列的元胞。 a=20,matlab;ones(2,3),1:3a = 20 matlab 2x3 double 1x3 doublestr=a(1,2)str = matlabclass(str)ans =cellstr=a1,2str =matlabclass(str)an

18、s =char()和有著本質(zhì)的區(qū)別,大括號(hào)用于表示元胞的內(nèi)容,小括號(hào)表示指定的元胞。a = 20 matlab 2x3 double 1x3 doublea2,1(2,2)ans = 0.9134a2,1(2,3)ans = 0.0975a1,2(2)ans =a使用元胞的下標(biāo),可將一個(gè)元胞數(shù)組的子集賦值給另一個(gè)變量,創(chuàng)建新的元胞數(shù)組。 a=1,2,3;4,5,6;7,8,9a = 1 2 3 4 5 6 7 8 9 b=a(2:3,2:3)b = 5 6 8 9 c=a(1:3,2:3)c = 2 3 5 6 8 9本例使用元胞下標(biāo)的方式創(chuàng)建了新的元胞數(shù)組b和c,通過結(jié)果看出b和c就是元胞數(shù)

19、組a的一部分。(3)元胞數(shù)組的刪除和重塑要?jiǎng)h除單元數(shù)組中的行或列,可以用冒號(hào)表示單元數(shù)組中的行或列,然后對(duì)其賦一個(gè)空矩陣即可。a=20,matlab;ones(2,3),1:3a = 20 matlab 2x3 double 1x3 doublea(1,:)=a = 2x3 double 1x3 double a=20,matlab;ones(2,3),1:3;a1=a = matlab 2x3 double 1x3 doublea(1)=a = 2x3 double matlab 1x3 doublea(2)=a = 2x3 double 1x3 doublea(1,2)=? A null

20、assignment can have only one non-colon index.a(1)=a = 1x3 double元寶數(shù)組和其他數(shù)組一樣,也可以通過reshape函數(shù)改變形狀,改變后的元胞數(shù)組與原元胞數(shù)組的元素個(gè)數(shù)相同,不能通過改變形狀來添加或刪除元胞數(shù)組中的元素。 a=cell(4,4)a = size(a)ans = 4 4 b=reshape(a,2,8)b = size(b)ans = 2 8(5)元胞數(shù)組中的操作函數(shù) cell:創(chuàng)建空的元胞數(shù)組cellfun:為元胞數(shù)組的每個(gè)元胞執(zhí)行指定的函數(shù)celldisp:顯示所有元胞的內(nèi)容cellplot:利用圖形方式顯示元胞數(shù)組

21、 cell2mat:將元胞數(shù)組轉(zhuǎn)變成為普通的矩陣 mat2cell:將數(shù)值矩陣轉(zhuǎn)變成為元胞數(shù)組 num2cell:將數(shù)值數(shù)組轉(zhuǎn)變成為元胞數(shù)組 deal:將輸入?yún)?shù)賦值給輸出 cell2struct:將元胞數(shù)組轉(zhuǎn)變成為結(jié)構(gòu) struct2cell:將結(jié)構(gòu)轉(zhuǎn)變?yōu)樵麛?shù)組iscell:判斷輸入是否為元胞數(shù)組 a=20,matlab,3-7i;ones(2,3),1:3,0a = 20 matlab 3.0000 - 7.0000i 2x3 double 1x3 double 0 b=cellfun(isreal,a)b = 1 1 0 1 1 1 c=cellfun(length,a)c = 1 6

22、 1 3 3 1 d=cellfun(isclass,a,double)d = 1 0 1 1 1 1(函數(shù)的應(yīng)用)cellfun函數(shù)的主要功能是對(duì)元胞數(shù)組的元素(元胞)分別指定不同的函數(shù),不過,能夠在cellfun函數(shù)中使用的函數(shù)ushuliang是有限的。能在cellfun中使用的函數(shù):isempty:若元胞元素為空,則返回邏輯真islogical:若元胞元素為邏輯類型,則返回邏輯真isreal:若元胞元素為實(shí)數(shù),則返回邏輯真 length:元胞元素的長度ndims:元胞元素的維數(shù)prodofsize:元胞元素包含的元素個(gè)數(shù)(7)元胞數(shù)組的嵌套元胞數(shù)組的元胞中包含其他的元胞數(shù),稱為嵌套元胞

23、數(shù)組,沒有嵌套結(jié)構(gòu)的元胞則稱為頁元胞。使用嵌套的大括號(hào)或cell函數(shù),或直接用賦值表達(dá)式,都可以創(chuàng)建嵌套單元數(shù)組,另外還可以訪問嵌套元胞數(shù)組的子數(shù)組、元胞或元胞的元素。 a=cell(1,2)a = a(1,2)=cell(2,2)a = 2x2 cella(1,1)=magic(3);a1,2(1,1)=1 2 3;4 5 6;7 8 9;a1,2(2,1)=2-i;4+7i;a1,2(2,2)=cell(1,2);a1,22,2(2)=5;cellplot(a)(8)元胞數(shù)組與數(shù)值數(shù)組間的轉(zhuǎn)化應(yīng)用循環(huán),可以將元胞數(shù)組轉(zhuǎn)化為數(shù)值數(shù)組。2010-11-08 12:06:44zz: /Lifehack

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論