ROBOTICS 101Concept explainer

PID Tuning and Integral Windup

A classic way to tune PID is the Ziegler-Nichols method: raise the P gain until the system oscillates steadily, note that gain and the oscillation period, then compute all three gains from a table. Real motors also have limits, and when the output saturates, the integral term keeps growing, called windup.

Ziegler-Nichols

With only P control, raise \(K_p\) until the output oscillates steadily. Call that gain \(K_u\) and the period \(T_u\). For this plant, \(G(s) = 1/(s+1)^3\), they are \(K_u = 8\) and \(T_u = 2\pi/\sqrt{3} \approx 3.63\) s. The classic PID rule is

$$K_p = 0.6\,K_u \qquad K_i = \frac{1.2\,K_u}{T_u} \qquad K_d = 0.075\,K_u T_u$$

Integral windup

When the command hits the actuator limit, the system responds more slowly than the controller expects. The integral term keeps adding up error the whole time. When the output finally reaches the target, the large stored integral pushes it far past. Anti-windup stops integrating while saturated.

What to notice

Press "Find ultimate gain" to see the steady oscillation at \(K_p = 8\). Ziegler-Nichols gains are aggressive, giving a quick response with about 25 percent overshoot, a starting point rather than a final answer. Lower the actuator limit and the overshoot grows a lot. Check anti-windup and most of it disappears.