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)
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.
Highest power first, e.g. 1 2 for s + 2
Highest power first, e.g. 1 4 3 for s² + 4s + 3
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.
| Root | Value | Multiplicity | Where | ωn (rad/s) | ζ |
|---|---|---|---|---|---|
| Pole | -1 | 1 | Left half-plane | 1 | 1 |
| Pole | -3 | 1 | Left half-plane | 3 | 1 |
| Zero | -2 | 1 | Left half-plane | — | — |
How to Use This Calculator
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.
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.
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.
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.
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.
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 ζ.
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?
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
Root Locus Plotter
Where these poles move when G(s) is closed in a unity-feedback loop with gain K, from the open-loop poles towards the zeros.
Bode Plot Generator
The frequency response of the same G(s): each pole bends the magnitude down by 20 dB per decade and each zero up.
Steady-State Error Calculator
Close the loop around G(s) and find the error left for a step, ramp or parabola, after the closed-loop poles are checked.
Transfer Function Calculator
The same poles and zeros with the system order, type and DC gain of G(s).
Related Calculators
Z-Transform Calculator
Discretize continuous transfer functions using ZOH or Tustin (bilinear) method; shows z-domain poles/zeros, stability check, and pole-zero map
Free Vibration SDOF Calculator
Natural frequency, damping ratio, and free response of a single-DOF spring-mass-damper system with decay envelope plot
Transfer Function Calculator
Analyze transfer functions: compute poles, zeros, DC gain, system order, system type, and stability from numerator/denominator coefficients
Lead-Lag Compensator Calculator
Lead and lag compensator design: enter the peak phase φₘ and the frequency ωₘ to get α, T, the zero and pole, gain at ωₘ in dB, Gc(s), and a Bode plot
Nyquist Stability Calculator
Compute gain margin (dB), phase margin (degrees), gain crossover frequency, and phase crossover frequency from open-loop transfer function
RLC Circuit Calculator
Step and sinusoidal response of series RLC circuits: natural frequency, damping ratio, Q factor, and bandwidth
References & Further Reading
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.