这几天在学PID控制,在网上扒了很多关于PID控制的文章,还有一些高手写的PID控制算法,读书时数学
不好,都还给老师了,发现了一个问题,被搞胡了,盼求高手解释
总结发现网上通用两个PID公式,一个是以书本介绍的公式,如下
Uk=KP*[e(n)-e(n-1)]+KI*e(n)+KD*[e(n)-2*e(n-1)+e(n-2)]
比例系数*(当前偏差-上次偏差)+积分系数*当前偏差+微分系数*(当前偏差-2*上次偏差+上上次偏差)
这个是很多书本上给出的增量式PID算法公式
然后增量式结果 UK+当前坐标 就是位置式公式
又发现很多高手写的PID算法却是用的下面这个公式
kp*e(n)+ki*[e(n)+e(n+1)+e(n+2)+......+e(n+n)]+kd*[e(n)-e(n+1)]
比例系数*当前偏差+积分系数*历次偏差的累加+微分系数*(当前偏差-上次偏差)
这个公式按许多扒来的程序流程分析应该是直接的位置式算法,通常位置式结果应该直接赋值给PWM寄存器的,
但仍然有部分程序作者把这个算法做增量在处理,还有,这两公式关于e(n)-e(n+1)这项,就是当前速度,所在的
位置,一个在比例项,一个在微分项,现在我已经完全搞不清了,求懂的大神赐教,谢谢