MATLAB SIMULINK在自动控制原理教学中的应用.docx

上传人:b****3 文档编号:10780748 上传时间:2023-05-27 格式:DOCX 页数:27 大小:23.37KB
下载 相关 举报
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第1页
第1页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第2页
第2页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第3页
第3页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第4页
第4页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第5页
第5页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第6页
第6页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第7页
第7页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第8页
第8页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第9页
第9页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第10页
第10页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第11页
第11页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第12页
第12页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第13页
第13页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第14页
第14页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第15页
第15页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第16页
第16页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第17页
第17页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第18页
第18页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第19页
第19页 / 共27页
MATLAB SIMULINK在自动控制原理教学中的应用.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MATLAB SIMULINK在自动控制原理教学中的应用.docx

《MATLAB SIMULINK在自动控制原理教学中的应用.docx》由会员分享,可在线阅读,更多相关《MATLAB SIMULINK在自动控制原理教学中的应用.docx(27页珍藏版)》请在冰点文库上搜索。

MATLAB SIMULINK在自动控制原理教学中的应用.docx

MATLABSIMULINK在自动控制原理教学中的应用

MATLAB/SIMULINK在自动控制原理教学中的应用

《自动控制原理实验教程》

设计型实验报告

光电信息与计算机工程学院

2010年01月03日

目录

一、MATLAB基本运算…………………………………………………

……………………………………………………………………………(3)

二、基于MATLAB/Simulink建立控制系统的数学模型………………

…………………………………………………………………………..(4)

三、基于MATLAB高阶控制系统的时域响应动态性能分析……..

…………………………………………………………………………..(8)

四、基于Simulink控制系统的稳态误差分析……………………...

………………………………………………………………………….(17)

五、基于MATLAB控制系统的根轨迹及其性能分析…………….

………………………………………………………………………….(25)

六、基于MATLAB控制系统的Nyquist图及其稳定性分析………

………………………………………………………………………….(35)

七、基于MATLAB控制系统的博德图及其频域分析……………….

………………………………………………………………………….(42)

八、学习小结……………………………………………………………

……………………………………………………………………………(51)

一、MATLAB基本运算

[范例1-2]

(1)建立矩阵A=[789],B=;

(2)建立矩阵B=;(3)使用冒号生成行向量

解:

(1)

>>A=[7,8,9]

A=789

>>B=A'(实现矩阵的转置)

B=7

8

9

(2)

>>B=[112;358;101215]

B=112

358

101215

Tips:

建立矩阵时,矩阵按行展开数据,行中的元素用空格或逗号分隔,每行之间用分号分隔。

(3)

>>a=1:

1:

10

a=12345678910

>>t=10:

-1:

1

t=10987654321

Tips:

使用x:

△x:

y生成向量,其中x表示初始值,△x表示步长增量,y表示终值,向量个数自动生成。

[范例1-3]求多项式的展开式。

解:

>>D=conv([503],conv([11],[1-2]))

D=5-5-7-3-6

Tips:

conv()函数只能用于两个多项式相乘,多于两个多项式则必须嵌套使用。

[范例1-4]求多项式的根。

解:

(1)>>P=[2-56-19]

P=2-56-19

>>x=roots(P)

x=1.6024+1.2709i

1.6024-1.2709i

-0.3524+0.9755i

-0.3524-0.9755i

Tips:

若已知系统的特征多项式求根用roots();若已知系统的传递函数求特征根用eig()。

二、基于matlab/simulink建立控制系统的数学模型

[范例2-1]已知系统传递函数

解:

>>num=[013];

>>den=[1221];

>>printsys(num,den)

num/den=

s+3

---------------------

s^3+2s^2+2s+1

[范例2-2]已知系统传递函数,试建立系统的传递函数模型。

解:

>>num=5*conv(conv([1,2],[1,2]),[1,6,7]);

>>den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,0,2,1]))));

>>Gs=tf(num,den)

Transferfunction:

5s^4+50s^3+175s^2+260s+140

-----------------------------------------------

