Stability and Design: Routh, Nyquist, Bode, Root Locus, Compensators and State Models

The second half of Section 6 of the EC paper answers the question the first half raised: feedback improves accuracy and disturbance rejection but can destroy stability, so how much loop gain is safe, and what do you add when the answer is not enough? The syllabus names the tools — Routh-Hurwitz and Nyquist stability criteria, Bode and root-locus plots, compensators, the PID controller, and the state variable model and solution of the state equation — and the productive way to learn them is to notice that they are five views of one thing. A single third-order loop, G(s) = K/[s(s + 1)(s + 4)] under unity feedback, is used throughout this chapter, and every method is made to say the same sentence about it: the loop is stable for 0 < K < 20, and at K = 20 it oscillates at exactly 2 rad/s. Routh gets there by an array of coefficients, the root locus by watching the branches cross the imaginary axis, Bode by the gain at the phase crossover, and Nyquist by counting encirclements of the point −1. When four independent methods agree on 20 and 2, you have not just an answer but a check — and in an exam where a wrong MCQ costs a third of its marks while NAT and MSQ carry no negative marking, a second method that takes twenty seconds is the cheapest insurance available.

Stability, and the Routh Array as a Sign Counter

An LTI system is stable when every pole of its closed-loop transfer function lies strictly in the left half plane, marginally stable when the only poles outside are non-repeated ones exactly on the imaginary axis, and unstable otherwise — including the case of a repeated pair on the axis, which grows like t·sin ωt rather than oscillating steadily. Since the poles are the roots of the characteristic equation, stability is a question about root locations, and the Routh-Hurwitz criterion answers it without finding a single root. Two preliminary checks come free: if any coefficient of the characteristic polynomial is missing or has a different sign from the others, the system is already not stable, and no array is needed. Those necessary conditions catch a surprising number of exam polynomials in one glance.

The array itself counts sign changes in its first column, and the number of sign changes equals the number of roots in the right half plane. Build it for the chapter's running system. With G(s) = K/[s(s + 1)(s + 4)] and unity feedback, the characteristic equation is s(s + 1)(s + 4) + K = 0, that is s³ + 5s² + 4s + K = 0. The s³ row is the alternate coefficients 1 and 4; the s² row is the others, 5 and K. The s¹ entry is (5 × 4 − 1 × K)/5 = (20 − K)/5, and the s⁰ entry is K. For no sign change the first column must stay positive throughout, which needs K > 0 and 20 − K > 0: the loop is stable for 0 < K < 20. At the boundary K = 20 the s¹ row vanishes, and the auxiliary polynomial from the row above, 5s² + 20 = 0, gives s = ±j2 — so the system does not merely become unstable at K = 20, it oscillates at 2 rad/s, and that frequency is as much part of the answer as the gain.

The Routh array for s³ + 5s² + 4s + K
RowFirst columnSecond columnCondition it imposes
s³a_3 = 1a_1 = 4None — the leading coefficient
s²a_2 = 5KNone — already positive
s¹(20 − K)/50K < 20
s⁰K0K > 0
🧠 Read the critical gain and the oscillation frequency out of one array
A question that asks for the frequency of sustained oscillation is asking for a Routh calculation in disguise, and the recipe is short. Set the s¹ first-column entry to zero to get the critical gain. Substitute that gain into the row above it, treat that row as the coefficients of a polynomial in descending even powers, and solve. Here 5s² + 20 = 0 gives ω = 2 rad/s; in general the auxiliary polynomial's roots are exactly the poles sitting on the imaginary axis at that gain. The same array also answers a range question with two constraints — a polynomial in K in one row and a linear condition in another — and the answer is the intersection, so always finish the array rather than stopping at the first inequality you find.

The Two Special Cases, and What Each One Means

Two things can stop the array, and each has a fixed procedure and a physical meaning. If a single entry in the first column is zero while the rest of its row is not, replace the zero by a small positive ε, continue, and then examine the signs as ε → 0. If an entire row becomes zero, the polynomial has a set of roots symmetric about the origin — either a pair on the imaginary axis, or a real pair ±a, or a quadruple. The procedure there is to form the auxiliary polynomial from the row above the vanished one, differentiate it with respect to s, and use those coefficients as the replacement row.

