Control engineering · Zacher/Reuter, Regelungstechnik für Ingenieure, 17. Aufl. 2024, Abschn. 4.2 und 8.1

Closed-loop step response: overshoot, rise time, settling time and steady-state error

Simulate the setpoint step response of a control loop from plant (PTn, integrating, oscillatory, with dead time) and P, PI, PD or PID controller and read overshoot, rise time, settling time and steady-state error.

G(s)Zacher/Reuter 2024
01

Plant and controller

G₀(s) = [6.4·s + 0.8] / [240·s^3 + 88·s^2 + 8·s] · e^(−2 s · s)

All views update immediately. Times in the selected unit, angular frequencies in rad/s (= 1/s).

02

Key figures

K_PR = 1

Stability limit at K_PR,krit ≈ 4.936 · range 0.014814.808

Closed loop
stable
ω_dGain crossover: |G₀(jω_d)| = 1 (0 dB).
0.0983 rad/s
φ_RdPhase margin φ_Rd = φ₀(ω_d) + 180° (Zacher/Reuter eq. 6.65). Recommended 40…70°.
60.2°
ω_πPhase crossover: φ₀(ω_π) = −180°; T_crit = 2π/ω_π.
0.3273 rad/s · T_krit = 19.196 s
A_RGain margin A_R = 1/|G₀(jω_π)| as factor and in dB; K_crit = K·A_R.
4.936 = 13.9 dB
x_mOvershoot: first maximum above the steady-state value in percent.
7.1 %
T_anRise time 10 % → 90 %.
11.612 s
T_ausSettling time until the response stays within ±2 % (±5 % in brackets).
33.63 s (29.139 s)
e(∞)Steady-state error e(∞) = w₀ − x(∞) for w₀ = 1.
0
Closed-loop step response x(t) for w₀ = 1
05010015000.511.5x(t)t [s]w₀ = 1
Move the pointer over the curve to read values.

The open loop contains an integrator – its step response grows without bound and is not shown.

Linked views – same loop, same gain
Method

What is calculated?

The unity-feedback loop has the reference transfer function G_w(s) = G₀(s)/(1 + G₀(s)) (Zacher/Reuter eq. 6.22). Instead of partial fractions the calculator integrates the corresponding state-space model numerically (fourth-order Runge–Kutta) and includes the dead time via a delay buffer in the feedback – so dead time, integral action and unstable cases are handled alike. From x(t) follow the performance criteria of sec. 8.1: overshoot x_m as the percentage deviation of the first maximum from the steady-state value, rise time T_an as the 10 % to 90 % time, settling time T_aus as the instant from which x(t) stays inside the ±2 % (or ±5 %) band, and steady-state error e(∞) = w₀ − x(∞) from the final-value theorem: e(∞) = w₀/(1 + K₀) for proportional open-loop behaviour, 0 with integral action (sec. 2.6.2).

Equations

G_w(s) = G₀(s)/(1 + G₀(s)) (Gl. 6.22)

x(∞) = w₀·K₀/(1 + K₀) mit K₀ = G₀(0); bei I-Anteil x(∞) = w₀

x_m = (x_max − x(∞))/x(∞)·100 %

T_an: 10 % → 90 % von x(∞); T_aus: |x − x(∞)| ≤ 2 % bzw. 5 %

Polpaar: x_m = e^(−π·D/√(1−D²)) bei reinem PT2-Verhalten (Kap. 8)

Limits

Assumptions and typical mistakes

Linear simulation without actuator limits, anti-windup, measurement noise or derivative filter; real controllers behave differently under saturation. Disturbance steps are not simulated (setpoint response only). The simulation window is estimated from the poles; very slow and very fast poles together (stiff systems) increase computation time.

Referring overshoot to the setpoint instead of the steady-state value (they differ for a P controller without integral action). Confusing settling time with rise time. Forgetting the manipulated variable: a loop with a nice step response may demand an unrealistically large actuator signal.

Understanding the diagrams

What the five diagrams show and what they are used for