s^7+3s^6+5s^5+8s^4+9s^3+5s^2+s

Tips:

用函数tf()来建立控制系统的传递函数模型,用函数printsys()来输出控制系统的函数,其调用格式为

Sys=tf(num,den)和printsys(num,den)

[范例2-3]已知系统传递函数试建立控制系统的零极点模型。

解:

>>k=10;

>>z=[-5];

>>p=[-0.5-2-3];

>>sys=zpk(z,p,k)

Zero/pole/gain:

10(s+5)

-------------------------

(s+0.5)(s+2)(s+3)

控制系统模型间的相互转换

(1)>>k=10;

>>z=[-5];

>>p=[-0.5-2-3];

>>[num,den]=zp2tf(z,p,k)

num=001050

den=1.00005.50008.50003.0000

(2)num=(001050);

den=(15.58.53)

>>[z,p,k]=tf2zp(num,den)

z=-5

p=

-3.0000

-2.0000

-0.5000

k=10

(3)num=(001050);

den=(15.58.53);

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

r=

8.0000

-20.0000

12.0000

p=

-3.0000

-2.0000

-0.5000

k=0

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

num=-0.000010.000050.0000

den=1.00005.50008.50003.0000

Tips:

控制系统模型间的相互转换

[num,den]=zp2tf(z,p,k)%零极点模型转换为多项式模型

[z,p,k]=tf2zp(num,den)%多项式模型转化为零极点模型

[r,p,k]=residue(num,den)%多项式模型转化为部分分式展开式模型

[num,den]=residue(z,p,k)%部分分式展开式模型转化为多项式模型

[范例2-4]已知二阶系统的自然频率=1和阻尼比ξ=0.5,建立其传递函数。

解:

>>[num,den]=ord2(1,0.5);

>>G=tf(num,den)

Transferfunction:

1

-------------

s^2+s+1

Tips:

在MATLAB中,用命令函数ord2()来建立二阶控制系统标准模型

其函数调用格式为[num,den]=ord2(,ξ)

[范例2-6]已知系统传递函数,求其等效的零极点模型。

解:

>>num=[1,5,6];den=[1,2,1,0];

>>[z,p,k]=tf2zp(num,den);

>>sys=zpk(z,p,k)

Zero/pole/gain:

(s+3)(s+2)

-------------------

s(s+1)^2

Tips:

利用[z,p,k]=tf2zp(num,den)把多项式模型转化为零极点模型,再用函数zpk()来建立系统的零极点增益模型

[范例2-7]已知三个模型的传递函数为,,,试分别用两种方法求出三个模型串联后的等效传递函数模型。

解:

>>num1=[5];den1=[11];num2=[21];den2=[10];num3=[4];den3=[31];

>>[num0,den0]=series(num1,den1,num2,den2);

>>[num,den]=series(num0,den0,num3,den3);

>>printsys(num,den)

num/den=

40s+20

------------------------

3s^3+4s^2+s

Tips:

控制系统模型连接之后的等效传递函数

(1)串联连接。

使用series()函数,其调用格式为:

[num,den]=series(num1,den1,num2,den2)

series()函数只能实现两个模型的串联,如果串联模型多于两个,则必须多次使用。

(2)并联连接。

使用parallel()函数,其调用格式为:

[num,den]=parallel(num1,den1,num2,den2)

parallel()函数只能实现两个模型的并联,如果并联模型多于两个,则必须多次使用。

[范例2-8]已知系统,,求负反馈闭环传递函数。

解:

>>numg=[251];deng=[123];

>>numh=[510];denh=[110];

>>[num,den]=feedback(numg,deng,numh,denh);

>>printsys(num,den)

num/den=

2s^3+25s^2+51s+10

----------------------------------

11s^3+57s^2+78s+40

Tips:

反馈连接。

使用feedback()函数,其调用格式为:

sys=feedback(sys1,sys2,sign)。

其中sys1为前向通道传递函数,sys2为反馈函数,sign是反馈极性,sign缺省时默认为负反馈,sign=-1;正反馈时,sign=1,单位反馈时,sys2=1,且不能省略。