Work the row-of-zeros case, because it is the one that produces a marginally stable verdict and candidates often report it as stable or as unstable. Take s⁴ + s³ + 3s² + 2s + 2 = 0. The s⁴ row is 1, 3, 2 and the s³ row is 1, 2. The s² row is then (1 × 3 − 1 × 2)/1 = 1 and (1 × 2 − 1 × 0)/1 = 2. The s¹ row would be (1 × 2 − 1 × 2)/1 = 0 — the whole row vanishes. So form the auxiliary polynomial from the s² row: s² + 2 = 0, whose roots are s = ±j1.414. Differentiating gives 2s, so the replacement s¹ row is 2, 0, and the s⁰ row is 2. The first column reads 1, 1, 1, 2, 2 — no sign change, therefore no right-half-plane root — but two roots sit exactly on the imaginary axis, so the verdict is marginally stable, not stable.

Check that independently, because a Routh verdict is worth verifying when the array does something unusual. The polynomial factors as (s² + 2)(s² + s + 1), which multiplies out to s⁴ + s³ + s² + 2s² + 2s + 2 = s⁴ + s³ + 3s² + 2s + 2 — the original. So the four roots are ±j1.414 from the first factor and −0.5 ± j0.866 from the second: two on the axis and two comfortably in the left half plane, exactly as the array said. The physical reading is that this system, driven at 1.414 rad/s, would ring for ever without growing or decaying, which is a real behaviour and not a computational artefact — an undamped mode that neither the transient formulas of the previous chapter nor a settling-time specification can describe.

⚠️ No sign change is not the same as stable
The Routh criterion counts right-half-plane roots and nothing else, so a first column with no sign change proves only that no root has a positive real part. Roots exactly on the imaginary axis are invisible to the sign count, and they announce themselves in a different way: a row of zeros. So the reading order matters — first look for a vanished row, and only then count signs. A question that supplies a polynomial with a row of zeros and offers stable and unstable as the two options is testing precisely this, and the correct answer is the third one. The other half of the same trap runs the other way: a repeated pair on the imaginary axis, which the auxiliary polynomial reveals as a squared factor, is genuinely unstable, because its response grows linearly in time even though its poles have no real part.

Root Locus: Where the Poles Go as the Gain Rises

A root locus is the path traced by the closed-loop poles as one parameter, usually the gain K, runs from 0 to infinity. Its defining condition is the angle condition: a point s lies on the locus when the sum of the angles from the open-loop zeros to s, minus the sum from the open-loop poles to s, is an odd multiple of 180°. Everything else is a consequence, and six construction rules cover every examinable plot. The locus has as many branches as there are open-loop poles, starts at the poles when K = 0, and ends at the zeros or at infinity when K → ∞. It is symmetric about the real axis, since complex poles come in conjugate pairs. A point on the real axis is on the locus when the number of real poles and zeros to its right is odd. The n − m branches going to infinity leave along asymptotes at angles (2q + 1)180°/(n − m), all radiating from the centroid σ_a = [Σ(poles) − Σ(zeros)]/(n − m).

Build the plot for G(s) = K/[s(s + 1)(s + 4)], whose three open-loop poles are at 0, −1 and −4 and which has no finite zeros. There are three branches and n − m = 3, so the asymptotes are at 60°, 180° and 300°, radiating from σ_a = (0 − 1 − 4)/3 = −1.667. The real-axis segments are −1 ≤ s ≤ 0 and s ≤ −4, because those are the points with an odd count to their right. The two branches on the segment between 0 and −1 approach each other and must leave the axis, and the breakaway point is found by writing K = −s(s + 1)(s + 4) = −(s³ + 5s² + 4s) and setting dK/ds = 0, which gives 3s² + 10s + 4 = 0 and s = −0.465 or s = −2.869. Only the first lies on the locus, so the branches break away at s = −0.465, where the gain is K = 0.879. As K rises further the pair swings out and crosses the imaginary axis at s = ±j2 when K = 20, which is where the Routh array put it.

The root locus of K/[s(s + 1)(s + 4)], gain by gain
Value of KClosed-loop polesWhat the response looks like
K = 0At the open-loop poles 0, −1, −4The loop is open; nothing is controlled
0 < K < 0.879Three real poles, all on the axisOverdamped, no overshoot, sluggish
K = 0.879A double pole at −0.465 plus one real poleCritically damped in the dominant pair
0.879 < K < 20A complex pair with ζ falling as K risesUnderdamped, overshoot growing with K
K = 20The pair reaches ±j2; the third pole is at −5Sustained oscillation at 2 rad/s
K > 20The pair crosses into the right half planeUnstable, with growing oscillation
🎯 Why the third pole must be at −5 when the pair is at ±j2
The sum of the roots of a monic polynomial equals minus the coefficient of the second-highest power, and that coefficient does not contain K here — the characteristic equation is s³ + 5s² + 4s + K, so the poles always sum to −5, whatever the gain. At K = 20 two of them are +j2 and −j2, which contribute nothing to the sum, so the third must be exactly −5. This is worth more than the one answer: it is a free check on any root-locus question, and it also explains the shape of the plot. As the complex pair swings right towards instability, the real branch must move left to keep the sum fixed, which is why a high-gain design has one very fast pole and one dangerously slow pair. The same argument, applied to the product of the roots, ties K to the pole positions: here the product of the three poles is −K, so at K = 20 the product (j2)(−j2)(−5) = −20 confirms both the gain and the location in one line.

