Control Step Response Simulator Back
Control Engineering

Control System Step Response Simulator

Adjust the natural angular frequency ωn and damping ratio ζ with sliders to visualize the step response of a second-order system in real time. Compare overdamped, critically damped and underdamped cases, and watch the s-plane poles move.

System Parameters
ωn — Natural angular freq. (rad/s)
rad/s
ζ — Damping ratio
K — Gain
Results
Rise time (s)
Overshoot %
Settling time 2% (s)
Damped freq. ωd
Steady gain K
Step Response
s-plane (pole locations)
Theory & Key Formulas

$$G(s)=\frac{K\omega_n^2}{s^2+2\zeta\omega_n s+\omega_n^2}$$

$\omega_d = \omega_n\sqrt{1-\zeta^2}$ (underdamped)

What is a step response?

🙋
What does the "damping ratio ζ" actually do to the response? I keep seeing it in textbooks but it's hard to picture.
🎓
Roughly, ζ controls how quickly oscillations die out. Try setting the ζ slider above to 0.2 — the curve rings wildly. That's underdamped. Now slide it to 1.5 and the response just creeps to the setpoint with no oscillation. That's overdamped. Playing with the slider tells you everything in a few seconds.
🙋
Oh, I see! ζ=1 looks like the smoothest rise. Is that "critically damped"? Which value do real designers actually use?
🎓
Exactly — ζ=1 is critical damping. In practice, robotic arm servos, EV traction motors and disk-drive head positioners often target ζ≈0.7. That gives about 4.3% overshoot but a fast rise — a good speed-vs-overshoot trade-off. Try ωn larger and ζ around 0.7 to feel why.
🙋
The poles on the s-plane move along with the curve shape. What's the link between them?
🎓
The real part of the pole sets how fast oscillations decay; the imaginary part sets how fast they oscillate. As ζ shrinks the poles move upward (larger imaginary part) and the response oscillates faster. As ωn grows, the poles move further from the origin and the whole response speeds up. Watch both panels while you slide — that's the fastest path to intuition.

Frequently asked questions

Make sure JavaScript is enabled. Older browsers or aggressive ad blockers can also slow things down. The latest Chrome, Edge or Firefox all work. If a hard reload doesn't help, clear the site cache.
Underdamped (ζ<1) overshoots and oscillates. Critical (ζ=1) settles fastest with no overshoot. Overdamped (ζ>1) rises slowly and monotonically. The s-plane gives the same information: complex pole pairs ⇒ underdamped, real coincident pole ⇒ critical, two distinct real poles ⇒ overdamped.
If every pole sits in the left half-plane (real part < 0) the response decays and the system is stable. Any pole with a positive real part causes the response to diverge.
Use them for trend-spotting and parameter sensitivity. Real systems have nonlinearities, sensor noise and high-order dynamics not modeled here. For final design, run a more detailed model and validate with hardware tests.

Real-world applications

Robotic servo control: ζ and ωn are tuned to balance fast positioning and minimal overshoot. Excessive overshoot can damage workpieces, so designers usually target ζ around 0.7.

Vehicle suspensions: A car body on springs and dampers is essentially a 2nd-order system. ζ corresponds to the damper, ωn to the spring rate; together they shape ride comfort and tire grip.

Aircraft autopilot loops: Pitch and roll attitude control are often modeled as 2nd-order. The pole locations must keep enough margin from the imaginary axis so gust disturbances do not destabilize the loop.

Active analog filters: 2nd-order transfer functions appear in Sallen-Key and Multiple-Feedback filter topologies. Choosing ζ=1/√2 yields a maximally flat (Butterworth) magnitude response.

Common misconceptions

One common pitfall is assuming "smaller ζ is always faster." The initial rise is indeed sharper at ζ=0.2, but the time the signal spends ringing inside the ±2% band is much longer than at ζ=0.7 — net settling time is worse. Another is reading ωn as a frequency in Hz; it isn't. The actual oscillation frequency is $\omega_d=\omega_n\sqrt{1-\zeta^2}$ rad/s, e.g. ζ=0.5 with ωn=10 gives ωd≈8.66 rad/s, not 10 Hz. Finally, this model is ideal: real plants have friction, backlash and saturation, so a setting that looks fine here may still ring on hardware.

How to Use

  1. Set natural frequency ωn (rad/s) using the slider—typical range 1–50 rad/s for industrial servo systems
  2. Adjust damping ratio ζ between 0 and 2: underdamped (ζ<1) exhibits overshoot, critically damped (ζ=1) reaches setpoint fastest without ringing, overdamped (ζ>1) sluggish response
  3. Configure steady-state gain K to match your system's DC gain—for a 4–20 mA pneumatic positioner, K typically equals 1.0
  4. Observe rise time, overshoot percentage, and 2% settling time update in real-time as parameters change

Worked Example

A temperature control loop with ωn=3 rad/s and ζ=0.7 produces rise time≈0.95 s, overshoot≈4.6%, and settling time≈2.1 s with K=1.0. Increasing ζ to 0.85 eliminates oscillation but extends rise time to 1.2 s. For a PLC-based DC motor speed controller, ωn=8 rad/s with ζ=0.6 yields damped frequency ωd=6.4 rad/s, permitting fast transient response (0.52 s rise) while maintaining <16% overshoot acceptable for machinery start-up.

Practical Notes

  1. Underdamped systems (ζ=0.5) suit setpoint tracking in HVAC; overshoot <10% meets comfort criteria but induces valve cycling wear—increase ζ to 0.65 to reduce maintenance
  2. For safety-critical hydraulic actuators, enforce ζ≥0.8 to guarantee no ringing that could trigger false proximity sensors
  3. Steady-state gain K mismatch causes offset: if your sensor output is 0–10 V but loop expects 0–5 V, set K=0.5 to prevent integral windup
  4. Damped frequency ωd determines control loop sampling rate—set controller sample time <0.1/ωd to avoid aliasing in embedded systems