特殊地,由开环系统构成单位反馈闭环系统时,可使用cloop()函数求得闭环传递函数,其调用格式为[numc,denc]=cloop(num,den,sign)

[自我实践]

[2-1]建立控制系统的传递函数模型:

①②

解:

>>num=5;

>>den=conv([1,0],conv([1,1],[1,4,4]));

>>Gs=tf(num,den)

Transferfunction:

5

-------------------------

s^4+5s^3+8s^2+4s

>>num=[142];

>>den=conv([1,0],conv([1,0],conv([1,0],conv([1,0,4],[1,4,0]))));

>>Gs=tf(num,den)

Transferfunction:

s^2+4s+2

----------------------------

s^7+4s^6+4s^5+16s^4

[2-2]建立控制系统零极点模型:

①②

解:

>>k=8;

>>z=[-1+j-1-j];

>>p=[00-5-6j-j];

>>sys=zpk(z,p,k)

Zero/pole/gain:

8(s^2+2s+2)

--------------------------

s^2(s+5)(s+6)(s^2+1)

>>P=[1101]

P=1101

>>x=roots(P)

x=-1.4656

0.2328+0.7926i

0.2328-0.7926i

>>k=1;

>>z=[];

>>p=[0-1-1.46560.2328+0.7926i0.2328-0.7926i];

>>sys=zpk(z,p,k)

Zero/pole/gain:

1

-------------------------------------------

s(s+1)(s+1.466)(s^2-0.4656s+0.6824)

三、基于MATLAB高阶控制系统的时域响应动态性能分析

【范例3-7】已知三阶系统闭环传递函数为,编写MATLAB程序,求取系统闭环极点及其单位阶跃响应,读取动态性能指标。

解:

num1=conv([05],conv([12],[13]));

den1=conv([14],[122]);

roots(den1)

[z,p,k]=tf2zp(num1,den1)

step(num1,den1)

>>

ans=

-4.0000

-1.0000+1.0000i

-1.0000-1.0000i

z=-3.0000

-2.0000

p=

-4.0000

-1.0000+1.0000i

-1.0000-1.0000i

k=5

【范例3-8】改变系统闭环极点的位置,将原极点s=-4改成s=-0.5,使闭环极点靠近虚轴,观察单位阶跃响应和动态性能指标的变化。

解:

num2=conv(0.625,conv([12],[13]));

den2=conv([10.5],[122]);

step(num2,den2)

【范例3-9】改变系统闭环零点的位置,,将原零点s=-2改成

=-1,观察单位阶跃响应和动态性能指标的变化。

解:

num3=conv(10,conv([11],[13]));

den1=conv([14],[122]);

step(num3,den1)

分析:

根据以上三组数据可以得出结论:

如果闭环极点远离虚轴,则相应的瞬态分量就衰减的快,系统的调节时间也就短。

但是如果将闭环极点接近虚轴,这相当于在增大系统阻尼,使系统响应速度变缓,超条量减小,调节时间延长,并且这种作用将随闭环极点接近虚轴而加剧。

而闭环零点减小后,相当于减小系统阻尼,使系统响应速度加快,峰值时间减小,调节时间缩短,超条量增大,并且这种作用将随闭环零点接近虚轴而加剧。

【范例3-10】已知控制系统的闭环传递函数,求

1)用MATLAB软件分析该系统的单位阶跃响应及其动态性能指标。

2)将该系统的阶跃响应与二阶系统的单位阶跃响应比较,试分析闭环主导极点的特点和作用

3)比较表3-6中编号1和编号3系统的单位阶跃响应及其动态性能指标,观察闭环零点对系统动态性能产生的影响有哪些?

4)比较表3-6中编号4和编号5系统的动态性能指标,分析非主导极点对系统性能的影响及其作用。

5)比较表3-6中编号5和编号6系统的动态性能指标,说明偶极子的作用。

解:

%graph12.m

num4=conv(1.05,[0.47621]);

den4=conv(conv([0.251],[0.51]),[111]);