All views arise from the same transfer function G₀(s) and the same gain. They show the same system from different angles – time domain, frequency domain and s-plane – and lead to the same stability statement. The highlighted diagram is the main plot of this page; the others are linked below.

Pole–zero map (s-plane)

What it shows: The complex s-plane with real part σ (horizontal, in 1/s) and imaginary part jω (vertical). Crosses are the poles of the open loop G₀(s), circles its zeros, filled dots the closed-loop poles at the current gain. The left half plane is shaded green.

Used for: Quick judgement of how a system responds to an excitation: each pole stands for a natural-motion term e^(σt)·cos(ωt). Poles left of the axis decay (stable), right of it grow (unstable), on the axis oscillate permanently. Distance from the axis sets the decay time, the angle to the negative real axis the damping.

How to read it: The further left a pole, the faster its share decays (T = 1/|σ|). The larger the imaginary part, the higher the oscillation frequency. A pole pair on a straight line through the origin has constant damping D = cos of the angle to the negative real axis – 45° corresponds to D ≈ 0.7. The closed loop is stable when all filled dots lie on the left.

Open the calculator with this main plot

Bode plot

What it shows: Two curves over logarithmically scaled angular frequency ω: the magnitude |G₀(jω)| in decibels (20·log) on top, the phase angle φ₀ in degrees below. Both describe how strongly and with what delay the open loop transmits a sinusoidal signal of frequency ω.

Used for: Stability proof and controller design in the frequency domain: at the crossover ω_d (0 dB) you read the phase margin, at the phase crossover ω_π (−180°) the gain margin. Because series elements simply add in dB and degrees, you immediately see which element (time constant, integrator, dead time, D action) consumes or supplies margin.

How to read it: Bends in the magnitude lie at the corner frequencies 1/T; each pole lowers the slope by 20 dB/decade and the phase by 90°, each zero raises both, dead time only rotates the phase. A gain change shifts the magnitude in parallel – the phase stays. Stable (simplified Nyquist criterion): phase at ω_d above −180°. Rules of thumb: φ_R 40…70°, A_R ≈ 6…12 dB.

Open the calculator with this main plot

Nyquist plot

What it shows: The frequency response G₀(jω) as a curve in the complex plane: one point with real and imaginary part for each frequency ω; ω runs along the curve from 0 to ∞. The critical point (−1, j0) and the unit circle |G₀| = 1 are drawn in.

Used for: The most general stability criterion – it also holds with dead time and for unstable plants where Hurwitz fails. It also shows intuitively why gain (curve is stretched) and dead time (curve curls inward) tip the loop over.

How to read it: For stable plants with at most a double pole at the origin: the curve must leave the critical point −1 on its left. The intersection with the negative real axis shows the gain margin (distance to −1), the intersection with the unit circle the phase margin (angle to the negative real axis). With integrators the curve starts at infinity (−90° per integrator); the calculator shows the region around −1.

Open the calculator with this main plot

Root locus

What it shows: The paths along which the closed-loop poles travel in the s-plane as the gain K is raised from 0 to ∞. They start at the open-loop poles (×) and end in its zeros (○) or run to infinity along the asymptotes. Breakaway points and imaginary-axis crossings are marked.

Used for: Controller design by pole placement: choose K so the dominant pole pair has the desired damping and speed, and see at once from which gain the loop becomes unstable (K_crit). It also shows whether an additional D term (zero) pulls the branches to the left.

How to read it: Points near the crosses belong to small K, distant ones to large K; the marker shows the position at the selected gain. Where two branches meet on the real axis (breakaway point), oscillation begins. Where a branch crosses the imaginary axis lies the stability limit with the sustained-oscillation frequency ω_crit. If n − m ≥ 3 branches go to infinity, the loop inevitably becomes unstable at large K.

Open the calculator with this main plot

Step responsethis page

What it shows: The time course of the controlled variable x(t) after the setpoint is switched from 0 to 1 at time 0 (closed loop) – optionally the open-loop response to a step of the manipulated variable. Dashed: steady-state value, shaded: ±2 % tolerance band.