Bode Plots, Gain Margin and Phase Margin

A Bode plot is the open-loop magnitude in decibels and the phase in degrees, both against log ω, and its value is that cascaded blocks add instead of multiplying. Write the loop gain in time-constant form before sketching. For K = 8 the running system becomes G(s) = 8/[s(s + 1)(s + 4)] = 2/[s(1 + s)(1 + s/4)], so the Bode gain is 2, there is one pole at the origin and corner frequencies at 1 and 4 rad/s. The magnitude asymptote therefore starts at −20 dB/decade, steepens to −40 at ω = 1 and to −60 at ω = 4, while the phase starts at −90° and falls towards −270°. Each first-order pole contributes −45° at its own corner and −90° well above it, which is enough to sketch the phase without computing a single arctangent.

Two frequencies then carry the whole stability question. The gain crossover ω_gc is where the magnitude passes 0 dB, and the phase margin is 180° plus the phase there. The phase crossover ω_pc is where the phase passes −180°, and the gain margin is the reciprocal of the magnitude there, quoted in dB. Compute both exactly for K = 8. The phase reaches −180° when tan⁻¹ω + tan⁻¹(ω/4) = 90°, which happens at ω_pc = 2 rad/s — the same 2 rad/s the Routh array and the root locus produced. The magnitude there is 8/(2 × √5 × √20) = 8/20 = 0.4, so the gain margin is 1/0.4 = 2.5, that is 7.96 dB. For the gain crossover, solve ω²(ω² + 1)(ω² + 16) = 64 to get ω_gc = 1.216 rad/s, where the phase is −90° − 50.6° − 16.9° = −157.5°, so the phase margin is 22.5°. Both margins are positive, so the loop is stable — and the gain margin 2.5 is exactly 20/8, the ratio of the critical gain to the gain in use, which is what a gain margin means when K is the only thing being varied.

The same loop at three gains, read from the Bode plot
Gain KMagnitude at ω_pc = 2 rad/sGain marginVerdict
K = 8|G| = 0.42.5, that is 7.96 dBStable, phase margin 22.5°
K = 20|G| = 1.01, that is 0 dBMarginally stable, oscillating at 2 rad/s
K = 40|G| = 2.00.5, that is −6.02 dBUnstable — a negative margin in dB
⚠️ The asymptotic sketch is for the magnitude, not for the margin
Reading the gain crossover off the straight-line asymptotes gives 2/ω² = 1, that is ω = 1.414 rad/s, against the exact 1.216. The error is not random: an asymptotic magnitude is always too high near a corner, by 3 dB at the corner itself, so the estimated crossover comes out too far right and the phase margin too small — 15.8° instead of 22.5° here, which is a large enough discrepancy to change an answer. Use the asymptotes to draw the shape and to identify which corner region the crossover falls in, then compute the exact magnitude and phase at that one frequency. The other habit worth fixing is direction: gain margin is read at the phase crossover and phase margin at the gain crossover, which sounds obvious and is reversed under pressure surprisingly often.

The Nyquist Criterion, Counted as Encirclements

Bode's margins assume that a positive margin means stability, which is true for the ordinary loops but not universally. The Nyquist criterion is the general statement, and it comes from mapping a closed contour that encloses the whole right half plane through G(s)H(s) and counting how the image wraps the point −1. In the form to memorise, Z = P − N, where P is the number of open-loop poles in the right half plane, N is the number of anticlockwise encirclements of −1 by the complete Nyquist plot, and Z is the number of closed-loop poles in the right half plane. Stability means Z = 0. Two mechanical details do most of the damage in questions: the plot must include the mirror image for negative ω, and a pole exactly at the origin is bypassed by a small semicircular detour into the right half plane, which maps to a large arc that must be drawn or the encirclement count will be wrong.

