Stable response for an unstable system

5 Ansichten (letzte 30 Tage)
Daniela
Daniela am 3 Aug. 2014
Kommentiert: Rohan Madnani am 5 Dez. 2019
I have a stable system transfer function wich I'm trying to control with a PID controller. The funcion is:
2.494e-008 s^4 + 8.735e-010 s^3 - 5.82e-016 s^2
-------------------------------------------------
s^6 + 0.05155 s^5 + 0.001775 s^4 + 4.491e-005 s^3
and I'm trying to control it with this PID:
9e006 s^2 + 8e006 s + 8e5
-------------------------------------
s
When I do that, I obtain an unstablesystem transer function, with one pole with positive real part, but when I simulate it for a step, I get a stable response. Anyone know what's going on?
G(1)=tf([2.494e-008 8.735e-010 -5.82e-016 0 0],[1 0.05155 0.001775 4.491e-005 0 0 0]);
Kp=8e6;
Ki=8e5;
Kd=9e6;
l=tf([Kd Kp Ki],[1 0]);
n=feedback(l*G(1),1);
step(n,t)
I get this plot as a response: http://tinypic.com/r/1fv6sp/8
Which is great, but does not match the transfer function.

Akzeptierte Antwort

Yu Jiang
Yu Jiang am 4 Aug. 2014
Bearbeitet: Yu Jiang am 4 Aug. 2014
I have computed the poles of the closed-loop system by executing the following command in the MATLAB command line.
>> [z,p,k] = zpkdata(n);
>> p{:}
Note that I use the function zpkdata (See Documentation) to read the poles of the system. The results are shown below
ans =
0.0000 + 0.0000i
0.0000 + 0.0000i
-0.0670 + 0.4265i
-0.0670 - 0.4265i
-0.1071 + 0.0000i
-0.0350 + 0.0000i
0.0000 + 0.0000i
It seems that there are no eigenvalues with positive real parts.
Even if the system is unstable, it does not necessarily mean its step response will diverge. Here is an example
>> A = [1 1; 0 -1]; B = [0;1]; C= [0, 1]; D=0;
>> sys = ss(A,B,C,D);
>> step(sys)
The step response is convergent. However, the system is unstable since A contains 1 as an eigenvalue.
  3 Kommentare
Daan van Vrede
Daan van Vrede am 4 Jun. 2018
@Yu Yiang, regarding your statement: "Even if the system is unstable, it does not necessarily mean its step response will diverge. Here is an example".
In this case there is a pole/zero cancellation. The positive (i.e. unstable) pole cancels out. Taking that into account, the system is actually stable (since only the -ve pole is left over) and hence there is no surprise that the step response does not diverge. The matlab function minreal() can be used to evaluate pole/zero cancellation: https://nl.mathworks.com/help/control/ref/minreal.html
Rohan Madnani
Rohan Madnani am 5 Dez. 2019
Is the converse also true? "Even if a system is stable, it does not necessarily mean that its step response will converge", because I am facing this issue. My tranfer function is stable as per Bode plot, but the step response is diverging. Kindly help

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by