自動控制原理及應(yīng)用課件(第八章)課件_第1頁
自動控制原理及應(yīng)用課件(第八章)課件_第2頁
自動控制原理及應(yīng)用課件(第八章)課件_第3頁
自動控制原理及應(yīng)用課件(第八章)課件_第4頁
自動控制原理及應(yīng)用課件(第八章)課件_第5頁
已閱讀5頁,還剩115頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

自動控制原理及應(yīng)用清華大學(xué)出版社董紅生主編第8章控制系統(tǒng)的MATLAB仿真應(yīng)用

本章小結(jié)8.4應(yīng)用實例

8.3Simulink在控制系統(tǒng)仿真中的應(yīng)用

8.2MATLAB在控制系統(tǒng)仿真中的應(yīng)用

8.1MATLAB仿真基礎(chǔ)

教學(xué)目標(biāo):了解MATLAB軟件的主要功能及基本使用方法;掌握利用MATLAB軟件對自動控制系統(tǒng)進(jìn)行仿真分析與設(shè)計;熟悉Simulink軟件的使用及控制系統(tǒng)仿真方法。8.1MATLAB仿真基礎(chǔ)8.1.1MATLAB系統(tǒng)概述

MATLAB是MatrixLaboratory(矩陣實驗室)的英文縮寫,由美國MathWorks公司開發(fā)的一套高性能的科學(xué)及工程計算軟件。是當(dāng)今國際控制領(lǐng)域應(yīng)用最廣、最受人們喜愛的一款仿真軟件。1.MATLAB的主要特點

1)語言簡潔緊湊,使用方便靈活;

2)數(shù)值算法穩(wěn)定可靠,庫函數(shù)豐富;

3)程序設(shè)計的自由度大,可移植性好;

4)圖形功能強大;

5)編程效率高;

6)開放的源程序。

2.MATLAB的操作桌面

1)MATLAB啟動

啟動的默認(rèn)界面如圖8-1所示,包括三個窗口:CommandWindow(命令窗口)、Workspace(工作空間)、CommandHistory(命令歷史記錄)。

圖8-1啟動的默認(rèn)界面2)命令窗口在MATLAB的命令窗口的系統(tǒng)提示符“>>”后輸入合法命令并按回車鍵,MATLAB即會自動執(zhí)行所輸入命令并給出執(zhí)行結(jié)果。命令窗口可以執(zhí)行任何MATLAB命令和函數(shù),是MATLAB的主要交互窗口。3)工作空間窗口工作空間窗口(workspace)是MATLAB用于存儲各種變量和結(jié)果的內(nèi)存空間,在工作空間中顯示了所有變量的名稱、大小、字節(jié)數(shù)及數(shù)據(jù)類型,可對變量進(jìn)行觀察、編輯、保存及刪除。有關(guān)工作空間的變量管理命令如下。(1)who/whos:查看工作空間中的變量情況。(2)clear:刪除工作空間所有變量。(3)size/length:求取變量的大?。唬?)exist:查詢在當(dāng)前的工作空間中是否存在一個變量;(5)save/load:將工作空間的變量保存到文件中,或從文件中加載變量。

4)命令歷史窗口

命令歷史窗口(commandHistory)主要用于顯示最近命令窗口運行過的命令、函數(shù)、表達(dá)式日志,并按照命令使用時間聚合。如果要清除這些記錄,可以選擇Edit菜單中的“ClearCommandHistory”項。5)圖形窗口

圖形窗口是獨立于主界面窗口的窗體。在圖形窗口上可以進(jìn)行繪制曲線、顯示文本、填充顏色等操作??捎胒igure命令建立一個新的圖形窗口,也可以用繪圖語句(如plot命令)自動創(chuàng)建圖形窗口,并繪制圖形。

6)編輯/調(diào)試窗口MATLAB內(nèi)置了程序編輯/調(diào)試器(editor/debugger),如圖8-2所示。在Editor/Debugger窗口可以建立、編輯、存儲M文件,可以運行、調(diào)試(斷點、單步、跟蹤、查看)程序。

圖8-2MATLAB程序編輯/調(diào)試器窗口

MATLAB提供了豐富的幫助功能,通過這些功能可以獲得有關(guān)命令、函數(shù)及工具箱的使用方法。幫助系統(tǒng)的操作有圖形化和命令兩種方式。

單擊系統(tǒng)主界面上的“?”按鈕或使用helpwin/helpdesk命令.

使用的幫助命令有help、helpfunctionname、lookfor等。

7)幫助窗口

8.1.2MATLAB的編程基礎(chǔ)

1.MATLAB語言的變量

MATLAB不需要事先對所使用的變量進(jìn)行聲明,也不需要指定變量類型。在MATLAB語言中,變量的命名應(yīng)遵循如下規(guī)則:1)變量名區(qū)分大小寫。2)變量名長度不超過31位,第31個字符之后的字符將被MATLAB語言所忽略。3)變量名以字母開頭,可以由字母、數(shù)字、下劃線組成,但不能使用標(biāo)點。

需要指出:MATLAB語言和其他的程序設(shè)計語言一樣都存在變量作用域的問題,在未加特殊說明的情況下,MATLAB將所識別的全部變量視為局部變量,即僅在其使用的M文件內(nèi)有效。與其他計算機語言不同,MATLAB不需要設(shè)定變量精度,在MATLAB中一律使用雙精度,但是可以由format命令設(shè)定變量或數(shù)據(jù)的顯示格式。MATLAB常用的有如下幾種格式:short小數(shù)點后5位(系統(tǒng)默認(rèn)值);long小數(shù)點后15位;shorte5位指數(shù)形式;longe15位指數(shù)形式。

