欢迎来到 可交互 PID 调参练习台!本教程将带你直观理解 PID 控制器的原理及调参方法,通过动手操作,你可以看到:
- 上半图:系统输出 Y 如何跟踪 目标 Setpoint
- 下半图:控制器输出 U 及 P / I / D 三个分量的贡献
模型使用经典的 一阶惯性 + 纯滞后(FOPDT),帮助你建立调参直觉:为什么会超调、振荡,为什么积分可以消静差,为什么微分可以增加阻尼但容易受噪声影响。
一、快速上手
1. 默认模式:静态响应
- 曲线固定在一段时间窗内,调参后会立即更新整段曲线
- 更适合初学者观察参数对系统行为的影响
2. 实时滚动模式
- 曲线随时间滚动,可开始/暂停
- 可注入扰动,观察抗扰能力,更接近真实控制器体验
3. 预设参数
- 温和:响应平稳、超调少
- 激进:快速响应,但易接近振荡
- 振荡:演示参数过大或积分风up现象
二、PID 参数理解
| 参数 | 作用 | 调大效果 | 调小效果 |
|---|---|---|---|
| Kp(比例) | 对当前误差立即反应 | 响应更快,但更易超调/振荡,U 更可能饱和 | 更稳但响应慢 |
| Ki(积分) | 对累计误差反应,用于消除静态误差 | 静差消除快,但易振荡 | 稳定但可能残留静差 |
| Kd(微分) | 对误差变化趋势反应,增加阻尼 | 超调少、更稳,但易受噪声影响 | 响应平滑,但阻尼不足易振荡 |
| I限 | 限制积分最大输出 | 太大+Ki大易超调 | 太小积分作用不足 |
| 抗饱和 | 当 U 饱和时防止积分继续累积 | 开启可减轻积分风up | 关闭可观察积分累积效果 |
三、被控对象(Plant)参数
| 参数 | 含义 |
|---|---|
| 目标/Setpoint | 目标值 |
| 增益 | 对象增益,U 引起的 Y 变化幅度 |
| 惯性 | 时间常数,越大响应越慢 |
| 延迟 | 纯滞后,越大越难调,易超调/振荡 |
| 噪声 | 输出噪声,可观察 Kd 对噪声的敏感度 |
四、输出约束与显示
- uMax:限制 U 的最大值,模拟执行器能力
- windowSeconds:显示时间窗长度
注意:U 长时间贴边表示饱和,会影响调参判断
五、调参建议流程
- 静态响应模式
- 噪声 = 0,延迟 小,U限 足够
- 防止一上来就饱和
- 调 Kp(比例)
- 作用:对“当前误差”立即反应,让Y能快速接近目标
- 调大:响应更快,但更容易超调/振荡,U 更可能饱和
- 调小:更稳但更慢
- 调 Ki(积分)
- 作用:对“累计误差”反应,用于消除稳态误差(静差)
- 调大:更容易消静差,但更可能慢性振荡/超调增大
- 调小:更稳,但可能残留静差
- 调 Kd(微分)
- 作用:对变化趋势反应,提升阻尼,抑制超调与振荡
- 调大:更稳、更少超调,但更怕噪声(U 可能更抖)
- 调小:更平滑,但阻尼不足时更易超调
- 切换实时滚动模式
- 点“扰动”,观察系统恢复过程是否平稳
六、PID 原理详解:它们到底在干什么?
PID 控制器其实就是飞行员大脑里的三个思考维度。假设你现在推了一下摇杆,要求飞机倾斜 30度(这是你的 Setpoint 目标值)。
1. P (Proportional) —— 现在的“蛮力”
例子: 当飞机发现目前只有 0 度,离目标还差 30 度时,P 会大喊一声:“差距太大了,哥们快加力!”。
作用: 它是主要的动力来源。误差越大,电机转得越快。
手感:
- P 高了: 飞机感觉非常“硬”,像长在手上的铁块,反应极快。但太高了飞机会像打冷颤一样高频抖动。
- P 低了: 飞机感觉像在“开船”,肉肉的、反应慢,你推了摇杆它要等一下才慢悠悠地倾斜。
2. I (Integral) —— 过去的“执念”
例子: 假设你的飞机重心不稳(电池挂歪了),或者有一阵持续的侧风。P 只管当前的误差,而 I 会盯着过去一段时间发现:“不对劲,我明明出力了,怎么还没到 30 度?肯定有东西在挡我!” 于是 I 会一点点增加力量,直到把那几度的残余误差彻底消掉。
作用: 它是用来对抗外界持续干扰(风、重心偏移)的。它确保飞机能“死死钉在”你指定的角度上。
手感:
- I 高了: 飞机非常稳,像贴在轨道上飞。但太高了会让飞机反应变迟钝,甚至出现低频的点头晃动(补过头了)。
- I 低了: 飞机总是在“漂移”。你松开摇杆后,它可能慢慢地往回掉,或者定不住角度。
3. D (Derivative) —— 未来的“预判”
例子: 当飞机在 P 的带动下快速接近 30 度时,D 发现:“停!快到目标了,速度太快了,再不刹车就要撞过去了!”。它观察误差缩小的快慢,并在接近目标时反向给电机施加阻力。
作用: 它是刹车和减震器。专门对付超调(冲过头)和震荡。
手感:
- D 合适: 飞机做完翻滚动作后,像磁铁吸住一样瞬间停住,没有任何回弹。
- D 高了: 电机会非常烫(因为它在疯狂做细微的微操),且飞行声音会有难听的“沙沙”声。
- D 低了: 飞机在停下时会像果冻一样回弹晃动(Bounce-back)。
综合调参总结(穿越机口诀):
- 先加 P: 加到飞机开始快速抖动(震荡),然后往回退一点。这时候飞机反应最快,但停不稳。
- 再加 D: 加上 D 来吸掉翻滚停下时的回弹。如果 D 加上去电机开始烫手,说明你 D 给多了或者 P 太高了。
- 最后补 I: 去飞个直线或者大圈,如果发现飞机总是自己慢慢偏离角度,就一点点加 I,直到它像被胶水粘在空中一样。