Describe the plot for the running loop with K = 8, since there is no figure to look at. At very low frequency the magnitude is enormous and the phase tends to −90°, so the plot comes in from infinity deep in the third quadrant, asymptotic to the vertical line Re = −K_b(T_1 + T_2) = −2(1 + 0.25) = −2.5 where K_b = 2 is the Bode gain. As ω rises the phase falls past −157.5° at 1.216 rad/s, where the magnitude is exactly 1, and reaches −180° at 2 rad/s, where the plot crosses the negative real axis at −0.4. Beyond that the magnitude keeps falling and the phase heads for −270°, so the curve runs into the origin from the direction of the positive imaginary axis. The mirror image for negative ω completes the contour, and the detour round the pole at the origin joins the two infinite ends by a large clockwise arc. The point −1 lies outside this curve — the crossing at −0.4 is to its right — so N = 0, and since the open-loop poles at 0, −1 and −4 include none in the open right half plane, P = 0. Hence Z = 0 − 0 = 0 and the loop is stable, agreeing with the other three methods.

Now raise the gain and watch the criterion do work that a Bode margin cannot state as cleanly. The real-axis crossing sits at −K/20, since the magnitude at 2 rad/s is K/20. At K = 20 the crossing is exactly at −1 and the plot passes through the critical point, which is the marginal case. At K = 40 the crossing is at −2, the point −1 is now enclosed, and the plot encircles it twice clockwise, so N = −2 and Z = 0 − (−2) = 2: two closed-loop poles in the right half plane, which is exactly the complex pair the root locus carried across the axis. That is the payoff of the encirclement count — it does not merely say unstable, it says how many unstable poles, which no gain margin can tell you.

ℹ️ When a positive Bode margin is not enough
Nyquist exists because two situations break the simple margin reading. If the open-loop system is already unstable — P > 0 — then stability requires encirclements rather than forbidding them: with one right-half-plane open-loop pole you need exactly one anticlockwise encirclement of −1, so a plot that stays politely away from the critical point is the unstable one. And a conditionally stable loop, whose magnitude crosses 0 dB more than once, can be stabilised by increasing the gain and destabilised by decreasing it, which makes the phrase gain margin ambiguous. Both cases are rare in numerical questions and common in conceptual ones, so the safe habit is to use Bode margins for the arithmetic and the Z = P − N count whenever the question mentions an unstable plant or multiple crossings.

Compensators: Lead, Lag and What Each One Moves

When gain alone cannot meet a specification — and it usually cannot, because raising K improves steady-state error and destroys phase margin at the same time — you add a network that reshapes the loop. A lead compensator G_c(s) = (1 + aTs)/(1 + Ts) with a > 1 has its zero at −1/(aT) closer to the origin than its pole at −1/T, and contributes positive phase over a band. Its maximum phase lead satisfies sin φ_m = (a − 1)/(a + 1) and occurs at the geometric mean of the two corner frequencies, ω_m = 1/(T√a), where its magnitude is √a. A lag compensator is the same form with the pole nearer the origin: it contributes negative phase, which sounds useless, but its real job is the 20 log b decibels of high-frequency attenuation that pull the gain crossover down to a frequency where the plant's own phase is still healthy.

Design one, because the algebra is short and the numbers are the answer. The running loop at K = 8 had a phase margin of 22.5°, and suppose the specification is about 50°. The shortfall is roughly 28°, and a lead network must supply a little more than the shortfall because adding it moves the crossover to a higher frequency where the plant's phase is worse — so design for 30°. Then sin 30° = 0.5 = (a − 1)/(a + 1) gives a = 3. Place ω_m where the new crossover will be, say 2 rad/s: T = 1/(ω_m√a) = 1/(2 × 1.732) = 0.2887 s, so aT = 0.866 and G_c(s) = (1 + 0.866s)/(1 + 0.2887s). Its zero is at −1.155 and its pole at −3.464, and at ω_m it adds √3 = 1.732, that is 4.77 dB, of gain — which is why the crossover moves and why the design must be checked, not assumed, after inserting it.

What each compensator does to the loop
CompensatorPole and zeroEffect on the loopWhat it costs
LeadZero nearer the origin than the poleAdds phase, raises crossover, speeds the responseWider bandwidth, so more noise gets through
LagPole nearer the origin than the zeroAttenuates at high frequency, so the crossover falls and margin improves; raises low-frequency gainSlower response, and a long settling tail
Lag-leadBoth sections, lag at low frequency and lead at highSteady-state accuracy from the lag and margin from the leadFour parameters to choose instead of two
💡 Lead is anticipation, lag is patience
Think of a driver following a winding road. A lead compensator is the driver who looks ahead and turns before the bend arrives: the extra phase is anticipation, bought by responding to the rate of change of the error as well as its value, which is why a lead network and a derivative term do the same job and share the same weakness — both amplify high-frequency noise, because noise has a large rate of change and a small amplitude. A lag compensator is the driver who slows down before the bend instead: it does not anticipate anything, it simply arranges that by the time the difficult frequencies arrive, the loop is no longer responding strongly to them. That is why lag improves margin without adding phase, and why the price is always the same one — a car that corners safely by going slowly is a loop with a lower bandwidth and a longer settling time.

