卷 IV · 会不会炸CH 16深度 16/24

不炸,但永远停不下来

前面十五章讨论的两种结局是「收敛」和「发散」。还有第三种:既不收敛也不发散,就那么不大不小地永远晃下去。它有个名字叫极限环,它在线性系统里不可能出现,而在你家厨房里到处都是。

极限环继电控制闭式 ↔ 仿真

▷ 先拧一下

一个恒温器。加热器只有开和关两档(没有中间档)。为了避免它在目标温度上疯狂抖动,工程师加了回差:温度低于「目标 − 0.05」才开,高于「目标 + 0.05」才关。

问:这个系统最终会怎样?

A 稳定在目标温度上,回差只是防抖,不影响最终结果 B 稳定在目标 ± 0.05 之间的某一点,取决于负载 C 永远在目标附近来回,周期和振幅都可以精确算出来 D 发散——正反馈会把它推到某一头

再问一个:如果把回差从 ±0.05 缩小到 ±0.02,会更好还是更差?

没有中间档的世界

前十五章一直假设控制量是连续的:阀门可以开 37.2%,功率可以是 4.8 千瓦。而世界上有一大类执行器根本没有中间档:

  • 家用冰箱的压缩机:开,或者关;
  • 电热水壶、电熨斗、烤箱的加热丝;
  • 继电器控制的一切;
  • 「要不要扩一台机器」——你不能扩 0.6 台。

用这种执行器做的控制叫继电控制(relay control),或者更形象的名字:bang-bang 控制(要么砰地全开,要么砰地全关)。

它有一个躲不掉的后果:

◆ 这一章的主线

如果维持目标所需要的功率介于「关」和「开」之间,那这个系统就不可能停在目标上。

比如维持 20°C 需要 0.7 千瓦,而加热器只有 0(关)和 1.4 千瓦(开)两档。那么无论如何,它只能:开一会儿(温度往上冲),关一会儿(温度往下掉),如此往复。

这个「往复」不会衰减,也不会发散。它是一个自我维持的周期运动,叫极限环(limit cycle)。

而这不是故障,这是这类执行器的必然结局。唯一的设计自由是:让这个环多大、多快

算出那个周期

好消息是,这个环的周期可以精确算出来,而且推导只用到高中数学。

加热器开着的时候,温度按一阶惯性朝 K·u_hi 爬;关着的时候,朝 K·u_lo 掉。两段都是指数曲线,而指数曲线走过一段固定距离要多久,是可以解出来的:

∑ 算一遍
# 设:惯性 τ,全开能到 K·u_hi,全关会掉到 K·u_lo
#     目标 sp,回差半宽 h
#     所以温度在 y_lo = sp − h 和 y_hi = sp + h 之间来回

# 【开着的那一段】从 y_lo 朝 K·u_hi 爬,爬到 y_hi 为止:
   t_on  = τ · ln( (K·u_hi − y_lo) / (K·u_hi − y_hi) )

# 【关着的那一段】从 y_hi 朝 K·u_lo 掉,掉到 y_lo 为止:
   t_off = τ · ln( (y_hi − K·u_lo) / (y_lo − K·u_lo) )

# 代进具体数字:τ=10, K=1, u_hi=1.4, u_lo=0, sp=1, h=0.05
   t_on  = 10 · ln(0.45/0.35) = 2.51314 秒
   t_off = 10 · ln(1.05/0.95) = 1.00083 秒

★ 周期 = 3.51398 秒     占空比 = 2.51314/3.51398 = 71.5%

# 而真的解一遍微分方程量出来的周期是 3.5180 秒。
★ 两者差 0.114% —— 那点差是仿真步长的分辨率,不是理论的错。

顺便,那个 71.5% 的占空比不是巧合:稳态下,加热器提供的平均功率必须正好等于维持目标所需要的功率。1.4 × 71.5% ≈ 1.0——正是目标值。极限环是这个系统实现「0.7 档」的唯一方式:它用时间上的开关比例,模拟出了一个不存在的中间档。

这个观察在别处会以另一个名字出现:PWM(脉宽调制)。你的电脑风扇、LED 调光、开关电源全靠它。它们做的是同一件事——用「开多久」代替「开多大」。

回差那个旋钮

拖动回差看:

回差周期每小时开关温度带宽
±0.021.401 s2570 次±0.02
±0.053.514 s1024 次±0.05
±0.17.115 s506 次±0.1
±0.215.041 s239 次±0.2
±0.3534.389 s105 次±0.35

这张表就是这类系统的全部设计空间。只有一个旋钮,而它连着两样互相打架的东西:

回差调小 → 温度更准,继电器磨得更快。
回差调大 → 继电器省了,你冷一阵热一阵。

注意开关次数下降得多快:回差从 ±0.02 放宽到 ±0.2(十倍),开关次数从每小时 2570 次降到 239 次(约十分之一)。而机械继电器的寿命通常按「多少万次」标定——每小时 2570 次意味着十万次寿命撑不到两天。

所以这是本章开头第二问的答案:回差从 ±0.05 缩小到 ±0.02,温度更准,但继电器的动作次数涨了 2.5 倍。好不好取决于你更在乎哪个——而这两者之间没有「两全其美」的选项,因为只有一个旋钮。

极限环的一般意义

