北京科技大学控制实验报告3.docx
《北京科技大学控制实验报告3.docx》由会员分享,可在线阅读,更多相关《北京科技大学控制实验报告3.docx(42页珍藏版)》请在冰点文库上搜索。
北京科技大学控制实验报告3
实验三利用MATLAB进行时域分析
一、实验目的
(1)学会使用MATLAB编程绘制控制系统的单位阶跃响应曲线;
(2)研究二阶控制系统中,、n对系统动态特性和时域指标的影响;
(3)掌握准确读取动态特性指标的方法;
(4)分析二阶系统闭环极点和闭环零点对系统动态性能的影响;
(5)研究三阶系统单位阶跃响应及其动态性能指标与其闭环极点的关系;
(6)研究闭环极点和闭环零点对高阶系统动态性能的影响;
(7)了解高阶系统中主导极点与偶极子的作用;
(8)了解系统阶跃响应、脉冲响应和斜坡响应输出曲线之间的联系与差别。
二、实验原理及内容
1.求系统的特征根
若已知系统的特征多项式D(s),利用roots()函数可以求其特征根。
若已知系统的传递函数,利用eig()函数可以直接求出系统的特征根。
2、求系统的闭环根、ζ和ωn
函数damp()可以计算出系统的闭环根、ζ和n。
3、零极点分布图
可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性,调用格式为:
pzmap(num,den)
【范例3-1】给定传递函数:
G(s)
3s4
2s3
5s2
4s
6
5
3s4
4s3
2s2
7s2
s
利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如图3-所
示。
>>num=[3,2,5,4,6];
den=[1,3,4,2,7,2];
pzmap(num,den)
title(1Pole-ZeroMap1)%图形标题。
图3-1MATLAB函数零、极点分布图
4、求系统的单位阶跃响应
step()函数可以计算连续系统单位阶跃响应(impulse()函数可以计算连续系统单位
脉冲响应):
step(sys)或step(sys,t)或step(num,den)
函数在当前图形窗口中直接绘制出系统的单位阶跃响应曲线,对象sys可以由tf(),zpk
()函数中任何一个建立的系统模型。
第二种格式中t可以指定一个仿真终止时间,也可以
设置为一个时间矢量(如t=0:
dt:
Tfinal,即dt是步长,Tfinal是终止时刻)。
如果需要将输出结果返回到MATLAB工作空间中,则采用以下调用格式:
c=step(sys)
此时,屏上不会显示响应曲线,必须利用plot()命令查看响应曲线。
plot可以根据两个或多
个给定的向量绘制二维图形。
【范例3-2】已知传递函数为:
G(s)
25
s24s25
利用以下MATLAB命令可得阶跃响应曲线如图3-所示。
>>num=[0,0,25];
den=[1,4,25];
step(num,den)
grid%绘制网格线。
title(1Unit-StepResponseofG(s)=25/(s^2+4s+25)1)%图像标题
图
3-2MATLAB
绘制的响应曲线
还可以用下面的语句来得出阶跃响应曲线
>>G=tf([0,0,25],[1,4,25]);
t=0:
0.1:
5;%从0到5每隔0.1取一个值。
c=step(G,t);%动态响应的幅值赋给变量c
plot(t,c)%绘二维图形,横坐标取t,纵坐标取
Css=dcgain(G)%求取稳态值。
c。
系统显示的图形类似于上一个例子,在命令窗口中显示了如下结果
Css=1
5、求阶跃响应的性能指标
MATLAB提供了强大的绘图计算功能,可以用多种方法求取系统的动态响应指标。
首
先介绍一种最简单的方法――游动鼠标法。
对于例2,在程序运行完毕后,在曲线中空白区
域,单击鼠标右键,在快捷菜单中选择”characteristics”,包含:
Peakresponse(峰值);settlingtime(调节时间);Risetime(上升时间);steadystate(稳态值);在相应位置出现相应点,用鼠
标单击后,相应性能值就显示出来。
用鼠标左键点击时域响应曲线任意一点,
系统会自动跳
出一个小方框,小方框显示了这一点的横坐标(时间)和纵坐标(幅值)
。
这种方法简单易
用,但同时应注意它不适用于用
plot()命令画出的图形。
【自我实践1】若已知单位负反馈前向通道的传递函数为:
G(s)
100
,试作出其单位
s2
5s
阶跃响应曲线,准确读出其动态性能指标,并记录数据。
另一种比较常用的方法就是用编程方式求取时域响应的各项性能指标。
与游动鼠标法相比,编程方法稍微复杂,但可以获取一些较为复杂的性能指标。
若将阶跃响应函数step()获得系统输出量返回到变量y中,可以调用如下格式
[y,t]=step(G)
该函数还同时返回了自动生成的时间变量
域性能指标。
①峰值时间(timetopeak)可由以下命令获得:
t,对返回变量
y和
t进行计算,可以得到时
[Y,k]=max(y);
timetopeak=t(k)
②最大(百分比)超调量(percentovershoot)可由以下命令得到:
C=dcgain(G);
[Y,k]=max(y);
percentovershoot=100*(Y-C)/C
dcgain()函数用于求取系统的终值。
③上升时间(risetime)可利用MATLAB中控制语句编制M文件来获得。
要求出上升时间,可以用while语句编写以下程序得到:
C=dcgain(G);
n=1;
whiley(n)n=n+1;
end
risetime=t(n)
在阶跃输入条件下,y的值由零逐渐增大,当以上循环满足
对应的时刻,即为上升时间。
对于输出无超调的系统响应,上升时间定义为输出从稳态值的
间,则计算程序如下:
y=C时,退出循环,此时
10%上升到90%所需时
C=dcgain(G);
n=1;
whiley(n)<0.1*C
n=n+1;
end
m=1;
whiley(n)<0.9*C
m=m+1;
end
risetime=t(m)-t(n)
④调节时间(setllingtime)可由while语句编程得到:
C=dcgain(G);
i=length(t);
while(y(i)>0.98*C)&(y(i)<1.02*C)
i=i-1;
end
setllingtime=t(i)
用向量长度函数
length()可求得
t序列的长度,将其设定为变量
i的上限值。
自我检测1:
>>G1=tf([0,0,100],[1,5,0]);
G2=1;
G=feedback(G1,G2)
Transferfunction:
100
---------------
s^2+5s+100
>>num=[0,0,100];
>>den=[1,5,100];
>>step(num,den)
>>grid
>>title('Unit-StepResponse')
>>
上升时间:
0.129s;峰值时间:
1.42s;调节时间:
1.41s;超调:
42%稳态值:
1
【范例3-3】已知二阶系统传递函数为:
G(s)
3
(s13i)(s13i)
利用下面的stepanalysis.m程序可得到阶跃响应如图
3-及性能指标数据。
>>G=zpk([],[-1+3*i,-1-3*i],3);
%计算最大峰值时间和超调量。
C=dcgain(G)
[y,t]=step(G);
plot(t,y)
grid
[Y,k]=max(y);
timetopeak=t(k)
percentovershoot=100*(Y-C)/C
%计算上升时间。
n=1;
whiley(n)n=n+1;
end
risetime=t(n)
%计算调节时间。
i=length(t);
while(y(i)>0.98*C)&(y(i)<1.02*C)
i=i-1;
end
setllingtime=t(i)
运行后的响应图如图3-,命令窗口中显示的结果为
C=
timetopeak=
0.3000
1.0491
percentovershoot=
risetime=
35.0914
0.6626
setllingtime=
3.5337
图3-3二阶系统阶跃响应
用游动鼠标法求取此二阶系统的各项性能指标与本例是一致的。
6、分析ωn不变时,改变阻尼比
,观察闭环极点的变化及其阶跃响应的变化。
【自我实践2】二阶系统,ωn=10,当=0,0.25,0.5,0.75
,1,1.25时,求对应系统的
闭环极点、自然振荡频率及阶跃响应曲线;并分析
对系统性能的影响。
参考程序:
阶跃响应曲线:
e
d
u
til
p
m
A
阻尼比不同时的阶跃响应曲线
2
ξ=0
1.8
1.6
ξ=0.25
1.4
1.2ξ=0.5
ξ=0.75
1
ξ=1
0.8ξ=1.25
0.6
0.4
0.2
0
00.20.40.60.811.21.41.61.82
Time(sec)
自我实践2:
>>num=100;i=0;
forsigma=0:
0.25:
1.25
den=[12*sigma*10100];
damp(den)
sys=tf(num,den);
i=i+1;
step(sys,2)
holdon
end
Eigenvalue
Damping
Freq.(rad/s)
0.00e+000
+1.00e+001i
0.00e+000
1.00e+001
0.00e+000
-1.00e+001i
0.00e+000
1.00e+001
Eigenvalue
Damping
Freq.(rad/s)
-2.50e+000
+9.68e+000i
2.50e-001
1.00e+001
-2.50e+000
-9.68e+000i
2.50e-001
1.00e+001
EigenvalueDampingFreq.(rad/s)
-5.00e+000
+8.66e+000i
5.00e-001
1.00e+001
-5.00e+000
-8.66e+000i
5.00e-001
1.00e+001
EigenvalueDampingFreq.(rad/s)
-7.50e+000
+6.61e+000i
7.50e-001
1.00e+001
-7.50e+000
-6.61e+000i
7.50e-001
1.00e+001
EigenvalueDampingFreq.(rad/s)
-1.00e+0011.00e+0001.00e+001
-1.00e+0011.00e+0001.00e+001
EigenvalueDampingFreq.(rad/s)
-2.00e+0011.00e+0002.00e+001
-5.00e+0001.00e+0005.00e+000
>>gridholdoff
title('阻尼比不同时的阶跃响应曲线')
lab1='zunibi=0';text(0.3,1.9,lab1),
lab2='zunibi=0.25';text(0.3,1.5,lab2),
>>lab3='zunibi=0.5';text(0.3,1.2,lab3),lab4='zunibi=0.75';text(0,3,1.05,lab4),lab5='zunibi=1';text(0,35,0.9,lab5),lab6='zunibi=1.25';text(0,35,0.8,lab6)
>>
ωn不变时,改变阻尼比,当ξ>1时,系统为过阻尼系统,系统的阶跃响应为非震荡过程,
瞬态特性为单调变化曲线,无超调和震荡;当0<ξ<1时,系统为欠阻尼系统,系统的阶跃
响应为非震荡过程,ξ越小,超调量越大,震荡次数越多,调节时间越长。
当ξ=0时,系统
为零阻尼系统,系统的阶跃响应为持续的等幅震荡。
当ξ<0时,输出量做发散震荡。
7、保持=0.25不变,分析ωn变化时,闭环极点对系统单位阶跃响应的影响。
【自我实践3】二阶系统,=0.25,当ωn=10,30,50时,求系统的阶跃响应曲线;并分
析ωn对系统性能的影响。
参考程序:
阶跃响应曲线:
wn变化时系统的阶跃响应曲线
1.5
wn=10
wn=30
wn=50
1
e
d
u
til
p
m
A
0.5
0
00.20.40.60.811.21.41.61.82
Time(sec)
自我实践3:
>>sgma=0.25;i=0;
>>forwn=10:
20:
50num=wn^2;den=[1,2*sgma*wn,wn^2];sys=tf(num,den);
i=i+1;
step(sys,2)holdon,gridend
>>holdoff
>>title('wn变化时系统的阶跃响应曲线')
>>lab1='wn=10';text(0.35,1.4,lab1),
>>lab2='wn=30';text(0.12,1.3,lab2),
>>lab3='wn=50';text(0.05,1.2,lab3)
>>
结论:
当ξ不变时,ω越大,峰值时间越短,调节时间越短,上升时间越短,超调量不变。
n
【综合实践】通过分别改变典型二阶系统的
ξ和ωn,观察系统在脉冲、阶跃、斜坡信号作
用下的响应特性,求时域指标,总结参数对系统性能影响的规律。
ξ
ωn
ts(s)
tp(s)
σ%tr(s)响应曲线
参数影响说明
ξ>1
0.2
78.3
4.26
当ξ>1时,系统
为过阻尼系统,
设ξ=2
1
15.7
0.852
系统的阶跃响
0.2
46.4
6.36
应为非震荡过
0<ξ<1
程,瞬态特性为
脉
设ξ=0.5
1
9.29
1.27
单调变化曲线,
冲
无超调和震荡;
0.2
当0<ξ<1时,系
ξ=0
统为欠阻尼系
1
统,系统的阶跃
响应为非震荡
-1<ξ<0
0.2
过程,ξ越小,
设ξ=-0.5
ξ<-1
设ξ=-2
ξ>1
0<ξ<1
阶
ξ=0
跃
-1<ξ<0
ξ<-1
响应曲线:
脉冲
ξ=2ωn=0.2
1
0.2
1
0.2
74.4
41.2
1
14.9
8.23
0.2
40.4
18
16.3
8.22
1
8.08
3.6
16.3
1.64
0.2
1
0.2
1
0.2
1
超调量越大,震
荡次数越多,调
节时间越长。
当
ξ=0时,系统为
零阻尼系统,系
统的阶跃响应
为持续的等幅
震荡。
当ξ<0时,
输出量做发散
震荡。
当ξ不变
时,ω越大,
n
峰值时间越短,
调节时间越短,
上升时间越短,
超调量不变。
ξ=2
ω=1
n
ξ=0.5ωn=0.2
ξ=0.5
ω=1
n
ξ=0ωn=0.2
ξ=0
ω=1
n
ξ=-0.5ωn=0.2
ξ=-0.5ω=1
n
ξ=-2ωn=0.2
ξ=-2ωn=1
ξ=2ωn=0.2
ξ=2,ωn=1
ξ=0.5ωn=0.2
ξ=0.5ωn=1
ξ=0ωn=0.2
ξ=0
ω=1
n
ξ=-0.5ωn=0.2
ξ=-0.5
ω=1
n
ξ=-2ωn=0.2
ξ=-2
ω=1
n
8、分析系统零、极点对系统阶跃响应的影响。
【自我实践
4】试作出以下系统的阶跃响应,并与原系统G(s)
10
的阶跃响应曲
2s
s2
10
线进行比较,作出实验结果分析。
num=[0,0,10];
den=[1,2,10];
step(num,den)
1)系统有零点情况:
z=-5,即G1
(s)
2s
10
;
s2
2s10
num=[0,2,10];
den=[1,2,10];
step(num,den)
结果分析:
增加零点,阶跃响应上升时间变短,峰值时间变短,超调量变小,调节时间变短,系统稳态值不变。
2)分子与分母多项式阶数相等:
n=m=2,G2(s)
s2
0.5s
10;
s2
2s
10
num=[1,0.5,10];
den=[1,2,10];
step(num,den)
结果分析:
分子与分母多项式阶数相等,系统从稳态震荡,峰值时间和调节时间均减小,稳态值不变。
3)分子多项式零次项系数为
0,G3(s)
s2
0.5s;
s2
2s10
num=[1,0.5,0];
den=[1,2,10];
step(num,den)
结果分析:
零初值的系统,零时刻对应的纵坐标为零,非零初值系统零时刻对应的纵坐标不为零。
4)原系统的微分响应,微分系数为
1/10,G4(s)
s
。
s2
2s10
num=[0,1,0];
den=[1,2,10];
step(num,den)
结果分析:
若没有零点,对于单位阶跃响应的稳态值为1,而分子部分出现零值时,单位阶
跃响应的稳态值为0。
【综合实践】附加零点的影响。
设原系统为:
R(s)Y(s)
W0(s)
-
图3-4原系统结构图
附加开环零点的情况:
R(s)Y(s)
-
P(s)W0(s)
图3-5附加开环零点的系统结构图
附加闭环零点的情况为:
R(s)Y(s)
P(s)W0(s)
—
图3-6
附加闭环零点的系统结构图
2
其中
P(S)=(TS+1)、W0
(s)
n
。
这里取ωn=1、ξ=0.5
2
s2
ns
零点参数
闭环传递函数
单位阶跃响应曲线
说明零点的影响
0.2s+1
---------
T=0.2
s^2+1.2s
+1
附加开
环零点
s+1
-------------
T=1
s^2+2s+1
0.2s+1
-----------
T=0.2
s^2+s+1
附加闭
环零点
s+1
-----------
T=1
s^2+s+1
增加系统零点会
使系统稳定性增
加,但会使调节
时间变长。
系统
零点并不改变原
有系统的稳定
性,但会影响系
统的动态参数。
零点越大,上升
时间和峰值时间
以及调节时间越
短,超调量越大,
稳态值不变。
p=tf([0.2,1],[1]);
W=tf([1],[1,1,0]);
G=feedback(p*W,1)
step(G)
Transferfunction:
0.2s+1
---------------
s^2+1.2s+1
p=tf([1,1],[1]);
W=tf([1],[1,1,0]);
G=feedback(p*W,1)
step(G)
Transferfunction:
s+1
-------------
s^2+2s+1
clc
p=tf([0.2,1],[1]);
W=tf([1],[1,1,0]);
G=feedback(W,1);
G1=p*G
step(p*G)
Transferfunction:
0.2s+1
-----------
s^2+s+1
clc
p=tf([1,1],[1]);
W=tf([1],[1,1,0]);
G=fe