控制系统CAD-基于MATLAB语言第2章-M课件_第1页
控制系统CAD-基于MATLAB语言第2章-M课件_第2页
控制系统CAD-基于MATLAB语言第2章-M课件_第3页
控制系统CAD-基于MATLAB语言第2章-M课件_第4页
控制系统CAD-基于MATLAB语言第2章-M课件_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章MATLAB与Simulink简介第2章MATLAB与Simulink简介2.1MATLAB的基础知识2.1.1MATLAB语言系统1.MATLAB简介MATLAB(MATrixLABoratory,即矩阵实验室)是美国的CleveMoler教授利用自己研制的基于特征值计算和线性代数软件包开发的一种高级语言。

1990年推出的MATLAB3.5i是第一个可以运行于MicrosoftWindows下的版本,它可以在两个窗口上分别显示命令行计算结果和图形结果。稍后推出的SimuLAB环境首次引入基于框图的仿真功能,该环境就是我们现在所知的Simulink,其模型输入的方式使得一个复杂的控制系统的数字仿真问题变得十分直观而且相当容易。

2.1MATLAB的基础知识2.1.1MATLAB语经过多年来版本的不断更新,新版本的MATLAB功能已经十分强大,其应用领域日益广泛,速度更快,数值性能更好;用户图形界面设计更趋合理;与C语言接口及转换的兼容性更强;新的虚拟现实工具箱更给仿真结果三维视景下显示带来了新的解决方案。经过多年来版本的不断更新,新版本的MATLAB功能已经十分强MATLAB具有以下主要特点:(1)超强的数值运算功能。(2)语法限制不严格,程序设计自由度大。(3)程序的可移植性很好。

(4)强大的数据可视化功能。

(5)丰富的工具箱。

MATLAB具有以下主要特点:(1)超强的数值运算功能。(22.MATLAB工作环境2.MATLAB工作环境图形窗口“Figure”

图形窗口“Figure”M文件窗口

M文件窗口3.MATLAB的M文件所谓M文件,就是用户把要实现的命令写在一个以.m为扩展名的文件中M文件有两种格式(统称为M文件)函数式M文件程序式M文件程序式M文件用于把很多需要在命令窗口输入的命令放在一起,就是命令的简单叠加函数式M文件用于把重复的程序段封装成函数供用户调用。3.MATLAB的M文件所谓M文件,就是用户把要实现的命令写(1)程序式M文件(1)程序式M文件运行程序,得到结果:运行程序,得到结果:(2)函数式M文件函数式M文件首行总是以关键字“function”开头,并在首行中列出全部输入、输出参数以及函数名。函数名应置于等号右侧并与对应的M文件名相同,输出参数紧跟在“function”之后,常用中括号括起来(若仅有一个输出参数则无需中括号);输入参数紧跟在函数名之后,常用小括号括起来。如果函数有多个输入或输出参数,则多个参数之间用英文状态下的逗号加以分隔。(2)函数式M文件函数式M文件首行总是以关键字“functic=5运行程序,得到结果:c=运行程序,4.MATLAB的帮助系统MATLAB具有完善的帮助系统,帮助内容丰富,获取帮助的形式多样。帮助系统包括:命令行帮助联机帮助演示帮助充分利用帮助系统,可以更快更准确地掌握MATLAB的使用方法。

4.MATLAB的帮助系统MATLAB具有完善的帮助系统,命令行帮助命令行帮助help工具箱或命令名

help工具箱或命令名联机帮助联机帮助演示帮助演示帮助2.1.2MATLAB的基本运算1.MATLAB的基本语句结构(1)变量变量命名的规则为:1)变量的名称必须以字母开头,其后可以为字母、数字或者下划线。2)变量名长度不超过63个字符,超过的部分将会被忽略。3)变量名区分字母的大小写;2.1.2MATLAB的基本运算1.MATLAB的基本语MATLAB中还设置了如下一些特殊变量:MATLAB中还设置了如下一些特殊变量:

MATAB语言的赋值语句有两种:

·变量名=运算表达式·[返回变量列表]=函数名(输入变量列表)例如

>>T=0:pi/50:2*pi;>>[m,p]=bode(a,b,c,d,w)(2)赋值语句例如(2)赋值语句说明等号右边的表达式可以由分号结束,也可以由逗号或换行号结束,但它们的含义是不同的。如果用分号结束,则左边的变量结果将不在屏幕上显示出来;由逗号或换行号结束,则将把左边的返回值内容全部显示出来。

在调用函数时,MATLAB允许一次返回多个结果,当函数的输出参数不只一个时,用中括号“[]”把输出参数括起来,参数之间用逗号分开;输入变量用小括号“()”括起来,当个数不只一个时,用逗号分开。

说明在调用函数时,MATLAB允许一次返回多个结果,在MATLAB中,冒号“:”是很有用的算子,经常用它来生成向量。语句>>a=i:k:j;它生成一个从i到j步长为k的行向量a。如果增量为负值,可以得一个递减顺序的向量,增量为l时可以忽略。MATLAB用通常的十进制数表示常数、小数和负数。与通常的数学表示一样,还可以使用以10为幂的常数以及虚数,MATLAB接受各种合法的数据输入。

(3)数据的输入输出格式在MATLAB中,冒号“:”是很有用的算子,经常用它来生成向(4)常用操作命令(4)常用操作命令2.MATLAB的基本运算加(+)、减(-)、乘(*)、除(/)、幂(^)等运算操作

MATLAB还提供几乎所有的运算函数

初等运算函数

2.MATLAB的基本运算加(+)、减(-)、乘(*)、除三角函数

三角函数数据统计分析函数

数据统计分析函数例2-1某二阶欠阻尼系统的单位阶跃响应为试绘制响应曲线。MATLAB程序如下:t=0:0.1:15;c=1-1.15*exp(-0.5*t).*sin(0.866*t+pi/3);plot(t,c);grid;

%绘制曲线由max函数可求出响应的最大值(峰值)

MATLAB程序如下:

mp=max(c)

运行程序,得到结果:mp=1.1623例2-1某二阶欠阻尼系统的单位阶跃响应为试绘制响应曲线。M运行程序,得到结果:运行程序,得到结果:3.矩阵运算MATLAB中所有的计算都是以矩阵为基本单元进行的,MATLAB对矩阵的运算功能最齐全,也最强大。(1)矩阵输入矩阵输入时一行中各元素间用逗号“,”或空格,行间用分号“;”或直接回车,整个矩阵以括号“[”和“]”表示开始和结束。3.矩阵运算MATLAB中所有的计算都是以矩阵为基本单元进例2-2输入以下MATLAB语句a=[123;456;789]b=[1,1+2i;2+3i,exp(-1)]