The PID Controller, Term by Term

A PID controller is G_c(s) = K_p + K_i/s + K_d s, and the three terms answer three different complaints. Proportional action provides the basic drive, and raising K_p reduces steady-state error and speeds the response while reducing damping. Integral action adds a pole at the origin, which raises the system type by one and therefore drives the relevant steady-state error to exactly zero — the only term that can do so — at the cost of −90° of phase at low frequency, which eats directly into the margin. Derivative action adds a zero, contributing positive phase and damping, which is why it reduces overshoot and settling time; it changes no steady-state error at all, because the derivative of a constant is zero.

Two short designs make the algebra concrete. First a PD design on the plant G(s) = 1/[s(s + 2)] with unity feedback and G_c(s) = K_p + K_d s. The closed-loop characteristic equation is s² + (2 + K_d)s + K_p = 0. Ask for ω_n = 6 rad/s and ζ = 0.7: matching the constant term gives K_p = ω_n² = 36, and matching the middle term gives 2 + K_d = 2ζω_n = 8.4, so K_d = 6.4. Notice how direct that was — the derivative gain lands entirely in the damping term and the proportional gain entirely in ω_n, which is the reason PD design on a second-order plant is a two-line calculation. Second a PI design on the first-order plant G(s) = 5/(s + 5). With proportional control at K_p = 4 the closed loop is 20/(s + 25), whose DC gain is 20/25 = 0.8, leaving a step error of 0.2 — which is 1/(1 + K_p × 1) with the plant's own DC gain of 1. Add an integral term and the loop becomes type 1, so the step error becomes exactly zero, no matter how small K_i is; what K_i controls is how long it takes to get there and how much margin survives.

Raising each PID gain on its own
Gain raisedRise timeOvershootSteady-state errorStability margin
K_pDecreasesIncreasesDecreases, but never to zeroDegrades
K_iDecreases slightlyIncreasesEliminated for the relevant inputDegrades — a pole at the origin costs 90°
K_dLittle changeDecreasesNo change at allImproves, until noise dominates
⚠️ Pure derivative and pure integral are both unusable as written
K_d s has a magnitude that rises without bound with frequency, so a real implementation would amplify measurement noise indefinitely and, on a step command, would demand an infinite instantaneous drive. Practical derivative action is therefore always filtered, as K_d s/(1 + sτ) with a small τ — which is, on inspection, exactly a lead compensator, and that identity is worth carrying rather than treating the two topics as separate. Integral action has the mirror-image problem: while the error stays one sign the integrator keeps accumulating, so if the actuator saturates the stored value can grow far beyond anything useful and the loop then overshoots badly when the error finally reverses. That is integrator windup, and the standard cure is to stop integrating while the actuator is saturated. Both facts explain why textbook PID gains rarely survive contact with hardware, and why the examinable content is the direction of each term's effect rather than a tuning recipe.

State Variable Models and the Solution of the State Equation

A state model replaces one high-order differential equation with a first-order vector equation, ẋ = Ax + Bu and y = Cx + Du, and its advantage is that it carries the internal variables the transfer function has thrown away. Getting from a transfer function to a model is mechanical in controllable companion form: for Y/U = 1/(s² + 3s + 2), take x_1 = y and x_2 = ẏ, and the differential equation ÿ + 3ẏ + 2y = u becomes A = [[0, 1], [−2, −3]], B = [0; 1], C = [1, 0] and D = 0. Note the pattern in A: the bottom row is minus the characteristic coefficients in reverse order, and the rest is a shifted identity, so the matrix can be written down by inspection from the denominator.

Going back the other way needs one formula, Y/U = C(sI − A)^(−1)B + D. Here sI − A = [[s, −1], [2, s + 3]], whose determinant is s(s + 3) + 2 = s² + 3s + 2 — already the characteristic polynomial, which is the general fact worth remembering: the poles of the system are the eigenvalues of A, so stability is a question about A alone and needs no transfer function at all. The inverse is (1/Δ)[[s + 3, 1], [−2, s]] with Δ = s² + 3s + 2, and C(sI − A)^(−1)B picks out the top-right entry divided by Δ, giving 1/(s² + 3s + 2) and recovering the original transfer function. The eigenvalues are −1 and −2, both in the left half plane, so the system is stable.

