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

上传人:b****4 文档编号:13918072 上传时间:2023-06-19 格式:DOCX 页数:13 大小:37.24KB
下载 相关 举报
MATLAB经典控制系统的分析和设计.docx_第1页
第1页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第2页
第2页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第3页
第3页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第4页
第4页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第5页
第5页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第6页
第6页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第7页
第7页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第8页
第8页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第9页
第9页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第10页
第10页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第11页
第11页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第12页
第12页 / 共13页
MATLAB经典控制系统的分析和设计.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《MATLAB经典控制系统的分析和设计.docx》由会员分享,可在线阅读,更多相关《MATLAB经典控制系统的分析和设计.docx(13页珍藏版)》请在冰点文库上搜索。

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

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

MATLAB:

经典控制系统的分析和设计

9.3.1基本操作及命令

1.访问和退出MATLAB

在大多数系统中,一旦安装了MATLAB,在调用时,应执行命令MATLAB。

退出MATLAB应执行命令exit或quit。

2.如何应用MATLAB

通常以命令驱动方式应用MATLAB。

当输入单个命令时,MATLAB会立即对其进行处理,并且显示处理结果。

MATLAB也能够执行存储在文件中的命令序列。

通过键盘输入的命令,应用向上箭头键可以被存取。

通过输入某个最新命令和调用特定的命令行,可以使屏幕内容向上滚动。

3.MATLAB的变量

MATLAB的一个特点是变量在应用之前不必是维数确定的。

在MATLAB中,变量一旦被采用,会自动产生(如果必要,变量的维数以后还可以改变)。

在命令exit或quit输入之前,这些变量将保留在存储器中。

为了得到工作空间内的变量清单,可以通过键盘输入命令who,当前存放在工作空间内的所有变量便会显示在屏幕上。

命令clear能从工作空间中清除所有非永久性变量。

如果只需要从工作空间中清除某个特定变量,比如“x”,则应输入命令clearx。

4.以“%”开始的程序行

在本书中,许多MATLAB程序在编写时附有注解和说明,这些注解和说明阐明了发生在程序中的具体进程。

在MATLAB中以“%”开始的程序行,表示注解和说明。

符号“%”类似于BASIC中“REM”。

以“%”开始的行,用来存储程序的注解或说明,这些注解和说明是不执行的。

这就是说,在MATLAB程序行中,出现在“%”以后的一切内容都是可以忽略的。

如果注解或说明需要一行以上程序行,则每一行均需以“%”为起始。

5.应用分号操作符

分号用来取消打印。

如果语句的最后一个符号是分号,则打印被取消,但是命令仍在执行,而结果不再显示。

这是一个有益的特性,因为打印中间结果可能不必要。

此外,在输入矩阵时,除非最后一行,分号用来指示一行的结束。

6.应用冒号操作符

冒号操作符在MATLAB中起着重要作用。

该操作符用来建立向量,赋予矩阵下标和规定叠代。

例如,j:

k表示[jj+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.在一行内输入数个语句

如果在一行内可以把数个语句用逗号或分号隔开,则可以把这数个语句放在一行内。

例如

plot(x,y,’o’),text(1,20,’System1’),text(1,15,’System2’)

plot(x,y,’o’);text(1,20,’System1’);text(1,15,’System2’)

9.选择输出格式

MATLAB中的所有计算都是以双精度方式完成的,但是显示输出可以是具有4个小数位的定点输出。

例如,对于向量

x=[1/30.00002]

MATLAB有下列输出:

x=

0.33330.0000

如果在矩阵中至少有一个元素不是严格的整数,则有4种可能的输出格式。

显示的输出量可以利用下列命令加以控制:

formatshort

formatlong

formatshorte

formatlonge

一旦调用了某种格式,则这种被选用的格式将保持,直到对格式进行了改变为止。

在控制系统分析中,formatshort和formatlong是经常采用的格式。

一旦调用了MATLAB,即使没有输入格式命令,MATLAB也将以formatshort格式显示数值结果。

如果矩阵或向量的所有元素都是严格的整数,则formatshort和formatlong的结果是相同的。

10.退出MATLAB时如何保存变量

当键入“exit”或“quit”时,MATLAB中的所有变量将消失。

如果在退出以前输入命令save,则所有的变量被保存在磁盘文件matlab.mat中。

当再次进入MATLAB时,命令load将使工作空间恢复到以前的状态。

9.3.2MATLAB函数

在当前的MATLAB5.0及以上版本中,MATLAB函数的调用格式和其它编程语言是不同的,其典型的调用格式为

[返回变量列表]=func_name(输入变量列表)

其中等号左边的变量为返回变量,等号右边的变量为输入变量。

MATLAB允许在函数调用时同时返回多个变量。

而一个函数又可以由多种格式进行调用,例如bode()函数可以由下面的格式调用

[mag,phase]=bode(num,den,w)

其中bode()函数用来求取或绘制系统的Bode图,而系统在这里由传递函数分子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具有丰富的获取图形输出的程序集。

命令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-y对都可以图解表示出来,因而在一幅图上形成多条曲线。

多重变量的优点是它允许不同长度的向量在同一幅图上显示出来。

每一对向量采用不同的线型。

在一幅图上画一条以上的曲线时,也可以利用命令hold。

hold命令可以保持当前的图形,并且防止删除和修改比例尺。

因此,随后的一条曲线将会重叠地画在原曲线图上。

再次输入命令hold,会使当前的图形复原。

3.加进网格线、图形标题、x轴标记和y轴标记

一旦在屏幕上显示出图形,就可以画出网格线,定出图形标题,并且标定x轴标记和y轴标记。

MATLAB中关于网格线、标题、x轴标记和y轴标记的命令如下:

grid(网格线)

title(图形标题)

xlabel(x轴标记)

ylabel(y轴标记)

应当指出,一旦恢复命令display,通过依次输入相应的命令,就可以将网格线、图形标题、x轴标记和y轴标记叠加在图形上。

4.在图形屏幕上书写文本

为了在图形屏幕的点(x,y)上书写文本,采用命令:

text(X,Y,’text’)

例如,利用语句

text(3,0.45,’sint’)

将从点(3,0.45)开始,水平地写出sint。

另外,下列语句:

plot(x1,y1,x2,y2),text(x1,y1,’1’),text(x2,y2,’2’)

标记出两条曲线,使它们很容易地区分开来。

5.图形类型

下列语句:

plot(X,Y,’x’)

将利用标记符号x画出一个点状图,而语句:

plot(X1,Y1,’:

’,X2,Y2,’+’)

将用虚线画出第一曲线,用加法符号(+)画出第二条曲线。

MATLAB能够提供的线和点的类型如下:

线的类型

点的类型

实线

-

圆点

.

短划线

--

加号

+

虚线

星号

*

点划线

-.

圆圈

o

 

 

×号

×

6.颜色

下列语句

plot(X,Y,’r’)

plot(X,Y,’+g’)

表明,第一幅图采用红线,第二幅图采用绿色“+”号标记。

MATLAB提供的颜色如下:

红色

r

绿色

g

蓝色

b

白色

w

无色

i

7.自动绘图算法

在MATLAB中,图形是自动定标的。

在另一幅图形画出之前,这幅图形作为现行图将保持不变,但是在另一幅图形画出后,原图形将被删除,坐标轴自动地重新定标。

关于暂态响应曲线、根轨迹、伯德图、奈魁斯特图等的自动绘图算法已经设计出来,它们对于各类系统具有广泛的适用性,但是并非总是理想的。

因此,在某些情况下,可能需要放弃绘图命令中的自动坐标轴定标特性,改用手工选择绘图范围。

8.手工坐标轴定标

如果需要在下列语句指定的范围内绘制曲线:

v=[x-minx-maxy-miny-max]

则应输入命令axis(v),式中v是一个四元向量。

axis(v)把坐标轴定标建立在规定的范围内。

对于对数坐标图,v的元素应为最小值和最大值的常用对数。

执行axis(v)会把当前的坐标轴定标保持到后面的图中,再次键入axis恢复自动定标。

axis(‘square’)把图形的范围设定在方形范围内。

对于方形长宽比,斜率为1的直线恰位于45o上,它不会因屏幕的不规则形状而变形。

axis(‘normal’)将使长宽比恢复到正常状态。

9.3.4MATLAB语言的联机帮助功能

本书中将广泛应用MATLAB语言和其控制系统工具箱作为辅助工具,并将介绍相关函数的使用。

但是以当前的篇幅想全面介绍MATLAB和控制系统工具箱是不可能的,不妨使用MATLAB的联机帮助功能。

MATLAB的联机帮助既可以由help命令来直接获得,又可以由MATLAB图形界面下的Help菜单来查询。

例如,可以由helplyap命令得出lyap()函数的联机帮助信息如下:

》helplyap

LYAPLyapunovequation.

X=LYAP(A,C)solvesthespecialformoftheLyapunovmatrixequation:

A*X+X*A’=-C

X=LYAP(A,B,C)solvesthegeneralformoftheLyapunovmatrixequation:

A*X+X*B=-C

SeealsoDLYAP.

可见,由这种方法得出的帮助信息包括该函数的解释,函数的调用格式和相关函数名等等,进一步的帮助内容可以查阅MATLAB或相应工具箱手册。

还可以用lookfor命令在MATLAB路径下查询有关的关键词,例如若想查询关键词‘Hankel’,则可以由下面的命令完成:

》lookforhankel

HANKELHankelmatrix.

BHRDEMODemoofmodelreductiontechniques(Hankel,Balanced,BST).

HKSVHankelsingularvaluesandgrammiansP,Q.

OHKAPPOptimalHankelnormapproximation(stableplant).

OHKDEMODemoofoptimalHankelmodelreductiontechnique.

OHKLMROptimalHankelnormapproximation(unstableplant).

9.4.1控制系统模型

1)传递函数模型:

在MATLAB中,直接用分子/分母的系数表示,即

num=[b1,b2,…,bm+1];

den=[a1,a2,…,an+1];

而printsys命令则用于显示传递函数,例如:

num=[11];den=[159]

printsys(num,den)

执行后,其结果为:

num/den=

2)零极点增益模型

在MATLAB中,用[z,p,k]矢量表示,即

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)系统建模

对简单系统的建模可直接采用三种基本模型:

传递函数、零极点增益、状态空间模型。

但实际中经常遇到几个简单系统组合成一个复杂系统。

常见形式有:

并联、串联、闭环及反馈等连接。

l并联:

将两个系统按并联方式连接,在MATLAB中可用parallel函数实现。

l串联:

将两个系统按串联方式连接,在MATLAB中可用series函数实现。

l闭环:

将系统通过正负反馈连接成闭环系统,在MATLAB中可用cloop函数实现。

l反馈:

将两个系统按反馈方式连接成闭环系统,在MATLAB中可用feedback函数实现。

9.4.2时域分析

控制系统最常用的时域分析方法是,当输入信号为单位阶跃和单位脉冲函数时,求出系统的输出响应,分别称为单位阶跃响应和单位脉冲响应。

在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的列数等于输入变量数。

例如:

计算斜坡响应,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根轨迹

根轨迹法是分析和设计线性定常控制系统的图解方法,使用十分简便。

特别是适用于多回路系统的研究,应用根轨迹比其它方法更为方便。

通常来说,要绘制出系统的根轨迹是很繁琐很难的事,因此在教科书中经常以简单系统的图示解法得到。

但在现代计算机技术和软件平台的支持下,绘制系统的根轨迹变得轻松自如了。

在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,poles]=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命令

功能:

绘制乃奎斯特图

格式:

[re,im,w]=nyquist(num,den)

[re,im,w]=nyquist(num,den,w)

3)nichols命令

功能:

绘制尼科尔斯图

格式:

[M,P]=nichols(num,den)

4)margin命令

功能:

求幅值和相角裕量及幅值和相位交界频率

格式:

[GM,PM,wcg,wcp]=margin(M,P)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2