Lesson 18


1 Learning Objectives

By the end of this lesson students will be able to:

2 Definition of Stability

We talked about how the response of a differential equation has two parts in Lesson 10:

  1. Transient (free, natural). The homogeneous solution yH(t)y_H(t).
  2. Forced (steady-state). The particular solution yP(t)y_P(t).

The input to the system determines the forced response, yP(t)y_P(t). If the input is bounded, the output will be bounded. Bounded is math language for “does not go off to infinity.”

The natural response, yH(t)y_H(t), is determined by the components that make up the system and can fall into three categories:

  1. Stable: yH(t)0y_H(t) \rightarrow 0 as tt \rightarrow \infty
  1. Unstable: yH(t)y_H(t) \rightarrow \infty as tt \rightarrow \infty
  1. Marginally stable: yH(t)y_H(t) \rightarrow constant or oscillating as tt \rightarrow \infty

2.1 Bounded-Input, Bounded-Output (BIBO)

3 Closed-Loop Stability

Given a generic closed-loop system without a disturbance:

The transfer function of the entire system simplified to one block is

T(s)=C(s)G(s)1+C(s)G(s)H(s)T(s) = \frac{C(s)G(s)}{1 + C(s)G(s)H(s)}

The stability of T(s)T(s) depends on the location of the poles (roots of the denominator):

  1. Stable: all poles on the left-hand side of the plane
  2. Marginally stable: one or more poles on the y-axis in different locations
  3. Unstable: multiple poles in the same location on the y-axis, or one or more poles on the right-hand side of the plane

3.0.1 Example 1

Assume a closed-loop system with unity feedback, a proportional controller KP=30K_P = 30 and a plant transfer function of G(s)=10.5s3+4s2+23s+34G(s) = \frac{1}{0.5s^3 + 4s^2 + 23s + 34}.

Find the location of the poles of T(s)T(s).

Kp = [30];
denT = [0.5 4 23 (34+Kp)];
CLpoles = roots(denT)

3.0.2 Student Exercise 1

Given the system from Example 1, find the poles if KP=K_P = 1, 50, 100, 150, 200, 250 and classify each as stable, marginally stable, or unstable.

Solution

So what we’ve seen is that the gain changes the pole location. This is true for anything that goes in the controller block, not just a proportional controller.

Also note that there’s an upper limit to how much you can increase the gain before the system becomes unstable. If you had to guess, what’s the approximate maximum gain?

4 Root-Locus Method

A root-locus plot is a way to visualize the effect of controller gain on pole location.

4.0.1 Example 2

Generate a root-locus plot of a unity feedback system with C(s)=KPC(s) = K_P and G(s)=1s(s+3)G(s) = \frac{1}{s(s + 3)}.

KPK_P Pole Location
0.001 2.9997,0.0003-2.9997, -0.0003
1 2.6180,0.3820-2.6180, -0.3820
2.25 1.5,1.5-1.5, -1.5
4 1.5±j1.3229-1.5 \pm j1.3229
10 1.5±j2.7839-1.5 \pm j2.7839
100 1.5±j9.8869-1.5 \pm j9.8869

4.1 Using MATLAB for Root Locus Plots

We can use MATLAB to create root locus plots:

  1. Define the transfer function, then
  2. Use rlocus(C(s)*G(s)*H(s))

4.1.1 Example 3

Just create the root-locus plot. Assume C(s)G(s)H(s)=1s(s+3)C(s)G(s)H(s) = \frac{1}{s(s + 3)}.

sysCGH = tf(1,[1 3 0]);
rlocus(sysCGH)

4.1.2 Example 4

Assume a value for KK, where does it fall on the plot?

sysCGH = tf(1,[1 3 0]);
KP = 2;
CL_roots = rlocus(sysCGH,KP)

4.1.3 Example 5

Click on the plot to get the roots for the location.

sysCGH = tf(1,[1 3 0]);
rlocus(sysCGH)
[KP,CL_roots] = rlocfind(sysCGH)

4.1.4 Student Exercise 2

Generate the root locus plot for the following system. Assume H(s)=C(s)=1H(s) = C(s) = 1. At approximately what gain does the system become unstable?

G(s)=10.5s3+4s2+23s+34G(s) = \frac{1}{0.5s^3 + 4s^2 + 23s + 34}

Solution

5 Stability Margins

Stability margins are another way to check if a system is stable. They have a particular advantage over root-locus plots: they more readily tell an engineer how much gain is required to make the system unstable.

Here are the steps:

  1. Find the loop gain of your system. This is the product of all the transfer functions in the feedback loop: C(s)G(s)H(s)C(s)G(s)H(s). It is implied that the proportional gain, KPK_P, has been factored out.
  2. Define a tf() containing the loop gain; you can also use zpk().
  3. Use margin() to find the gain and phase margin.

Do this to get actual numbers:

[Gm, Pm, Wgm, Wpm] = margin(Kp*sysCGH)

Do this to get a plot with the numbers:

margin(Kp*sysCGH)

5.1 Gain Margin

  1. Find the ω\omega where the phase plot is 180°-180°. Then locate the magnitude at that ω\omega. The difference between the magnitude and 0 dB is called the gain margin.
  2. The gain margin is the amount you can increase the gain before the system becomes unstable.

5.2 Phase Margin

  1. Find the unity-gain crossover frequency, ω\omega, on the magnitude plot. This is where the magnitude crosses 0 dB.
  2. Read the difference in phase angle between 180°-180° and the angle at the frequency ω\omega. This difference is the phase margin.
  3. The phase margin is the amount of lag that can be added to a system before it becomes unstable.

5.2.1 Example 6

Find the gain and phase margin for a unity feedback system in which

G(s)=1(s+2)(s+4)(s+5)G(s) = \frac{1}{(s + 2)(s + 4)(s + 5)}

and

C(s)=KPC(s) = K_P

sysCGH = zpk([],[-2 -4 -5],1)
Kp = 1;
margin(Kp*sysCGH)
[Gm, Pm, Wgm, Wpm] = margin(Kp*sysCGH)

5.2.2 Student Exercise 3

Find the gain and phase margin for a unity feedback system in which

G(s)=(s+3)s(s+1)(s+2)(s+4)G(s) = \frac{(s + 3)}{s(s + 1)(s + 2)(s + 4)}

and

C(s)=KPC(s) = K_P

Solution