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