Steady state doesn't appear in step response plot

조회 수: 17 (최근 30일)
George Tsintsadze
George Tsintsadze 2018년 10월 28일
답변: 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?

채택된 답변

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개)

카테고리

Help CenterFile Exchange에서 Classical Control Design에 대해 자세히 알아보기

제품


릴리스

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by