No entiendo parte integral del controlador PID. Asumamos este pseudocódigo de Wikipedia:
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
Integral se establece en cero al principio. Y luego en el ciclo está integrando el error con el tiempo. Cuando realizo un cambio (positivo) en el punto de ajuste, el error se volverá positivo y la integral "comerá" los valores a lo largo del tiempo (desde el principio). Pero lo que no entiendo es que, cuando el error se estabiliza de nuevo a cero, la parte integral seguirá teniendo algún valor (errores integrados a lo largo del tiempo) y seguirá contribuyendo al valor de salida del controlador, pero no debería, porque si el error es cero, la salida de PID también debería ser cero, ¿verdad?
¿Alguien puede explicarme eso por favor?