damp(den4)

sys4=tf(num4,den4);

step(sys4,'r')

grid;holdon

num1=1.05;

den1=conv(conv([0.1251],[0.51]),[111]);

sys1=tf(num1,den1);

step(sys1,'g')

num2=num4;den2=den1;

sys2=tf(num2,den2);

step(sys2,'c')

num3=[1.051.05];den3=den1;

sys3=tf(num3,den3);

step(sys3,'b')

num5=num4;den5=conv([0.51],[111]);

sys5=tf(num5,den5);

step(sys5,'k')

num6=1.05;den6=[111];

sys6=tf(num6,den6);

step(sys6,'m')

title('高阶系统单位阶跃响应曲线比较')

lab1='sys1';text(1.9,0.5,lab1),lab2='sys2';text(1.6,0.60,lab2),

lab3='sys3';text(0.5,0.7,lab3),lab4='sys4';text(2.4,1.2,lab4),

lab5='sys5';text(2.3,1.15,lab5),lab6='sys6';text(2.2,1.1,lab6)

Sys1:

Sys2:

Sys3:

Sys4:

EigenvalueDampingFreq.(rad/s)

-5.00e-001+8.66e-001i5.00e-0011.00e+000

-5.00e-001-8.66e-001i5.00e-0011.00e+000

-2.00e+0001.00e+0002.00e+000

-4.00e+0001.00e+0004.00e+000

Sys5:

Sys6:

表3-6高阶系统动态性能分析比较(△=2%)

编号

sys系统闭环传递函数上升时间

峰值时间

超调量

调节时间

1

1.894.4213.88.51

2

1.683.7515.98.2

3

1.263.225.38.1

4

1.733.9815.58.36

5

1.663.64168.08

6

1.643.6416.38.08

分析:

运行的结果显示该系统(sys4)的闭环极点为:

-2,-4,-0.5±j0.866;闭环零点为-2.1。

可见,另外两极点实部的模比共轭复数极点实部的模大4倍多,并且共轭复数极点远离零点,因此可以把这对共轭复数极点当作是主导极点,则此系统的响应可近似地视为由这对极点所产生,它所决定的瞬态分量不仅持续时间最长,而且其初始值也大,充分体现了它在系统响应中的主导作用,而其他闭环极点产生的响应分量随时间的推移迅速衰减,对系统响应过程影响甚微。

因此该四阶系统可近似看成二阶系统。

Sys4,sys5和sys6的响应曲线几乎重合,说明三系统可以近似等效。

比较sys1,sys2和sys3的响应曲线和动态性能指标可以得到闭环零点对系统的影响为:

减小峰值时间,使系统响应速度加快,超调量增大。

这表明闭环零点会减小系统阻尼,并且这种作用将随闭环零点接近虚轴而加剧。

因此,配置闭环零点时,要考虑闭环零点对系统响应速度和阻尼程度的影响。

比较sys4和sys5的响应曲线和动态性能指标可以得到非主导极点对系统的响应为:

增大峰值时间,使系统响应速度变缓,超调量减小。

这表明闭环非主导极点可以增大系统的阻尼,并且这种作用将随闭环极点接近虚轴而加剧。

比较sys6和sys5的响应曲线和动态性能指标可以得到非主导极点对系统的响应为:

如果对某对零极点的距离靠的很近,则它们对系统响应的作用可以相互抵消。

四、基于Simulink控制系统的稳态误差分析

[范例3-11]已知一个单位负反馈系统开环传递函数为,分别做出K=1和

K=10时,系统单位阶跃响应曲线并求单位阶跃响应稳态误差。

解:

①K=10阶跃响应

②K=1阶跃响应

分析:

实验曲线表明,Ⅰ型单位反馈系统在单位阶跃输入作用下,稳态误差=0,即Ⅰ型单位反馈系统稳态时能完全跟踪阶跃输入,是一阶无静差系统。

[范例3-12]对范例3-11中的系统,分别作出k=0.1和k=1时,系统单位斜坡响应曲线并求单位斜坡响应稳态误差。

