控制系统的计算及仿真优秀PPT.ppt
控制系统的计算及仿真控制系统的计算及仿真你现在浏览的是第一页,共38页内容提要:内容提要:n1、MATLAB的基础知识的基础知识n2、MATLAB的控制工具箱的控制工具箱n3、Simulink与控制系统仿真与控制系统仿真你现在浏览的是第二页,共38页MATLAB的基础知识的基础知识nMATLAB概述概述nMATLAB的主要功能的主要功能nMATLAB的语言规则的语言规则nMATLAB的变量的变量nMATLAB数据的输入数据的输入nMATLAB的基本语句结构的基本语句结构nMATLAB的的M-文件文件nMATLAB的图形可视化的图形可视化你现在浏览的是第三页,共38页MATLAB概述概述nMatlab=Matrix Laboratory:矩阵实验室:矩阵实验室nMatlab 语言的首创人是语言的首创人是 C.Molern到九十年代初期,在国际上到九十年代初期,在国际上 30 几个数学类科几个数学类科技应用软件中,技应用软件中,Matlab 在数值计算方面独占在数值计算方面独占鳌头,而鳌头,而 Mathematica 和和 Maple 则分居符号则分居符号计算软件的前两名。计算软件的前两名。你现在浏览的是第四页,共38页MATLAB的主要功能的主要功能n数值计算功能数值计算功能n符号运算功能符号运算功能n绘图功能绘图功能n编程功能编程功能n丰富的工具箱丰富的工具箱(ToolBox)nSimulink动态仿真集成环境动态仿真集成环境你现在浏览的是第五页,共38页命令窗口命令窗口当前工当前工作目录作目录当前工当前工作空间作空间输入命令的历输入命令的历史记录史记录命令命令提示符提示符你现在浏览的是第六页,共38页MATLAB的语言规则的语言规则nMatlab 区分大小写,它的区分大小写,它的命令和函数全是小写命令和函数全是小写的的n一行可以输入几个命令,用一行可以输入几个命令,用分号分号“;”或逗号或逗号“,”隔开隔开 n续行符续行符:“”(三个点),如果语句很长,可用续行(三个点),如果语句很长,可用续行符将一个语句写成多行。续行符的前最好留一个空格。符将一个语句写成多行。续行符的前最好留一个空格。n注释符注释符:“%”,其后面的内容为注释,对,其后面的内容为注释,对 Matlab 的计算的计算不产生任何影响不产生任何影响你现在浏览的是第七页,共38页MATLAB的变量的变量nMatlab中变量名是以中变量名是以字母字母开头,可以由开头,可以由字母、数字或下字母、数字或下划线划线组成组成nwho,whos,clc,clearn系统预定义变量:系统预定义变量:eps,pi,Inf,NaN,i,j 你现在浏览的是第八页,共38页MATLAB数据的输入数据的输入n直接输入:直接输入:同一行中各元素之间用同一行中各元素之间用“空格空格”或或“,”(英文状态下英文状态下)分开;分开;行与行之间用行与行之间用“;”或或“回车回车”分开分开 a=1 2;3,4 n冒号冒号“:”运算符:运算符:初值初值:步长步长:终值终值 a=1:5,b=0:pi/4:pi n由向量或小矩阵生成:由向量或小矩阵生成:X=a;bn交互式输入:交互式输入:input n=input(Please input n:)你现在浏览的是第九页,共38页MATLAB的基本语句结构的基本语句结构n赋值语句赋值语句q直接赋值语句:直接赋值语句:赋值变量赋值变量=赋值表达式赋值表达式(赋值表达式后赋值表达式后无分号无分号“;”:命令窗直接显示赋值结果命令窗直接显示赋值结果 赋值表达式后赋值表达式后加分号加分号“;”:命令窗不显示结果,变量保留在:命令窗不显示结果,变量保留在workspace)q函数调用语句:函数调用语句:返回变量列表返回变量列表=函数名函数名(输入变量输入变量列表列表)你现在浏览的是第十页,共38页MATLAB的基本语句结构的基本语句结构n循环语句循环语句qfor语句:语句:for 变量变量=向量,循环体,向量,循环体,end;s=0;for i=1:2:100s=s+i;endqwhile语句:语句:while(条件式条件式),循环体,循环体,end;s=0;i=1;while(i=100)s=s+i;end 你现在浏览的是第十一页,共38页MATLAB的基本语句结构的基本语句结构n跳转语句跳转语句qif语句:语句:if(条件条件1)语句组语句组1;elseif(条件条件2)语句组语句组2;else 语句组语句组2;end你现在浏览的是第十二页,共38页MATLAB的基本语句结构的基本语句结构n跳转语句跳转语句qswitch语句:语句:case(表达式表达式1)语句组语句组1;case(表达式表达式2)语句组语句组2;,otherwise 语句组语句组n;end你现在浏览的是第十三页,共38页MATLAB的的M-文件文件nM-脚本文件脚本文件nM-函数函数 function 返回变量列表返回变量列表=函数名函数名(输入变量列表输入变量列表)function a=dbness(n)a=2*n;end你现在浏览的是第十四页,共38页MATLAB的图形可视化的图形可视化nplot函数函数:clc;x=-5:0.02:5;m,n=size(x);%返回矩阵x的维数for a=1:1:nif x(a)-1.1 y(a)=-1.1;elseif x(a)=-1.1 y(a)=x(a);else y(a)=1.1;endendplot(x,y);你现在浏览的是第十五页,共38页内容提要:内容提要:n1、MATLAB的基础知识的基础知识n2、MATLAB的控制工具箱的控制工具箱n3、Simulink与控制系统仿真与控制系统仿真你现在浏览的是第十六页,共38页内容提要:内容提要:n1、MATLAB的基础知识的基础知识n2、MATLAB的控制工具箱的控制工具箱n3、Simulink与控制系统仿真与控制系统仿真你现在浏览的是第十七页,共38页MATLAB的控制工具箱的控制工具箱n连续线性系统的数学模型连续线性系统的数学模型n离散线性系统的数学模型离散线性系统的数学模型n系统模型的相互转换系统模型的相互转换n离散线性系统的性能分析离散线性系统的性能分析你现在浏览的是第十八页,共38页连续线性系统的数学模型连续线性系统的数学模型n传递函数模型传递函数模型设单变量连续线性系统的传递函数为:设单变量连续线性系统的传递函数为:传递函数表示为:传递函数表示为:例:例:num=2,3;den=1 1 1;G=tf(num,den);你现在浏览的是第十九页,共38页连续线性系统的数学模型连续线性系统的数学模型n传递函数模型传递函数模型MATLAB还支持一种特殊的传递函数的输入格式,在还支持一种特殊的传递函数的输入格式,在这样的输入方式下,应该先用这样的输入方式下,应该先用s=tf(s),定义传递函数,定义传递函数的算子,然后直接输入系统的传递函数。的算子,然后直接输入系统的传递函数。例:例:s=tf(s);G=(2*s+3)/(s2+s+1);延迟环节延迟环节 :你现在浏览的是第二十页,共38页连续线性系统的数学模型连续线性系统的数学模型n零极点模型零极点模型设单变量连续线性系统的传递函数为:设单变量连续线性系统的传递函数为:例:例:Z=-1;-2;P=0;-3;-4;G=zpk(Z,P,2)传递函数表示为:传递函数表示为:pzmap(G):可以直接绘制传递函数的零极点分布图可以直接绘制传递函数的零极点分布图你现在浏览的是第二十一页,共38页连续线性系统的数学模型连续线性系统的数学模型n状态方程模型状态方程模型设线性系统的状态方程为:设线性系统的状态方程为:状态方程表示为:状态方程表示为:你现在浏览的是第二十二页,共38页离散线性系统的数学模型离散线性系统的数学模型n传递函数模型传递函数模型设单变量连续线性系统的传递函数为:设单变量连续线性系统的传递函数为:传递函数表示为:传递函数表示为:例:例:num=2,3;den=1 1 1;H=tf(num,den,Ts,1);你现在浏览的是第二十三页,共38页离散线性系统的数学模型离散线性系统的数学模型n传递函数模型传递函数模型MATLAB还支持一种特殊的传递函数的输入格式,在还支持一种特殊的传递函数的输入格式,在这样的输入方式下,应该先用这样的输入方式下,应该先用z=tf(z,T),定义传递函,定义传递函数的算子,然后直接输入系统的传递函数。数的算子,然后直接输入系统的传递函数。例:例:z=tf(z,1);H=(2*z+3)/(z2+z+1);延迟环节延迟环节 :你现在浏览的是第二十四页,共38页离散线性系统的数学模型离散线性系统的数学模型n零极点模型零极点模型设单变量连续线性系统的传递函数为:设单变量连续线性系统的传递函数为:例:例:Z=-1;-2;P=0;-3;-4;H=zpk(Z,P,2,Ts,1)传递函数表示为:传递函数表示为:pzmap(G):可以直接绘制传递函数的零极点分布图可以直接绘制传递函数的零极点分布图你现在浏览的是第二十五页,共38页离散线性系统的数学模型离散线性系统的数学模型n状态方程模型状态方程模型设线性系统的状态方程为:设线性系统的状态方程为:状态方程表示为:状态方程表示为:你现在浏览的是第二十六页,共38页系统模型的相互转换系统模型的相互转换n连续模型连续模型 离散模型离散模型函数:函数:Gz=c2d(Gs,T,参数参数 )参数:参数:zoh:零阶保持器法零阶保持器法 foh:一阶保持器法一阶保持器法 imp:脉冲响应不变法脉冲响应不变法 tustin:双线性变换法双线性变换法 prewarp:改进的双线性变化法改进的双线性变化法 matched:零极点匹配法零极点匹配法例:例:Gs=tf(1,1 0)Gz=c2d(Gs,1,zoh)你现在浏览的是第二十七页,共38页系统模型的相互转换系统模型的相互转换n离散模型离散模型 连续模型连续模型函数:函数:Gs=d2c(Gz,参数参数 )参数:参数:zoh:零阶保持器法零阶保持器法 tustin:双线性变换法双线性变换法 prewarp:改进的双线性变化法改进的双线性变化法 matched:零极点匹配法零极点匹配法例:例:Gz=tf(1 0,1-1,Ts,1);Gs=d2c(Gz,zoh);你现在浏览的是第二十八页,共38页离散线性系统的性能分析离散线性系统的性能分析设:计算机控制系统如图所示:设:计算机控制系统如图所示:你现在浏览的是第二十九页,共38页离散线性系统的性能分析离散线性系统的性能分析n求系统的闭环脉冲传递函数:求系统的闭环脉冲传递函数:clear;%清除变量num=0.1;den=1 0.1 0;G0s=tf(num,den)%G0(s)的脉冲传递函数Z=0.98;P=0.8187;K=9.1544;Dz=zpk(Z,P,K,Ts,0.2)%控制器D(z)G0z=c2d(G0s,0.2,zoh)%G0z=Z(Gh(s)*G0(s)Gz=Dz*G0z%开环脉冲传递函数faiz=feedback(Gz,1);%闭环脉冲传递函数,1表示反馈,本题为单位负反馈你现在浏览的是第三十页,共38页离散线性系统的性能分析离散线性系统的性能分析n求系统的阶跃响应:求系统的阶跃响应:step(faiz,t)%t表示仿真时间你现在浏览的是第三十一页,共38页离散线性系统的性能分析离散线性系统的性能分析n求系统的根轨迹:求系统的根轨迹:rlocus(Gz)Gz表示开环脉冲传递函数你现在浏览的是第三十二页,共38页离散线性系统的性能分析离散线性系统的性能分析n求系统的奈奎斯特图:求系统的奈奎斯特图:nyquist(Gz)Gz表示开环脉冲传递函数n求系统的伯德图:求系统的伯德图:bode(Gz)Gz表示开环脉冲传递函数你现在浏览的是第三十三页,共38页内容提要:内容提要:n1、MATLAB的基础知识的基础知识n2、MATLAB的控制工具箱的控制工具箱n3、Simulink与控制系统仿真与控制系统仿真你现在浏览的是第三十四页,共38页Simulink与控制系统仿真:与控制系统仿真:nSimulink环境是系统建模、分析和仿真的理想环境是系统建模、分析和仿真的理想工具,它提供的模块有一般线性、非线性系统工具,它提供的模块有一般线性、非线性系统所需的模块,也有更高级的模块,适合于系统所需的模块,也有更高级的模块,适合于系统的建模与仿真。的建模与仿真。你现在浏览的是第三十五页,共38页离散线性系统的性能分析离散线性系统的性能分析设:计算机控制系统如图所示:设:计算机控制系统如图所示:你现在浏览的是第三十六页,共38页脱离工具箱,直接利用差分方程编程脱离工具箱,直接利用差分方程编程你现在浏览的是第三十七页,共38页脱离工具箱,直接利用差分方程编程脱离工具箱,直接利用差分方程编程clear;clc;error_1=0;%e(k-1)=0u_1=0;%u(k-1)=0u_2=0;%u(k-2)=0y_1=0;%y(k-1)=0for 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);endplot(y);你现在浏览的是第三十八页,共38页