Confusion in PID loop?for case of zero error?

No, e(t) being zero does not imply that u(t) is also zero. It only implies that the output of the "P" process is zero.

Remember, the "I" and "D" processes have memory — they depend on the past behavior of e(t). u(t) is zero only if the sum of all three processes is zero.


There can be a couple of scenarios.

Consider a system \$\frac{1}{s (s+1)}\$. A PI controller is \$\frac{0.9 s+0.27}{s}\$. In steady state after the controller has made \$y=r\$, the error \$e\$ and its integral are both zero. In this case when \$e=0\$ then \$u=0\$. If there is a nonzero input going to this system, the output will keep on increasing.

For a system such as\$\frac{1}{s+1}\$ and PI controller \$\frac{1. s+2.0006}{s}\$, the error goes to zero in steady state, but the integral of the error does not. This gets multiplied by 2.0006 and is the control input that maintains the output at the reference value.

The computations below are done in Mathematica. The plots below show the error signals. Both go to zero. However the integral of the one on the left is also zero. The integral of the one on the right is not zero but around 0.5

enter image description here


Take a motor control PID for example. The motor (once running) will have small load perturbations that will cause it to overshoot or undershoot the zero error case, so then the system will react and cause the motor to slightly overshoot in the opposite direction.

If you were to zoom in on a graph of the error, it would be little zig zags across the zero error line. Assuming that it's been tuned properly.

Also u(t) doesn't go to zero when the error is near zero. u(t) goes to the value that makes the error near zero.