目录
前言
本人对应PID算法只算初窥门径,对于更加深入的学习不足,这里参考了很多大佬的博客,加上我自己对于PID算法的总结,希望这篇博客能对你的PID学习之路有所帮助。如有不足之处,欢迎进行讨论学习。
一、PID的原理
PID 是“比例-积分-微分”(Proportional-Integral-Derivative)的缩写,是一种常见的反馈控制算法,广泛应用于工业控制系统和各种自动化设备中。PID 控制器通过计算偏差或误差值(即期望输出与实际输出之间的差值),并应用比例(P)、积分(I)和微分(D)三种控制作用来调整控制量,以达到期望的控制效果。
- 比例(P):这部分负责对当前的误差进行响应。比例增益越大,控制器对误差的反应越强烈,但过高的比例增益可能导致系统振荡。
- 积分(I):积分作用累积误差随时间的变化,用于消除稳态误差,确保系统的长期准确性。积分作用太强可能会导致系统响应缓慢和过冲。
- 微分(D):微分作用预测误差的趋势,对误差的变化率进行响应。它有助于减少系统的超调和振荡,提高系统的稳定性。微分作用较强会降低响应速度。
个人理解P是主要的动力来源,但是由于其作为一个百分比很多时候无法到达目标值,即总是存在一个误差,称为稳态误差。这时候就需要I来上场,用以消除这个总是存在的误差,使系统能够达到目标值。但是当动力较大而阻力较弱,整个系统处于不平衡的状态最终导致系统的振荡,而D的作用相当于系统的阻力,阻力与动力平衡后,系统就能趋于稳定的状态。
1、位置式
(1)位置式流程图
从图上可以看出PID系统,输入为目标值、反馈值,输出是电机转动的PWM。并且与增量式不同,位置式的反馈值是累计的脉冲值。当到达目标值后电机会停止运动。但是如果反馈值是每次的脉冲值就会导致电机一直运动。
(2)位置式公式
e(k)/e(i) 误差值 = 目标值 - 反馈值
e(k - 1) 上一次的误差值
(3)位置式使用注意事项
增量式算法不需要做累加,控制量增量的确定仅与最近几次偏差采样值有关,计算误差对控制 量计算的影响较小。而位置式算法要用到过去偏差的累加值,容易产生较大的累加误差。
位置式PID需要有积分限幅和输出限幅,积分限幅用来防止积分饱和,输出限幅用来保护电机,而增量式只需要输出限幅
2、增量式
(1)增量式流程图
(2)增量式公式
e(k) 误差值 = 目标值 - 反馈值
e(k - 1) 上一次的误差值
e(k - 2) 上上一次的误差值
增量式PID根据公式可以很好地看出,一旦确定了 KP、TI 、TD,只要使用前后三次测量值的偏差, 即可由公式求出控制增量,并且得出的控制量▲u(k)对应的是近几次位置误差的增量,而不是对应与实际位置的偏差 ,没有误差累加
也就是说,控制增量Δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果,并且在系统发生问题时,增量式不会严重影响系统的工作。
3、串级PID
串级PID是将位置环和速度环串级使用,内环是速度环,外环是位置环。单一位置环是由于路线上的因素,电池的因素,每次转动的速度并不相同,这就会导致误差的发生。而串级PID就可以改善这个问题,减小误差。
(1)串级PID流程图
输入的值有三个:目标值、外环的反馈值、内环的反馈值。整个系统的目标值先作为外环(位置环)的目标值,外环的输出作为内环(速度环)的目标值,内环的输出就是整个系统的输出。反馈值都在系统运算前测出。