主页 模型库 竞赛 学习中心 工具箱 论文库 前沿 建模空间 AI建模
学习中心 探索专题 微分方程与差分方程 控制与反馈

本页实验台

  1. 开环与闭环
  2. PID 三个参数
  3. 极点配置
  4. 时滞会毁掉一切
LAB 01

开环与闭环

有没有那条反馈线,抗扰动能力差了一个数量级

开环的最终值—
比例反馈的最终值—
比例+积分的最终值—
反馈把误差压小了多少倍—
开环的意思是:我知道对象的模型,所以直接算出该给多少输入。在没有扰动、模型也完全准确的时候,它工作得很好——红线一开始稳稳地停在 1。然后在中间那条竖虚线处加一个扰动。红线立刻被推走,而且永远回不来——开环系统根本不知道自己偏了。蓝线(比例反馈)被推走以后自己拉了回来,但没有完全回到 1:残留了一个稳态误差。原因是比例控制靠误差产生输出,误差归零则输出归零,而输出归零又顶不住扰动——所以它必须留一点误差来维持那个抵抗扰动的输出。误差大小是 1/(1+K·Kp),把 Kp 拖大,误差就变小,但永远不是 0。绿线(比例 + 积分)才真正回到了 1。积分项的作用就是记住"过去累计偏了多少",只要还有偏差它就继续增大输出,直到偏差恰好为 0。这三条线概括了控制工程最基本的三个层次:开环靠模型,比例靠当下的误差,积分靠误差的历史。(把对象增益 K 改一改再看一遍:开环那条线会整体偏掉,因为公式里用的 K 已经不对了;而两条反馈线几乎不受影响——反馈的最大价值不是更准,是对模型误差不敏感。)
LAB 02

PID 三个参数

比例快但有稳态误差,积分消误差但会超调,微分压住震荡

超调量—
进入 ±2% 带的时间—
稳态值—
稳态误差—
稳态时三项各出多少力—
三个参数,三种性格,最好一个一个试。先把 Ki 和 Kd 都归零,只留 Kp。Kp=1 时响应很慢,最后停在 0.50(差 0.50);Kp=4 时快了,停在 0.80(差 0.20),开始有 18.9% 的超调;Kp=10 时更快,停在 0.91,超调冲到 47%。规律:比例增益越大,越快、稳态误差越小、超调越大。稳态误差是 1/(1+Kp),永远消不掉。现在加上 Ki=2。稳态值立刻变成 0.9985,误差几乎归零——这正是积分项的本职工作。但注意超调从 18.9% 涨到了 33.1%:积分项会累积,等到误差终于归零时它早已"用力过猛",于是冲过头。(工程上这叫积分饱和,实际系统里必须加抗饱和处理,否则执行器一旦到限位就会失控。)最后加上 Kd=0.5。超调从 33.1% 掉到 8.9%,调节时间从 6.30 缩到 5.08。微分项看的是误差变化的快慢:误差正在快速减小时,它主动反向踩一脚,提前刹车。代价是它对噪声极其敏感(噪声的导数很大),所以实际中几乎总要配一个低通滤波。一句话记法:P 决定快慢,I 消除稳态误差,D 压住超调。而三个一起调的顺序通常是 P → I → D。 新加的第二张图是这一台真正该看的东西:控制量 u 是怎么被三项拼出来的。u = Kp·e + Ki·∫e + Kd·ė,灰粗线是三条细线之和,也就是实际发给执行器的那个数。超调、静差、振荡都不是三个独立的毛病,而是这三项此消彼长的后果。先把 Ki 和 Kd 都归零,只留比例项。实测稳态输出只有 0.6667,静差 0.3333;这时橙线(比例项)稳稳停在 0.67——正是这个残留的误差在维持着控制量,误差一旦归零,比例项也就归零,输出自然掉下去。纯比例控制不可能消掉静差,原因就在这张图上。再把 Ki 调到 0.30。稳态输出升到 0.9971,而三项的分工完全变了:橙线掉到 0.01,青线(积分项)爬到 1.00。稳态时比例项和微分项都是零,扛着整个控制量的只有积分项——这就是积分项存在的全部理由:它是唯一能在误差为零时还输出非零的项。再加上 Kd = 0.20。超调从 38.51% 压到 22.22%,调节时间从 8.10 缩到 4.60,蓝线在每次拐弯处提前给出一个反向的修正——微分项看的是误差的变化速度,等于提前刹车。但请留意阶跃那一瞬:蓝线会冲到 125,远远冲出画面。阶跃让误差瞬间从 0 跳到 1,其导数在离散实现里约等于 1/dt,微分项于是爆出一根尖峰。这叫微分冲击,实际工程里普遍的做法是把微分只作用在输出 y 上而不是误差 e 上,正是为了避开它。最后把 Ki 拉到 1.50 看一次失控。超调 877%,积分项冲到 −19.76:误差还没消掉,积分已经累积了太多,等系统冲过头时它又要花同样长的时间往回吐。这就是积分饱和(windup),灰线贴上 ±40 那两条限幅线的时候尤其致命——控制量已经出不去了,积分却还在闷头累加。
LAB 03

