增量式PID为啥可以抗积分饱和?

前言

本文将介绍以下几点:
1、位置式PID
2、增量式PID
3、抗积分饱和原理
4、对比

通过本文,你将对位置式、增量式PID有基础了解,并掌握增量式PID的抗积分饱和原理。本文不涉及其他各式各样的抗积分饱和原理。

示意图

image.png
image.png

概述

简单来说:增加式(或称增量式)PID之所以能天然抗积分饱和,是因为它的算法不直接计算和存储积分项的历史累积值,而是计算控制量的变化量。当输出被限幅时,这个“变化量”的计算会自动将饱和因素考虑在内,从而避免了积分项的持续累积(即windup)。

下面我们进行详细分解。

什么是“积分饱和”(Integral Windup)

根源:在位置式PID中,积分项是对所有历史误差的累加(∑e(t))。当系统输出由于执行机构限幅(例如阀门全开/全关、电机最大转速)而无法再跟踪控制量的要求时,误差e(t)会持续存在。

问题:尽管输出已经达到极限,但控制器内部的积分项因为误差的持续存在而会继续无限增大(“积分饱和”或“windup”)。

后果:当设定值改变(例如需要反向调节时),由于积分项已经变得非常大,控制器需要很长时间才能将这个巨大的积分项“消化”掉,导致系统出现严重的超调和平稳时间延长。在这段“消化”时间里,执行机构会一直卡在极限位置,无法及时响应。

位置式PID vs. 增量式PID

我们通过公式对比来理解。

位置式PID (Positional PID)

输出的是控制量的绝对位置
u(k) = Kp * e(k) + Ki * ∑e(j) + Kd * [e(k) - e(k-1)] (其中 j=0 to k)

关键点:它有一个独立的、不断累积的积分项 ∑e(j)。这个项是造成windup的直接原因。一旦输出饱和,这个累加值会变得巨大且与实际情况脱节。

增量式PID (Incremental PID)

输出的是控制量相对于上一次的变化量 (Δu)。
Δu(k) = u(k) - u(k-1) = Kp * [e(k) - e(k-1)] + Ki * e(k) + Kd * [e(k) - 2e(k-1) + e(k-2)]

关键点:它没有独立的积分项。积分作用体现在 Ki * e(k) 这一项上,它只与当前误差有关,而不是所有历史误差的总和

最终的输出是:u(k) = u(k-1) + Δu(k)
这意味着当前的控制输出严格依赖于上一次的输出值。

增量式PID如何天然抗饱和?

核心就在于这个 u(k) = u(k-1) + Δu(k) 的迭代结构。

让我们模拟一下饱和时的情况:

  • 假设执行机构的输出被限制在 [Umin, Umax] 之间。
  • 在某个时刻 k-1,计算出的 u(k-1) 已经达到了上限 Umax(即饱和了)。
  • 进入时刻 k,控制器计算增量 Δu(k)。由于误差可能仍然很大,Δu(k) 可能还是一个很大的正数。
  • 现在计算 u(k) = u(k-1) + Δu(k) = Umax + Δu(k)。显然,这个结果会远远超过 Umax。
  • 关键一步:在实际应用中,我们必须对最终输出进行限幅:
    u(k) = clamp( u(k-1) + Δu(k), Umin, Umax )**
    因此,u(k) 实际上被强制设定为 Umax。
  • 进入时刻 k+1:
    计算 u(k+1) = u(k) + Δu(k+1) = Umax + Δu(k+1)
    同样,计算结果再次被限幅为 Umax。

发生了什么?

在位置式中,即使输出饱和,内部的积分累加器 ∑e(j) 仍在疯狂增长,与真实的输出值 Umax 严重脱节。

在增量式中,虽然计算出的 Δu(k) 很大,但由于输出被限幅,实际生效的值 u(k) 被牢牢地钉在了 Umax 上。并且,这个被限幅后的值 Umax 会作为下一次计算的基准 u(k-1)。

换句话说,积分效应(通过 Ki * e(k) 体现)被“冻结”了。 只要系统处于饱和状态,计算出的任何正增量 Δu 都是无效的,输出会一直保持在最大值 Umax 不动。一旦误差减小或变为负值(需要反向调节),Δu(k) 会立刻变为负数,输出 u(k) 也能立即从 Umax 开始下降,响应没有丝毫延迟。

总结对比

特性 位置式PID 增量式PID
输出含义 控制量的绝对位置 控制量的变化量 (Δu)
积分项 独立,累积所有历史误差 (∑e),是windup的根源 无独立积分项,积分效果由当前误差项 Ki*e(k) 体现
抗饱和能力 无天然抗饱和能力,需额外算法(如 clamping, back-calculation) 天然抗饱和
安全性 差。若计算机故障导致输出巨大跳变,可能损坏执行机构。 好。 输出变化是渐进的,更安全。
应用 需直接定位的执行机构(如阀门开度),实际应用中需要配合抗积分饱和算法 需控制变化率的执行机构(如步进电机)

因此,增量式PID因其算法结构特性,无需任何额外代码就实现了天然的抗积分饱和功能,这是它相对于位置式PID的一个巨大优势。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 总所周知,PID算法是个很经典的东西。而做自平衡小车,飞行器PID是一个必须翻过的坎。因此本节我们来好好讲解一下P...
    熊猫啃竹阅读 5,462评论 1 12
  • 上文 积分器的饱和情况 (actuator:机器的一部分) 我们知道常量的误差值在经过积分器的作用会成为一个递增的...
    greedyhao阅读 5,599评论 0 0
  • 一、定义 位置式: 适用于不带积分元件的执行器,执行器的动作位置与其输入信号呈一一对应的关系。控制器根据第n次被控...
    九除以三还是三哦阅读 12,664评论 0 0
  • PID控制时一个二阶线性控制器定义:通过调整比例、积分和微分三项系数参苏,使得大多数的工业控制系统获得良好的闭环控...
    AE_sdyang阅读 4,925评论 0 2
  • 原文出处 PID算法 1 什么是PID PID,即比例Proportion、积分Integral和微分Deriva...
    沈祥佑阅读 33,247评论 0 9