PID控制
PID即比例(Proportion)积分(Integral)微分(Differential)的首字母缩写
PID是经典的闭环控制系统,其应用极其广泛
PID原理
-
比例P控制器:
pid->pout = pid->p * pid->error[NOW];
该控制器的作用即缩放误差,将误差转化为实际的控制量,是PID控制器最基本,也是最重要的部分
但是单纯的P控制存在缺点:稳态误差
稳态误差,即系统达到稳态时存在的误差
P控制器与误差值成正比,如果因为某个原因,使得P控制器的输出无法减小误差值,那么此时系统状态将不再变化,即达到了稳态,此时的仍然存在的误差即稳态误差
为了消除稳态误差,我们需要引入I控制器
-
积分I控制器:
pid->iout += pid->i * pid->error[NOW];
该控制器的作用即将误差累积,以消除稳态误差。
I控制器的输出与误差的积分成正比,所以I控制器的输出既与误差有关,也与时间有关
实际控制中,P控制器起到了主要作用,当P控制器到达出现稳态误差的范围时,I控制器才开始发挥其真正作用,随着时间的增加,I控制器的输出将越来越大,结合P控制器的输出,直到突破使稳态误差出现的原因的限制,误差开始减小,直到误差消除,在此之前,I控制器主要起加速作用。
-
微分D控制器
pid->dout = pid->d * (pid->error[NOW] - pid->error[LAST]);
D控制器的输出与误差的微分(即变化率)成正比,该控制器的作用为预测并消除未来误差,抑制系统的惯性或延时,提高系统的响应速度,并减小震荡
存在惯性或延时的系统,相当于在无惯性或延时的系统中加入了一个滞后的被控制量,这个作用会改变本已达到无差稳态的系统,使误差增加,待误差消除又重复这个过程,从而使得系统震荡。这时候需要引入D控制器来抵消这个作用,改善调节过程的动态特性。
控制策略
-
P控制
仅使用P控制器的控制策略,用于可以忽略稳态误差与系统滞后性的反馈回路
-
I控制
仅使用I控制器的控制策略,响应慢,动态性能不好,不建议使用
-
PI控制器
PI控制即P控制器与I控制器的组合,用于可以忽略或不存在系统滞后性的反馈回路
-
PD控制器
PD控制器即P控制器与D控制器的组合,用于存在滞后且可以忽略稳态误差的反馈回路
该控制策略相较于P控制稳态误差减小,但任然可能存在稳态误差
-
PID控制器
PID控制器即P、I、D三种控制器的组合,没有明显缺点,应用更为广泛
PID调节
控制器 | 参数偏小 | 参数偏大 |
---|---|---|
P | 会降低调节的实时性,增加调节时间 | 会使超调量增大,震荡变大,甚至失稳 |
I | 稳态误差消除缓慢 | 会使超调量增大,震荡变大,甚至失稳 |
D | 系统滞后抑制不完全 | 会对噪声过于敏感,抗干扰能力降低 |
调试建议
根据P、I、D的顺序依次调试需要的参数,先通过从小到大每次增加10倍确认参数的数量级,再根据二分法快速确定参数
控制策略中存在I控制器时,可适当减小P控制器参数
PID控制频率
根据被控系统的实时性要求进行选择,一般越高越好
PID模式
实际应用中,PID一般分为两种模式,分别为:位置式PID、增量式PID
位置式PID的计算结果是真实的控制量,而增量式则不然,为控制量的增量,需要累积后使用
串级PID
顾名思义,即将PID串联使用,,有时也被称为多闭环PID
串级PID将上一级的输出值,当作这一级的期望值,每一级控制一个变量,以控制多个变量,使系统更加稳定
需要注意的是,虽然是控制多个变量,但实际为通过控制其它变量,达到控制主要变量的目的
描述串级PID时,将靠近输出的一级被称为内环PID,靠近靠近目的变量的一级称为外环PID(内外关系在如下示意图中可以轻易的看出)
调试时,要先调节内环PID,因为内环PID更加靠近输出,调节不依赖未调节变量,效果直接。调节好内环PID后,再调节外环PID。