工學自動控制原理matlab控制系統(tǒng)仿真課件_第1頁
工學自動控制原理matlab控制系統(tǒng)仿真課件_第2頁
工學自動控制原理matlab控制系統(tǒng)仿真課件_第3頁
工學自動控制原理matlab控制系統(tǒng)仿真課件_第4頁
工學自動控制原理matlab控制系統(tǒng)仿真課件_第5頁
已閱讀5頁,還剩211頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

自動控制原理

與Matlab自動控制原理

與Matlab1Matlab軟件工具

在控制系統(tǒng)分析和綜合中的應用Matlab基本特點控制系統(tǒng)在Matlab中的描述進行部分分式展開控制系統(tǒng)的時間響應分析控制系統(tǒng)的頻域響應分析控制系統(tǒng)的根軌跡圖系統(tǒng)穩(wěn)定性分析Simulink仿真工具Matlab軟件工具

在控制系統(tǒng)分析和綜合中的應用Matla21、matlab基本特點Matlab簡介:1980年前后,美國moler博士構思并開發(fā);最初的matlab版本是用fortran語言編寫,現(xiàn)在的版本用c語言改寫;1992年推出了具有劃時代意義的matlab4.0版本;并于1993年推出了其windows平臺下的微機版,現(xiàn)在比較新的版本是6.5版1、matlab基本特點3Matlab語言特點:Matlab以復數(shù)矩陣為最基本的運算單元,既可以對它整體地進行處理,也可以對它的某個或某些元素進行單獨地處理。在matlab中,數(shù)據(jù)的存儲/輸入/輸出都是以矩陣為基礎的,矩陣和其它變量不需要預先定義。matlab語言最基本的賦值語句結構為變量名列表=表達式變量名為matlab語句的返回值;等號右邊是表達式的定義,它可以是矩陣,也可是函數(shù)調用Matlab語言特點:Matlab以復數(shù)矩陣為最基本的運算單4等號右邊的表達式可以由分號結束,也可以由逗號或換行結束,但它們的含義是不同的。如果用分號結束,則左邊的變量結果將不在屏幕上顯示出來,否則將把左邊返回矩陣的內容全部顯示出來。如?A=[1,0,1;1,0,0;2,1,0];?B=[1,0,2;2,1,1;1,0,1]B=102211101等號右邊的表達式可以由分號結束,也可以由逗號或換行結束,但它5在matlab下,矩陣A和矩陣B的乘積(假定其中A,B矩陣是可乘的)可以簡單地由運算C=A*B求出?C=A*BC=203102415在matlab下,矩陣A和矩陣B的乘積(假定6而D=A.*B稱點乘積運算,即表示A和B矩陣的相應元素之間直接進行乘法運算,然后將結果賦給D矩陣,點乘積運算要求A和B矩陣的維數(shù)相同。?D=A.*BD=102200200而D=A.*B稱點乘積運算,即表示A和B矩陣的相應7在MATLAB中多項式由行向量組成,這些行向量包含了降次排列的多項式系數(shù)。例如多項式p(s)=1s3+3s2+0s1+4s0輸入>>p=[1304];>>r=roots(p)r=-3.3553e+001.7765e-01+1.0773e+00j1.7765e-01-1.0773e+00j>>p=poly(r)p=1.0003.0000.000-0.000j4.000+0.000j輸入多項式并求根在MATLAB中多項式由行向量組成,這些行向量包含8

Matlab下提供了兩種文件格式:m文件,matlab函數(shù)M文件是普通的ascii碼構成的文件,在這樣的文件中只有由matlab語言所支持的語句,類似于doc下的批處理文件,它的執(zhí)行方式很簡單,用戶只需在matlab的提示符>>下鍵入該m文件的文件名,這樣matlab就會自動執(zhí)行該m文件中的各條語句。它采用文本方式,編程效率高,可讀性很強。Matlab下提供了兩種文件格式:m文件,matla9Matlab函數(shù)是最常用的特殊m文件,該函數(shù)是由function語句引導,其基本格式如下

Function返回變量列表=函數(shù)名(輸入量列表)注釋說明語句段

函數(shù)體語句調用時在matlab的提示符下鍵入函數(shù)名,并包括輸入變量。類似于c語言的子程序調用。如Functionplot_sin(xmin,xmax)X=xmin:min(0.01,(xmax-xmin)/100):xmax;Plot(x,sin(x));%ThisisademoMatlab函數(shù)是最常用的特殊m文件,該函數(shù)是由functi10要分析系統(tǒng),首先需要能夠描述這個系統(tǒng)。在線性系統(tǒng)理論中,一般常用的數(shù)學模型形式有:傳遞函數(shù)模型(系統(tǒng)的外部模型);狀態(tài)方程模型(系統(tǒng)的內部模型);零極點增益模型和部分分式模型等。這些模型之間都有著內在的聯(lián)系,可以相互進行轉換。2、控制系統(tǒng)在matlab中的描述要分析系統(tǒng),首先需要能夠描述這個系統(tǒng)。在線性系11一、傳遞函數(shù)模型對線性定常系統(tǒng),式中s的系數(shù)均為常數(shù),且a1不等于零,這時系統(tǒng)在MATLAB中可以方便地由分子和分母系數(shù)構成的兩個向量唯一地確定出來,這兩個向量分別用num和den表示。 分子:num=[b1,b2,…,bm,bm+1]

分母:den=[a1,a2,…,an,an+1]

注意:它們都是按s的降冪進行排列的。一、傳遞函數(shù)模型12在MATLAB中零極點增益模型用[z,p,K]矢量組表示。即:z=[z1,z2,…,zm]p=[p1,p2,...,pn]K=[k]函數(shù)tf2zp()可以用來求傳遞函數(shù)的零極點和增益。二、零極點增益模型K為系統(tǒng)增益,zi為零點,pj為極點在MATLAB中零極點增益模型用[z,p,K]矢量組表示。即13利用下面的語句就可以表示這個系統(tǒng):

傳遞函數(shù)的形式sys=tf(num,den)其中tf()代表傳遞函數(shù)的形式描述系統(tǒng),

零極點形式sys1=zpk(sys)

傳遞函數(shù)形式和零極點形式之間可以相互轉化,語句為 [z,p,k]=tf2zp(num,den)[num,den]=zp2tf(z,p,k)當傳遞函數(shù)復雜時,應用多項式乘法函數(shù)conv()等實現(xiàn)。利用下面的語句就可以表示這個系統(tǒng):14舉例:傳遞函數(shù)描述

1)》num=[12,24,0,20];den=[24622];2)借助多項式乘法函數(shù)conv(卷積)來處理:》num=4*conv([1,2],conv([1,6,6],[1,6,6]));》den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3,2,5]))));舉例:傳遞函數(shù)描述15》num=[1,11,30,0];》den=[1,9,45,87,50];[z,p,k]=tf2zp(num,den)》z=0-6-5p=-3.0000+4.0000i-3.0000-4.0000i-2.0000-1.0000k=1零極點增益模型:》num=[1,11,30,0];z=p=k=零極點增益模型16》s=zpk(z,p,k,-1)Zero/pole/gain:1

z(z+6)(z+5)1

