Controller Stability Analysis
![]() | ![]() | ![]() | ![]() | ![]() |
---|
The purpose of controller stability analysis is to determine the range of controller gains between lower KcLKcL and upper KcUKcU limits that lead to a stable controller.
KcL≤Kc≤KcUKcL≤Kc≤KcU
The principles of stability analysis presented here are general for any linear time-invariant system whether it is for controller design or for analysis of system dynamics. Several characteristics of a system in the Laplace domain can be deduced without transforming a system signal or transfer function back into the time domain. Some of the analysis relies on the roots of the transfer function denominator, also known as poles. The roots of the numerator, also known as zeros, do not affect the stability directly but can potentially cancel an unstable pole to create an overall stable system.
Converge or Diverge
A first point of analysis is whether the system converges or diverges. This is determined by analyzing the roots of the denominator of the transfer function. If any of the real parts of the roots of the denominator are positive then the system is unstable.
A simple rule to determine whether there are positive real roots is to examine the signs of the polynomial. If there are mixed signs (+ or -) then the system will be unstable because there is at least one positive real root.
Before modern computational methods, there were several methods devised to determine the stability of a system. One such approach is the Routh-Hurwitz stability criterion. The leading left edge of a table determines whether the system is stable for or any nth-degree polynomial
ansn+an−1sn−1+⋯+a1s+a0ansn+an−1sn−1+⋯+a1s+a0
The coefficients of the polynomial are placed into tabular form and additional coefficients b and c are computed from higher rows.
anan | an-2an−2 | an-4an−4 | ...... |
an-1an−1 | an-3an−3 | an-5an−5 | ...... |
b1=an-1an-2-anan-3an-1b1=an−1an−2−anan−3an−1 | b2=an-1an-4-anan-5an-1b2=an−1an−4−anan−5an−1 | b3b3 | ...... |
c1=b1an-3-an-1b2b1c1=b1an−3−an−1b2b1 | c2=b1an-5-an-1b3b1c2=b1an−5−an−1b3b1 | c3c3 | ...... |
⋮⋮ | ⋮⋮ | ⋮⋮ | ⋱⋱ |
The terms b and c are:
bi=an−1×an−2i−an×an−2i−1an−1bi=an−1×an−2i−an×an−2i−1an−1
ci=b1×an−2i−1−an−1×bi+1b1ci=b1×an−2i−1−an−1×bi+1b1
A changing sign (+ or -) of the leading left edge anan, an-1an−1, b1b1, c1c1 indicates that the system is unstable.
Several additional methods can be used to determine stability as summarized below.
Method | Stability Condition |
Routh Array | Leading left edge terms do not change sign |
Root Locus Plot | All poles (roots of denominator) have negative real parts |
Bode Plot | The response magnitude at -180 deg phase is less than one |
Simulation | Simulate a closed loop response with increasing or decreasing controller gains until instability occurs |
In addition to analysis in the Laplace domain, stability can be determined from a model in state space form.
˙x=Ax+Bu˙x=Ax+Bu
y=Cx+Duy=Cx+Du
A state space model is stable when the eigenvalues of the A matrix have negative real parts.
Oscillatory or Smooth
A second point of analysis is whether the system exhibits oscillatory or smooth behavior. If any of the roots of the denominator have an imaginary component then the system has oscillations. Imaginary roots always come in pairs with the same positive and negative imaginary values.
Final Value Theorem
The Final Value Theorem (FVT) gives the steady state gain KpKp of a transfer function G(s)G(s) by taking the limit as s→0s→0
Kp=lims→0G(s)Kp=lims→0G(s)
The FVT also determines the final signal value y∞y∞ for a stable system with output Y(s)Y(s). Note that the Laplace variable s is multiplied by the signal Y(s) before the limit is taken.
y∞=lims→0sY(s)
The FVT may give misleading results if applied to an unstable system. It is only applicable to stable systems or signals.
Initial Value Theorem
The Initial Value Theorem (IVT) gives an initial condition of a signal by taking the limit as s→∞. Like the FVT, the Laplace variable s is multiplied by the signal Y(s) before the limit is taken.
y0=lims→∞sY(s)
Controller Stability
Controller stability analysis is finding the range of controller gains that lead to a stabilizing controller. There are multiple methods to compute this range between a lower limit KcL and an upper limit KcL.
KcL≤Kc≤KcU
This range is important to know the range of tuning values that will not lead to a destabilizing controller. With modern computational tools and powerful computers, the simulation based option is frequently used for complex systems.
Exercise
Consider a feedback control system that has the following open loop transfer function.
G(s)=4Kc(s+1)(s+2)(s+3)
Determine the values of Kc that keep the closed loop system response stable.
Solution
First, calculate the closed loop transfer function from the open loop tranfer function.
Gcl(s)=G(s)1+G(s)=4Kc(s+1)(s+2)(s+3)1+4Kc(s+1)(s+2)(s+3)=4Kc(s+1)(s+2)(s+3)+4Kc
Gcl(s)=4Kcs3+6s2+11s+6+4Kc
Routh Array
an=1 | an-2=11 |
an-1=6 | an-3=6+4Kc |
b1=66-6-4Kc6 | b2=0 |
c1=6+4Kc | 0 |
The leading edge cannot change signs for the system to be stable. Therefore, the following conditions must be met:
an=1>0
an−1=6>0
b1=66−6−4Kc6>0
c1=6+4Kc>0
The positive constraint on b1 leads to Kc<15. The positive constraint on c1 means that Kc>-1.5. Therefore the following ranges are acceptable for the controller stability.
−1.5<Kc<15
This is a more comprehensive solution than the other methods shown below because it also includes a lower bound on the controller stability limit (if a direct acting controller were inadvertently used).
Root Locus Plot
Determine where the real portion of the roots crosses to the right hand side of the plane. In this case, the real part of two roots becomes positive at Kc=15.

Bode Plot
Determine the gain margin at -180o phase. The magnitude at -180o phase is about -23 dB. With -23=20log10(AR), the gain margin is 1AR and approximately equal to 15. This is the upper bound on the controller gain to keep the system stable. This answer agrees with the root locus plot solution.

Stability Simulation
A simulation of the closed loop system verifies the stability limits of -1.5 (lower) and 15 (upper).

from scipy import signal
import matplotlib.pyplot as plt
def sim(Kc):
tm = np.linspace(0,20,1000)
num = [4.0*Kc]
den = [1,6,11,6+4*Kc]
sys = signal.TransferFunction(num, den)
t,y = signal.step(sys,T=tm)
return t,y
plt.figure(figsize=(7,4))
for K in [16,15,1,0,-1,-1.5,-1.6]:
t,y = sim(K)
plt.plot(t,y,label='Kc='+str(K))
plt.legend(); plt.grid()
plt.ylim([-3,3]); plt.tight_layout()
plt.xlabel('Time')
plt.show()
Numerical methods can simulate nonlinear systems, constraints, and other realistic system characteristics that cannot be analyzed with the linear methods of Routh Arrays, Root Locus, or Bode Plots.
Additional Root Locus Example
Find the stability limit for Kc for the following closed-loop transfer function.
1(x2+x+1)(x+1)2−2Kc
Assignment
See Stability Analysis Exercises
