1
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.. 谢谢

4

1 回答 1

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。

看看你的 min(ee) 和 max(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
于 2013-07-31T10:20:12.447 回答