Used for: The most intuitive assessment of control performance and the proof of requirements: overshoot, rise time, settling time and steady-state error can be read directly and compared with specifications. All other diagrams are ultimately tools for shaping this curve.

How to read it: Overshoot: first maximum above the steady-state value (16 % at D = 0.5, 4.3 % at D = 0.707, 0 % aperiodic). Rise time: 10 % → 90 %. Settling time: from when the curve stays inside the band. If the curve ends below the setpoint, integral action is missing (steady-state error). Growing oscillations mean instability – the same statement as poles right of the axis or a negative phase margin.

Inputs

What you enter – and where the values come from

Plant type
Selects the plant form: 'lags' for P, I or PT plants built from individual time constants (the common case of Zacher/Reuter ch. 3), 'oscillatory PT2' for a denominator 1 + 2·D·T₀·s + T₀²·s² (spring–mass systems, RLC circuits) and 'polynomial' for arbitrary numerator/denominator coefficients when the transfer function is already expanded.
Plant gain K_S
Static gain of the plant: change of the controlled variable per unit of manipulated variable at steady state (dimensionless or e.g. K/% for temperature control). For integrating plants K_S is the integral gain K_IS in 1/s. Obtained from a step test (final value ÷ step size) or modelling; typically 0.1 to 10, must be > 0.
Integrators
Number of free integrators (poles at s = 0) of the plant: 0 for self-regulating plants (temperature, pressure), 1 for non-self-regulating plants (level, position with a velocity actuator), 2 for double integrators (position with a force actuator). Each integrator shifts the phase by −90°.
Time constants T₁, T₂, T₃
Lag time constants of the (1 + s·T) denominator factors in the selected time unit. 0 means 'not present'. From a step response (63 % time for PT1, see the PT1 time-constant calculator) or component data (RC, mass/damping). Order does not matter; typical values range from milliseconds (electronics) to minutes (thermal processes).
Numerator time constant Tz
Optional (1 + s·Tz) factor in the numerator, i.e. a zero at s = −1/Tz. It appears in plants with lead behaviour (e.g. sensors with a high-pass share). 0 = no zero.
Natural time T₀ and damping ratio D
Parameters of the oscillatory PT2 element per Zacher/Reuter sec. 3.5: T₀ = 1/ω₀ is the reciprocal of the undamped natural angular frequency, D the dimensionless damping ratio. D < 1 gives complex conjugate poles (oscillation), D ≥ 1 two real poles. From a decay test (see the logarithmic-decrement calculator) or component data.
Numerator/denominator polynomial
Coefficients in ascending powers of s, separated by comma or space: '1, 3, 2' means 1 + 3·s + 2·s². The numerator degree must not exceed the denominator degree. Use this form for transfer functions that are already computed or exported from simulation tools.
Dead time Tt
Transport delay e^(−s·Tt): the output reacts only after Tt to an input change (conveyor, pipeline, sampling). It leaves the magnitude unchanged but rotates the phase by −ω·Tt (in radians) and is therefore the main enemy of stability. 0 = no dead time. A root locus is only possible without dead time.
Controller type
'no controller' analyses the plant alone (G₀ = G_S). P, PI, PD and PID follow the additive form G_R(s) = K_PR·(1 + 1/(s·Tn) + s·Tv) of Zacher/Reuter sec. 4.3 with an ideal derivative term. Integral action removes the steady-state error; derivative action adds phase lead.
Controller gain K_PR
Proportional gain of the controller, dimensionless or in manipulated units per controlled unit. The slider below the results varies exactly this value (K_S without controller), so poles, curves and step response move live. Must be > 0.
Reset time Tn
Time after which the integral share has caught up with the proportional share for a constant error (Zacher/Reuter sec. 4.3.3). Small Tn = strong integration but less phase margin. PI/PID only.
Derivative time Tv
Weighting of the error rate in the derivative share (Zacher/Reuter sec. 4.3.5). Adds phase lead near ω = 1/Tv. The calculator uses an ideal derivative without a filter; real controllers need an additional filter time constant. PD/PID only, ≥ 0.
Time unit
Unit of all time constants and the dead time (ms, s, min, h). Internally everything is computed in seconds; angular frequencies are shown in rad/s.
Results

