本页目录
经典 VI · PID:工业界的真正主力
层次:本科核心 + 业界绝对主力 | 这一页是理论与实践落差最大的地方。 一个常被学界轻视、被业界依赖的事实:工业控制回路中,PID(及其简化形式 PI)占据压倒性多数。它诞生近百年,历经无数"更先进"方法的挑战而地位不摇。本页讲清它为什么如此成功,以及那些教科书公式里没有、但决定实际成败的工程细节。
学习层:一台温控箱,既要跟上设定值,也要扛住开门扰动
1. 具体工程情境:先判断控制器会不会被限幅困住
把半导体温控箱在一个工作点附近简化成一阶对象。加热功率 \(u\) 有硬边界,温度输出 \(y\) 需要在 \(1\) 的归一化设定值附近运行;\(t=1\ \mathrm{s}\) 施加设定值阶跃,\(t=6\ \mathrm{s}\) 打开箱门引入负扰动。实验使用
其中 \(\Delta t=0.1\ \mathrm{s}\)、\(\tau=1.6\ \mathrm{s}\)、\(u_{\mathrm{sat}}\in[-1.2,1.2]\)。这是一个有意简化的对象,让 PID 的三个项和饱和逻辑可以逐采样审计。
预测门,必须先作答:
- P、I、D 中哪一项累积过去的误差?
- 执行器已经饱和而误差仍同号时,反算抗饱和应让积分器继续累加,还是卸载?
- 两自由度 PID 降低 \(\beta\) 时,首先缓解设定值阶跃的冲击,还是改变对象时间常数?
2. 正式公式桥:三项、饱和和抗饱和必须放在同一张账上
实验使用比例设定值加权、测量微分和反算抗饱和:
当 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\) 不是免费午餐:它通常减小设定值冲击,却没有消除对象时滞、扰动或输入约束。
- 一阶对象不是工业装置本身:真实温控箱可能有多时间常数、热耦合、死区、加热器非线性和传感器延迟;本实验不能据此宣称某组参数可直接投运。
一、三项各自在做什么
| 项 | 作用 | 代价 |
|---|---|---|
| P(比例) | 按当前误差修正,提供基本响应速度 | 单用有稳态误差(第一页) |
| I(积分) | 消除稳态误差,补偿未知常值扰动 | 引入 −90° 相移,降低裕度;会饱和 |
| D(微分) | 按误差变化率提前修正,增加阻尼、抑制超调 | 放大高频噪声 |
直观解释:P 看现在,I 看过去(累积),D 看未来(趋势)。这个"现在-过去-未来"的三元结构,正是它足够通用的原因。
频域视角(承第五页):PI 提升低频增益(改善跟踪与抗扰),PD 提供正相位(改善裕度)。PID ≈ 滞后补偿 + 超前补偿——第四页说过,它们是同一件事的两种表述。
二、为什么 PID 如此成功
这值得认真回答,而不是当作历史惯性:
- 只需三个参数,且每个都有物理直觉——现场工程师能理解、能手调,不需要模型;
- 不需要对象模型:整定可以完全基于实验响应;
- 对大多数工业对象够用:多数过程(温度、流量、压力、液位)是低阶、近似线性、慢时变的——PID 的能力恰好覆盖这个范围;
- 鲁棒:参数不精确时性能平缓退化,不会突然崩溃;
- 生态成熟:所有 PLC、DCS、变频器都内置 PID 模块,有成熟的整定与诊断工具,运维人员熟悉。
第 5 条常被低估:一项技术的胜出往往不只因为它更好,还因为整个生态围绕它建立。(🔗 微电子站反复出现的同一模式:新技术必须打败一个成熟生态。)
三、工程细节:教科书不讲、现场必须做的
这一节是本页的核心价值。理想 PID 公式直接实现,几乎一定出问题。
① 抗积分饱和(anti-windup)——最重要的一条。
当执行器饱和(阀门全开、电流到限,第三页),实际输出不再跟随控制量,但积分项仍在累加误差。等到误差反向时,积分器里已经累积了巨大的值,需要很长时间"卸载",造成严重超调与长时间失控。
解法:
- 条件积分:饱和时停止积分累加;
- 反算(back-calculation):把饱和量反馈回积分器,按 \((u_{sat}-u)\) 成比例地扣减积分。
任何实用 PID 都必须有抗饱和,否则第一次大扰动就会暴露问题。
② 微分项的三个修正:
- 必须滤波:纯微分 \(K_d s\) 在高频增益无限大,会把传感器噪声放大到淹没信号。实用形式是 \(\dfrac{K_d s}{1 + (K_d/N)s}\),\(N\) 取 5–20(这正是第四页的超前补偿器);
- 微分作用于测量而非误差(derivative on measurement):设定值阶跃变化时,误差的微分是冲激,会产生巨大的微分冲击(derivative kick)。改为对输出 \(-K_d\dot{y}\) 微分即可避免;
- 噪声大的场合干脆不用 D——这就是为什么工业上 PI 比 PID 更常见(流量、压力回路噪声大,几乎都用 PI;温度回路慢而平滑,才常用 PID)。
③ 设定值加权(两自由度):比例项也可只作用于部分设定值 \(u_P = K_p(\beta r - y)\)。这让"跟踪设定值"与"抑制扰动"可以分别整定——单自由度 PID 的一个根本局限是这两个目标共用一组参数,无法独立优化。两自由度结构是工业上的常见做法。
④ 无扰切换(bumpless transfer):手动/自动切换、参数在线修改时,必须保证控制输出不跳变(通过初始化积分器实现)。这是投运现场的实际需求。
四、整定方法
① Ziegler–Nichols(1942):经典但需谨慎。
- 临界比例度法:只用 P,逐渐加大增益直到等幅振荡,记下临界增益 \(K_u\) 与周期 \(T_u\),按表查参数;
- 反应曲线法:由开环阶跃响应的时滞 \(L\) 与斜率求参数。
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 不是任何意义上的最优控制器——它只是一个结构简单、鲁棒、够用的启发式。这既是它的局限,也是它的优点(不优化任何具体指标,意味着它不会因为指标设错而灾难性地失败)。
六、要点
- P 看现在、I 看过去、D 看未来;PID ≈ 超前 + 滞后补偿;
- PID 的统治地位来自"少参数 + 无需模型 + 够鲁棒 + 生态成熟";
- 抗饱和、微分滤波、微分作用于测量、两自由度——这四条工程细节决定实际成败;
- Z-N 偏激进,只当起点;过程工业主流是基于模型的 Lambda/IMC 整定;
- PID 在大时滞、强耦合、硬约束、强非线性面前力不从心——这正是后面几线的动机。
线一结束。下一线转向现代控制:把系统写成状态方程,用矩阵语言处理多输入多输出,并引入两个极重要的概念——能控性与能观性。