【发布时间】:2012-11-24 15:04:58
【问题描述】:
我不了解 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
Integral 在开始时设置为零。然后在循环中,它会随着时间的推移整合错误。当我对测量值或设定值进行(正)更改时,误差将变为正,并且积分将随着时间的推移(从一开始)“吃掉”这些值。但是我不明白的是,当误差稳定回零时,积分部分仍然会有一些值(随着时间的推移积分误差)并且仍然会有助于控制器的输出值,但它不应该。
有人可以解释一下吗?
【问题讨论】:
-
对于任何感兴趣的人,我实现了这个精确的算法来控制循环速度。 stackoverflow.com/questions/38377820/…
标签: controller integral control-theory pid-controller