MATLAB語言本身也預(yù)定義了一些特殊的變量稱為常量。實際編程時,這些常量可以直接使用。2.MATLAB語言的基本語句結(jié)構(gòu)

1)賦值語句

賦值語句的格式為:

變量名列表=表達(dá)式

(1)常數(shù)賦值(2)字符串賦值(3)表達(dá)式賦值

2)調(diào)用函數(shù)語句

調(diào)用函數(shù)語句的格式為:

[返回變量列表]=函數(shù)名稱(輸入變量列表)

式中,等號左邊的變量名列表為MATLAB語句的返回值,若一次返回多個結(jié)果,則變量名列表用“[]”括起來,各變量間用逗號分隔;等號右邊為表達(dá)式,可以是矩陣運算或函數(shù)調(diào)用,且由分號(;)、逗號(,)或回車結(jié)束。如果用分號結(jié)束,則左邊的變量結(jié)果將在屏幕上不顯示,否則將顯示左側(cè)變量的值。變量賦值語句有3種形式:函數(shù)名稱可以是任意有效函數(shù),如MATLAB內(nèi)部函數(shù),如sin(),atan(),inv()等;MATLAB外部函數(shù),如step()、ginput()等;用戶自定義函數(shù),如mysystem()等。輸入變量必須預(yù)先賦值,如只有一個返回變量,省略矩陣標(biāo)識符“[]”。如不設(shè)返回變量,根據(jù)函數(shù)的不同,以立即方式執(zhí)行該函數(shù),執(zhí)行結(jié)果賦值于當(dāng)前公共變量ans。3)數(shù)據(jù)的輸入與輸出方式MATLAB的數(shù)據(jù)輸入輸出方式包括命令窗口的輸入輸出方式、文件操作的輸入輸出方式及圖形界面(GUI)的輸入輸出方式。

(1)數(shù)據(jù)輸入

調(diào)用格式:A=input(‘提示信息’,選項)

(2)數(shù)據(jù)輸出

調(diào)用格式:disp(輸出項)

8.1.3MATLAB語言的矩陣運算與符號運算

1.MATLAB的矩陣運算主要介紹矩陣的生成、矩陣的基本運算和矩陣的數(shù)組運算。

1)矩陣的生成(1)直接輸入法

最方便、最常用的創(chuàng)建數(shù)值矩陣的方法,適合小矩陣或沒有任何規(guī)律的矩陣

。創(chuàng)建矩陣時,應(yīng)當(dāng)注意如下幾點:

①輸入矩陣時要以“[]”為其標(biāo)識符號,矩陣的所有元素必須都在括號內(nèi);②矩陣同行元素之間由空格或逗號分隔,行與行之間用分號或回車鍵分隔;③矩陣大小無需預(yù)先定義;④矩陣元素可以是運算表達(dá)式;⑤若“[]”中無元素,則表示空矩陣。(2)特殊矩陣的生成生成特殊矩陣的幾個常用函數(shù)如下:zeros(n)生成n階全0矩陣;eye(n)生成n階單位矩陣;ones(n)生成n階全1矩陣;rand(n)生成n階均勻分布的隨機矩陣;randn(n)生成n階正態(tài)分布的隨機矩陣。

2)矩陣的數(shù)學(xué)運算矩陣的數(shù)學(xué)運算包括基本運算、與常數(shù)的運算、行列式運算、秩運算、特征值運算等。(1)基本運算

MATLAB中矩陣的基本運算符及其意義如表8-2所示。運算符功能運算符功能+矩陣/數(shù)組相加\矩陣左除-矩陣/數(shù)組相減/矩陣右除*矩陣乘^矩陣冪′矩陣轉(zhuǎn)置inv(A)矩陣的逆矩陣需要指出:在關(guān)系運算中,若比較的雙方為同維數(shù)組,則比較的結(jié)果也是同維數(shù)組。其元素值由0和1組成。當(dāng)比較的雙方一方為常數(shù),另一方為一數(shù)組時,則比較的結(jié)果與數(shù)組同維。

在算術(shù)運算、比較運算和邏輯與、或、非運算中,它們的優(yōu)先級關(guān)系先后為:比較運算、算術(shù)運算、邏輯與或非運算。

2.MATLAB的符號運算MATLAB的符號運算功能,可以實現(xiàn)數(shù)學(xué)上的許多解析運算,包括微積分、簡化、復(fù)合、求解代數(shù)方程及微分方程等,并且支持Fourier、Laplace、Z變換及逆變換。

1)符號運算的基本函數(shù)

MATLAB提供了兩個基本的符號運算函數(shù),即函數(shù)sym和syms,用來創(chuàng)建符號變量和表達(dá)式。

sym函數(shù)用于創(chuàng)建單個的符號變量。調(diào)用格式為:

a=sym(‘a(chǎn)’)創(chuàng)建一個符號變量a,它可以是字符、字符串、表達(dá)式或字符表達(dá)式。syms函數(shù)需要在具體創(chuàng)建一個符號表達(dá)式之前,將這個表達(dá)式所包含的全部符號變量創(chuàng)建完畢。調(diào)用格式為:

symsabc...可一次創(chuàng)建多個符號變量。由于syms函數(shù)書寫簡潔,意義清楚,符合MATLAB的習(xí)慣和特點,一般提倡使用syms創(chuàng)建符號變量。2)符號表達(dá)式的化簡

MATLAB提供了符號表達(dá)式的化簡類函數(shù),如表8-6所示。

simplify函數(shù)的調(diào)用格式為:simplify(x)simple函數(shù)的調(diào)用格式為:[r,how]=simple(x)其中,r為返回的最簡化形式,how為化簡過程中使用的化簡方法,可查看幫助文件。3)符號方程的求解MATLAB提供了對代數(shù)方程求解的solve函數(shù)。調(diào)用格式為:g=solve(eq1,eq2,…,eqN,var1,var2,...,varN)

