3、P增益过大导致的抖动:P增益与系统刚性的关系、临界增益与振荡、如何通过P增益判断系统稳定性

上一章我们聊了P增益太小会怎样——系统软绵绵的,反应迟钝。那反过来呢?P增益拧太大,系统就会开始抖。这种抖不是机械松动那种抖,是控制信号来回震荡,电机嗡嗡响,执行器来回窜。我见过不少新手一上来就把P增益往大了调,觉得这样响应快,结果系统直接啸叫起来。

说白了,P增益就是系统的“刚性系数”。你拧得越大,系统越“硬”,但硬过头了就会碎。这一章我们就来拆解这个关系。

3.1 P增益与系统刚性的关系

什么叫“刚性”?在控制领域,刚性指的是系统抵抗外部扰动的能力,以及跟踪指令的快速性。P增益越大,系统对误差的放大倍数就越大——误差刚出现一点点,控制器就猛推一把。

你可以想象一下弹簧:

  • 小P增益:像一根软弹簧,拉一下慢慢回位,但不会弹过头。
  • 大P增益:像一根硬弹簧,拉一下迅速弹回,但容易弹过头再弹回来,来回震荡。

我在做伺服电机位置环的时候遇到过这种情况。电机带一个轻负载,我一开始把P增益设到50,位置误差收敛得挺快。后来负载换成重一点的,我没改参数,结果电机开始“嗡嗡”响,位置曲线像锯齿一样。这就是刚性太高,系统开始不稳定了。

核心结论:P增益决定了系统的“恢复力”。恢复力越大,系统越“硬”,但超过某个阈值就会从“硬”变成“脆”。

3.2 临界增益与振荡

每个系统都有一个临界点,叫做临界增益(Critical Gain)。在这个增益下,系统刚好开始持续等幅振荡——不收敛也不发散,像钟摆一样来回摆。

为什么会这样?因为P增益太大,控制器的输出信号和系统的实际响应之间产生了相位差。你想想看:

  1. 系统当前位置低于目标,误差为正。
  2. 控制器输出一个大的正向控制量。
  3. 系统加速冲向目标。
  4. 等系统到达目标时,惯性让它冲过头了。
  5. 误差变成负的,控制器又猛推反向。
  6. 系统又冲回来……如此循环。

这个循环的频率,就是系统的自然振荡频率。临界增益下的振荡频率,恰好等于这个自然频率。

增益范围 系统行为 典型表现
P < 临界增益 收敛(稳定) 误差逐渐减小到零
P = 临界增益 等幅振荡(临界稳定) 误差持续等幅波动
P > 临界增益 发散(不稳定) 振荡幅度越来越大

注意:临界增益不是安全的工作点。实际工程中,我们通常把P增益设在临界增益的40%~60%。留足裕量,防止负载变化或参数漂移导致系统失稳。

3.3 如何通过P增益判断系统稳定性

判断系统稳不稳定,最直接的办法就是看响应曲线。但如果你没有示波器或者上位机,光听声音也能判断个大概。我分享几个我自己的经验:

方法一:阶跃响应观察法

给系统一个阶跃指令(比如位置从0跳到100),观察输出曲线:

  • 过阻尼(P太小):曲线慢慢爬上去,没有超调,但到达时间很长。
  • 临界阻尼(P合适):曲线快速上升,轻微超调(5%~10%),然后迅速收敛。
  • 欠阻尼(P偏大):超调明显,来回震荡几次才稳定。
  • 不稳定(P过大):震荡幅度不减小,甚至越来越大。

方法二:临界增益测试法

这是我做现场调试时常用的方法:

  1. 先把I和D增益设为零,只保留P。
  2. 从一个小值开始,逐步增大P增益。
  3. 每次增大后,给系统一个小的阶跃指令。
  4. 观察输出是否开始持续振荡。
  5. 记录下刚好开始等幅振荡时的P值——这就是临界增益。
  6. 最终使用的P增益 = 临界增益 × 0.5(经验系数)。
// 伪代码:临界增益测试流程
float P = 1.0;
float critical_P = 0;
bool oscillating = false;

while (!oscillating) {
    set_P_gain(P);
    apply_step_input(10);  // 阶跃指令
    delay(1000);           // 等待响应
    if (is_sustained_oscillation()) {
        critical_P = P;
        oscillating = true;
    } else {
        P = P * 1.5;       // 步进增大
    }
}
// 最终P增益 = critical_P * 0.5

我的经验:临界增益测试时,步进系数不要太大。我曾经图省事,每次翻倍往上加,结果直接从稳定跳到了发散,电机差点撞限位。建议每次增加20%~30%,接近临界点时改到10%。

方法三:频域分析法(进阶)

如果你有系统的传递函数,可以用伯德图看相位裕度。相位裕度大于30°通常算稳定,大于60°就很稳健了。P增益增大,相位裕度会减小——当相位裕度降到0°时,就是临界增益。

不过说实话,现场调试时很少有人去算传递函数。我更喜欢用临界增益测试法,简单粗暴,效果直接。

3.4 本章知识体系

下面这张图总结了P增益与系统稳定性的核心逻辑关系:

P增益与系统稳定性关系图 P增益增大 P < 临界增益 P = 临界增益 P > 临界增益 系统偏软 响应慢但稳定 等幅振荡 临界稳定 发散振荡 系统不稳定 工程经验总结 • 临界增益是系统稳定的边界,不是工作点 • 实际P增益取临界增益的40%~60% • 通过阶跃响应曲线可快速判断稳定性

3.5 避坑指南

最后说几个我踩过的坑:

  • 不要只看空载调参:我曾经在空载下调好了P增益,结果一挂负载就抖。负载会改变系统的惯量和阻尼,临界增益会下降。一定要在典型负载下做最终调试。
  • 注意采样周期的影响:采样周期越长,系统能容忍的P增益越小。如果你的控制器采样率不够高,P增益稍微大一点就会抖。这时候别硬调P,先看看采样周期能不能缩短。
  • 机械共振别误判成控制振荡:有时候电机抖不是因为P增益大,而是机械结构本身有共振频率。怎么区分?你把P增益降到很低,如果还抖,那就是机械问题。如果P增益一降就不抖了,那就是控制问题。

一句话总结:P增益是系统的“刚性旋钮”,拧到临界增益的50%左右,系统既硬又稳。超过临界增益,刚性变成脆性,系统开始抖。记住这个边界,调参时心里就有底了。