Matlab Stepinfo函数

时间:2013-07-30 16:37:34

标签: matlab

S = stepinfo(Y,T,180,'SettlingTimeThreshold',ST) ;

ts=S.SettlingTime;

这意味着ts是| Y-180 |的时间变得小于(ST / 100)或其他东西...... 在我的代码中虽然| Y-180 |小于ST / 100但我得到ts = NAN; 请帮助我

我的代码:

if ee(end)>160

    S = stepinfo(ee,times,180,'SettlingTimeThreshold',0.01);

else

    S = stepinfo(ee,times,0.5,'SettlingTimeThreshold',1);

end

settling_time = S.SettlingTime;

end

其中'ee'是每个'次'的值数组

ee基本上是一段时间后变为180或0的误差角度。 感谢

1 个答案:

答案 0 :(得分:0)

来自帮助:

  

当错误| y(t) - yfinal |时,响应已经解决变   小于其峰值的分数ST。

这意味着它是峰值误差值的一部分,而不是绝对阈值 - 例如如果你的系统是从大约30开始的,最终上升并稳定在180附近(yfinal = 180),则最大误差为150,阈值为0.01 * 150 = 1.5。所以它需要达到178.5(180-1.5)。

如果您的系统从100开始并且在大约180时结算,则您的最大误差为80,然后阈值仅为0.8,因此您的值必须为179.2。

查看你的最小值(ee)和最大值(ee),然后确定合理的阈值是什么。

编辑:

如果要设置固定阈值,则必须动态计算:

desiredthreshold = 1.8 % absolute value, e.g. 0.01*180
maxerror = 180-min(ee); % assuming your values are all between 0 and 180
actualthreshold = 1.8/maxerror; %if your min value is 0 then this goes to 0.01, otherwise it will be larger