What each value means

Step response x(t)
Controlled variable after a unit step of the setpoint w₀ = 1 (or of the manipulated variable in open loop). Hover or touch the curve to read time and value.
Overshoot x_m
Percentage by which the first maximum exceeds the steady-state value. Zacher/Reuter: 4.3 % for the magnitude optimum (D = 0.707), 43 % for the symmetric optimum with k = 4, 20 % for the CHR setting '20 % overshoot'. 0 % means aperiodic.
Rise time T_an
Time from the 10 % to the 90 % value. It grows with dead time and falls with gain. Rule of thumb: T_an ≈ 1.5…2/ω_d (crossover frequency in the Bode plot).
Settling time T_aus (2 % / 5 %)
Time from which the controlled variable stays permanently inside the tolerance band around x(∞). It is set by the slowest closed-loop pole (≈ 4/|σ| for 2 %). 'Not reached' means not yet settled within the simulation window.
Steady-state error e(∞)
Difference between setpoint and final value. With a P controller on a P plant e(∞) = w₀/(1 + K_PR·K_S) remains (Zacher/Reuter sec. 2.6.2); with integral action in controller or plant e(∞) = 0.
Example

Worked example from the literature

Zacher/Reuter Beispiel 8.3: PT2 plant with dead time (K_S = 0.8, T₁ = 5 s, T₂ = 6 s, Tt = 2 s), PI controller by Ziegler–Nichols with K_PR = 3.55 and Tn = 12.45 s. The step response overshoots by roughly 50 % and settles after about 60 s (4 % band); with the refined values K_PR = 1, Tn = 8 s the overshoot drops to about 10 % with T_aus ≈ 35 s – as in Bild 8.10.

Context

What this calculator is for

Assessing a controller setting before commissioning, comparing tuning rules, verifying requirements such as 'at most 10 % overshoot' or 'inside the tolerance band within 30 s', and explaining the effect of P, I and D action in teaching.

How to proceed

  1. Enter plant and controller and check the curve for overshoot and settling.
  2. Switch between closed and open loop to see what the controller achieves.
  3. Vary the gain with the slider: higher K is faster but more oscillatory; the poles travel in the s-plane accordingly.
  4. Take settings from the tuning-rule calculator and compare the response.
Source

Technical basis

Zacher/Reuter, Regelungstechnik für Ingenieure, 17th ed. 2024: sec. 2.6.2 steady-state error, sec. 4.2 setpoint and disturbance behaviour (eq. 4.13), sec. 8.1 time-domain performance criteria, Beispiel 8.3 and Bild 8.10. Dubbel, ch. X, sec. 5.3 (overshoot, settling time, rise time).

The sources support the equations and worked examples; the reference examples are recomputed in the calculator's automated tests. The calculator does not replace a simulation with the complete nonlinear plant model.

Last updated: 2026-09-20

FAQ

Frequently asked questions

What is a transfer function?

G(s) = output(s)/input(s) describes a linear time-invariant element in the Laplace domain. The denominator holds the natural dynamics (poles), the numerator the input dynamics (zeros). With s = jω it becomes the frequency response from which Bode and Nyquist plots follow.

Why does the slider change only K_PR or K_S?

Loop gain is the parameter practitioners adjust first and the only one that shifts magnitude, root locus and step response proportionally without changing the phase curve. Change all other parameters in the input fields; the display updates immediately as well.

Why does a P controller leave an error?

A P controller needs a control error to produce any output. At steady state e(∞) = w₀/(1 + K_PR·K_S); only integral action (in controller or plant) drives e to zero (Zacher/Reuter sec. 2.6.2).

How is overshoot related to damping?

For a dominant pole pair x_m = e^(−π·D/√(1 − D²)): D = 0.5 gives 16 %, D = 0.707 gives 4.3 %, D ≥ 1 gives no overshoot. Zeros and further poles change these values; the calculator shows the simulated, not the idealised overshoot.

Related calculators

More in the control-engineering cluster