Poles and zeros: connect root locations to a step response

Explore poles and zeros by changing one numerator zero in a stable second-order system. Calculate inverse response, compare real and complex poles, and distinguish canceled factors from hidden internal modes.

By 13 min read

What you will learn

  • Find denominator roots and numerator zeros with their units.
  • Relate real and complex poles to decaying response terms.
  • Calculate how a zero changes a unit-step response.
  • Explain why a right-half-plane zero can produce an initial inverse response.
  • Separate exact transfer-function cancellation from internal state dynamics.

Before you start

A stable system can initially move its output in the wrong direction. It can also produce a first-order response even when its written denominator has two roots. Poles, zeros, and shared factors explain both results.

You will work with one family of transfer functions, calculate its response to a positive step, and compare the calculation with an interactive plot.

Start with a model for poles and zeros

Use a continuous-time, causal, linear time-invariant system. Its input u and output y are dimensionless normalized signals. The transfer-functions lesson explains why this description assumes zero initial state.

G(s) = Y(s)/U(s)
G(s) = ωₙ²(1 + τ𝓏s)/(s² + 2ζωₙs + ωₙ²)

Here ωₙ is the natural frequency in rad/s, ζ is the dimensionless damping ratio, and τ𝓏 is a signed time coefficient in seconds. The Laplace variable s has units of inverse seconds. Radians are dimensionless in these equations, so every denominator term has units of 1/s².

The lab keeps ωₙ positive and ζ positive. It varies τ𝓏 while holding the denominator fixed. Because G(0) = 1, every model has unity DC gain. Its stable unit-step response eventually reaches one.

This family is an input-output teaching model. A normalized robot command and measurement can have such dynamics, but the chosen coefficients do not specify a complete motor or mechanism. The model omits delays, actuator limits, and nonlinear effects.

Find the roots and keep their units

For a scalar rational transfer function, first remove any exact common numerator and denominator factors. The remaining denominator roots are its poles; the remaining numerator roots are its finite zeros. We also retain the original denominator roots so a cancellation stays visible.

Before cancellation, solve the quadratic:

p₁,₂ = −ζωₙ ± ωₙ√(ζ² − 1)
z = −1/τ𝓏, when τ𝓏 ≠ 0

A zero time coefficient of zero gives a constant numerator and no finite zero. For positive τ𝓏, the zero lies on the negative real axis. For negative τ𝓏, it lies on the positive real axis.

With ωₙ = 2 and ζ = 0.5, the denominator roots are −1 ± 1.732051i, in inverse seconds, where i² = −1. Setting τ𝓏 = 0.5 s adds a zero at −2/s. Setting τ𝓏 = −0.5 s places it at +2/s. Neither choice changes those two denominator roots.

The complex-plane plot uses crosses for poles and circles for zeros. A root at −2/s is a rate coordinate, not a time of negative two seconds.

Connect poles to decaying motion

A simple pole p contributes a term proportional to eᵖᵗ in an impulse response or the transient part of a step response, unless a zero removes that factor. Its coefficient also matters: root locations alone do not determine the whole curve.

Denominator settingRootsAvailable transient terms
0 < ζ < 1Complex conjugate pairDecaying sine and cosine
ζ = 1Repeated negative real roote⁻ωₙᵗ and te⁻ωₙᵗ
ζ > 1Two negative real rootsTwo decaying exponentials

For the default roots −1 ± 1.732051i, the envelope decays as e⁻ᵗ. The imaginary part supplies an angular oscillation frequency of 1.732051 rad/s. This differs from the natural frequency ωₙ = 2 rad/s.

At ζ = 1, both roots equal −2/s. At ζ = 1.25, they become −1/s and −4/s. A repeated root counts twice even though the crosses overlap in the plot.

All allowed roots have negative real parts. The lab therefore explores changing transients within a stable family. The stability-criteria lesson extends that discussion to the imaginary axis, growing modes, and the difference between output and internal stability.

Add a zero through the response derivative

Let G₀ be the same transfer function with τ𝓏 = 0, and let y₀(t) be its zero-state unit-step response. Then:

G(s) = G₀(s) + τ𝓏sG₀(s)
Y(s) = Y₀(s) + τ𝓏sY₀(s)
y(t) = y₀(t) + τ𝓏ẏ₀(t)

The last line uses y₀(0) = 0. Illinois ECE 486 Lecture 7 derives this relationship and compares zeros on both sides of the complex plane.

A positive τ𝓏 adds the derivative contribution. While y₀ rises, that contribution raises y; while y₀ falls, it lowers y. A negative τ𝓏 reverses those signs. A zero's effect therefore changes during the response.

At two seconds, the default model gives y₀ = 1.153123 and ẏ₀ = −0.099060/s. With τ𝓏 = 0.5 s, y becomes 1.103593. With τ𝓏 = −0.5 s, it becomes 1.202653. These calculations use unrounded values internally.

As τ𝓏 approaches zero, its derivative contribution vanishes and the finite zero moves farther from the origin. The numerator and the transient approach the no-zero model continuously.

Calculate an initial inverse response