极点配置

把闭环极点放到左半平面的不同位置,响应形状随之改变

闭环极点—
阻尼比 ζ—
超调:实测(理论)—
调节时间:实测(4/σ)—
下面那张复平面图是控制工程师真正在看的东西。闭环系统的全部动态行为,都藏在特征方程的根(极点)落在哪里。把两个滑杆当成"把极点拖到复平面上的某个位置"来用。规律一:实部 −σ 决定衰减多快。σ 越大,极点越靠左,e^(−σt) 这个包络掉得越快。读数里的调节时间和 4/σ 对得很好:σ=1 时是 4.02 对 4.00,σ=2 时是 2.39 对 2.00。规律二:虚部 ω 决定振荡多快,而真正决定"振不振"的是两者的比值——阻尼比 ζ = σ/√(σ²+ω²)。超调量只由 ζ 决定,公式是 exp(−πζ/√(1−ζ²))。实测和理论贴得非常紧:ζ=0.243 时 45.56% 对 45.59%,ζ=0.447 时 20.71% 对 20.79%,ζ=0.707 时 4.21% 对 4.32%。ζ=0.707 是工程上最常用的默认值——大约 4% 的超调,兼顾了快和稳。规律三:极点进入右半平面(σ<0)系统就发散。把 σ 拖到最小再想象把它拖成负数:包络 e^(−σt) 变成指数增长,任何一点扰动都会被放大。"稳定"这个词在这里有一个完全精确的定义:所有闭环极点的实部都小于 0。整个经典控制理论——根轨迹、奈奎斯特判据、波特图上的相位裕度——归根到底都在回答同一个问题:我调的这个参数,会把极点推到哪儿去?
LAB 04

时滞会毁掉一切

反馈慢半拍,原本稳定的系统开始自激振荡

后段的振荡幅度—
当前增益下能容忍的最大时滞—
当前的时滞—
结论—
反馈的前提是"我知道现在在哪儿"。如果这个信息晚到一会儿,反馈就会变成灾难。把时滞从 0 慢慢往上加,看那条响应曲线:先是超调变大,然后振荡开始不衰减,最后幅度一路发散。机制很直观:你根据 0.5 秒前的偏差在施加纠正,而系统这 0.5 秒里已经自己走过去了,于是你的"纠正"变成了"加力"——本该抵消的反馈,变成了正反馈。下面那张图是这一页最有用的东西:增益与时滞的稳定边界。绿色区域内稳定,越过绿线就自激振荡。注意这条边界是往下走的:Kp=0.8 时能容忍 0.75 的时滞,Kp=2 时只剩 0.23,Kp=8 时只剩 0.054。增益越大,能容忍的时滞越小,而且大致成反比。这条规律的现实含义非常广:任何有延迟的反馈回路,都不能把反应调得太激烈。空调温度传感器装在出风口还是回风口、货物补货看的是昨天还是上周的销量、货币政策的传导需要几个季度、甚至开车时"看得越远、方向盘打得越轻"——说的都是同一件事。而工程上的三条解法也总是这三条:减小延迟(换更快的传感器)、降低增益(反应温和一点)、或者用模型预测补偿(史密斯预估器、模型预测控制)——也就是"猜一猜这段延迟里系统会走到哪儿"。

这一页想说的

控制的全部主题是反馈:用测量代替预测,用偏差驱动动作。P、I、D 三项分别对应当下、历史和趋势,而它们的效果最终都体现为把闭环极点推到复平面的什么位置——实部决定衰减速度,阻尼比决定超调。最后一条不该忘的是时滞:任何延迟都会给增益设一个上限,而且增益越大上限越低。

接着看

← 返回模块 ← 返回探索专题