1 什么是积分饱和
积分饱和(Integral windup或integrator windup)是指PID控制器或是其他有积分器的控制器中可能会发生的一种现象。
这种现象往往发生在误差有大幅变化(例如大幅增加),积分器因为误差的大幅增加有很大的累计量.
所以随着时间的增加,每次累积较大的误差e(i),很容易造成积分饱和并产生较大的过冲,而且当误差变为负时,其过冲仍维持一段时间之后才恢复正常的情形。
2 负面影响
积分器的作用是消除系统稳态误差,如果出现积分饱和,往往会对系统造成负面的影响;
● 系统输出会产生较大的过冲(超调量);
● 如果产生正向饱和(图一所示)则系统对于反向的变化会偏慢;
3 如何防止积分饱和
为了防止PID控制器出现积分饱和,需要在算法加入抗积分饱和(anti-integral windup)的算法;通常有以下几种措施;
● 积分分离或者称为去积分算法;
● 在饱和的时候将积分器的累计值初始化到一个比较理想的值;
● 若积分饱和因为目标值突然变化而产生,将目标值以适当斜率的斜坡变化可避免此情形;
● 将积分累计量限制上下限,避免积分累计量超过限制值;
● 如果PID输出已经饱和,重新计算积分累计量,使输出恰好为合理的范围;
3.1 改进的PI方法
下面是TI的位置式PI算法所做的改进,如下图所示;
比例部分的输出:
积分部分的输出:
未做处理的PID输出:
最终PID输出 u(k):
抗积分饱和用的系数w1(k)
根据我的理解,由上述输出可知,判断系统是否处于饱和的状态;
如果v1(k)≠u(k),说明积分器处于饱和状态,此时使w1(k)系数为0,这样防止积分进一步进行累积。
3.2 反计算抗饱和法Anti-Windup
反计算Anti-Windup法,简称AW法,就是在输出限幅部分根据输入信号和输出信号的差值,把u−us作为反馈值输入到积分部分,从而达到抑制积分饱和现象的目的;
具体如下图所示;
不难发现,在输出未饱和的情况下,KCΔu=0 因此不会对积分器造成影响; 当系统发生饱和时,则 |u|>umax;
现在假设此时为正向饱和,则 u>umax,那么Δu=u−us>0,所以最终将Δu反馈到积分部分;那么从图中可知,相当于从ui中减去了Δu,这样可以削弱积分,让它退出饱和的状态;
关于KC的系数,KC 越大,积分器退出饱和的作用越强,反之则越弱;