版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
自動(dòng)控制原理及應(yīng)用清華大學(xué)出版社董紅生主編第8章控制系統(tǒng)的MATLAB仿真應(yīng)用
本章小結(jié)8.4應(yīng)用實(shí)例
8.3Simulink在控制系統(tǒng)仿真中的應(yīng)用
8.2MATLAB在控制系統(tǒng)仿真中的應(yīng)用
8.1MATLAB仿真基礎(chǔ)
教學(xué)目標(biāo):了解MATLAB軟件的主要功能及基本使用方法;掌握利用MATLAB軟件對(duì)自動(dòng)控制系統(tǒng)進(jìn)行仿真分析與設(shè)計(jì);熟悉Simulink軟件的使用及控制系統(tǒng)仿真方法。8.1MATLAB仿真基礎(chǔ)8.1.1MATLAB系統(tǒng)概述
MATLAB是MatrixLaboratory(矩陣實(shí)驗(yàn)室)的英文縮寫(xiě),由美國(guó)MathWorks公司開(kāi)發(fā)的一套高性能的科學(xué)及工程計(jì)算軟件。是當(dāng)今國(guó)際控制領(lǐng)域應(yīng)用最廣、最受人們喜愛(ài)的一款仿真軟件。1.MATLAB的主要特點(diǎn)
1)語(yǔ)言簡(jiǎn)潔緊湊,使用方便靈活;
2)數(shù)值算法穩(wěn)定可靠,庫(kù)函數(shù)豐富;
3)程序設(shè)計(jì)的自由度大,可移植性好;
4)圖形功能強(qiáng)大;
5)編程效率高;
6)開(kāi)放的源程序。
2.MATLAB的操作桌面
1)MATLAB啟動(dòng)
啟動(dòng)的默認(rèn)界面如圖8-1所示,包括三個(gè)窗口:CommandWindow(命令窗口)、Workspace(工作空間)、CommandHistory(命令歷史記錄)。
圖8-1啟動(dòng)的默認(rèn)界面2)命令窗口在MATLAB的命令窗口的系統(tǒng)提示符“>>”后輸入合法命令并按回車(chē)鍵,MATLAB即會(huì)自動(dòng)執(zhí)行所輸入命令并給出執(zhí)行結(jié)果。命令窗口可以執(zhí)行任何MATLAB命令和函數(shù),是MATLAB的主要交互窗口。3)工作空間窗口工作空間窗口(workspace)是MATLAB用于存儲(chǔ)各種變量和結(jié)果的內(nèi)存空間,在工作空間中顯示了所有變量的名稱(chēng)、大小、字節(jié)數(shù)及數(shù)據(jù)類(lèi)型,可對(duì)變量進(jìn)行觀察、編輯、保存及刪除。有關(guān)工作空間的變量管理命令如下。(1)who/whos:查看工作空間中的變量情況。(2)clear:刪除工作空間所有變量。(3)size/length:求取變量的大小;(4)exist:查詢(xún)?cè)诋?dāng)前的工作空間中是否存在一個(gè)變量;(5)save/load:將工作空間的變量保存到文件中,或從文件中加載變量。
4)命令歷史窗口
命令歷史窗口(commandHistory)主要用于顯示最近命令窗口運(yùn)行過(guò)的命令、函數(shù)、表達(dá)式日志,并按照命令使用時(shí)間聚合。如果要清除這些記錄,可以選擇Edit菜單中的“ClearCommandHistory”項(xiàng)。5)圖形窗口
圖形窗口是獨(dú)立于主界面窗口的窗體。在圖形窗口上可以進(jìn)行繪制曲線、顯示文本、填充顏色等操作??捎胒igure命令建立一個(gè)新的圖形窗口,也可以用繪圖語(yǔ)句(如plot命令)自動(dòng)創(chuàng)建圖形窗口,并繪制圖形。
6)編輯/調(diào)試窗口MATLAB內(nèi)置了程序編輯/調(diào)試器(editor/debugger),如圖8-2所示。在Editor/Debugger窗口可以建立、編輯、存儲(chǔ)M文件,可以運(yùn)行、調(diào)試(斷點(diǎn)、單步、跟蹤、查看)程序。
圖8-2MATLAB程序編輯/調(diào)試器窗口
MATLAB提供了豐富的幫助功能,通過(guò)這些功能可以獲得有關(guān)命令、函數(shù)及工具箱的使用方法。幫助系統(tǒng)的操作有圖形化和命令兩種方式。
單擊系統(tǒng)主界面上的“?”按鈕或使用helpwin/helpdesk命令.
使用的幫助命令有help、helpfunctionname、lookfor等。
7)幫助窗口
8.1.2MATLAB的編程基礎(chǔ)
1.MATLAB語(yǔ)言的變量
MATLAB不需要事先對(duì)所使用的變量進(jìn)行聲明,也不需要指定變量類(lèi)型。在MATLAB語(yǔ)言中,變量的命名應(yīng)遵循如下規(guī)則:1)變量名區(qū)分大小寫(xiě)。2)變量名長(zhǎng)度不超過(guò)31位,第31個(gè)字符之后的字符將被MATLAB語(yǔ)言所忽略。3)變量名以字母開(kāi)頭,可以由字母、數(shù)字、下劃線組成,但不能使用標(biāo)點(diǎn)。
需要指出:MATLAB語(yǔ)言和其他的程序設(shè)計(jì)語(yǔ)言一樣都存在變量作用域的問(wèn)題,在未加特殊說(shuō)明的情況下,MATLAB將所識(shí)別的全部變量視為局部變量,即僅在其使用的M文件內(nèi)有效。與其他計(jì)算機(jī)語(yǔ)言不同,MATLAB不需要設(shè)定變量精度,在MATLAB中一律使用雙精度,但是可以由format命令設(shè)定變量或數(shù)據(jù)的顯示格式。MATLAB常用的有如下幾種格式:short小數(shù)點(diǎn)后5位(系統(tǒng)默認(rèn)值);long小數(shù)點(diǎn)后15位;shorte5位指數(shù)形式;longe15位指數(shù)形式。
MATLAB語(yǔ)言本身也預(yù)定義了一些特殊的變量稱(chēng)為常量。實(shí)際編程時(shí),這些常量可以直接使用。2.MATLAB語(yǔ)言的基本語(yǔ)句結(jié)構(gòu)
1)賦值語(yǔ)句
賦值語(yǔ)句的格式為:
變量名列表=表達(dá)式
(1)常數(shù)賦值(2)字符串賦值(3)表達(dá)式賦值
2)調(diào)用函數(shù)語(yǔ)句
調(diào)用函數(shù)語(yǔ)句的格式為:
[返回變量列表]=函數(shù)名稱(chēng)(輸入變量列表)
式中,等號(hào)左邊的變量名列表為MATLAB語(yǔ)句的返回值,若一次返回多個(gè)結(jié)果,則變量名列表用“[]”括起來(lái),各變量間用逗號(hào)分隔;等號(hào)右邊為表達(dá)式,可以是矩陣運(yùn)算或函數(shù)調(diào)用,且由分號(hào)(;)、逗號(hào)(,)或回車(chē)結(jié)束。如果用分號(hào)結(jié)束,則左邊的變量結(jié)果將在屏幕上不顯示,否則將顯示左側(cè)變量的值。變量賦值語(yǔ)句有3種形式:函數(shù)名稱(chēng)可以是任意有效函數(shù),如MATLAB內(nèi)部函數(shù),如sin(),atan(),inv()等;MATLAB外部函數(shù),如step()、ginput()等;用戶(hù)自定義函數(shù),如mysystem()等。輸入變量必須預(yù)先賦值,如只有一個(gè)返回變量,省略矩陣標(biāo)識(shí)符“[]”。如不設(shè)返回變量,根據(jù)函數(shù)的不同,以立即方式執(zhí)行該函數(shù),執(zhí)行結(jié)果賦值于當(dāng)前公共變量ans。3)數(shù)據(jù)的輸入與輸出方式MATLAB的數(shù)據(jù)輸入輸出方式包括命令窗口的輸入輸出方式、文件操作的輸入輸出方式及圖形界面(GUI)的輸入輸出方式。
(1)數(shù)據(jù)輸入
調(diào)用格式:A=input(‘提示信息’,選項(xiàng))
(2)數(shù)據(jù)輸出
調(diào)用格式:disp(輸出項(xiàng))
8.1.3MATLAB語(yǔ)言的矩陣運(yùn)算與符號(hào)運(yùn)算
1.MATLAB的矩陣運(yùn)算主要介紹矩陣的生成、矩陣的基本運(yùn)算和矩陣的數(shù)組運(yùn)算。
1)矩陣的生成(1)直接輸入法
最方便、最常用的創(chuàng)建數(shù)值矩陣的方法,適合小矩陣或沒(méi)有任何規(guī)律的矩陣
。創(chuàng)建矩陣時(shí),應(yīng)當(dāng)注意如下幾點(diǎn):
①輸入矩陣時(shí)要以“[]”為其標(biāo)識(shí)符號(hào),矩陣的所有元素必須都在括號(hào)內(nèi);②矩陣同行元素之間由空格或逗號(hào)分隔,行與行之間用分號(hào)或回車(chē)鍵分隔;③矩陣大小無(wú)需預(yù)先定義;④矩陣元素可以是運(yùn)算表達(dá)式;⑤若“[]”中無(wú)元素,則表示空矩陣。(2)特殊矩陣的生成生成特殊矩陣的幾個(gè)常用函數(shù)如下:zeros(n)生成n階全0矩陣;eye(n)生成n階單位矩陣;ones(n)生成n階全1矩陣;rand(n)生成n階均勻分布的隨機(jī)矩陣;randn(n)生成n階正態(tài)分布的隨機(jī)矩陣。
2)矩陣的數(shù)學(xué)運(yùn)算矩陣的數(shù)學(xué)運(yùn)算包括基本運(yùn)算、與常數(shù)的運(yùn)算、行列式運(yùn)算、秩運(yùn)算、特征值運(yùn)算等。(1)基本運(yùn)算
MATLAB中矩陣的基本運(yùn)算符及其意義如表8-2所示。運(yùn)算符功能運(yùn)算符功能+矩陣/數(shù)組相加\矩陣左除-矩陣/數(shù)組相減/矩陣右除*矩陣乘^矩陣冪′矩陣轉(zhuǎn)置inv(A)矩陣的逆矩陣需要指出:在關(guān)系運(yùn)算中,若比較的雙方為同維數(shù)組,則比較的結(jié)果也是同維數(shù)組。其元素值由0和1組成。當(dāng)比較的雙方一方為常數(shù),另一方為一數(shù)組時(shí),則比較的結(jié)果與數(shù)組同維。
在算術(shù)運(yùn)算、比較運(yùn)算和邏輯與、或、非運(yùn)算中,它們的優(yōu)先級(jí)關(guān)系先后為:比較運(yùn)算、算術(shù)運(yùn)算、邏輯與或非運(yùn)算。
2.MATLAB的符號(hào)運(yùn)算MATLAB的符號(hào)運(yùn)算功能,可以實(shí)現(xiàn)數(shù)學(xué)上的許多解析運(yùn)算,包括微積分、簡(jiǎn)化、復(fù)合、求解代數(shù)方程及微分方程等,并且支持Fourier、Laplace、Z變換及逆變換。
1)符號(hào)運(yùn)算的基本函數(shù)
MATLAB提供了兩個(gè)基本的符號(hào)運(yùn)算函數(shù),即函數(shù)sym和syms,用來(lái)創(chuàng)建符號(hào)變量和表達(dá)式。
sym函數(shù)用于創(chuàng)建單個(gè)的符號(hào)變量。調(diào)用格式為:
a=sym(‘a(chǎn)’)創(chuàng)建一個(gè)符號(hào)變量a,它可以是字符、字符串、表達(dá)式或字符表達(dá)式。syms函數(shù)需要在具體創(chuàng)建一個(gè)符號(hào)表達(dá)式之前,將這個(gè)表達(dá)式所包含的全部符號(hào)變量創(chuàng)建完畢。調(diào)用格式為:
symsabc...可一次創(chuàng)建多個(gè)符號(hào)變量。由于syms函數(shù)書(shū)寫(xiě)簡(jiǎn)潔,意義清楚,符合MATLAB的習(xí)慣和特點(diǎn),一般提倡使用syms創(chuàng)建符號(hào)變量。2)符號(hào)表達(dá)式的化簡(jiǎn)
MATLAB提供了符號(hào)表達(dá)式的化簡(jiǎn)類(lèi)函數(shù),如表8-6所示。
simplify函數(shù)的調(diào)用格式為:simplify(x)simple函數(shù)的調(diào)用格式為:[r,how]=simple(x)其中,r為返回的最簡(jiǎn)化形式,how為化簡(jiǎn)過(guò)程中使用的化簡(jiǎn)方法,可查看幫助文件。3)符號(hào)方程的求解MATLAB提供了對(duì)代數(shù)方程求解的solve函數(shù)。調(diào)用格式為:g=solve(eq1,eq2,…,eqN,var1,var2,...,varN)
式中,eq1,eq2,…,eqN為符號(hào)表達(dá)式組成的代數(shù)方程組,var1,var2,...,varN為指定自變量。8.1.4MATLAB語(yǔ)言的圖形功能二維圖形的繪制1)基本繪圖形式
MATLAB繪制二維圖形的函數(shù)為plot函數(shù)。基本調(diào)用格式為:plot(x,y)其中,x和y為長(zhǎng)度相同的向量,分別用于存儲(chǔ)x坐標(biāo)和y坐標(biāo)數(shù)據(jù)。2)多重曲線繪圖利用plot函數(shù)在單幅圖形上繪制多重曲線有兩種方法:(1)用一組變量x和y繪圖,其中x或y是矩陣,或兩個(gè)都是矩陣。(2)用多組變量x1、y1、x2、y2、...、xn、yn繪圖。在繪制多重曲線時(shí),MATLAB會(huì)按照一定的規(guī)律自動(dòng)變化每條曲線的顏色。3)圖形的線型和顏色線方式線型:-實(shí)線:冒號(hào)線--虛線-.點(diǎn)劃線點(diǎn)方式線型:.圓點(diǎn)+加號(hào)*星號(hào)x叉形。圓圈顏色:y黃;r紅;g綠;b藍(lán);w白;k黑;m紫;c青繪制多重曲線還可以利用hold命令。在已經(jīng)畫(huà)好的圖形上,若設(shè)置holdon,MATLAB將把新的plot命令產(chǎn)生的圖形畫(huà)在原來(lái)的圖形上,可利用holdoff命令結(jié)束多重曲線繪制。標(biāo)注線型和顏色的屬性參數(shù)時(shí)應(yīng)注意:屬性的符號(hào)必須放在同一個(gè)字符串中;可以指定兩個(gè)以上的屬性,但同一種屬性不能有兩個(gè)以上;屬性的先后順序無(wú)關(guān)。4)圖形的標(biāo)注MATLAB提供了一系列方便的圖形標(biāo)注函數(shù),這些函數(shù)包括:title圖形標(biāo)題xlabelx軸標(biāo)識(shí)ylabely軸標(biāo)識(shí)zlabelz軸標(biāo)識(shí)text任意位置加注文本gtext鼠標(biāo)定位加注文本legend標(biāo)注圖例圖形標(biāo)注使用的文字可以是字母和數(shù)字,MATLAB6.1可以使用漢字,也可以按照規(guī)定的方法表示希臘字母、數(shù)學(xué)符號(hào)和變形體,例如:\pi表示π,\led表示≤,\it表示斜體字等。
5)坐標(biāo)軸的控制
MATLAB提供了控制坐標(biāo)狀態(tài)的axis函數(shù)。常用的調(diào)用格式有:axis([xminxmaxyminymax])指定二維圖形x軸和y軸的刻度范圍;axisequalx軸和y軸的單位長(zhǎng)度相同;axissquare使各坐標(biāo)軸長(zhǎng)度相同(圖框呈方形);axisoff使坐標(biāo)軸消隱;axison繪制坐標(biāo)軸(默認(rèn)值)。6)繪制多幅圖形subplot函數(shù)可以在一個(gè)圖形窗口上繪制多個(gè)圖形。
調(diào)用格式為:subplot(m,n,p)將圖形窗口分成m×n個(gè)子窗口,p代表當(dāng)前的子窗口號(hào),子窗口的排列順序?yàn)樽笊辖情_(kāi)始按行排列。2.三維圖形的繪制MATLAB提供了大量三維圖形的表現(xiàn)函數(shù),利用這些函數(shù)可以繪制三維曲線圖、網(wǎng)格圖、表面圖、等高線圖等三維圖形。1)三維曲線圖
函數(shù)plot3用于繪制三維曲線圖。2)網(wǎng)格圖
函數(shù)mesh用于繪制三維基本網(wǎng)格圖,即不著色的表面圖。
3)等高線圖函數(shù)contour用于繪制曲面的等高線圖。
8.1.5MATLAB程序設(shè)計(jì)M文件
M文件可以分為命令文件(script)和函數(shù)文件(function)。M文件可以在MATLAB的程序編輯器中編寫(xiě),也可以在其他的文本編輯器中編寫(xiě),并以.m為擴(kuò)展名存儲(chǔ)。
命令文件:命令和函數(shù)的集合,用于執(zhí)行特定的功能。執(zhí)行命令文件不需要輸入?yún)?shù),也沒(méi)有輸出參數(shù),MATLAB自動(dòng)按順序執(zhí)行命令文件中的命令,命令文件的變量保存在工作空間中,可以被其他的命令文件或函數(shù)引用,直到被清除或退出MATLAB為止。
函數(shù)文件:以function語(yǔ)句為引導(dǎo)的M文件,可以接受輸入?yún)?shù)和返回輸出參數(shù)。函數(shù)文件的操作對(duì)象為函數(shù)的輸入變量和函數(shù)內(nèi)的局部變量。MATLAB語(yǔ)言的函數(shù)文件包含如下部分組成:
1)函數(shù)定義行:函數(shù)定義行是函數(shù)文件的第一行,用關(guān)鍵詞“function”定義M文件為函數(shù)文件,并定義函數(shù)名、函數(shù)輸入輸出參數(shù)。注意函數(shù)名應(yīng)盡可能與M文件同名。
2)H1行:H1行是幫助文本的第一行,為該函數(shù)文件的幫助主題,以“%”開(kāi)始,該行用于從總體上說(shuō)明函數(shù)名和函數(shù)的功能。當(dāng)使用lookfor命令時(shí),可以查看到該行信息。
3)幫助文本:幫助文本提供了函數(shù)完整的幫助信息,以“%”開(kāi)始,用于詳細(xì)介紹函數(shù)的功能、用法以及其他說(shuō)明。
4)函數(shù)體:函數(shù)體是函數(shù)文件的主體部分,即函數(shù)代碼段。
5)注釋?zhuān)褐笇?duì)函數(shù)體中各語(yǔ)句的解釋和說(shuō)明文本,注釋語(yǔ)句以“%”引導(dǎo),可以在一行的開(kāi)始,也可以在一條可執(zhí)行語(yǔ)句的后面。2.程序流程控制語(yǔ)句MATLAB語(yǔ)言的程序流程控制語(yǔ)句主要有條件語(yǔ)句、循環(huán)語(yǔ)句、分支語(yǔ)句及其他流程控制語(yǔ)句等。
1)循環(huán)語(yǔ)句
2)條件語(yǔ)句3)分支語(yǔ)句4)其他流程控制語(yǔ)句8.1.6Simulink仿真基礎(chǔ)Simulink是MATLAB的一個(gè)重要組成部分,是系統(tǒng)仿真的先進(jìn)、高效的工具。它具有相對(duì)獨(dú)立的功能和使用方法,支持線性和非線性、連續(xù)、離散及混合系統(tǒng)的仿真。Simulink模塊庫(kù)瀏覽器,如圖8-9所示,單擊該窗口中的“新建”按鈕,可打開(kāi)一個(gè)空白模型窗口,如圖8-10所示。
圖8-9Simulink的模塊庫(kù)瀏覽器圖8-10Simulink的模型窗口1.Simulink的基本操作
1)Simulink啟動(dòng)
Simulink有三種啟動(dòng)方式:①在MATLAB命令窗口輸入“Simulink”回車(chē);②單擊MATLAB工具欄上的Simulink圖標(biāo);③在MATLAB菜單上選File→New→Model。2)Simulink功能模塊
Simulink提供了9類(lèi)功能模塊庫(kù)和許多專(zhuān)業(yè)模塊子集。連續(xù)系統(tǒng)模塊庫(kù)、系統(tǒng)輸入源模塊庫(kù)及輸出顯示模塊庫(kù)的介紹。連續(xù)系統(tǒng)模塊庫(kù)(continuous)包括:Integrator:積分器模塊,輸出對(duì)輸入的時(shí)間積分。Derivative:微分器模塊,輸出對(duì)輸入的時(shí)間微分。State-Space:狀態(tài)空間表達(dá)式模塊,實(shí)現(xiàn)線性狀態(tài)空間系統(tǒng)。TransferFcn:傳遞函數(shù)模塊,實(shí)現(xiàn)線性傳遞函數(shù)。Zero-Pole:零極點(diǎn)函數(shù)模塊,實(shí)現(xiàn)零極點(diǎn)方式的傳遞函數(shù)。TransportDelay:傳輸延遲模塊,以固定的時(shí)間延遲輸入。VariableTransportDelay:可變傳輸延遲模塊,以變化的時(shí)間量延遲輸入。VariableTimeDelay:可變時(shí)間延遲模塊。
系統(tǒng)輸入信號(hào)模塊庫(kù)(sources)中各模塊是作為系統(tǒng)的輸入信號(hào)源,包括:Inl:輸入端口模塊,可為子系統(tǒng)或外部輸入生成一個(gè)輸入端口。Constant:常數(shù)輸入模塊,生成一個(gè)常值。SignalGenerator:普通信號(hào)發(fā)生器,可生成正弦波、方波、鋸齒波及任意波波形。FromFile:讀文件模塊,加載文件讀數(shù)據(jù)。FromWorkspace:讀工作空間模塊。Clock:時(shí)間信號(hào)模塊,顯示并輸出當(dāng)前的仿真時(shí)間。Ground:接地模塊,連接輸入端口未與其他模塊相連的模塊。在系統(tǒng)輸入源模塊庫(kù)中還提供了不同類(lèi)型的輸入信號(hào),如Step(階躍輸入)、Ramp(斜坡輸入)、PulseGenerator(脈沖信號(hào))、SineWave(正弦信號(hào))等。
輸出顯示模塊庫(kù)(sinks)允許用戶(hù)將仿真結(jié)果以不同的形式輸出,包括:Outl:輸出端口模塊,可為子系統(tǒng)或外部輸出生成一個(gè)輸出端口。Terminator:信號(hào)終止模塊,終止一個(gè)未連接的輸出端。Scope/FloatingScope:示波器模塊,顯示仿真期間生成的信號(hào)。XYGraph:XY示波器,使用圖形窗口顯示信號(hào)的XY圖。ToWorkspace:工作空間寫(xiě)入模塊,將數(shù)據(jù)寫(xiě)入到工作空間的變量。ToFile:寫(xiě)文件模塊,將數(shù)據(jù)寫(xiě)入到文件。Display:數(shù)字顯示模塊,顯示輸入值。StopSimulation:仿真終止模塊,當(dāng)輸入不為零時(shí)停止仿真。
3)功能模塊的基本操作
模塊的選取:當(dāng)選取單個(gè)模塊時(shí),只要用鼠標(biāo)在模塊上單擊即可,此時(shí)模塊的角上出現(xiàn)黑色小方塊。選取多個(gè)模塊時(shí),選取拖拽鼠標(biāo)的方式把要選擇的模塊全部包圍即可。若所有被選取的模塊都出現(xiàn)小黑方塊,則表示模塊已被選中。模塊的復(fù)制、剪切、刪除、移動(dòng):應(yīng)用Edit→copy/cut/paste/clear可對(duì)選取的模塊進(jìn)行復(fù)制、剪切、粘貼、刪除操作。在同一窗口移動(dòng)選取的模塊時(shí),可使用鼠標(biāo)進(jìn)行拖拽并放在合適的位置。模塊的連接:在連接兩個(gè)模塊時(shí),可直接從一個(gè)模塊的輸出端連接到另一個(gè)模塊的輸入端;在連線之間插入模塊時(shí),可將模塊用鼠標(biāo)拖到連線上,然后釋放鼠標(biāo)即可;連接線有分支時(shí),可先連好一條線,把鼠標(biāo)移到支線的起點(diǎn),并按下Ctrl鍵,再將鼠標(biāo)拖至目標(biāo)模塊的輸入端即可。4)功能模塊參數(shù)的設(shè)置雙擊要設(shè)置的模塊或在模塊上單擊鼠標(biāo)右鍵并在彈出的菜單中選擇“BlockParameters”,打開(kāi)模塊參數(shù)設(shè)置對(duì)話框,如圖8-11所示,在對(duì)話框內(nèi)對(duì)模塊參數(shù)(parameters)進(jìn)行設(shè)置。圖8-11模塊參數(shù)設(shè)置對(duì)話框
2.系統(tǒng)仿真參數(shù)的設(shè)置一般在系統(tǒng)仿真運(yùn)行前需要對(duì)仿真算法、輸出模式等各種仿真參數(shù)進(jìn)行適當(dāng)設(shè)置。通過(guò)運(yùn)行菜單Simulation→Parameters完成設(shè)置,如圖8-12所示。圖8-12仿真參數(shù)設(shè)置對(duì)話框1)算法設(shè)置(solver)
在Solver內(nèi)需要設(shè)置仿真起始和終止時(shí)間設(shè)置、選擇合適的算法及指定輸出方式。Simulationtime:仿真起始時(shí)間和終止時(shí)間的設(shè)置(s)。Solveroptions:仿真算法的選擇。仿真算法根據(jù)步長(zhǎng)的變化分為固定步長(zhǎng)算法(fixed-step)和變步長(zhǎng)算法(variable-step)。Outputoptions:輸出選項(xiàng)的設(shè)置。2)工作空間設(shè)置(workspaceI/O)
設(shè)置工作空間,可從工作空間輸入數(shù)據(jù)、初始化狀態(tài)模塊,也可以把仿真結(jié)果、狀態(tài)變量、時(shí)間數(shù)據(jù)保存到當(dāng)前工作空間。Loadfromworkspace:從工作空間中輸入數(shù)據(jù)。如果仿真模型有輸入端口(In模塊),則在仿真過(guò)程中可從工作空間直接把數(shù)據(jù)載入到輸入端口。
方法:選中“Input”復(fù)選框,再在后面的編輯框內(nèi)輸入數(shù)據(jù)的變量名。Simulink根據(jù)輸入端口參數(shù)中設(shè)置的采樣時(shí)間讀取輸入數(shù)據(jù)。Savetoworkspace:將輸出數(shù)據(jù)保存到工作空間??梢赃x擇保存到工作空間的選項(xiàng)有:Time(時(shí)間)、States(狀態(tài))、Output(端口輸出)和Finalstate(最終狀態(tài))。方法:選中各選項(xiàng)前面的復(fù)選框,再在選項(xiàng)后面的編輯框內(nèi)輸入變量名,則將相應(yīng)的數(shù)據(jù)保存到指定的變量中。常用的輸出模塊為Out1模塊和ToWorkspace模塊。Saveoptions:保存選項(xiàng)。在Saveoptions區(qū)域內(nèi),F(xiàn)ormat選項(xiàng)與保存數(shù)據(jù)的形式有關(guān),可以根據(jù)需要進(jìn)行選擇,Limitrowstolast選項(xiàng)用來(lái)限定保存到工作空間中數(shù)據(jù)的最大行數(shù),Decimation選項(xiàng)可從每行幾個(gè)數(shù)據(jù)中抽取一個(gè)。3.Simulink的仿真分析使用sim函數(shù)實(shí)現(xiàn)仿真,調(diào)用格式為:[t,x,y]=sim(‘model’,timespan,option,ut)其中,‘model’為Simulink生成的模型文件名;timspan為仿真時(shí)間設(shè)置,可指定終止時(shí)間和起止時(shí)間;其余參數(shù)為可選,option用于設(shè)置初始條件、步長(zhǎng)與容許誤差等值,ut為外部輸入信號(hào)。8.2MATLAB在控制系統(tǒng)仿真中的應(yīng)用
8.2.1MATLAB用于控制系統(tǒng)的建模控制系統(tǒng)常用的數(shù)學(xué)模型表示有微分方程、傳遞函數(shù)、動(dòng)態(tài)結(jié)構(gòu)圖、狀態(tài)空間方程等。系統(tǒng)數(shù)學(xué)模型有連續(xù)和離散之分,它們各有特點(diǎn),有時(shí)需在各種模型之間進(jìn)行轉(zhuǎn)換。利用MATLAB可對(duì)它們進(jìn)行適當(dāng)?shù)奶幚怼?.Laplace變換和Z變換采用laplace和ilaplace函數(shù)進(jìn)行Laplace變換與Laplace反變換,采用ztrans和iztrans函數(shù)進(jìn)行Z變換與Z反變換?!纠?-22】求函數(shù)的Laplace變換和函數(shù)的Laplace反變換。
>>symsats>>f1=laplace(exp(-a*t))%求Laplace變換運(yùn)行結(jié)果:f1=1/(s+a)>>f2=ilaplace(1/(s-2)^2)%求Laplace反變換運(yùn)行結(jié)果:f2=t*exp(a*t)【例8-23】求單位斜坡函數(shù)f(t)=t的z變換。>>symstT>>F=ztrans(t*T)%求Z變換運(yùn)行結(jié)果:F=T*z/(z-1)^22.微分方程求解對(duì)符號(hào)常微分方程求解的dsolve函數(shù),調(diào)用格式為r=dsolve('eq1,eq2,…','cond1,cond2,...','v')
求解由eq1,eq2,…指定的常微分方程的符號(hào)解,參數(shù)cond1,cond2…為指定常微分方程的邊界條件或初始條件,v為指定自變量?!纠?-24】求解微分方程的通解和當(dāng)時(shí)的特解。
>>dsolve('Dy=a*y')運(yùn)行結(jié)果:ans=C1*exp(a*t)>>dsolve('Dy=a*y','y(0)=b')運(yùn)行結(jié)果:ans=b*exp(a*t)3.連續(xù)系統(tǒng)的傳遞函數(shù)
對(duì)于一個(gè)單輸入單輸出(SISO)的連續(xù)系統(tǒng),對(duì)系統(tǒng)的微分方程進(jìn)行Laplace變換,可得該連續(xù)系統(tǒng)的傳遞函數(shù)為在MATLAB中用函數(shù)tf建立一個(gè)連續(xù)系統(tǒng)傳遞函數(shù)模型。調(diào)用格式為:
sys=tf(num,den)其中,num為傳遞函數(shù)分子系數(shù)向量,den為傳遞函數(shù)分母系數(shù)向量。【例8-25】連續(xù)系統(tǒng)傳遞函數(shù)為
用MATLAB建立該連續(xù)系統(tǒng)傳遞函數(shù)模型。程序和運(yùn)行結(jié)果如下:
num=[13];den=[1021];sys=tf(num,den)運(yùn)行結(jié)果為:Transferfunction:用zpk函數(shù)建立連續(xù)系統(tǒng)的零極點(diǎn)形式的傳遞函數(shù)。其調(diào)用格式為
sys=zpk(z,p,k)其中,z為所有零點(diǎn)構(gòu)成的矢量,p為所有極點(diǎn)構(gòu)成的矢量,k表示增益。
4.離散系統(tǒng)脈沖傳遞函數(shù)對(duì)于SISO的離散系統(tǒng),對(duì)系統(tǒng)的差分方程進(jìn)行z變換,可得到該離散系統(tǒng)的脈沖傳遞函數(shù)(或z傳遞函數(shù))為
在MATLAB中,仍可用函數(shù)tf建立離散系統(tǒng)的脈沖傳遞函數(shù)模型,調(diào)用格式為:
sys=tf(num,den,Ts)其中,num為z傳遞函數(shù)分子系數(shù)向量,den為z傳遞函數(shù)分母系數(shù)向量,Ts為系統(tǒng)采樣周期?!纠?-26】:離散時(shí)間系統(tǒng)z傳遞函數(shù)為
采樣周期為0.5s,建立MATLAB該離散系統(tǒng)z傳遞函數(shù)模型。程序和運(yùn)行結(jié)果如下:num=1;den=[1-32];Ts=0.5;sys=tf(num,den,Ts)
運(yùn)行結(jié)果為:Transferfunction:
Samplingtime:0.5
5.系統(tǒng)模型的相互轉(zhuǎn)化不同形式的系統(tǒng)數(shù)學(xué)模型雖然外在形式不同,但它們的實(shí)質(zhì)內(nèi)容是等價(jià)的。在進(jìn)行系統(tǒng)分析時(shí),往往需要根據(jù)不同的要求選擇不同形式的系統(tǒng)數(shù)學(xué)模型。MATLAB提供了十分簡(jiǎn)單的模型轉(zhuǎn)換方式。函數(shù)tf、zpk、ss不僅用于系統(tǒng)模型建立,也可用于模型形式之間的轉(zhuǎn)換。調(diào)用格式為
newsys=tf(sys)
可將非傳遞函數(shù)形式的系統(tǒng)模型sys轉(zhuǎn)換成傳遞函數(shù)模型。
newsys=zpk(sys)
可將非零極點(diǎn)增益形式的系統(tǒng)模型sys轉(zhuǎn)換成零極點(diǎn)增益模型。newsys=ss(sys)可將非狀態(tài)空間方程的系統(tǒng)模型sys轉(zhuǎn)換成狀態(tài)空間模型。
調(diào)用函數(shù)tf2zp和zp2tf實(shí)現(xiàn)傳遞函數(shù)和零極點(diǎn)增益模型的相互轉(zhuǎn)換;調(diào)用函數(shù)tf2ss和ss2tf實(shí)現(xiàn)傳遞函數(shù)和狀態(tài)空間方程的相互轉(zhuǎn)換;調(diào)用函數(shù)zp2ss和ss2zp實(shí)現(xiàn)狀態(tài)空間方程和零極點(diǎn)增益模型的相互轉(zhuǎn)換?!纠?-27】離散系統(tǒng)脈沖傳遞函數(shù)為將其轉(zhuǎn)換為為零極點(diǎn)增益形式,采樣周期為0.01s。
程序和運(yùn)行結(jié)果如下:num=[0.04,0.04];den=[1-2810.9];sys_tf=tf(num,den,0.01);sys_zpk=zpk(sys_tf)運(yùn)行結(jié)果為:Zero/pole/gain:
0.04(z+1)--------------------------------------------(z+0.01111)(z^2-2.011z+81.02)
Samplingtime:0.01MATLAB采用函數(shù)c2d和d2c實(shí)現(xiàn)連續(xù)系統(tǒng)和離散系統(tǒng)之間的轉(zhuǎn)換,離散系統(tǒng)的采樣時(shí)間變化時(shí),可使用函數(shù)d2d進(jìn)行采樣時(shí)間變化的轉(zhuǎn)換。
sysd=c2d(sysc,Ts,method)其中,method表示轉(zhuǎn)換方法,可選擇的方法有零階保持法(zoh),一階保持法(foh),雙線性變換法(tustin)等,默認(rèn)為zoh方法。sysc為原連續(xù)系統(tǒng),Ts是采樣時(shí)間,sysd為轉(zhuǎn)換后的離散系統(tǒng)。
sysc=d2c(sysd,method)其中,method轉(zhuǎn)換方法有zoh、foh、tustin等,默認(rèn)為zoh方法。sysd為原離散系統(tǒng),sysc為轉(zhuǎn)換后的連續(xù)系統(tǒng)。
sysd2=d2d(sysd1,Ts)其中,sysd1為原離散系統(tǒng),sysd2為轉(zhuǎn)換后的離散系統(tǒng)。Ts為修改后的系統(tǒng)采樣時(shí)間。6.系統(tǒng)模型的連接一個(gè)系統(tǒng)一般是由若干環(huán)節(jié)或子系統(tǒng)按一定方式連接組合而成,這種連接方式有串聯(lián)、并聯(lián)、反饋等形式。MATLAB提供了模型連接的相關(guān)函數(shù)函數(shù)series用于兩個(gè)線性模型的串聯(lián).調(diào)用格式為:sys=series(sys1,sys2)。
函數(shù)parallel用于兩個(gè)線性模型的并聯(lián).調(diào)用格式為:sys=parallel(sys1,sys2)函數(shù)feedback用于模型的反饋連接.調(diào)用格式為:sys=feedback(sys1,sys2,sign)當(dāng)采用負(fù)反調(diào)時(shí),sign=-1且可缺??;當(dāng)采用正反饋時(shí),sign=1。8.2.2MATLAB用于控制系統(tǒng)的時(shí)域分析
1.連續(xù)系統(tǒng)輸出響應(yīng)及性能分析
若給定連續(xù)系統(tǒng)的傳遞函數(shù),則利用MATLAB可以方便地進(jìn)行系統(tǒng)的單位脈沖響應(yīng)、單位階躍響應(yīng)及任意輸入響應(yīng)等時(shí)域分析。在MATLAB中,求取連續(xù)系統(tǒng)時(shí)域響應(yīng)的函數(shù)主要有單位階躍響應(yīng)函數(shù)step、單位脈沖響應(yīng)函數(shù)impulse、任意輸入響應(yīng)函數(shù)lsim。
1)系統(tǒng)輸出響應(yīng)【例8-28】單位負(fù)反饋系統(tǒng)的開(kāi)環(huán)傳遞函數(shù)為
試用MATLAB做出系統(tǒng)單位階躍響應(yīng),并求系統(tǒng)動(dòng)態(tài)性能指標(biāo)。仿真程序如下:G_k=tf(10,[210]);G_0=feedback(G_k,1);step(G_0)title('stepresponse')運(yùn)行后得到的系統(tǒng)單位階躍響應(yīng)曲線。系統(tǒng)動(dòng)態(tài)性能指標(biāo)可通過(guò)在圖形窗口點(diǎn)擊右鍵,在Characteristics下的子菜單中選擇PeakResponse(峰值)、SettlingTime(調(diào)整時(shí)間)、RiseTime(上升時(shí)間)和SteadyState(穩(wěn)態(tài)值)等參數(shù)進(jìn)行顯示,如圖8-13所示。
圖8-13【例8-28】顯示參數(shù)的系統(tǒng)響應(yīng)曲線
【例8-29】典型二階系統(tǒng)閉環(huán)傳遞函數(shù)為其中,
n為無(wú)阻尼振蕩頻率,
為相對(duì)阻尼系數(shù)。試用MATLAB分析當(dāng)
n=6,
分別為0.1,0.2,…,2.0時(shí),系統(tǒng)的單位階躍響應(yīng)。仿真程序如下:
wn=6;
kosi=[0.1:0.1:1.0,2.0];holdonfork=kosinum=wn.^2;
den=[12*k*wn,wn.^2];step(num,den)endtitle('stepresponse')holdoffgtext('\zeta=0.1');gtext('\zeta=2.0')運(yùn)行后得到的單位階躍響應(yīng)曲線如圖8-14所示。圖8-14例8-29典型二階系統(tǒng)的階躍響應(yīng)可以看出,在過(guò)阻尼和臨界阻尼響應(yīng)曲線中,臨界阻尼響應(yīng)具有最短的上升時(shí)間,響應(yīng)速度最快;在欠阻尼(0<
<1)響應(yīng)曲線中,阻尼系數(shù)越小,超調(diào)量越大,上升時(shí)間越短,通常取
=0.4~0.8為宜,這時(shí)超調(diào)量適度,調(diào)節(jié)時(shí)間較短。2)系統(tǒng)穩(wěn)定性分析
可通過(guò)對(duì)系統(tǒng)輸出響應(yīng)曲線的分析直接判別系統(tǒng)的穩(wěn)定性,也可以通過(guò)對(duì)系統(tǒng)閉環(huán)特征方程的求解判別系統(tǒng)的穩(wěn)定性,在MATLAB中,采用roots函數(shù)計(jì)算系統(tǒng)的特征根?!纠?-30】系統(tǒng)閉環(huán)特征方程為q(s)=s3+s2+2s+24=0,試用MATLAB分析系統(tǒng)穩(wěn)定性。仿真程序如下:den=[11224];r=roots(den);運(yùn)行結(jié)果:r=-3.00001.000±2.6458i可見(jiàn),系統(tǒng)有兩個(gè)正實(shí)部的特征根,故系統(tǒng)不穩(wěn)定。3)系統(tǒng)穩(wěn)態(tài)誤差計(jì)算控制系統(tǒng)的穩(wěn)態(tài)誤差可以由系統(tǒng)的靜態(tài)誤差系數(shù)度量。在MATLAB中,靜態(tài)誤差系數(shù)可由dcgain函數(shù)求取。
【例8-31】單位負(fù)反饋系統(tǒng)的開(kāi)環(huán)傳遞函數(shù)為,試求單位階躍輸入下的穩(wěn)態(tài)誤差。由于系統(tǒng)為0型系統(tǒng),則其穩(wěn)態(tài)誤差系數(shù)為系統(tǒng)穩(wěn)態(tài)誤差為。求取系統(tǒng)穩(wěn)態(tài)誤差的仿真程序如下:
s=tf('s');G_k=10/(0.1*s+1)/(0.5*s+1);G_0=feedback(G_k,1);step(G_0) %獲得系統(tǒng)階躍響應(yīng)ess=1-dcgain(G_0) %獲得穩(wěn)態(tài)誤差運(yùn)行后得到的單位階躍響應(yīng)如圖8-15所示,穩(wěn)態(tài)誤差的計(jì)算結(jié)果為ess=0.0909可見(jiàn),利用MATLAB程序計(jì)算的結(jié)果和理論分析是一致的。圖8-15例8-31系統(tǒng)單位階躍響應(yīng)及穩(wěn)態(tài)誤差
2.離散系統(tǒng)的輸出響應(yīng)及性能分析
在MATLAB中,求取離散系統(tǒng)的輸出響應(yīng)函數(shù)有單位階躍響應(yīng)函數(shù)dstep、單位脈沖響應(yīng)函數(shù)dimpulse、任意輸入響應(yīng)函數(shù)dlsim。離散系統(tǒng)也可采用filter函數(shù)求輸出響應(yīng),其調(diào)用格式為
y=filter(num,den,r)其中,r表示輸入信號(hào)。1)系統(tǒng)輸出響應(yīng)【例8-32】系統(tǒng)的脈沖傳遞函數(shù)為
試用MATLAB求系統(tǒng)的離散單位階躍響應(yīng)。仿真程序如下:num=[0.36780.2644];den=[1-10.6322];dstep(num,den)運(yùn)行后得到的輸出響應(yīng)曲線如圖8-16所示。圖8-16離散單位階躍響應(yīng)曲線
2)系統(tǒng)穩(wěn)定性分析穩(wěn)定系統(tǒng)的閉環(huán)極點(diǎn)必位于z平面單位圓內(nèi)。
【例8-33】離散控制系統(tǒng)的特征方程為試?yán)肕ATLAB判斷系統(tǒng)的穩(wěn)定性。仿真程序如下:q=[45-117119-39];r=roots(q);x=[-1:0.01:1];y=sqrt(1-x.^2)plot(x,y,x,-y)holdonplot(r,'r+')holdoff圖8-17z平面特征根分布
運(yùn)行后得到的z平面特征根分布如圖8-17所示。可見(jiàn),特征方程有兩個(gè)根在z平面單位圓外。因此,離散系統(tǒng)是不穩(wěn)定的。8.2.3MATLAB用于控制系統(tǒng)的根軌跡分析根軌跡的繪制在MATLAB中,可用rlocus函數(shù)直接繪制系統(tǒng)的根軌跡。調(diào)用格式為:rlocus(num,den),rlocus(num,den,k)其中,num、den分別系統(tǒng)開(kāi)環(huán)傳遞函數(shù)分子系數(shù)和分母系數(shù)向量,k為給定的增益向量。若k是指定的,則按照給定的參數(shù)繪制根軌跡圖,否則k的變化范圍為0~∞。在繪制的根軌跡圖中,用“o”標(biāo)明開(kāi)環(huán)傳遞函數(shù)的零點(diǎn),用“×”標(biāo)明開(kāi)環(huán)傳遞函數(shù)的極點(diǎn)。用MATLAB繪制根軌跡還可采用如下調(diào)用形式:[r,k]=rlocus(num,den),[r,k]=rlocus(num,den,k)其中,r為開(kāi)環(huán)增益k時(shí)系統(tǒng)的閉環(huán)極點(diǎn)。使用該函數(shù)不顯示根軌跡曲線,要繪制根軌跡,則需使用plot繪圖函數(shù)?!纠?-34】若單位反饋控制系統(tǒng)的開(kāi)環(huán)傳遞函數(shù)為利用MATLAB繪制系統(tǒng)的根軌跡曲線。仿真程序如下:num=1;den=conv([110],[1,5]);figure(1)rlocus(num,den)axis([-88-88]);figure(2)r=rlocus(num,den);plot(r,'r-')axis([-88-88])gtext('×')gtext('×')gtext('×')運(yùn)行后繪制的系統(tǒng)根軌跡曲線如圖8-18所示。
(a)直接繪制的根軌跡圖(b)返回參數(shù)后繪制的根軌跡圖圖8-18例8-34系統(tǒng)根軌跡曲線2.根軌跡分析
在MATLAB中,有兩種方法獲得根軌跡曲線上某一點(diǎn)的開(kāi)環(huán)增益值和其他參數(shù)值。一是單擊根軌跡曲線上任意一點(diǎn),即可以方框的形式顯示該點(diǎn)處的增益值(Gain)、極點(diǎn)值(Pole)、阻尼比(Damping)、超調(diào)量(Overshoot)、頻率(Frequency)等參數(shù)值。二可調(diào)用rlocfind函數(shù),即[k,ploe]=rlocfind(num,den)。運(yùn)行該函數(shù)后,將在根軌跡圖形上生成一個(gè)十字光標(biāo),同時(shí)在命令窗口會(huì)出現(xiàn)Selectapointinthegraphicswindow,提示用戶(hù)選擇某一點(diǎn)。移動(dòng)十字光標(biāo)到希望的位置并單擊,則在命令窗口會(huì)顯示該點(diǎn)數(shù)值、增益值及對(duì)應(yīng)于該增益值的閉環(huán)極點(diǎn)?!纠?-35】若單位反饋控制系統(tǒng)的開(kāi)環(huán)傳遞函數(shù)為利用MATLAB繪制系統(tǒng)的根軌跡曲線,并由根軌跡判定系統(tǒng)的穩(wěn)定性。
仿真程序如下:num=[1,3];den=conv([11],[120]);G=tf(num,den);rlocus(G)運(yùn)行后繪制的系統(tǒng)軌跡曲線如圖8-19所示。由圖可見(jiàn),對(duì)于任意的K值,根軌跡曲線均在s左半平面,系統(tǒng)都是穩(wěn)定的。分別取增益K為4和45,繪制系統(tǒng)的單位階躍響應(yīng)曲線如圖8-20所示。可見(jiàn),在K=45時(shí),由于極點(diǎn)距虛軸很近,故振蕩很大。
圖8-19例8-35系統(tǒng)根軌跡
圖8-20例8-35不同K值的階躍響應(yīng)
8.2.4MATLAB用于控制系統(tǒng)的頻域分析1.頻率特性圖的繪制
頻率特性曲線有伯德圖(Bode圖)、奈奎斯特圖(Nyquist圖)、尼克爾斯圖(Nichols圖)3種表示。在MATLAB中,有專(zhuān)用函數(shù)可方便地實(shí)現(xiàn)這3個(gè)圖形的繪制。繪制伯德圖可用函數(shù)bode,其調(diào)用格式為bode(num,den)%繪制系統(tǒng)伯德圖,系統(tǒng)自動(dòng)選取頻率范圍bode(num,den,w)%繪制系統(tǒng)伯德圖,用戶(hù)指定選取頻率范圍[mag,phase,w]=bode(num,den,w)%返回系統(tǒng)伯德圖相應(yīng)的幅值、相位及頻率向量[mag,phase]=bode(num,den,w)%返回系統(tǒng)伯德圖與指定w相應(yīng)的幅值、相位需要注意:后兩種調(diào)用格式返回的幅值不是以分貝(dB)為單位。利用下式可以將幅值轉(zhuǎn)變成以dB為單位。magdb=20*log10(mag)另外,后兩種調(diào)用格式必須使用如下函數(shù)繪制完整伯德圖。subplot(211),semilogx(w,20*log10(mag));subplot(212),semilogx(w,phase);繪制奈氏圖可用函數(shù)nyquist,其調(diào)用格式為nyquist(num,den)%系統(tǒng)自動(dòng)選取頻率范圍nyquist(num,den,w)%用戶(hù)指定選取頻率范圍[re,im,w]=nyquist(num,den)%返回系統(tǒng)奈氏圖相應(yīng)的實(shí)部、虛部及頻率向量[re,im,w]=nyquist(num,den,w)%返回系統(tǒng)奈氏圖與指定w相應(yīng)的實(shí)部、虛部需要注意:后兩種調(diào)用格式不能直接在屏幕上產(chǎn)生奈氏圖,需要通過(guò)調(diào)用plot(re,im)函數(shù)繪制奈氏圖?!纠?-36】典型二階系統(tǒng)利用MATLAB繪制
取不同值時(shí)的伯德圖。取n=6,
=[0.1:0.1:1.0]時(shí),繪制二階系統(tǒng)的伯德圖。仿真程序如下:wn=6;kosi=[0.1:0.1:1.0];w=logspace(-1,1,100);figure(1)holdonnum=[wn.^2];forkos==kosiden=[12*kos*wnwn.^2];[magpha,w1]=bode(num,den,w);subplot(2,1,1);holdonsemilogx(w1,20*log10(mag));subplot(2,1,2);holdonsemilogx(w1,pha)endsubplot(2,1,1);gridontitle('Bodeplot')xlabel('Frequency(rad/sec)')ylabel('GaindB');subplot(2,1,2);gridonxlabel('Frequency(rad/sec)')ylabel('Phasedeg');holdoff執(zhí)行后得伯德圖如圖8-21所示。可以看出,當(dāng)
→0時(shí),相角
(
)也趨于0°;當(dāng)
→∞時(shí),
(
)→-180°;當(dāng)
=
n時(shí),
(
)=-90°,頻率響應(yīng)的幅度最大。
圖8-21例8-36典型二階系統(tǒng)的伯德圖
【例8-37】系統(tǒng)開(kāi)環(huán)傳遞函數(shù)為
利用MATLAB繪制系統(tǒng)奈氏圖,判別閉環(huán)系統(tǒng)的穩(wěn)定性,并求出閉環(huán)系統(tǒng)的單位脈沖響應(yīng)。仿真程序如下:k=50;z=[];p=[-52];[num,den]=zp2tf(z,p,k);figure(1)nyquist(num,den);title('NyquistPlot');figure(2)G_k=tf(num,den);G_c=feedback(G_k,1)impulse(G_c);title('ImpulseResponse');
運(yùn)行后得奈氏特圖如圖8-22所示,閉環(huán)系統(tǒng)單位脈沖響應(yīng)如圖8-23所示。圖8-22例8-37系統(tǒng)的奈氏圖
圖8-23例8-37閉環(huán)系統(tǒng)單位脈沖響應(yīng)
可以看出,奈奎斯特曲線按逆時(shí)針包圍(-1,j0)點(diǎn)一圈,而開(kāi)環(huán)系統(tǒng)包含右半s平面上的一個(gè)極點(diǎn)。因此,閉環(huán)系統(tǒng)穩(wěn)定,由閉環(huán)系統(tǒng)單位脈沖響應(yīng)可得到證實(shí)。
2.求相角裕度和幅值裕度在MATLAB中,應(yīng)用margin函數(shù)可以方便地求得系統(tǒng)的相位裕度和幅值裕度,調(diào)用格式為[gm,pm,wcg,wcp]=margin(mag,phase,w)
其中,輸入?yún)?shù)mag,phase,w分別為幅值(不是以dB為單位)、相角與頻率向量,可由bode或nyquist函數(shù)得到。輸出參數(shù)gm,pm,wcg,wcp分別為幅值裕度(不是以dB為單位)、相角裕度(以角度為單位)、相角為-180°處的頻率,增益為0dB處的頻率。margin函數(shù)的另一種調(diào)用格式為margin(mag,phase,w)該格式可以生成帶有裕度標(biāo)記的伯德圖,并且在曲線上方給出相應(yīng)的幅值裕度和相角裕度,以及對(duì)應(yīng)頻率?!纠?-38】系統(tǒng)開(kāi)環(huán)傳遞函數(shù)為試?yán)肕ATLAB繪制系統(tǒng)開(kāi)環(huán)伯德圖,并求出系統(tǒng)的穩(wěn)定裕度。仿真程序如下:sys1=tf([2.33],[0.1621]);sys2=tf([1],[0.03681]);sys3=tf([1],[0.001671]);sys=sys1*sys2*sys3;[num,den]=tfdata(sys);[mag,phase,w]=bode(num,den);subplot(211);semilogx(w,20*log10(mag));gridonsubplot(212);semilogx(w,phase);gridon[Gm,Pm,wcg,wcp]=margin(mag,phase,w)運(yùn)行后得伯德圖如圖8-24所示,在命令窗口得到系統(tǒng)的穩(wěn)定裕度為Gm=54.0835,Pm=93.6161,wcg=141.9361,wcp=11.6420若將程序中最后一條命令改為margin(mag,phase,w),則可生成帶有裕度標(biāo)記的伯德圖如圖8-25所示。圖8-24例8-38系統(tǒng)開(kāi)環(huán)伯德圖
圖8-25例8-38帶有裕度標(biāo)記的開(kāi)環(huán)伯德圖
8.2.5MATLAB用于控制系統(tǒng)的頻域法校正1.超前校正裝置的設(shè)計(jì)【例8-39】已知單位負(fù)反饋系統(tǒng)的開(kāi)環(huán)傳遞函數(shù)為
使用MATLAB設(shè)計(jì)一超前校正裝置,使系統(tǒng)的穩(wěn)態(tài)速度誤差系數(shù)Kv=20s-1,相角裕度不小于50°。
仿真程序如下:num=20;den=[110];margin(num,den);[Gm,Pm,wcg,wcp]=margin(num,den)%計(jì)算系統(tǒng)校正前的裕度dpm=50-pm+5; %根據(jù)性能指標(biāo)確定最大超前角φmphi=dpm*pi/180;alfa=(1+sin(phi))/(1-sin(phi)); %計(jì)算αa=-10*log10(alfa); %計(jì)算-10lga[mag,phase,w]=bode(num,den);adB=20*log10(mag);%在未校正系統(tǒng)的幅頻特性上找到wc=spline(adB,w,a); %幅值為a處的頻率T=1/(wc*sqrt(alfa));p=alfa*T;numk=[p1];denk=[T,1]Gc=tf(numk,denk); %獲得校正裝置的傳遞函數(shù)G=tf(num,den);[Gm1,Pm1,wcg1,wcp1]=margin(G*Gc)%計(jì)算系統(tǒng)校正后的穩(wěn)定裕度f(wàn)iguremargin(G*Gc)運(yùn)行后得穩(wěn)定裕度及校正前后的伯德圖如圖8-26所示。校正前的穩(wěn)定裕度為:Gm=Inf,Pm=12.7580°,校正后的穩(wěn)定裕度為:Gm1=Inf,Pm1=50.8°。可見(jiàn),滿足系統(tǒng)設(shè)計(jì)要求。
(a)校正前系統(tǒng)Bode圖(b)校正后系統(tǒng)Bode圖圖8-26例8-39頻域法校正前后系統(tǒng)Bode圖
2.PI控制器的設(shè)計(jì)
PI控制器具有相位滯后特性,因此,PI控制器是一種滯后校正裝置。【例8-40】系統(tǒng)開(kāi)環(huán)傳遞函數(shù)為
使用MATLAB設(shè)計(jì)PI控制器,使系統(tǒng)在階躍信號(hào)輸入下無(wú)靜差,并具有足夠的穩(wěn)定裕度。
仿真程序如下:num=55.58;den=conv([0.0491],conv([0.0261],[0.001671]));Gk=tf(num,den);[gm,pm,wcgwcp]=margin(num,den)%計(jì)算系統(tǒng)校正前的裕度[mag,pha,w]=bode(num,den);mag_db=20*log10(mag);wc=30;Gr=spline(w,mag_db,wc); %計(jì)算校正前系統(tǒng)在穿越頻率處的幅值Kp=10^(-Gr/20); %求Kpt1=0.049; %選1與原系統(tǒng)中最大的時(shí)間相等numc=[t11];denc=[t10];Gc=tf(kp*numc,denc); %校正裝置傳遞函數(shù)Go=series(Gk,Gc);[gm1,pm1,wcg1,wcp1]=margin(Go); %求校正后的相角裕度
繪制校正前后的伯德圖如圖8-27所示,校正后的相角裕度為pm1=44.9765°。圖8-27例8-40校正前后的伯德圖8.3Simulink在控制系統(tǒng)仿真中的應(yīng)用
8.3.1控制系統(tǒng)的Simulink模型的建立常規(guī)PID控制系統(tǒng)的結(jié)構(gòu)如圖8-28所示,它的Simulink仿真模型的建立步驟如下。啟動(dòng)Simulink,打開(kāi)一個(gè)空白的模型文件編輯窗口,準(zhǔn)備建立系統(tǒng)的Simulink模型。(2)根據(jù)需要在系統(tǒng)模塊庫(kù),如連續(xù)系統(tǒng)模塊庫(kù)(Continuous)、系統(tǒng)輸入信號(hào)模塊庫(kù)(Sources)、輸出顯示模塊庫(kù)(Sinks)等中選出需要階躍輸入模塊(step)、時(shí)間信號(hào)模塊(Clock)、加法運(yùn)算模塊(Sum)、傳遞函數(shù)模塊、時(shí)滯模塊、示波器模塊(Scope)、工作空間寫(xiě)入模塊(ToWorkspace)等,用鼠標(biāo)拖曳到編輯窗口中。(3)根據(jù)仿真系統(tǒng)的具體要求,用鼠標(biāo)雙擊選中的模塊,在各模塊對(duì)話框中修改模塊參數(shù)。(4)依據(jù)系統(tǒng)結(jié)構(gòu)圖,將各模塊連接建立原系統(tǒng)的Simulink仿真模型,如圖8-29所示。圖8-28常規(guī)PID控制系統(tǒng)結(jié)構(gòu)圖圖8-29常規(guī)PID控制系統(tǒng)的Simulink仿真模型8.3.2控制系統(tǒng)的Simulink仿真
采用前饋復(fù)合控制方法可以提高控制系統(tǒng)的抗干擾能力及控制質(zhì)量。
前饋控制系統(tǒng)的控制形式包括靜態(tài)前饋和動(dòng)態(tài)前饋。當(dāng)Wm(s)=-Kf時(shí),稱(chēng)為靜態(tài)前饋,是前饋控制的一種特殊形式,當(dāng)干擾通道和控制通道的動(dòng)態(tài)特性相同時(shí),可達(dá)到滿意效果。當(dāng)Wm(s)=-Kf×(
1s+1)/(
2s+1)時(shí),稱(chēng)為動(dòng)態(tài)前饋,在實(shí)踐中這類(lèi)控制器可以達(dá)到滿意的效果。建立的前饋控制系統(tǒng)的Simulink仿真模型如圖8-30所示。在仿真系統(tǒng)中,PID控制器為時(shí)間滯后為4s。當(dāng)不加前饋環(huán)節(jié)僅有反饋控制時(shí),系統(tǒng)階躍響應(yīng)的仿真曲線如圖
8-31(a)所示。當(dāng)Wm(s)=-Kf時(shí),系統(tǒng)階躍響應(yīng)的仿真曲線如圖8-31中曲線(b)所示。當(dāng)Wm(s)=-Kf×(
1s+1)/(
2s+1)時(shí),系統(tǒng)階躍響應(yīng)的仿真曲線如圖8-31中曲線(c)所示。通過(guò)三者比較可以看出,系統(tǒng)動(dòng)態(tài)性能依次變好。圖8-30前饋控制系統(tǒng)的Simulink仿真模型
圖8-31系統(tǒng)階躍響應(yīng)的仿真曲線
8.4應(yīng)用實(shí)例本節(jié)結(jié)合具體的工程應(yīng)用實(shí)例說(shuō)明MATLAB/Simulink軟件在控制系統(tǒng)計(jì)算機(jī)仿真和輔助設(shè)計(jì)中的應(yīng)用。8.4.1液壓位置伺服系統(tǒng)系統(tǒng)的結(jié)構(gòu)及模型建立典型的液壓位置伺服系統(tǒng)——雙電位器電液聯(lián)合控制系統(tǒng)為例,利用MATLAB/Simulink軟件對(duì)系統(tǒng)進(jìn)行仿真分析。
液壓位置伺服系統(tǒng)的原理結(jié)構(gòu)圖如圖8-32所示。它由雙電位器、放大器、液壓缸等部件構(gòu)成一閉環(huán)電液聯(lián)合控制系統(tǒng)。
圖8-32液壓位置伺服系統(tǒng)的原理結(jié)構(gòu)圖液壓位置伺服系統(tǒng)的結(jié)構(gòu)如圖8-33所示。
圖8-33液壓位置伺服系統(tǒng)的結(jié)構(gòu)圖
在液壓位置伺服系統(tǒng)的結(jié)構(gòu)圖中,放大器輸出為電流i,電液伺服閥輸出為流量q,液壓缸活塞輸出為位移xc,反饋電位器輸出為電壓uf。根據(jù)各模塊特性,由按照機(jī)理建模方法建立系統(tǒng)數(shù)學(xué)模型如下:
在零初始條件下,對(duì)上式進(jìn)行拉普拉斯變換,可得各環(huán)節(jié)的傳遞函數(shù)模型如下:
2.MATLAB/Simulink仿真分析
根據(jù)液壓位置伺服系統(tǒng)的各環(huán)節(jié)傳遞函數(shù)及參數(shù),可建立系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)圖如圖8-34所示。
圖8-34液壓位置伺服系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)圖則系統(tǒng)開(kāi)環(huán)傳遞函數(shù)Gk(s)和閉環(huán)傳遞函數(shù)Ф(s)為
利用MATLAB可方便地繪制系統(tǒng)對(duì)數(shù)頻率特性如圖8-35所示,由頻率特性可得系統(tǒng)穩(wěn)態(tài)指標(biāo)為幅值裕度Gm=5.71dB,相角裕度Pm=106°,剪切頻率=3.2rad/s,-180°穿越頻率=52.5rad/s。圖8-35系統(tǒng)的對(duì)數(shù)頻率特性
在Simulink環(huán)境中建立的系統(tǒng)仿真模型如圖8-36所示。采用單位階躍信號(hào)Step輸入時(shí),在跟蹤示
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品安全突發(fā)事件應(yīng)急演練
- 唱唱我的名教案反思
- 倍的認(rèn)識(shí)教案
- 核心素養(yǎng)下英語(yǔ)說(shuō)課稿
- 藝術(shù)家工作室買(mǎi)賣(mài)合同樣本
- 眼鏡審批權(quán)限規(guī)范
- 河道整治防洪渠施工合同
- 礦產(chǎn)倉(cāng)庫(kù)租賃協(xié)議范本
- 建筑質(zhì)保金合同樣本
- 能源安防施工合同
- 2024年山東省東營(yíng)市中考語(yǔ)文試題含解析
- 天然氣管網(wǎng)安裝工程施工過(guò)程崗位操作指南
- 船用甲板刷商業(yè)機(jī)會(huì)挖掘與戰(zhàn)略布局策略研究報(bào)告
- 公司網(wǎng)絡(luò)安全制度
- 跨學(xué)科主題學(xué)習(xí)- 探索外來(lái)食料作物傳播史(課件)七年級(jí)地理上冊(cè)同步高效備課課件(人教版2024)
- 學(xué)校編制外臨時(shí)代課教師聘用管理辦法
- 食堂承包經(jīng)營(yíng)服務(wù)項(xiàng)目投標(biāo)方案(技術(shù)方案)
- 南京市江寧區(qū)2023-2024三年級(jí)數(shù)學(xué)上冊(cè)期中試卷及答案
- GB/T 22838.7-2024卷煙和濾棒物理性能的測(cè)定第7部分:卷煙含末率
- 蚌埠醫(yī)學(xué)院兒科學(xué)教案
- 第四單元認(rèn)位置(單元測(cè)試)2024-2025學(xué)年一年級(jí)數(shù)學(xué)上冊(cè)蘇教版
評(píng)論
0/150
提交評(píng)論