The no-zero step starts with y₀(0) = 0 and ẏ₀(0) = 0. Its initial acceleration is ωₙ². Differentiating the output relation gives:

ẏ(0+) = τ𝓏ωₙ²
τ𝓏 = −0.5 s, ωₙ = 2 rad/s ⇒ ẏ(0+) = −2/s

The input steps upward, but the output initially decreases. This is an inverse response. The right-half-plane-zero preset demonstrates a nonminimum-phase zero while retaining stable poles.

At t = 0.1 s, the same model has y₀ = 0.018669 and ẏ₀ = 0.360128/s. Therefore:

y(0.1) = y₀(0.1) − 0.5 ẏ₀(0.1) ≈ −0.161395

The initial decrease follows from this model's exact slope. Its output later reverses direction and approaches one. A right-half-plane zero and a right-half-plane pole have different roles: the zero here creates inverse response; an uncanceled right-half-plane pole would introduce a growing mode.

Cancel a shared factor exactly

Choose ωₙ = 2, ζ = 1.25, and τ𝓏 = 1 s. Factor the denominator and numerator:

G(s) = 4(s + 1)/[(s + 1)(s + 4)]
G reduced(s) = 4/(s + 4)
y(t) = 1 − e−4t

The written denominator has roots −1/s and −4/s. After removing the shared factor, the transfer function has one pole at −4/s and no finite zero. At s = −1, the unreduced fraction has a removable singularity; the reduced function supplies its finite continuation.

At two seconds, y = 0.999665. The no-zero comparison still has both poles and reaches only 0.819665 at that instant. The shared factor removes the slower exponential from this input-output response.

Repeated roots need the same factor accounting. With ζ = 1 and τ𝓏 = 0.5 s, the numerator cancels one of the two factors at −2/s. One transfer pole remains at −2/s, giving y = 1 − e⁻²ᵗ. Canceling one factor does not remove both copies.

The lab recognizes equal roots within floating-point roundoff. It keeps nearby roots separate. Measured parameters have uncertainty, so a numerically close pole and zero do not establish an exact physical cancellation. MathWorks' minimal-realization documentation describes how a chosen numerical tolerance affects cancellation.

Keep track of hidden internal modes

One two-state realization of this family is:

ẋ₁ = x₂
ẋ₂ = ωₙ²(u − x₁) − 2ζωₙx₂
y = x₁ + τ𝓏x₂

Here x₁ is dimensionless and x₂ has units 1/s. Starting both states at zero gives x₁ = y₀ and x₂ = ẏ₀ under the unit step, which explains the lab's output formula without differentiating a discontinuous input.

In the cancellation preset, the internal state matrix still has eigenvalues −1/s and −4/s. Consider its free mode x₁ = e⁻ᵗ and x₂ = −e⁻ᵗ, using seconds as the time unit. The measured output is x₁ + x₂ = 0. The mode continues inside this realization while its contribution to y vanishes: it is unobservable in this output.

Both internal modes in this example decay. More generally, a reduced transfer function can hide an unstable mode in a nonminimal realization. Illinois ECE 486 Lecture 20 gives such state-space examples. Inspect the state dynamics when internal stability matters; a canceled factor alone does not certify the full realization.

Evaluate complex, repeated, and real poles

The lab evaluates closed-form responses throughout the replay. Let a = ζωₙ. Define two temporary functions C(t) and S(t):

DampingC(t)S(t)
ζ < 1, b = ωₙ√(1 − ζ²)e⁻ᵃᵗ cos(bt)e⁻ᵃᵗ sin(bt)/b
ζ = 1e⁻ᵃᵗte⁻ᵃᵗ
ζ > 1, b = ωₙ√(ζ² − 1)e⁻ᵃᵗ cosh(bt)e⁻ᵃᵗ sinh(bt)/b

Then every branch uses:

y₀ = 1 − C − aS
ẏ₀ = ωₙ²S
y = y₀ + τ𝓏ωₙ²S

For underdamped motion, substituting the first row gives the familiar decaying sinusoid. At critical damping it gives y₀ = 1 − (1 + ωₙt)e⁻ωₙᵗ. Above critical damping, the hyperbolic functions combine two real exponentials.

As b approaches zero, sin(bt)/b and sinh(bt)/b both approach t. That limit connects the branches continuously. The browser implementation uses a small-angle expansion and differences of decaying exponentials to retain accuracy near repeated roots. It samples the exact expression for drawing; the displayed values do not come from stepping a simulation forward.

Compare root locations and response curves

One denominator, different outputs

Move a zero and watch the step response

The input jumps from zero to one at time zero. The initial state is zero. Change the numerator zero without changing the denominator, then inspect an exact cancellation.

2.00
0.50
0.00

Positive zero time places the zero on the left; negative zero time places it on the right. Zero time equal to zero removes the finite zero. All allowed denominator roots have negative real parts. A right-half-plane zero changes the transient without making these poles unstable.

