Steady state doesn't appear in step response plot
23 次查看(过去 30 天)
显示 更早的评论
I Have the following specific transfer function:
bad_sys = tf([0 0 93 278], [1 20 12 0]);
And I want to plot the step response of its close loop (with negative feedback, no gain), and display the settling time. So I call:
step(bad_sys/(1+bad_sys));
But the plot I get don't dave the dashed line which represents the steady state value, and thus will not display the settling time when I choose this option (not defined):
This steady state line, and the option to display settling time works great for the following transfer function:
good_sys = tf([0 0 1 1], [1 2 2 2]);
step(good_sys/(1+good_sys));
I suggested that the problem is in bad_sys. So I called:
sisotool
And defined G in the architecture as bad_sys:
Now I let the magical sisotool to plot the step response (with the gain C=1). This should yield the same problem, but here I got the line I wanted and the option to display settling time:
So my question is, why the steady state line of bad_sys is not displayed (and I cant display settling time) via the step function?
0 个评论
采纳的回答
Aquatris
2018-10-29
The bad_sys works if you call the step function with;
step(minreal(bad_sys/(1+bad_sys)))
I am not sure about the exact reason but one possibility is, when you closed the loop without calling minreal() function, you basically do not allow pole-zero cancellation. Since bad_sys has a pole at zero, this causes problems (internally Matlab probably does not know what to do). good_sys on the other hand do not have a pole at zero so Matlab is happy to work with it.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Classical Control Design 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!