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

下載本文檔

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

文檔簡介

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

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

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

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

8.1MATLAB仿真基礎

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

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

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

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

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

4)圖形功能強大;

5)編程效率高;

6)開放的源程序。

2.MATLAB的操作桌面

1)MATLAB啟動

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

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

4)命令歷史窗口

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

圖形窗口是獨立于主界面窗口的窗體。在圖形窗口上可以進行繪制曲線、顯示文本、填充顏色等操作。可用figure命令建立一個新的圖形窗口,也可以用繪圖語句(如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的編程基礎

1.MATLAB語言的變量

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

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

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

1)賦值語句

賦值語句的格式為:

變量名列表=表達式

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

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

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

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

式中,等號左邊的變量名列表為MATLAB語句的返回值,若一次返回多個結(jié)果,則變量名列表用“[]”括起來,各變量間用逗號分隔;等號右邊為表達式,可以是矩陣運算或函數(shù)調(diào)用,且由分號(;)、逗號(,)或回車結(jié)束。如果用分號結(jié)束,則左邊的變量結(jié)果將在屏幕上不顯示,否則將顯示左側(cè)變量的值。變量賦值語句有3種形式:函數(shù)名稱可以是任意有效函數(shù),如MATLAB內(nèi)部函數(shù),如sin(),atan(),inv()等;MATLAB外部函數(shù),如step()、ginput()等;用戶自定義函數(shù),如mysystem()等。輸入變量必須預先賦值,如只有一個返回變量,省略矩陣標識符“[]”。如不設返回變量,根據(jù)函數(shù)的不同,以立即方式執(zhí)行該函數(shù),執(zhí)行結(jié)果賦值于當前公共變量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)建矩陣時,應當注意如下幾點:

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

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

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

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

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

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

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

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

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

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

MATLAB提供了符號表達式的化簡類函數(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為符號表達式組成的代數(shù)方程組,var1,var2,...,varN為指定自變量。8.1.4MATLAB語言的圖形功能二維圖形的繪制1)基本繪圖形式

MATLAB繪制二維圖形的函數(shù)為plot函數(shù)。基本調(diào)用格式為:plot(x,y)其中,x和y為長度相同的向量,分別用于存儲x坐標和y坐標數(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藍;w白;k黑;m紫;c青繪制多重曲線還可以利用hold命令。在已經(jīng)畫好的圖形上,若設置holdon,MATLAB將把新的plot命令產(chǎn)生的圖形畫在原來的圖形上,可利用holdoff命令結(jié)束多重曲線繪制。標注線型和顏色的屬性參數(shù)時應注意:屬性的符號必須放在同一個字符串中;可以指定兩個以上的屬性,但同一種屬性不能有兩個以上;屬性的先后順序無關(guān)。4)圖形的標注MATLAB提供了一系列方便的圖形標注函數(shù),這些函數(shù)包括:title圖形標題xlabelx軸標識ylabely軸標識zlabelz軸標識text任意位置加注文本gtext鼠標定位加注文本legend標注圖例圖形標注使用的文字可以是字母和數(shù)字,MATLAB6.1可以使用漢字,也可以按照規(guī)定的方法表示希臘字母、數(shù)學符號和變形體,例如:\pi表示π,\led表示≤,\it表示斜體字等。

5)坐標軸的控制

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

調(diào)用格式為:subplot(m,n,p)將圖形窗口分成m×n個子窗口,p代表當前的子窗口號,子窗口的排列順序為左上角開始按行排列。2.三維圖形的繪制MATLAB提供了大量三維圖形的表現(xiàn)函數(shù),利用這些函數(shù)可以繪制三維曲線圖、網(wǎng)格圖、表面圖、等高線圖等三維圖形。1)三維曲線圖

函數(shù)plot3用于繪制三維曲線圖。2)網(wǎng)格圖

函數(shù)mesh用于繪制三維基本網(wǎng)格圖,即不著色的表面圖。

3)等高線圖函數(shù)contour用于繪制曲面的等高線圖。

8.1.5MATLAB程序設計M文件

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

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

函數(shù)文件:以function語句為引導的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ù)名應盡可能與M文件同名。

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

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

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

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

1)循環(huán)語句

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

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

1)Simulink啟動

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

Simulink提供了9類功能模塊庫和許多專業(yè)模塊子集。連續(xù)系統(tǒng)模塊庫、系統(tǒng)輸入源模塊庫及輸出顯示模塊庫的介紹。連續(xù)系統(tǒng)模塊庫(continuous)包括:Integrator:積分器模塊,輸出對輸入的時間積分。Derivative:微分器模塊,輸出對輸入的時間微分。State-Space:狀態(tài)空間表達式模塊,實現(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:時間信號模塊,顯示并輸出當前的仿真時間。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:仿真終止模塊,當輸入不為零時停止仿真。

3)功能模塊的基本操作

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

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

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

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

方法:選中“Input”復選框,再在后面的編輯框內(nèi)輸入數(shù)據(jù)的變量名。Simulink根據(jù)輸入端口參數(shù)中設置的采樣時間讀取輸入數(shù)據(jù)。Savetoworkspace:將輸出數(shù)據(jù)保存到工作空間??梢赃x擇保存到工作空間的選項有:Time(時間)、States(狀態(tài))、Output(端口輸出)和Finalstate(最終狀態(tài))。方法:選中各選項前面的復選框,再在選項后面的編輯框內(nèi)輸入變量名,則將相應的數(shù)據(jù)保存到指定的變量中。常用的輸出模塊為Out1模塊和ToWorkspace模塊。Saveoptions:保存選項。在Saveoptions區(qū)域內(nèi),F(xiàn)ormat選項與保存數(shù)據(jù)的形式有關(guān),可以根據(jù)需要進行選擇,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ù)為可選,option用于設置初始條件、步長與容許誤差等值,ut為外部輸入信號。8.2MATLAB在控制系統(tǒng)仿真中的應用

8.2.1MATLAB用于控制系統(tǒng)的建??刂葡到y(tǒng)常用的數(shù)學模型表示有微分方程、傳遞函數(shù)、動態(tài)結(jié)構(gòu)圖、狀態(tài)空間方程等。系統(tǒng)數(shù)學模型有連續(xù)和離散之分,它們各有特點,有時需在各種模型之間進行轉(zhuǎn)換。利用MATLAB可對它們進行適當?shù)奶幚怼?.Laplace變換和Z變換采用laplace和ilaplace函數(shù)進行Laplace變換與Laplace反變換,采用ztrans和iztrans函數(shù)進行Z變換與Z反變換。【例8-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為指定自變量?!纠?-24】求解微分方程的通解和當時的特解。

>>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)的微分方程進行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)的差分方程進行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ù)學模型雖然外在形式不同,但它們的實質(zhì)內(nèi)容是等價的。在進行系統(tǒng)分析時,往往需要根據(jù)不同的要求選擇不同形式的系統(tǒng)數(shù)學模型。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進行采樣時間變化的轉(zhuǎn)換。

sysd=c2d(sysc,Ts,method)其中,method表示轉(zhuǎn)換方法,可選擇的方法有零階保持法(zoh),一階保持法(foh),雙線性變換法(tustin)等,默認為zoh方法。sysc為原連續(xù)系統(tǒng),Ts是采樣時間,sysd為轉(zhuǎn)換后的離散系統(tǒng)。

sysc=d2c(sysd,method)其中,method轉(zhuǎn)換方法有zoh、foh、tustin等,默認為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)當采用負反調(diào)時,sign=-1且可缺?。划敳捎谜答仌r,sign=1。8.2.2MATLAB用于控制系統(tǒng)的時域分析

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

若給定連續(xù)系統(tǒng)的傳遞函數(shù),則利用MATLAB可以方便地進行系統(tǒng)的單位脈沖響應、單位階躍響應及任意輸入響應等時域分析。在MATLAB中,求取連續(xù)系統(tǒng)時域響應的函數(shù)主要有單位階躍響應函數(shù)step、單位脈沖響應函數(shù)impulse、任意輸入響應函數(shù)lsim。

1)系統(tǒng)輸出響應【例8-28】單位負反饋系統(tǒng)的開環(huán)傳遞函數(shù)為

試用MATLAB做出系統(tǒng)單位階躍響應,并求系統(tǒng)動態(tài)性能指標。仿真程序如下:G_k=tf(10,[210]);G_0=feedback(G_k,1);step(G_0)title('stepresponse')運行后得到的系統(tǒng)單位階躍響應曲線。系統(tǒng)動態(tài)性能指標可通過在圖形窗口點擊右鍵,在Characteristics下的子菜單中選擇PeakResponse(峰值)、SettlingTime(調(diào)整時間)、RiseTime(上升時間)和SteadyState(穩(wěn)態(tài)值)等參數(shù)進行顯示,如圖8-13所示。

圖8-13【例8-28】顯示參數(shù)的系統(tǒng)響應曲線

【例8-29】典型二階系統(tǒng)閉環(huán)傳遞函數(shù)為其中,

n為無阻尼振蕩頻率,

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

n=6,

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

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

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

可通過對系統(tǒ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】單位負反饋系統(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)階躍響應ess=1-dcgain(G_0) %獲得穩(wěn)態(tài)誤差運行后得到的單位階躍響應如圖8-15所示,穩(wěn)態(tài)誤差的計算結(jié)果為ess=0.0909可見,利用MATLAB程序計算的結(jié)果和理論分析是一致的。圖8-15例8-31系統(tǒng)單位階躍響應及穩(wěn)態(tài)誤差

2.離散系統(tǒng)的輸出響應及性能分析

在MATLAB中,求取離散系統(tǒng)的輸出響應函數(shù)有單位階躍響應函數(shù)dstep、單位脈沖響應函數(shù)dimpulse、任意輸入響應函數(shù)dlsim。離散系統(tǒng)也可采用filter函數(shù)求輸出響應,其調(diào)用格式為

y=filter(num,den,r)其中,r表示輸入信號。1)系統(tǒng)輸出響應【例8-32】系統(tǒng)的脈沖傳遞函數(shù)為