式中,eq1,eq2,…,eqN為符號表達(dá)式組成的代數(shù)方程組,var1,var2,...,varN為指定自變量。8.1.4MATLAB語言的圖形功能二維圖形的繪制1)基本繪圖形式

MATLAB繪制二維圖形的函數(shù)為plot函數(shù)?;菊{(diào)用格式為:plot(x,y)其中,x和y為長度相同的向量,分別用于存儲x坐標(biāo)和y坐標(biāo)數(shù)據(jù)。2)多重曲線繪圖利用plot函數(shù)在單幅圖形上繪制多重曲線有兩種方法:(1)用一組變量x和y繪圖,其中x或y是矩陣,或兩個都是矩陣。(2)用多組變量x1、y1、x2、y2、...、xn、yn繪圖。在繪制多重曲線時,MATLAB會按照一定的規(guī)律自動變化每條曲線的顏色。3)圖形的線型和顏色線方式線型:-實線:冒號線--虛線-.點劃線點方式線型:.圓點+加號*星號x叉形。圓圈顏色:y黃;r紅;g綠;b藍(lán);w白;k黑;m紫;c青繪制多重曲線還可以利用hold命令。在已經(jīng)畫好的圖形上,若設(shè)置holdon,MATLAB將把新的plot命令產(chǎn)生的圖形畫在原來的圖形上,可利用holdoff命令結(jié)束多重曲線繪制。標(biāo)注線型和顏色的屬性參數(shù)時應(yīng)注意:屬性的符號必須放在同一個字符串中;可以指定兩個以上的屬性,但同一種屬性不能有兩個以上;屬性的先后順序無關(guān)。4)圖形的標(biāo)注MATLAB提供了一系列方便的圖形標(biāo)注函數(shù),這些函數(shù)包括:title圖形標(biāo)題xlabelx軸標(biāo)識ylabely軸標(biāo)識zlabelz軸標(biāo)識text任意位置加注文本gtext鼠標(biāo)定位加注文本legend標(biāo)注圖例圖形標(biāo)注使用的文字可以是字母和數(shù)字,MATLAB6.1可以使用漢字,也可以按照規(guī)定的方法表示希臘字母、數(shù)學(xué)符號和變形體,例如:\pi表示π,\led表示≤,\it表示斜體字等。

5)坐標(biāo)軸的控制

MATLAB提供了控制坐標(biāo)狀態(tài)的axis函數(shù)。常用的調(diào)用格式有:axis([xminxmaxyminymax])指定二維圖形x軸和y軸的刻度范圍;axisequalx軸和y軸的單位長度相同;axissquare使各坐標(biāo)軸長度相同(圖框呈方形);axisoff使坐標(biāo)軸消隱;axison繪制坐標(biāo)軸(默認(rèn)值)。6)繪制多幅圖形subplot函數(shù)可以在一個圖形窗口上繪制多個圖形。

調(diào)用格式為:subplot(m,n,p)將圖形窗口分成m×n個子窗口,p代表當(dāng)前的子窗口號,子窗口的排列順序為左上角開始按行排列。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è)計M文件

M文件可以分為命令文件(script)和函數(shù)文件(function)。M文件可以在MATLAB的程序編輯器中編寫,也可以在其他的文本編輯器中編寫,并以.m為擴展名存儲。

命令文件:命令和函數(shù)的集合,用于執(zhí)行特定的功能。執(zhí)行命令文件不需要輸入?yún)?shù),也沒有輸出參數(shù),MATLAB自動按順序執(zhí)行命令文件中的命令,命令文件的變量保存在工作空間中,可以被其他的命令文件或函數(shù)引用,直到被清除或退出MATLAB為止。

函數(shù)文件:以function語句為引導(dǎo)的M文件,可以接受輸入?yún)?shù)和返回輸出參數(shù)。函數(shù)文件的操作對象為函數(shù)的輸入變量和函數(shù)內(nèi)的局部變量。MATLAB語言的函數(shù)文件包含如下部分組成:

1)函數(shù)定義行:函數(shù)定義行是函數(shù)文件的第一行,用關(guān)鍵詞“function”定義M文件為函數(shù)文件,并定義函數(shù)名、函數(shù)輸入輸出參數(shù)。注意函數(shù)名應(yīng)盡可能與M文件同名。

2)H1行:H1行是幫助文本的第一行,為該函數(shù)文件的幫助主題,以“%”開始,該行用于從總體上說明函數(shù)名和函數(shù)的功能。當(dāng)使用lookfor命令時,可以查看到該行信息。

3)幫助文本:幫助文本提供了函數(shù)完整的幫助信息,以“%”開始,用于詳細(xì)介紹函數(shù)的功能、用法以及其他說明。

4)函數(shù)體:函數(shù)體是函數(shù)文件的主體部分,即函數(shù)代碼段。

5)注釋:指對函數(shù)體中各語句的解釋和說明文本,注釋語句以“%”引導(dǎo),可以在一行的開始,也可以在一條可執(zhí)行語句的后面。2.程序流程控制語句MATLAB語言的程序流程控制語句主要有條件語句、循環(huán)語句、分支語句及其他流程控制語句等。

1)循環(huán)語句

2)條件語句3)分支語句4)其他流程控制語句8.1.6Simulink仿真基礎(chǔ)Simulink是MATLAB的一個重要組成部分,是系統(tǒng)仿真的先進(jìn)、高效的工具。它具有相對獨立的功能和使用方法,支持線性和非線性、連續(xù)、離散及混合系統(tǒng)的仿真。Simulink模塊庫瀏覽器,如圖8-9所示,單擊該窗口中的“新建”按鈕,可打開一個空白模型窗口,如圖8-10所示。

