一、位置式PID与增量式PID
谈到控制算法,PID是入门控制算法的经典代表。大家常说的闭环控制就是指PID控制算法。常见的PID算法包括位置式PID、增量式PID及衍生出的变积分PID、模糊PID等。网上也有太多PID算法的入门介绍,和基本公式。这里我只给出位置式PID和增量式PID的公式及简单说明:
位置式PID公式:
kp、ki、kd分别是比例、积分、微分系数。位置式PID是以误差值为输入,输出误差控制值。
增量式PID公式:
增量式PID是以误差值的变化量为输入,输出误差控制值的变化量。
二、各类PID算法的特点
1.位置式PID与增量式PID的关系
从公式上看位置式PID是以误差值为输入,输出误差控制值,增量式PID是以误差值的变化量为输入,输出误差控制值的变化量。
理论上来说,根据输入的误差值,位置式PID的输出直接决定了当前的控制量,而增量式PID的输出则是当前控制量的变化值。
由此可见,位置式PID更适合控制变化速度快的系统,在较大误差的情况下能够快速反应,给出相应控制量。但在噪声影响下,控制系统不稳定,某时刻,误差值受瞬时噪声干扰后,产生错误的输入误差值系统立即给出相应的控制状态,这种情况下系统极不稳定,且易受损坏。
相比位置式PID,增量式PID控制的响应速度会慢,不适用于控制变化速度快的系统,但从公式中可以看出来,增量式PID自带一个小的去噪滤波系统(白噪声除外)。因此增量式PID控制系统更加稳定一些。
2.PID算法的简单延申
生活中常常遇到的系统往往包含部分线性区间,但是很少有一个完整的纯线性系统。而我们听说的变积分PID、模糊PID等算法,与位置式PID、增量式PID的核心区别在于将kp、ki、kd从常系数换成了区间数组变量。在特定控制状态下,使用特定的比例、积分、微分系数来适应不同控制环境下的控制系统。这类PID算法更加地体现了非线性的特征。
三、PID算法的常用优化方法
1.限幅输出
为了避免噪声干扰下程序跑飞,破坏系统,常用限幅输出来保护控制系统的安全。
2.零点死区
通常在内部噪声及系统结构偏差等因素的影响下,当控制系统达到目标值的时候,还是会有误差的输入,从而改变当前的控制状态,偏离目标值。增加死区后,即当控制系统达到目标值附近的时候,完成控制。
3.改变Kp、Ki、Kd系数
PID算法控制其实就是一个调参的过程,分区间调参可以使算法更加适应控制系统。
四、PID控制算法的使用
1.确定控制效果
一个控制系统的存在是为了达到某种控制效果,例如控制小车行驶的速度、控制平衡车保持平衡等等。这是控制系统通过控制算法要完成的最终效果。
2.确定控制参数
控制系统通过PID来调整对应的参数,来实现相应的控制效果。这是要实现最终效果的关键的第一步。例如:
要控制小车的行驶速度,控制参数就是小车的速度。就需要速度传感器来获取小车当前速度,与目标速度作差得出输入误差值。
要控制平衡车保持平衡,首先是让平衡车保持与水平面接近平行,其次是让平衡车的速度接近为零。控制参数就是平衡车的速度和平衡车与水平面夹角(假设平衡车直立时,车身构架与水平面平行) 因此需要角度传感器和速度传感器来获取对应的当前值,与目标值作差进得出输入误差值。
3.多级PID控制系统的搭建
对于简单的控制效果,只需一个PID控制系统即可搭建完成,例如控制小车的行驶速度。但是生活中我们需要达成的控制效果常常是复杂的,仅仅靠一个PID控制系统来实现,效果往往是不尽人意的。例如,平衡车的平衡效果需要控制平衡车的速度和平衡车与水平面夹角这两个参数。
常见的两种方法是串级PID和并级PID
并级PID结构如图:
串级PID结构如图: