# Control Systems/Jurys Test

## Routh-Hurwitz in Digital Systems

Because of the differences in the Z and S domains, the Routh-Hurwitz
criteria can not be used directly with digital systems. This is because
digital systems and continuous-time systems have different regions of
stability. However, there are some methods that we can use to analyze
the stability of digital systems. Our first option (and arguably not a
very good option) is to convert the digital system into a
continuous-time representation using the **bilinear transform**. The
bilinear transform converts an equation in the Z domain into an equation
in the W domain, that has properties similar to the S domain. Another
possibility is to use **Jury\'s Stability Test**. Jury\'s test is a
procedure similar to the RH test, except it has been modified to analyze
digital systems in the Z domain directly.

### Bilinear Transform

One common, but time-consuming, method of analyzing the stability of a
digital system in the z-domain is to use the bilinear transform to
convert the transfer function from the z-domain to the w-domain. The
w-domain is similar to the s-domain in the following ways:

-   Poles in the right-half plane are unstable
-   Poles in the left-half plane are stable
-   Poles on the imaginary axis are partially stable

The w-domain is warped with respect to the s domain, however, and except
for the relative position of poles to the imaginary axis, they are not
in the same places as they would be in the s-domain.

Remember, however, that the Routh-Hurwitz criterion can tell us whether
a pole is unstable or not, and nothing else. Therefore, it doesn\'t
matter where exactly the pole is, so long as it is in the correct
half-plane. Since we know that stable poles are in the left-half of the
w-plane and the s-plane, and that unstable poles are on the right-hand
side of both planes, we can use the Routh-Hurwitz test on functions in
the w domain exactly like we can use it on functions in the s-domain.

### Other Mappings

There are other methods for mapping an equation in the Z domain into an
equation in the S domain, or a similar domain. We will discuss these
different methods in the
**Appendix**.

## Jury\'s Test

Jury\'s test is a test that is similar to the Routh-Hurwitz criterion,
except that it can be used to analyze the stability of an LTI digital
system in the Z domain. To use Jury\'s test to determine if a digital
system is stable, we must check our z-domain characteristic equation
against a number of specific rules and requirements. If the function
fails any requirement, it is not stable. If the function passes all the
requirements, it is stable. Jury\'s test is a necessary and sufficient
test for stability in digital systems.

Again, we call D(z) the **characteristic polynomial** of the system. It
is the denominator polynomial of the Z-domain transfer function. Jury\'s
test will focus exclusively on the Characteristic polynomial. To perform
Jury\'s test, we must perform a number of smaller tests on the system.
If the system fails any test, it is unstable.

### Jury Tests

Given a characteristic equation in the form:

$$D(z) = a_0 + a_1z + a_2z^2 + \cdots + a_Nz^N$$

The following tests determine whether this system has any poles outside
the unit circle (the instability region). These tests will use the value
N as being the degree of the characteristic polynomial.

While you are constructing the Jury Array, you can be making the tests
of **Rule 4**. If the Array fails **Rule 4** at any point, you can stop
calculating the array: your system is unstable. We will discuss the
construction of the Jury Array below.

### The Jury Array

The Jury Array is constructed by first writing out a row of
coefficients, and then writing out another row with the same
coefficients in reverse order. For instance, if your polynomial is a
third order system, we can write the First two lines of the Jury Array
as follows:

$$\overline{\underline{
       \begin{matrix} z^0 & z^1 & z^2 & z^3 & \ldots & z^N
                   \\ a_0 & a_1 & a_2 & a_3 & \ldots& a_N
                   \\ a_N & \ldots & a_3 & a_2 & a_1 & a_0
       \end{matrix}}}$$

Now, once we have the first row of our coefficients written out, we add
another row of coefficients (we will use **b** for this row, and **c**
for the next row, as per our previous convention), and we will calculate
the values of the lower rows from the values of the upper rows. Each new
row that we add will have one fewer coefficient then the row before it:

$$\overline{\underline{
       \begin{matrix} 1) & a_0 & a_1 & a_2 & a_3 & \ldots & a_N
                   \\ 2) & a_N & \ldots & a_3 & a_2 & a_1 & a_0
                   \\ 3) & b_0 & b_1 & b_2 & \ldots & b_{N-1}
                   \\ 4) & b_{N-1}& \ldots & b_2 & b_1 & b_0
                   \\ \vdots & \vdots & \vdots & \vdots
                   \\ 2N-3) & v_0 & v_1 & v_2
       \end{matrix}}}$$ Note: The last file is the (2N-3) file, and
always has 3 elements. This test doesn\'t have sense if N=1, but in this
case you know the pole!

Once we get to a row with 2 members, we can stop constructing the array.

To calculate the values of the odd-number rows, we can use the following
formulae. The even number rows are equal to the previous row in reverse
order. We will use k as an arbitrary subscript value. These formulae are
reusable for all elements in the array:

$$b_k =  \begin{vmatrix} a_0 & a_{N-k} 
                           \\ a_N & a_k
              \end{vmatrix}$$

$$c_k =  \begin{vmatrix} b_0 & b_{N-1-k} 
                           \\ b_{N-1} & b_k
              \end{vmatrix}$$

$$d_k =  \begin{vmatrix} c_0 & c_{N-2-k} 
                           \\ c_{N-2} & c_k
              \end{vmatrix}$$ This pattern can be carried on to all
lower rows of the array, if needed.

### Example: Calculating e~5~

## Further reading

We will discuss the bilinear transform, and other methods to convert
between the Laplace domain and the Z domain in the appendix:

-   Z Transform
    Mappings

