2

PID(比例积分微分)中的 I 是最后几个先前误差的总和,仅由它的增益加权。

使用 error(-1) 表示先前的错误,使用 error(-2) 表示之前的错误等...“I”可以描述为:

I = (error(-1) + error(-2) + error(-3) + error(-4) 等等...) * I_gain

为什么在设计 PID 时“我”没有设计为将重要性倾斜到过去,例如:

I = (error(-1) + (error(-2) * 0.9) + (error(-3) * 0.81) + (error(-4) * 0.729) + etc...) * I_gain

编辑:改写

4

1 回答 1

3

积分项是所有过去误差的总和。您只需在每个时间步将错误添加到“积分器”。如果需要对此进行限制,则在超出范围时将其限制为最小值或最大值。然后将此累积值复制到您的输出中,并添加比例和微分项,并在必要时再次钳位输出。

导数项是当前误差和先前误差的差值(误差的变化率)。P 当然只是与误差成正比。

错误 = 参考 - new_measurement
I += kI * 错误
导数 = err - old_err
输出 = I - kD * 导数 + kP * err
old_err = 错误

你有它。当然省略了限制。

一旦控制器达到参考值,误差将为零,积分器将停止变化。噪声自然会使其反弹一点,但它会保持在满足您的目标所需的稳态值,而 P 和 D 项完成大部分工作以减少瞬态。

请注意,在稳态条件下,I 项是唯一提供任何输出的东西。如果控制已达到参考值并且这需要非零输出,则它仅由积分器提供,因为误差为零。如果 I 项使用加权误差,它将开始衰减回零,并且不会根据需要维持输出。

于 2011-03-21T00:49:04.187 回答