为什么 Kp 大了会振荡?从传递函数到极点,一图看懂

2k 词

调 PID 时最常听到的一句话:”Kp 别加太大,会振荡。”但很少有人解释为什么。这篇用 4 张图,把”传递函数 → 极点 → 振荡”这条链完整走一遍。看完你就能回答:Kp 增大时,系统的极点到底发生了什么。

一、从微分方程到传递函数:一句话概括

控制系统的核心问题:输入 u(t) 经过系统,输出 y(t)。 系统内部的行为用微分方程描述,比如电机速度环(忽略电感):

$$J\frac{d\omega}{dt} + B\omega = T(t)$$

对两边做拉普拉斯变换(把”微分”变成”乘以 s”),得到传递函数:

$$G(s) = \frac{\Omega(s)}{T(s)} = \frac{1/J}{s + B/J} = \frac{K}{\tau s + 1}$$

传递函数的关键:分母多项式的根,就是系统的极点。

  • 极点位置 = 系统”本性”的数学表达
  • 它不随输入变化,只由系统自身参数(J、B、R、Kt)决定
  • 输入决定系统”被激发成什么样”,极点决定系统”自己会怎么动”

二、一阶系统:极点越靠左,响应越快

对一阶系统 $G(s) = \frac{1}{\tau s+1}$,极点 $s = -\frac{1}{\tau}$,是一个负实数。

一阶系统阶跃响应

  • 极点位置 = -1/τ,τ 是时间常数
  • 极点离虚轴越远(越靠左),τ 越小,响应越快
  • 极点在负半轴 → 指数衰减 → 系统稳定

直观理解:极点 s=-3.3 比 s=-0.33 的响应快 10 倍,因为它的”衰减速度”更快。

三、核心图:s 平面上的极点 ↔ 时域响应

这是整个控制理论最重要的一张对应关系图:

极点位置与时域响应

极点位置 时域行为 工程含义
负实轴上,离原点近 缓慢指数衰减 响应慢
负实轴上,离原点远 快速指数衰减 响应快,无振荡
负实部 + 虚部(共轭复极点) 衰减振荡 有超调,会”抖”
右半平面(正实部) 指数发散 不稳定,必炸

关键结论:只要极点实部 < 0,系统就稳定;虚部 ≠ 0 时,系统必然振荡。

  • 实部 σ 决定衰减速度(振荡衰减得多快)
  • 虚部 ω 决定振荡频率(抖得多快)
  • 实部越接近 0,衰减越慢,振荡越”持久”——这就是”临界稳定”的感觉

四、重头戏:Kp 增大时,极点怎么动?

现在用最简单的例子:对象是二阶系统 $G(s) = \frac{1}{s^2 + 2s + 1}$(可理解为电机+负载的近似),只加比例控制 $u = K_p \cdot e$。

闭环传递函数的分母(特征方程):

$$s^2 + 2s + 1 + K_p = 0$$

解出闭环极点:

$$s = -1 \pm \sqrt{-K_p} = -1 \pm j\sqrt{K_p - 1} \quad (K_p > 1)$$

根轨迹

看这条轨迹,答案全在里面:

  1. Kp < 1:极点是两个负实数(在实轴上)→ 系统无振荡,响应慢,有静差
  2. Kp = 1:两个极点重合在 s = -1(临界阻尼)→ 响应最快且无振荡的最优状态
  3. Kp > 1:极点在 -1 处分叉,变成共轭复数(上下对称)→ 振荡出现! 而且 Kp 越大,虚部 $\sqrt{K_p-1}$ 越大,振荡频率越高
  4. 极点实部始终是 -1(本例中),所以系统不会发散——但如果对象本身更复杂(有右半平面极点或纯延时),Kp 继续增大可能让实部变正,就真炸了

这就是”Kp 大了会振荡”的数学本质:Kp 把闭环极点从实轴推到复平面,实极点变成复极点,振荡随之而来。

五、P / PI / PID 对比:每个环节在动哪个极点

PID对比

控制器 数学作用 极点影响 时域效果
只有 P 改变闭环增益 极点沿根轨迹移动(实→复) 快了,但留静差
+I 开环增加一个原点极点 系统变 I 型,静差归零 消除静差,但稳定性下降(相位滞后)
+D 增加一个零点 提供阻尼,把复极点”拉回”实轴 抑制超调,响应更稳

D 环节的本质:它相当于给系统”预判”——看到误差在增大就提前反向作用,等效于增大了阻尼比 ζ,把振荡压下去。

六、回到你的 rm_pid_tuner:自动调参在做什么

现在回头看规则式自动调参的逻辑,一切都有了理论根据:

1
2
3
4
5
6
7
8
if (error_stddev > threshold) {
// 振荡 → 说明极点虚部太大 → 降 Kp(把极点往实轴拉)+ 升 Kd(加阻尼)
kp *= 0.9; kd *= 1.2;
}
if (avg_error > threshold) {
// 响应慢 → 极点太靠右 → 升 Kp(把极点往左推)
kp *= 1.3;
}

自动调参的本质,就是根据时域指标反推极点该往哪移,再换算成 Kp/Ki/Kd 的调整量。 理解了极点,你就能预测每个参数的效果,而不是盲试。

七、三个立刻能用的小结论

  1. 看到振荡先降 Kp,不是加 D:振荡的根源是极点虚部大,降 Kp 比加 D 更直接
  2. 临界阻尼最香:Kp 调到”刚要出现振荡”的前一档,往往就是最优
  3. 调参时盯响应曲线,不盯参数值:参数是手段,响应(时域指标)才是目标——这正是自动调参器的设计哲学