2.00
Poles and zeros in the complex planeBlue crosses mark transfer poles: -1.000000 + 1.732051i; -1.000000 - 1.732051i. There is no remaining finite transfer zero. No pole-zero factor is canceled. The horizontal and vertical axes use the same scale.-3.52.5-33Real (1/s)Imaginary (1/s)
Blue crosses: transfer poles after cancellation. Orange circle: remaining finite zero. A gray crossed circle appears for a canceled pair. Repeated roots share a location; the readouts retain their multiplicity. Both axes use the same scale, and the thin solid guides cross at zero.
Unit-step responses with the selected zero and with no finite zeroSolid blue is the selected response. Orange dashes are the response with the same denominator and no finite zero. At 2.000000 seconds, the selected output is 1.153123 and the no-zero output is 1.153123. Both eventually approach one.02468-102Time (s)Output
Solid blue: selected output. Orange dashes: the same denominator with no finite zero. These curves coincide when zero time is zero. The blue dot and vertical guide mark the replay time; gray short dashes mark the final value of one. Eight seconds may be too short to settle for some settings.
Output y
1.153123
No-zero output y0
1.153123
Output rate (1/s)
-0.099060
Initial slope (1/s)
0.000000
DC gain
1.000000
Numerator zero (1/s)
No finite zero
Denominator roots (1/s)
-1.000000 + 1.732051i; -1.000000 - 1.732051i
Transfer poles (1/s)
-1.000000 + 1.732051i; -1.000000 - 1.732051i
Transfer zeros (1/s)
No finite zero
Canceled denominator root (1/s)
None

There is no finite zero. The selected response and its no-zero comparison coincide.

Cancellation uses equality within floating-point roundoff. Nearby factors remain separate. Input and output are dimensionless; root coordinates have units of inverse seconds. This linear model has no actuator limits or delays.

Start with No finite zero, then choose Left-half-plane zero and Right-half-plane zero. The poles stay fixed while the response changes. Move the replay time to 0.10 s to inspect the inverse response numerically.

Choose Cancel the root at -1. Compare the original denominator roots with the remaining transfer pole, then compare the two output curves. Finally choose Repeated real poles and set zero time to 0.50 s. One canceled pair and one remaining pole occupy the same location.

The replay always covers eight seconds. A slow, lightly damped setting can still be moving at the end. Use the step-response-characteristics lesson to define what “settled” means before reporting a settling time.

Reproduce the responses in Python

This standard-library example implements the three analytic branches for the displayed cases. It calculates outputs, including cancellation responses, without deleting factors first. It uses direct hyperbolic functions for these bounded examples; the lab uses the numerically stable variants described above.

from math import cos, cosh, exp, sin, sinh, sqrt


def step(w, zeta, tau, t):
    a = zeta * w
    if zeta < 1:
        b = w * sqrt(1 - zeta * zeta)
        c = exp(-a * t) * cos(b * t)
        s = exp(-a * t) * sin(b * t) / b
    elif zeta == 1:
        c = exp(-a * t)
        s = t * c
    else:
        b = w * sqrt(zeta * zeta - 1)
        c = exp(-a * t) * cosh(b * t)
        s = exp(-a * t) * sinh(b * t) / b
    y0 = 1 - c - a * s
    rate0 = w * w * s
    return y0 + tau * rate0


for label, zeta, tau, t in [
    ("No zero at 2 s", 0.5, 0, 2),
    ("Left zero at 2 s", 0.5, 0.5, 2),
    ("Right zero at 0.1 s", 0.5, -0.5, 0.1),
    ("Repeated poles at 2 s", 1, 0, 2),
    ("Real poles at 2 s", 1.25, 0, 2),
    ("Cancel -1 at 2 s", 1.25, 1, 2),
    ("Cancel one -2 at 2 s", 1, 0.5, 2),
]:
    print(f"{label}: {step(2, zeta, tau, t):.6f}")

Expected output:

No zero at 2 s: 1.153123
Left zero at 2 s: 1.103593
Right zero at 0.1 s: -0.161395
Repeated poles at 2 s: 0.908422
Real poles at 2 s: 0.819665
Cancel -1 at 2 s: 0.999665
Cancel one -2 at 2 s: 0.981684

Try it yourself

Exercise 1. Keep ωₙ = 2 and ζ = 0.5, and choose τ𝓏 = −0.25 s. Find the finite zero, the initial output slope, and the output at two seconds. Do the poles move?

Check the zero and response

The zero is −1/(−0.25) = +4/s. The initial slope is −0.25 × 4 = −1/s. At two seconds, use y = y₀ − 0.25ẏ₀ to obtain 1.177888. The poles remain −1 ± 1.732051i per second. Their negative real parts coexist with the initial inverse response.

Exercise 2. Let G(s) = 4(1 + 0.5s)/(s + 2)². How many transfer poles remain after cancellation? Find the unit-step output at two seconds and explain what this says about the two-state realization.

Check the repeated factor

The numerator is 2(s + 2). Canceling one common factor gives G(s) = 2/(s + 2). One pole remains at −2/s, with no finite zero. The output is 1 − e⁻⁴ = 0.981684 at two seconds. The written two-state realization retains its repeated eigenvalue; cancellation reduces the observable input-output behavior to one state.

Sources and further study

Continue with stability criteria to decide which conclusions a pole plot supports and which require examining the internal state.