圖8-9Simulink的模塊庫瀏覽器圖8-10Simulink的模型窗口1.Simulink的基本操作

1)Simulink啟動

Simulink有三種啟動方式:①在MATLAB命令窗口輸入“Simulink”回車;②單擊MATLAB工具欄上的Simulink圖標(biāo);③在MATLAB菜單上選File→New→Model。2)Simulink功能模塊

Simulink提供了9類功能模塊庫和許多專業(yè)模塊子集。連續(xù)系統(tǒng)模塊庫、系統(tǒng)輸入源模塊庫及輸出顯示模塊庫的介紹。連續(xù)系統(tǒng)模塊庫(continuous)包括:Integrator:積分器模塊,輸出對輸入的時間積分。Derivative:微分器模塊,輸出對輸入的時間微分。State-Space:狀態(tài)空間表達(dá)式模塊,實現(xiàn)線性狀態(tài)空間系統(tǒng)。TransferFcn:傳遞函數(shù)模塊,實現(xiàn)線性傳遞函數(shù)。Zero-Pole:零極點函數(shù)模塊,實現(xiàn)零極點方式的傳遞函數(shù)。TransportDelay:傳輸延遲模塊,以固定的時間延遲輸入。VariableTransportDelay:可變傳輸延遲模塊,以變化的時間量延遲輸入。VariableTimeDelay:可變時間延遲模塊。

系統(tǒng)輸入信號模塊庫(sources)中各模塊是作為系統(tǒng)的輸入信號源,包括:Inl:輸入端口模塊,可為子系統(tǒng)或外部輸入生成一個輸入端口。Constant:常數(shù)輸入模塊,生成一個常值。SignalGenerator:普通信號發(fā)生器,可生成正弦波、方波、鋸齒波及任意波波形。FromFile:讀文件模塊,加載文件讀數(shù)據(jù)。FromWorkspace:讀工作空間模塊。Clock:時間信號模塊,顯示并輸出當(dāng)前的仿真時間。Ground:接地模塊,連接輸入端口未與其他模塊相連的模塊。在系統(tǒng)輸入源模塊庫中還提供了不同類型的輸入信號,如Step(階躍輸入)、Ramp(斜坡輸入)、PulseGenerator(脈沖信號)、SineWave(正弦信號)等。

輸出顯示模塊庫(sinks)允許用戶將仿真結(jié)果以不同的形式輸出,包括:Outl:輸出端口模塊,可為子系統(tǒng)或外部輸出生成一個輸出端口。Terminator:信號終止模塊,終止一個未連接的輸出端。Scope/FloatingScope:示波器模塊,顯示仿真期間生成的信號。XYGraph:XY示波器,使用圖形窗口顯示信號的XY圖。ToWorkspace:工作空間寫入模塊,將數(shù)據(jù)寫入到工作空間的變量。ToFile:寫文件模塊,將數(shù)據(jù)寫入到文件。Display:數(shù)字顯示模塊,顯示輸入值。StopSimulation:仿真終止模塊,當(dāng)輸入不為零時停止仿真。

3)功能模塊的基本操作

模塊的選取:當(dāng)選取單個模塊時,只要用鼠標(biāo)在模塊上單擊即可,此時模塊的角上出現(xiàn)黑色小方塊。選取多個模塊時,選取拖拽鼠標(biāo)的方式把要選擇的模塊全部包圍即可。若所有被選取的模塊都出現(xiàn)小黑方塊,則表示模塊已被選中。模塊的復(fù)制、剪切、刪除、移動:應(yīng)用Edit→copy/cut/paste/clear可對選取的模塊進(jìn)行復(fù)制、剪切、粘貼、刪除操作。在同一窗口移動選取的模塊時,可使用鼠標(biāo)進(jìn)行拖拽并放在合適的位置。模塊的連接:在連接兩個模塊時,可直接從一個模塊的輸出端連接到另一個模塊的輸入端;在連線之間插入模塊時,可將模塊用鼠標(biāo)拖到連線上,然后釋放鼠標(biāo)即可;連接線有分支時,可先連好一條線,把鼠標(biāo)移到支線的起點,并按下Ctrl鍵,再將鼠標(biāo)拖至目標(biāo)模塊的輸入端即可。4)功能模塊參數(shù)的設(shè)置雙擊要設(shè)置的模塊或在模塊上單擊鼠標(biāo)右鍵并在彈出的菜單中選擇“BlockParameters”,打開模塊參數(shù)設(shè)置對話框,如圖8-11所示,在對話框內(nèi)對模塊參數(shù)(parameters)進(jìn)行設(shè)置。圖8-11模塊參數(shù)設(shè)置對話框

2.系統(tǒng)仿真參數(shù)的設(shè)置一般在系統(tǒng)仿真運行前需要對仿真算法、輸出模式等各種仿真參數(shù)進(jìn)行適當(dāng)設(shè)置。通過運行菜單Simulation→Parameters完成設(shè)置,如圖8-12所示。圖8-12仿真參數(shù)設(shè)置對話框1)算法設(shè)置(solver)

在Solver內(nèi)需要設(shè)置仿真起始和終止時間設(shè)置、選擇合適的算法及指定輸出方式。Simulationtime:仿真起始時間和終止時間的設(shè)置(s)。Solveroptions:仿真算法的選擇。仿真算法根據(jù)步長的變化分為固定步長算法(fixed-step)和變步長算法(variable-step)。Outputoptions:輸出選項的設(shè)置。2)工作空間設(shè)置(workspaceI/O)

