控制系統(tǒng)的模擬試驗與MATLAB仿真_第1頁
控制系統(tǒng)的模擬試驗與MATLAB仿真_第2頁
控制系統(tǒng)的模擬試驗與MATLAB仿真_第3頁
控制系統(tǒng)的模擬試驗與MATLAB仿真_第4頁
控制系統(tǒng)的模擬試驗與MATLAB仿真_第5頁
已閱讀5頁,還剩67頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上控制工程基礎(chǔ)實驗指導(dǎo)書安徽科技學(xué)院工學(xué)院2009.6控制工程基礎(chǔ)實驗一預(yù)備知識1 MATLAB簡介MATLAB是Mathworks公司開發(fā)的一種集數(shù)值計算、符號計算和圖形可視化三大基本功能于一體的功能強大、操作簡單的優(yōu)秀工程計算應(yīng)用軟件。MATLAB不僅可以處理代數(shù)問題和數(shù)值分析問題,而且還具有強大的圖形處理及仿真模擬等功能。從而能夠很好的幫助工程師及科學(xué)家解決實際的技術(shù)問題。MATLAB的含義是矩陣實驗室(Matrix Laboratory),最初主要用于方便矩陣的存取,其基本元素是無需定義維數(shù)的矩陣。經(jīng)過十幾年的擴(kuò)充和完善,現(xiàn)已發(fā)展成為包含大量實用工具箱(Tool

2、box)的綜合應(yīng)用軟件,不僅成為線性代數(shù)課程的標(biāo)準(zhǔn)工具,而且適合具有不同專業(yè)研究方向及工程應(yīng)用需求的用戶使用。MATLAB最重要的特點是易于擴(kuò)展。它允許用戶自行建立完成指定功能的擴(kuò)展MATLAB函數(shù)(稱為M文件),從而構(gòu)成適合于其它領(lǐng)域的工具箱,大大擴(kuò)展了MATLAB的應(yīng)用范圍。目前,MATLAB已成為國際控制界最流行的軟件,控制界很多學(xué)者將自己擅長的CAD方法用MATLAB加以實現(xiàn),出現(xiàn)了大量的MATLAB配套工具箱,如控制系統(tǒng)工具箱(control systems toolbox),系統(tǒng)識別工具箱(system identification toolbox),魯棒控制工具箱(robust

3、control toolbox),信號處理工具箱(signal processing toolbox)以及仿真環(huán)境SIMULINK等。(1)MATLAB的安裝本節(jié)將討論操作系統(tǒng)為Microsoft Windows環(huán)境下安裝MATLAB6的過程。將MATLAB6的安裝盤放入光驅(qū),系統(tǒng)將自動運行auto-run.bat文件,進(jìn)行安裝;也可以執(zhí)行安裝盤內(nèi)的setup.exe文件啟動MATLAB的安裝程序。啟動安裝程序后,屏幕將顯示安裝MATLAB的初始界面,根據(jù)Windows安裝程序的常識,不斷單擊Next,輸入正確的安裝信息,具體操作過程如下:輸入正確的用戶注冊信息碼;選擇接收軟件公司的協(xié)議;輸入

4、用戶名和公司名;選擇MATLAB組件(Toolbox);選擇軟件安裝路徑和目錄;單擊Next按鈕進(jìn)入正式的安裝界面。安裝過程界面如圖1所示。圖1 MATLAAB安裝過程界面圖2MATLAAB啟動過程界面安裝完畢后,選擇Restart my computer now選項以重新啟動計算機(jī)。重新啟動計算機(jī)后,用戶就可以點擊圖標(biāo)使用MATLAB6了。MATLAB啟動過程界面如圖2所示。(2)MATLAB桌面系統(tǒng)MATLAB的桌面系統(tǒng)由桌面平臺以及桌面組件共同構(gòu)成,如圖3。桌面平臺是各桌面組件的展示平臺,它提供了一系列的菜單操作以及工具欄操作,而不同功能的桌面組件構(gòu)成了整個MATLAB操作平臺。其組件主

5、要包含如下8個組件部分:命令窗口(Command Window)歷史命令窗口(Command History)組件平臺(Launch Pad)路徑瀏覽器(Current Directory Browser)幫助瀏覽器(Help Browser)工作空間瀏覽器(Workspace Browser)數(shù)組編輯器(Array Editor)M文件編輯調(diào)試器(Editor-Debugger)。用戶可以在View菜單下選擇打開或關(guān)閉某個窗口。圖3MATLAB桌面平臺(3) MATLAB命令窗口MATLAB可以認(rèn)為是一種解釋性語言。在MATLAB命令窗口中,標(biāo)志>>為命令提示符,在命令提示符后面

6、鍵入一個MATLAB命令時,MATLAB會立即對其進(jìn)行處理,并顯示處理結(jié)果。這種方式簡單易用,但在編程過程中要修改整個程序比較困難,并且用戶編寫的程序不容易保存。如果想把所有的程序輸入完再運行調(diào)試,可以用鼠標(biāo)點擊快捷或File|New|M-file菜單,在彈出的編程窗口中逐行輸入命令,輸入完畢后點擊Debug|Run(或F5)運行整個程序。運行過程中的錯誤信息和運行結(jié)果顯示在命令窗口中。整個程序的源代碼可以保存為擴(kuò)展名為“.m”的M文件。在介紹MATLAB的強大計算和圖象處理功能前,我們可以先運行一個簡單的程序。設(shè)系統(tǒng)的閉環(huán)傳遞函數(shù)為:求系統(tǒng)的時域響應(yīng)圖,可輸入下面的命令:>> n

