I am learning about PID as a novice to robotics (background in software engineering).
One common problem with PID is that if the PV is below the SP for a long time, integral term will accumulate a large positive value which causes us to overshoot the SP. In particular, after crossing the SP we have to spend time in the negative error region to offset the large positive integral. This overshooting problem seems different from integral windup (which involves bounds on the output) and seems inherent in the integral contribution to PID control.
It occurred to me that this overshooting problem could be solved if we just zero out the integral when the error term changes sign. This prevents us from doing what seems like the silly thing of continuing to increase PV when it is already higher than SP just because historically PV was below SP.
I haven’t seen anyone mention this technique online, so I assume that I am missing something that makes this a bad idea, as it seems very natural to me (another way of stating the intuition is: never move PV farther away from SP).
Please tell me what I’m missing!