版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、matlab与控制系统仿真1matlab与控制系统仿真与控制系统仿真机械工程分院测控教研室控制工程基础上机辅导matlab与控制系统仿真2u matlab作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程工程、科学计算科学计算和数学学科数学学科中许多问题。u matlab建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化。u 矩阵是matlab的核心matlab与控制系统仿真31 1、变量、变量 matlab中变量的命名规则命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超
2、过19个字符;(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号. 一、变量与函数一、变量与函数matlab与控制系统仿真42 2、数学运算符号及标点符号、数学运算符号及标点符号(1)matlab的每条命令后,若为逗号或无标点逗号或无标点符号,则显示命令的结果;若命令后为分号分号,则禁止显示结果. (2)“% %” 后面所有文字为注释. (3) “.”表示续行.matlab与控制系统仿真5函 数名 称函 数名 称sin(x)正弦函数asin(x)反正弦函数cos(x)余弦函数acos(x)反余弦函数tan(x)正切函数atan(x)反正切函数abs(x)
3、绝对值max(x) 最大值min(x) 最小值sum(x)元素的总和sqrt(x) 开平方exp(x)以 e为底的指数log(x)自然对数)(log10 x以 10 为底的对数sign(x)符号函数fix(x)取整3 3、数学函数、数学函数matlab与控制系统仿真64 4、m m文件文件m文件建立方法:文件建立方法: 1. 在在matlab中,点中,点:file-new-m-file 2. 在编辑窗口中输入程序内容在编辑窗口中输入程序内容 3. 点:点:file-save,存盘,存盘,m文件名必须与函数名一致。文件名必须与函数名一致。matlab的应用程序也以的应用程序也以m文件保存。文件保
4、存。matlab与控制系统仿真7matlab工作界面工作界面命令窗口命令窗口 工作空间工作空间 历史命令历史命令 当前路径当前路径 matlab与控制系统仿真8matlab编辑窗口编辑窗口设置设置断点断点取消取消断点断点单步单步运行运行进入进入函数函数跳出跳出函数函数退出退出调试调试继续继续运行运行matlab与控制系统仿真9程序控制语句程序控制语句 循环语句matlab中的循环语句包括for循环和while循环两种。ufor循环的基本格式为:for 循环变量=起始值:步长:终止值循环体end 步长的缺省值是1。步长可以在正实数或负实数范围内任意指定,对于正数,循环变量的值大于终止值时,循环结
5、束;对于负数,循环变量的值小于终止值时,循环结束。matlab与控制系统仿真10程序控制语句程序控制语句uwhilewhile循环的基本格式为:循环的基本格式为:while while 表达式表达式循环体循环体endend 若表达式为真,则执行循环体的内容,执行若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若为假则跳出循环体,后再判断表达式是否为真,若为假则跳出循环体,向下继续执行,否则继续执行循环体。向下继续执行,否则继续执行循环体。 lbreak:从循环体中跳出,并使循环结束从循环体中跳出,并使循环结束matlab与控制系统仿真11程序控制语句程序控制语句ifelseels
6、eif语句if格式:if 逻辑表达式执行语句end 当逻辑表达式的值为真,则执行该结构中的执当逻辑表达式的值为真,则执行该结构中的执行语句内容,执行完后向下继续执行,若逻辑行语句内容,执行完后向下继续执行,若逻辑表达式的值为假,跳过结构中的执行语句继续表达式的值为假,跳过结构中的执行语句继续向下执行。向下执行。matlab与控制系统仿真12程序控制语句程序控制语句if-else格式if 逻辑表达式执行语句1else执行语句2end 逻辑表达式的值为真则执行语句逻辑表达式的值为真则执行语句1 1,若逻辑表达,若逻辑表达式的值为假,则跳过执行语句式的值为假,则跳过执行语句1 1而执行语句而执行语句
7、2 2,然,然后向下执行。后向下执行。 matlab与控制系统仿真13程序控制语句程序控制语句if-elseifif-elseif格式格式if 逻辑表达式1执行语句1elseif 逻辑表达式2执行语句2elseif 逻辑表达式n执行语句n else执行语句el end 如果逻辑表达式的值为真,则执行语句如果逻辑表达式的值为真,则执行语句1 1,若逻辑表达式的值为假,则判断逻辑表达式若逻辑表达式的值为假,则判断逻辑表达式2 2的的值,若为真,则执行语句值,若为真,则执行语句2 2,否则向下执行,否则向下执行, ,若若所有表达式均为假,执行语句所有表达式均为假,执行语句el el 。matlab与
8、控制系统仿真14程序控制语句程序控制语句switch语句 switch语句的格式为: switch 表达式(标量或字符串)case 值1语句1case 值2语句2case 值n语句notherwise语句owend 表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,如果都不同,则执行otherwise中的语句。matlab与控制系统仿真15 matlab程序编写及调试程序编写及调试matlba程序设计基本原则:l后面的内容是程序的注解,要善于运用注解使程序更具可读性。l养成在主程序开头用clear指令清除变量的习惯,以消除工作空间中其他变量对程序运行的影响。但注意在子程序中不要
9、用clear。l参数值要集中放在程序的开始部分,以便维护。要充分利用matlab工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。matlab与控制系统仿真16matlba程序设计基本原则程序设计基本原则l程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。l充分利用debugger来进行程序的调试(设置断点、单步执行、连续执行)l设置好matlab的工作路径,以便程序运行。matlab与控制系统仿真17 图形绘制图形绘制l图形绘制l图形标注l图形控制plot(x,y)plot(y)plot(x1,y1
10、,option1,x2,y2,option2,)matlab与控制系统仿真18plot控制控制l功能:在调用函数plot时,可以指定线型,颜色,和数据点的图标。l格式:plot(x,y,color_linestyle_marker)l说明:参数color_linestyle_marker 为一个字符串,由颜色、线型、数据点的图标组成。 matlab与控制系统仿真19图形加注功能图形加注功能将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为: title 给图形加标题 xlable 给x轴加标注 ylable 给y轴加标注 text 在图形指定位置加标注 gtext 将标注加到图形任意
11、位置 grid on(off) 打开、关闭坐标网格线 legend 添加图例 axis 控制坐标轴的刻度matlab与控制系统仿真20例:t=0:0.1:10y1=sin(t);y2=cos(t);plot(t,y1,r,t,y2,b-);x=1.7*pi;1.6*pi;y=-0.3;0.8;s=sin(t);cos(t);text(x,y,s);title(正弦和余弦曲线);legend(正弦,余弦)xlabel(时间t),ylabel(正弦、余弦)gridaxis squarematlab与控制系统仿真210246810-1-0.8-0.6-0.4-0.200.20.40.60.81sin
12、(t)cos(t)正 弦和 余 弦曲 线时 间 t正 弦、 余 弦正 弦余 弦matlab与控制系统仿真22 axis的用法还有: axis(xmin xmax ymin ymax) 用行向量中 给出的值设定坐标轴的最大和最小值。 如axis (-2 2 0 5) axis(equal) 将两坐标轴设为相等 axis on(off) 显示和关闭坐标轴的标 记、标志 axis auto 将坐标轴设置返回自动缺 省值matlab与控制系统仿真23线性和颜色字符定义表线性和颜色字符定义表字符定义字符定义线型线型字符定义字符定义线型线型- -实线(默认)实线(默认)-虚线虚线: :点划线点划线-.-.
13、点连线点连线nonenone无线无线 字符定义字符定义颜色颜色字符定义字符定义颜色颜色y yyellowyellow(黄)(黄)m mmagentamagenta(洋红)(洋红)c ccyancyan(青)(青)r rredred(红)(红)g ggreengreen(绿)(绿)b bblueblue(兰)(兰)默认默认w wwhitewhite(白)(白)k kblackblack(黑)(黑)matlab与控制系统仿真24图形绘制图形绘制l图形绘制l图形标注l图形控制 text(x,y,字符串) gtext(字符串) title(字符串) xlabel(字符串),ylabel(字符串)mat
14、lab与控制系统仿真25图形绘制图形绘制l图形绘制l图形标注l图形控制figure(1);figure(2);figure(n)grid on; grid offhold on; hold offaxis(xmin xmax ymin ymax)subplot(mnk)semilogx;semilogymatlab与控制系统仿真26subplot 子图分割命令调用格式: subplot(m,n,p) 按从左至右, 从上至下排列单窗口多曲线分图绘图单窗口多曲线分图绘图行列绘图序号matlab与控制系统仿真27绘图一般步骤绘图一般步骤l准备绘图需要的数据;l指定绘图的窗口或者区域;l调用基本绘图命
15、令;l选择线型、颜色、数据点形状;l坐标轴控制,包括显示范围、刻度线、比例、网格线;l标注控制,包括坐标轴名称、标题、相应文本等。 matlab与控制系统仿真28simulink的操作的操作matlab与控制系统仿真29控制系统的时域分析q求取系统单位阶跃响应:step()q求取系统的冲激响应:impulse()matlab与控制系统仿真30控制系统的频域分析q求取系统对数频率特性图(波特图):bode()q求取系统奈奎斯特图:nyquist()margin:求幅值裕度和相角裕度及对应的转折频率freqs:模拟滤波器特性nichols:求连续系统的尼科尔斯频率响应曲线(即对数幅相曲线)ngri
16、d:尼科尔斯方格图matlab与控制系统仿真31根轨迹分析函数pzmap:绘制线性系统的零极点图rlocus:求系统根轨迹。rlocfind:计算给定一组根的根轨迹增益。sgrid:在连续系统根轨迹图和零极点图中绘制出阻尼系数和自然频率栅格。matlab与控制系统仿真32控制系统的数学描述与建模控制系统的数学描述与建模 q 控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。q 在线性系统理论中,一
17、般常用的数学模型形式有:传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。matlab与控制系统仿真33传递函数描述 对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在matlab中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。num=b1,b2,bm,bm+1den=a1,a2,an,an+1注意:它们都是按s的降幂进行排列的。11211121.)()()(nnnnmnmmasasasabsbsbsbsrscsg连续系统的传递函数模型连续系
18、统的传递函数如下:matlab与控制系统仿真34传递函数传递函数lmatlab中创建传递函数(tf)对象创建两个行向量,按降阶顺序分别包含分子和分母多项式中s各次幂的系数使用tf命令建立tf对象 例如: numg=4 3;deng=1 6 5; g1=tf(numg,deng)或 g1=tf(4 3,1 5 6)matlab与控制系统仿真35零极点增益模型l零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。).()().()()(2121nmpspspszszszsksgv在matlab中零极点增益模型用
19、z,p,k矢量组表示。即:vz=z1,z2,zmvp=p1,p2,.,pnvk=kv函数tf2zp()可以用来求传递函数的零极点和增益。k为系统增益,zi为零点,pj为极点matlab与控制系统仿真36零极点增益模型l零点、极点、增益形式(zpk)表示输入零点和极点列向量及标量形式的增益使用zpk命令建立zpk对象 例: zg=-0.75;pg=-1;-5;kg=4; g2=zpk(zg,pg,kg) 或者: g2=zpk(-0.75,-1;-5,4)matlab与控制系统仿真37传递函数传递函数两种形式互换两种形式互换ltf形式变换为形式变换为zpk形式形式 gzpk=zpk(gtf) zz
20、,pp,kk=zpkdata(gzpk,v)%获得获得g(s)的零点、极点和增益的零点、极点和增益lzpk形式变换为形式变换为tf形式形式svv=tf(sxx)nn,dd=tfdata(svv,v)%获得分子分母多项式系数获得分子分母多项式系数matlab与控制系统仿真38部分分式展开l控制系统常用到并联系统,这时就要对系统函数进行分解,使其表现为一些基本控制单元的和的形式。lresg,polg,otherg=residue(numg,deng) resg留数 polg极点 otherg 常数函数r,p,k=residue(b,a)对两个多项式的比进行部分展开,以及把传函分解为微分单元的形式。
21、l向量b和a是按s的降幂排列的多项式系数。部分分式展开后,余数返回到向量r,极点返回到列向量p,常数项返回到k。lb,a=residue(r,p,k)可以将部分分式转化为多项式比p(s)/q(s)。matlab与控制系统仿真39举例:传递函数描述举例:传递函数描述1)num=12,24,0,20;den=2 4 6 2 2;2)借助多项式乘法函数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);22642202412)(23423sssssssg) 523() 1(
22、)66)(2( 4)(23322sssssssssgmatlab与控制系统仿真40零极点增益模型:num=1,11,30,0;den=1,9,45,87,50; z,p,k=tf2zp(num,den)50874593011)(23423ssssssssg)43)(43)(2)(1() 5)(6()(jsjsssssssgz= 0 -6 -5p= -3.0000+4.0000i -3.0000-4.0000i -2.0000 -1.0000k= 1结果表达式:matlab与控制系统仿真41部分分式展开:num=2,0,9,1;den=1,1,4,4; r,p,k=residue(num,den
23、)44192)(233ssssssg12225. 0225. 02)(sisiisisgp= 0.0000+2.0000i 0.0000-2.0000i -1.0000k= 2r= 0.0000-0.2500i 0.0000+0.2500i -2.0000结果表达式:matlab与控制系统仿真42应用应用matlab进行时域分析进行时域分析 1. 应用matlab分析系统的稳定性 在matlab中,可利用pzmap函数绘制连续的零、极点图,也可以利用tf2zp函数求出系统的零、极点,从而判断系统的稳定性。 matlab与控制系统仿真43【例1】 已知连续系统的传递函数为2724364523)(
24、2345234ssssssssssg要求: (1) 求出该系统的零、 极点及增益; (2) 绘出其零、 极点图, 判断系统稳定性。 matlab与控制系统仿真44 num = 3, 2, 5, 4, 6; den = 1, 3, 4, 2, 7, 2; z,p,k=tf2zp(num, den); disp(z) disp(p) disp(k) pzmap(num,den); title(poles and zeros map); 解: 可执行如下程序: %this program create a transfer function and then finds/displays its p
25、oles, zeros and gain2724364523)(2345234ssssssssssgmatlab与控制系统仿真45l程序执行结果如下: l屏幕显示: l z=0.4019+1.1965i p=-1.7680+1.2673i 0.4019-1.1965i -1.7680-1.2673i -0.7352+0.8455i 0.4176+1.1130i -0.7352-0.8455i 0.4176-1.1130i -0.2991 k=3 matlab与控制系统仿真46 同时, 屏幕上显示系统的零、极点分布图,如图所示。可以看出系统有在s右半平面上的闭环极点,所以系统不稳定。poles and zeros mapreal axisimag axis 2 1.5 1 0.500.5 1.5 1 0.500.511.5系统零、 极点分布图 matlab与控制系统仿真472.应用matlab分析系统的动态特性 在matlab中,提供了求取连续系统的单位阶跃响应函数step,以及任意输入下的仿真函数lsim。 【例2】已知典型二阶系统的传递函数为: 2222)(nnnsssg其中n=6, 绘制系统在=0.1, 0.2, , 1.0, 2.0 时的单位阶
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论