matlab在自控原理中的应用(3)

2019-09-01 23:32

(Denominator)改为〔1,9〕。

? 在sinks(输出)子模块库中选择scope(示波器)和Out1(输出端口模块)图标并将之

拖到编辑窗口中。

(3)将画出的所有模块按图9用鼠标连接起来,构成一个原系统的框图描述如图10所示。 (4)选择仿真算法和仿真控制参数,启动仿真过程。

● 在编辑窗口中点击Simulation|Simulation parameters菜单,会出现一个参数对话框,

在solver模板中设置响应的仿真范围StartTime(开始时间)和StopTime(终止时间),仿真步长范围Maxinum step size(最大步长)和Mininum step size(最小步长)。对于本例,StopTime可设置为2。最后点击Simulation|Start菜单或点击相应的热键启动仿真。双击示波器,在弹出的图形上会“实时地”显示出仿真结果。输出结果如图11所示。

在命令窗口中键入whos命令,会发现工作空间中增加了两个变量――tout和yout,这是因为Simulink中的Out1 模块自动将结果写到了MATLAB的工作空间中。利用MATLAB命令plot(tout,yout),可将结果绘制出来,如图12所示。比较11和12,可以发现这两种输

图10 二阶系统的simulink实现

出结果是完全一致的。

图11仿真结果示波器显示

图12 MATLAB命令得出的系统响应曲线

(2) 利用MATLAB进行时域分析

- 11 -

1. 线性系统稳定性分析

线性系统稳定的充要条件是系统的特征根均位于S平面的左半部分。系统的零极点模型可以直接被用来判断系统的稳定性。另外,MATLAB语言中提供了有关多项式的操作函数,也可以用于系统的分析和计算。 (1)直接求特征多项式的根

设p为特征多项式的系数向量,则MATLAB函数roots()可以直接求出方程p=0在复数范围内的解v,该函数的调用格式为:

v=roots(p) (13)

例10 已知系统的特征多项式为: x?3x?2x?x?1

特征方程的解可由下面的MATLAB命令得出。 >> p=[1,0,3,2,1,1]; v=roots(p) 结果显示: v =

0.3202 + 1.7042i 0.3202 - 1.7042i -0.7209 0.0402 + 0.6780i 0.0402 - 0.6780i

利用多项式求根函数roots(),可以很方便的求出系统的零点和极点,然后根据零极点分析系统稳定性和其它性能。 (2)由根创建多项式

如果已知多项式的因式分解式或特征根,可由MATLAB函数poly()直接得出特征多项式系数向量,其调用格式为:

p=poly(v) (14)

如上例中:

v=[0.3202+1.7042i;0.3202-1.7042i;

-0.7209;0.0402+0.6780i; 0.0402-0.6780i];

>> p=poly(v) 结果显示

p =

1.0000 -0.0000 3.0000 2.0000 1.0000 1.0000 由此可见,函数roots()与函数poly()是互为逆运算的。 (3)多项式求值

在MATLAB 中通过函数polyval()可以求得多项式在给定点的值,该函数的调用格式为: polyval(p,v) (15) 对于上例中的p值,求取多项式在x点的值,可输入如下命令:

>> p=[1,0,3,2,1,1]; x=1

polyval(p,x) 结果显示

532- 12 -

ans =

8

(4)部分分式展开 考虑下列传递函数:

M(s)numb0sn?b1sn?1?????bn ??N(s)dena0sn?a1sn?1?????an式中a0?0,但是ai和bj中某些量可能为零。 MATLAB函数可将函数的调用格式为:

?r,p,k??residue(num,den) (16)

M(s)展开成部分分式,直接求出展开式中的留数、极点和余项。该N(s)则

M(s)的部分分式展开由下式给出: N(s)

M(s)r(1)r(2)r(n)????????k(s) N(s)s?p(1)s?p(2)s?p(n)式中p(1)??p1,p(2)??p2,?, p(n)??pn,为极点,

r(1)??r1,r(2)??r2,?, r(n)??rn为各极点的留数,k(s)为余项。

例11 设传递函数为:

2s3?5s2?3s?6 G(s)?3 2s?6s?11s?6该传递函数的部分分式展开由以下命令获得: >> num=[2,5,3,6]; den=[1,6,11,6];

[r,p,k]=residue(num,den) 命令窗口中显示如下结果

r= p= k= -6.0000 -3.0000 2 -4.0000 -2.0000 3.0000 -1.0000

中留数为列向量r,极点为列向量p,余项为行向量k。 由此可得出部分分式展开式:

G(s)??6?43???2 s?3s?2s?1该函数也可以逆向调用,把部分分式展开转变回多项式

M(s)之比的形式,命令格式为: N(s)- 13 -

[num,den]=residue(r,p,k) (17) 对上例有:

>> [num,den]=residue(r,p,k) 结果显示 num=

2.0000 5.0000 3.0000 6.0000

den=

1.0000 6.0000 11.0000 6.0000

应当指出,如果p(j)=p(j+1)=?=p(j+m-1),则极点p(j)是一个m重极点。在这种情况下,部分分式展开式将包括下列诸项:

r(j)r(j?1)r(j?m?1) ??????2ms?p(j)?s?p(j)??s?p(j)?例12 设传递函数为:

s2?2s?3s2?2s?3 G(s)? ?332(s?1)s?3s?3s?1 则部分分式展开由以下命令获得:

>> v=[-1,-1,-1] num=[0,1,2,3];

den=poly(v);

[r,p,k]=residue(num,den)

结果显示

r=

1.0000 0.0000 2.0000 p=

-1.0000 -1.0000 -1.0000 k=

[ ]

其中由poly()命令将分母化为标准降幂排列多项式系数向量den, k=[]为空矩阵。 由上可得展开式为: G(s)?102???0 s?1(s?1)2(s?1)3(5)由传递函数求零点和极点。

在MATLAB控制系统工具箱中,给出了由传递函数对象G求出系统零点和极点的函数,其调用格式分别为:

Z=tzero(G) (18) P=G.P{1} (19) 注意:式19中要求的G必须是零极点模型对象,且出现了矩阵的点运算“.”和大括号

- 14 -

{}表示的矩阵元素,详细内容参阅后面章节。

例13 已知传递函数为:

6.8s2?61.2s?95.2 G(s)?4

s?7.5s3?22s2?19.5s输入如下命令:

num=[6.8,61.2,95.2]; den=[1,7.5,22,19.5,0]; G=tf(num,den); G1=zpk(G);

Z=tzero(G) P=G1.P{1}

结果显示 Z =

-7 -2 P =

0 -3.0000 + 2.0000i

-3.0000 - 2.0000i -1.5000

其结果与例8完全一致。 (6)零极点分布图。

在MATLAB中,可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性,该函数调用格式为:

pzmap(num,den) (20) 例 14 给定传递函数:

3s4?2s3?5s2?4s?6 G(s)?5

s?3s4?4s3?2s2?7s?2 利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如图13所示。 >> num=[3,2,5,4,6]; den=[1,3,4,2,7,2];

pzmap(num,den)

title(1Pole-Zero Map1) % 图形标题。

- 15 -


matlab在自控原理中的应用(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新-绵阳市高中2018级第二学年末教学质量测试物理试题 精品

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: