Skip to main content
engineering

Pole-Zero Map Calculator

Plot the poles and zeros of a transfer function G(s) = N(s)/D(s) on the s-plane, with each root's multiplicity, natural frequency and damping ratio, and the stability of G(s)

By Christopher FloiedUpdated

Pole-Zero Map of G(s) = N(s)/D(s)

Enter the numerator and denominator coefficients from the highest power of s down, separated by spaces or commas: 1 4 3 is s² + 4s + 3. The poles (roots of D) and zeros (roots of N) are plotted on the s-plane and listed below, with each repeated root shown once with its multiplicity.

Load a worked example:

Highest power first, e.g. 1 2 for s + 2

Highest power first, e.g. 1 4 3 for s² + 4s + 3

Poles
2
Zeros
1
Stability of G(s)
Stable

Every pole is in the left half-plane, so G(s) is stable.

Pole-zero map (s-plane)

Poles are red crosses and zeros blue circles; ×2 marks a repeated root. The table below lists every root.

Poles and zeros of G(s)
RootValueMultiplicityWhereωn (rad/s)ζ
Pole-11Left half-plane11
Pole-31Left half-plane31
Zero-21Left half-plane——

How to Use This Calculator

1

Enter your input values

Fill in all required input fields for the Pole-Zero Map Calculator. Follow the units and input format printed next to each field. Where a unit selector is available, choose the units that match your data.

2

Review your inputs

Double-check that all values are correct and match the units or format shown for each field. Incorrect units are the most common source of calculation errors and can produce results that are off by factors of 2, 10, or more.

3

Read the results

The Pole-Zero Map Calculator computes the output in your browser and displays the results, with units clearly labeled, as soon as they are ready — no data sent to a server.

4

Explore parameter sensitivity

Try adjusting individual input values to see how the output changes. This is a quick and effective way to develop intuition about how different parameters influence the result and to identify which inputs have the largest effect.

Formula Reference

Poles, Zeros and the Factored Form

G(s) = N(s)/D(s) = K·∏(s − zⱼ)/∏(s − pᵢ)

Variables: N(s), D(s) = numerator and denominator polynomials, entered highest power first (1 4 3 is s² + 4s + 3); zⱼ = the zeros, the roots of N(s); pᵢ = the poles, the roots of D(s); K = b₀/a₀, the ratio of the leading coefficients. The roots come from Aberth–Ehrlich iteration on the original polynomial; a repeated root is listed once with its multiplicity, and roots that cannot be computed give no map and an unknown stability. Source: Ogata, Modern Control Engineering, 5th ed., Ch. 2 (transfer functions)

Natural Frequency and Damping Ratio of a Pole

ωn = |p| = √(σ² + ω²) | ζ = −σ/|p|

Variables: p = σ + jω, a pole; ωn = natural frequency (rad/s); ζ = damping ratio (dimensionless): 1 for a real negative pole, between 0 and 1 for a complex pair in the left half-plane, 0 on the jω axis and negative in the right half-plane. Neither is defined for a pole at s = 0. Source: Nise, Control Systems Engineering, Ch. 4 (time response)

Stability from the Poles

stable: Re(pᵢ) < 0 for every pole | marginally stable: no pole with Re(pᵢ) > 0, and every jω-axis pole simple | unstable: otherwise

