《控制系統(tǒng)的MATLAB計算及仿真.ppt》由會員分享,可在線閱讀,更多相關(guān)《控制系統(tǒng)的MATLAB計算及仿真.ppt(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、控制系統(tǒng)的MATLAB計算及仿真,哈爾濱工業(yè)大學(xué)(威海) 信息科學(xué)與工程學(xué)院,內(nèi)容提要:,1、MATLAB的基礎(chǔ)知識 2、MATLAB的控制工具箱 3、Simulink與控制系統(tǒng)仿真,MATLAB的基礎(chǔ)知識,MATLAB概述 MATLAB的主要功能 MATLAB的語言規(guī)則 MATLAB的變量 MATLAB數(shù)據(jù)的輸入 MATLAB的基本語句結(jié)構(gòu) MATLAB的M-文件 MATLAB的圖形可視化,MATLAB概述,Matlab=Matrix Laboratory:矩陣實驗室 Matlab 語言的首創(chuàng)人是 C. Moler 到九十年代初期,在國際上 30 幾個數(shù)學(xué)類科技應(yīng)用軟件中, Matlab 在
2、數(shù)值計算方面獨占鰲頭,而 Mathematica 和 Maple 則分居符號計算軟件的前兩名。,MATLAB的主要功能,數(shù)值計算功能 符號運算功能 繪圖功能 編程功能 豐富的工具箱(ToolBox) Simulink動態(tài)仿真集成環(huán)境,命令窗口,當(dāng)前工作目錄,當(dāng)前工作空間,輸入命令的歷史記錄,命令 提示符,MATLAB的語言規(guī)則,Matlab 區(qū)分大小寫,它的命令和函數(shù)全是小寫的 一行可以輸入幾個命令,用分號“;” 或逗號“,”隔開 續(xù)行符: “”(三個點),如果語句很長,可用續(xù)行符將一個語句寫成多行。續(xù)行符的前最好留一個空格。 注釋符: “%”,其后面的內(nèi)容為注釋,對 Matlab 的計算不產(chǎn)
3、生任何影響,MATLAB的變量,Matlab中變量名是以字母開頭,可以由字母、數(shù)字或下劃線組成 who,whos,clc,clear 系統(tǒng)預(yù)定義變量:eps, pi, Inf, NaN, i, j,MATLAB數(shù)據(jù)的輸入,直接輸入: 同一行中各元素之間用“空格”或“,” (英文狀態(tài)下) 分開; 行與行之間用 “;” 或“回車”分開 a=1 2 ; 3, 4 冒號 “:” 運算符:初值 : 步長 : 終值 a=1:5, b=0:pi/4:pi 由向量或小矩陣生成:X=a ; b 交互式輸入:input n=input(Please input n: ),MATLAB的基本語句結(jié)構(gòu),賦值語
4、句 直接賦值語句:賦值變量=賦值表達(dá)式 (賦值表達(dá)式后無分號“;”: 命令窗直接顯示賦值結(jié)果 賦值表達(dá)式后加分號“;”:命令窗不顯示結(jié)果,變量保留在workspace) 函數(shù)調(diào)用語句:返回變量列表=函數(shù)名(輸入變量列表),MATLAB的基本語句結(jié)構(gòu),循環(huán)語句 for語句:for 變量=向量,循環(huán)體,end; s=0; for i=1:2:100 s=s+i; end while語句:while (條件式),循環(huán)體,end; s=0;i=1; while(i<=100) s=s+i; end,MATLAB的基本語句結(jié)構(gòu),跳轉(zhuǎn)語句 if語句: if (條件1) 語句組1; els
5、eif(條件2) 語句組2; else 語句組2; end,MATLAB的基本語句結(jié)構(gòu),跳轉(zhuǎn)語句 switch語句: case (表達(dá)式1) 語句組1; case (表達(dá)式2) 語句組2; , otherwise 語句組n; end,MATLAB的M-文件,M-腳本文件 M-函數(shù) function 返回變量列表=函數(shù)名 (輸入變量列表) function a=dbness(n) a=2*n; end,MATLAB的圖形可視化,plot函數(shù):,,clc; x=-5:0.02:5; m,n=size(x); %返回矩陣x的維數(shù) for a=1:1:n if x(a)
6、=-1.1 y(a)=x(a); else y(a)=1.1; end end plot(x,y);,內(nèi)容提要:,1、MATLAB的基礎(chǔ)知識 2、MATLAB的控制工具箱 3、Simulink與控制系統(tǒng)仿真,內(nèi)容提要:,1、MATLAB的基礎(chǔ)知識 2、MATLAB的控制工具箱 3、Simulink與控制系統(tǒng)仿真,MATLAB的控制工具箱,連續(xù)線性系統(tǒng)的數(shù)學(xué)模型 離散線性系統(tǒng)的數(shù)學(xué)模型 系統(tǒng)模型的相互轉(zhuǎn)換 離散線性系統(tǒng)的性能分析,連續(xù)線性系統(tǒng)的數(shù)學(xué)模型,傳遞函數(shù)模型 設(shè)單變量連續(xù)線性系統(tǒng)的傳遞函數(shù)為:,傳遞函數(shù)表示為:,例:,num=2,3; den=1 1 1; G=tf(num,de
7、n);,連續(xù)線性系統(tǒng)的數(shù)學(xué)模型,傳遞函數(shù)模型 MATLAB還支持一種特殊的傳遞函數(shù)的輸入格式,在 這樣的輸入方式下,應(yīng)該先用s=tf(s),定義傳遞函數(shù) 的算子,然后直接輸入系統(tǒng)的傳遞函數(shù)。,例:,s=tf(s); G=(2*s+3)/(s2+s+1);,延遲環(huán)節(jié) :,連續(xù)線性系統(tǒng)的數(shù)學(xué)模型,零極點模型 設(shè)單變量連續(xù)線性系統(tǒng)的傳遞函數(shù)為:,例:,Z=-1;-2; P=0;-3;-4; G=zpk(Z,P,2),傳遞函數(shù)表示為:,pzmap(G):可以直接繪制傳遞函數(shù)的零極點分布圖,連續(xù)線性系統(tǒng)的數(shù)學(xué)模型,狀態(tài)方程模型 設(shè)線性系統(tǒng)的狀態(tài)方程為:,狀態(tài)方程表示為:,離散線性系統(tǒng)的數(shù)學(xué)模型,傳遞函
8、數(shù)模型 設(shè)單變量連續(xù)線性系統(tǒng)的傳遞函數(shù)為:,傳遞函數(shù)表示為:,例:,num=2,3; den=1 1 1; H=tf(num,den,Ts,1);,離散線性系統(tǒng)的數(shù)學(xué)模型,傳遞函數(shù)模型 MATLAB還支持一種特殊的傳遞函數(shù)的輸入格式,在 這樣的輸入方式下,應(yīng)該先用z=tf(z,T),定義傳遞函 數(shù)的算子,然后直接輸入系統(tǒng)的傳遞函數(shù)。,例:,z=tf(z,1); H=(2*z+3)/(z2+z+1);,延遲環(huán)節(jié) :,離散線性系統(tǒng)的數(shù)學(xué)模型,零極點模型 設(shè)單變量連續(xù)線性系統(tǒng)的傳遞函數(shù)為:,例:,Z=-1;-2; P=0;-3;-4; H=zpk(Z,P,2,Ts,1),傳遞函數(shù)表示為:,pzma
9、p(G):可以直接繪制傳遞函數(shù)的零極點分布圖,離散線性系統(tǒng)的數(shù)學(xué)模型,狀態(tài)方程模型 設(shè)線性系統(tǒng)的狀態(tài)方程為:,狀態(tài)方程表示為:,系統(tǒng)模型的相互轉(zhuǎn)換,連續(xù)模型 離散模型 函數(shù):Gz=c2d(Gs,T,參數(shù) ) 參數(shù):zoh:零階保持器法 foh: 一階保持器法 imp: 脈沖響應(yīng)不變法 tustin: 雙線性變換法 prewarp: 改進(jìn)的雙線性變化法 matched: 零極點匹配法,,例:,Gs=tf(1,1 0) Gz=c2d(Gs,1,zoh),系統(tǒng)模型的相互轉(zhuǎn)換,離散模型 連續(xù)模型 函數(shù):Gs=d2c(Gz,參數(shù) ) 參數(shù):zoh:零階
10、保持器法 tustin: 雙線性變換法 prewarp: 改進(jìn)的雙線性變化法 matched: 零極點匹配法,,例:,Gz=tf(1 0,1 -1,Ts,1); Gs=d2c(Gz,zoh);,離散線性系統(tǒng)的性能分析,設(shè):計算機(jī)控制系統(tǒng)如圖所示:,離散線性系統(tǒng)的性能分析,求系統(tǒng)的閉環(huán)脈沖傳遞函數(shù):,clear; % 清除變量 num=0.1; den=1 0.1 0; G0s=tf(num,den) %G0(s)的脈沖傳遞函數(shù) Z=0.98; P=0.8187; K=9.1544; Dz=zpk(Z,P,K,Ts,0.2) %控制器D(z) G0z=c2d(G0s,0
11、.2,zoh) %G0z=Z(Gh(s)*G0(s)) Gz=Dz*G0z %開環(huán)脈沖傳遞函數(shù) faiz=feedback(Gz,1); %閉環(huán)脈沖傳遞函數(shù),1表示反饋,本題為單位負(fù)反饋,離散線性系統(tǒng)的性能分析,求系統(tǒng)的階躍響應(yīng):,step(faiz, t) %t表示仿真時間,離散線性系統(tǒng)的性能分析,求系統(tǒng)的根軌跡:,rlocus(Gz) Gz表示開環(huán)脈沖傳遞函數(shù),離散線性系統(tǒng)的性能分析,求系統(tǒng)的奈奎斯特圖:,nyquist(Gz) Gz表示開環(huán)脈沖傳遞函數(shù),求系統(tǒng)的伯德圖:,bode(Gz) Gz表示開環(huán)脈沖傳遞函數(shù),內(nèi)容提要:,1、MATLAB的基礎(chǔ)知識 2、MATLAB的控制工具箱 3、
12、Simulink與控制系統(tǒng)仿真,Simulink與控制系統(tǒng)仿真:,Simulink環(huán)境是系統(tǒng)建模、分析和仿真的理想工具,它提供的模塊有一般線性、非線性系統(tǒng)所需的模塊,也有更高級的模塊,適合于系統(tǒng)的建模與仿真。,離散線性系統(tǒng)的性能分析,設(shè):計算機(jī)控制系統(tǒng)如圖所示:,脫離工具箱,直接利用差分方程編程,脫離工具箱,直接利用差分方程編程,clear; clc; error_1=0; %e(k-1)=0 u_1=0; %u(k-1)=0 u_2=0; %u(k-2)=0 y_1=0; %y(k-1)=0 for k=1:100 y(1)=0; r(k)=1; error(k)=r(k)-y(k); u(k)=0.8187*u_1+9.1544*error(k)-9.1544*0.98*error_1; y(k+1)=1.98*y(k)-0.9802*y_1+0.001987*u(k)+0.001974*u_1; y_1=y(k); error_1=error(k); u_2=u_1; u_1=u(k); end plot(y);,