MATLAB:经典控制系统的分析和设计.doc

上传人:11****ws 文档编号:2124479 上传时间:2019-04-29 格式:DOC 页数:11 大小:83KB
下载 相关 举报
MATLAB:经典控制系统的分析和设计.doc_第1页
第1页 / 共11页
MATLAB:经典控制系统的分析和设计.doc_第2页
第2页 / 共11页
MATLAB:经典控制系统的分析和设计.doc_第3页
第3页 / 共11页
MATLAB:经典控制系统的分析和设计.doc_第4页
第4页 / 共11页
MATLAB:经典控制系统的分析和设计.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、MATLAB:经典控制系统的分析和设计 9.3.1 基本操作及命令1. 访问和退出 MATLAB在大多数系统中,一旦安装了 MATLAB,在调用时,应执行命令 MATLAB。退出 MATLAB 应执行命令 exit 或 quit。2. 如何应用 MATLAB通常以命令驱动方式应用 MATLAB。当输入单个命令时,MATLAB 会立即对其进行处理,并且显示处理结果。MATLAB 也能够执行存储在文件中的命令序列。通过键盘输入的命令,应用向上箭头键可以被存取。通过输入某个最新命令和调用特定的命令行,可以使屏幕内容向上滚动。3. MATLAB 的变量MATLAB 的一个特点是变量在应用之前不必是维数

2、确定的。在 MATLAB 中,变量一旦被采用,会自动产生(如果必要,变量的维数以后还可以改变)。在命令 exit 或 quit 输入之前,这些变量将保留在存储器中。为了得到工作空间内的变量清单,可以通过键盘输入命令 who,当前存放在工作空间内的所有变量便会显示在屏幕上。命令 clear 能从工作空间中清除所有非永久性变量。如果只需要从工作空间中清除某个特定变量,比如“x”,则应输入命令 clear x。4. 以“%”开始的程序行在本书中,许多 MATLAB 程序在编写时附有注解和说明,这些注解和说明阐明了发生在程序中的具体进程。在MATLAB 中以“%” 开始的程序行,表示注解和说明。符号“

3、%”类似于 BASIC 中“REM” 。以“%”开始的行,用来存储程序的注解或说明,这些注解和说明是不执行的。这就是说,在 MATLAB 程序行中,出现在“%”以后的一切内容都是可以忽略的。如果注解或说明需要一行以上程序行,则每一行均需以“%”为起始。5. 应用分号操作符分号用来取消打印。如果语句的最后一个符号是分号,则打印被取消,但是命令仍在执行,而结果不再显示。这是一个有益的特性,因为打印中间结果可能不必要。此外,在输入矩阵时,除非最后一行,分号用来指示一行的结束。6. 应用冒号操作符冒号操作符在 MATLAB 中起着重要作用。该操作符用来建立向量,赋予矩阵下标和规定叠代。例如,j:k 表

4、示j j+1 k,A(:,j)表示矩阵 A 的第 j 列,A(i, :)表示矩阵 A 的第 i 行。7. 输入超过一行的长语句一个语句通常以回车键或输入键终结。如果输入的语句太长,超出了一行,则回车键后面应跟随由 3 个或 3 个以上圆点组成的省略号(),以表明语句将延续到下一行。下面是一个例子:x = 1.234+2.345+3.456+4.567+5.678+6.789+7.890+8.901-9.012符号=、+和- 前后的空白间隔可以任选。这种间隔通常可以起到改善语句清晰度的效果。8. 在一行内输入数个语句如果在一行内可以把数个语句用逗号或分号隔开,则可以把这数个语句放在一行内。例如p

5、lot(x,y,o), text(1,20,System 1), text(1,15,System 2)和plot(x,y,o);text(1,20,System 1);text(1,15,System 2)9. 选择输出格式MATLAB 中的所有计算都是以双精度方式完成的,但是显示输出可以是具有 4 个小数位的定点输出。例如,对于向量x = 1/3 0.00002MATLAB 有下列输出:x=0.3333 0.0000如果在矩阵中至少有一个元素不是严格的整数,则有 4 种可能的输出格式。显示的输出量可以利用下列命令加以控制:format shortformat longformat shor