試用MATLAB求系統(tǒng)的離散單位階躍響應。仿真程序如下:num=[0.36780.2644];den=[1-10.6322];dstep(num,den)運行后得到的輸出響應曲線如圖8-16所示。圖8-16離散單位階躍響應曲線

2)系統(tǒng)穩(wěn)定性分析穩(wěn)定系統(tǒng)的閉環(huán)極點必位于z平面單位圓內(nèi)。

【例8-33】離散控制系統(tǒng)的特征方程為試利用MATLAB判斷系統(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”標明開環(huán)傳遞函數(shù)的零點,用“×”標明開環(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ù)后,將在根軌跡圖形上生成一個十字光標,同時在命令窗口會出現(xiàn)Selectapointinthegraphicswindow,提示用戶選擇某一點。移動十字光標到希望的位置并單擊,則在命令窗口會顯示該點數(shù)值、增益值及對應于該增益值的閉環(huán)極點?!纠?-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)的單位階躍響應曲線如圖8-20所示??梢?,在K=45時,由于極點距虛軸很近,故振蕩很大。

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

圖8-20例8-35不同K值的階躍響應

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)伯德圖相應的幅值、相位及頻率向量[mag,phase]=bode(num,den,w)%返回系統(tǒng)伯德圖與指定w相應的幅值、相位需要注意:后兩種調(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)奈氏圖相應的實部、虛部及頻率向量[re,im,w]=nyquist(num,den,w)%返回系統(tǒng)奈氏圖與指定w相應的實部、虛部需要注意:后兩種調(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所示??梢钥闯觯?/p>

→0時,相角

(

)也趨于0°;當

→∞時,

(

)→-180°;當

=

n時,

(

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

圖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)的單位脈沖響應。仿真程序如下: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)單位脈沖響應如圖8-23所示。圖8-22例8-37系統(tǒng)的奈氏圖

圖8-23例8-37閉環(huán)系統(tǒng)單位脈沖響應

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

2.求相角裕度和幅值裕度在MATLAB中,應用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)該格式可以生成帶有裕度標記的伯德圖,并且在曲線上方給出相應的幅值裕度和相角裕度,以及對應頻率?!纠?-38】系統(tǒng)開環(huán)傳遞函數(shù)為試利用MATLAB繪制系統(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),則可生成帶有裕度標記的伯德圖如圖8-25所示。圖8-24例8-38系統(tǒng)開環(huán)伯德圖

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

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

使用MATLAB設計一超前校正裝置,使系統(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ù)性能指標確定最大超前角φ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°??梢姡瑵M足系統(tǒng)設計要求。

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

2.PI控制器的設計

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

使用MATLAB設計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)仿真中的應用

8.3.1控制系統(tǒng)的Simulink模型的建立常規(guī)PID控制系統(tǒng)的結(jié)構(gòu)如圖8-28所示,它的Simulink仿真模型的建立步驟如下。啟動Simulink,打開一個空白的模型文件編輯窗口,準備建立系統(tǒng)的Simulink模型。(2)根據(jù)需要在系統(tǒng)模塊庫,如連續(xù)系統(tǒng)模塊庫(Continuous)、系統(tǒng)輸入信號模塊庫(Sources)、輸出顯示模塊庫(Sinks)等中選出需要階躍輸入模塊(step)、時間信號模塊(Clock)、加法運算模塊(Sum)、傳遞函數(shù)模塊、時滯模塊、示波器模塊(Scope)、工作空間寫入模塊(ToWorkspace)等,用鼠標拖曳到編輯窗口中。(3)根據(jù)仿真系統(tǒng)的具體要求,用鼠標雙擊選中的模塊,在各模塊對話框中修改模塊參數(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仿真

采用前饋復合控制方法可以提高控制系統(tǒng)的抗干擾能力及控制質(zhì)量。

前饋控制系統(tǒng)的控制形式包括靜態(tài)前饋和動態(tài)前饋。當Wm(s)=-Kf時,稱為靜態(tài)前饋,是前饋控制的一種特殊形式,當干擾通道和控制通道的動態(tài)特性相同時,可達到滿意效果。當Wm(s)=-Kf×(

1s+1)/(

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

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

1s+1)/(

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

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

8.4應用實例本節(jié)結(jié)合具體的工程應用實例說明MATLAB/Simulink軟件在控制系統(tǒng)計算機仿真和輔助設計中的應用。8.4.1液壓位置伺服系統(tǒng)系統(tǒng)的結(jié)構(gòu)及模型建立典型的液壓位置伺服系統(tǒng)——雙電位器電液聯(lián)合控制系統(tǒng)為例,利用MATLAB/Simulink軟件對系統(tǒng)進行仿真分析。

液壓位置伺服系統(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ù)學模型如下:

在零初始條件下,對上式進行拉普拉斯變換,可得各環(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)指標為幅值裕度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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論