PID, saturation and windup
P reacts to error now, I remembers error, D anticipates measured motion.
First, picture it
P pushes harder when you are far away. I keeps pushing if you remain a little short. D damps fast motion. But an actuator has a maximum: if I keeps accumulating while output is clipped, the controller may overshoot badly after saturation clears.
What the model says
A practical PID differentiates the measured output to avoid a derivative kick on target steps, filters that derivative because sensors are noisy, and limits the applied input. Anti-windup stops or corrects integration when the actuator cannot deliver the requested command. In the lab, compare pre-saturation command with applied input and compare otherwise identical runs with anti-windup on and off.
u*=K_p e+K_i∫e dt−K_d d(y_filtered)/dt; u=clip(u*,u_min,u_max)The lab's implemented derivative filter and anti-windup rule are documented with the model.
Make it concrete
Set a demanding motor speed target near the voltage limit. Increase Ki, then compare with anti-windup enabled. Watch the integral contribution and how long the actual voltage stays clipped.
Compare anti-windup'More D means more damping' is not universal; noisy measurements, filter settings and sample period change the outcome.
Check your understanding+
Why can the controller command differ from the applied motor voltage?
The actuator voltage limit clips the command; anti-windup addresses the integral state during that saturation.