7、um=1,4; den=1,2,8; step(num,den)圖4動態(tài)響應(yīng)時域圖程序運行后會在一個新的窗口中顯示出系統(tǒng)的時域動態(tài)響應(yīng)曲線,如圖4。用鼠標(biāo)左鍵點擊動態(tài)響應(yīng)曲線的某一點,系統(tǒng)會提示其響應(yīng)時間和幅值。按住左鍵在曲線上移動鼠標(biāo)的位置可以很容易的根據(jù)幅值觀察出上升時間、調(diào)節(jié)時間、峰值及峰值時間,進(jìn)而求出超調(diào)量。如果想求根軌跡,可將程序的第三行變?yōu)閞locus(num,den),求伯德圖可改為bode(num,den)。所不同的是,在根軌跡和伯德圖中,G(s)為開環(huán)傳遞函數(shù)。MATLAB的語法規(guī)則類似于C語言,變量名、函數(shù)名都與大小寫有關(guān),即變量A和a是兩個完全不同的變量。應(yīng)該注意所有的

8、函數(shù)名均由小寫字母構(gòu)成。MATLAB是一個功能強大的工程應(yīng)用軟件,它提供了相當(dāng)豐富的幫助信息,同時也提供了多種獲得幫助的方法。如果用戶第一次使用MATLAB,則建議首先在>>提示符下鍵入DEMO命令,它將啟動MATLAB的演示程序。用戶可以在此演示程序中領(lǐng)略MATLAB所提供的強大的運算和繪圖功能。2MATLAB基本操作命令本節(jié)簡單介紹與本書內(nèi)容相關(guān)的一些基本知識和操作命令。(1)簡單矩陣的輸入MATLAB是一種專門為矩陣運算設(shè)計的語言,所以在MATLAB中處理的所有變量都是矩陣。這就是說,MATLAB只有一種數(shù)據(jù)形式,那就是矩陣,或者數(shù)的矩形陣列。標(biāo)量可看作為1×1的矩

9、陣,向量可看作為n×1或1×n的矩陣。這就是說,MATLAB語言對矩陣的維數(shù)及類型沒有限制,即用戶無需定義變量的類型和維數(shù),MATLAB會自動獲取所需的存儲空間。輸入矩陣最便捷的方式為直接輸入矩陣的元素,其定義如下:(1) 元素之間用空格或逗號間隔;(2) 用中括號()把所有元素括起來;(3) 用分號(;)指定行結(jié)束。例如,在MATLAB的工作空間中,輸入:>> 則輸出結(jié)果為:矩陣a被一直保存在工作空間中,以供后面使用,直至修改它。MATLAB的矩陣輸入方式很靈活,大矩陣可以分成n行輸入,用回車符代替分號或用續(xù)行符號()將元素續(xù)寫到下一行。例如:以上三種輸入方式

10、結(jié)果是相同的。一般若長語句超出一行,則換行前使用續(xù)行符號()。在MATLAB中,矩陣元素不限于常量,可以采用任意形式的表達(dá)式。同時,除了直接輸入方式之外,還可以采用其它方式輸入矩陣,如:(1) 利用內(nèi)部語句或函數(shù)產(chǎn)生矩陣;(2) 利用M文件產(chǎn)生矩陣;(3) 利用外部數(shù)據(jù)文件裝入到指定矩陣。(2)復(fù)數(shù)矩陣輸入MATLAB允許在計算或函數(shù)中使用復(fù)數(shù)。輸入復(fù)數(shù)矩陣有兩種方法:(1) a=12;34+i*56;78(2) a=1+5i 2+6i;3+7i 4+8i注意,當(dāng)矩陣的元素為復(fù)數(shù)時,在復(fù)數(shù)實部與虛部之間不允許使用空格符。如1 5i將被認(rèn)為是1和5i兩個數(shù)。另外,MATLAB表示復(fù)數(shù)時,復(fù)數(shù)單位

11、也可以用j。(3) MATLAB語句和變量MATLAB是一種描述性語言。它對輸入的表達(dá)式邊解釋邊執(zhí)行,就象BASIC語言中直接執(zhí)行語句一樣。MATLAB語句的常用格式為:變量表達(dá)式;或簡化為:表達(dá)式;表達(dá)式可以由操作符、特殊符號、函數(shù)、變量名等組成。表達(dá)式的結(jié)果為一矩陣,它賦給左邊的變量,同時顯示在屏幕上。如果省略變量名和“”號,則MATLAB自動產(chǎn)生一個名為ans的變量來表示結(jié)果,如:190081結(jié)果為:ans是MATLAB提供的固定變量,具有特定的功能,是不能由用戶清除的。常用的固定變量還有eps、pi、Inf、NaN等。其特殊含義可以用7.2.10節(jié)介紹的方法查閱幫助。MATAB允許在函

