一句话: 同一套 PID 参数,弱输入下输出增益是 0.007,强输入下是 0.046——相差 6 倍。一个工作点调好的参数,换个区间就振荡或拖沓。这不是参数没调好,是系统本身"增益耦合",固定参数根本不适用。
适合谁读:PID 调参怎么调都不稳定、怀疑自己调参水平、考虑换控制方案的嵌入式工程师。
先用音量旋钮理解"增益耦合"
同一个音量旋钮,在不同状态下拧一格的响度变化完全不同:信号弱时拧一格变化一点点,信号强时拧一格变化巨大——拧同样的角度,效果差好几倍。这就是"增益随工作点变化"。
PID 的 Kp 参数本质是按"拧一格变多少"设计的。如果这个"变多少"本身随状态差 6 倍,一套参数不可能两头都合适。
现象:一套参数只在一个点好用
做定值控制:设定目标值,PID 调节输出,让实际值稳定在目标。参数在某一个工作点调好了——稳定、无超调、响应快。
换一个工作点测,问题来了:要么输出剧烈振荡,要么半天爬不到目标。改参数调好了这个点,另一个点又不行。
一套参数永远只在一个点好用,这是最让人崩溃的。
根因:系统增益不是固定的
查系统特性发现:输出→实际的"增益"不是常数,它跟输入信号强度耦合:
| 输入状态 | 增益 |
|---|---|
| 弱输入 | ~0.007 |
| 强输入 | ~0.046 |
| 相差倍数 | 约 6 倍 |
PID 的参数是按"系统增益"设计的:增益大,Kp 得小一点才不振荡;增益小,Kp 得大一点才跟得上。
现在增益随工作点变了 6 倍——同一套 Kp/Ki,要么在强增益点振荡,要么在弱增益点拖沓。这不是调参水平问题,是固定参数根本不适合这种系统。
为什么调不好:数学上就矛盾
PID 的 Kp 理论上应该是"1/系统增益"。系统增益不是一个数,而是一个范围(0.007~0.046),那就没有一个 Kp 能同时满足:
| 目标 | 需要的 Kp |
|---|---|
| 弱增益点快速响应 | 大 Kp(≈1/0.007) |
| 强增益点不振荡 | 小 Kp(≈1/0.046) |
两个要求差 6 倍,物理上矛盾。所谓"调不好",其实是在要求固定参数去做它做不到的事。
解法方向
这条路有几种走法,各有代价:
| 方案 | 思路 | 代价 |
|---|---|---|
| 增益调度(gain scheduling) | 按工作点查表换参数 | 要标定每个点的增益,工作量大 |
| 自适应控制 | 在线估计增益调整参数 | 算法复杂,调试难 |
| 换控制策略 | 用不依赖增益的算法(如搜索式) | 牺牲一点响应速度 |
当时选了第三条:改用二分搜索式控制——它不需要知道增益,只比较"当前值比目标高还是低",天然免疫增益耦合。
判断信号:什么时候该怀疑"增益耦合"
调 PID 遇到这些特征,先怀疑系统增益在变:
- 一套参数只在一个点好用,其他点振荡/拖沓
- 不同区间下,同样的输出变化,实际值变化明显不一样
- 参数改小不振荡但慢,改大快但振荡,中间没有"刚好"的值
总结
| 项 | 结论 |
|---|---|
| 现象 | 一套 PID 参数只在一个工作点好用 |
| 根因 | 系统增益随工作点变化约 6 倍 |
| 本质 | 固定参数做不到"快又不振荡" |
| 出路 | 增益调度 / 自适应 / 换搜索式算法 |
PID 调不好,先查增益是不是固定的——如果增益跟着工作点变,那问题不在调参,在方案本身。
实测对比:一组PID参数调好:换个工作点就振荡或拖沓 | 明白增益耦合:参数要跟着工况变,只能放弃
有用的话点个收藏,下次 PID 怎么调都只有一个点好用,先查增益耦合。有问题欢迎评论区交流,看到了都会回。
下一篇:死区 + 静默期:两个被低估的 PID 优化——PID 参数的另一个维度

1157

被折叠的 条评论
为什么被折叠?



