# 基本介绍
一种闭环控制算法
u(t)=Kp[e(t)+Ti1∫0te(t)dt+Tddtde(t)](连续)
uk=Kp⋅ek+Kij=0∑kej+Kd(ek−ek−1)(离散)
算法 | 表达式 | 作用 |
---|
P 算法 | Kp⋅ek | P 算法的作用是减小测量值和理论值之间的误差(差值),让测量值不断接近理论值 |
D 算法 | Kd(ek−ek−1) | D 算法的作用是 “阻尼”。如果系统误差很大或 P 参数较大,那么 P 的输出就会很大,导致系统剧烈响应,出现过冲现象,此时就需要用到 D 算法来抑制,让系统可以刚好停在理论值而不过冲。<br /> 就好像在水中挥拳,挥的速度越快,收到水的阻力越大,越难继续挥拳。这个 “水的阻力” 跟 D 算法的作用很像,因此可以把 D 算法理解为 “阻尼”,抑制过冲现象 |
I 算法 | Ki∑j=0kej | I 算法的作用是消除稳态误差。当系统误差已经接近 0 时,P 的输出会很小,起不到继续减小误差的作用,导致误差始终没办法减小到 0。这个时候就需要用到 I 算法,让误差值不断累加,并将累加后的值输出 |
# PID 实际应用中应注意的三个点
- 读取状态的时间间隔要短,例如 5ms 或 10ms
- 每次读取的时间间隔要一致
- 状态的读取和 PID 的计算要放在一起,不要分开
# 参考视频