12、數(shù)調(diào)用時同時返回多個變量,而一個函數(shù)又可以由多種格式進(jìn)行調(diào)用,語句的典型格式可表示為:返回變量列表fun-name(輸入變量列表)例如用bode()函數(shù)來求取或繪制系統(tǒng)的Bode圖,可由下面的格式調(diào)用:其中變量num、den表示系統(tǒng)傳遞函數(shù)分子和分母,W表示指定頻段,mag為計算幅值,phase為計算相角。(4)語句以“”開始和以分號“;”結(jié)束的特殊效用在MATLAB中以“”開始的程序行,表示注解和說明。符號“”類似于C+中的“/”。這些注解和說明是不執(zhí)行的。這就是說,在MATLAB程序行中,出現(xiàn)“”以后的一切內(nèi)容都是可以忽略的。分號用來取消打印,如果語句最后一個符號是分號,則打印被取消,但是

13、命令仍在執(zhí)行,而結(jié)果不再在命令窗口或其它窗口中顯示。這一點在M文件中大量采用,以抑制不必要的信息顯示。(5)獲取工作空間信息MATLAB開辟有一個工作空間,用于存儲已經(jīng)產(chǎn)生的變量。變量一旦被定義,MATLAB系統(tǒng)會自動將其保存在工作空間里。在退出程序之前,這些變量將被保留在存儲器中。為了得到工作空間中的變量清單,可以在命令提示符>>后輸入who 或whos 命令,當(dāng)前存放在工作空間的所有變量便會顯示在屏幕上。命令clear能從工作空間中清除所有非永久性變量。如果只需要從工作空間中清除某個特定變量,比如“x”,則應(yīng)輸入命令clear x。(6)常數(shù)與算術(shù)運算符MATLAB采用人們習(xí)慣

14、使用的十進(jìn)制數(shù)。如:3990.00019.2i-3.14159i 3e5i其中。數(shù)值的相對精度為eps,它是一個符合IEEE標(biāo)準(zhǔn)的16位長的十進(jìn)制數(shù),其范圍為:。MATLAB提供了常用的算術(shù)運算符:+,(),(冪指數(shù))。應(yīng)該注意:()右除法和()左除法這兩種符號對數(shù)值操作時,其結(jié)果相同,其斜線下為分母,如14與41,其結(jié)果均為0.25,但對矩陣操作時,左、右除法是有區(qū)別的。(7)選擇輸出格式輸出格式是指數(shù)據(jù)顯示的格式,MATLAB提供format命令可以控制結(jié)果矩陣的顯示,而不影響結(jié)果矩陣的計算和存儲。所有計算都是以雙精度方式完成的。(1) 如果矩陣的所有元素都是整數(shù),則矩陣以不帶小數(shù)點的格式

15、顯示。如輸入:則顯示:(2) 如果矩陣中至少有一個元素不是整數(shù),則有多種輸出格式。常見格式有以下四種:format short(短格式,也是系統(tǒng)默認(rèn)格式)format short e(短格式科學(xué)表示)format long(長格式)format long e(長格式科學(xué)表示)如:對于以上四種格式,其顯示結(jié)果分別為:短格式5位表示短格式科學(xué)表示長格式16位表示長格式科學(xué)表示一旦調(diào)用了某種格式,則這種被選用的格式將保持,直到對格式進(jìn)行了改變?yōu)橹埂#?)MATLAB圖形窗口當(dāng)調(diào)用了一個產(chǎn)生圖形的函數(shù)時,MATLAB會自動建立一個圖形窗口。這個窗口還可分裂成多個窗口,并可在它們之間選擇,這樣在一個屏上

16、可顯示多個圖形。圖形窗口中的圖形可通過打印機(jī)打印出來。若想將圖形導(dǎo)出并保存,可用鼠標(biāo)點擊菜單File|Export,導(dǎo)出格式可選emp、bmp、jpg等。命令窗口的內(nèi)容也可由打印機(jī)打印出來:如果事先選擇了一些內(nèi)容,則可打印出所選擇的內(nèi)容;如果沒有選擇內(nèi)容,則可打印出整個工作空間的內(nèi)容。(9)剪切板的使用利用Windows的剪切板可在MATLAB與其它應(yīng)用程序之間交換信息。(1) 要將MATLAB的圖形移到其它應(yīng)用程序,首先按Alt-Print Screen鍵,將圖形復(fù)制到剪切板中,然后激活其它應(yīng)用程序,選擇edit(編輯)中的paste(粘貼),就可以在應(yīng)用程序中得到MATLAB中的圖形。當(dāng)然

17、還可以借助于copy to Bitmap或copy to Metafile選項來傳遞圖形信息。(2) 要將其它應(yīng)用程序中的數(shù)據(jù)傳遞到MATLAB,應(yīng)先將數(shù)據(jù)放入剪切板,然后在MATLAB中定義一個變量來接收。如鍵入:q= 然后選擇Edit中的paste,最后加上“”,這樣可將應(yīng)用程序中的數(shù)據(jù)送入MATLAB的q變量中。(10)MATLAB編程指南MATLAB的編程效率比BASIC、C、FORTRAN和PASCAL等語言要高,且易于維護(hù)。在編寫小規(guī)模的程序時,可直接在命令提示符>>后面逐行輸入,逐行執(zhí)行。對于較復(fù)雜且經(jīng)常重復(fù)使用的程序,可按7.1.3介紹的方法進(jìn)入程序編輯器編寫M文件