The solution of the state equation has two parts, x(t) = e^(At)x(0) + ∫₀^t e^(A(t − τ))Bu(τ) dτ, and the practical route to the matrix exponential is e^(At) = L^(−1){(sI − A)^(−1)}, which is already computed above. Inverting each entry gives e^(At) = [[2e^(−t) − e^(−2t), e^(−t) − e^(−2t)], [−2e^(−t) + 2e^(−2t), −e^(−t) + 2e^(−2t)]]. Two checks make this trustworthy: at t = 0 every entry collapses to the identity matrix, as it must, and since x_2 = ẋ_1 in this companion form, the second row must be the derivative of the first, which it is. With x(0) = [1; 0] and no input, the free response is x_1(t) = 2e^(−t) − e^(−2t), starting at 1 and decaying to 0. Adding a unit step input instead, the forced output is the inverse transform of 1/[s(s + 1)(s + 2)], which is y(t) = 0.5 − e^(−t) + 0.5e^(−2t) — zero at t = 0 and settling at 0.5, matching the DC gain 1/2 of the transfer function.

The same second-order system in two descriptions
QuestionAnswered from the transfer functionAnswered from the state model
Where are the poles?Roots of s² + 3s + 2, so −1 and −2Eigenvalues of A, the same two numbers
What is the DC gain?Set s = 0: 1/2−CA^(−1)B + D, again 1/2
What happens from a non-zero initial state?It cannot say — initial conditions were set to zeroe^(At)x(0), computed above
Can every state be driven and observed?Invisible — a cancelled mode leaves no trace[B AB] and [C; CA] are both non-singular here
🎯 Why the state model is not just a rewrite of the transfer function
A transfer function is the input-output behaviour and nothing more, so any internal mode that the input cannot excite or the output cannot see simply disappears from it — that is what a pole-zero cancellation is. The state model keeps such modes, and the two matrices that test for them are worth knowing: the system is controllable when [B AB … A^(n−1)B] has full rank, and observable when [C; CA; … ; CA^(n−1)] does. For the model above, [B AB] = [[0, 1], [1, −3]] has determinant −1, and [C; CA] = [[1, 0], [0, 1]] is the identity, so this system is both. The reason it matters is a real hazard rather than a formality: an unstable mode that has been cancelled in the transfer function is still there in the hardware, growing, and the transfer function will never mention it. That is the honest answer to why control theory bothers with state space at all, and it is also why the eigenvalues of A, and not the poles of a reduced Y/U, are what a stability question about a state model must be answered from.

Key takeaways

  • Routh counts right-half-plane roots by sign changes in the first column: s³ + 5s² + 4s + K is stable for 0 < K < 20, and at K = 20 the auxiliary 5s² + 20 = 0 gives sustained oscillation at 2 rad/s.
  • A row of zeros means roots symmetric about the origin, so no sign change is not the same as stable — s⁴ + s³ + 3s² + 2s + 2 factors as (s² + 2)(s² + s + 1) and is only marginally stable.
  • For K/[s(s + 1)(s + 4)] the locus has a centroid at −1.667, asymptotes at 60°, 180° and 300°, a breakaway at −0.465 with K = 0.879, and crosses the axis at ±j2 with K = 20.
  • Gain margin is read at the phase crossover and phase margin at the gain crossover: at K = 8 they are 7.96 dB at 2 rad/s and 22.5° at 1.216 rad/s, and the gain margin 2.5 is just 20/8.
  • Nyquist says Z = P − N, and it gives a count rather than a verdict: at K = 40 the crossing moves to −2, the plot encircles −1 twice clockwise, and Z = 2.
  • A lead network supplies phase, with sin φ_m = (a − 1)/(a + 1) giving a = 3 for 30° and T = 0.2887 s to centre it at 2 rad/s; a lag network supplies attenuation instead, and integral action alone can zero a steady-state error.
  • In a state model the poles are the eigenvalues of A, and x(t) = e^(At)x(0) + ∫e^(A(t−τ))Bu dτ: for A = [[0,1],[−2,−3]] the step response is 0.5 − e^(−t) + 0.5e^(−2t).

Practice questions (8)

