Routh–Hurwitz stability criterion

From Infogalactic: the planetary knowledge core
Jump to: navigation, search


In control system theory, the Routh–Hurwitz stability criterion is a mathematical test that is a necessary and sufficient condition for the stability of a linear time invariant (LTI) control system. The Routh test is an efficient recursive algorithm that English mathematician Edward John Routh proposed in 1876 to determine whether all the roots of the characteristic polynomial of a linear system have negative real parts.[1] German mathematician Adolf Hurwitz independently proposed in 1895 to arrange the coefficients of the polynomial into a square matrix, called the Hurwitz matrix, and showed that the polynomial is stable if and only if the sequence of determinants of its principal submatrices are all positive.[2] The two procedures are equivalent, with the Routh test providing a more efficient way to compute the Hurwitz determinants than computing them directly. A polynomial satisfying the Routh–Hurwitz criterion is called a Hurwitz polynomial.

The importance of the criterion is that the roots p of the characteristic equation of a linear system with negative real parts represent solutions ept of the system that are stable (bounded). Thus the criterion provides a way to determine if the equations of motion of a linear system have only stable solutions, without solving the system directly. For discrete systems, the corresponding stability test can be handled by the Schur–Cohn criterion, the Jury test and the Bistritz test. With the advent of computers, the criterion has become less widely used, as an alternative is to solve the polynomial numerically, obtaining approximations to the roots directly.

The Routh test can be derived through the use of the Euclidean algorithm and Sturm's theorem in evaluating Cauchy indices. Hurwitz derived his conditions differently.[3]

Using Euclid's algorithm

The criterion is related to Routh–Hurwitz theorem. Indeed, from the statement of that theorem, we have p-q=w(+\infty)-w(-\infty) where:

  • p is the number of roots of the polynomial ƒ(z) with negative Real Part;
  • q is the number of roots of the polynomial ƒ(z) with positive Real Part (let us remind ourselves that ƒ is supposed to have no roots lying on the imaginary line);
  • w(x) is the number of variations of the generalized Sturm chain obtained from P_0(y) and P_1(y) (by successive Euclidean divisions) where f(iy)=P_0(y)+iP_1(y) for a real y.

By the fundamental theorem of algebra, each polynomial of degree n must have n roots in the complex plane (i.e., for an ƒ with no roots on the imaginary line, p + q = n). Thus, we have the condition that ƒ is a (Hurwitz) stable polynomial if and only if p − q = n (the proof is given below). Using the Routh–Hurwitz theorem, we can replace the condition on p and q by a condition on the generalized Sturm chain, which will give in turn a condition on the coefficients of ƒ.

Using matrices

Let f(z) be a complex polynomial. The process is as follows:

  1. Compute the polynomials P_0(y) and P_1(y) such that f(iy)=P_0(y)+iP_1(y) where y is a real number.
  2. Compute the Sylvester matrix associated to P_0(y) and P_1(y).
  3. Rearrange each row in such a way that an odd row and the following one have the same number of leading zeros.
  4. Compute each principal minor of that matrix.
  5. If at least one of the minors is negative (or zero), then the polynomial f is not stable.

Example

  • Let f(z)=az^2+bz+c (for the sake of simplicity we take real coefficients) where  c\neq 0 (to avoid a root in zero so that we can use the Routh–Hurwitz theorem). First, we have to calculate the real polynomials P_0(y) and P_1(y):
f(iy)=-ay^2+iby+c=P_0(y)+iP_1(y)=-ay^2+c+i(by).
Next, we divide those polynomials to obtain the generalized Sturm chain:

Notice that we had to suppose b different from zero in the first division. The generalized Sturm chain is in this case (P_0(y),P_1(y),P_2(y))=(c-ay^2,by,-c). Putting y=+\infty, the sign of c-ay^2 is the opposite sign of a and the sign of by is the sign of b. When we put y=-\infty, the sign of the first element of the chain is again the opposite sign of a and the sign of by is the opposite sign of b. Finally, -c has always the opposite sign of c.

Suppose now that f is Hurwitz-stable. This means that w(+\infty)-w(-\infty)=2 (the degree of f). By the properties of the function w, this is the same as w(+\infty)=2 and w(-\infty)=0. Thus, a, b and c must have the same sign. We have thus found the necessary condition of stability for polynomials of degree 2.

Routh–Hurwitz criterion for second, third, and fourth-order polynomials

In the following, we assume the coefficient of the highest order (e.g. a_2 in a second order polynomial) to be positive. If necessary, this can always be achieved by multiplication of the polynomial with -1.

  • For a second-order polynomial,  P(s) = a_2s^2 + a_1s + a_0 = 0 , all the roots are in the left half plane (and the system with characteristic equation  P(s) is stable) if all the coefficients satisfy  a_n > 0 .
  • For a third-order polynomial  P(s) = a_3s^3 + a_2s^2 + a_1s + a_0 = 0, all the coefficients must satisfy  a_n > 0 , and  a_2a_1 > a_3a_0
  • For a fourth-order polynomial  P(s) = a_4s^4 + a_3s^3 + a_2s^2 + a_1s + a_0 = 0 , all the coefficients must satisfy  a_n > 0 , and  a_3a_2 > a_4a_1 and  a_3a_2a_1 > a_4a_1^2 + a_3^2a_0
  • In general Routh stability criterion proclaims that all First column elements of Routh array is to be of same sign.

System meeting the above criteria is said to closed loop stable otherwise unstable because there is sign changes in the first column elements.

Higher-order example

A tabular method can be used to determine the stability when the roots of a higher order characteristic polynomial are difficult to obtain. For an nth-degree polynomial

  • D(s)=a_ns^n+a_{n-1}s^{n-1}+\cdots+a_1s+a_0

the table has n + 1 rows and the following structure:

a_n a_{n-2} a_{n-4} \dots
a_{n-1} a_{n-3} a_{n-5} \dots
b_1 b_2 b_3 \dots
c_1 c_2 c_3 \dots
\vdots \vdots \vdots \ddots

where the elements b_i and c_i can be computed as follows:

  • b_i=\frac{a_{n-1}\times{a_{n-2i}}-a_n\times{a_{n-2i-1}}}{a_{n-1}}.
  • c_i=\frac{b_1\times{a_{n-2i-1}}-a_{n-1}\times{b_{i+1}}}{b_1}.

When completed, the number of sign changes in the first column will be the number of non-negative poles.

0.75 1.5 0 0
-3 6 0 0
3 0 0 0
6 0 0 0

In the first column, there are two sign changes (0.75 → −3, and −3 → 3), thus there are two non-negative roots where the system is unstable.

Sometimes the presence of poles on the imaginary axis creates a situation of marginal stability. In that case the coefficients of the "Routh Array" in a whole row become zero and thus further solution of the polynomial for finding changes in sign is not possible. Then another approach comes into play. The row of polynomial which is just above the row containing the zeroes is called "Auxiliary Polynomial".

  • s^6+2s^5+8s^4+12s^3+20s^2+16s+16=0.\,

We have the following table:

1 8 20 16
2 12 16 0
2 12 16 0
0 0 0 0

In such a case the Auxiliary polynomial is A(s)=2s^4+12s^2+16.\, which is again equal to zero. The next step is to differentiate the above equation which yields the following polynomial. B(s)=8s^3+24s^1.\,. The coefficients of the row containing zero now become "8" and "24". The process of Routh array is proceeded using these values which yield two points on the imaginary axis. These two points on the imaginary axis are the prime cause of marginal stability.[4]

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found. (English translation “On the conditions under which an equation has only roots with negative real parts” by H. G. Bergmann in Selected Papers on Mathematical Trends in Control Theory R. Bellman and R. Kalaba Eds. New York: Dover, 1964 pp. 70–82.)
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  • Felix Gantmacher (J.L. Brenner translator) (1959) Applications of the Theory of Matrices, pp 177–80, New York: Interscience.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.

External links