下面那个图,让k从0.1到20变化,步长为0.1,用MATLAB编程实现输出一组单位阶跃响应曲线。

如题所述

几点小问题:
1、既然是单位反馈,反馈通道就没必要放一个H(s)方框了;
2、第1题只说到kp,应该是单独的P控制,但表达不清楚。
3、第2、3题所谓“积分时间”、“微分时间”都显得很不专业,容易引起歧义,应加上“常数”二字为宜。

第1题
(1)求阶跃响应

1
2

G=zpk([],[-1 -1 -1],1);
for kp=1:0.5:4, step(feedback(kp*G,1)); hold on, end

(2)从阶跃响应曲线可以看到,系统存在稳态误差,kp增大,对于减小稳态误差有利,但振荡加剧,超调量增大。
(3)根据终值定理来求:

1
2
3
4
5
6
7

>> syms s kp
>> G=1/(s+1)^3;
>> limit(kp*G/(1+kp*G),0)

ans =

1/(1+kp)*kp

第2题
(1)阶跃响应:

1
2
3
4
5
6
7
8
9

G=zpk([],[-1 -1 -1],1);
s=tf('s');
kp=0.5;
clf
for Ti=0.6:0.2:2,
Gc=kp*(1+1/(Ti*s));
step(feedback(Gc*G,1));
hold on
end

(2)从阶跃响应曲线可以看到,加入积分控制之后,系统无静差。随着积分时间常数增大,系统超调减小。
(3)用终值定理:

1
2
3
4
5
6
7
8

>> syms s kp Ti
>> G=1/(s+1)^3;
>> Gc=kp*(1+1/(Ti*s));
>> limit(Gc*G/(1+Gc*G),0)

ans =

1

第3题
求阶跃响应:

1
2
3
4
5
6
7
8
9

G=zpk([],[-1 -1 -1],1);
s=tf('s');
kp=0.5;
clf
for Td=0:0.4:2,
Gc=kp*(1+Td*s);
step(feedback(Gc*G,1));
hold on
end

从阶跃响应曲线可见,微分时间常数的增大有利于提高系统快速性。

第4题
阶跃响应:

1
2
3
4
5
6
7
8
9
10

G=zpk([],[-1 -1 -1],1);
s=tf('s');
kp=0.5;
Ti=1;
clf
for Td=0:0.4:2,
Gc=kp*(1+Td*s+1/(Ti*s));
step(feedback(Gc*G,1));
hold on
end
温馨提示:答案为网友推荐,仅供参考