P比例proportion
I积分integration
D微分differentiation
驾船航行,开始时速度0,目标是要在100公里/时匀速行驶,逆水速度10公里/时,现在用PID控制船加速,每个单位时对速度采样
开始,error是100公里/时(100-0),乘以比例系数kp,就是比例项的值,即kp*error(t),设kp为0.5,则当船水达80公里时,误差20公里/时,乘以kp比例项的值是10,等于逆水速度,永远达不到100公里/时
于是,引入积分项,前面每测得到的速度距离目标速度100之间的差的总和乘以ki,就是积分项的值,即ki*(error(1)+error(2)+……+error(t)),理想情况下,在目标速度附近振动若干次后,最后在100公里/时匀速,积分项不再变化,值且与逆水速度相等
最后,引入微分项是为了降低振荡幅度(积分项可能会超过目标速度,上下波动),第t轮计算的微分项是kd*(error(t)-error(t-1)),就是取最近两次误差之差乘以系数kd,注意符号一定是向靠近目标速度的方向(若现在速度高于目标速度为负号,低于目标速度为正号)
综上pid(t)=kp*error(t)+ki*(error(1)+error(2)+……+error(t))+kd*(error(t)-error(t-1)),其中error(t)=v(target)-v(t)