同一台设备,四种走法
这是这本书的招牌。同一台设备、同一个目标、四个都经过正经整定的控制器。它们的稳态误差全部是 0,闭环直流增益全部是 1——你从任何一张稳态指标报表上都看不出它们有任何区别。然后把同一个阶跃打进去。
四个 PI 控制器,控同一台设备(K = 1,τ = 10 秒,L = 2 秒)。四个都是照着正经的整定法算出来的,四个的稳态误差都是 0。
其中第三个是 Ziegler–Nichols 给的(Kp = 3.8261,Ki = 0.61699)。第四个只做了一件事:把这两个参数各乘以 2(Kp = 7.6522,Ki = 1.23397)。
注意:这台设备的临界增益 Ku = 8.5024,而 7.6522 只有它的 90%——听起来还有一成余量。
「只用了 90% 却炸了」这件事如果成立,那说明我们对 Ku 的理解还缺了一块。
四张一模一样的报表
先看那些「看起来相同」的指标:
| 走法 | Kp | Ki | 积分时间 Ti | 稳态误差 | 闭环直流增益 |
|---|---|---|---|---|---|
| 慢工(IMC,λ = 2τ) | 0.4545 | 0.04545 | 10.00 s | 0.0000000 | 1.000 |
| 刚好(Tyreus–Luyben) | 2.6570 | 0.16230 | 16.37 s | 0.0000000 | 1.000 |
| 教科书(Ziegler–Nichols PI) | 3.8261 | 0.61699 | 6.20 s | 0.0000000 | 1.000 |
| 再用点力(上一行 × 2) | 7.6522 | 1.23397 | 6.20 s | — | 1.000 |
前三行的稳态误差是七位小数的零。这不是巧合,是第 6 章那个结论的直接后果:只要有积分项,稳态误差就必然精确为零,与参数无关。
所以,如果你的监控只看「稳态偏差」「平均值」「有没有到位」,这三个控制器在数据上完全无法区分。它们全是 A 级。
然后把同一个阶跃打进去
| 走法 | 用了 Ku 的 | 上升时间 | 过冲 | 峰值 | 调节时间 | IAE |
|---|---|---|---|---|---|---|
| 慢工 | 5% | 43.7 s | 0.0% | 1.000 | 79.9 s | 22.00 |
| 刚好 | 31% | 4.1 s | 0.0% | 1.000 | 40.2 s | 6.16 |
| 教科书 | 45% | 2.0 s | 44.4% | 1.444 | 20.9 s | 5.46 |
| 再用点力 | 90% | — | 发散 | — | ∞ | 29346.58 |
稳态指标只告诉你「它最后停在哪」,一个字都没说「它怎么去的」。
而在这四种走法里,「怎么去的」相差是:慢工要 79.9 秒、刚好要 40.2 秒、教科书 20.9 秒但要冲过头 44.4%、再用点力回不来了。
一切成本、一切风险、一切用户能感知到的东西,全在这一栏里。而它在稳态报表上是不可见的。
逐条看这四种走法在真实工作中的对应:
慢工:0% 过冲,79.9 秒
IMC 整定,λ 取了两倍的惯性。它只用了临界增益的 5%——极其保守。回报是:曲线单调、绝不越线、对模型误差极其宽容。如果这个环控的是给电池充电、给病人输药、给反应釜升温,这就是正确答案,而且那 79.9 秒完全不是问题。
代价写在 IAE 那一栏:22.00,是教科书整定的四倍。IAE 是「误差曲线下的面积」,物理含义是「这段时间里一共偏离了多少」。所以慢工的真实代价是:它在很长一段时间里都离目标很远。如果这个环是在抵抗一个持续的扰动,那这 22.00 就是实打实的损失。
刚好:0% 过冲,40.2 秒
Tyreus–Luyben。这是四个里我认为最实用的一个:它拿到了「不冲过头」,同时把上升时间从 43.7 秒压到 4.1 秒——快了十倍。
等一下,上升时间 4.1 秒,调节时间却要 40.2 秒?这两个数看起来矛盾,其实不矛盾:它很快就冲到目标附近(4.1 秒走完 10%→90%),然后慢慢地把最后那一点点误差磨掉(它的积分时间长达 16.37 秒)。曲线形状是「快速接近 + 长尾巴收敛」。
这个形状在很多场合是最优的:用户感知到的是那 4.1 秒,而那条长尾巴没人看得见。
教科书:44.4% 过冲,20.9 秒
Ziegler–Nichols。它的 IAE 是四个里最小的(5.46),调节时间也最短。如果你的评分标准是「累计误差」,它是冠军。
但那个 44.4% 的过冲意味着:目标是 1.0,它冲到了 1.444。如果这是炉温,你的产品可能已经废了;如果这是机器数量,你多开了 44% 的机器;如果这是给用户的推送量,你已经把人烦到了。
再用点力:回不来了
这就是本章开头那题的答案,而且是 D:它直接发散了,尽管它只用了临界增益 Ku 的 90%。
为什么?因为我们对 Ku 的理解漏了一块:
Ku 是「纯比例控制」的上限,不是「任何控制器」的上限。
第 10 章说过,失稳的条件是「绕环一圈相位滞后到 180°,且此时增益 ≥ 1」。而那 180° 的预算,环里的每一个环节都要分一杯羹:
- 纯延迟拿走
ωL; - 一级惯性拿走
arctan(ωτ),最多 90°; - 而积分项自己要拿走整整 90°——积分在频域上恒定贡献 −90° 的相位滞后,一分不少。
所以一旦你加上积分项,可用的比例增益就必须低于 Ku。这正是第 8 章那张 Z-N 表里那个不起眼的细节:P 控制用 0.50 Ku,PI 控制降到 0.45 Ku——那 0.05 就是给积分项腾的地方。
而「再用点力」用了 0.90 Ku,还带着一个被同步放大了两倍的积分项。它早就越过了 PI 结构真正的那条线。
这一点值得单独记住,因为它是一个非常常见的现场误判:「我做过临界实验,Ku 是 8.5,我用 7.6 肯定安全」——不安全,因为你的控制器和做实验时的那个已经不是同一个东西了。
那条看不见的线
把四种走法按「用了 Ku 的百分之几」排一下:5% → 31% → 45% → 90%。
前三个都能用,第四个不能。而它们之间没有任何警告标志:从 45% 走到 90%,中间会经过 60%、70%、80%,每一步的响应都只是「更快一点、更冲一点」,看起来完全像一条连续的、可以继续走下去的路。
这是反馈系统最危险的性质:失稳不是逐渐到来的,它是一条线。线这边,系统会收敛,只是越来越难看;线那边,系统永远不收敛。中间没有过渡地带。
# 从教科书整定出发,把 Kp 和 Ki 一起往上乘,每一步的过冲:
乘数 ×1.0 ×1.2 ×1.4 ×1.6 ×1.8 ×2.0
用了Ku 45% 54% 63% 72% 81% 90%
过冲 44.4% 60.1% 76.3% 92.6% 108.9% ✗ 回不来了
└───────┴───────┴───────┴───────┘ ↑
看起来是一条连续变差的路 而这里有一堵墙
没有路牌
# 每一步的反馈都是「还行,就是更冲了一点」,
# 直到某一步,它不再收敛 —— 而这一步和前一步长得一样。
所以你需要的不是「看它现在表现如何」,而是「它离那条线还有多远」。这个量必须能算、能测、能放进监控。那正是下一卷第一件事。
压测报告上的稳态指标。「平均延迟 45ms,P99 120ms,错误率 0.01%」——这些全是稳态指标。它们不告诉你:流量突增两倍时这个系统的过冲有多大、多久恢复、离自激振荡还有多远。而线上事故几乎全部发生在瞬态。
「我们的自动扩容工作正常。」依据通常是「平均利用率稳定在 60%」。这句话的信息量约等于上面那三行零:它只说明积分项在工作。真正该问的是:一次流量翻倍,它会多开多少台(过冲)?多久稳定(调节时间)?——第 22 章你会看到同一套配置,在两种指标延迟下,一个稳如磐石,一个冲到 200 台。
个人和团队也一样。「这个季度目标达成了」是稳态指标。它不区分「平稳地达成」和「前两个月躺平最后一个月玩命」——而后者的过冲、加班、离职率、返工,全都不在那张报表上。KPI 天然只能测稳态,这是它的结构性盲区,不是设计者的疏忽。
更要命的是,「最终到位」这个指标有一个系统性的欺骗性:它在稳定的那一侧对所有参数都成立,所以它无法区分「余量充足」和「马上要炸」。教科书整定(45%)和一个用了 85% Ku 的整定,稳态误差都是零,都「最终到位」。而后者只要设备稍有变化——夏天到了、阀门积垢了、网络多了一跳——就会跨过那条线。
正确的做法是至少同时看三样东西,而且把它们都放进验收标准:
- 过冲——瞬态的代价,用户和设备直接承受。
- 调节时间(或 IAE)——效率的代价。
- 稳定裕度——离那条线还有多远。这一项在正常运行时完全看不出来,而它决定你能不能睡着觉。
前两项你已经会算了,第三项是下一章的内容。
D直接发散,尽管 Kp = 7.6522 只有临界增益 8.5024 的 90%。
原因是那个 Ku 是纯比例控制下测出来的上限。而积分项在频域上要额外吃掉 90° 的相位,所以带积分的环,真正的比例增益上限比 Ku 低得多。第 8 章那张 Z-N 表里 P 用 0.50Ku、PI 降到 0.45Ku,那 0.05 的差别就是给积分项让的路——而「再用点力」不但没让路,还把积分项也放大了两倍。
A 「还在余量内,所以能稳」——这是把 Ku 当成了一个和控制器结构无关的绝对上限。它不是;它是某一种控制器结构下的上限。换结构就得重新算。 B 「冲过头翻倍然后勉强收敛」——这个直觉假设了「参数连续变化 → 行为连续变化」。行为确实连续变化,但「会不会收敛」这件事不连续:它由特征根的实部符号决定,而符号是个跳变量。第 13 章会把这句话变成一张能画出来的图。 C 「卡在临界附近等幅晃」——等幅振荡只发生在恰好等于临界值的那一个点上,那是一个零测度的巧合,现实中不会撞上。越过一点点就发散,差一点点就收敛。「持续等幅振荡」是一个理论上的边界状态,不是一种可以停留的工作状态——不过第 16 章会给你看一种真的能停在那里的系统,而它靠的是完全不同的机制。这一章的一句话
稳态指标只回答「它最后在哪」,而你的成本、风险和用户感受,全都写在「它怎么去的」那一栏里——那一栏在报表上是空白的。
卷 III 到此结束。你现在知道了延迟为什么要命、它怎么把负反馈变成正反馈、它收走多少力气、以及那条看不见的线长什么样。卷 IV 要做的事只有一件:把「离那条线还有多远」变成一个能算出来、能验算、能写进监控的数。第一步是把「稳定」这个形容词,换成一个整数。