跳转至

PID 控制

1158 个字 预计阅读时间 5 分钟

建模

连续系统

时域形式

\[ u(t) = K_p e(t) + K_i \int_{0}^{t} e(\tau) d\tau + K_d \dot{e}(t) \]

K 是比例,I 是一阶积分(滞后D 是一阶微分(超前)

可以测频率响应,进而使用补偿

其中: - \( u(t) \) 是控制量。 - \( e(t) \) 是误差,即设定值与实际值之间的差。 - \( K_p \) 是比例增益。 - \( K_i \) 是积分增益。 - \( K_d \) 是微分增益。 - \( \Delta e(t) \) 是误差的变化量。 - \( \Delta t \) 是时间间隔。

离散化

位置式 PID

\[ u(k) = K_p e(k) + K_i \sum_{i=0}^{k} e(i) + K_d (e(k) - e(k-1)) \]

增量式 PID

\[ \Delta u(k) = u(k) - u(k-1) \]

性能分析

抗扰性能

跟踪性能

参数整定

tuning

先是比例后积分,最后再把微分加, 曲线振荡很频繁,比例度盘要放大, 曲线漂浮绕大湾,比例度盘往小扳, 曲线偏离回复慢,积分时间往下降, 曲线波动周期长,积分时间再加长, 曲线振荡频率快,先把微分降下来, 动差大来波动慢,微分时间应加长, 理想曲线两个波,前高后低4比1, 一看二调多分析,调节质量不会低 。

先调整 P,再调整 D,最后看着调整 I

先只使用比例控制,增大 P 系数至系统震荡之后加入微分控制 D 以增大阻尼,抑制震荡,之后再结合系统对响应和静差等具体要求来调节比例 P 和积分 I 系数。

粗调 KP

  1. 先将积分、微分系数置零,这样系统就是纯比例控制。接着逐渐增大比例系数 P,直至系统出现振荡 当然,看到上面这个现象,一定要先确认一下系统硬件是否出现问题,比如电机堵转,电压不稳等,先排除硬件问题。

常见现象

  • 水温的保持中表现为温度不断上下浮动,且浮动的频率一定,最大值与最小值相差较小,
  • 在平衡车的调节中会导致平衡车一点点偏角就导致舵机打角程度十分巨大,跑起来就是左右左右不断晃动,但又勉强能跑。
  1. 我们可以看到上面比例系数过大,导致系统震荡,超调量很大。接着再逐渐减小比例系数,直至系统振荡消失。

调整 Kd

  1. 为了抑制这个小幅度超调,我们逐步增加微分比例系数 D, 直至超调量基本消失,如果此时效果较较佳,就不用考虑引入积分环节。

如上图我们可以看到引入微分环节之后,上升时间很短,超调量没有了,但是出现了静态误差。

现象

KP 调好,KI 为零,KD 调节过大时,水温会在达到目标值后猛地上升一下,然后回降一些,平衡车则会在你倾斜车身后猛地打死舵机,然后回过来一点

当你 KD 调好,那是什么情况?那就厉害了,水温可以保持一定温度挺久,平衡车可以跑得动了

调整 Ki

  1. 因为有了静态误差,我们就需要逐渐增大积分系数 I,并同时观察曲线的变化,如果消除静差的时间过长,则可以再适当增大积分系数,注意兼顾系统的最大超调量。

  2. 如果引入积分项之后系统的又出现微幅度超调,还是要继续增大点微分项来抑制,直至出现较好效果。

  3. 在工程实践中,不同的控制系统对控制效果要求不一样,比如平衡车对系统响应速度要求高,控制门窗的开合对快速性不高,但是对稳定性和准确性要求很高。所以我们要根据被控系统要求来调节参数,并不是所有系统都追求所有指标高。

PID 控制参数整定 ( 调参 ) 太高深莫测?一篇文章掌握通用调参思路 - 知乎

经验法

临界比例法

最小化积分误差

Lambda 整定

IMC 整定方法

IMC | Internal Model Control

内模控制

整定软件

可视化

智能控制系统的灵魂:深入研究 PID 控制器的算法逻辑 | Long Luo's Life Notes

使用教程讲述了单级 PID 和串级 PID 的基本实现。可以动态调节参数对小球进行控制 PID Simulator

PID 小球

PID Balancer | PID 平衡车