6、t eformat long e一旦调用了某种格式,则这种被选用的格式将保持,直到对格式进行了改变为止。在控制系统分析中,format short 和 format long 是经常采用的格式。一旦调用了 MATLAB,即使没有输入格式命令,MATLAB 也将以 format short 格式显示数值结果。如果矩阵或向量的所有元素都是严格的整数,则 format short 和format long 的结果是相同的。10. 退出 MATLAB 时如何保存变量当键入“exit”或“quit”时,MATLAB 中的所有变量将消失。如果在退出以前输入命令 save,则所有的变量被保存在磁盘文件 ma

7、tlab.mat 中。当再次进入 MATLAB 时,命令 load 将使工作空间恢复到以前的状态。9.3.2 MATLAB 函数在当前的 MATLAB5.0 及以上版本中,MATLAB 函数的调用格式和其它编程语言是不同的,其典型的调用格式为返回变量列表 = func_name(输入变量列表)其中等号左边的变量为返回变量,等号右边的变量为输入变量。MATLAB 允许在函数调用时同时返回多个变量。而一个函数又可以由多种格式进行调用,例如 bode( )函数可以由下面的格式调用mag, phase = bode(num, den, w)其中 bode( )函数用来求取或绘制系统的 Bode 图,而

8、系统在这里由传递函数分子 num 和分母 den 表示,还可以用下面的格式调用此函数mag, phase = bode(A,B,C,D,w)其中(A,B,C,D)为系统的状态方程模型。尽管两种调用格式是完全不同的, MATLAB 函数还是会自动识别到底是用哪种格式调用该函数的,从而得出正确的结论。在当前版本的控制系统工具箱中还允许用线性模型对象变量 G 来描述系统,例如mag, phase = bode(G, w)MATLAB 函数在返回变量的格式上可以不同,例如若上面的语句中若没有返回变量,则将自动地绘制系统的 Bode 图,否则将返回计算结果数据。9.3.3 绘制响应曲线MATLAB 具有

9、丰富的获取图形输出的程序集。命令 plot 可以产生线性 x-y 图形(用命令 loglog、semilogx、semilogy或 polar 取代 plot,可以产生对数坐标图和极坐标图)。所有这些命令的应用方式都是相同的,它们只对如何对坐标轴进行分度和如何显示数据产生影响。1. x-y 图如果 x 和 y 是同一长度的向量,则命令plot(x, y)将画出 y 值对于 x 值的关系图。2. 画多条曲线为了在一幅图上画出多条曲线,采用具有多个自变量的 plot 命令:plot(X1, Y1, X2, Y2, , Xn, Yn)变量 X1, Y1, X2, Y2 等等是一些向量对。每一个 x-

10、y 对都可以图解表示出来,因而在一幅图上形成多条曲线。多重变量的优点是它允许不同长度的向量在同一幅图上显示出来。每一对向量采用不同的线型。在一幅图上画一条以上的曲线时,也可以利用命令 hold。hold 命令可以保持当前的图形,并且防止删除和修改比例尺。因此,随后的一条曲线将会重叠地画在原曲线图上。再次输入命令 hold,会使当前的图形复原。3. 加进网格线、图形标题、x 轴标记和 y 轴标记一旦在屏幕上显示出图形,就可以画出网格线,定出图形标题,并且标定 x 轴标记和 y 轴标记。MATLAB 中关于网格线、标题、x 轴标记和 y 轴标记的命令如下:grid(网格线 )title(图形标题)

11、xlabel(x 轴标记)ylabel(y 轴标记)应当指出,一旦恢复命令 display,通过依次输入相应的命令,就可以将网格线、图形标题、x 轴标记和 y 轴标记叠加在图形上。4. 在图形屏幕上书写文本为了在图形屏幕的点(x,y)上书写文本,采用命令:text(X, Y, text)例如,利用语句text(3, 0.45, sin t)将从点(3, 0.45)开始,水平地写出 sin t。另外,下列语句:plot(x1, y1, x2, y2), text(x1, y1, 1), text(x2, y2, 2)标记出两条曲线,使它们很容易地区分开来。5. 图形类型下列语句:plot(X,

12、Y, x)将利用标记符号 x 画出一个点状图,而语句:plot(X1, Y1, :, X2, Y2, +)将用虚线画出第一曲线,用加法符号(+)画出第二条曲线。MATLAB 能够提供的线和点的类型如下:线的类型 点的类型实线 - 圆点 .短划线 - 加号 +虚线 : 星号 *点划线 -. 圆圈 o号 6. 颜色下列语句plot(X, Y, r)plot(X, Y, +g)表明,第一幅图采用红线,第二幅图采用绿色“+”号标记。MATLAB 提供的颜色如下:红色 r绿色 g蓝色 b白色 w无色 i7. 自动绘图算法在 MATLAB 中,图形是自动定标的。在另一幅图形画出之前,这幅图形作为现行图将保

