2011-03-20 156 views
1

该我的我是最后几个以前的错误的总和,只能通过它的收益权。在PID(比例积分微分)的比例积分微分

使用错误(-1)来表示以前的错误,错误(-2)为表示在此之前的等错误... 'I' 可以被描述为:

I =(错误(-1 )+误差(-2)+误差(-3)+误差(-4)等...)* I_GAIN

为什么当PID被设计为 '我' 而不是替代设计为坡关的重要性成为过去,例如:

I =(错误(-1)+(错误(-2)* 0.9)+(错误(-3)* 0.81)+(错误(-4)* 0.729)+等。 )* I_gain

编辑:reworded

+3

我认为这是题外话题。尝试http://math.stackexchange.com/ – CesarGon 2011-03-20 23:02:59

+3

我认为最后几个错误的总和是积分。导数是错误的变化,而不是总和。导数“会减弱”系统,如果系数太低,系统会变得不稳定,因此您的积分不会逐渐减少。 – Faken 2011-03-20 23:03:39

+0

谢谢,您的权利已更正。令人讨厌的是它可能会在任何一个堆栈站点中出现,如果我在这里没有得到答案,我可能会在数学站点重新发布。你是否在说,积分不会减少过去重要性的错误是因为D的影响? – alan2here 2011-03-20 23:14:58

回答

2

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

导数项是本和先前的错误(错误的变化率)之间的差。 P当然是正比于错误。

 
err = reference - new_measurement 
I += kI * err 
Derivative = err - old_err 
output = I - kD * Derivative + kP * err 
old_err = err 

在那里,你有它。当然省略了限制。

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

请注意,在一个稳定状态,在我任期提供任何输出的唯一的事情。如果控制器已达到参考值并且需要非零输出,则由于误差将为零,所以仅由积分器提供。如果I术语使用加权误差,则它将开始衰减回零,并且不根据需要维持输出。

+0

我不认为这意味着以前的所有错误,在你停止计数的一些错误之前,例如前面的20个错误,我们被指示使用我们'I'中的最后4个错误。 – alan2here 2011-03-21 01:24:47

+1

谁指示你这样做? – phkahler 2011-03-21 12:24:38

+0

这不是最后4个,我已经重新评估过,它是值的最后10秒(更像是数百),但是每个人都说'不'会永远回去,因为这不是一个明智的PID方法。 – alan2here 2011-03-21 20:32:48