它为什么会晃
「力气太大就会晃」是一句半对的话,而半对的话最难纠正。这一章用一张八行的真值表把它拆开:力气大、有第二级惯性、有纯延迟——三个开关,八种组合。你会看到光靠力气一个,怎么加都不晃。
一台只有一级惯性的设备(一开阀门温度就开始爬,指数式趋近,没有任何纯延迟)。给它配纯比例控制器。
现在把比例增益从 0.4 一路加到 4,加了十倍。
顺便再问一个:那这台设备加大增益,究竟换来了什么?
三个嫌疑人
一个环开始来回摆动,通常被归咎于三样东西:
- 力气太大(增益高,一点误差就下猛药);
- 系统有惯性(东西太重,推起来停不住);
- 看得太晚(延迟)。
这三条听起来都很有道理,而且都各自「解释得通」。问题是:它们不是并列关系。下面这个 demo 把它们做成三个独立的开关,八种组合都真跑一遍。
八行结果摆在一起,长这样:
| 力气 | 惯性 | 延迟 | 越过终点 | 结果 |
|---|---|---|---|---|
| 小(0.4) | 一级 | 无 | 0 次 | 一次也没越过 |
| 小(0.4) | 一级 | 2 秒 | 0 次 | 一次也没越过 |
| 小(0.4) | 两级 | 无 | 5 次 | 晃 5 下才停(幅度 0.7%) |
| 小(0.4) | 两级 | 2 秒 | 6 次 | 晃 6 下才停(幅度 2.4%) |
| 大(4.0) | 一级 | 无 | 0 次 | 一次也没越过 |
| 大(4.0) | 一级 | 2 秒 | 41 次 | 晃 41 下才停(幅度 91.7%) |
| 大(4.0) | 两级 | 无 | 18 次 | 晃 18 下才停(幅度 20.8%) |
| 大(4.0) | 两级 | 2 秒 | 18 次 | 晃 18 下才停(幅度 72.0%) |
请盯住第 5 行。
力气从 0.4 加到 4,十倍,而这台一级惯性的设备一次都没有越过它最后停的位置。不是「几乎没有」,是数学上精确的零:它的响应曲线是单调的。你把增益加到一百、一万、一亿,结论都一样。
所以:
「力气大」单独一个,不会让环振荡。它必须和另一样东西配合:一个能让反馈回来得太晚的东西。
能提供这个「太晚」的有两类:两级以上的惯性,和纯延迟。而第 6 行和第 7 行告诉你它俩不是等价的——同样的力气,第二级惯性让它晃 20.8%,两秒延迟让它晃 91.7%。纯延迟贵得多。
反过来也成立:第 3、4 行说明,光有延迟和惯性、没有力气,它也只是懒洋洋地晃两下(幅度 0.7% 和 2.4%),根本不成问题。振荡需要两个条件同时成立。
为什么一级惯性怎么加都不晃
这件事有一个非常干净的解释,不需要任何工具。
一级惯性的设备,行为可以写成一句话:「温度的变化速度,正比于它离目标还差多少」。数学上是 τ · dy/dt = −y + K·u。
配上比例控制 u = Kp·(r − y),代进去整理一下,会得到:
# 闭环的运动方程(一级惯性 + 比例控制)
τ (dy/dt) = −y + K Kp (r − y)
= −(1 + K Kp) y + K Kp r
# 整理成标准形式:
[ τ / (1 + K Kp) ] (dy/dt) + y = [ K Kp / (1 + K Kp) ] r
└────── 新的时间常数 ──────┘ └──── 新的最终值 ────┘
# 看清楚发生了什么:
# 它还是一个一级惯性系统!只是
# 时间常数从 τ 变成 τ/(1+K Kp) ← 快了 (1+K Kp) 倍
# 最终值从 K·u 变成 K Kp/(1+K Kp)·r ← 永远差一点点
# 而一级惯性系统的阶跃响应是 1 − e^(−t/τ):
# 单调上升,永远不越过终点。加多大增益都改不了这件事,
# 因为增益改的只是「多快」和「停在哪」,改不了「单调」。
这段推导值得多看两眼,因为它演示了闭环最本质的一件事:闭环系统还是一个动力学系统,只是参数变了。你不是给系统「加了一个控制器」,你是造了一台新机器。这台新机器的时间常数、最终值、乃至阶数,都可以和原来那台完全不同。
那么加大增益换来了什么?两样:快了 (1+K·Kp) 倍,稳态误差小了 (1+K·Kp) 倍。全是好处,没有代价——在这台理想的一级惯性设备上。
这也是为什么初学者很容易得到「增益越大越好」的印象:在最简单的模型里,它确实如此。代价要到有第二个储能元件、或者有一点延迟的时候才出现——而现实里这两样几乎总是存在。
晃的程度,可以用一个数说清
第 7 行(两级惯性、无延迟)那种「晃几下然后停」的行为,在控制论里有一个标准的描述方式,用一个叫阻尼比的数,记作 ζ(读作 zeta)。
你不需要现在就理解它的定义(第 6 章会自然地推出来),只要先记住它的读法:ζ 是「刹车力度」。ζ = 0 完全没刹车(永远晃下去),ζ ≥ 1 刹车过猛(爬过去就不动了,绝不越线)。中间的每一个 ζ 都对应一个精确的过冲百分比:
阻尼比 ζ 冲过头 每振一圈还剩 常见叫法 ───────────────────────────────────────────────── 0.05 85.4% 73.01% 几乎不刹车 0.10 72.9% 53.18% 0.20 52.7% 27.73% 0.30 37.2% 13.86% 0.40 25.4% 6.44% 0.50 16.3% 2.66% 0.60 9.5% 0.90% 0.707 4.3% 0.19% ← 教科书最爱 0.80 1.5% 0.02% 1.00 0.0% 0.00% 临界阻尼 # 这张表是精确的,来自一个闭式公式: # 过冲 = exp(−π ζ / √(1 − ζ²)) # 反过来也能解:想要 25% 过冲,ζ = 0.4037 # 想要 10% 过冲,ζ = 0.5912 # 想要 2% 过冲,ζ = 0.7797
这张表在整本书里会被反复引用,值得记住三个锚点:ζ = 0.5 → 16.3%,ζ = 0.707 → 4.3%,ζ = 1 → 0%。
「每振一圈还剩」那一列也很有用:ζ = 0.2 时每振一圈幅度剩 27.7%,所以你会看见明显的好几个来回;ζ = 0.7 时剩 0.19%,等于振一圈就没了——看起来就是「冲一下就稳住」。
本书书名的这个词,在不同场合有两种算法,混起来会吵架:
- 相对目标:
(峰值 − 目标) / (目标 − 起点)。这是你在乎的那个——「我冲过了要求线多少」。 - 相对终值:
(峰值 − 最终停的地方) / (最终停的地方 − 起点)。这是描述系统脾气的那个。
纯比例控制永远到不了目标(第 5 章),这时候第一种算法会给出 0(因为它压根没越过目标线),但系统明明在晃。所以本章的真值表用的是第二种:它越过的是自己最后停的位置。到了卷 II 有了积分项、稳态误差归零之后,两种算法就重合了。
验证器会同时核对这两个量,正文里每次都会说清用的是哪一种。
汽车悬挂。减震器就是那个 ζ。全新的减震器 ζ 大约 0.2–0.3,过减速带后车身晃一两下就停。减震器老化漏油之后 ζ 掉到 0.1 以下,你会明显感到车「一直在忽悠」——那正是表里 72.9%、每圈剩 53% 那一行。而如果 ζ 太大(比如某些运动车型),过坎会「哐」一下硬邦邦,因为它一点也不肯让。
关门器。公共场所门上那个液压筒是一个整定过的阻尼器。厂家调的就是 ζ ≈ 1:门恰好合上,不弹回来,也不慢吞吞。调坏了的那种要么砰地撞上(ζ 太小),要么半天关不严(ζ 太大)。
招人。业务忙不过来 → 招人 → 人到岗要三个月(延迟)→ 到岗时业务已经过了高峰 → 冗余 → 裁员 → 业务又起来了。这是一个典型的「大力气 + 长延迟」组合,对应表里最惨的第 6 行。缓解办法不是「招人时更谨慎」(那是降低增益,会让你一直缺人),而是缩短延迟:外包、内部调岗、提前建立候选人池。
请注意我不是说「调小增益是错的」。看真值表:降增益一定有效(第 1、2 行都不晃)。它是一个有效手段,而且是最便宜的一个。
问题在于它是一笔交易,不是修复。用第 5 章的话说,你把稳态误差从 1/(1+4K) 换成了 1/(1+0.4K);用第 2 章的话说,你抗扰动的能力按同一比例下降了。
正确的顺序是先问一句:这个环的相位滞后是从哪来的?
- 如果来自纯延迟(第 6 行)——去缩短它。缩短延迟能同时拿到更大的增益上限和更快的响应,那是净收益,不是交易。
- 如果来自第二级惯性(第 7 行)——考虑加微分项(第 7 章),它专治这一类。
- 如果两样都改不了——那才是调小增益的时候,而且此时你应该知道自己在买什么、卖什么。
D一次也不会越过。增益从 0.4 加到 4(十倍),一级惯性的设备越过终点 0 次;加到一万也一样,因为闭环仍然是一个一级惯性系统,而一级惯性系统的阶跃响应单调——这是它的结构决定的,不是参数决定的。
那加大增益换来了什么?两样,都是纯好处:响应快了 (1+K·Kp) 倍,稳态误差小了 (1+K·Kp) 倍。在这台理想设备上,增益确实是越大越好。
而现实里几乎不存在这台设备——因为几乎一切东西都有第二个储能元件,或者一段传输时间。这本书剩下的部分,讲的就是那个「几乎」有多贵。
A 「增益加十倍,任何系统都受不了」——这是把「大增益」当成了振荡的充分条件。它连必要条件都不是(第 3、4 行说明小增益也能晃),更不是充分条件。真正的充分条件要到第 10 章才能说清:在某个频率上,环路的相位滞后达到 180°,而那个频率上的增益还大于 1。 B、C 「冲过头一两次」「一点点」——这两个答案都假设了「多少总会有一点」。而这里的答案是精确的零,不是「很小」。这个区别很重要:它意味着这不是一个程度问题,是一个结构问题。一级惯性系统的闭环阶跃响应,形状上不可能有峰。这一章的一句话
振荡需要两样东西同时到场:足够的力气,和一个让你晚知道的东西——只有一个的时候,你其实很安全。
卷 I 到此结束。你现在手里有:一个环的五个零件、惯性和延迟的区别、以及「什么时候会晃」的真值表。卷 II 开始打开那个叫「控制器」的盒子,看看工业界九成的控制器里到底装了什么。第一个旋钮最简单,也最诚实:它会告诉你,纯比例控制永远差那么一点——回路增益 9 的时候差 10.00%,加到 99 才差 1%。