18、。M文件是用MATLAB語言編寫的可在MATLAB環(huán)境中運行的磁盤文件。它為腳本文件(Script File)和函數(shù)文件(Function File),這兩種文件的擴(kuò)展名都是.m。(1) 腳本文件是將一組相關(guān)命令編輯在一個文件中,也稱命令文件。腳本文件的語句可以訪問MATLAB工作空間中的所有數(shù)據(jù),運行過程中產(chǎn)生的所有變量都是全局變量。例如下述語句如果以.m為擴(kuò)展名存盤,就構(gòu)成了M腳本文件,我們不妨將其文件名取為“Step_Response”。 % 用于求取一階躍響應(yīng)。 num=1 4; den=1 2 8;step(num,den)當(dāng)你鍵入help Step_Response時,屏幕上將顯示

19、文件開頭部分的注釋:用于求取一階躍響應(yīng)。很顯然,在每一個M文件的開頭,建立詳細(xì)的注釋是非常有用的。由于MATLAB提供了大量的命令和函數(shù),想記住所有函數(shù)及調(diào)用方法一般不太可能,通過聯(lián)機(jī)幫助命令help可容易地對想查詢的各個函數(shù)的有關(guān)信息進(jìn)行查詢。該命令使用格式為:help命令或函數(shù)名注意:若用戶把文件存放在自己的工作目錄上,在運行之前應(yīng)該使該目錄處在MATLAB的搜索路徑上。當(dāng)調(diào)用時,只需輸入文件名,MATLAB就會自動按順序執(zhí)行文件中的命令。(2) 函數(shù)文件是用于定義專用函數(shù)的,文件的第一行是以function作為關(guān)鍵字引導(dǎo)的,后面為注釋和函數(shù)體語句。函數(shù)就像一個黑箱,把一些數(shù)據(jù)送進(jìn)去,經(jīng)加

20、工處理,再把結(jié)果送出來。在函數(shù)體內(nèi)使用的除返回變量和輸入變量這些在第一行functon語句中直接引用的變量外,其它所有變量都是局部變量,執(zhí)行完后,這些內(nèi)部變量就被清除了。函數(shù)文件的文件名與函數(shù)名相同(文件名后綴為.m),它的執(zhí)行與命令文件不同,不能鍵入其文件名來運行函數(shù),M函數(shù)必須由其它語句來調(diào)用,這類似于C語言的可被其它函數(shù)調(diào)用的子程序。M函數(shù)文件一旦建立,就可以同MATLAB基本函數(shù)庫一樣加以使用。例1求一系列數(shù)的平均數(shù),該函數(shù)的文件名為“mean.m” function y=mean(x)% 這是一個用于求平均數(shù)的函數(shù)w=length(x); % length函數(shù)表示取向量x的長度y=s

21、um(x)/w; % sun函數(shù)表示求各元素的和該文件第一行為定義行,指明是mean函數(shù)文件,y 是輸出變量,x是輸入變量,其后的開頭的文字段是說明部分。真正執(zhí)行的函數(shù)體部分僅為最后二行。其中變量w是局部變量,程序執(zhí)行完后,便不存在了。在MATLAB命令窗口中鍵入>> r=1:10; % 表示r變量取1到10共10個數(shù)mean(r)運行結(jié)果顯示ans = 5.5000 該例就是直接使用了所建立的M函數(shù)文件,求取數(shù)列r的平均數(shù)。二 MATLAB在控制系統(tǒng)中的應(yīng)用MATLAB是國際控制界目前使用最廣的工具軟件,幾乎所有的控制理論與應(yīng)用分支中都有MATLAB工具箱。本節(jié)結(jié)合前面所學(xué)自控理

22、論的基本內(nèi)容,采用控制系統(tǒng)工具箱(Control Systems Toolbox)和仿真環(huán)境(Simulink),學(xué)習(xí)MATLAB的應(yīng)用。1. 用MATLAB建立傳遞函數(shù)模型1有理函數(shù)模型線性系統(tǒng)的傳遞函數(shù)模型可一般地表示為: (1)將系統(tǒng)的分子和分母多項式的系數(shù)按降冪的方式以向量的形式輸入給兩個變量和,就可以輕易地將傳遞函數(shù)模型輸入到MATLAB環(huán)境中。命令格式為:; (2); (3)在MATLAB控制系統(tǒng)工具箱中,定義了tf() 函數(shù),它可由傳遞函數(shù)分子分母給出的變量構(gòu)造出單個的傳遞函數(shù)對象。從而使得系統(tǒng)模型的輸入和處理更加方便。該函數(shù)的調(diào)用格式為:Gtf(num,den);(4)例2一個

23、簡單的傳遞函數(shù)模型:可以由下面的命令輸入到MATLAB工作空間中去。>>num=1,5;den=1,2,3,4,5;G=tf(num,den)運行結(jié)果:Transfer function: s + 5-s4 + 2s3 + 3s2 + 4s + 5這時對象G可以用來描述給定的傳遞函數(shù)模型,作為其它函數(shù)調(diào)用的變量。例3一個稍微復(fù)雜一些的傳遞函數(shù)模型:該傳遞函數(shù)模型可以通過下面的語句輸入到MATLAB工作空間。>> num=6*1,5; den=conv(conv(1,3,1,1,3,1),1,6);tf(num,den)運行結(jié)果Transfer function: 6 s

