Stability 2004
Stability 2004
Stability 2004
6. Stability
Consider the following typical closed-loop control configuration with unity feedback gain.
r(t) e(t)
E(s)
L( s)
u(t)
U(s)
y(t)
Y(s)
r(t)
T (s)
y(t)
Y(s)
-
where L( s ) denotes the loop (or open-loop) transfer function. The closed-loop transfer function is calculated by
L( s)
T (s) =
1 + L( s )
The stability of closed-loop systems: The system is stable (in BIBO=Bounded Input Bounded Output sense) if it
produces bounded output for any bounded input.
Exercise 1.
The closed-loop (overall) transfer function of a system is
s+5
T (s) = .
s 3s + 4 s 3 + 10s 2 + 5s 10
5 4
1
Stability .
Exercise 2.
The loop transfer function of a system is
10
L( s ) = .
(1 + 10 s )(1 + s )
The system is in a negative unity feedback control loop. Determine the stability of the closed-loop based on the
Nyquist criterion.
s=tf('s')
L=10/((1+10*s)*(1+s))
[z,p,k]=zpkdata(L,'v')
Does the open-loop have unstable poles? Does the Nyquist diagram ecircle the (1+0j) point? Is the closed-loop
system stable? What happens with stability if the gain 10 in the numerator of the above transfer funcion is increased?
nyquist(L),grid
Verify the result by calculating the poles of the closed-loop system. In the feedback command 1 means unity
feedback and -1 indicates the negative feedback. (The -1 can be ignored since that is the default value)
T=feedback(L,1,-1)
or
T=L/(1+L); T=minreal(T)
The minreal command cancels the zero-pole pairs:
[z,p,k]=zpkdata(T,'v')
Plot the pole locations:
pzmap(T)
As seen the system is structurally stable. The poles are left-side poles, the Nyquist diagram does not encircle the
(1+0j) point even with increased gains.
Exercise 3.
The loop transfer function of a system is
5
L( s ) = .
(1 10s )(1 + 0.1s )
The system is in a negative unity feedback control loop. Determine the stability of the closed-loop based on the
Nyquist criterion.
L=-5/((1-10*s)*(1+0.1*s))
[z,p,k]=zpkdata(L,'v')
Does the open-loop have unstable poles? (Yes, p2 = 0.1 )
nyquist(L)
In which direction the curve encircles (1+0j) point? (CCW)
Is the system stable? (Yes)
Verify the result by calculating the poles of the closed-loop system.
T=feedback(L,1)
step(T)
[z,p,k]=zpkdata(T,'v')
pzmap(T)
5
L( s ) =
(1 + 10s )(1 0.1s )
In which direction the Nyquist curve circles the -1 point? Is the system stable?
2
Stability .
Exercise 4.
The loop transfer function of a system is
1 s
L( s ) = k .
(1 + s )(1 + 0.5s )
The system is in a negative unity feedback control loop. Determine the range for the k parameter for which the open-
loop is stable.
a. k=1 is assumed:
L=(1-s)/((1+s)*(1+0.5*s))
[z,p,k]=zpkdata(L,'v')
Does the open-loop have unstable poles?
nyquist(L),grid
Determine the point where the Nyquist curve intersects the real axis (0.666). The system can be multiplied by the
gain k=1/0.666 to be marginally stable. The system is stable if 0< k<1.5 (for k>0).
zoom
b. k=-1 is assumed:
nyquist(-L), grid
Determine again the point where the Nyquist curve intersects the real axis (-1); find k for stability (closed-loop
system is stable if k>-1>0).
Putting together the two intervals: The system is stable if 1<k<1.5
The stability can also be determined by the rlocus command, which plots the locus of the roots [gykhely-grbe]
supposing a parameter (generally the gain) changing its value from zero to infinity.
help rlocus
rlocus(L)
rlocfind(L)
(We can use the mouse to find the gain value at a given point).
If the phase margin is positive, the system is stable. For example, if the phase is = 120 , then the phase margin
is m = + 180 = 120 + 180 = 60 , that is the system is stable.
By multiplying the gain of the system with the gain margin the system becomes marginally stable.
1
gm = , where ( ) = 180
L ( )
where
: ( ) = = 180
The phase margin can be demonstrated both on the Nyquist plot and the Bode diagram. The MATLAB margin
command helps to directly calculate the phase margin.
3
Stability .
Exercise 5.
The transfer function of a system is
1
L( s ) = .
(0.5 + s )( s 2 + 2 s + 1)
The system is in a negative unity feedback control loop. Calculate the phase margin, the gain margin and the cut-off
frequency of the system:
L=1/((0.5+s)*(s^2+2*s+1))
[gm,pm,wg,wc]=margin(L)
gm is the gain margin, pm is the phase margin, wc is the cut-off frequency and wg is the frequency where the phase is
-180. These values can be displayed graphically too.
margin(L);
Note that in case of graphic display the Gm value is obtained in decibels: Gm=20*log10(gm)
The amplitude, phase and frequency values can be looked at directly by arranging them into table format:
w=logspace(-1,1,100);
[num,den]=tfdata(L,'v')
[mag,phase]=bode(num,den,w);
Tabl=[mag, phase, w]
mag phase w
.
1.1123 -99.5242 0.5094
1.0643 -103.0406 0.5337
1.0158 -106.6104 0.5591wc
0.9669 -110.2286 0.5857
0.9178 -113.8900 0.6136
.
0.2706 -173.3384 1.2915
0.2449 -176.7848 1.3530
0.2211 -180.1658 1.4175wg
0.1991 -183.4774 1.4850
0.1789 -186.7160 1.5557
.
The phase margin can be read from this table by finding the phase value belonging to the 1.0 magnitude value:
pm=180-106.6=73.4. The cut-off frequency: w=wc=0.77. The gain margin can be calculated from the gain
belonging to the 180 phase value: gm=1/0.221=4.52.
Bode Diagrams
Gm=13.064 dB (at 1.4142 rad/sec), Pm=72.227 deg. (at 0.56754 rad/sec)
20
0
Phase (deg); Magnitude (dB)
-20
-40
-60
-80
-100
-200
-300
10 -1 10 0 10 1
Frequency (rad/sec)