电子信息工程学系实验
成 绩:
课程名称:MATLAB
指导教师(签名):
实验项目名称:控制系统阶跃响应与脉冲响应实验 实验时间:2012-4-19
实 验 目 的:
(1)观察学习控制系统的单位阶跃响应和单位脉冲响应
(2)记录单位阶跃响应和单位脉冲响应曲线
(3)掌握时间响应分析的一般方法
实 验 环 境:
Matlab7.1软件
实 验 内 容 及 过 程:
1、实验内容:
已知二阶系统:
(1)建立系统模型,观察阶跃响应曲线和单位脉冲响应,并计算系统的闭环根、阻尼比,无阻尼振荡频率,并作记录。
(2)修改参数,分别实验ξ=1,ξ=2的响应曲线,并作记录。
2、实验步骤:
(1)运行MATLAB;
(2)建立系统模型
1)传递函数模型TF
2)ZPK模型
3)MATLAB的阶跃响应函数
3、 实验要求:
(1)分析系统的阻尼比和无阻尼振荡频率对系统阶跃响应和脉冲响应的影响;
(2)分析响应曲线的零初值、非零初值与系统模型的关系;
(3)分析响应曲线的稳态值与系统模型的关系;
(4)分析系统零点对阶跃响应曲线和单位脉冲响应曲线的影响;
实 验 结 果 及 分 析:
1、阶跃曲线(step)与脉冲曲线(impulse),三组图分别当ξ=sqrt(10)/10,ξ=1,ξ=2的响应曲线:
图1 不同ξ系统响应曲线
下面是三种情况下的系统的闭环根、阻尼比,无阻尼振荡频率的结果:
Eigenvalue(闭环跟) Damping(阻尼比) Freq. (rad/s)(无阻尼振荡频率)
-1.00e+000 + 3.00e+000i 3.16e-001 3.16e+000
-1.00e+000 - 3.00e+000i 3.16e-001 3.16e+000
Eigenvalue(闭环跟) Damping(阻尼比) Freq. (rad/s)(无阻尼振荡频率)
-3.16e+000 1.00e+000 3.16e+000
-3.16e+000 1.00e+000 3.16e+000
Eigenvalue(闭环跟) Damping(阻尼比) Freq. (rad/s)(无阻尼振荡频率)
-8.47e-001 1.00e+000 8.47e-001
-1.18e+001 1.00e+000 1.18e+001
2、实验结果分析
(1)分析系统的阻尼比和无阻尼振荡频率对系统阶跃响应和脉冲响应的影响;
系统的阻尼比(0<ζ<1)越大,其阶跃响应超调量越小,上升时间越长;系统的阻尼比ζ决定了其振荡特性:0<ζ<1时,有振荡,ζ>1 时,无振荡、无超调,阶跃响应非周期趋于稳态输出。系统的无阻尼振荡频率越大,阶跃响应的反应速度越快。
(2)分析响应曲线的零初值、非零初值与系统模型的关系;
当分子、分母多项式阶数相等时响应曲线初值为非零初值,当分子多项式的阶数低于分母多项式的结束时相应曲线的初值为零初值。
图2响应曲线的零、非零初值与系统模型的关系图;
(3)分析响应曲线的稳态值与系统模型的关系;
当分子、分母多项式阶数相等时响应曲线稳态值为0;当分子多项式的阶数低于分母多项式的结束时相应曲线的稳态值为1.
(4)分析系统零点对阶跃响应曲线和单位脉冲响应曲线的影响;
当系统存在不稳定零点(即右半平面零点)时,系统的阶跃响应可能有向下的峰值。如图所示
图3 系统零点对阶跃响应曲线和单位脉冲响应曲线影响图
实 验 心 得:
通过实验观察学习控制系统的单位阶跃响应和单位脉冲响应,记录单位阶跃响应和单位脉冲响应曲线,掌握时间响应分析的一般方法。进一步掌握了自动控制原理二阶系统的时域分析,分析掌握系统的阻尼比和无阻尼振荡频率对系统阶跃响应和脉冲响应的影响,响应曲线的零初值、非零初值与系统模型的关系,响应曲线的稳态值与系统模型的关系,系统零点对阶跃响应曲线和单位脉冲响应曲线的影响,为以后自动化控制系统理论知识奠定基础。
附 录:
实验程序代码:
num1=10
den1=[1 2 10]
sys1=tf(num1,den1)
h1=feedback(sys1,1)
damp(den1)
num2=10
den2=[1 2*sqrt(10) 10]
sys2=tf(num2,den2)
h2=feedback(sys2,1)
damp(den2)
num3=10
den3=[1 4*sqrt(10) 10]
sys3=tf(num3,den3)
h3=feedback(sys3,1)
damp(den3)
subplot(3,2,1),step(h1)
subplot(3,2,2),impulse(h1)
subplot(3,2,3),step(h2)
subplot(3,2,4),impulse(h2)
subplot(3,2,5),step(h3)
subplot(3,2,6),impulse(h3)
零初值、非零初值与系统模型的关系程序
num1=10
den1=[1 2 10]
sys1=tf(num1,den1)
num2=[1 0.5 10]
den2=[1 2 10]
sys2=tf(num2,den2)
subplot(2,2,1),step(sys1)
subplot(2,2,2), impulse(sys1)
subplot(2,2,3),step(sys2)
subplot(2,2,4),impulse(sys2)
零点对阶跃响应影响程序:
num1=10
den1=[1 2 10]
sys1=tf(num1,den1)
num2=[-10]
den2=[1 2*sqrt(10) 10]
sys2=tf(num2,den2)
subplot(3,2,1),step(sys1)
subplot(3,2,2),impulse(sys1)
subplot(3,2,3),step(sys2)
subplot(3,2,4),impulse(sys2)