MATLAB Answers

Steady state doesn't appear in step response plot

28 ビュー (過去 30 日間)
George Tsintsadze
George Tsintsadze 2018 年 10 月 28 日
Answered: Aquatris 2018 年 10 月 29 日
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 件のコメント

サインイン to comment.

採用された回答

Aquatris
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 件のコメント

サインイン to comment.

More Answers (0)

サインイン してこの質問に回答します。


Translated by