24、 + 30-s5 + 12 s4 + 47 s3 + 72 s2 + 37 s + 6其中conv()函數(shù)(標(biāo)準(zhǔn)的MATLAB函數(shù))用來計算兩個向量的卷積,多項式乘法當(dāng)然也可以用這個函數(shù)來計算。該函數(shù)允許任意地多層嵌套,從而表示復(fù)雜的計算。2.零極點模型線性系統(tǒng)的傳遞函數(shù)還可以寫成極點的形式: (5)將系統(tǒng)增益、零點和極點以向量的形式輸入給三個變量、Z和P,就可以將系統(tǒng)的零極點模型輸入到MATLAB工作空間中,命令格式為: (6) (7) (8)在MATLAB控制工具箱中,定義了zpk()函數(shù),由它可通過以上三個MATLAB變量構(gòu)造出零極點對象,用于簡單地表述零極點模型。該函數(shù)的調(diào)用格式為:G

25、=zpk(Z,P,KGain) (9)例4某系統(tǒng)的零極點模型為:該模型可以由下面的語句輸入到MATLAB工作空間中。>> KGain=6;z=-1.9294;-0.0353+0.9287j;-0.0353-0.9287j;p=-0.9567+1.2272j;-0.9567-1.2272j;0.0433+0.6412j;0.0433-0.6412j;G=zpk(Z,P,KGain)運行結(jié)果:Zero/pole/gain: 6 (s+1.929) (s2 + 0.0706s + 0.8637)-(s2 - 0.0866s + 0.413) (s2 + 1.913s + 2.421)注意

26、:對于單變量系統(tǒng),其零極點均是用列向量來表示的,故Z、P向量中各項均用分號(;)隔開。3. 反饋系統(tǒng)結(jié)構(gòu)圖模型設(shè)反饋系統(tǒng)結(jié)構(gòu)圖如圖5所示。圖5反饋系統(tǒng)結(jié)構(gòu)圖 控制系統(tǒng)工具箱中提供了feedback()函數(shù),用來求取反饋連接下總的系統(tǒng)模型,該函數(shù)調(diào)用格式如下:G=feedback(G1,G2,sign); (10)其中變量sign用來表示正反饋或負(fù)反饋結(jié)構(gòu),若sign=-1表示負(fù)反饋系統(tǒng)的模型,若省略sign變量,則仍將表示負(fù)反饋結(jié)構(gòu)。G1和G2分別表示前向模型和反饋模型的LTI(線性時不變)對象。例5若反饋系統(tǒng)圖5中的兩個傳遞函數(shù)分別為: ,則反饋系統(tǒng)的傳遞函數(shù)可由下列的MATLAB命令得出&

27、gt;> G1=tf(1,1,2,1); G2=tf(1,1,1); G=feedback(G1,G2)運行結(jié)果:Transfer function: s + 1-s3 + 3 s2 + 3 s + 2若采用正反饋連接結(jié)構(gòu)輸入命令>> G=feedback(G1,G2,1)則得出如下結(jié)果:Transfer function: s + 1-s3 + 3 s2 + 3 s例6若反饋系統(tǒng)為更復(fù)雜的結(jié)構(gòu)如圖6所示。其中,則閉環(huán)系統(tǒng)的傳遞函數(shù)可以由下面的MATLAB命令得出:>>G1=tf(1,7,24,24,1,10,35,50,24);G2=tf(10,5,1,0);H

28、=tf(1,0.01,1);G_a=feedback(G1*G2,H)得到結(jié)果:Transfer function: 0.1 s5 + 10.75 s4 + 77.75 s3 + 278.6 s2 + 361.2 s + 120-0.01 s6 + 1.1 s5 + 20.35 s4 + 110.5 s3 + 325.2 s2 + 384 s + 120 圖6復(fù)雜反饋系統(tǒng) 2. 有理分式模型與零極點模型的轉(zhuǎn)換有了傳遞函數(shù)的有理分式模型之后,求取零極點模型就不是一件困難的事情了。在控制系統(tǒng)工具箱中,可以由zpk()函數(shù)立即將給定的LTI對象G轉(zhuǎn)換成等效的零極點對象G1。該函數(shù)的調(diào)用格式為: G1

29、=zpk(G) (11)例7 給定系統(tǒng)傳遞函數(shù)為:對應(yīng)的零極點格式可由下面的命令得出>>num=6.8,61.2,95.2;den=1,7.5,22,19.5,0;G=tf(num,den);G1=zpk(G)顯示結(jié)果:Zero/pole/gain: 6.8 (s+7) (s+2)-s (s+1.5) (s2 + 6s + 13)可見,在系統(tǒng)的零極點模型中若出現(xiàn)復(fù)數(shù)值,則在顯示時將以二階因子的形式表示相應(yīng)的共軛復(fù)數(shù)對。同樣,對于給定的零極點模型,也可以直接由MATLAB語句立即得出等效傳遞函數(shù)模型。調(diào)用格式為: G1=tf(G) (12)例8給定零極點模型:可以用下面的MATLAB

30、命令立即得出其等效的傳遞函數(shù)模型。輸入程序的過程中要注意大小寫。>>Z=-2,-7;P=0,-3-2j,-3+2j,-1.5;K=6.8;G=zpk(Z,P,K);G1=tf(G)結(jié)果顯示:Transfer function: 6.8 s2 + 61.2 s + 95.2-s4 + 7.5 s3 + 22 s2 + 19.5 s3. Simulink建模方法在一些實際應(yīng)用中,如果系統(tǒng)的結(jié)構(gòu)過于復(fù)雜,不適合用前面介紹的方法建模。在這種情況下,功能完善的Simulink程序可以用來建立新的數(shù)學(xué)模型。Simulink是由Math Works 軟件公司1990年為MATLAB提供的新的控制