Variables: A pole counts as on the jω axis when its real part is within 10⁻⁹ of its size. A repeated jω-axis pole (1/s², 1/(s² + 1)²) gives a mode multiplied by t, which grows without bound, so it makes G(s) unstable. Zeros do not affect stability. An improper G(s) (numerator degree above the denominator's) is not BIBO-stable whatever its poles

When to Use This Calculator

  • •Use the Pole-Zero Map Calculator to check your hand calculations on homework or exam problems — comparing its result with your own working helps identify arithmetic errors before they propagate.
  • •Use it during the early design phase to rapidly iterate on parameters and narrow down feasible configurations before committing time to detailed finite element simulations or full design packages.
  • •Use it when reviewing a colleague's calculation or checking a vendor's data sheet for plausibility — a quick sanity check can prevent costly downstream errors.
  • •Use it to generate reference data for a technical report or presentation without manual computation, ensuring consistent, reproducible numbers throughout the document.
  • •Use it in the field when a quick estimate is needed and a full engineering software package is not available.

About This Calculator

The Pole-Zero Map Calculator is a precision engineering calculation tool designed for students, engineers, and technical professionals. Plot the poles and zeros of a transfer function G(s) = N(s)/D(s) on the s-plane, with each root's multiplicity, natural frequency and damping ratio, and the stability of G(s) All calculations are performed using established engineering formulas from the relevant scientific literature and standards. Follow the units printed beside each field. Where a unit selector is provided, the selected unit is converted internally. Results are computed in your browser without sending data to a server, which keeps your inputs private. This calculator is intended as a supplementary tool for learning and design exploration; always verify results against authoritative references for safety-critical applications.

The Theory Behind It

A transfer function G(s) = N(s)/D(s) is a ratio of two polynomials in the Laplace variable s. Its zeros are the roots of N(s), where G(s) = 0, and its poles are the roots of D(s), where |G(s)| grows without bound. Plotting both on the complex s-plane, with the real part σ across and the imaginary part ω up, gives the pole-zero map: the most compact picture of a linear system's dynamics. Each real pole p contributes a mode e^(pt) to the impulse response, and a complex pair σ ± jω contributes e^(σt)·sin(ωt + φ). So a pole's horizontal position sets how fast its mode decays (or grows), and its vertical position sets how fast it oscillates. For a pole p = σ + jω, the distance from the origin is the natural frequency ωn = |p|, and the damping ratio is ζ = −σ/|p|, the cosine of the pole's angle from the negative real axis. For a proper G(s), whose numerator degree is no higher than its denominator's, stability is read from the poles alone. G(s) is stable when every pole lies strictly in the left half-plane; marginally stable when no pole is in the right half-plane and every pole on the jω axis is simple (an integrator 1/s, an undamped oscillator 1/(s² + 1)); and unstable when any pole is in the right half-plane or a pole on the jω axis is repeated, because 1/s² has the impulse response t, which grows without bound. An improper G(s), with a numerator of higher degree, is never BIBO-stable, whatever its poles: its gain grows without bound at high frequency. Where the zeros lie does not decide stability, but it shapes the response: a zero close to a pole nearly cancels that pole's mode, and a zero in the right half-plane makes the step response start in the wrong direction. This calculator reads the coefficients strictly: a token that is not a number is reported, never dropped, because dropping it would shift every later coefficient to a different power of s. It finds the roots with the same root finder as the site's Root Locus, Bode and Transfer Function tools, Aberth–Ehrlich iteration on the original polynomial, with a group of nearly equal roots tested and refined as one repeated root, so (s + 1)² is listed once as −1 (×2). If the root finder cannot produce trustworthy roots, for example a root beyond double-precision range, the tool draws no map and calls the stability unknown, because an empty or partial map would look like a stable system. The map shows the poles of G(s) itself. To see where the poles move when G(s) is closed in a feedback loop with gain K, use the Root Locus Plotter.

Real-World Applications

  • •Checking a plant model before control design: plot the poles and zeros of a motor, thermal or suspension model to see its natural frequencies, its damping and any right-half-plane pole before choosing a controller.
  • •Spotting near-cancellations: a zero close to a pole means that mode barely shows in the output. The table lists both to six significant figures, so you can see how close they are.
  • •Identifying non-minimum-phase behaviour: a right-half-plane zero makes the step response start in the wrong direction and limits the bandwidth any controller can reach.
  • •Reading damping from a complex pole pair: ωn and ζ in the table give the speed and damping of that mode without simulating it, the quantities second-order specifications are written in.
  • •Learning the s-plane: the worked examples cover distinct real poles, repeated roots, a complex pair and a double integrator, the cases that decide stability.

Frequently Asked Questions

What is a pole-zero map?

It is a plot of a transfer function's poles (roots of the denominator, drawn as crosses) and zeros (roots of the numerator, drawn as circles) on the complex s-plane. The real axis shows decay or growth rate and the imaginary axis shows oscillation frequency, so the map shows at a glance whether a system is stable, how fast its modes decay and how much they oscillate.

How do I enter G(s)?

Type the coefficients of N(s) and D(s) from the highest power of s down, separated by spaces or commas. s + 2 is 1 2, and (s + 1)(s + 3) must be expanded to s² + 4s + 3, entered as 1 4 3. Include zero coefficients: s² + 1 is 1 0 1. Exact leading zeros are dropped, so 0 1 2 is the same as 1 2.

Why is 1/s² unstable when 1/s is only marginally stable?

Both have poles on the jω axis, at s = 0. A simple pole there gives a mode that neither decays nor grows: the impulse response of 1/s is a constant. A repeated one gives a mode multiplied by t: the impulse response of 1/s² is the ramp t, which grows without bound. So simple jω-axis poles make a system marginally stable and repeated ones make it unstable, even though no pole is in the right half-plane.

Do zeros affect stability?

Where they lie, no: stability depends only on the poles. How many there are can matter: with more zeros than poles, G(s) is improper, and an improper G(s) is never BIBO-stable. Zeros change how much each mode appears in the output and the shape of the transient: a zero near a pole weakens that mode, and a right-half-plane zero causes an initial undershoot. Zeros do matter for feedback, because closed-loop poles move from the open-loop poles towards the zeros as the gain rises (see the Root Locus Plotter).

What do ωn and ζ in the table mean?

For a pole p = σ + jω, ωn = |p| is its natural frequency in rad/s and ζ = −σ/|p| its damping ratio. A real negative pole has ζ = 1, a complex pair in the left half-plane has 0 < ζ < 1 (underdamped), a pole on the jω axis has ζ = 0, and a right-half-plane pole has a negative ζ. A pole at s = 0 has neither, so the table shows a dash.

Why does the tool sometimes show no map?

When a coefficient is not a number, the tool says which field is wrong. When the root finder cannot return trustworthy roots, for example because a root is too large or too small to represent as a double-precision number, it shows that the stability is unknown and draws nothing: a map missing some roots could look like a stable system.

Worked Examples

Example 1: (s + 2)/((s + 1)(s + 3)): one zero and two real poles

G(s) = (s + 2)/((s + 1)(s + 3)). Find its poles and zeros and decide whether it is stable.

Step 1:Expand the denominator: (s + 1)(s + 3) = s² + 4s + 3. Enter numerator 1 2 and denominator 1 4 3.
Step 2:Zero: s + 2 = 0 gives s = −2.
Step 3:Poles: s² + 4s + 3 = 0 gives s = (−4 ± √(16 − 12))/2, that is −1 and −3.
Step 4:Both poles are real and negative, so both modes decay: ωn = 1 rad/s with ζ = 1, and ωn = 3 rad/s with ζ = 1.

Zero −2; poles −1 and −3; stable. The zero lies between the two poles on the negative real axis.

Example 2: Repeated roots: (s + 3)²/((s + 1)²(s + 2))

G(s) = (s + 3)²/((s + 1)²(s + 2)). Enter it expanded and read the multiplicities.

Step 1:(s + 3)² = s² + 6s + 9 and (s + 1)²(s + 2) = s³ + 4s² + 5s + 2, so enter numerator 1 6 9 and denominator 1 4 5 2.
Step 2:The zero −3 is a double root of N(s): the tool lists it once as −3 (×2) and marks it ×2 on the map.
Step 3:The poles are −1 (×2) and −2. A double real pole gives the modes e^(−t) and t·e^(−t), which both decay.
Step 4:No pole is on the jω axis or to its right, so G(s) is stable: a repeated pole makes a system unstable only on the jω axis.

Zero −3 (×2); poles −1 (×2) and −2; stable, with 3 poles and 2 zeros counted with multiplicity.

Example 3: A complex pole pair: 1/(s² + 2s + 5)

G(s) = 1/(s² + 2s + 5): numerator 1, denominator 1 2 5. Find the poles, ωn and ζ.

Step 1:s² + 2s + 5 = 0 gives s = −1 ± √(1 − 5) = −1 ± 2j.
Step 2:Natural frequency: ωn = |p| = √(1 + 4) = √5 = 2.23607 rad/s.
Step 3:Damping ratio: ζ = −σ/|p| = 1/√5 = 0.4472.
Step 4:The real part −1 sets the decay e^(−t), and the imaginary part sets the damped oscillation at 2 rad/s.

Poles −1 ± 2j and no finite zeros; stable and underdamped (ζ = 0.4472, between 0 and 1).

Example 4: The double integrator 1/s²: unstable with no right-half-plane pole

G(s) = 1/s²: numerator 1, denominator 1 0 0. Is it stable?

Step 1:D(s) = s² has the root s = 0 twice: the tool lists 0 (×2).
Step 2:A simple pole on the jω axis, such as 1/s or the pair ±j of 1/(s² + 1), gives a mode that neither decays nor grows: marginally stable.
Step 3:A repeated pole there multiplies the mode by t: the impulse response of 1/s² is the ramp t, which grows without bound.

Poles 0 (×2): unstable, though no pole is in the right half-plane. The tool calls 1/(s² + 1), with simple poles ±j, marginally stable.

Common Mistakes & Tips

  • !Entering roots instead of coefficients: (s + 1)(s + 3) is entered as 1 4 3, not as −1 −3.
  • !Leaving out a zero coefficient: s² + 1 is 1 0 1. Entering 1 1 gives s + 1, a different system.
  • !Calling a system with poles on the jω axis stable: simple ones make it marginally stable and repeated ones unstable.
  • !Judging stability from where the zeros are. Only poles decide it, unless G(s) is improper (more zeros than poles), which is never BIBO-stable; a right-half-plane zero still limits the response.
  • !Reading the closed loop from this map. It shows the poles of G(s); feedback moves them, so use the Root Locus Plotter or the Steady-State Error Calculator for a closed loop.
  • !Cancelling an unstable pole with a zero on paper. The cancelled mode is still inside the system and still grows.

Related Concepts

Related Calculators

References & Further Reading

Wikipedia

Academic Resources

Industry References

  • python-control documentation

    The Python Control Systems Library (version 0.10.2) whose poles() and zeros() give the reference values this tool's tests compare against.

Textbooks

  • Ogata, K.. Modern Control Engineering, 5th ed., 2010. Pearson.ISBN 978-0136156734

    Chapter 2 defines the transfer function, its poles and zeros; Chapter 5 relates pole locations to the transient response and to stability.

  • Nise, N. S.. Control Systems Engineering, 8th ed., 2019. Wiley.ISBN 978-1119474227

    Chapter 4 reads the time response from the poles and zeros, including the natural frequency and damping ratio of a complex pole pair.

Add the live Pole-Zero Map Calculator to your site. Free to embed, with a link back to MegaCalc.