Attempt each one before opening the answer. Every explanation names the tempting wrong option as well as the right one, because that is where marks are lost.

  1. The characteristic polynomial of a closed-loop system is s^4 + 2 s^3 + 3 s^2 + 4 s + 5. How many of its roots lie in the right half of the s-plane?

    1. 2
    2. 0
    3. 1
    4. 4
    Show answer

    Answer: A — 2

    Build the Routh array. The s^4 row is 1, 3, 5 and the s^3 row is 2, 4. The s^2 row is (2 x 3 - 1 x 4)/2 = 1 and (2 x 5 - 0)/2 = 5. The s^1 entry is (1 x 4 - 2 x 5)/1 = -6, and the s^0 entry is 5. The first column reads 1, 2, 1, -6, 5, which changes sign twice, so two roots lie in the right half plane. The tempting 0 comes from the preliminary check alone: every coefficient here is present and positive, which is a necessary condition for stability but never a sufficient one, and this polynomial is exactly the case that shows the difference. Only the sign count in the first column settles it, and it counts right-half-plane roots and nothing else.
  2. A unity-feedback loop has open-loop transfer function G(s) = K/[s(s + 2)(s + 8)] with K positive, and its root locus is drawn as K runs from zero upwards. At what point on the real axis do two branches leave the axis?

    1. -5.737
    2. -0.930
    3. -3.333
    4. -1.070
    Show answer

    Answer: B — -0.930

    Write K as a function of s on the locus: K = -s(s + 2)(s + 8) = -(s^3 + 10 s^2 + 16 s). Setting dK/ds = 0 gives 3 s^2 + 20 s + 16 = 0, whose roots are s = (-20 plus or minus root(400 - 192))/6, that is -0.930 and -5.737. Only one of those can be the breakaway point, because a point lies on the locus only if the count of poles and zeros to its right is odd: the real-axis segments here are from -2 to 0 and from -8 leftwards, so -0.930 qualifies and -5.737 lies in the gap between -8 and -2 where there is no locus at all. Quoting -5.737 is the standard trap, since the derivative is perfectly happy to hand back a root that the angle condition rejects. The value -3.333 is the asymptote centroid (0 - 2 - 8)/3, a different construction entirely.
  3. A unity-feedback loop has open-loop transfer function G(s) = 15/[s(s + 1)(s + 5)]. What is the gain margin of this loop, expressed in decibels?

    1. 3.01 dB
    2. 4.11 dB
    3. 6.02 dB
    4. 12.04 dB
    Show answer

    Answer: C — 6.02 dB

    Gain margin is read at the phase crossover, so find that frequency first. The phase is -90 degrees minus arctan(w) minus arctan(w/5), and it reaches -180 degrees when arctan(w) + arctan(w/5) = 90 degrees, which requires the two tangents to be reciprocals: w x (w/5) = 1, so w^2 = 5 and w = 2.236 rad/s. The magnitude there is 15/(2.236 x root(6) x root(30)) = 15/30 = 0.5, so the gain margin is 1/0.5 = 2, that is 20 log(2) = 6.02 dB. The tempting 3.01 dB applies 10 log to a quantity that is already an amplitude ratio rather than a power ratio, which halves every answer of this kind. The value 4.11 dB comes from taking the phase crossover at 2 rad/s, a figure carried over from a similar-looking loop instead of derived, and 12.04 dB doubles the correct decibel figure.
  4. A lead network of the form G_c(s) = (1 + a T s)/(1 + T s), with a greater than one, must supply a maximum phase lead of 45 degrees. What value of a does that require?

    1. 2.41
    2. 1.41
    3. 3.00
    4. 5.83
    Show answer

    Answer: D — 5.83

    The maximum phase lead of this network satisfies sin(phi_m) = (a - 1)/(a + 1). Putting phi_m = 45 degrees gives 0.7071 = (a - 1)/(a + 1), so 0.7071 a + 0.7071 = a - 1 and a (1 - 0.7071) = 1.7071, giving a = 1.7071/0.2929 = 5.83. The tempting 3.00 is the value the same formula returns for 30 degrees, which is the figure most often worked as an example, and the non-linearity of the relation is exactly what makes it wrong here: a rises far faster than the angle it buys, which is why a single lead section is rarely asked for more than about 60 degrees. The value 1.41 is root(2), read off the sine rather than solved for, and 2.41 is 1 + root(2), which is the result of an algebraic slip in clearing the fraction.
  5. In a PID controller, raising which single gain reduces the overshoot and improves the stability margin while leaving the steady-state error to a given input completely unchanged?

    1. The derivative gain K_d
    2. The integral gain K_i
    3. The proportional gain K_p
    4. The d.c. gain of the plant itself
    Show answer

    Answer: A — The derivative gain K_d

    Derivative action contributes the term K_d s, which is a zero in the forward path. A zero adds positive phase, so it improves the stability margin and damps the response, cutting the overshoot. It changes no steady-state error at all, because at s tending to zero the term K_d s vanishes and the error constants K_p, K_v and K_a are all evaluated in that limit. The tempting integral gain does the opposite of leaving the error alone: K_i/s adds a pole at the origin, raises the system type by one and drives the relevant steady-state error to exactly zero, at a cost of 90 degrees of phase that degrades the margin. Raising the proportional gain reduces the steady-state error without ever eliminating it and degrades the margin as well.
  6. A system is described in state variable form by A = [[0, 1], [-8, -6]], B = [0; 1], C = [2, 0] and no direct term. What is its d.c. gain?

    1. 2.00
    2. 0.125
    3. 0.25
    4. 4.00
    Show answer

    Answer: C — 0.25

    The transfer function is C (sI - A)^(-1) B, and sI - A = [[s, -1], [8, s + 6]], whose determinant is s(s + 6) + 8 = s^2 + 6 s + 8. The inverse has 1/(s^2 + 6 s + 8) times [[s + 6, 1], [-8, s]], and C times that times B picks out 2 times the top-right entry, giving 2/(s^2 + 6 s + 8). Setting s = 0 gives 2/8 = 0.25. The tempting 0.125 is 1/8, which is the answer for C = [1, 0] and drops the factor of 2 that the output matrix supplies. The value 2.00 is the numerator alone, evaluated as if the denominator were unity, and 4.00 inverts the ratio. A useful check is that the eigenvalues of A are -2 and -4, whose product is the constant term 8 that appears in the denominator.
  7. A unity-feedback loop has open-loop transfer function G(s) = K/[s(s + 1)(s + 9)] with K positive. Which of the following statements about this loop are correct?

    1. The closed loop is stable for every K in the range 0 < K < 90.
    2. At the gain that puts a pole pair exactly on the imaginary axis, the sustained oscillation is at 3 rad/s.
    3. Since every coefficient of s^3 + 10 s^2 + 9 s + K is positive for all K > 0, no positive K can make the loop unstable.
    4. At that marginal gain the third closed-loop pole lies at the origin.
    Show answer

    Answer: A — The closed loop is stable for every K in the range 0 < K < 90.; B — At the gain that puts a pole pair exactly on the imaginary axis, the sustained oscillation is at 3 rad/s.

    The characteristic equation is s(s + 1)(s + 9) + K = s^3 + 10 s^2 + 9 s + K. The Routh array has first column 1, 10, (90 - K)/10 and K, so no sign change requires both K > 0 and K < 90, giving the stable range 0 < K < 90. At K = 90 the s^1 entry vanishes and the auxiliary polynomial from the row above is 10 s^2 + 90 = 0, whose roots are s = plus or minus j3, so the sustained oscillation is at 3 rad/s. The claim that positive coefficients guarantee stability is the trap: that condition is necessary but not sufficient for a polynomial of degree three or more, and this loop is unstable for every K above 90 despite all its coefficients staying positive. As for the third pole, the sum of the roots is minus the coefficient of s^2, that is -10, and the pair on the axis contributes nothing to that sum, so the third pole sits at -10 and not at the origin.
  8. A loop already meets its steady-state accuracy specification but has too little phase margin, and the design brief forbids any increase in closed-loop bandwidth because the sensor is noisy. Which network addresses that brief?

    1. A lead network, which contributes positive phase at the crossover and moves that crossover to a higher frequency
    2. A pure integrator, which places one more pole at the origin
    3. A larger proportional gain, which lifts the loop gain at every frequency alike
    4. A lag network, which attenuates at high frequency so that the gain crossover falls to a lower frequency where the plant's own phase is better
    Show answer

    Answer: D — A lag network, which attenuates at high frequency so that the gain crossover falls to a lower frequency where the plant's own phase is better

    A lag section has its pole nearer the origin than its zero, so it attenuates above its corner while adding almost no phase where the crossover ends up. The crossover therefore slides down to a frequency at which the plant has not yet accumulated its lag, and the margin improves without the bandwidth growing at all; the price is a slower response with a long settling tail. The tempting lead network supplies phase directly, which looks like the obvious cure, but it does so by pushing the crossover to a higher frequency, and a wider bandwidth is exactly what a noisy sensor makes unaffordable. Integral action would improve an accuracy target that is already met and would cost ninety degrees of phase at low frequency, and raising the proportional gain destroys margin rather than restoring it.