設(shè)置工作空間,可從工作空間輸入數(shù)據(jù)、初始化狀態(tài)模塊,也可以把仿真結(jié)果、狀態(tài)變量、時間數(shù)據(jù)保存到當(dāng)前工作空間。Loadfromworkspace:從工作空間中輸入數(shù)據(jù)。如果仿真模型有輸入端口(In模塊),則在仿真過程中可從工作空間直接把數(shù)據(jù)載入到輸入端口。

方法:選中“Input”復(fù)選框,再在后面的編輯框內(nèi)輸入數(shù)據(jù)的變量名。Simulink根據(jù)輸入端口參數(shù)中設(shè)置的采樣時間讀取輸入數(shù)據(jù)。Savetoworkspace:將輸出數(shù)據(jù)保存到工作空間。可以選擇保存到工作空間的選項有:Time(時間)、States(狀態(tài))、Output(端口輸出)和Finalstate(最終狀態(tài))。方法:選中各選項前面的復(fù)選框,再在選項后面的編輯框內(nèi)輸入變量名,則將相應(yīng)的數(shù)據(jù)保存到指定的變量中。常用的輸出模塊為Out1模塊和ToWorkspace模塊。Saveoptions:保存選項。在Saveoptions區(qū)域內(nèi),F(xiàn)ormat選項與保存數(shù)據(jù)的形式有關(guān),可以根據(jù)需要進(jìn)行選擇,Limitrowstolast選項用來限定保存到工作空間中數(shù)據(jù)的最大行數(shù),Decimation選項可從每行幾個數(shù)據(jù)中抽取一個。3.Simulink的仿真分析使用sim函數(shù)實現(xiàn)仿真,調(diào)用格式為:[t,x,y]=sim(‘model’,timespan,option,ut)其中,‘model’為Simulink生成的模型文件名;timspan為仿真時間設(shè)置,可指定終止時間和起止時間;其余參數(shù)為可選,option用于設(shè)置初始條件、步長與容許誤差等值,ut為外部輸入信號。8.2MATLAB在控制系統(tǒng)仿真中的應(yīng)用

