Stable response for an unstable system
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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)
Which is great, but does not match the transfer function.
0 Kommentare
Akzeptierte Antwort
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
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
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
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!