本页目录

经典 VI · PID:工业界的真正主力

层次:本科核心 + 业界绝对主力 | 这一页是理论与实践落差最大的地方。 一个常被学界轻视、被业界依赖的事实:工业控制回路中,PID(及其简化形式 PI)占据压倒性多数。它诞生近百年,历经无数"更先进"方法的挑战而地位不摇。本页讲清它为什么如此成功,以及那些教科书公式里没有、但决定实际成败的工程细节。

学习层:一台温控箱,既要跟上设定值,也要扛住开门扰动

1. 具体工程情境:先判断控制器会不会被限幅困住

把半导体温控箱在一个工作点附近简化成一阶对象。加热功率 \(u\) 有硬边界,温度输出 \(y\) 需要在 \(1\) 的归一化设定值附近运行;\(t=1\ \mathrm{s}\) 施加设定值阶跃,\(t=6\ \mathrm{s}\) 打开箱门引入负扰动。实验使用

\[ y_{k+1}=a y_k+(1-a)(u_{\mathrm{sat}}+d),\qquad a=e^{-\Delta t/\tau}, \]

其中 \(\Delta t=0.1\ \mathrm{s}\)、\(\tau=1.6\ \mathrm{s}\)、\(u_{\mathrm{sat}}\in[-1.2,1.2]\)。这是一个有意简化的对象,让 PID 的三个项和饱和逻辑可以逐采样审计。

预测门,必须先作答:

  1. P、I、D 中哪一项累积过去的误差?
  2. 执行器已经饱和而误差仍同号时,反算抗饱和应让积分器继续累加,还是卸载?
  3. 两自由度 PID 降低 \(\beta\) 时,首先缓解设定值阶跃的冲击,还是改变对象时间常数?

2. 正式公式桥:三项、饱和和抗饱和必须放在同一张账上

实验使用比例设定值加权、测量微分和反算抗饱和:

\[ \begin{aligned} e_k&=r_k-y_k,\\ u_k^*&=K_p(\beta r_k-y_k)+I_k-K_d\dot y_k,\\ u_{\mathrm{sat},k}&=\operatorname{clip}(u_k^*,-1.2,1.2),\\ I_{k+1}&=I_k+\Delta t\left[K_i e_k+ K_{\mathrm{aw}}(u_{\mathrm{sat},k}-u_k^*)\right]. \end{aligned} \]

当 anti-windup 关闭时,最后一项被拿掉,\(I_k\) 会在饱和期间继续朝同一方向累积。\(K_p\) 看当前误差,\(K_i\) 消除常值静差,\(K_d\) 看测量趋势;\(\beta<1\) 可以降低设定值阶跃的比例冲击,但扰动反馈仍通过 \(-y_k\) 进入。调一个参数,不能假装三个目标彼此独立。

3. 动手实验:比较两自由度、饱和和积分状态

提交三项预测后,拖动 \(K_p,K_i,K_d,\beta\) 和扰动幅值,并切换 anti-windup。上图同时画 \(r,y\),下图画实际进入对象的 \(u_{\mathrm{sat}}\) 及边界;表格保留每个采样时刻的 P、I、D、\(u^*\)、\(u_{\mathrm{sat}}\) 和 \(y_{k+1}\)。固定默认值为 \(K_p=4,K_i=0.8,K_d=0.35,\beta=0.75,d=-0.15\)。

JavaScript 失效时的静态 fallback:默认对象为 \(\tau=1.6\ \mathrm{s}\)、\(\Delta t=0.1\ \mathrm{s}\)、\(|u|\le1.2\),控制器为 \(K_p=4,\ K_i=0.8,\ K_d=0.35,\ \beta=0.75\),在 \(t=6\ \mathrm{s}\) 加入 \(d=-0.15\)。读账顺序如下:

时刻/项目 设定值与扰动 计算链 应检查的现象
\(t=1\ \mathrm{s}\) \(r=1,d=0\) \(u^*=K_p\beta=3>1.2\) 先发生上限饱和
饱和采样 误差仍为正 anti-windup 项为 \(K_{\mathrm{aw}}(u_{\mathrm{sat}}-u^*)<0\) 积分器被卸载
\(t=6\ \mathrm{s}\) \(d=-0.15\) 对象输入是 \(u_{\mathrm{sat}}+d\) 跟踪和抗扰共享执行器余量
末端 约 14 s 逐行比较 \(P+I+D=u^*\) 与 clip 后的 \(u_{\mathrm{sat}}\) 不能把未饱和命令当成真实执行量

纯 PID 公式没有表达执行器边界、采样保持、测量噪声、时滞或非线性热传导;这个 fallback 和脚本都只是在一阶线性工作点上说明机制。

4. 误区与模型边界

  • anti-windup 不是“让输出超过限幅”:它只改变积分状态,执行器仍只能收到 \(u_{\mathrm{sat}}\)。
  • D 不是未来信息:它是测量变化率的局部预测,噪声、采样和滤波会限制可用带宽。
  • 降低 \(\beta\) 不是免费午餐:它通常减小设定值冲击,却没有消除对象时滞、扰动或输入约束。
  • 一阶对象不是工业装置本身:真实温控箱可能有多时间常数、热耦合、死区、加热器非线性和传感器延迟;本实验不能据此宣称某组参数可直接投运。