8.2.1MATLAB用于控制系統(tǒng)的建模控制系統(tǒng)常用的數(shù)學(xué)模型表示有微分方程、傳遞函數(shù)、動態(tài)結(jié)構(gòu)圖、狀態(tài)空間方程等。系統(tǒng)數(shù)學(xué)模型有連續(xù)和離散之分,它們各有特點,有時需在各種模型之間進(jìn)行轉(zhuǎn)換。利用MATLAB可對它們進(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變換運行結(jié)果:f1=1/(s+a)>>f2=ilaplace(1/(s-2)^2)%求Laplace反變換運行結(jié)果:f2=t*exp(a*t)【例8-23】求單位斜坡函數(shù)f(t)=t的z變換。>>symstT>>F=ztrans(t*T)%求Z變換運行結(jié)果:F=T*z/(z-1)^22.微分方程求解對符號常微分方程求解的dsolve函數(shù),調(diào)用格式為r=dsolve('eq1,eq2,…','cond1,cond2,...','v')

求解由eq1,eq2,…指定的常微分方程的符號解,參數(shù)cond1,cond2…為指定常微分方程的邊界條件或初始條件,v為指定自變量。【例8-24】求解微分方程的通解和當(dāng)時的特解。

>>dsolve('Dy=a*y')運行結(jié)果:ans=C1*exp(a*t)>>dsolve('Dy=a*y','y(0)=b')運行結(jié)果:ans=b*exp(a*t)3.連續(xù)系統(tǒng)的傳遞函數(shù)

對于一個單輸入單輸出(SISO)的連續(xù)系統(tǒng),對系統(tǒng)的微分方程進(jìn)行Laplace變換,可得該連續(xù)系統(tǒng)的傳遞函數(shù)為在MATLAB中用函數(shù)tf建立一個連續(xù)系統(tǒng)傳遞函數(shù)模型。調(diào)用格式為:

sys=tf(num,den)其中,num為傳遞函數(shù)分子系數(shù)向量,den為傳遞函數(shù)分母系數(shù)向量?!纠?-25】連續(xù)系統(tǒng)傳遞函數(shù)為

用MATLAB建立該連續(xù)系統(tǒng)傳遞函數(shù)模型。程序和運行結(jié)果如下:

num=[13];den=[1021];sys=tf(num,den)運行結(jié)果為:Transferfunction:用zpk函數(shù)建立連續(xù)系統(tǒng)的零極點形式的傳遞函數(shù)。其調(diào)用格式為

sys=zpk(z,p,k)其中,z為所有零點構(gòu)成的矢量,p為所有極點構(gòu)成的矢量,k表示增益。

4.離散系統(tǒng)脈沖傳遞函數(shù)對于SISO的離散系統(tǒng),對系統(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】:離散時間系統(tǒng)z傳遞函數(shù)為

采樣周期為0.5s,建立MATLAB該離散系統(tǒng)z傳遞函數(shù)模型。程序和運行結(jié)果如下:num=1;den=[1-32];Ts=0.5;sys=tf(num,den,Ts)

運行結(jié)果為:Transferfunction:

Samplingtime:0.5

5.系統(tǒng)模型的相互轉(zhuǎn)化不同形式的系統(tǒng)數(shù)學(xué)模型雖然外在形式不同,但它們的實質(zhì)內(nèi)容是等價的。在進(jìn)行系統(tǒng)分析時,往往需要根據(jù)不同的要求選擇不同形式的系統(tǒng)數(shù)學(xué)模型。MATLAB提供了十分簡單的模型轉(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)

可將非零極點增益形式的系統(tǒng)模型sys轉(zhuǎn)換成零極點增益模型。newsys=ss(sys)可將非狀態(tài)空間方程的系統(tǒng)模型sys轉(zhuǎn)換成狀態(tài)空間模型。

調(diào)用函數(shù)tf2zp和zp2tf實現(xiàn)傳遞函數(shù)和零極點增益模型的相互轉(zhuǎn)換;調(diào)用函數(shù)tf2ss和ss2tf實現(xiàn)傳遞函數(shù)和狀態(tài)空間方程的相互轉(zhuǎn)換;調(diào)用函數(shù)zp2ss和ss2zp實現(xiàn)狀態(tài)空間方程和零極點增益模型的相互轉(zhuǎn)換?!纠?-27】離散系統(tǒng)脈沖傳遞函數(shù)為將其轉(zhuǎn)換為為零極點增益形式,采樣周期為0.01s。

程序和運行結(jié)果如下:num=[0.04,0.04];den=[1-2810.9];sys_tf=tf(num,den,0.01);sys_zpk=zpk(sys_tf)運行結(jié)果為:Zero/pole/gain:

0.04(z+1)--------------------------------------------(z+0.01111)(z^2-2.011z+81.02)

Samplingtime:0.01MATLAB采用函數(shù)c2d和d2c實現(xiàn)連續(xù)系統(tǒng)和離散系統(tǒng)之間的轉(zhuǎn)換,離散系統(tǒng)的采樣時間變化時,可使用函數(shù)d2d進(jìn)行采樣時間變化的轉(zhuǎn)換。

sysd=c2d(sysc,Ts,method)其中,method表示轉(zhuǎn)換方法,可選擇的方法有零階保持法(zoh),一階保持法(foh),雙線性變換法(tustin)等,默認(rèn)為zoh方法。sysc為原連續(xù)系統(tǒng),Ts是采樣時間,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)采樣時間。6.系統(tǒng)模型的連接一個系統(tǒng)一般是由若干環(huán)節(jié)或子系統(tǒng)按一定方式連接組合而成,這種連接方式有串聯(lián)、并聯(lián)、反饋等形式。MATLAB提供了模型連接的相關(guān)函數(shù)函數(shù)series用于兩個線性模型的串聯(lián).調(diào)用格式為:sys=series(sys1,sys2)。

函數(shù)parallel用于兩個線性模型的并聯(lián).調(diào)用格式為:sys=parallel(sys1,sys2)函數(shù)feedback用于模型的反饋連接.調(diào)用格式為:sys=feedback(sys1,sys2,sign)當(dāng)采用負(fù)反調(diào)時,sign=-1且可缺??;當(dāng)采用正反饋時,sign=1。8.2.2MATLAB用于控制系統(tǒng)的時域分析

1.連續(xù)系統(tǒng)輸出響應(yīng)及性能分析

若給定連續(xù)系統(tǒng)的傳遞函數(shù),則利用MATLAB可以方便地進(jìn)行系統(tǒng)的單位脈沖響應(yīng)、單位階躍響應(yīng)及任意輸入響應(yīng)等時域分析。在MATLAB中,求取連續(xù)系統(tǒng)時域響應(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)的開環(huán)傳遞函數(shù)為

試用MATLAB做出系統(tǒng)單位階躍響應(yīng),并求系統(tǒng)動態(tài)性能指標(biāo)。仿真程序如下:G_k=tf(10,[210]);G_0=feedback(G_k,1);step(G_0)title('stepresponse')運行后得到的系統(tǒng)單位階躍響應(yīng)曲線。系統(tǒng)動態(tài)性能指標(biāo)可通過在圖形窗口點擊右鍵,在Characteristics下的子菜單中選擇PeakResponse(峰值)、SettlingTime(調(diào)整時間)、RiseTime(上升時間)和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為無阻尼振蕩頻率,

為相對阻尼系數(shù)。試用MATLAB分析當(dāng)

n=6,

分別為0.1,0.2,…,2.0時,系統(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īng)曲線如圖8-14所示。圖8-14例8-29典型二階系統(tǒng)的階躍響應(yīng)可以看出,在過阻尼和臨界阻尼響應(yīng)曲線中,臨界阻尼響應(yīng)具有最短的上升時間,響應(yīng)速度最快;在欠阻尼(0<

<1)響應(yīng)曲線中,阻尼系數(shù)越小,超調(diào)量越大,上升時間越短,通常取

=0.4~0.8為宜,這時超調(diào)量適度,調(diào)節(jié)時間較短。2)系統(tǒng)穩(wěn)定性分析

可通過對系統(tǒng)輸出響應(yīng)曲線的分析直接判別系統(tǒng)的穩(wěn)定性,也可以通過對系統(tǒng)閉環(huán)特征方程的求解判別系統(tǒng)的穩(wěn)定性,在MATLAB中,采用roots函數(shù)計算系統(tǒng)的特征根?!纠?-30】系統(tǒng)閉環(huán)特征方程為q(s)=s3+s2+2s+24=0,試用MATLAB分析系統(tǒng)穩(wěn)定性。仿真程序如下:den=[11224];r=roots(den);運行結(jié)果:r=-3.00001.000±2.6458i可見,系統(tǒng)有兩個正實部的特征根,故系統(tǒng)不穩(wěn)定。3)系統(tǒng)穩(wěn)態(tài)誤差計算控制系統(tǒng)的穩(wěn)態(tài)誤差可以由系統(tǒng)的靜態(tài)誤差系數(shù)度量。在MATLAB中,靜態(tài)誤差系數(shù)可由dcgain函數(shù)求取。

【例8-31】單位負(fù)反饋系統(tǒng)的開環(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īng)如圖8-15所示,穩(wěn)態(tài)誤差的計算結(jié)果為ess=0.0909可見,利用MATLAB程序計算的結(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表示輸入信號。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īng)曲線如圖8-16所示。圖8-16離散單位階躍響應(yīng)曲線