13、持不变,但是在另一幅图形画出后,原图形将被删除,坐标轴自动地重新定标。关于暂态响应曲线、根轨迹、伯德图、奈魁斯特图等的自动绘图算法已经设计出来,它们对于各类系统具有广泛的适用性,但是并非总是理想的。因此,在某些情况下,可能需要放弃绘图命令中的自动坐标轴定标特性,改用手工选择绘图范围。8. 手工坐标轴定标如果需要在下列语句指定的范围内绘制曲线:v = x-min x-max y-min y-max则应输入命令 axis(v),式中 v 是一个四元向量。axis(v) 把坐标轴定标建立在规定的范围内。对于对数坐标图,v 的元素应为最小值和最大值的常用对数。执行 axis(v)会把当前的坐标轴定标保

14、持到后面的图中,再次键入 axis 恢复自动定标。axis(square)把图形的范围设定在方形范围内。对于方形长宽比,斜率为 1 的直线恰位于 45o 上,它不会因屏幕的不规则形状而变形。axis(normal)将使长宽比恢复到正常状态。9.3.4 MATLAB 语言的联机帮助功能本书中将广泛应用 MATLAB 语言和其控制系统工具箱作为辅助工具,并将介绍相关函数的使用。但是以当前的篇幅想全面介绍 MATLAB 和控制系统工具箱是不可能的,不妨使用 MATLAB 的联机帮助功能。MATLAB 的联机帮助既可以由 help 命令来直接获得,又可以由 MATLAB 图形界面下的 Help 菜单来

15、查询。例如,可以由 help lyap 命令得出 lyap()函数的联机帮助信息如下:help lyapLYAP Lyapunov equation.X = LYAP(A,C) solves the special form of the Lyapunov matrix equation:A*X + X*A = -CX = LYAP(A,B,C) solves the general form of the Lyapunov matrix equation:A*X + X*B = -CSee also DLYAP.可见,由这种方法得出的帮助信息包括该函数的解释,函数的调用格式和相关函数名等等,

16、进一步的帮助内容可以查阅 MATLAB 或相应工具箱手册。还可以用 lookfor 命令在 MATLAB 路径下查询有关的关键词,例如若想查询关键词Hankel,则可以由下面的命令完成:lookfor hankelHANKEL Hankel matrix.BHRDEMO Demo of model reduction techniques (Hankel, Balanced, BST).HKSV Hankel singular values and grammians P, Q.OHKAPP Optimal Hankel norm approximation (stable plant).OH

17、KDEMO Demo of optimal Hankel model reduction technique.OHKLMR Optimal Hankel norm approximation (unstable plant).9.4.1 控制系统模型1) 传递函数模型:在 MATLAB 中,直接用分子 /分母的系数表示,即num=b1,b2,bm+1;den=a1,a2,an+1;而 printsys 命令则用于显示传递函数,例如:num=1 1;den=1 5 9printsys(num,den)执行后,其结果为:num/den=2) 零极点增益模型在 MATLAB 中,用 z,p,k矢量表

18、示,即z=b1,b2,bm;p=b1,b2,bm;k=k;3) 状态空间模型在 MATLAB 中,系统可用 (a,b,c,d)矩阵组表示。说明:在本书中将不涉及状态方程。4) 模型之间的转换同一个系统可用三种不同的模型表示,为分析系统的特性,有必要在三种模型之间进行转换。MATLAB 的信号处理和控制系统工具箱中,都提供了模型变换的函数:ss2tf, ss2zp, tf2ss, tf2zp, zp2ss, zp2tf, 它们的作用可用图 9-1 来表示。图 9-1 三种模型之间的转换图 9-1 三种模型之间的转换5) 系统建模对简单系统的建模可直接采用三种基本模型:传递函数、零极点增益、状态空

