2.5 应用MATLAB控制系统仿真-计算机-_第1页
2.5 应用MATLAB控制系统仿真-计算机-_第2页
2.5 应用MATLAB控制系统仿真-计算机-_第3页
2.5 应用MATLAB控制系统仿真-计算机-_第4页
2.5 应用MATLAB控制系统仿真-计算机-_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五节应用MATLAB控制系统仿真提纲一、弹簧-重物-阻尼器系统二、传递函数三、结构图模型引言MATLAB是一套高性能的数值计算和可视化软件,它集数值分析、矩阵运算和图形显示于一体,构成了一个方便的界面友好的用户环境。控制系统的分析与设计方法,都是以数学模型为基础进行的。MATLAB可以用于以传递函数形式描述的

控制系统。在本节中,首先举例说明如何使用MATLAB进行辅助分析。然后讨论传递函数和结构图。一、弹簧-重物-阻尼器系统弹簧—重物—阻尼器动力学系统如图2-1所示。重物M的位移由y(t)表示,用微分方程描述如下:该系统在初始位移作用下的瞬态响应为:其中q

=cos-1z

,初始位移是y(0)。系统的瞬态响应当z<1时为欠阻尼,当z>1时为过阻尼,当z=1时为临界阻尼。过阻尼情况:y(0)=0.15

m

wn=(弧度/秒)()欠阻尼情况:y(0)=0.15

m

wn=(弧度/秒)()利用MATLAB程序—unforced.m,可以显示初始位移为y(0)的物体自由运动曲线,如图2-63所示。在unforced.m程序中,变量y(0),wn,t,z

1和z

2的值由指令直接输入工作区,然后运行unforced.m程序就可以产生响应曲线。>>y0=0.15;wn=sqrt(2);>>zeta1=3/(2*sqrt(2));

zeta2=1/(2*sqrt(2));>>t=[0:0.1:10];>>unforced(a)MATLAB指令窗口*计算系统在给定初始条件下的自由运动t1=acos(zeta1)*ones(1,length(t));t2=acos(zeta2)*ones(1,length(t));c1=(y0/sqrt(1-zeta1^2));

c2=(y0/sqrt(1-zeta2^2));y1=c1*exp(-zeta1*wn*t)sin(wn*sqrt(1-zeta1^2)*t+t1);y2=c2*exp(-zeta2*wn*t)sin(wn*sqrt(1-zeta2^2)*t+t2);)计算运动曲线的包络线bu=c2*exp(-zeta2*wn*t);bl=-bu;画图plot(t,y1,

‘-’,t,y2,‘-’,t,bu,

‘--’,bl,

‘--’),gxlabel(‘Time[sec]’),