31、系統(tǒng)模型圖形輸入仿真工具。它具有兩個顯著的功能:Simul(仿真)與Link(連接),亦即可以利用鼠標(biāo)在模型窗口上“畫”出所需的控制系統(tǒng)模型。然后利用SIMULINK提供的功能來對系統(tǒng)進(jìn)行仿真或線性化分析。與MATLAB中逐行輸入命令相比,這樣輸入更容易,分析更直觀。下面簡單介紹SIMULINK建立系統(tǒng)模型的基本步驟:(1) SIMULINK的啟動:在MATLAB命令窗口的工具欄中單擊按鈕或者在命令提示符>>下鍵入simulink命令,回車后即可啟動Simulink程序。啟動后軟件自動打開Simullink模型庫窗口,如圖 7所示。這一模型庫中含有許多子模型庫,如Sources(輸

32、入源模塊庫)、Sinks(輸出顯示模塊庫)、Nonlinear(非線性環(huán)節(jié))等。若想建立一個控制系統(tǒng)結(jié)構(gòu)框圖,則應(yīng)該選擇File| New菜單中的Model選項,或選擇工具欄上new Model按鈕,打開一個空白的模型編輯窗口如圖 8所示。圖 7simulink 模型庫圖8模型編輯窗口(2) 畫出系統(tǒng)的各個模塊:打開相應(yīng)的子模塊庫,選擇所需要的元素,用鼠標(biāo)左鍵點中后拖到模型編輯窗口的合適位置。(3) 給出各個模塊參數(shù):由于選中的各個模塊只包含默認(rèn)的模型參數(shù),如默認(rèn)的傳遞函數(shù)模型為1/(s+1)的簡單格式,必須通過修改得到實際的模塊參數(shù)。要修改模塊的參數(shù),可以用鼠標(biāo)雙擊該模塊圖標(biāo),則會出現(xiàn)一個相

33、應(yīng)對話框,提示用戶修改模塊參數(shù)。(4) 畫出連接線:當(dāng)所有的模塊都畫出來之后,可以再畫出模塊間所需要的連線,構(gòu)成完整的系統(tǒng)。模塊間連線的畫法很簡單,只需要用鼠標(biāo)點按起始模塊的輸出端(三角符號),再拖動鼠標(biāo),到終止模塊的輸入端釋放鼠標(biāo)鍵,系統(tǒng)會自動地在兩個模塊間畫出帶箭頭的連線。若需要從連線中引出節(jié)點,可在鼠標(biāo)點擊起始節(jié)點時按住Ctrl鍵,再將鼠標(biāo)拖動到目的模塊。(5) 指定輸入和輸出端子:在Simulink下允許有兩類輸入輸出信號,第一類是仿真信號,可從source(輸入源模塊庫)圖標(biāo)中取出相應(yīng)的輸入信號端子,從Sink(輸出顯示模塊庫)圖標(biāo)中取出相應(yīng)輸出端子即可。第二類是要提取系統(tǒng)線性模型,

34、則需打開Connection(連接模塊庫)圖標(biāo),從中選取相應(yīng)的輸入輸出端子。例9典型二階系統(tǒng)的結(jié)構(gòu)圖如圖9所示。用SIMULINK對系統(tǒng)進(jìn)行仿真分析。圖9典型二階系統(tǒng)結(jié)構(gòu)圖按前面步驟,啟動simulink并打開一個空白的模型編輯窗口。(1) 畫出所需模塊,并給出正確的參數(shù):l 在sources子模塊庫中選中階躍輸入(step)圖標(biāo),將其拖入編輯窗口,并用鼠標(biāo)左鍵雙擊該圖標(biāo),打開參數(shù)設(shè)定的對話框,將參數(shù)step time(階躍時刻)設(shè)為0。l 在Math(數(shù)學(xué))子模塊庫中選中加法器(sum)圖標(biāo),拖到編輯窗口中,并雙擊該圖標(biāo)將參數(shù)List of signs(符號列表)設(shè)為|+-(表示輸入為正,反

35、饋為負(fù))。l 在continuous(連續(xù))子模塊庫中、選積分器(Integrator)和傳遞函數(shù)(Transfer Fcn)圖標(biāo)拖到編輯窗口中,并將傳遞函數(shù)分子(Numerator)改為900,分母(Denominator)改為1,9。l 在sinks(輸出)子模塊庫中選擇scope(示波器)和Out1(輸出端口模塊)圖標(biāo)并將之拖到編輯窗口中。(3)將畫出的所有模塊按圖9用鼠標(biāo)連接起來,構(gòu)成一個原系統(tǒng)的框圖描述如圖10所示。(4)選擇仿真算法和仿真控制參數(shù),啟動仿真過程。 在編輯窗口中點擊Simulation|Simulation parameters菜單,會出現(xiàn)一個參數(shù)對話框,在solve

36、r模板中設(shè)置響應(yīng)的仿真范圍StartTime(開始時間)和StopTime(終止時間),仿真步長范圍Maxinum step size(最大步長)和Mininum step size(最小步長)。對于本例,StopTime可設(shè)置為2。最后點擊Simulation|Start菜單或點擊相應(yīng)的熱鍵啟動仿真。雙擊示波器,在彈出的圖形上會“實時地”顯示出仿真結(jié)果。輸出結(jié)果如圖11所示。圖10 二階系統(tǒng)的simulink實現(xiàn)在命令窗口中鍵入whos命令,會發(fā)現(xiàn)工作空間中增加了兩個變量tout和yout,這是因為Simulink中的Out1 模塊自動將結(jié)果寫到了MATLAB的工作空間中。利用MATLAB命

37、令plot(tout,yout),可將結(jié)果繪制出來,如圖12所示。比較11和12,可以發(fā)現(xiàn)這兩種輸出結(jié)果是完全一致的。圖11仿真結(jié)果示波器顯示圖12 MATLAB命令得出的系統(tǒng)響應(yīng)曲線(2) 利用MATLAB進(jìn)行時域分析1. 線性系統(tǒng)穩(wěn)定性分析 線性系統(tǒng)穩(wěn)定的充要條件是系統(tǒng)的特征根均位于S平面的左半部分。系統(tǒng)的零極點模型可以直接被用來判斷系統(tǒng)的穩(wěn)定性。另外,MATLAB語言中提供了有關(guān)多項式的操作函數(shù),也可以用于系統(tǒng)的分析和計算。(1)直接求特征多項式的根設(shè)p為特征多項式的系數(shù)向量,則MATLAB函數(shù)roots()可以直接求出方程p=0在復(fù)數(shù)范圍內(nèi)的解v,該函數(shù)的調(diào)用格式為:v=roots(p

38、) (13)例10 已知系統(tǒng)的特征多項式為: 特征方程的解可由下面的MATLAB命令得出。>> p=1,0,3,2,1,1; v=roots(p)結(jié)果顯示:v = 0.3202 + 1.7042i 0.3202 - 1.7042i -0.7209 0.0402 + 0.6780i 0.0402 - 0.6780i利用多項式求根函數(shù)roots(),可以很方便的求出系統(tǒng)的零點和極點,然后根據(jù)零極點分析系統(tǒng)穩(wěn)定性和其它性能。(2)由根創(chuàng)建多項式如果已知多項式的因式分解式或特征根,可由MATLAB函數(shù)poly()直接得出特征多項式系數(shù)向量,其調(diào)用格式為:p=poly(v) (14)如上例中

39、:v=0.3202+1.7042i;0.3202-1.7042i;-0.7209;0.0402+0.6780i; 0.0402-0.6780i; >> p=poly(v)結(jié)果顯示p = 1.0000 -0.0000 3.0000 2.0000 1.0000 1.0000由此可見,函數(shù)roots()與函數(shù)poly()是互為逆運算的。(3)多項式求值在MATLAB 中通過函數(shù)polyval()可以求得多項式在給定點的值,該函數(shù)的調(diào)用格式為: polyval(p,v) (15)對于上例中的p值,求取多項式在x點的值,可輸入如下命令:>> p=1,0,3,2,1,1;x=1 p

40、olyval(p,x)結(jié)果顯示ans =8 (4)部分分式展開 考慮下列傳遞函數(shù): 式中,但是和中某些量可能為零。MATLAB函數(shù)可將展開成部分分式,直接求出展開式中的留數(shù)、極點和余項。該函數(shù)的調(diào)用格式為: (16)則的部分分式展開由下式給出: 式中, ,為極點, 為各極點的留數(shù),為余項。例11 設(shè)傳遞函數(shù)為: 該傳遞函數(shù)的部分分式展開由以下命令獲得:>> num=2,5,3,6; den=1,6,11,6; r,p,k=residue(num,den)命令窗口中顯示如下結(jié)果r= p= k= -6.0000 -3.0000 2 -4.0000 -2.0000 3.0000 -1.0

41、000中留數(shù)為列向量r,極點為列向量p,余項為行向量k。由此可得出部分分式展開式:該函數(shù)也可以逆向調(diào)用,把部分分式展開轉(zhuǎn)變回多項式之比的形式,命令格式為: num,den=residue(r,p,k) (17)對上例有: >> num,den=residue(r,p,k)結(jié)果顯示 num=2.0000 5.0000 3.0000 6.0000 den=1.0000 6.0000 11.0000 6.0000應(yīng)當(dāng)指出,如果p(j)=p(j+1)=p(j+m-1),則極點p(j)是一個m重極點。在這種情況下,部分分式展開式將包括下列諸項: 例12 設(shè)傳遞函數(shù)為: 則部分分式展開由以下命

42、令獲得:>> v=-1,-1,-1num=0,1,2,3; den=poly(v);r,p,k=residue(num,den)結(jié)果顯示r=1.00000.00002.0000p=-1.0000-1.0000-1.0000k= 其中由poly()命令將分母化為標(biāo)準(zhǔn)降冪排列多項式系數(shù)向量den, k=為空矩陣。由上可得展開式為: (5)由傳遞函數(shù)求零點和極點。在MATLAB控制系統(tǒng)工具箱中,給出了由傳遞函數(shù)對象G求出系統(tǒng)零點和極點的函數(shù),其調(diào)用格式分別為:Z=tzero(G) (18)P=G.P1 (19)注意:式19中要求的G必須是零極點模型對象,且出現(xiàn)了矩陣的點運算“.”和大括號

43、表示的矩陣元素,詳細(xì)內(nèi)容參閱后面章節(jié)。例13 已知傳遞函數(shù)為: 輸入如下命令:num=6.8,61.2,95.2; den=1,7.5,22,19.5,0; G=tf(num,den); G1=zpk(G);Z=tzero(G)P=G1.P1結(jié)果顯示Z = -7 -2P = 0 -3.0000 + 2.0000i -3.0000 - 2.0000i -1.5000 其結(jié)果與例8完全一致。(6)零極點分布圖。 在MATLAB中,可利用pzmap()函數(shù)繪制連續(xù)系統(tǒng)的零、極點圖,從而分析系統(tǒng)的穩(wěn)定性,該函數(shù)調(diào)用格式為:pzmap(num,den) (20)例 14 給定傳遞函數(shù): 利用下列命令可自

44、動打開一個圖形窗口,顯示該系統(tǒng)的零、極點分布圖,如圖13所示。>> num=3,2,5,4,6; den=1,3,4,2,7,2;pzmap(num,den)title(¹Pole-Zero Map¹)% 圖形標(biāo)題。(default title)圖13 MATLAB函數(shù)零、極點分布圖2. 系統(tǒng)動態(tài)特性分析。(1)時域響應(yīng)解析算法部分分式展開法。用拉氏變換法求系統(tǒng)的單位階躍響應(yīng),可直接得出輸出c(t)隨時間t變化的規(guī)律,對于高階系統(tǒng),輸出的拉氏變換象函數(shù)為: (21)對函數(shù)c(s)進(jìn)行部分分式展開,我們可以用num,den,0來表示c(s)的分子和分母。例 15

45、給定系統(tǒng)的傳遞函數(shù): 用以下命令對進(jìn)行部分分式展開。>> num=1,7,24,24 den=1,10,35,50,24r,p,k=residue(num,den,0)輸出結(jié)果為r= p= k= -1.0000 -4.0000 2.0000 -3.0000 -1.0000 -2.0000 -1.0000 -1.0000 1.0000 0 輸出函數(shù)c(s)為: 拉氏變換得: (2)單位階躍響應(yīng)的求法:控制系統(tǒng)工具箱中給出了一個函數(shù)step()來直接求取線性系統(tǒng)的階躍響應(yīng),如果已知傳遞函數(shù)為:則該函數(shù)可有以下幾種調(diào)用格式:step(num,den) (22)step(num,den,t

46、) (23)或 step(G) (24)step(G,t) (25)該函數(shù)將繪制出系統(tǒng)在單位階躍輸入條件下的動態(tài)響應(yīng)圖,同時給出穩(wěn)態(tài)值。對于式23和25,t為圖像顯示的時間長度, 是用戶指定的時間向量。式22和24的顯示時間由系統(tǒng)根據(jù)輸出曲線的形狀自行設(shè)定。如果需要將輸出結(jié)果返回到MATLAB工作空間中,則采用以下調(diào)用格式: c=step(G) (26)此時,屏上不會顯示響應(yīng)曲線,必須利用plot()命令去查看響應(yīng)曲線。plot 可以根據(jù)兩個或多個給定的向量繪制二維圖形,詳細(xì)介紹可以查閱后面的章節(jié)。例16 已知傳遞函數(shù)為: 利用以下MATLAB命令可得階躍響應(yīng)曲線如圖14所示。圖14 MATL

47、AB繪制的響應(yīng)曲線>> num=0,0,25 den=1,4,25step(num,den)grid % 繪制網(wǎng)格線。title(¹Unit-Step Response of G(s)=25/(s2+4s+25) ¹) % 圖像標(biāo)題我們還可以用下面的語句來得出階躍響應(yīng)曲線>> G=tf(0,0,25,1,4,25); t=0:0.1:5; % 從0到5每隔0.1取一個值。 c=step(G,t);% 動態(tài)響應(yīng)的幅值賦給變量c plot(t,c) % 繪二維圖形,橫坐標(biāo)取t,縱坐標(biāo)取c。 Css=dcgain(G) % 求取穩(wěn)態(tài)值。系統(tǒng)顯示的圖形類似于

48、上一個例子,在命令窗口中顯示了如下結(jié)果 Css= 1(3)求階躍響應(yīng)的性能指標(biāo)MATLAB提供了強大的繪圖計算功能,可以用多種方法求取系統(tǒng)的動態(tài)響應(yīng)指標(biāo)。我們首先介紹一種最簡單的方法游動鼠標(biāo)法。對于例16,在程序運行完畢后,用鼠標(biāo)左鍵點擊時域響應(yīng)圖線任意一點,系統(tǒng)會自動跳出一個小方框,小方框顯示了這一點的橫坐標(biāo)(時間)和縱坐標(biāo)(幅值)。按住鼠標(biāo)左鍵在曲線上移動,可以找到曲線幅值最大的一點即曲線最大峰值,此時小方框中顯示的時間就是此二階系統(tǒng)的峰值時間,根據(jù)觀察到的穩(wěn)態(tài)值和峰值可以計算出系統(tǒng)的超調(diào)量。系統(tǒng)的上升時間和穩(wěn)態(tài)響應(yīng)時間可以依此類推。這種方法簡單易用,但同時應(yīng)注意它不適用于用plot()命令畫出的圖形。另一種比較常用的方法就是用編程方式求取時域響應(yīng)的各項性能指標(biāo)。與上一段介紹的游動鼠標(biāo)法相比,編程方法稍微復(fù)雜,但通過下面的學(xué)習(xí),讀者可以掌握一定的編程技巧,能夠?qū)⒖刂圃碇R和編程方法相結(jié)合,自己編寫一些程序,獲取一些較為復(fù)雜的性能指標(biāo)。通過前面的學(xué)習(xí),我們已經(jīng)可以用階躍響

溫馨提示

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

評論

0/150

提交評論