19、间模型。但实际中经常遇到几个简单系统组合成一个复杂系统。常见形式有:并联、串联、闭环及反馈等连接。l 并联:将两个系统按并联方式连接,在 MATLAB 中可用 parallel 函数实现。l 串联:将两个系统按串联方式连接,在 MATLAB 中可用 series 函数实现。l 闭环:将系统通过正负反馈连接成闭环系统,在 MATLAB 中可用 cloop 函数实现。l 反馈:将两个系统按反馈方式连接成闭环系统,在 MATLAB 中可用 feedback 函数实现。9.4.2 时域分析控制系统最常用的时域分析方法是,当输入信号为单位阶跃和单位脉冲函数时,求出系统的输出响应,分别称为单位阶跃响应和单

20、位脉冲响应。在 MATLAB 中,提供了求取连续系统的单位阶跃响应函数 step,单位脉冲响应函数impulse,零输入响应函数 initial 及任意输入下的仿真函数 lsim。1) step 命令功能:求阶跃响应格式:y,x=step(num,den,t)2) impluse 命令功能:求脉冲响应格式:y,x=impluse(num,den,t)3) lsim 命令功能:对任意输入的连续系统进行仿真格式:y,x=lsim(num,den,u,t)其中输入信号为矢量 u。输入信号 u 的行数决定了计算的输出点数。对于单输入系统,u 是一个列矢量。对于多输入系统,u 的列数等于输入变量数。例如

21、:计算斜坡响应,t 为输入矢量。可以输入如下命令ramp=t; y=lsim(num,den,rmp,t)4) initial 命令功能:求连续系统的零输入响应格式:y,x,t=initial(a,b,c,d,x0)功能:y,x,t=initial(a,b,c,d,x0,t)initial 函数可计算出连续时间线性系统由于初始状态所引起的响应(故而称零输入响应)。当不带输出变量引用函数时,initial 函数在当前图形窗口中直接绘制出系统的零输入响应。9.4.3 根轨迹根轨迹法是分析和设计线性定常控制系统的图解方法,使用十分简便。特别是适用于多回路系统的研究,应用根轨迹比其它方法更为方便。通常

22、来说,要绘制出系统的根轨迹是很繁琐很难的事,因此在教科书中经常以简单系统的图示解法得到。但在现代计算机技术和软件平台的支持下,绘制系统的根轨迹变得轻松自如了。在 MATLAB 中,专门提供了绘制根轨迹有关的函数:rlocus,rlocfind,pzmap 等。1) pzmap 命令功能:绘制线性连续系统的零极点图格式:p,z=pzmap(num,den)用“x“号表示极点,用“o“号表示零点2) rlocus 命令功能:绘制根轨迹格式:r,k=rlocus(num,den)r,k=rlocus(num,den,k)3) rlocfind 命令功能:找出给定的一组根对应的根轨迹增益格式:k,po

23、les=rlocfind(num,den)k,poles=rlocfind(num,den,p)K 为选点处的根轨迹增益;Pole 为此点处的闭环特征根。4) sgrid 命令功能:在连续系统根轨迹图和零极点图中绘制出阻尼系数和自然频率栅格。格式:sgrid 或 sgrid(new)或 sgrid(Z,Wn)9.4.4 频域分析频域分析法是应用频率特性研究控制系统的一种经典方法。采用这种方法可直观地表达出系统的频率特性,分析方法比较简单,物理概念比较明确,对于诸如防止结构谐振、抑制噪声、改善系统稳定性和暂态性能等问题,都可以从系统的频率特性上明确地看出其物理实质和解决途径。频率分析法主要包括三种方法:bode 图(幅频/相频特性曲线)、nyquist 曲线、nichols 图。1) bode 命令功能:绘制波特图格式:mag,phase,w=bode(num,den)mag,phase,w=bode(num,den,w)2) nyquist 命令功能:绘制乃奎斯特图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。