3、P增益过大导致的抖动:P增益与系统刚性的关系、临界增益与振荡、如何通过P增益判断系统稳定性
上一章我们聊了P增益太小会怎样——系统软绵绵的,反应迟钝。那反过来呢?P增益拧太大,系统就会开始抖。这种抖不是机械松动那种抖,是控制信号来回震荡,电机嗡嗡响,执行器来回窜。我见过不少新手一上来就把P增益往大了调,觉得这样响应快,结果系统直接啸叫起来。
说白了,P增益就是系统的“刚性系数”。你拧得越大,系统越“硬”,但硬过头了就会碎。这一章我们就来拆解这个关系。
3.1 P增益与系统刚性的关系
什么叫“刚性”?在控制领域,刚性指的是系统抵抗外部扰动的能力,以及跟踪指令的快速性。P增益越大,系统对误差的放大倍数就越大——误差刚出现一点点,控制器就猛推一把。
你可以想象一下弹簧:
- 小P增益:像一根软弹簧,拉一下慢慢回位,但不会弹过头。
- 大P增益:像一根硬弹簧,拉一下迅速弹回,但容易弹过头再弹回来,来回震荡。
我在做伺服电机位置环的时候遇到过这种情况。电机带一个轻负载,我一开始把P增益设到50,位置误差收敛得挺快。后来负载换成重一点的,我没改参数,结果电机开始“嗡嗡”响,位置曲线像锯齿一样。这就是刚性太高,系统开始不稳定了。
核心结论:P增益决定了系统的“恢复力”。恢复力越大,系统越“硬”,但超过某个阈值就会从“硬”变成“脆”。
3.2 临界增益与振荡
每个系统都有一个临界点,叫做临界增益(Critical Gain)。在这个增益下,系统刚好开始持续等幅振荡——不收敛也不发散,像钟摆一样来回摆。
为什么会这样?因为P增益太大,控制器的输出信号和系统的实际响应之间产生了相位差。你想想看:
- 系统当前位置低于目标,误差为正。
- 控制器输出一个大的正向控制量。
- 系统加速冲向目标。
- 等系统到达目标时,惯性让它冲过头了。
- 误差变成负的,控制器又猛推反向。
- 系统又冲回来……如此循环。
这个循环的频率,就是系统的自然振荡频率。临界增益下的振荡频率,恰好等于这个自然频率。
| 增益范围 | 系统行为 | 典型表现 |
|---|---|---|
| P < 临界增益 | 收敛(稳定) | 误差逐渐减小到零 |
| P = 临界增益 | 等幅振荡(临界稳定) | 误差持续等幅波动 |
| P > 临界增益 | 发散(不稳定) | 振荡幅度越来越大 |
注意:临界增益不是安全的工作点。实际工程中,我们通常把P增益设在临界增益的40%~60%。留足裕量,防止负载变化或参数漂移导致系统失稳。
3.3 如何通过P增益判断系统稳定性
判断系统稳不稳定,最直接的办法就是看响应曲线。但如果你没有示波器或者上位机,光听声音也能判断个大概。我分享几个我自己的经验:
方法一:阶跃响应观察法
给系统一个阶跃指令(比如位置从0跳到100),观察输出曲线:
- 过阻尼(P太小):曲线慢慢爬上去,没有超调,但到达时间很长。
- 临界阻尼(P合适):曲线快速上升,轻微超调(5%~10%),然后迅速收敛。
- 欠阻尼(P偏大):超调明显,来回震荡几次才稳定。
- 不稳定(P过大):震荡幅度不减小,甚至越来越大。
方法二:临界增益测试法
这是我做现场调试时常用的方法:
- 先把I和D增益设为零,只保留P。
- 从一个小值开始,逐步增大P增益。
- 每次增大后,给系统一个小的阶跃指令。
- 观察输出是否开始持续振荡。
- 记录下刚好开始等幅振荡时的P值——这就是临界增益。
- 最终使用的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增益与系统稳定性的核心逻辑关系:
3.5 避坑指南
最后说几个我踩过的坑:
- 不要只看空载调参:我曾经在空载下调好了P增益,结果一挂负载就抖。负载会改变系统的惯量和阻尼,临界增益会下降。一定要在典型负载下做最终调试。
- 注意采样周期的影响:采样周期越长,系统能容忍的P增益越小。如果你的控制器采样率不够高,P增益稍微大一点就会抖。这时候别硬调P,先看看采样周期能不能缩短。
- 机械共振别误判成控制振荡:有时候电机抖不是因为P增益大,而是机械结构本身有共振频率。怎么区分?你把P增益降到很低,如果还抖,那就是机械问题。如果P增益一降就不抖了,那就是控制问题。
一句话总结:P增益是系统的“刚性旋钮”,拧到临界增益的50%左右,系统既硬又稳。超过临界增益,刚性变成脆性,系统开始抖。记住这个边界,调参时心里就有底了。