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的误差角度。 感谢
答案 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