Я не понимаю неотъемлемую часть ПИД-регулятора. Давайте предположим этот псевдокод из Википедии:
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
Интеграл устанавливается в ноль в начале. И затем в цикле интегрируется ошибка с течением времени. Когда я произвожу (положительное) изменение уставки, ошибка станет положительной, и интеграл «съест» значения с течением времени (с начала). Но что я не понимаю, так это то, что, когда ошибка стабилизируется обратно в ноль, интегральная часть все еще будет иметь некоторое значение (интегрированные ошибки во времени) и все равно будет вносить вклад в выходное значение контроллера, но это не должно происходить, потому что, если ошибка равна нулю, вывод PID также должен быть нулевым, верно?
Может кто-нибудь объяснить мне это, пожалуйста?