MATLAB与控制系统仿真

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MATLAB与控制系统仿真控制工程基础上机辅导MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程、科学计算和数学学科中许多问题。MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化。矩阵是MATLAB的核心1、变量MATLAB中变量的命名规则是:(1)变量名必须是不含空格的单个词;(2)变量名区分大小写;(3)变量名最多不超过19个字符;(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号.一、变量与函数2、数学运算符号及标点符号(1)MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果.(2)“%”后面所有文字为注释.(3)“...”表示续行.+加法运算,适用于两个数或两个同阶矩阵相加.—减法运算*乘法运算.*点乘运算/除法运算./点除运算^乘幂运算.^点乘幂运算\反斜杠表示左除.函数名称函数名称sin(x)正弦函数asin(x)反正弦函数cos(x)余弦函数acos(x)反余弦函数tan(x)正切函数atan(x)反正切函数abs(x)绝对值max(x)最大值min(x)最小值sum(x)元素的总和sqrt(x)开平方exp(x)以e为底的指数log(x)自然对数)(log10x以10为底的对数sign(x)符号函数fix(x)取整3、数学函数4、M文件M文件建立方法:1.在Matlab中,点:File-New-M-file2.在编辑窗口中输入程序内容3.点:File-Save,存盘,M文件名必须与函数名一致。Matlab的应用程序也以M文件保存。MATLAB工作界面命令窗口工作空间历史命令当前路径MATLAB编辑窗口设置断点取消断点单步运行进入函数跳出函数退出调试继续运行程序控制语句•循环语句MATLAB中的循环语句包括for循环和while循环两种。for循环的基本格式为:for循环变量=起始值:步长:终止值循环体end步长的缺省值是1。步长可以在正实数或负实数范围内任意指定,对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。程序控制语句while循环的基本格式为:while表达式循环体end若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若为假则跳出循环体,向下继续执行,否则继续执行循环体。break:从循环体中跳出,并使循环结束程序控制语句•if-else-elseif语句if格式:if逻辑表达式执行语句end当逻辑表达式的值为真,则执行该结构中的执行语句内容,执行完后向下继续执行,若逻辑表达式的值为假,跳过结构中的执行语句继续向下执行。程序控制语句if-else格式if逻辑表达式执行语句1else执行语句2end逻辑表达式的值为真则执行语句1,若逻辑表达式的值为假,则跳过执行语句1而执行语句2,然后向下执行。程序控制语句if-elseif格式if逻辑表达式1执行语句1elseif逻辑表达式2执行语句2……elseif逻辑表达式n执行语句nelse执行语句elend如果逻辑表达式的值为真,则执行语句1,若逻辑表达式的值为假,则判断逻辑表达式2的值,若为真,则执行语句2,否则向下执行,若所有表达式均为假,执行语句el。程序控制语句•switch语句switch语句的格式为:switch表达式(标量或字符串)case值1语句1case值2语句2┅case值n语句notherwise语句owend表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,如果都不同,则执行otherwise中的语句。MATLAB程序编写及调试MATLBA程序设计基本原则:%后面的内容是程序的注解,要善于运用注解使程序更具可读性。养成在主程序开头用clear指令清除变量的习惯,以消除工作空间中其他变量对程序运行的影响。但注意在子程序中不要用clear。参数值要集中放在程序的开始部分,以便维护。要充分利用MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。MATLBA程序设计基本原则程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。充分利用Debugger来进行程序的调试(设置断点、单步执行、连续执行)设置好MATLAB的工作路径,以便程序运行。图形绘制图形绘制图形标注图形控制plot(x,y)plot(y)plot(x1,y1,option1,x2,y2,option2,…)plot控制功能:在调用函数plot时,可以指定线型,颜色,和数据点的图标。格式:plot(x,y,‘color_linestyle_marker’)说明:参数color_linestyle_marker为一个字符串,由颜色、线型、数据点的图标组成。图形加注功能将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:title——给图形加标题xlable——给x轴加标注ylable——给y轴加标注text——在图形指定位置加标注gtext——将标注加到图形任意位置gridon(off)——打开、关闭坐标网格线legend——添加图例axis——控制坐标轴的刻度例: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('正弦、余弦')gridaxissquare0246810-1-0.8-0.6-0.4-0.200.20.40.60.81sin(t)cos(t)正正正正正正正正正t正正正正正正正正正axis的用法还有:axis([xminxmaxyminymax])——用行向量中给出的值设定坐标轴的最大和最小值。如axis([-2205])axis(equal)——将两坐标轴设为相等axison(off)——显示和关闭坐标轴的标记、标志axisauto——将坐标轴设置返回自动缺省值线性和颜色字符定义表字符定义线型字符定义线型-实线(默认)--虚线:点划线-.点连线none无线×+-字符定义颜色字符定义颜色yyellow(黄)mmagenta(洋红)ccyan(青)rred(红)ggreen(绿)bblue(兰)默认wwhite(白)kblack(黑)图形绘制图形绘制图形标注图形控制text(x,y,’字符串’)gtext(‘字符串’)title(‘字符串’)xlabel(‘字符串’),ylabel(‘字符串’)图形绘制图形绘制图形标注图形控制figure(1);figure(2);…;figure(n)gridon;gridoffholdon;holdoffaxis([xminxmaxyminymax])subplot(mnk)semilogx;semilogysubplot——子图分割命令调用格式:subplot(m,n,p)——按从左至右,从上至下排列单窗口多曲线分图绘图行列绘图序号绘图一般步骤准备绘图需要的数据;指定绘图的窗口或者区域;调用基本绘图命令;选择线型、颜色、数据点形状;坐标轴控制,包括显示范围、刻度线、比例、网格线;标注控制,包括坐标轴名称、标题、相应文本等。Simulink的操作控制系统的时域分析求取系统单位阶跃响应:step()求取系统的冲激响应:impulse()控制系统的频域分析求取系统对数频率特性图(波特图):bode()求取系统奈奎斯特图:nyquist()margin:求幅值裕度和相角裕度及对应的转折频率freqs:模拟滤波器特性nichols:求连续系统的尼科尔斯频率响应曲线(即对数幅相曲线)ngrid:尼科尔斯方格图根轨迹分析函数pzmap:绘制线性系统的零极点图rlocus:求系统根轨迹。rlocfind:计算给定一组根的根轨迹增益。sgrid:在连续系统根轨迹图和零极点图中绘制出阻尼系数和自然频率栅格。控制系统的数学描述与建模控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。在线性系统理论中,一般常用的数学模型形式有:传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。传递函数描述对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。num=[b1,b2,…,bm,bm+1]den=[a1,a2,…,an,an+1]注意:它们都是按s的降幂进行排列的。11211121......)()()(nnnnmnmmasasasabsbsbsbsRsCsG连续系统的传递函数模型连续系统的传递函数如下:传递函数MATLAB中创建传递函数(TF)对象–创建两个行向量,按降阶顺序分别包含分子和分母多项式中s各次幂的系数–使用tf命令建立TF对象例如:numG=[43];denG=[165];G1=tf(numG,denG)或G1=tf([43],[156])零极点增益模型零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。))...()(())...()(()(2121nmpspspszszszsKsG在MATLAB中零极点增益模型用[z,p,K]矢量组表示。即:z=[z1,z2,…,zm]p=[p1,p2,...,pn]K=[k]函数tf2zp()可以用来求传递函数的零极点和增益。K为系统增益,zi为零点,pj为极点零极点增益模型零点、极点、增益形式(ZPK)表示–输入零点和极点列向量及标量形式的增益–使用zpk命令建立ZPK对象例:zG=-0.75;pG=[-1;-5];kG=4;G2=zpk(zG,pG,kG)或者:G2=zpk(-0.75,[-1;-5],4)传递函数两种形式互换TF形式变换为ZPK形式–Gzpk=zpk(Gtf)–[zz,pp,kk]=zpkdata(Gzpk,’v’)–%获得G(s)的零点、极点和增益ZPK形式变换为TF形式–Svv=tf(Sxx)–[nn,dd]=tfdata(Svv,’v’)–%获得分子分母多项式系数部分分式展开控制系统常用到并联系统,这时就要对系统函数进行分解,使其表现为一些基本控制单元的和的形式。[resG,polG,otherG]=residue(numG,denG)resG留数polG极点otherG常数函数[r,p,k]=residue(b,a)对两个多项式的比进行部分展开,以及把传函分解为微分单元的形式。向量b和a是按s的降幂排列的多项式系数。部分分式展开后,余数返回到向量r,极点返回到列向量p,常数项返回到k。[b,a]=residue(r,p,k)可以将部分分式转化为多项式比p(s)/q(s)。举例:传递函数描述1)》num=[12,24,0,20];den=[24622];2)借助多项式乘法函数conv来处理:》num=4*conv([1,2],conv([1,6,6],[1,6,6]));》den=conv([1,0],conv([1,1],conv([1,1

1 / 52
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功