经典PID:
比例、积分、微分控制,简称PID控制,又称PID调节。PID控制的基本方法是根据系统输入与预定输出的偏差的大小运用比例、积分、微分计算出一个控制量,将这个控制量输入系统,获得输出量,通过反馈回路再次检测该输出量的偏差,循环上述过程,以使输出达到预定值。使用情况:当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时
连续型PID
$$ u(t) = K_p \left[ e(t) + \frac{1}{T_i} \int_0^t e(t) \, dt + T_d \frac{d e(t)}{dt} \right] $$离散型PID
位置式
$$ \begin{aligned} \boldsymbol{u}(\boldsymbol{k}) &= \boldsymbol{K}_{p} \left\{ \boldsymbol{e}(\boldsymbol{k}) + \frac{\boldsymbol{T}}{\boldsymbol{T}_{i}} \sum_{j=1}^{k} \boldsymbol{e}(\boldsymbol{j}) + \frac{\boldsymbol{T}_{d}}{\boldsymbol{T}} \left[\boldsymbol{e}(\boldsymbol{k}) - \boldsymbol{e}(\boldsymbol{k}-1)\right] \right\} \\ &= \boldsymbol{K}_{p} \boldsymbol{e}(\boldsymbol{k}) + \boldsymbol{K}_{i} \sum_{j=1}^{k} \boldsymbol{e}(\boldsymbol{j}) + \boldsymbol{K}_{d} \left[\boldsymbol{e}(\boldsymbol{k}) - \boldsymbol{e}(\boldsymbol{k}-1)\right] \end{aligned} $$增量式
$$ \begin{aligned} \boldsymbol{u}(\boldsymbol{k}) &= \boldsymbol{K}_{p} \left\{ \boldsymbol{e}(\boldsymbol{k}) + \frac{\boldsymbol{T}}{\boldsymbol{T}_{i}} \sum_{j=1}^{k} \boldsymbol{e}(\boldsymbol{j}) + \frac{\boldsymbol{T}_{d}}{\boldsymbol{T}} \left[\boldsymbol{e}(\boldsymbol{k}) - \boldsymbol{e}(\boldsymbol{k}-1)\right] \right\} \end{aligned} $$$$ \begin{aligned} \boldsymbol{u}(\boldsymbol{k-1}) &= \boldsymbol{K}_{p} \boldsymbol{e}(\boldsymbol{k-1}) + \boldsymbol{K}_{i} \sum_{j=1}^{k-1} \boldsymbol{e}(\boldsymbol{j}) + \boldsymbol{K}_{d} \left[\boldsymbol{e}(\boldsymbol{k-1}) - \boldsymbol{e}(\boldsymbol{k-2})\right] \end{aligned} $$$$ \begin{aligned} \Delta u(k) = u(k) - u(k-1) &= K_p \left[ e(k) - e(k-1) \right] + K_i e(k) + K_d \left[ e(k) - 2e(k-1) + e(k-2) \right] \end{aligned} $$代码:
|
|
-
采样周期和控制周期T没有在以上公式中体现,周期的变化会影响系数
-
在PID算法中,比例环节 P 的作用是成比例地反映控制系统的偏差信号e(t),一旦产生偏差,比例控制环节立即产生控制作用以减小偏差;积分环节 I 的作用是消除静差,提高系统的无差度。微分环节 D 的作用是反映偏差信号的变化趋势,能够在偏差信号变化之前先引入一个有效的早期修正信号来提前修正偏差,加快系统的动作速度,减少调节时间。
-
所谓增量式PID 是指数字控制器的输出只是控制量的增量△u(k)。增量式PID优点在于,由于输出的是增量所以误动作时影响小,必要时可用逻辑判断的方法关掉。另外由于控制增量△u(k)的确定仅与最近k次的采样值有关,所以较容易通过加权处理而获得比较好的控制效果。
-
在PID参数的选择上,常见的是过程控制系统(如电机控制)因较慢的响应常采用PI控制,突出积分项的作用,而随动控制系统(如舵机控制)为了达到较快的响应常采用PD控制。
-
大多智能车队会推荐速度环使用增量式PID,方向环使用位置式PID,这是由于增量PID由于也不容易造成电机的正反转切换。但其实在合适的参数下,增量式PID与位置式PID应该是可以等价。
改进式PID
不完全微分PID
微分信号的引入可改善系统的动态特性,但也易引进高频干扰,在误差扰动突变时尤其明显。因而使用微分项常常采用串接一个一阶惯性环节(一阶低通滤波器)的方式,以克服高频干扰,抗微分扰动。
微分项不完全微分PID
将一低通滤波环节串接在微分项的输出之后
|
|
输出不完全微分PID:
将一低通滤波环节串接在PID控制器的输出后
|
|
微分先行PID:
输出微分先行PID:
将低通滤波串联在反馈环节(如编码器环节)
|
|
偏差微分先行PID:
将低通滤波串联在偏差环节
|
|
变积分PID:
死区:
死区即实际工程中可容忍的最大误差。实际应用中,小误差产生的原因很大可能是由于测量误差或其它不可避免因素造成而不是实际误差。在较小的偏差下弱调节或不调节,可以让控制避免抖动更加平滑。
电机死区:
积分分离:
在普通PID控制中引入积分环节主要是为了消除净差和提高控制精度。但在控制系统启动或停车或大幅度增减目标值时,由于积分饱和作用,短时间内会造成系统有特别大的偏差,会造成PID运算的积分积累,致使输出量特别大,很容易导致超调,甚至会引起系统较大的震荡。
当误差绝对值大于阈值时取消积分项避免过量超调,在大误差范围内减小积分项作用。当被控量接近目标值时(即误差正常时),引入积分控制,以消除净差,提高控制精度。
|
|
积分分离也会导致启动时或是状态变化时PID上升时间边长,若要运用则应多次实验并谨慎来选择范围和系数。若阈值太大,达不到积分分离的目的,若太小又有可能因被控量无法跳出积分分离区,只进行PD控制,将会出现残差。