运行程序,得到结果:a=123456789b=1.00001.0000+2.0000i2.0000+3.0000i0.3679例2-2输入以下MATLAB语句a=[123;45常用的初等矩阵

常用的初等矩阵(2)矩阵的常规运算注意矩阵的四则运算必须复合矩阵的维数要求,否则会给出矩阵维数错误提示。

(2)矩阵的常规运算注意矩阵的四则运算必须复合矩阵的维数要例2-3矩阵加法与乘法。输入以下MATLAB语句a=[121;221;312];b=[331;321;143];c=a+bd=a*b运行程序,得到结果:c=452542455d=1011613147141910例2-3矩阵加法与乘法。输入以下MATLAB语句a=[1例2-4矩阵的点运算。输入以下MATLAB语句运行程序,得到结果:a=[121;221;312];b=[331;321;143];c=a.*bd=a.^b

c=361641346d=181841318例2-4矩阵的点运算。输入以下MATLAB语句运行程序,得例2-5矩阵右除与左除。输入以下MATLAB语句a=[121;221;212];b=[1;2;3];a/b

%矩阵右除运行程序,得到结果:???Errorusing==>mrdivideMatrixdimensionsmustagree.a\b

%矩阵左除重新输入语句ans=1.0000-0.33330.6667a=[121;221;212];b=[1;2;3];a/b

%矩阵右除运行程序,得到结果:例2-5矩阵右除与左除。输入以下MATLAB语句a=[1例2-6矩阵转置与逆矩阵。输入以下MATLAB语句a=[010;001;-6-11-6];az=a‘ai=inv(a)运行程序,得到结果:az=00-610-1101-6ai=-1.8333-1.0000-0.16671.00000001.00000例2-6矩阵转置与逆矩阵。输入以下MATLAB语句a=[0(3)矩阵特征值运算(3)矩阵特征值运算例2-7分别计算矩阵a的有关特征参数。输入以下MATLAB语句a=[123;456;780][cond(a),norm(a),rank(a)]

运行程序,得到结果:ans=35.105913.20153.0000例2-7分别计算矩阵a的有关特征参数。输入以下MATLAB4.关系运算和逻辑运算MATLAB的关系运算符

说明

a和b可以都是矩阵或数组,它们的大小完全相同。对于关系和逻辑表达式的输出来说,1表示“真”,而0则表示“假”。关系操作是对矩阵或数组各自相对应的元素进行比较,返回的结果与两相比较的矩阵或数组的大小相同的0、1阵。4.关系运算和逻辑运算MATLAB的关系运算符说明a和例2-8比较矩阵的大小。输入以下MATLAB语句a=[1612;3327];b=[234;678];c=gt(a,b)运行程序,得到结果:c=011010说明对于复数运算,“==”与“~=”运算,既比较实部,又比较虚部。而其他运算仅比较实部。关系运算同样也可用于常量与矩阵的比较,在这种情况下,该常量与矩阵的每一个元素进行比较,其结果是一个与矩阵同维数的0、1矩阵。例2-8比较矩阵的大小。输入以下MATLAB语句a=[1

逻辑操作符

逻辑操作符例2-9矩阵的逻辑与、或、非运算。输入以下MATLAB语句x=[01;10];y=[00;10];x&yx|ynot(x)运行程序,得到结果:ans=0010ans=0110ans=1001例2-9矩阵的逻辑与、或、非运算。输入以下MATLAB语句5.多项式运算5.多项式运算例2-10输入以下MATLAB语句p=[10-2-4];%输入多项式r=roots(p)%求多项式P(x)=-2x–4的根运行程序,得到结果:r=2.0000-1.0000+1.0000i-1.0000-1.0000i例2-10输入以下MATLAB语句p=[10-2-4例2-11输入以下MATLAB语句a=[1.2350.9;51.756;3901;1234];%输入矩阵poly(a)%求矩阵a的特征多项式polyval(ans,20)%求特征多项式中未知数为20时的值

运行程序,得到结果:ans=1.0000-6.9000-77.2600-86.1300604.5500ans=7.2778e+004说明矩阵a的特征多项式为

当x=20时,多项式的值为72778。例2-11输入以下MATLAB语句a=[1.2350例2-12已知控制系统的开环传递函数为求系统的闭环特征方程并计算系统的闭环特征根。p0=conv([1,2],[1,3])+conv([1,0],[1,1])%求特征方程p0=266>>p1=rref(p0)%行系数化简p1=133>>r=roots(p1)%求特征根r=-1.5000+0.8660i-1.5000-0.8660i输入语句说明系统闭环特征方程特征根-1.5000+0.8660i,-1.5000-0.8660i例2-12已知控制系统的开环传递函数为求系统的闭环特征方程2.1.3MATLAB的绘图强大的图形功能是MATLAB受到人们广泛欢迎的一个重要原因。MATLAB软件提供了丰富的用于绘制图形、标注图形以及输出图形的基本命令。常用的有

二维图形三维图形2.1.3MATLAB的绘图强大的图形功能是MATLAB1.二维图形(1)曲线绘图函数格式:plot(x)plot(x1,y1,x2,y2…)plot(x1,y1,’plotstyle’…)

1.二维图形(1)曲线绘图函数格式:plot(x)plot函数是MATLAB中绘制基本二维曲线图形的函数,它的基本功能是打开一个新的图形窗口绘制曲线。

若已经存在一个图形窗口,则自动将该窗口的原内容清除,然后再绘制新的图形。

·plot(x1,y1,x2,y2…)

绘制以(x1,y1),(x2,y2)…确定的多条曲线。·plot(x1,y1,’plotstyle’…)

绘制由字符串“plotstyle”定义的颜色、线型的多条曲线。其中“plotstyle”选项的部分表示如表2-4所示。plot函数是MATLAB中绘制基本二维曲线图形的函数,它的MATLAB绘图命令选项

MATLAB绘图命令选项·title(‘字符串’)用于给图形添加标题,将字符串添加在图形上方的中部。·xlabel(‘字符串’)用于对图形的x轴进行说明,将字符串添加在图形x轴下方。·ylabel(‘字符串’)用于对图形的y轴进行说明,将字符串添加在图形y轴左方。

·text(x,y,‘字符串’)用于在图形指定位置(x,y)添加字符串对图形进行说明。·(2)绘图辅助函数(2)绘图辅助函数gtext(‘字符串’)与text功能类似,只是在执行命令后会在图形中出现一个十字线,可用鼠标来指定添加字符串的位置。

·grid

用于给图形添加栅格,有3种格式:

>>gridon;

给图形添加栅格

>>gridoff;

去除栅格

>>grid;

在添加栅格和去除栅格两种状态中切换·axis()

用于对绘图坐标系进行控制和修饰。常用格式:

>>axis(‘equal’)

得到一个方正的坐标系

>>axis(‘square’)

得到相同比例的坐标系

>>axis([x1,x2,y1,y2])

指定x坐标轴和y坐标轴的范围gtext(‘字符串’)·figure

创造新的图形窗口。·hold

用于进行图形保持。想在已经存在的图形上添加曲线时,需用hold函数。调用格式与grid类似。·subplot(mnp)

用于在指定位置建立坐标,可实现在一个图形窗口内绘制多个坐标系。subplot(mnp)表示将屏幕分割成m×n个区域(m和n均小于4),p代表当前绘图区域的序号,序号以从左到右,从上到下的顺序编号。·figure例2-13单窗口多曲线子图绘制。输入以下MATLAB语句MATLAB程序如下:x=pi*(0:0.05:2);y1=sin(2*x);y2=cos(2*x);y3=y1+y2;y4=y1-y2;subplot(221);plot(x,y1,'o');xlabel('(a)');grid;subplot(222);plot(x,y2,'*');xlabel('(b)');grid;subplot(223);plot(x,y3,'-.');xlabel('(c)');grid;subplot(224);plot(x,y4);xlabel('(d)');grid;例2-13单窗口多曲线子图绘制。输入以下MATLAB语句M运行程序,得到结果:运行程序,得到结果:除了plot函数外,MATLAB中还设置了一些其它的二维绘图函数,以绘制一些特定的图形。(3)其它二维绘图函数下表给出了几个常用函数除了plot函数外,MATLAB中还设置了一些其它的二维绘图二维绘图函数

二维绘图函数例2-14绘制极坐标曲线。输入以下MATLAB语句t=0:0.01:2*pi;r=sin(2*t).*cos(2*t);polar(t,r,'r')MATLAB程序如下:例2-14绘制极坐标曲线。输入以下MATLAB语句t=0:运行程序,得到结果:运行程序,得到结果:2.三维图形MATLAB提供了各种各样的命令用于绘制三维图形。这里主要讨论三维绘图的基本方法和基本命令。绘制三维曲线图的基本命令是plot3

绘制三维曲面网线图的命令是mesh

曲面绘图函数是surf

2.三维图形绘制三维曲线图的基本命令是plot3plot3(x1,y1,z1,’s1’,x2,y2,z2,’s2’,x3,y3,z3,‘s3’,…)用于三维多曲线绘图,其中xn,yn,zn是向量或矩阵,sn是可选的字符串,用来指定颜色和线形。mesh(X,Y,Z)

根据矩阵X,Y和Z绘制彩色的空间三维网线图。X,Y和Z中对应的元素映射为三维空间上的点,点与点之间用线段连接。其中网线的颜色随着网点高度的改变而改变。曲面绘图函数surf的调用格式与mesh完全一样plot3(x1,y1,z1,’s1’,x2,y2,z2,’例2-15作三维柱面螺旋线。输入以下MATLAB语句t=0:pi/50:10*pi;plot3(sin(t),cos(t),t);xlabel('sin(t)')ylabel('cos(t)')zlabel('t')gridMATLAB程序如下:例2-15作三维柱面螺旋线。输入以下MATLAB语句t=运行程序,得到结果:运行程序,得到结果:例2-16阔边帽三维网线图。输入以下MATLAB语句x=-8:0.5:8;y=x;[X,Y]=meshgrid(x,y);r=sqrt(X.^2+Y.^2)+eps;Z=sin(r)./r;mesh(X,Y,Z)MATLAB程序如下:例2-16阔边帽三维网线图。输入以下MATLAB语句x=-运行程序,得到结果:运行程序,得到结果:例2-17绘制三维陀螺椎面。输入以下MATLAB语句t1=0:0.1:0.9;t2=1:0.1:2;r=[t1,-t2+2];[X,Y,Z]=cylinder(r,30);surf(X,Y,Z);colormap(jet)grid;MATLAB程序如下:例2-17绘制三维陀螺椎面。输入以下MATLAB语句t1=运行程序,得到结果:运行程序,得到结果:2.1.4MATLAB循环与转移控制大部分的求解问题都要受到一定条件的控制,和其它高级语言一样,MATLAB也提供了一些常用的控制语句.从而使得MATLAB语言的编程显得十分灵活。MATTAB支持的控制语句和C语言中的控制语句结构很相似,有循环控制语句和条件转移控制语句。2.1.4MATLAB循环与转移控制大部分的求解问题都要1.条件控制语句(1)if语句if语句是MATLAB提供的最基本的条件转移语句,它用于根据一定的逻辑条件执行相应的一组语句。

格式ifexpressionstatementsendifexpression1statements1elseifexpression2statements2elseifexpression3statements3elsestatements4end1.条件控制语句(1)if语句if语句是MATLAB提供的最例2-18根据一个整数的符号和奇偶性,分成三种情况作不同的处理。ifn<0

%如果n是负数,显示错误信息

disp(‘Inputmustbepositive’);

elseifrem(n,2)==0

%如果n是正偶数,则除以2

A=n/2else

%如果n为正奇数,则加1再除以2

A=(n+1)/2

end例2-18根据一个整数的符号和奇偶性,分成三种情况作不同switch语句是MATLAB特别让熟悉C等高级语言的用户方便地编写程序而专门添加的。其调用格式为:(2)switch语句switchexpressioncasevalue1statements1casevalue2statements2 …otherwisestatementsend其中expression的值可以是标量和字符串。switch语句是MATLAB特别让熟悉C等高级语言的用户方trystatement,…statement,catch,statements…statementsend(3)try和tatch语句try和catch语句为试探式语句,其调用格式为:

这种语句结构先试探执行try和catch之间的语句,如果在执行的过程中遇到错误,则把错误信息赋值给lasterr变量,并放弃执行这一段语句,转而执行catch和end之间的语句。try(3)try和tatch语句try和catch语句为试2.循环控制语句(1)for语句如果要反复执行的一组语句的循环次数是已知或预定义的,就可以使用for循环语句。它的基本格式为:fori=is:id:ie;

statementsend其中:

is是循环变量的初值;

id是循环变量的增量;

ie是循环变量的终值。

2.循环控制语句(1)for语句如果要反复执行的一组语句的循例2-19输入以下MATLAB语句a=zeros(1,10);n=10;fori=1:na(i)=iend运行程序,得到结果:a=12345678910例2-19输入以下MATLAB语句a=zeros(1,1for语句可以嵌套使用,例如:m=10;n=5;fori=1:mforj=1:nF(i,j)=1/(i+j-1);endendF运行程序,得到结果:F=1.00000.50000.333

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论