第四节:手动整定法(试凑法)——先调P,再调I,最后调D
手动整定法,圈里人叫它「试凑法」。
说白了,就是靠经验一点点试出来的。你别觉得这方法土,我做了十几年现场调试,遇到复杂工况时,最后还得靠这招兜底。自动整定工具不是万能的,有些非线性系统、大滞后系统,自动算出来的参数根本没法用。
4.1 为什么非得按P→I→D的顺序?
这个问题我刚开始学PID时也困惑过。能不能先调I?或者先调D?
我的答案是:可以,但你会把自己绕晕。
P是基础,它决定了系统最基本的响应速度。I是消除静差,D是抑制超调。这三者就像盖房子——地基没打好就装修,迟早要返工。
我在项目中遇到过一位同事,上来就调D,结果系统高频振荡,他折腾了两天没搞定。我过去一看,P值设得太小,系统本身就不稳,调D根本是白费力气。
核心口诀:
先调P,找到响应速度的基准线;
再调I,把稳态误差吃掉;
最后调D,把超调和振荡压下去。
4.2 第一步:调P——找到系统的「脾气」
调P之前,先把I和D都设成0。对,全关掉。
然后给系统一个阶跃信号,比如设定值从0跳到50%。观察响应曲线。
- P值太小:响应慢,像老牛拉车。系统半天到不了目标值,而且永远到不了——因为没I,稳态误差会一直存在。
- P值太大:系统开始振荡,像弹簧一样来回晃。严重时直接发散,系统崩溃。
- P值合适:响应快,有一点超调(10%-20%左右),然后稳定下来。虽然离目标值还有偏差,但系统是稳定的。
我个人习惯:先把P设成一个很小的值,比如0.5,然后每次翻倍往上加。观察曲线变化,直到出现持续振荡,再往回退一半。
我的经验:
调P时别追求完美。你只需要找到一个「系统稳定、响应尚可」的P值就行。剩下的交给I和D去优化。
4.3 第二步:调I——吃掉稳态误差
P调好了,系统能动了,但就是到不了目标值。比如设定100度,它停在95度就不动了。这就是稳态误差。
I的作用就是把这个误差慢慢吃掉。
调I时,保持P不变,从很小的I值开始加。比如0.01、0.02这样往上试。
- I值太小:误差消除得慢,系统要很久才能到目标值。
- I值太大:系统开始过冲,超调变大,甚至出现低频振荡。
- I值合适:误差被平稳消除,系统最终稳稳地停在目标值上。
嗯,这里要注意:I值太大会让系统变「懒」。你想想看,积分项一直在累积误差,如果累积得太快,系统就会反应过度。
避坑指南:
我曾经在一个温度控制项目上,为了追求零误差,把I值设得很大。结果系统每5分钟振荡一次,像心跳一样。后来发现是积分饱和了。记住:I不是越大越好,够用就行。
4.4 第三步:调D——抑制超调,让系统更稳
P和I调好了,系统基本能用了。但可能超调有点大,比如设定100度,它冲到120度再回来。这时候就该D上场了。
D的作用是「踩刹车」。它根据误差的变化率来提前抑制超调。
调D时,保持P和I不变,从很小的D值开始加。
- D值太小:没什么效果,超调依然存在。
- D值太大:系统变得敏感,对噪声放大严重。你会看到曲线毛刺很多,像心电图。
- D值合适:超调被压下去,系统平稳到达目标值。
说实话,D不是所有系统都需要。像温度控制这种大惯性系统,D的作用就很有限。但伺服电机、流量控制这类快速系统,D就是救星。
4.5 手动整定口诀与速查表
我整理了一个口诀,现场调试时默念一遍,基本不会乱:
手动整定口诀:
P小响应慢,P大系统晃;
I小误差在,I大过冲强;
D小没效果,D大噪声狂;
先P后I再调D,三步走完系统棒。
下面这个表是我现场常用的速查表,你可以直接拿来参考:
| 现象 | 问题 | 调整方向 |
|---|---|---|
| 响应太慢,半天到不了目标 | P太小 | 增大P |
| 系统持续振荡,停不下来 | P太大 | 减小P |
| 能到目标附近,但差一点 | I太小 | 增大I |
| 超调大,过冲明显 | I太大 或 D太小 | 减小I 或 增大D |
| 曲线毛刺多,噪声敏感 | D太大 | 减小D |
| 系统低频振荡,周期长 | I太大 | 减小I |
4.6 手动整定的核心逻辑图
下面这张图是我用手绘思路画的,把整个流程串起来了。你照着这个顺序走,基本不会出错。
这张图你看懂了吗?其实就是个循环判断的过程。每一步调完,都要观察系统响应,不合适就回头再调。别想着一步到位,那不可能。
最后说一句:
手动整定法看着简单,但真正用好需要大量实践。我建议你找个仿真平台,或者用实际设备反复练。调上几十次,你就能找到感觉了。到那时候,你闭着眼睛都能把参数整出来。
公众号:蓝海资料掘金营,微信deep3321