civil-and-structural-engineering
How to Determine the Number of Right Half Plane Poles with Routh-hurwitz Criterion
Table of Contents
The Routh-Hurwitz criterion is one of the most important tools in control engineering for analyzing the stability of linear time-invariant (LTI) systems. Rather than explicitly calculating the roots of the characteristic polynomial, which can be computationally intensive for high-order systems, the Routh-Hurwitz criterion provides a straightforward algebraic test. A central question in stability analysis is determining how many poles of the system lie in the right half of the s-plane (the region with positive real parts). Poles in the right half-plane (RHP) directly indicate exponential growth in the system's response — in other words, instability. This article provides a comprehensive guide to using the Routh-Hurwitz criterion to count the number of RHP poles, covering the theory, array construction, handling special cases, and worked examples.
Foundations of the Routh-Hurwitz Criterion
The Routh-Hurwitz criterion is based on the coefficients of the characteristic polynomial, which is the polynomial in the denominator of the closed-loop transfer function (or the open-loop transfer function for internal stability). The general form of the characteristic equation is:
P(s) = ansn + an-1sn-1 + … + a1s + a0 = 0
where all coefficients are real numbers. A necessary condition for stability is that all coefficients are present (no missing powers) and that they all have the same sign (usually positive). However, this condition is not sufficient. The Routh-Hurwitz criterion provides both necessary and sufficient conditions for stability: it determines how many roots of the polynomial have positive real parts, zero real parts (on the imaginary axis), and negative real parts.
The criterion is applied by constructing a specific array of coefficients called the Routh array. The first two rows of the array are filled from the coefficients of the polynomial. Subsequent rows are calculated using a systematic determinant formula. Once the array is complete, the number of sign changes in the first column of the array directly equals the number of roots of the polynomial with positive real parts — that is, the number of RHP poles. If there are no sign changes, all poles lie in the left half-plane (LHP) and the system is stable, assuming no pole-zero cancellations.
Constructing the Routh Array: Step-by-Step Procedure
Let the characteristic polynomial be:
P(s) = ansn + an-1sn-1 + an-2sn-2 + … + a1s + a0
with an ≠ 0. The Routh array consists of n+1 rows (indexed from row 1 to row n+1). The first two rows are constructed directly from the coefficients:
- Row 1 (sn row): Contains coefficients of even powers of s starting from the highest power: an, an-2, an-4, … until the coefficient of s0 or the end.
- Row 2 (sn-1 row): Contains coefficients of odd powers: an-1, an-3, an-5, … .
If the polynomial has an odd degree n, row 1 will contain the leading coefficient and the next even-indexed coefficients; row 2 will contain the second coefficient and alternate. For even-degree polynomials, row 1 starts with the leading coefficient and the next even-indexed; row 2 starts with the second coefficient and the next odd-indexed. In both cases, if the number of coefficients in a row is less than the previous row, zeros are padded at the end to maintain a rectangular array.
Calculating Subsequent Rows
Rows 3 through n+1 are computed using the following pattern. For row i (starting from i=3), let the elements of the two previous rows be:
Row (i-2): b1, b2, b3, …
Row (i-1): c1, c2, c3, …
Then the elements of row i are given by:
dj = – (1 / c1) × det [ [ b1, bj+1 ] ; [ c1, cj+1 ] ] = – ( b1·cj+1 – c1·bj+1 ) / c1
for j = 1, 2, … until the end of the row. Note that c1 is the first element of the previous row; it must be nonzero (if it becomes zero, special handling is required). The formula can be simplified in practice: for each new row element, take the negative of the determinant of a 2×2 matrix formed from the first column of the two rows above and the column that aligns with the element being computed.
The process continues until row n+1 (the s0 row) is reached. Typically, the last row will contain only one nonzero element — the constant term a0 scaled by previous factors, but guaranteed to be positive if the original coefficients are positive.
Interpreting the First Column: Sign Changes and RHP Poles
Once the Routh array is fully constructed, examine the first column of the array (the leftmost column of each row). Count the number of sign changes as you move down the column. Each time the sign flips between two consecutive rows (e.g., from positive to negative or negative to positive), it counts as one sign change.
The total number of sign changes in the first column equals the number of poles in the right half-plane (RHP). If there are zero sign changes, all poles lie in the left half-plane (LHP) and the system is stable. If the count is k, there are k poles with positive real parts, and the system is unstable. This is a direct consequence of the Hurwitz determinants and the fact that sign changes correspond to roots crossing the imaginary axis.
It is important to note that the Routh-Hurwitz criterion only tells the number of RHP poles, not their exact values. For locating poles precisely, you would need to solve the characteristic equation or use root locus methods.
Special Cases in Routh Array Construction
When constructing the Routh array, two special cases can arise that require careful handling:
Case 1: A Zero in the First Column
If a computed first element in a row is zero, but the rest of the row is not entirely zero, then the zero prevents the calculation of the next row because the determinant formula involves division by zero. A common technique is to replace the zero with a small positive number ε (epsilon), then continue with the calculation. After completing the array, take the limit as ε → 0 to evaluate sign changes. Alternatively, you can use the auxiliary polynomial method (closely related to the case of an entire row of zeros).
Case 2: An Entire Row of Zeros
If a complete row in the array becomes zero (all elements are zero), this indicates that the characteristic polynomial has symmetric roots about the origin — typically a pair of purely imaginary poles (±jω) or a pair of real poles with equal magnitude opposite signs. When this happens, you must construct an auxiliary polynomial from the row above the zero row. The auxiliary polynomial is formed using the coefficients of that row and is of even degree. Differentiate this auxiliary polynomial with respect to s to obtain new coefficients, and use those coefficients to replace the zero row. Then continue constructing the Routh array. The number of sign changes in the first column after this substitution still indicates the number of RHP poles (excluding the purely imaginary poles, which are counted separately). The purely imaginary poles correspond to roots on the imaginary axis — they are marginally stable and are not counted as RHP poles.
Worked Examples
Example 1: Stable System
Consider the characteristic polynomial:
P(s) = s4 + 3s3 + 5s2 + 4s + 2
Construct the Routh array:
- Row 1 (s4): 1, 5, 2
- Row 2 (s3): 3, 4, 0 (since there are only coefficients for s3 and s1, pad with 0)
- Row 3 (s2): Compute using first two rows: first element = –(1×4 – 3×5)/3 = –(4 – 15)/3 = 11/3 ≈ 3.6667; second element = –(1×0 – 3×2)/3 = –(0 – 6)/3 = 2; so row 3: [11/3, 2]
- Row 4 (s1): Use rows 2 and 3: first element = –(3×2 – (11/3)×4)/(11/3) = –(6 – 44/3) / (11/3) = –( (18-44)/3 ) / (11/3) = –( -26/3 ) / (11/3) = 26/11 ≈ 2.3636; second element: –(3×0 – (11/3)×0)/(11/3) = 0; So row 4: [26/11, 0]
- Row 5 (s0): Using rows 3 and 4: first element = –( (11/3)×0 – (26/11)×2 ) / (26/11) = –( –(52/11) ) / (26/11) = (52/11) / (26/11) = 2; row 5: [2]
First column: 1 (pos), 3 (pos), 11/3 (pos), 26/11 (pos), 2 (pos). No sign changes → 0 RHP poles → system stable.
Example 2: Unstable System with Two RHP Poles
Consider: P(s) = s3 + 2s2 + 3s + 4
Routh array:
- Row 1: 1, 3
- Row 2: 2, 4
- Row 3: from rows 1 and 2: first element = –(1×4 – 2×3)/2 = –(4 – 6)/2 = –( –2)/2 = 1; second element: –(1×0 – 2×0)/2 = 0; row 3: [1, 0]
- Row 4: from rows 2 and 3: first element = –(2×0 – 1×4)/1 = –( –4) = 4; row 4: [4]
First column: 1 (positive), 2 (positive), 1 (positive), 4 (positive) → no sign changes? Wait, check again: row 3 first element = 1 positive, row 4 = 4 positive. No sign changes. But we earlier computed row 3 as 1? Let's recalc carefully for this specific polynomial. The formula for row 3 first element: –(a1×a3 – a0×a2)/a0? Actually, standard Routh: for s^3 polynomial, row1: [1, 3]; row2: [2, 4]; row3: [ (2*3 - 1*4)/2 , (2*0 - 1*0)/2? Wait correct formula: row3 first element = ( (row2first * row1second) - (row1first * row2second) ) / row2first. That is (2*3 - 1*4)/2 = (6-4)/2 = 1. second element = (row2first * row1third - row1first * row2third)/row2first = (2*0 - 1*0)/2 = 0. row4: from rows 2 and 3: (row3first * row2second - row2first * row3second)/row3first = (1*4 - 2*0)/1 = 4. First column: 1,2,1,4 all positive -> no sign changes. But we know the polynomial s^3+2s^2+3s+4 has roots? Let's check quickly: using synthetic or root finder: all coefficients positive, but that doesn't guarantee stability. Actually, by Routh, we have no sign changes, so all poles LHP. But is that true? Let's find roots numerically: s = -1.6506, -0.1747 ± 1.5469i. All real parts negative. So indeed stable. I misremembered; the correct example should be something like s^3 + 2s^2 + s + 4? Let's pick a classic unstable one: P(s) = s3 + s + 4 (missing s^2 term). Then row1: [1, 1]; row2: [0, 4]? special case. Better: P(s) = s4 + 2s3 + 3s2 + 4s + 5 may yield sign changes. But let's keep it simple and use a known unstable example: P(s) = s3 - 2s2 + s + 4 (has negative coefficient). That is trivial. Instead, let's use a second-order: P(s) = s^2 + 2s + 4 stable. Hmm. I need an example where Routh shows sign changes. Use P(s) = s3 + 2s2 - s - 2. Then row1: [1, -1]; row2: [2, -2]; row3: [ (2*(-1) - 1*(-2)) / 2 = (-2 +2)/2 =0, second element 0] -> row of zeros. That's a special case. Let's use a clean example: P(s) = s^3 + s^2 + 2s + 8 (from some textbooks). Let's compute: row1: [1, 2]; row2: [1, 8]; row3: [ (1*2 - 1*8)/1 = -6, 0 ]; row4: [ ( (-6)*8 - 1*0 ) / (-6) = (-48)/(-6)=8]. First column: 1 (pos), 1 (pos), -6 (neg), 8 (pos) -> sign changes: from positive to negative (1 change) and from negative to positive (another change) = 2 sign changes -> 2 RHP poles. Check roots: s^3 + s^2 + 2s + 8 = 0 => one real root -2, and two complex with positive real parts? Actually, roots: -2, 0.5 ± 1.936i. Yes, two RHP poles. That works. So Example 2: P(s)= s^3 + s^2 + 2s + 8 → two sign changes → 2 RHP poles.
I will present this as the example.
Example 3: Special Case with Zero Row
Consider: P(s) = s4 + 2s3 + 3s2 + 6s + 2
Routh array:
- Row1: [1, 3, 2]
- Row2: [2, 6, 0]
- Row3: [ (2*3 - 1*6)/2 = (6-6)/2=0 , (2*2 - 1*0)/2 = 4/2=2, 0 ] → row3 = [0, 2]
- Since first element is 0, replace with ε, continue: row3 = [ε, 2]
- Row4: from row2 and row3: first element = –(2*2 – ε*6)/ε = –(4 – 6ε)/ε = –4/ε + 6. As ε→0, this tends to –∞ (negative). second element = –(2*0 – ε*0)/ε = 0. So row4 ≈ [–4/ε, 0] (negative large).
- Row5: from row3 and row4: first element = –(ε*0 – (–4/ε)*2)/(–4/ε) = –(0 + 8/ε)/( –4/ε) = –(8/ε) * ( –ε/4 ) = 2. So row5 = [2].
- First column: 1 (pos), 2 (pos), ε (pos small), –4/ε (neg large), 2 (pos). Sign changes: pos to neg (1 change), neg to pos (1 change) → 2 changes → 2 RHP poles.
This shows handling of a zero in first column.
Example 4: Entire Row of Zeros
Consider: P(s) = s4 + 2s3 + s2 + 2s + 1
Routh array:
- Row1: [1, 1, 1]
- Row2: [2, 2, 0]
- Row3: [ (2*1 - 1*2)/2 = (2-2)/2 =0 , (2*1 - 1*0)/2 = 1, 0 ] => [0, 1]
- Row4: use auxiliary polynomial from row3? Actually, we have zero first element, not entire row. Let's use a different polynomial: P(s) = s4 + s3 + 2s2 + 2s + 1 might yield row of zeros? Better known: P(s) = s5 + 2s4 + 3s3 + 6s2 + 2s + 4? Let's pick a classic: P(s) = s4 + 2s3 + 3s2 + 2s + 1. Compute:
- Row1: [1, 3, 1]
- Row2: [2, 2, 0]
- Row3: [ (2*3 - 1*2)/2 = (6-2)/2=2 , (2*1 - 1*0)/2 = 2/2=1, 0] => [2, 1]
- Row4: [ (2*2 - 2*1)/2? Wait formula: from rows 2 and 3: first elem = –(2*1 – 2*2)/2 = –(2-4)/2 = –(–2)/2 = 1; second: –(2*0 – 2*0)/2=0 ⇒ [1,0]
- Row5: from rows 3 and 4: [ (1*1 – 2*0)/1 = 1 ] ⇒ [1]
- No zero row. That's stable. Let's use a polynomial with symmetric roots: P(s) = s4 + s3 + 2s2 + s + 1 might have a row of zeros? I'd rather use the classic example: P(s) = s5 + 2s4 + 24s3 + 48s2 + 25s + 50 yields a zero row. But that's messy. I'll create a simple one: From known case, the polynomial s4 + s3 + s2 + s + 1 has roots on unit circle? Actually not. Let's stick with the general explanation for the special case rather than a full worked example due to space. But I can reference the auxiliary polynomial method. I'll include a short illustrative example using P(s) = s4 + 2s3 + 3s2 + 6s + 4? Might produce zero row. Simpler: Provide the standard mention: "For example, consider the polynomial s4 + 2s3 + 3s2 + 6s + 4 which leads to an all-zero row in the Routh array. The auxiliary polynomial from the row above yields a new row, and after substitution, the first column shows no sign changes, indicating the presence of purely imaginary poles and no RHP poles." I'll keep it conceptual.
Due to length constraints, I will include at least two worked examples (stable and unstable with sign changes) and briefly describe special cases with reference to external resources.
External links (choose authoritative sources):
- Wikipedia: Routh-Hurwitz stability criterion
- MathWorks documentation on routh function
- Control Tutorials from University of Michigan (CTMS)
- A reputable textbook reference (maybe link to MIT OpenCourseWare)
I'll include 3 links.
Now construct the final HTML article. Ensure it's clean, no markdown, no Gutenberg comments.
Target word count: 2200-2500. I will write expansive paragraphs, detailed explanation, and examples. Ensure not to exceed 2500 words.
Let me write the article body.
The Routh-Hurwitz criterion is one of the most important tools in control engineering for analyzing the stability of linear time-invariant (LTI) systems. Rather than explicitly calculating the roots of the characteristic polynomial, which can be computationally intensive for high-order systems, the Routh-Hurwitz criterion provides a straightforward algebraic test. A central question in stability analysis is determining how many poles of the system lie in the right half of the s-plane (the region with positive real parts). Poles in the right half-plane (RHP) directly indicate exponential growth in the system's response — in other words, instability. This article provides a comprehensive guide to using the Routh-Hurwitz criterion to count the number of RHP poles, covering the theory, array construction, handling special cases, and worked examples.
Foundations of the Routh-Hurwitz Criterion
The Routh-Hurwitz criterion is based on the coefficients of the characteristic polynomial, which is the polynomial in the denominator of the closed-loop transfer function (or the open-loop transfer function for internal stability). The general form of the characteristic equation is:
P(s) = ansn + an-1sn-1 + … + a1s + a0 = 0
where all coefficients are real numbers. A necessary condition for stability is that all coefficients are present (no missing powers) and that they all have the same sign (usually positive). However, this condition is not sufficient. The Routh-Hurwitz criterion provides both necessary and sufficient conditions for stability: it determines how many roots of the polynomial have positive real parts, zero real parts (on the imaginary axis), and negative real parts.
The criterion is applied by constructing a specific array of coefficients called the Routh array. The first two rows of the array are filled from the coefficients of the polynomial. Subsequent rows are calculated using a systematic determinant formula. Once the array is complete, the number of sign changes in the first column of the array directly equals the number of roots of the polynomial with positive real parts — that is, the number of RHP poles. If there are no sign changes, all poles lie in the left half-plane (LHP) and the system is stable, assuming no pole-zero cancellations.
Constructing the Routh Array: Step-by-Step Procedure
Let the characteristic polynomial be:
P(s) = ansn + an-1sn-1 + an-2sn-2 + … + a1s + a0
with an ≠ 0. The Routh array consists of n+1 rows (indexed from row 1 to row n+1). The first two rows are constructed directly from the coefficients:
- Row 1 (sn row): Contains coefficients of even powers of s starting from the highest power: an, an-2, an-4, … until the coefficient of s0 or the end.
- Row 2 (sn-1 row): Contains coefficients of odd powers: an-1, an-3, an-5, … .
If the polynomial has an odd degree n, row 1 will contain the leading coefficient and the next even-indexed coefficients; row 2 will contain the second coefficient and alternate. For even-degree polynomials, row 1 starts with the leading coefficient and the next even-indexed; row 2 starts with the second coefficient and the next odd-indexed. In both cases, if the number of coefficients in a row is less than the previous row, zeros are padded at the end to maintain a rectangular array.
Calculating Subsequent Rows
Rows 3 through n+1 are computed using the following pattern. For row i (starting from i=3), let the elements of the two previous rows be:
Row (i-2): b1, b2, b3, …
Row (i-1): c1, c2, c3, …Then the elements of row i are given by:
dj = – (1 / c1) × det [ [ b1, bj+1 ] ; [ c1, cj+1 ] ] = – ( b1·cj+1 – c1·bj+1 ) / c1
for j = 1, 2, … until the end of the row. Note that c1 is the first element of the previous row; it must be nonzero (if it becomes zero, special handling is required). The formula can be simplified in practice: for each new row element, take the negative of the determinant of a 2×2 matrix formed from the first column of the two rows above and the column that aligns with the element being computed.
The process continues until row n+1 (the s0 row) is reached. Typically, the last row will contain only one nonzero element — the constant term a0 scaled by previous factors, but guaranteed to be positive if the original coefficients are positive.
Interpreting the First Column: Sign Changes and RHP Poles
Once the Routh array is fully constructed, examine the first column of the array (the leftmost column of each row). Count the number of sign changes as you move down the column. Each time the sign flips between two consecutive rows (e.g., from positive to negative or negative to positive), it counts as one sign change.
The total number of sign changes in the first column equals the number of poles in the right half-plane (RHP). If there are zero sign changes, all poles lie in the left half-plane (LHP) and the system is stable. If the count is k, there are k poles with positive real parts, and the system is unstable. This is a direct consequence of the Hurwitz determinants and the fact that sign changes correspond to roots crossing the imaginary axis.
It is important to note that the Routh-Hurwitz criterion only tells the number of RHP poles, not their exact values. For locating poles precisely, you would need to solve the characteristic equation or use root locus methods.
Special Cases in Routh Array Construction
When constructing the Routh array, two special cases can arise that require careful handling:
Case 1: A Zero in the First Column
If a computed first element in a row is zero, but the rest of the row is not entirely zero, then the zero prevents the calculation of the next row because the determinant formula involves division by zero. A common technique is to replace the zero with a small positive number ε (epsilon), then continue with the calculation. After completing the array, take the limit as ε → 0 to evaluate sign changes. Alternatively, you can use the auxiliary polynomial method (closely related to the case of an entire row of zeros).
Case 2: An Entire Row of Zeros
If a complete row in the array becomes zero (all elements are zero), this indicates that the characteristic polynomial has symmetric roots about the origin — typically a pair of purely imaginary poles (±jω) or a pair of real poles with equal magnitude opposite signs. When this happens, you must construct an auxiliary polynomial from the row above the zero row. The auxiliary polynomial is formed using the coefficients of that row and is of even degree. Differentiate this auxiliary polynomial with respect to s to obtain new coefficients, and use those coefficients to replace the zero row. Then continue constructing the Routh array. The number of sign changes in the first column after this substitution still indicates the number of RHP poles (excluding the purely imaginary poles, which are counted separately). The purely imaginary poles correspond to roots on the imaginary axis — they are marginally stable and are not counted as RHP poles.
Worked Examples
Example 1: Stable System
Consider the characteristic polynomial:
P(s) = s4 + 3s3 + 5s2 + 4s + 2
Construct the Routh array:
- Row 1 (s4): 1, 5, 2
- Row 2 (s3): 3, 4, 0
- Row 3 (s2): Compute using first two rows: first element = –(1×4 – 3×5)/3 = –(4 – 15)/3 = 11/3 ≈ 3.6667; second element = –(1×0 – 3×2)/3 = –(0 – 6)/3 = 2; so row 3: [11/3, 2]
- Row 4 (s1): Use rows 2 and 3: first element = –(3×2 – (11/3)×4)/(11/3) = –(6 – 44/3) / (11/3) = –( (18-44)/3 ) / (11/3) = –( -26/3 ) / (11/3) = 26/11 ≈ 2.3636; second element: –(3×0 – (11/3)×0)/(11/3) = 0; So row 4: [26/11, 0]
- Row 5 (s0): Using rows 3 and 4: first element = –( (11/3)×0 – (26/11)×2 ) / (26/11) = –( –(52/11) ) / (26/11) = (52/11) / (26/11) = 2; row 5: [2]
First column: 1 (pos), 3 (pos), 11/3 (pos), 26/11 (pos), 2 (pos). No sign changes → 0 RHP poles → system stable.
Example 2: Unstable System with Two RHP Poles
Consider the characteristic polynomial:
P(s) = s3 + s2 + 2s + 8
Routh array:
- Row 1: 1, 2
- Row 2: 1, 8
- Row 3: first element = –(1×8 – 1×2)/1 = –(8 – 2)/1 = –6; second element = –(1×0 – 1×0)/1 = 0 → row 3: [–6, 0]
- Row 4: from rows 2 and 3: first element = –(1×0 – (–6)×8)/(–6) = –(0 + 48)/(–6) = –48/(–6) = 8 → row 4: [8]
First column: 1 (pos), 1 (pos), –6 (neg), 8 (pos). Sign changes: from positive to negative (1 change) and from negative to positive (1 change) → total 2 sign changes → 2 RHP poles. Verification: the roots of this polynomial are –2, 0.5 ± 1.9365i, confirming two poles with positive real parts.
Example 3: Handling a Zero in the First Column
Consider: P(s) = s4 + 2s3 + 3s2 + 6s + 2
Routh array computation begins:
- Row 1: 1, 3, 2
- Row 2: 2, 6, 0
- Row 3: first element = (2×3 – 1×6)/2 = (6 – 6)/2 = 0; second element = (2×2 – 1×0)/2 = 4/2 = 2 → row 3: [0, 2]
Since the first element is zero, replace it with a small positive ε. Continue:
- Row 3 (with ε): [ε, 2]
- Row 4: from rows 2 and 3: first element = –(2×2 – ε×6)/ε = –(4 – 6ε)/ε = –4/ε + 6. As ε→0⁺, this tends to –∞ (negative). Second element = 0 → row 4 ≈ [–4/ε, 0]
- Row 5: from rows 3 and 4: first element = –(ε×0 – (–4/ε)×2)/(–4/ε) = –(8/ε)/(–4/ε) = 2 → row 5: [2]
First column: 1 (pos), 2 (pos), ε (pos small), –4/ε (neg large), 2 (pos). Sign changes: positive→negative (1), negative→positive (1) → total 2 sign changes → 2 RHP poles.
Practical Considerations and Limitations
The Routh-Hurwitz criterion is primarily used for continuous-time systems described by polynomials with real coefficients. It cannot directly handle time delays, nonlinearities, or distributed parameter systems unless they are approximated by rational polynomials. Moreover, the criterion only provides information about the number of RHP poles; it does not give the exact pole locations, damping ratios, or natural frequencies. For a complete stability analysis, it is often combined with root locus, Bode plots, or Nyquist criteria. Despite its limitations, the Routh-Hurwitz criterion remains a standard first step in control design because it can quickly identify whether a system is stable or how many unstable poles exist, allowing engineers to decide whether further analysis—or compensator design—is necessary.
Relation to Other Stability Tests
The Routh-Hurwitz criterion is closely related to the Hurwitz determinants and the Lyapunov methods. In fact, the number of sign changes in the first column of the Routh array can be interpreted as the number of sign changes in the sequence of leading principal minors of the Hurwitz matrix. For discrete-time systems (z-domain), a similar test exists called the Jury stability criterion, which is more complex but follows the same philosophy. The Routh-Hurwitz criterion is also a building block for the more general Routh–Hurwitz stability criterion described mathematically by Hurwitz determinants. MATLAB and other computational tools implement the Routh array via functions such as
routhin the Control System Toolbox; see MathWorks documentation for details.Conclusion
The Routh-Hurwitz criterion provides an efficient and systematic algebraic method to determine the number of poles in the right half-plane without solving the characteristic equation. By constructing the Routh array and counting sign changes in its first column, engineers can quickly assess whether a continuous-time LTI system is stable, and if not, how many unstable poles are present. Special cases such as a zero first element or an entire row of zeros are handled with straightforward modifications, ensuring the test remains applicable to a wide variety of polynomials. Alongside classical and modern control techniques, the Routh-Hurwitz criterion remains a fundamental skill for any control engineer. For further reading, consult standard textbooks such as Ogata’s Modern Control Engineering or online resources like the University of Michigan Control Tutorials.