Я не понимаю интегральную часть ПИД-регулятора. Предположим, что этот псевдокод из Википедии:
previous_error = 0
integral = 0
start:
error = setpoint - measured_value
integral = integral + error*dt
derivative = (error - previous_error)/dt
output = Kp*error + Ki*integral + Kd*derivative
previous_error = error
wait(dt)
goto start
Интеграл устанавливается в ноль в начале. А затем в цикле он интегрирует ошибку за время. Когда я делаю (положительное) изменение измеренного значения или заданного значения, ошибка становится положительной, и интеграл будет "съедать" значения за время (с самого начала). Но я не понимаю, когда ошибка стабилизируется до нуля, интегральная часть по-прежнему будет иметь некоторое значение (интегрированные ошибки с течением времени) и будет по-прежнему способствовать выходному значению контроллера, но это не должно быть.
Может кто-нибудь объяснить мне, пожалуйста?