我不理解PID控制器的积分部分。假设这是来自维基百科的伪代码:
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
一开始积分被设为零。然后在循环中,它将随时间积分误差。当我对测量值或设定值做出(正面的)改变时,误差将变为正数,并且积分将“吃掉”(从一开始)经过一段时间的值。但我不理解的是,当误差回稳到零时,积分部分仍然会有一些值(随时间积分的误差),并且仍会对控制器的输出值产生贡献,但它不应该这样。
有人能给我解释一下吗?