2)系統(tǒng)穩(wěn)定性分析穩(wěn)定系統(tǒng)的閉環(huá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平面特征根分布

運行后得到的z平面特征根分布如圖8-17所示??梢姡卣鞣匠逃袃蓚€根在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)開環(huán)傳遞函數(shù)分子系數(shù)和分母系數(shù)向量,k為給定的增益向量。若k是指定的,則按照給定的參數(shù)繪制根軌跡圖,否則k的變化范圍為0~∞。在繪制的根軌跡圖中,用“o”標(biāo)明開環(huán)傳遞函數(shù)的零點,用“×”標(biāo)明開環(huán)傳遞函數(shù)的極點。用MATLAB繪制根軌跡還可采用如下調(diào)用形式:[r,k]=rlocus(num,den),[r,k]=rlocus(num,den,k)其中,r為開環(huán)增益k時系統(tǒng)的閉環(huán)極點。使用該函數(shù)不顯示根軌跡曲線,要繪制根軌跡,則需使用plot繪圖函數(shù)?!纠?-34】若單位反饋控制系統(tǒng)的開環(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('×')運行后繪制的系統(tǒng)根軌跡曲線如圖8-18所示。

(a)直接繪制的根軌跡圖(b)返回參數(shù)后繪制的根軌跡圖圖8-18例8-34系統(tǒng)根軌跡曲線2.根軌跡分析

在MATLAB中,有兩種方法獲得根軌跡曲線上某一點的開環(huán)增益值和其他參數(shù)值。一是單擊根軌跡曲線上任意一點,即可以方框的形式顯示該點處的增益值(Gain)、極點值(Pole)、阻尼比(Damping)、超調(diào)量(Overshoot)、頻率(Frequency)等參數(shù)值。二可調(diào)用rlocfind函數(shù),即[k,ploe]=rlocfind(num,den)。運行該函數(shù)后,將在根軌跡圖形上生成一個十字光標(biāo),同時在命令窗口會出現(xiàn)Selectapointinthegraphicswindow,提示用戶選擇某一點。移動十字光標(biāo)到希望的位置并單擊,則在命令窗口會顯示該點數(shù)值、增益值及對應(yīng)于該增益值的閉環(huán)極點。【例8-35】若單位反饋控制系統(tǒng)的開環(huán)傳遞函數(shù)為利用MATLAB繪制系統(tǒng)的根軌跡曲線,并由根軌跡判定系統(tǒng)的穩(wěn)定性。

仿真程序如下:num=[1,3];den=conv([11],[120]);G=tf(num,den);rlocus(G)運行后繪制的系統(tǒng)軌跡曲線如圖8-19所示。由圖可見,對于任意的K值,根軌跡曲線均在s左半平面,系統(tǒng)都是穩(wěn)定的。分別取增益K為4和45,繪制系統(tǒng)的單位階躍響應(yīng)曲線如圖8-20所示??梢?,在K=45時,由于極點距虛軸很近,故振蕩很大。

圖8-19例8-35系統(tǒng)根軌跡

圖8-20例8-35不同K值的階躍響應(yīng)

8.2.4MATLAB用于控制系統(tǒng)的頻域分析1.頻率特性圖的繪制

頻率特性曲線有伯德圖(Bode圖)、奈奎斯特圖(Nyquist圖)、尼克爾斯圖(Nichols圖)3種表示。在MATLAB中,有專用函數(shù)可方便地實現(xiàn)這3個圖形的繪制。繪制伯德圖可用函數(shù)bode,其調(diào)用格式為bode(num,den)%繪制系統(tǒng)伯德圖,系統(tǒng)自動選取頻率范圍bode(num,den,w)%繪制系統(tǒng)伯德圖,用戶指定選取頻率范圍[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)自動選取頻率范圍nyquist(num,den,w)%用戶指定選取頻率范圍[re,im,w]=nyquist(num,den)%返回系統(tǒng)奈氏圖相應(yīng)的實部、虛部及頻率向量[re,im,w]=nyquist(num,den,w)%返回系統(tǒng)奈氏圖與指定w相應(yīng)的實部、虛部需要注意:后兩種調(diào)用格式不能直接在屏幕上產(chǎn)生奈氏圖,需要通過調(diào)用plot(re,im)函數(shù)繪制奈氏圖?!纠?-36】典型二階系統(tǒng)利用MATLAB繪制

取不同值時的伯德圖。取n=6,

=[0.1:0.1:1.0]時,繪制二階系統(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時,相角

(

)也趨于0°;當(dāng)

→∞時,

(

)→-180°;當(dāng)

=

n時,

(

)=-90°,頻率響應(yīng)的幅度最大。

圖8-21例8-36典型二階系統(tǒng)的伯德圖

【例8-37】系統(tǒng)開環(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');

運行后得奈氏特圖如圖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)

可以看出,奈奎斯特曲線按逆時針包圍(-1,j0)點一圈,而開環(huán)系統(tǒng)包含右半s平面上的一個極點。因此,閉環(huán)系統(tǒng)穩(wěn)定,由閉環(huán)系統(tǒng)單位脈沖響應(yīng)可得到證實。

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)的幅值裕度和相角裕度,以及對應(yīng)頻率?!纠?-38】系統(tǒng)開環(huán)傳遞函數(shù)為試?yán)肕ATLAB繪制系統(tǒng)開環(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)運行后得伯德圖如圖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)開環(huán)伯德圖

圖8-25例8-38帶有裕度標(biāo)記的開環(huán)伯德圖

8.2.5MATLAB用于控制系統(tǒng)的頻域法校正1.超前校正裝置的設(shè)計【例8-39】已知單位負(fù)反饋系統(tǒng)的開環(huán)傳遞函數(shù)為

