我正在使用函数stepinfo
来获取系统的阶跃响应。但是我获得的信息以及我从step
绘制的信息得到的信息并不匹配。对于闭环系统:
m1=3; m2=2; k=12; B=6;
p=35.1263; z=4.9686; K=683.9;
s=tf('s');
G=(B*s+k+s^2*m2)/(s^2*(s^2*m1*m2+(m1+m2)*(B*s+k)));
H=K*(s+z)/(s+p);
T=(G*H/(1+G*H));
stepinfo(T)
的结果是
ans =
RiseTime: 0.3876
SettlingTime: 1.4245
SettlingMin: 0.9863
SettlingMax: 1.1881
Overshoot: 18.8102
Undershoot: 0
Peak: 1.1881
PeakTime: 0.5756
虽然step(T,0:1e-3:10)
产生的图表清楚地显示响应超过1.2,这意味着过冲大于20而不是18.81。
区别的来源是什么?
答案 0 :(得分:1)
似乎是R2009b版本的某种错误。如评论中所述,我在具有R2012a版本的计算机上运行相同的代码,stepinfo
的结果是:
ans =
RiseTime: 0.1671
SettlingTime: 1.3591
SettlingMin: 0.9066
SettlingMax: 1.2094
Overshoot: 20.9442
Undershoot: 0
Peak: 1.2094
PeakTime: 0.4604
这是预期的结果。