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.