使用MATLAB設(shè)計一超前校正裝置,使系統(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)%計算系統(tǒng)校正前的裕度dpm=50-pm+5; %根據(jù)性能指標(biāo)確定最大超前角φmphi=dpm*pi/180;alfa=(1+sin(phi))/(1-sin(phi)); %計算αa=-10*log10(alfa); %計算-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)%計算系統(tǒng)校正后的穩(wěn)定裕度figuremargin(G*Gc)運行后得穩(wěn)定裕度及校正前后的伯德圖如圖8-26所示。校正前的穩(wěn)定裕度為:Gm=Inf,Pm=12.7580°,校正后的穩(wěn)定裕度為:Gm1=Inf,Pm1=50.8°。可見,滿足系統(tǒng)設(shè)計要求。

(a)校正前系統(tǒng)Bode圖(b)校正后系統(tǒng)Bode圖圖8-26例8-39頻域法校正前后系統(tǒng)Bode圖

2.PI控制器的設(shè)計

PI控制器具有相位滯后特性,因此,PI控制器是一種滯后校正裝置?!纠?-40】系統(tǒng)開環(huán)傳遞函數(shù)為

使用MATLAB設(shè)計PI控制器,使系統(tǒng)在階躍信號輸入下無靜差,并具有足夠的穩(wěn)定裕度。

仿真程序如下:num=55.58;den=conv([0.0491],conv([0.0261],[0.001671]));Gk=tf(num,den);[gm,pm,wcgwcp]=margin(num,den)%計算系統(tǒng)校正前的裕度[mag,pha,w]=bode(num,den);mag_db=20*log10(mag);wc=30;Gr=spline(w,mag_db,wc); %計算校正前系統(tǒng)在穿越頻率處的幅值Kp=10^(-Gr/20); %求Kpt1=0.049; %選1與原系統(tǒng)中最大的時間相等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仿真模型的建立步驟如下。啟動Simulink,打開一個空白的模型文件編輯窗口,準(zhǔn)備建立系統(tǒng)的Simulink模型。(2)根據(jù)需要在系統(tǒng)模塊庫,如連續(xù)系統(tǒng)模塊庫(Continuous)、系統(tǒng)輸入信號模塊庫(Sources)、輸出顯示模塊庫(Sinks)等中選出需要階躍輸入模塊(step)、時間信號模塊(Clock)、加法運算模塊(Sum)、傳遞函數(shù)模塊、時滯模塊、示波器模塊(Scope)、工作空間寫入模塊(ToWorkspace)等,用鼠標(biāo)拖曳到編輯窗口中。(3)根據(jù)仿真系統(tǒng)的具體要求,用鼠標(biāo)雙擊選中的模塊,在各模塊對話框中修改模塊參數(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)前饋和動態(tài)前饋。當(dāng)Wm(s)=-Kf時,稱為靜態(tài)前饋,是前饋控制的一種特殊形式,當(dāng)干擾通道和控制通道的動態(tài)特性相同時,可達(dá)到滿意效果。當(dāng)Wm(s)=-Kf×(

1s+1)/(

2s+1)時,稱為動態(tài)前饋,在實踐中這類控制器可以達(dá)到滿意的效果。建立的前饋控制系統(tǒng)的Simulink仿真模型如圖8-30所示。在仿真系統(tǒng)中,PID控制器為時間滯后為4s。當(dāng)不加前饋環(huán)節(jié)僅有反饋控制時,系統(tǒng)階躍響應(yīng)的仿真曲線如圖

8-31(a)所示。當(dāng)Wm(s)=-Kf時,系統(tǒng)階躍響應(yīng)的仿真曲線如圖8-31中曲線(b)所示。當(dāng)Wm(s)=-Kf×(

1s+1)/(

2s+1)時,系統(tǒng)階躍響應(yīng)的仿真曲線如圖8-31中曲線(c)所示。通過三者比較可以看出,系統(tǒng)動態(tài)性能依次變好。圖8-30前饋控制系統(tǒng)的Simulink仿真模型

圖8-31系統(tǒng)階躍響應(yīng)的仿真曲線

8.4應(yīng)用實例本節(jié)結(jié)合具體的工程應(yīng)用實例說明MATLAB/Simulink軟件在控制系統(tǒng)計算機仿真和輔助設(shè)計中的應(yīng)用。8.4.1液壓位置伺服系統(tǒng)系統(tǒng)的結(jié)構(gòu)及模型建立典型的液壓位置伺服系統(tǒng)——雙電位器電液聯(lián)合控制系統(tǒng)為例,利用MATLAB/Simulink軟件對系統(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ù)各模塊特性,由按照機理建模方法建立系統(tǒng)數(shù)學(xué)模型如下:

在零初始條件下,對上式進(jìn)行拉普拉斯變換,可得各環(huán)節(jié)的傳遞函數(shù)模型如下:

2.MATLAB/Simulink仿真分析

根據(jù)液壓位置伺服系統(tǒng)的各環(huán)節(jié)傳遞函數(shù)及參數(shù),可建立系統(tǒng)的動態(tài)結(jié)構(gòu)圖如圖8-34所示。

圖8-34液壓位置伺服系統(tǒng)的動態(tài)結(jié)構(gòu)圖則系統(tǒng)開環(huán)傳遞函數(shù)Gk(s)和閉環(huán)傳遞函數(shù)Ф(s)為

利用MATLAB可方便地繪制系統(tǒng)對數(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)的對數(shù)頻率特性

在Simulink環(huán)境中建立的系統(tǒng)仿真模型如圖8-36所示。采用單位階躍信號Step輸入時,在跟蹤示

溫馨提示

  • 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

提交評論