控原笔记(2)——Matlab分析控制系统性能
可以使用Matlab时域命令求解时域响应,以及如何对控制系统进行性能分析,包括考察系统的过度过程指标,研究二阶系统的特征参数——阻尼比和自然频率对系统特性的影响,以及系统特征根的位置与过度过程的关系;研究传递函数的零极点对系统过度过程的影响和高阶系统的闭环主导极点的性质。
【例一】 有一系统 G ( s ) = Y ( s ) X ( s ) = 2 s 2 + 4 s + 8 G(s)=\frac{Y(s)}{X(s)}=\frac{2}{s^2+4s+8} G(s)=X(s)Y(s)=s2+4s+82,求它的单位脉冲响应曲线。
>> num = [0 0 2]; %分子
>> den = [1 4 8]; %分母
>> grid %网格
>> impulse(num, den) %单位脉冲响应
输出单位脉冲响应曲线:
【例二】 求取传递函数
G
(
s
)
=
ω
n
2
s
2
+
2
s
ω
n
ζ
+
ω
n
2
G(s)=\frac{ \omega_n^2}{s^2+2s\omega_n\zeta+\omega_n^2}
G(s)=s2+2sωnζ+ωn2ωn2的单位阶跃响应。
(1)
ω
n
=
1
\omega_n=1
ωn=1,
ζ
\zeta
ζ分别取0, 0.5, 1.0, 1.5, 2;
(2)
ζ
=
0.5
\zeta=0.5
ζ=0.5,
ω
n
\omega_n
ωn分别取0.2, 0.4, 0.6, 0.8, 1;
说明这两个特征参数对过渡过程的影响。
解:
ζ
\zeta
ζ,
ω
n
\omega_n
ωn是决定二阶系统动态特征的两个重要参数,
ζ
\zeta
ζ其中是阻尼比,
ω
n
\omega_n
ωn是无阻尼振荡频率,下面通过Matlab仿真验证这两个参数对系统性能的影响。
xi=0.5;omegn=[0.2:0.2:1];k=length(omegn);t=0:0.1:60;
for i = 1:k
num = [omegn(i)^2];
den = [1 2 * xi * omegn(i) omegn(i)^2];
[c,x,t]=step(num,den,t);
subplot(1,2,1),plot(t,c);hold on
end
subplot(1,2,1),xlabel('Time(s)'),ylabel('C(t)'),grid on
omegn = 1;xi = [0:0.5:2];k = length(xi);
for i = 1:k
num = [omegn(i)^2];
den = [1 2 * xi * omegn(i) omegn(i)^2];
[c,x,t]=step(num,den,t);
subplot(1,2,2),plot(t,c);hold on
end
subplot(1,2,2),xlabel('Time(s)'),ylabel('C(t)'),grid on
输出结果如图,其中左图中阻尼比
ζ
=
0.5
\zeta=0.5
ζ=0.5,
ω
n
\omega_n
ωn分别取0.2, 0.4, 0.6, 0.8, 1;右图中
ω
n
=
1
\omega_n=1
ωn=1,
ζ
\zeta
ζ分别取0, 0.5, 1.0, 1.5, 2。
在Matlab中还可以使用函数lsim(num, den, u, t)对任意输入的连续系统进行仿真。例如有一系统:
G
(
s
)
=
2
s
2
+
5
s
+
1
s
2
+
2
s
+
3
G(s)=\frac{2s^2+5s+1}{s^2+2s+3}
G(s)=s2+2s+32s2+5s+1
输入周期为4s的方波时,求系统的输出响应。Matlab程序如下:
num = [2 5 1];den = [1 2 3];t=(0:1:10);
period = 4
u = (rem(t,period)>=period/2); %rem(t,period)作用是求整除t/period的余数
lsim(num,den,u,t);
title('Square ware response')
输出响应图像为: