Steady-State Error Calculator
Steady-state error of a unity-feedback loop for step, ramp and parabolic inputs, with the system type and Kp, Kv and Ka, after checking that the closed loop is stable
Steady-State Error of a Unity-Feedback Loop
Enter the open-loop transfer function G(s) = N(s)/D(s) as coefficients from the highest power of s down: 1 1 0 is s² + s. The loop is unity negative feedback, so E(s) = R(s)/(1 + G(s)). The closed-loop poles, the roots of D(s) + N(s), are checked first: a steady-state error exists only when every one is in the left half-plane.
Highest power first, e.g. 1 1 for s + 1
Highest power first, e.g. 1 1 0 for s(s + 1)
Closed-loop poles: -2
| Input r(t) | R(s) | Error constant | e_ss formula | Steady-state error e_ss |
|---|---|---|---|---|
| Unit step, 1 | 1/s | Kp = 1 | 1/(1 + Kp) | 0.5 |
| Unit ramp, t | 1/s² | Kv = 0 | 1/Kv | ∞ (grows without bound) |
| Unit parabola, t²/2 | 1/s³ | Ka = 0 | 1/Ka | ∞ (grows without bound) |
Type 0: Ka = 0 (1/s²). For an input A times as large, the error is A times as large.
How to Use This Calculator
Enter your input values
Fill in all required input fields for the Steady-State Error 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 Steady-State Error 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
Error of a Unity-Feedback Loop
E(s) = R(s)/(1 + G(s)) | e_ss = lim(s→0) s·E(s)
Variables: G(s) = N(s)/D(s), the open-loop transfer function; R(s) = the input; E(s) = the error R − Y. The final value theorem holds only if every closed-loop pole, every root of D(s) + N(s), is in the left half-plane: an unstable loop has no steady-state error, and neither does one with a closed-loop pole on the jω axis. Source: Nise, Control Systems Engineering, Ch. 7 (steady-state errors)
Static Error Constants and the Three Errors
Kp = lim G(s), Kv = lim s·G(s), Ka = lim s²·G(s) (s → 0) | e_step = 1/(1 + Kp), e_ramp = 1/Kv, e_parabola = 1/Ka
Variables: Unit step r = 1 (R = 1/s), unit ramp r = t (R = 1/s²), unit parabola r = t²/2 (R = 1/s³); Kv in 1/s and Ka in 1/s². An infinite constant gives zero error, and a zero constant an error that grows without bound. For an input A times as large the error is A times as large
System Type
G(s) = K·N′(s)/(s^q·D′(s)) with N′(0), D′(0) ≠ 0 | type = q | Kp, Kv, Ka = ∞ below q, K at q, 0 above q
Variables: q = the poles of G(s) at s = 0 less its zeros at s = 0, counted exactly from the trailing zero coefficients of D(s) and N(s); K = N′(0)/D′(0), the ratio of their lowest non-zero coefficients. No other common factor of N(s) and D(s) is cancelled, so a shared factor stays in the closed loop and in its stability check
When to Use This Calculator
- •Use the Steady-State Error 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 Steady-State Error Calculator is a precision engineering calculation tool designed for students, engineers, and technical professionals. Steady-state error of a unity-feedback loop for step, ramp and parabolic inputs, with the system type and Kp, Kv and Ka, after checking that the closed loop is stable 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
In a unity negative-feedback loop the controller acts on the error e(t) = r(t) − y(t), and with the open-loop transfer function G(s) the error's transform is E(s) = R(s)/(1 + G(s)). The steady-state error is what remains as t grows. When the closed loop is stable, the final value theorem gives it directly: e_ss = lim(s→0) s·E(s). For the three standard test inputs this becomes a property of G(s) near s = 0. A unit step (R = 1/s) leaves e_ss = 1/(1 + Kp), with the position constant Kp = lim G(s); a unit ramp (R = 1/s²) leaves 1/Kv, with Kv = lim s·G(s); and a unit parabola t²/2 (R = 1/s³) leaves 1/Ka, with Ka = lim s²·G(s). The system type, the number of free integrators (poles at s = 0) in G(s), decides which of these are finite. A type 0 loop follows a step with a constant error but cannot follow a ramp; a type 1 loop follows a step with no error and a ramp with the error 1/Kv; a type 2 loop follows a ramp with no error and a parabola with the error 1/Ka. Each integrator removes the error for one more input, which is why the integral action of a PI controller removes a step error. All of this assumes a stable closed loop. If a closed-loop pole, a root of D(s) + N(s), is in the right half-plane, the error grows without bound, and the formulas then produce a meaningless number: 0.5/(s − 1) has Kp = −0.5 and 1/(1 + Kp) = 2, yet its closed-loop pole at +0.5 makes the error diverge. A closed-loop pole on the jω axis leaves the error oscillating or drifting, so there is no final value either. This calculator therefore finds the closed-loop poles first, with the same root finder as the site's Root Locus and Bode tools, and gives a number only for a stable loop. It finds the type and the error constants from the coefficients: factors of s are counted exactly from the trailing zeros you type, and no other factor is cancelled, because a factor that N(s) and D(s) share stays in the closed loop. (s − 1)/((s − 1)(s + 2)) looks like 1/(s + 2), but its closed loop has a pole at +1, and the tool reports it as unstable.
Real-World Applications
- •Choosing the loop type: a servo that must hold a fixed setpoint needs a finite or zero step error, one that must track a target moving at constant speed needs a type 1 loop, and constant acceleration a type 2 loop.
- •Sizing a gain for a ramp specification: in a type 1 loop the ramp error is 1/Kv, so e_ss ≤ 0.05 for a unit ramp needs Kv ≥ 20 s⁻¹, the target of the lead-compensator example on the Bode page.
- •Checking homework: the table gives Kp, Kv, Ka and all three errors at once, and says when the closed loop is unstable instead of applying the formula anyway.
- •Seeing what integral action does: add an integrator (a trailing 0 in the denominator) and watch the step error go to zero and the ramp error become finite, as long as the loop stays stable.
- •Catching hidden modes: a factor shared by N(s) and D(s) cancels in G(s) but not in the closed loop. The tool keeps it, and reports the loop as unstable or marginally stable when it is.
Frequently Asked Questions
What is steady-state error?
It is the difference between the reference input and the output that remains after the transient has died away, e_ss = lim(t→∞) e(t). For a stable unity-feedback loop it depends only on the input and on G(s) near s = 0, through the error constants Kp, Kv and Ka.
Why does the calculator give no error for an unstable loop?
The final value theorem holds only when every closed-loop pole is in the left half-plane. In an unstable loop the error grows without bound, so there is no steady-state value, though the formula 1/(1 + Kp) still returns a number: for 0.5/(s − 1) it gives 2, while the error actually grows like e^(0.5t). A loop with a closed-loop pole on the jω axis has no final value either, so the tool reports both cases instead of a number.
What is the system type?
The number of free integrators in the open-loop G(s): its poles at s = 0, less any zeros at s = 0. Type 0 gives a finite step error, type 1 a zero step error and a finite ramp error, type 2 zero step and ramp errors and a finite parabolic error. The tool counts it exactly from the trailing zero coefficients of N(s) and D(s).
What if my input is not a unit step, ramp or parabola?
The loop is linear, so the error scales with the input: a step of size A leaves A/(1 + Kp), a ramp A·t leaves A/Kv and a parabola A·t²/2 leaves A/Ka. Note that the unit parabola here is t²/2 (R = 1/s³); for t² the error doubles.
Does the tool cancel common factors?
Only exact factors of s, and only when it takes the limits; the stability check uses D(s) + N(s) exactly as typed. Any other factor that N(s) and D(s) share stays in the closed loop: (s − 1)/((s − 1)(s + 2)) is reported unstable because its closed loop has a pole at +1, and s/(s(s + 1)) has no steady-state error because its closed loop keeps a pole at s = 0.
How were the results checked?
The site's tests compare the tool with python-control 0.10.2 on 15 loops, including those in the worked examples: the closed-loop poles agree within 10⁻⁹ and Kp, Kv, Ka and the three errors within 10⁻¹² (relative to the value where it is larger than 1). The script that produced the reference values also simulates the error of each stable loop in time and checks every finite error against the simulation's final value.
Worked Examples
Example 1: Type 0: G(s) = 1/(s + 1)
Unity feedback around G(s) = 1/(s + 1): numerator 1, denominator 1 1. Find the error for a unit step, ramp and parabola.
Step error 0.5; ramp and parabolic errors infinite.
Example 2: Type 1: G(s) = 1/(s(s + 1))
Unity feedback around G(s) = 1/(s(s + 1)): numerator 1, denominator 1 1 0.
Step error 0, ramp error 1, parabolic error infinite.
Example 3: Type 2: G(s) = (s + 1)/(s²(s + 2))
Unity feedback around G(s) = (s + 1)/(s²(s + 2)): numerator 1 1, denominator 1 2 0 0.
Step error 0, ramp error 0, parabolic error 2.
Example 4: An unstable loop: G(s) = 0.5/(s − 1), and the same plant at gain 2
Unity feedback around G(s) = 0.5/(s − 1): numerator 0.5, denominator 1 -1.
At gain 0.5: no steady-state error (closed loop unstable). At gain 2: step error −1; ramp and parabolic errors infinite.
Common Mistakes & Tips
- !Applying e_ss = 1/(1 + Kp) without checking the closed loop: an unstable loop has no steady-state error, whatever the formula gives.
- !Counting the type from the closed-loop transfer function. The type is the number of integrators in the open-loop G(s), the forward path of the unity-feedback loop.
- !Using these formulas with a feedback path H(s) ≠ 1 without first rewriting the loop as unity feedback. This calculator assumes unity negative feedback.
- !Cancelling a factor that N(s) and D(s) share before checking stability: the cancelled mode is still in the closed loop.
- !Mixing up the parabolic input t²/2 (R = 1/s³) with t² (R = 2/s³): the second doubles the error.
- !Expecting a type 1 loop to follow a ramp with no error. Its ramp error is 1/Kv: finite, but not zero.
Related Concepts
Root Locus Plotter
How the closed-loop poles move with the gain K, and the gain at which the loop becomes unstable.
Bode Plot Generator
Gain and phase margins of the same loop; its lead-compensator example designs for Kv = 20 s⁻¹.
Pole-Zero Map Calculator
The open-loop poles and zeros of G(s), including the integrators at s = 0 that set the system type.
PID Controller Tuner
Integral action adds a pole at s = 0, raising the type by one; tune the gains here.
Related Calculators
Pole Placement Calculator
Compute state-feedback gain K by Ackermann's formula for SISO systems up to 4th order, with controllability rank check and closed-loop pole verification
Energy Balance Calculator
Open system steady-state energy balance (SFEE): Q − Ws = ΔH + ΔKE + ΔPE with IAPWS-IF97 water and steam enthalpies
PID Controller Tuner
Automatic PID tuning using Ziegler-Nichols (open-loop and closed-loop) and Cohen-Coon methods with step response comparison chart
First Law Solver
Solve Q - W = ΔU (closed) or Q - W = ΔH (open) with IAPWS-IF97 water and steam states and process type selection (adiabatic, isentropic, isothermal, isobaric, isochoric)
Forced Vibration SDOF Calculator
Steady-state amplitude ratio, phase angle, and frequency response for harmonically forced SDOF systems
Mass Balance Calculator
Steady-state material balance for 2–5 stream processes with up to 5 components: solve unknown flow rates from overall and component balances
References & Further Reading
Academic Resources
Industry References
- python-control documentation
The Python Control Systems Library (version 0.10.2) whose feedback(), poles() and dcgain() give the reference values this tool's tests compare against.
Textbooks
- Nise, N. S.. Control Systems Engineering, 8th ed., 2019. Wiley.ISBN 978-1119474227
Chapter 7 (Steady-State Errors) defines the system type and the static error constants Kp, Kv and Ka, and the steady-state errors for step, ramp and parabolic inputs.
- Ogata, K.. Modern Control Engineering, 5th ed., 2010. Pearson.ISBN 978-0136156734
Chapter 5 covers steady-state errors in unity-feedback control systems and the final value theorem's condition that the closed loop be stable.
Add the live Steady-State Error Calculator to your site. Free to embed, with a link back to MegaCalc.