Jury stability criterion

From testwiki
Revision as of 05:55, 8 November 2024 by imported>OlliverWithDoubleL (converted table to <math> for alignment and variable spacing (grouping pairs of rows together that are reverse ordered))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Template:Short description

In signal processing and control theory, the Jury stability criterion is a method of determining the stability of a discrete-time, linear system by analysis of the coefficients of its characteristic polynomial. It is the discrete time analogue of the Routh–Hurwitz stability criterion. The Jury stability criterion requires that the system poles are located inside the unit circle centered at the origin, while the Routh-Hurwitz stability criterion requires that the poles are in the left half of the complex plane. The Jury criterion is named after Eliahu Ibraham Jury.

Method

If the characteristic polynomial of the system is given by

f(z)=an+an1z1+an2z2++a1zn1+a0zn

then the table is constructed as follows:[1]

row_ zn_  zn1_  zn2_    z1_  z0_ 1a0a1a2an1an2anan1an2a1a03b0b1bn2bn14bn1bn2b1b05c0c1cn26cn2cn3c0 2n5p0p1p2p32n4p3p2p1p02n3q2q1q0

That is, the first row is constructed of the polynomial coefficients in order, and the second row is the first row in reverse order and conjugated.

The third row of the table is calculated by subtracting ana0 times the second row from the first row, and the fourth row is the third row with the first Template:Mvar elements reversed (as the final element is zero).

a0a1an1ananan1a1a0a0anana0a1an1ana0an1a1ana00an1a1ana0a1an1ana0a0anana00

The expansion of the table is continued in this manner until a row containing only one non-zero element is reached.

Note the ana0 is an for the 1st two rows. Then for 3rd and 4th row the coefficient changes (i.e. bn1b0). This can be viewed as the new polynomial which has one less degree and then continuing.

Stability test

If a0>0 then for every value of a0,b0,c0... that is negative, the polynomial has one root outside of the unit disc. This implies that the method can be stopped after the first negative value is found when checking for stability.

Sample implementation

This method is very easy to implement using dynamic arrays on a computer. It also tells whether all the modulus of the roots (complex and real) lie inside the unit disc. The vector Template:Math contains the real coefficients of the original polynomial in the order from highest degree to lowest degree.

        /* vvd is the jury array */
        vvd.push_back(v); // Store the first row
        reverse(v.begin(),v.end());
        vvd.push_back(v); // Store the second row

        for (i=2;;i+=2)
        {
            v.clear();
            double mult = vvd[i-2][vvd[i-2].size()-1]/vvd[i-2][0]; // This is an/a0 as mentioned in the article.

            for (j=0; j<vvd[i-2].size()-1; j++) // Take the last 2 rows and compute the next row
                   v.push_back(vvd[i-2][j] - vvd[i-1][j] * mult);

            vvd.push_back(v);
            reverse(v.begin(), v.end()); // reverse the next row
            vvd.push_back(v);
            if (v.size() == 1) break;
         }

         // Check is done using
         for (i=0; i<vvd.size(); i+=2)
         {
              if (vvd[i][0]<=0) break;
         }

         if (i == vvd.size())
              "All roots lie inside unit disc "
         else
              "no"

See also

References

Template:Reflist For more details please check these references:

For advanced resources:

For implementations:

  1. Discrete-time control systems (2nd ed.), pg. 185. Prentice-Hall, Inc. Upper Saddle River, NJ, USA ©1995 Template:ISBN