继电控制只是极限环最干净的例子。任何非线性都可能产生极限环,而它们有一个共同的特征,值得记住:

   线性系统的三种结局:收敛、发散、(临界时)等幅振荡
                        └──────────┬──────────┘
                    等幅振荡只在**恰好**临界的那一个点上出现
                    它是零测度的巧合,参数动一点点就没了

   非线性系统多一种:极限环
                     它是**稳定**的 —— 参数变一点,它还在那儿
                     振幅大了会自己缩回来,小了会自己长回去

★ 这就是为什么线性理论里的「等幅振荡」是理论边界,
  而现实中的持续振荡几乎总是极限环 —— 它抗得住扰动。

这个区别有实际后果:如果你在生产环境看到一个幅度非常稳定的周期性波动,那它多半不是「刚好调到临界了」(那太巧了),而是某个非线性造成的极限环——去找那个饱和、那个死区、那个整数取整、那个开关阈值。

⟳ 回到那个环

第 8 章提过一句:现代温控器的「自整定」按钮,按下去做的就是本章这件事。

Åström 和 Hägglund 在 1984 年提出:既然临界实验(加大增益直到振荡)在真设备上太危险,那就临时把控制器换成一个继电器。系统会自动进入一个极限环,而这个极限环的周期非常接近临界周期 Tu,它的振幅可以反推出临界增益 Ku

好处是振幅由回差控制,你可以让它小到无害。这是一个非常漂亮的把「危险的实验」变成「安全的实验」的例子:不是回避那个必须回答的问题,而是换一个安全的方式去问它。

▸ 在现实里

你家冰箱。压缩机启停的那个「嗡——咔」的循环就是极限环。厂家选的回差通常比较大(几度),因为压缩机频繁启停既费电又伤寿命。所以冰箱内部温度其实一直在几度的范围里晃——这也是为什么冷冻室的冰会反复融化再冻结,形成霜。变频压缩机(有中间档)能显著减少这件事,代价是贵。

整数带来的极限环。自动扩容器算出「需要 6.4 台」,向上取整成 7 台,于是利用率偏低;下一轮算出「需要 5.8 台」,取整成 6 台,利用率偏高……取整本身就是一个非线性,它足以制造一个在 6 和 7 之间来回的极限环。解法和恒温器完全一样:加回差(扩容阈值和缩容阈值不同),这在云厂商的实现里叫「冷却期」或「非对称阈值」。

库存的补货点。「低于 X 就订一批」是一个纯粹的继电控制。订货量就是回差:订得多,补货次数少但库存成本高;订得少,库存低但天天在订货。这就是经济订货批量(EOQ)那套东西的控制论版本——它和上面那张回差表是同一个权衡。

✗ 这个直觉是错的
系统一直在开开关关,说明控制器没调好,应该想办法让它停下来。 如果执行器只有两档,而所需功率在两档之间,那么「停下来」在数学上不可能。你唯一能选的是这个来回有多大、多快。

这个直觉的危害在于它会让人去做无用功:调阈值、加滤波、改逻辑——全都在试图消除一个不可消除的东西。而正确的问法是三个:

  1. 这个极限环的大小可以接受吗?(温度带宽、库存波动、机器数波动)
  2. 这个频率可以接受吗?(继电器寿命、启动成本、账单)
  3. 如果两个都不能接受,我能不能弄到一个有中间档的执行器?(变频压缩机、可调阀、按秒计费的实例)

第三问才是真正的出路,而且它是结构手段——又一次印证了上一章那句话:结构问题在旋钮上永远解决不了。

反过来也要提醒一句:不是所有持续振荡都是极限环。如果你的执行器连续的,系统却在持续振荡,那多半是真的调过头了(卷 III、卷 IV 前半),这时候确实该去降增益或者缩延迟。先分清是哪一种,再动手。

◈ 回读

C永远在目标附近来回,而且周期和振幅都可以精确算出来。闭式解给出周期 3.51398 秒(开 2.51314 秒 + 关 1.00083 秒,占空比 71.5%),真跑一遍微分方程量出 3.5180 秒,差 0.114%

第二问:回差从 ±0.05 缩到 ±0.02,温度带宽确实缩小了,代价是每小时开关次数从 1024 次涨到 2570 次——继电器寿命按比例缩短。这不是「更好」,是换了一种付法。

A 「回差只是防抖,不影响最终结果」——回差决定最终结果:它就是那个来回的幅度。没有回差的话(h = 0),理论上系统会在目标点上以无穷高的频率抖动,实际上会被采样周期和继电器的机械时间限制住——那才是真正会烧掉继电器的场景。回差不是可选的优化,它是这类系统的必需品。 B 「稳定在某一点」——这需要执行器能输出一个中间值。而这台设备只有 0 和 1.4,物理上不存在那个中间值。它只能用时间去合成:71.5% 的时间开着,平均下来正好等于目标所需。 D 「发散」——不会。回差本身就是一个刹车:温度一超过上界就关,一低于下界就开,幅度被死死钉在 ±h 之内。极限环是「有界但不收敛」,这是一个第三种结局,也是线性系统里不存在的那一种。

这一章的一句话

当执行器只有两档,「到位」这件事在数学上就不存在了——你能设计的只有这个来回有多大、多快,而这两样之间只有一个旋钮。

卷 IV 到此结束。前四卷有一个共同的隐含假设:你知道现在是多少。控制器读到的那个数,我们一直当作真话。卷 V 要拆掉这个假设——从一个具体的对照开始:给同一个环加噪声、加量化、加延迟三种传感器缺陷,只有一种会动摇稳定性,而另外两种里有一种会让执行器抖动涨 3024 倍