ylabel(‘y(t)Displacement[m]’)text(0.2,0.85,[‘oeverdamped

zeta1=’,num2str(zeta1),)text((0b.)2分,0析.弹80簧,[—‘重u物n—de阻r尼da器mp的eMdATzLeAtBa程2序=’unf,onrucmed2.smtr(zeta2),图2-63分析弹簧—重物—阻尼器的MATLAB指令在欠阻尼和过阻尼情况下的响应曲线如图2-64所示:图2-64弹簧—重物—阻尼器的自由运动曲线MATLAB可分析以传递函数形式描述的系统。分子多项式和分母多项式都必须在MATLAB指令中指定。在MATLAB中多项式由行向量组成,这些行向量包含了降次排列的多项式系数。例如多项式p(s)=1s3+3s2+0s1+4s0,按图2-65的格式输入p=[1

3

0

4],>>p=[1

3

0

4];>>r=roots(p)r=-3.3553e+001.7765e-01+1.0773e+00j1.7765e-01-1.0773e+00j>>p=poly(r)p=1.000

3.000

0.000-0.000j

4.000+0.000j图2-65输入多项式并求根矩阵乘法由MATLAB的conv()函数完成。把两个多项式相乘合并成一个多项式n(s),即:n(s)=

(3s2

+2s

+1)

(s

+4)

=

3s3

+14s2

+9s

+4与此运算相关的MATLAB函数就是conv()。函数polyval()用来计算多项式的值。多项式n(s)在s

=-5处值为n

(-5)=-66,见图2-66>>p=[3

2

1];q=[1

4];>>n=conv(p,q)n=3

14

9

4>>value=polyval(n,-5)value=-66图2-66

MATLAB的conv()函数和polyval()函数二、传递函数设传递函数为G(s)=num/den,其中num和den均为多项式。利用函数:[P

,

Z]=pzmap(num

,

den)可得G(s)的零极点位置,即P为极点位置列向量,Z为零点位置列向量。该指令执行后自动生成零极点分布图。考虑传递函数:和图2-67零极点图传递函数G(s)/H(s)的零极点图如图2-67所示,相应的MATLAB指令如图2-68所示。>>numg=[6

0

1];deng=[1

3

3

1];>>z=roots(numg)z=0+0.4082j0-0.4082j>>

p=roots1(deng)p=-1-1-1>>n1=[1

1];

n2=[1

2];

d1=[1

2*j];

d2=[1

–2*j];

d3=[1

3];>>numh=conv(n1,n2);

denh=conv(d1,conv(d2,d3));>>num=conv(numg,denh);

den=conv(deng,numh);>>printsys(num,den)num/den=6s^5+18s^4+25s^3+图2-68绘制零极点图指令三、结构图模型一个开环控制系统可以通过G1

(s)与G2

(s)两个环节的串联而得到,利用series()函数可以求串联连接的传递函数,函数的具体形式为:[num,den]=

series(num1,den1,

num2,den2)例如G1

(s)和G2

(s)的传递函数分别为:则串联函数的用法示于图2-69:>>num1=[1];den1=[500

0

0];>>num2=[1

1];den2=[1

2];>>[num,den]=series(num1,den1,num2,den2);>>printsys(num,den)num/den=

s+1

500s^3+1000s^2图2-69

series函数的用法当系统是以并联的形式连接时,利用parallel()函数可得到系统的传递函数。指令的具体形式为:[num,den]=

parallel

(num1,den1,

num2,den2)系统以反馈方式构成闭环,则系统的闭环传递函数为:求闭环传递函数的MATLAB函数有两个:cloop()和feedback()其中cloop()函数只能用于H

(s)=1(即单位反馈)的情况。cloop()函数的具体用法为:[num,den]=

cloop

(numg,deng,

sign)其中numg和deng分别为G(s)的分子和分母多项式,sign=1为正反馈,sign=-1为负反馈(默认值)。feedback()函数的用法为:[num,den]=feedback

(numg,deng,numh,denh,sign)其中numh为H

(s)的分子多项式,denh为分母多项式。闭环反馈系统的结构图如图2-70所示,被控对象G(s)和控制部分Gc

(s)以及测量环节H

(s)的传递函数分别为:,,图2-70闭环反馈系统的结构图应用series()函数和feedback()函数求闭环传递函数的MATLA指令如图2-71所示:>>numg=[1];deng=[5

0

0];>>numc=[1

1];denc=[1

2];>>numh=[1];denh=[1

10];>>[num1,den1]=series(numc,denc,numg,deng);>>[num,den]=feedback(num1,den1,numh,denh,-1);>>printsys(num,den)num/den=

s^2+11s+105s^4+60s^3+100s^2+s+1图2-71feedback()函数的应用例2.12一个多环的反馈系统如图2-49所示,给定各环节的传递函数为:试求闭环传递函数GB(s)=C(s)/R(s)。解求解步骤如下:步骤1:输入系统各环节的传递函数;步骤2:将H2的综合点移至G2后;步骤3:消去G3,G2,H2环;步骤4:消去包含H3的环;步骤5:消去其余的环,计算GB

(s)。根据上述步骤的MATLAB指令以及计算结果在图2-72中。>>ng1=[1];dg1=[1

10];>>ng2=[1];dg2=[1

1];>>ng3=[1

0

1];dg3=[1

4

4];>>ng4=[1

1];dg4=[1

6];>>nh1=[1];dh1=[1];>>nh2=[2];dh2=[1];>>nh3=[1

1];dh3=[1

2];>>[n1,d1]=series(ng2,dg2,nh2,dh2);>>[n2,d2]=feedback(ng3,dg3,n1,d1,-1);>>[n3,d3]=series(n2,d2,ng4,dg4);>>[n4,d4]=feedback(n3,d3,nh3,dh3,-1);>>[n5,d5]=series(ng1,dg1,ng2,dg2);>>[n6,d6]=series(n5,d5,n4,d4);>>[n7,d7]=cloop(n6,d6,-1);>>printsys(n7,d7)num/den=s^4+

3s^3+

3s^2+3s+22s^6+38s^5+261s^4+1001s^3+1730s^2+1546s+732图2-72多环结构图简化通过pzmap()或roots()函数可查看传递函数是否有相同的零极点,还可使用minreal()函数除去传递函数共同的零极点因子。如图2-73所示。>>numg=[1

6

11

6];deng=[1

7

12

11

5];>>printsys(numg,deng)numg/deng=

s^3+6s^2+11s+6s^4+7s^3+12s^2+11s+5>>[num,den]=minreal(numg,deng);>>printsys(num,den)

1

pole-zeros

cancellednum/den=s^2+4s+3s^3+6s^2+6s+5图2-73

minreal()函数的应用例2.2所示的位置随动系统,在给定各元件参数并忽略La和令ML

=0的情况下,其结构图如图2-74所示:图2-74位置随动系统的结构图第一步求闭环传递函数GB

(s)=q

c(s)/q

r(s),求解过程及结果如图2-75所示。第二步利用step()函数计算参考输入q

r(t)为单阶跃信号时输出q

c

(t)的响应。>>num1=[200];

den1=[20];num2=[1];

den2=[2

0.5

0];>>num3=[0.2

0];

den3=[1];

num4=[540];

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论