(z+2)(z+1)(z^2+6z+25)輸入命令:》s=zpk(z,p,k,-1)Zero/pole/gai17控制系統(tǒng)常用到并聯(lián)系統(tǒng),這時就要對系統(tǒng)函數(shù)進行分解,使其表現(xiàn)為一些基本控制單元和的形式。函數(shù)[r,p,k]=residue(num,den)對兩個多項式的比進行部分展開,以及把傳函分解為微分單元的形式。向量num和den是按s的降冪排列的多項式系數(shù)。部分分式展開后,留數(shù)返回到向量r,極點返回到列向量p,常數(shù)項返回到k。[num,den]=residue(r,p,k)可以將部分分式轉化為多項式比三、部分分式展開控制系統(tǒng)常用到并聯(lián)系統(tǒng),這時就要對系統(tǒng)函數(shù)進行分解,使其表現(xiàn)18num和den分別表示傳遞函數(shù)的分子和分母的系數(shù),即

num=[bo,bl,…,bn]den=[1,al.…,an]命令[r,p,k]=residue(num,den)將求出傳遞函數(shù)的部分分式展開式中的留數(shù)、極點和余項,即得到

num和den分別表示傳遞函數(shù)的分子和分母的系數(shù),即19例:對于下列系統(tǒng)傳遞函數(shù)輸入命令

>>

num=[0,1,3];

>>

den=[1,3,2];

>>[r,p,k]=residue(num,den)

r=2.0000-1.0000p=-1.0000-2.0000k=[]即得到例:對于下列系統(tǒng)傳遞函數(shù)輸入命令r=2.0000即得到20反之,利用下列命令

[num,den]=residue(r,p,k)可以將部分分式展開式返回到傳遞函數(shù)多項式之比的形式,

即得到num=0.00001.00003.0000den=1.00003.00002.0000

>>

[num,den]=residue(r,p,k)反之,利用下列命令>>[num,den]=residue21當包含m重極點時,部分分式展開式將包括下列m項:例對于下列系統(tǒng)傳遞函數(shù)輸入命令

>>

num=[0,1,2,3];

>>

den=[1,3,3,1];

>>

[r,p,k]=residue(num,den)當包含m重極點時,部分分式展開式將包括下列m項:例對于下22r=1.00000.00002.0000p=-1.0000-1.0000-l.0000k=[]即r=233、結構圖模型串聯(lián)一個開環(huán)控制系統(tǒng)可以通過G1

(s)與G2

(s)兩個環(huán)節(jié)的串聯(lián)而得到,利用series()函數(shù)可以求串聯(lián)連接的傳遞函數(shù),函數(shù)的具體形式為:

[num,den]=series(num1,den1,num2,den2)并聯(lián)當系統(tǒng)是以并聯(lián)的形式連接時,利用parallel()函數(shù)可得到系統(tǒng)的傳遞函數(shù)。指令的具體形式為:%將并聯(lián)連接的傳遞函數(shù)進行相加。[num,den]=parallel(num1,den1,num2,den2)3、結構圖模型串聯(lián)[num,den]=parallel(24串聯(lián)函數(shù)的用法如下:>>num1=[11];den2=[12];>>num2=[1];den1=[50000];

>>[num,den]=series(num1,den1,num2,den2);>>printsys(num,den)num/den=(

s+1

)

500s^3+1000s^2series函數(shù)的用法例如G1(s)和G2(s)串聯(lián)連接的傳遞函數(shù)分別為:串聯(lián)函數(shù)的用法如下:>>num1=[11];den2=[125反饋

系統(tǒng)以反饋方式構成閉環(huán),則系統(tǒng)的閉環(huán)傳遞函數(shù)為:求閉環(huán)傳遞函數(shù)的MATLAB函數(shù)有兩個:cloop()和feedback()其中cloop()函數(shù)只能用于H

(s)=1(即單位反饋)的情況。

cloop()函數(shù)的具體用法為:[num,den]=cloop(numg,deng,sign)其中numg和deng分別為G

(s)的分子和分母多項式,sign=1為正反饋,sign=-1為負反饋(默認值)。

feedback()函數(shù)的用法為:[num,den]=feedback(numg,deng,numh,denh,sign)

其中numh為H(s)的分子多項式,denh為分母多項式。反饋求閉環(huán)傳遞函數(shù)的MATLAB函數(shù)有兩個:cloop(26閉環(huán)反饋系統(tǒng)的結構圖如圖2-70所示,被控對象G(s)和控制部分Gc(s)以及測量環(huán)節(jié)H

(s)的傳遞函數(shù)分別為:圖2-70閉環(huán)反饋系統(tǒng)的結構圖閉環(huán)反饋系統(tǒng)的結構圖如圖2-70所示,被控對象G(s)和控制27應用series()函數(shù)和feedback()函數(shù)求閉環(huán)傳遞函數(shù)的MATLAB指令如圖2-71所示:

>>numg=[1];deng=[500];>>numc=[11];denc=[12];>>numh=[1];denh=[110];>>[num1,den1]=series(numc,denc,numg,deng);>>[num,den]=feedback(num1,den1,numh,denh,-1);>>printsys(num,den)num/den=

s^2+11s+10)

5s^4+60s^3+100s^2+s+1圖2-71feedback()函數(shù)的應用應用series()函數(shù)和feedback()函數(shù)求28練習編程實現(xiàn)傳遞函數(shù)模型、零極點模型及部分方式模型練習編程實現(xiàn)傳遞函數(shù)模型、零極點模型及部分方式模型294、線性系統(tǒng)的時間響應分析Matlab的Control工具箱提供了很多線性系統(tǒng)在特定輸入下仿真的函數(shù),例如連續(xù)時間系統(tǒng)在階躍輸入激勵下的仿真函數(shù)step(),脈沖激勵下的仿真函數(shù)impulse()及任意輸入激勵下的仿真函數(shù)lsim()等求取系統(tǒng)單位階躍響應:step()求取系統(tǒng)的沖激響應:impulse()求取系統(tǒng)任意激勵響應:lsim()4、線性系統(tǒng)的時間響應分析Matlab的Control工具箱30如果用戶對具體的響應數(shù)值不感興趣,而只想繪制出系統(tǒng)的階躍響應曲線,則可以由如下的格式調用step(sys,t)或step(sys)step()函數(shù)的用法y=step(sys,t):其中sys可以由tf()或zpk()函數(shù)得到,

t為選定的仿真時間向量,一般可以由t=0:step:end等步長地產生出來。此函數(shù)只返回仿真數(shù)據(jù)而不在屏幕上畫仿真圖形,返回值y為系統(tǒng)在仿真時刻各個輸出所組成的矩陣。y=step(num,den,t)[y,x,t]=step(sys):此時時間向量t由系統(tǒng)模型的特性自動生成,

狀態(tài)變量x返回為空矩陣。如果用戶對具體的響應數(shù)值不感興趣,而只想繪制出系統(tǒng)的階躍響應31任意輸入下的仿真函數(shù)lsim()的調用格式稍有不同,因為在此函數(shù)的調用時還應該給出一個輸入表向量,該函數(shù)的調用格式為[y,x]=lsim(sys,u,t)impulse()函數(shù)的用法求取脈沖激勵響應的調用方法與step()函數(shù)基本一致。y=impulse(num,den,t);y=impulse(sys,t)[y,x,t]=impulse(num,den);impulse(num,den);impulse(num,den,t)任意輸入下的仿真函數(shù)lsim()的調用格式稍有不同,因為在此32[y,x]=lsim(sys,u,t)式中,u為給定輸入構成的列向量,它的元素個數(shù)應該和t的個數(shù)是一致的。當然該函數(shù)若調用時不返回參數(shù),也可以直接繪制出響應曲線圖形。例如

sys=tf(num,den)t=0:0.01:5;u=sin(t);lsim(sys,u,t)為單輸入模型sys對u(t)=sin(t)在5秒之內的輸入響應仿真。任意輸入下的仿真函數(shù)lsim()[y,x]=lsim(sys,u,t)任意輸入下的仿真函數(shù)l33對于典型二階系統(tǒng)根據(jù)其響應時間的估算公式可以確定。對于高階系統(tǒng)往往其響應時間很難估計,一般采用試探的方法,把t選大一些,看看響應曲線的結果,最后再確定其合適的仿真時間。一般來說,先不指定仿真時間,由Matlab自己確定,然后根據(jù)結果,最后確定合適的仿真時間。在指定仿真時間時,步長的不同會影響到輸出曲線的光滑程度,一般不易取太大。仿真時間t的選擇對于典型二階系統(tǒng)根據(jù)其響應時間的估算公式34MATLAB還提供了離散時間系統(tǒng)的仿真函數(shù),包括階躍響應函數(shù)dstep(),脈沖響應函數(shù)dimpulse()和任意輸入響應函數(shù)dlsim()等,它們的調用方式和連續(xù)系統(tǒng)的不完全一致,讀者可以參閱MATLAB的幫助,如在MATLAB的提示符>>下鍵入helpdstep來了解它們的調用方式

離散時間系統(tǒng)的仿真函數(shù)MATLAB還提供了離散時間系統(tǒng)的仿真函數(shù),包括階躍響應函數(shù)35step-階躍響應impulse-脈沖響應lsim-對指定輸入的連續(xù)輸出gensig-對LSIM產生輸入信號stepfun-產生單位階躍輸入時域分析常用函數(shù)如下:step-階躍響應時域分析常用函數(shù)如下:36格式:

[u,t]=gensig(type,tau)功能:按指定類型type和周期tau生成特定類型的激勵信號。Type可取為:‘sin’、’square’、’pulse’例:產生一個周期為4秒的方波(

持續(xù)時間10秒,采樣周期0.1秒)

gensig-對LSIM產生輸入信號[u,t]=gensig('square',4,10,0.1);格式:gensig-對LSIM產生輸入信號[u,t]=37stepfun-產生單位階躍輸入例產生一階躍信號命令:>>t=0:1:10;>>to=1;>>y=stepfun(t,to)結果y=01111111111stepfun-產生單位階躍輸入例產生一階躍信號命38MATLAB程序:[u,t]=gensig(‘square’,6,12,0.1);plot(t,u,’r-.’);holdon;sys=tf([1,1],[1,2,5]);lsim(sys,u,t);求系統(tǒng)方波響應MATLAB程序:[u,t]=gensig(‘square’39例對于下列系統(tǒng)傳遞函數(shù)下列MATLABPrograml1.1將給出該系統(tǒng)的單位階躍響應曲線。該單位階躍響應曲線如圖1所示。----MATLABPrograml1.1----num=[0,0,50];den=[25,2,1];step(num,den)gridtitle('Unit-StepResponseofG(s)=50/(25s^2+2s+1)')例對于下列系統(tǒng)傳遞函數(shù)----MATLABProgra40[工學]自動控制原理matlab控制系統(tǒng)仿真課件41狀態(tài)方程與輸出方程的組合稱為狀態(tài)空間表達式,又稱為動態(tài)方程,經典控制理論用傳遞函數(shù)將輸入—輸出關系表達出來,而現(xiàn)代控制理論則用狀態(tài)方程和輸出方程來表達輸入—輸出關系,揭示了系統(tǒng)內部狀態(tài)對系統(tǒng)性能的影響。狀態(tài)空間描述在MATLAB中,系統(tǒng)狀態(tài)空間用(A,B,C,D)矩陣組表示。狀態(tài)方程與輸出方程的組合稱為狀態(tài)空間表達式,又稱為動態(tài)方程,42例考慮下列系統(tǒng)

試求該系統(tǒng)的單位階躍響應曲線。

雖然用MATLAB求該系統(tǒng)的單位階躍響應曲線時,不需要求它的傳遞函數(shù)表達式,這里導出這種表達式,以便作為參考。

例考慮下列系統(tǒng)

試求該系統(tǒng)的單位階躍響應曲43

對于給定的系統(tǒng),傳遞矩陣G(s)為對于給定的系統(tǒng),傳遞矩陣G(s)為44該系統(tǒng)包含兩個輸入量和兩個輸出量,根據(jù)考慮不同的輸入信號和輸出信號,可以定義4個傳遞函數(shù)。當考慮信號u1為輸入量時,我們假設u2為零,反之亦然。這4個傳遞函數(shù)為該系統(tǒng)包含兩個輸入量和兩個輸出量,根據(jù)考慮不同的輸入45利用下列命令:step(A,B,C,D)

可以畫出4個單獨的階躍響應曲線,程序如下:A=[-1-1;6.50];B=[11;10];

C=[10;01];D=[00;00];

step(A,B,C,D)利用下列命令:step(A,B,C,D)

可以畫出4個單46

47例對于下列系統(tǒng)傳遞函數(shù)下列MATLABPrograml1.2將給出該系統(tǒng)的單位脈沖響應曲線。該單位脈沖響應曲線如圖2所示。----MATLABPrograml1.2----num=[0,0,50];den=[25,2,1];impulse(num,den)gridtitle('Unit-ImpulseResponseofG(s)=50/(25s^2+2s+1)')例對于下列系統(tǒng)傳遞函數(shù)----MATLABProgra48[工學]自動控制原理matlab控制系統(tǒng)仿真課件49

在MATLAB中沒有斜坡響應命令,可利用階躍響應命令求斜坡響應,先用s除G(s),再利用階躍響應命令。例如,考慮下列閉環(huán)系統(tǒng):對于單位斜坡輸人量在MATLAB中沒有斜坡響應命令,可利用階躍響應50----MATLABPrograml1.3----num=[0,0,0,50];den=[25,2,1,0];t=0:0.01:100;step(num,den,t)gridtitle('Unit-SteprampResponseofG(s)=50/(25s^2+2s+1)')下列MATLABPrograml1.3給出該系統(tǒng)單位斜坡響應曲線。該單位斜坡響應曲線如圖3所示。----MATLABPrograml1.3----下列MA51[工學]自動控制原理matlab控制系統(tǒng)仿真課件525、控制系統(tǒng)的頻域響應分析已知該系統(tǒng)的頻率響應為如果有一個頻率向量w,命令格式:Gw=polyval(num,sqrt(-1)*w)./polyval(den,sqrt(-1)*w);其中num和den分別為系統(tǒng)的分子分母多項式系數(shù)向量。5、控制系統(tǒng)的頻域響應分析已知該系統(tǒng)的頻率響應為53頻域分析的一般方法頻率特性是指系統(tǒng)在正弦信號作用下,穩(wěn)態(tài)輸出與輸入之比對頻率的關系特性。頻率特性函數(shù)與傳遞函數(shù)有直接的關系,記為:頻域分析法是應用頻率特性研究控制系統(tǒng)的一種典型方法。通常將頻率特性用曲線的形式進行表示,包括對數(shù)頻率特性曲線和幅相頻率特性曲線簡稱幅相曲線,MATLAB提供了繪制這兩種曲線的函數(shù)。求取系統(tǒng)對數(shù)頻率特性圖(波特圖):bode()求取系統(tǒng)奈奎斯特圖(幅相曲線圖或極坐標圖):nyquist()頻域分析的一般方法頻率特性是指系統(tǒng)在正弦信號作用下,穩(wěn)態(tài)輸出54對數(shù)頻率特性圖(波特圖)繪制:bode()bode()函數(shù)的調用格式為:[m,p,w]=bode(num,den,w)這里,num,den和前面的敘述一樣,w為頻率點構成的向量,該向量最好由logspace()函數(shù)構成。m,p,w分別代表Bode響應的幅值向量、相位向量和角頻率。相角以度為單位,幅值可轉換為分貝單位,格式為:magdb=20*log(mag)

對數(shù)頻率特性圖(波特圖)繪制:bode()bode()函55如果用戶只想繪制出系統(tǒng)的Bode圖,而對獲得幅值和相位的具體數(shù)值并不感興趣,則可以由以下更簡潔的格式調用bode()函數(shù)bode(num,den,w)或更簡潔地bode(num,den)這時該函數(shù)會自動地根據(jù)模型的變化情況選擇一個比較合適的頻率范圍。對數(shù)頻率特性圖(波特圖)繪制:bode()如果用戶只想繪制出系統(tǒng)的Bode圖,而對獲得幅值和相位的具體56logspace()函數(shù)格式:logspace(a,b,n)

在(10a~10b)之間產生n個對數(shù)行向量;當沒有n時,產生50個對數(shù)行向量。例:logspace(0,2,5)ans=1.00003.162310.000031.6228100.0000logspace()函數(shù)57調用格式為:nyquist(num,den):可繪制出以連續(xù)時間多項式傳遞函數(shù)表示的系統(tǒng)的極坐標圖。nyquist(num,den,w):可利用指定的角頻率矢量繪制出系統(tǒng)的極坐標圖。當不帶返回參數(shù)時,直接在屏幕上繪制出系統(tǒng)的極坐標圖(圖上用箭頭表示w的變化方向,負無窮到正無窮)。[re,im,w]=nyquist(num,den,w)返回實部re和虛部im及角頻率點w矢量(為正的部分)。然后用plot(re,im)繪制出對應w從負無窮到零變化的部分。Nyquist曲線繪制:nyquist()函數(shù)調用格式為:Nyquist曲線繪制:nyquist()函數(shù)58bode-頻率響應伯德圖nyquist-頻率響應乃奎斯特圖nichols-頻率響應尼柯爾斯圖freqresp-求取頻率響應數(shù)據(jù)margin-幅值裕量與相位裕量pzmap-零極點圖使用時可以利用他們的幫助,如helpbode。另外,命令ltiview可以畫時域響應和頻域響應圖,利用helpltiview查看使用說明。常用頻域分析函數(shù)如下:bode-頻率響應伯德圖常用頻域分析函數(shù)如下59在分析系統(tǒng)性能的時候經常涉及到系統(tǒng)的幅值裕量與相位裕量的問題,使用Control工具箱提供的margin()函數(shù),可以直接求出系統(tǒng)的幅值裕量與相位裕量。該函數(shù)的調用格式為[Gm,Pm,wcg,wcp]=margin(num,den)其中:幅值裕量Gm、相位裕度裕量Pm,幅值裕量和相位裕量處相應的頻率值wcg和wcp。margin()函數(shù)在分析系統(tǒng)性能的時候經常涉及到系統(tǒng)的幅值裕60freqs()函數(shù):模擬濾波器特性freqs用于計算由矢量a和b構成的模擬濾波器H(s)=B(s)/A(s)的幅頻響應。h=freqs(b,a,w)用于計算模擬濾波器的幅頻響應,其中實矢量w用于指定頻率值,返回值h為一個復數(shù)行向量,要得到幅值必須對它取絕對值,即求模。[h,w]=freqs(b,a)自動設定200個頻率點來計算頻率響應,這200個頻率值記錄在w中。[h,w]=freqs(b,a,n)設定n個頻率點計算頻率響應。不帶輸出變量的freqs函數(shù),將在當前圖形窗口中繪制出幅頻和相頻曲線,其中幅相曲線對縱坐標與橫坐標均為對數(shù)分度。freqs()函數(shù):模擬濾波器特性freqs用于計算由矢量a61例對于下列系統(tǒng)傳遞函數(shù)下列MATLABPrograml1.4將給出該系統(tǒng)對應的伯德圖。其伯德圖如圖4所示。----MATLABPrograml1.4----num=[0,0,50];den=[25,2,1];bode(num,den)gridtitle('BodeDiagramofG(s)=50/(25s^2+2s+1)')例對于下列系統(tǒng)傳遞函數(shù)----MATLABProgra62[工學]自動控制原理matlab控制系統(tǒng)仿真課件63如果希望從0.01弧度/秒到1000弧度/秒畫伯德圖,可輸入下列命令:

w=logspace(-2,3,100)bode(num,den,w)該命令在0.01弧度/秒和100弧度/秒之間產生100個在對數(shù)刻度上等距離的點如果希望從0.01弧度/秒到1000弧度/秒畫伯德圖,可輸入64例對于下列系統(tǒng)傳遞函數(shù)

下列MATLABPrograml1.5將給出該系統(tǒng)對應的伯德圖。其伯德圖如圖5所示。----MATLABPrograml1.5----num=[10,30];den1=[1,2,0];den2=[1,1,2];den=conv(den1,den2);w=logspace(-2,3,100);bode(num,den,w)gridtitle('BodeDiagramofG(s)=10(s+3)/s(s+2)(s^2+s+2)')例對于下列系統(tǒng)傳遞函數(shù)----MATLABProgra65[工學]自動控制原理matlab控制系統(tǒng)仿真課件66例對于下列系統(tǒng)傳遞函數(shù)

下列MATLABPrograml1.6將給出該系統(tǒng)對應的乃奎斯圖。其乃奎斯特圖如圖6所示。----MATLABPrograml1.6----num=[0,0,50];den=[25,2,1,];nyquist(num,den)title('NyquistPlotofG(s)=50/(25s^2+2s+1)')例對于下列系統(tǒng)傳遞函數(shù)----MATLABProgra67[工學]自動控制原理matlab控制系統(tǒng)仿真課件68例考慮由下列方程定義的系統(tǒng):

該系統(tǒng)包含兩個輸入量和兩個輸出量。這里存在4種正弦輸出-輸入關系:Y1(jω)/Ul(jω)、Y2(jω)/Ul(jω)、

Y1(jω)/U2(jω)和Y2(jω)/U2(jω)。試畫出該系統(tǒng)的奈魁斯特圖。

MATLABProgram10

A=[-1-1;6.50];B=[11;10];C=[10;01];D=[00;00];nyquist(A,B,C,D)例考慮由下列方程定義的系統(tǒng):

該系統(tǒng)包含兩69[工學]自動控制原理matlab控制系統(tǒng)仿真課件706、控制系統(tǒng)的根軌跡圖

通常采用下列MATLAB命令畫根軌跡

rlocus(num,den)利用該命令,可以在屏幕上得到畫出的根軌跡圖。增益向量K自動被確定。命令rlocus既適用于連續(xù)系統(tǒng),也適用于離散時間系統(tǒng)。對于定義在狀態(tài)空間內的系統(tǒng),其命令為

rlocus(A,B,C,D)MATLAB在繪圖命令中還包含自動軸定標功能。6、控制系統(tǒng)的根軌跡圖通常采用下列MATLAB命令畫根軌跡71rlocus(a,b,c,d)或者rlocus(num,den):根據(jù)SISO開環(huán)系統(tǒng)的狀態(tài)空間描述模型和傳遞函數(shù)模型,直接在屏幕上繪制出系統(tǒng)的根軌跡圖。開環(huán)增益的值從零到無窮大變化。rlocus(a,b,c,d,k)或rlocus(num,den,k):通過指定開環(huán)增益k的變化范圍來繪制系統(tǒng)的根軌跡圖。r=rlocus(num,den,k)或者[r,k]=rlocus(num,den):不在屏幕上直接繪出系統(tǒng)的根軌跡圖,而根據(jù)開環(huán)增益變化矢量k,返回閉環(huán)系統(tǒng)特征方程1+k*num(s)/den(s)=0的根r,它有l(wèi)ength(k)行,length(den)-1列,每行對應某個k值時的所有閉環(huán)極點?;蛘咄瑫r返回k與r。若給出傳遞函數(shù)描述系統(tǒng)的分子項num為負,則利用rlocus函數(shù)繪制的是系統(tǒng)的零度根軌跡。(正反饋系統(tǒng)或非最小相位系統(tǒng))根軌跡圖繪制:rlocus()函數(shù)rlocus(a,b,c,d)或者rlocus(num,de72例對于一單位反饋控制系統(tǒng),其開環(huán)傳遞函數(shù)為下列MATLABPrograml1.7將給出該系統(tǒng)對應的根軌跡圖。其根軌跡圖如圖7所示。---------MATLABPrograml1.7-----------num=[1,3];den1=[1,2,0];den2=[1,1,2];den=conv(den1,den2);rlocus(num,den)v=[-1010-1010];axis(v)gridtitle('Root-LocusPlotofG(s)=K(s+3)/s(s+2)(s^2+s+2)')例對于一單位反饋控制系統(tǒng),其開環(huán)傳遞函數(shù)為-------73[工學]自動控制原理matlab控制系統(tǒng)仿真課件747、系統(tǒng)穩(wěn)定性分析給定一個控制系統(tǒng),可利用MATLAB在它的時域、頻域圖形分析中看出系統(tǒng)的穩(wěn)定性,并可直接求出系統(tǒng)的相角裕量和幅值裕量。此外,我們還可通過求出特征根的分布更直接地判斷出系統(tǒng)穩(wěn)定性。如果閉環(huán)系統(tǒng)所有的特征根都為負實部則系統(tǒng)穩(wěn)定。7、系統(tǒng)穩(wěn)定性分析給定一個控制系統(tǒng),可利用MATLAB在它的75[p,z]=pzmap(a,b,c,d):返回狀態(tài)空間描述系統(tǒng)的極點矢量和零點矢量,而不在屏幕上繪制出零極點圖。[p,z]=pzmap(num,den):返回傳遞函數(shù)描述系統(tǒng)的極點矢量和零點矢量,而不在屏幕上繪制出零極點圖。pzmap(a,b,c,d)或pzmap(num,den):不帶輸出參數(shù)項,則直接在s復平面上繪制出系統(tǒng)對應的零極點位置,極點用×表示,零點用o表示。pzmap(p,z):根據(jù)系統(tǒng)已知的零極點列向量或行向量直接在s復平面上繪制出對應的零極點位置,極點用×表示,零點用o表示。零極點圖繪制:pzmap()函數(shù)[p,z]=pzmap(a,b,c,d):返回狀態(tài)空間描述系76rlocfind()函數(shù)MATLAB提供了函數(shù)rlocfind()來找出給定的一組根(閉環(huán)極點)對應的根軌跡增益。其用法如下:[k,p]=rlocfind(a,b,c,d)或者[k,p]=rlocfind(num,den)它要求在屏幕上先已經繪制好有關的根軌跡圖。然后,此命令將產生一個光標以用來選擇希望的閉環(huán)極點。命令執(zhí)行結果:k為對應選擇點處根軌跡開環(huán)增益;p為此點處的系統(tǒng)閉環(huán)特征根。不帶輸出參數(shù)項[k,p]時,同樣可以執(zhí)行,只是此時只將k的值返回到缺省變量ans中。rlocfind()函數(shù)MATLAB提供了函數(shù)rlocfin77sgrid()函數(shù)sgrid:在現(xiàn)存的屏幕根軌跡或零極點圖上繪制出自然振蕩頻率wn、阻尼比矢量z對應的格線。sgrid(‘new’):是先清屏,再畫格線。sgrid(z,wn):則繪制由用戶指定的阻尼比矢量z、自然振蕩頻率wn的格線。sgrid()函數(shù)sgrid:在現(xiàn)存的屏幕根軌跡或零極點圖上78用來求取滿足條件的向量的下標向量,以列向量表示。例如條件式為real(p>0),其含義就是找出極點向量p中滿足實部的值大于0的所有元素下標,并將結果返回到ii向量中去。這樣如果找到了實部大于0的極點,則會將該極點的序號返回到ii下。如果最終的結果里ii的元素個數(shù)大于0,則認為找到了不穩(wěn)定極點,因而給出系統(tǒng)不穩(wěn)定的提示,若產生的ii向量的元素個數(shù)為0,則認為沒有找到不穩(wěn)定的極點,因而得出系統(tǒng)穩(wěn)定的結論。ii=find(條件式)用來求取滿足條件的向量的下標向量,以列向量表示。例如79例如,給出控制系統(tǒng)閉環(huán)傳遞函數(shù)為?num=[3,2,1,4,2]num=32142?den=[3,5,1,2,2,1]den=351221?[z,p]=tf2zp(num,den)例如,給出控制系統(tǒng)閉環(huán)傳遞函數(shù)為?num=[3,2,1,480z=0.4500+0.9870i0.4500-0.9870i-1.0000-0.5666p=-1.60670.4103+0.6801i0.4103-0.6801i-0.4403+0.3673i-0.4403-0.3673I>>pzmap(num,den)z=81[工學]自動控制原理matlab控制系統(tǒng)仿真課件82?ii=find(real(p)>0)ii=23?n1=length(ii)n1=2?if(n1>0),disp(['Systemisunstable,with'int2str(n1)'unstablepoles']);elsedisp('Syatemisstable');end?ii=find(real(p)>0)83Systemisunstable,with2unstablepoles?disp('Theunstablepolesare:'),disp(p(ii))Theunstablepolesare:0.4103+0.6801i0.4103-0.6801i以上求出具體的零極點、畫出零極點分布、明確指出系統(tǒng)不穩(wěn)定,并指出引起系統(tǒng)不穩(wěn)定的具體右根。Systemisunstable,with2unst848、Simulink仿真工具如果控制系統(tǒng)的結構很復雜,則若不借助專用的系統(tǒng)建模軟件,在過去很難準確地把一個控制系統(tǒng)的復雜模型輸入給計算機,對之進行分析和仿真。1990年MathWorks軟件公司為MATLAB提供了新的控制系統(tǒng)模型圖形輸入與仿真工具,命名為SIMULINK,這一名字的含義相當直觀,SIMU(仿真)與LINK(連接),亦即可以利用鼠標器在模型窗口上“畫”出所需的控制系統(tǒng)模型,然后利用SIMULINK提供的功能來對系統(tǒng)進行仿真或線性化。這種法的一個優(yōu)點是,可以使得一個很復雜系統(tǒng)的輸入變得相當容易且直觀。8、Simulink仿真工具如果控制系統(tǒng)的結構很復雜,則若不85Simulink工作平臺啟動Simulink,通常有兩種方法:(1)在MATLAB命令窗口中直接輸入Simulink命令;(2)在MATLAB工具欄上單擊Simulink按鈕,如圖所示。

圖7.1啟動Simulink這樣就可打開了Simulink的SimulinkLibraryBrower(庫模塊瀏覽器),如圖7.2所示。在菜單欄中執(zhí)行File/New/Model命令,就建立了一個名為untitled的模型窗口,如圖7.3所示。在建立了空的模塊窗口后,用戶可以在此窗口中創(chuàng)建自己需要的Simulink模型。Simulink工作平臺啟動Simulink,通常有兩種方法86圖7.2庫模塊瀏覽器

圖7.3新建的空白模塊窗口

圖7.2庫模塊瀏覽器圖7.3新建的空白模塊窗口877.2

Simulink的仿真原理7.2.1Simulink仿真模塊通常,Simulink仿真系統(tǒng)包括輸入(Input)、狀態(tài)(states)和輸出(Output)三個部分。·輸入模塊:即信號源模塊,包括常數(shù)字信號源和用戶自定義信號;·狀態(tài)模塊:即被模擬的系統(tǒng)模塊,是系統(tǒng)建模的核心和主要部分;·輸出模塊:即信號顯示模塊,它能夠以圖形方式、文件格式進行顯示。注意:在設計一個模型時,必須先確定這三個部分的意,以及它們之間的聯(lián)系;Simulink的仿真模型并非一定要完全包括這三個部分,它可以缺少其中一個或者兩個;Simulink的狀態(tài)模塊可以是連續(xù)的、離散的,或者它們二者的結合。7.2Simulink的仿真原理7.2.1Simulin887.3.1連續(xù)模塊庫(Continuous)

在連續(xù)模塊(Continuous)庫中包括了常見的連續(xù)模塊,這些模塊如圖所示。

7.3Simulink模塊庫在庫模塊瀏覽器中單擊Simulink前面的“+”號,就能夠看到Simulink的模塊庫,如圖7.2所示。

7.3.1連續(xù)模塊庫(Continuous)7.3Sim894.傳遞函數(shù)模塊(TransferFcn)功能:用執(zhí)行一個線性傳遞函數(shù)。5.零極點傳遞函數(shù)模塊(Zero-Pole)功能:用于建立一個預先指定的零點、極點,并用延遲算子s表示的連續(xù)。6.存儲器模塊(Memory)功能:保持輸出前一步的輸入值。7.傳輸延遲模塊(TransportDelay)功能:用于將輸入端的信號延遲指定的時間后再傳輸給輸出信號。8.可變傳輸延遲模塊(VariableTransportDelay)功能:用于將輸入端的信號進行可變時間的延遲。1.積分模塊(Integrator):功能:對輸入變量進行積分。說明:模塊的輸入可以是標量,也可以是矢量;輸入信號的維數(shù)必須與輸入信號保持一致。2.微分模塊(Derivative)功能:通過計算差分?u/

?t近似計算輸入變量的微分。3.線性狀態(tài)空間模塊(State-Space)功能:用于實現(xiàn)以下數(shù)學方程描述的系統(tǒng):4.傳遞函數(shù)模塊(TransferFcn)1.積分模塊907.3.2離散模塊庫(Discrete)

離散模塊庫(Discrete)主要用于建立離散采樣的系統(tǒng)模型,包括的主要模塊,如圖所示。1.零階保持器模塊(Zero-Order-Hold)功能:在一個步長內將輸出的值保持在同一個值上。7.3.2離散模塊庫(Discrete)1.零階保持器模塊912.單位延遲模塊(UnitDelay)功能:將輸入信號作單位延遲,并且保持一個采樣周期相當于時間算子z-1

。3.離散時間積分模塊(DiscreteTimeIntegrator)功能:在構造完全離散的系統(tǒng)時,代替連續(xù)積分的功能。使用的積分方法有:向前歐拉法、向后歐拉法、梯形法。4.離散狀態(tài)空間模塊(DiscreteStateSpace)功能:用于實現(xiàn)如下數(shù)學方程描述的系統(tǒng):5.離散濾波器模塊(DiscreteFilter)功能:用于實現(xiàn)無限脈沖響應(IIR)和有限脈沖響應(FIR)的數(shù)字濾波器。6.離散傳遞函數(shù)模塊(DiscreteTransferFcn)功能:用于執(zhí)行一個離散傳遞函數(shù)。7.離散零極點傳遞函數(shù)模塊(DiscreteZero-Pole)功能:用于建立一個預先指定的零點、極點,并用延遲算子z-1表示的離散系統(tǒng)。8.一階保持器模塊(FirstOrderHold)功能:在一定時間間隔內保持一階采樣。2.單位延遲模塊(UnitDelay)5.離散濾波器模塊(927.3.4數(shù)學模塊庫(Math)

數(shù)學模塊庫(Math)包括多個數(shù)學運算模塊,如圖7.8所示。7.3.4數(shù)學模塊庫(Math)933.矢量的點乘模塊(DotProduct)功能:矢量的點乘模塊(DotProduct)用于實現(xiàn)輸入信號的點積運算。4.增益模塊(Gain)功能:增益模塊(Gain)的作用是把輸入信號乘以一個指定的增益因子,使輸入產生增益。1.求和模塊(Sum)功能:求和模塊(Sum)用于對多路輸入信號進行求和運算,并輸出結果。2.乘法模塊(Product)功能:乘法模塊(Product)用于實現(xiàn)對多路輸入的乘積、商、矩陣乘法或者模塊的轉置等。5.常用數(shù)學函數(shù)模塊(MathFunction)功能:用于執(zhí)行多個通用數(shù)學函數(shù),其中包含exp、log、log10、square、sqrt、pow、reciprocal、hypot、rem、mod等。3.矢量的點乘模塊(DotProduct)1.求和模塊946.三角函數(shù)模塊(TrigonometricFunction)功能:用于對輸入信號進行三角函數(shù)運算,共有10種三角函數(shù)供選擇。7.特殊數(shù)學模塊特殊數(shù)學模塊中包括求最大最小值模塊(MinMax)、取絕對值模塊(Abs)、符號函數(shù)模塊(Sign)、取整數(shù)函數(shù)模塊(RoundingFunction)等。8.數(shù)字邏輯函數(shù)模塊數(shù)字邏輯函數(shù)模塊包括復合邏輯模塊(CombinationalLogic)、邏輯運算符模塊(LogicalOperator)、位邏輯運算符模塊(BitwiseLogicalOperator)等。9.關系運算模塊(RelationalOperator)

關系符號包括:==(等于)、≠(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)等。10.復數(shù)運算模塊復數(shù)運算模塊包括計算復數(shù)的模與幅角(ComplextoMagnitude-Angle)、由模和幅角計算復數(shù)(Magnitude-AngletoComplex)、提取復數(shù)實部與虛部模塊(ComplextoRealandImage)、由復數(shù)實部和虛部計算復數(shù)(RealandImagetoComplex)。6.三角函數(shù)模塊(TrigonometricFuncti957.3.7信號輸出模塊(Sinks)

信號輸出模塊(Sinks)包括的主要模塊如圖7.12所示。圖7.12輸出顯示模塊庫7.3.7信號輸出模塊(Sinks)圖7.12輸出顯示961.示波器模塊(Scope)功能:顯示在仿真過程中產生的輸出信號,用于在示波器中顯示輸入信號與仿真時間的關系曲線,仿真時間為x軸。2.二維信號顯示模塊(XYGraph)功能:在MATLAB的圖形窗口中顯示一個二維信號圖,并將兩路信號分別作為示波器坐標的x軸與y軸,同時把它們之間的關系圖形顯示出來。3.顯示模塊(Display)功能:按照一定的格式顯示輸入信號的值??晒┻x擇的輸出格式包括:short、long、short_e、long_e、bank等。4.輸出到文件模塊(ToFile)功能:按照矩陣的形式把輸入信號保存到一個指定的MAT文件。第一行為仿真時間,余下的行則是輸入數(shù)據(jù),一個數(shù)據(jù)點是輸入矢量的一個分量。5.輸出到工作空間模塊(ToWorkspace)功能:把信號保存到MATLAB的當前工作空間,是另一種輸出方式。6.終止信號模塊(Terminator)功能:中斷一個未連接的信號輸出端口。7.結束仿真模塊(Stopsimulation)功能:停止仿真過程。當輸入為非零時,停止系統(tǒng)仿真。1.示波器模塊(Scope)4.輸出到文件模塊(ToF977.3.8信號源模塊庫(Sources)信號源模塊庫(Sources)包括的主要模塊如圖7.13所示。圖7.13信號源模塊庫7.3.8信號源模塊庫(Sources)圖7.13信號981.輸入常數(shù)模塊(Constant)功能:產生一個常數(shù)。該常數(shù)可以是實數(shù),也可以是復數(shù)。2.信號源發(fā)生器模塊(SignalGenerator)功能:產生不同的信號,其中包括:正弦波、方波、鋸齒波信號。3.從文件讀取信號模塊(FromFile)功能:從一個MAT文件中讀取信號,讀取的信號為一個矩陣,其矩陣的格式與ToFile模塊中介紹的矩陣格式相同。如果矩陣在同一采樣時間有兩個或者更多的列,則數(shù)據(jù)點的輸出應該是首次出現(xiàn)的列。4.從工作空間讀取信號模塊(FromWorkspace)功能:從MATLAB工作空間讀取信號作為當前的輸入信號。5.隨機數(shù)模塊(RandomNumber)功能:產生正態(tài)分布的隨機數(shù),默認的隨機數(shù)是期望為0,方差為1的標準正態(tài)分布量。6.帶寬限制白噪聲模塊(BandLimitedWhiteNoise)功能:實現(xiàn)對連續(xù)或者混雜系統(tǒng)的白噪聲輸入。7.其它模塊除以上介紹的常用模塊外,還包括其模塊。各模塊功能可通過以下方法查看:先進入Simulink工作窗口,在菜單中執(zhí)行Help/SimulinkHelp命令,這時就會彈出Help界面。然后用鼠標展開UsingSimulink\BlockReference\SimulinkBlockLibraries就可以看到Simulink的所有模塊。查看相應的模塊的使用方法和說明信息即可。

1.輸入常數(shù)模塊(Constant)4.從工作空間讀取信號模997.4仿真模型的建立與模塊參數(shù)與屬性的設置1.仿真模塊的建立首先啟動Simulink命令,建立一個空的模塊窗口“untitled”,然后利用Simulink提供的模塊庫,在此窗口中創(chuàng)建自己需要的Simulink模型。具體方法:在模塊庫瀏覽器中找到所需模塊,選中該模塊后右擊鼠標,把它加入到一個模型窗口中即可完成模塊的建立。

圖7.14添加模塊

7.4仿真模型的建立與模塊參數(shù)與屬性的設置1.仿真模塊的1002.模塊參數(shù)與屬性的設置

方法:在所建立的模型窗口中,選中相應的模塊,單擊右擊鼠標,在彈出的快捷菜單中單擊“Blockparameters”選項(如圖7.15所示),即可打開該模塊的參數(shù)設置對話框,如圖7.16(a)所示。右擊鼠標,在彈出的快捷菜單中單擊“BlockProperties”選項,即可打開該模塊的屬性設置對話框,如圖7.16(b)所示。圖7.15Blockparamenters選項

2.模塊參數(shù)與屬性的設置圖7.15Blockpara1013.模塊的連接

一般情況下,每個模塊都有一個或者多個輸入口或者輸出口。輸入口通常是模塊的左邊的“>”符號;輸出口是右邊的“>”符號。

模塊的連接方法:把鼠標指針放到模塊的輸出口,這時,鼠標指針將變?yōu)椤?”十字形;然后,拖運鼠標至其它模塊的輸入口,這時信號線就變成了帶有方向箭頭的線段。此時,說明這兩個模塊的連接成功,否則需要重新進行連接。3.模塊的連接一般情況下,每個模塊都有一個或者多個1024.運行仿真

在運行仿真之前,首先保存已設置和連接的模型,然后就可以運行仿真。4.運行仿真

在運行仿真之前,首先保存已設置和連接1031.Simulink仿真注意(1)Simulink的數(shù)據(jù)類型由于Simulink在仿真過程中,始終都要檢查模型的類型安全性。模型的類型安全性是指從該模型產生的代碼不出現(xiàn)上溢或者下溢現(xiàn)象,當產生溢出現(xiàn)象時,系統(tǒng)將出錯誤。查看模塊的數(shù)據(jù)類型的方法是:在模型窗口的菜單中執(zhí)行Format/PortDataTypes命令,這樣每個模塊支持的數(shù)據(jù)類型就顯示出來了。要取消數(shù)據(jù)類型的查看方式,單擊PortDataTypes去掉其前面的勾號即可。7.4.3Simulink仿真注意與技巧圖7.23查看模塊支持的數(shù)據(jù)類型1.Simulink仿真注意7.4.3Simulink仿104(2)數(shù)據(jù)的傳輸在仿真過程中,Simulink首先查看有沒有特別設置的信號的數(shù)據(jù)類型,以及檢驗信號的輸入和輸出端口的數(shù)據(jù)類型是否產生沖突。如果有沖突,Simulink將停止仿真,并給出一個出錯提示對話框,在此對話框中將顯示出錯的信號以及端口,并把信號的路徑以高亮顯示。遇到該情形,必須改變數(shù)據(jù)類型以適應模塊的需要。(3)提高仿真速度

Simulink仿真過程,仿真的性能受諸多因素的影響,包括模型的設計和仿真參數(shù)的選擇等。對于大多數(shù)問題,使用Simulink系統(tǒng)默認的解法和仿真參數(shù)值就能夠比較好地解決。因素及解決方法:(1)仿真的時間步長太小。針對這種情況可以把最大仿真步長參數(shù)設置為默認值auto。(2)仿真的時間過長??勺们闇p小仿真的時間。(3)選擇了錯誤的解法。針對這種情況可以通過改變解法器來解決。(4)仿真的精度要求過高。仿真時,如果絕對誤差限度太小,則會使仿真在接近零的狀態(tài)附近耗費過多時間。通常,相對誤差限為0.1%就已經足夠了。(5)模型包含一個外部存儲塊。盡量使用內置存儲模塊。(2)數(shù)據(jù)的傳輸(3)提高仿真速度105(4)改善仿真精度檢驗仿真精度的方法是:通過修改仿真的相對誤差限和絕對誤差限,并在一個合適的時間跨度反復運行仿真,對比仿真結果有無大的變化,如果變化不大,表示解是收斂的。說明仿真的精度是有效的,結果是穩(wěn)定的。如果仿真結果不穩(wěn)定,其原因可參是系統(tǒng)本身不穩(wěn)定或仿真解法不適合。如果仿真的結果不精確,其原因很可能是:(1)模型有取值接近零的狀態(tài)。如果絕對誤差過大,會使仿真在接近零區(qū)域運行的仿真時間太小。解決的辦法是修改絕對誤差參數(shù)或者修改初始的狀態(tài)。(2)如果改變絕對誤差限還不能達到預期的誤差限,則修改相對誤差限,使可接受的誤差降低,并減小仿真的步長。(4)改善仿真精度106

首先根據(jù)一個例子來說明控制系統(tǒng)框圖模型的建立,這是一個簡化的調速系統(tǒng)。我們看如何利用Simulink工具輸入這個框圖,然后再進行分析。具體利用Simulink建立框圖的方法見網絡輔助教學中“控制工程基礎”第11章有關內容。首先根據(jù)一個例子來說明控制系統(tǒng)框圖模型的建立,這是一個107下圖是Matlab中Simulink工具建立的例題框圖。可以點擊圖中Simulation下的start圖標開始仿真,然后雙擊框圖中的scope,查看仿真圖形。其他仿真命令大家可以自行學習。下圖是Matlab中Simulink工具建立的例題框圖??梢?08自動控制原理

與Matlab自動控制原理

與Matlab109Matlab軟件工具

在控制系統(tǒng)分析和綜合中的應用Matlab基本特點控制系統(tǒng)在Matlab中的描述進行部分分式展開控制系統(tǒng)的時間響應分析控制系統(tǒng)的頻域響應分析控制系統(tǒng)的根軌跡圖系統(tǒng)穩(wěn)定性分析Simulink仿真工具Matlab軟件工具

在控制系統(tǒng)分析和綜合中的應用Matla1101、matlab基本特點Matlab簡介:1980年前后,美國moler博士構思并開發(fā);最初的matlab版本是用fortran語言編寫,現(xiàn)在的版本用c語言改寫;1992年推出了具有劃時代意義的matlab4.0版本;并于1993年推出了其windows平臺下的微機版,現(xiàn)在比較新的版本是6.5版1、matlab基本特點111Matlab語言特點:Matlab以復數(shù)矩陣為最基本的運算單元,既可以對它整體地進行處理,也可以對它的某個或某些元素進行單獨地處理。在matlab中,數(shù)據(jù)的存儲/輸入/輸出都是以矩陣為基礎的,矩陣和其它變量不需要預先定義。matlab語言最基本的賦值語句結構為變量名列表=表達式變量名為matlab語句的返回值;等號右邊是表達式的定義,它可以是矩陣,也可是函數(shù)調用Matlab語言特點:Matlab以復數(shù)矩陣為最基本的運算單112等號右邊的表達式可以由分號結束,也可以由逗號或換行結束,但它們的含義是不同的。如果用分號結束,則左邊的變量結果將不在屏幕上顯示出來,否則將把左邊返回矩陣的內容全部顯示出來。如?A=[1,0,1;1,0,0;2,1,0];?B=[1,0,2;2,1,1;1,0,1]B=102211101等號右邊的表達式可以由分號結束,也可以由逗號或換行結束,但它113在matlab下,矩陣A和矩陣B的乘積(假定其中A,B矩陣是可乘的)可以簡單地由運算C=A*B求出?C=A*BC=203102415在matlab下,矩陣A和矩陣B的乘積(假定114而D=A.*B稱點乘積運算,即表示A和B矩陣的相應元素之間直接進行乘法運算,然后將結果賦給D矩陣,點乘積運算要求A和B矩陣的維數(shù)相同。?D=A.*BD=102200200而D=A.*B稱點乘積運算,即表示A和B矩陣的相應115在MATLAB中多項式由行向量組成,這些行向量包含了降次排列的多項式系數(shù)。例如多項式p(s)=1s3+3s2+0s1+4s0輸入>>p=[1304];>>r=roots(p)r=-3.3553e+001.7765e-01+1.0773e+00j1.7765e-01-1.0773e+00j>>p=poly(r)p=1.0003.0000.000-0.000j4.000+0.000j輸入多項式并求根在MATLAB中多項式由行向量組成,這些行向量包含116

Matlab下提供了兩種文件格式:m文件,matlab函數(shù)M文件是普通的ascii碼構成的文件,在這樣的文件中只有由matlab語言所支持的語句,類似于doc下的批處理文件,它的執(zhí)行方式很簡單,用戶只需在matlab的提示符>>下鍵入該m文件的文件名,這樣matlab就會自動執(zhí)行該m文件中的各條語句。它采用文本方式,編程效率高,可讀性很強。Matlab下提供了兩種文件格式:m文件,matla117Matlab函數(shù)是最常用的特殊m文件,該函數(shù)是由function語句引導,其基本格式如下

Function返回變量列表=函數(shù)名(輸入量列表)注釋說明語句段

函數(shù)體語句調用時在matlab的提示符下鍵入函數(shù)名,并包括輸入變量。類似于c語言的子程序調用。如Functionplot_sin(xmin,xmax)X=xmin:min(0.01,(xmax-xmin)/100):xmax;Plot(x,sin(x));%ThisisademoMatlab函數(shù)是最常用的特殊m文件,該函數(shù)是由functi118要分析系統(tǒng),首先需要能夠描述這個系統(tǒng)。在線性系統(tǒng)理論中,一般常用的數(shù)學模型形式有:傳遞函數(shù)模型(系統(tǒng)的外部模型);狀態(tài)方程模型(系統(tǒng)的內部模型);零極點增益模型和部分分式模型等。這些模型之間都有著內在的聯(lián)系,可以相互進行轉換。2、控制系統(tǒng)在matlab中的描述要分析系統(tǒng),首先需要能夠描述這個系統(tǒng)。在線性系119一、傳遞函數(shù)模型對線性定常系統(tǒng),式中s的系數(shù)均為常數(shù),且a1不等于零,這時系統(tǒng)在MATLAB中可以方便地由分子和分母系數(shù)構成的兩個向量唯一地確定出來,這兩個向量分別用num和den表示。 分子:num=[b1,b2,…,bm,bm+1]

分母:den=[a1,a2,…,an,an+1]

注意:它們都是按s的降冪進行排列的。一、傳遞函數(shù)模型120在MATLAB中零極點增益模型用[z,p,K]矢量組表示。即:z=[z1,z2,…,zm]p=[p1,p2,...,pn]K=[k]函數(shù)tf2zp()可以用來求傳遞函數(shù)的零極點和增益。二、零極點增益模型K為系統(tǒng)增益,zi為零點,pj為極點在MATLAB中零極點增益模型用[z,p,K]矢量組表示。即121利用下面的語句就可以表示這個系統(tǒng):

傳遞函數(shù)的形式sys=tf(num,den)其中tf()代表傳遞函數(shù)的形式描述系統(tǒng),

零極點形式sys1=zpk(sys)

傳遞函數(shù)形式和零極點形式之間可以相互轉化,語句為 [z,p,k]=tf2zp(num,den)[num,den]=zp2tf(z,p,k)當傳遞函數(shù)復雜時,應用多項式乘法函數(shù)conv()等實現(xiàn)。利用下面的語句就可以表示這個系統(tǒng):122舉例:傳遞函數(shù)描述

1)》num=[12,24,0,20];den=[24622];2)借助多項式乘法函數(shù)conv(卷積)來處理:》num=4*conv([1

溫馨提示

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

評論

0/150

提交評論