PID Controller Simulator
A simple interactive simulation of a first-order process, an actuator with output saturation, and a PID controller. Tune the controller parameters and observe how the process responds.
Process Value (PV)
0.0
Setpoint (SP)
50.0
Control Output (CO)
0.0
Error (SP–PV)
50.0
t = 0 s
Setpoint
PID Parameters
Process Model
Actuator
How it works
| Block | Model |
|---|---|
| PID Controller | Standard parallel form: \(u = K_p e + K_i \int e \, dt + K_d \dot{e}\), with anti-windup (conditional integration) |
| Actuator | Output rate limiter (max %/s) followed by a hard saturation clamp (min/max %) |
| Process | First-order lag: \(\tau \dot{x} = K_{proc} \cdot u_{delayed} - x\), with configurable dead time θ |
| SIMC auto-tune | \(\tau_c = \max(0.1\tau,\, 0.8\theta)\), then \(K_p = \frac{1}{K}\frac{\tau}{\tau_c+\theta}\), \(T_i = \min(\tau,\, 4(\tau_c+\theta))\), \(T_d = \theta/2\) |
| ZN OL auto-tune | \(K_p = \frac{1.2}{K}\frac{\tau}{\theta}\), \(T_i = 2\theta\), \(T_d = 0.5\theta\) (requires \(\theta > 0\)) |
Tips for tuning
- Start with Ki = 0 and Kd = 0 and increase Kp until the response is fast but not too oscillatory.
- Add a small Ki to eliminate steady-state offset.
- Add a small Kd to reduce overshoot — watch out for noise amplification.
- Increase dead time θ and/or τ to make the process harder to control.