一、三项各自在做什么

\[u(t) = K_p e(t) + K_i\int_0^t e(\tau)d\tau + K_d\frac{de(t)}{dt}\]
项 作用 代价
P(比例) 按当前误差修正,提供基本响应速度 单用有稳态误差(第一页)
I(积分) 消除稳态误差,补偿未知常值扰动 引入 −90° 相移,降低裕度;会饱和
D(微分) 按误差变化率提前修正,增加阻尼、抑制超调 放大高频噪声

直观解释:P 看现在,I 看过去(累积),D 看未来(趋势)。这个"现在-过去-未来"的三元结构,正是它足够通用的原因。

频域视角(承第五页):PI 提升低频增益(改善跟踪与抗扰),PD 提供正相位(改善裕度)。PID ≈ 滞后补偿 + 超前补偿——第四页说过,它们是同一件事的两种表述。

二、为什么 PID 如此成功

这值得认真回答,而不是当作历史惯性:

  1. 只需三个参数,且每个都有物理直觉——现场工程师能理解、能手调,不需要模型;
  2. 不需要对象模型:整定可以完全基于实验响应;
  3. 对大多数工业对象够用:多数过程(温度、流量、压力、液位)是低阶、近似线性、慢时变的——PID 的能力恰好覆盖这个范围;
  4. 鲁棒:参数不精确时性能平缓退化,不会突然崩溃;
  5. 生态成熟:所有 PLC、DCS、变频器都内置 PID 模块,有成熟的整定与诊断工具,运维人员熟悉。

第 5 条常被低估:一项技术的胜出往往不只因为它更好,还因为整个生态围绕它建立。(🔗 微电子站反复出现的同一模式:新技术必须打败一个成熟生态。)

三、工程细节:教科书不讲、现场必须做的

这一节是本页的核心价值。理想 PID 公式直接实现,几乎一定出问题。

① 抗积分饱和(anti-windup)——最重要的一条。

当执行器饱和(阀门全开、电流到限,第三页),实际输出不再跟随控制量,但积分项仍在累加误差。等到误差反向时,积分器里已经累积了巨大的值,需要很长时间"卸载",造成严重超调与长时间失控。

解法:

任何实用 PID 都必须有抗饱和,否则第一次大扰动就会暴露问题。

② 微分项的三个修正:

③ 设定值加权(两自由度):比例项也可只作用于部分设定值 \(u_P = K_p(\beta r - y)\)。这让"跟踪设定值"与"抑制扰动"可以分别整定——单自由度 PID 的一个根本局限是这两个目标共用一组参数,无法独立优化。两自由度结构是工业上的常见做法。

④ 无扰切换(bumpless transfer):手动/自动切换、参数在线修改时,必须保证控制输出不跳变(通过初始化积分器实现)。这是投运现场的实际需求。

四、整定方法

① Ziegler–Nichols(1942):经典但需谨慎。

Z-N 的问题(必须知道):它按"四分之一衰减比"设计,整定结果通常偏激进——超调大、裕度低(相位裕度常不足 30°)。在实际装置上做临界振荡实验本身也可能不安全。 它的价值是给出量级正确的起点,而非最终参数。

② 基于模型的整定:如 IMC(内模控制)/ Lambda 整定——先辨识一阶加时滞模型(FOPDT),再按闭环期望时间常数直接算参数。结果比 Z-N 保守稳健,是过程工业的主流做法,且只有一个可调旋钮(期望闭环速度),非常适合现场。

③ 频域整定:按目标相位裕度设计(第五页)。

④ 自整定(auto-tuning):继电反馈法自动激发极限环、辨识临界点,现代 PLC 与温控器普遍内置。

实践中的典型流程:先粗调 P(把增益加到响应够快但未振荡),再加 I(消除静差,注意别加太多),最后视噪声决定是否加 D。大量现场 PID 从未被认真整定过,长期工作在保守的默认参数上——这也是工业界的真实状况之一。

五、PID 的局限:什么时候它不够

诚实地列出 PID 力不从心的场合,正是研究生课程存在的理由:

情形 问题 出路
大时滞 相位裕度被吃光,只能大幅降增益 Smith 预估、MPC(第十七页)
多变量强耦合 回路间相互干扰,单独整定各自回路会互相打架 解耦、多变量 MPC
有硬约束 PID 无法显式处理"温度不得超过 X" MPC(第十七页,这是它最大的卖点)
强非线性 单组参数无法覆盖工作范围 增益调度、非线性控制(第十五页)
非最小相位 性能天花板低(第二、五页) 无法根治,只能接受或改机械设计
需要最优性 PID 不优化任何指标 LQR(第八页)、MPC

注意最后一行的措辞:PID 不是任何意义上的最优控制器——它只是一个结构简单、鲁棒、够用的启发式。这既是它的局限,也是它的优点(不优化任何具体指标,意味着它不会因为指标设错而灾难性地失败)。

六、要点


线一结束。下一线转向现代控制:把系统写成状态方程,用矩阵语言处理多输入多输出,并引入两个极重要的概念——能控性与能观性。