解:

①K=0.1

②K=1

分析:

实验曲线表明,Ⅰ型单位反馈系统在单位斜坡输入作用下,Ⅰ型系统稳态时能跟踪斜坡输入,但存在一个稳态位置误差=1,而且随着系统开环增益的增加,稳态误差减小,故可以通过增大系统开环增益来减小稳态误差。

[范例3-13]将实验内容

(1)中的积分环节改换成一个惯性环节,开环增益改为1,系统变成0型系统,在输入端分别给定单位阶跃信号和单位斜坡信号,重新仿真运行,在示波器scope中观察系统响应曲线,并读出稳态误差。

解:

阶跃响应

斜坡响应

分析:

实验结果表明,0型系统在单位阶跃输入作用下,系统稳态时能跟踪阶跃输入,但存在一个稳态位置误差=0.5,但是0型系统在单位斜坡输入作用下,系统不能跟踪斜坡输入,随着时间的增加,误差越来越大。

[范例3-14]将实验

(1)中开环增益改为1,在其前向通道中再增加一个积分环节,系统变成Ⅱ型系统,在输入端给定单位斜坡信号,重新仿真运行,在示波器scope中观察系统响应曲线。

解:

分析:

试验结果表明,Ⅱ型单位反馈系统在单位斜坡输入作用下,系统能完全跟踪斜坡输入,不存在稳态误差=0。

总结:

以上实验表明,系统型次越高,系统对斜坡输入的稳态误差越小,故可以通过提高系统的型次达到降低稳态误差的效果。

五、基于MATLAB控制系统的根轨迹及其性能分析

[范例4-1]已知系统的开环传递函数,绘制系统的

零极点图。

解:

num=[155]

den=conv([10],conv([11],[122]))

pzmap(num,den)

分析:

MATLAB提供pzmap()函数来绘制系统的零极点分布图,其调用格式为:

pzmap(num,den)或[p,z]=pzmap(num,den)

【范例4-2】若已知系统开环传递函数,绘制控制系统

根轨迹图,并分析根轨迹的一般规律。

解:

k=1;

z=[];

p=[0-1-2];

[num,den]=zp2tf(z,p,k);

rlocus(num,den),grid

分析:

由以上根轨迹图可以分析根轨迹的一般规律:

●根轨迹的条数及其运动方向。

根轨迹有3条,分别从起点(0,0)、(-1,0)和(-2,0)出发,随着k值从0→∞变化,趋向无穷远处。

●位于负实轴上的根轨迹(-∞,-2)和(-1,0)区段,其对应的阻尼ξ>1,超调量为0,系统处于过阻尼状态,而且在远离虚轴的方向,增益k增大,振荡频率ωn随之提高,系统的动态衰减速率相应增大。

●在根轨迹的分离点(-0.423,0)处,对应于阻尼ξ=1,超调量为0,开环增益k=0。

385,系统处于临界阻尼状态。

●根轨迹经过分离点后离开实轴,朝s右半平面运动。

当根轨迹在分离点与虚轴这个区间时,闭环极点由实数极点变为共轭复数极点,对应阻尼0<ξ<1,超调量越靠近虚轴越大,系统处于欠阻尼状态,其运动响应将出现衰减振荡,而且越靠近虚轴,增益k越大,阻尼越小,振荡频率ωn越高,振幅衰减越大。

●当根轨迹与虚轴相交时,闭环跟位于虚轴上,闭环极点是一对纯虚根(±j1.41,0),阻尼ξ=0,超调量最大,系统处于无阻尼状态,其运动响应将出现等幅振荡。

此时对应的增益k=5.92,成为临界稳定增益Kc。

在【范例4-2】所绘根轨迹上分段取点,构造闭环传递函数,分别绘制其对应系统的阶跃响应曲线,并比较分析将数据记录于表4-1中。

解:

(1)

如图

(1)

ζ=-0.2,K=23时:

z=[];

p=[0-1-2];

k=23

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

当前位置:首页 > 自然科学 > 物理

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

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