# 基本介绍

一种闭环控制算法

u(t)=Kp[e(t)+1Ti0te(t)dt+Tdde(t)dt](连续)u\left(t\right)=Kp\left\lbrack e\left(t\right)+\frac{1}{T_{i}}\int_0^{t}e\left(t\right)\mathrm{d}t+Td\frac{de\left(t\right)}{\mathrm{d}t}\right\rbrack_{} \tag{连续}

uk=Kpek+Kij=0kej+Kd(ekek1)(离散)u_{k}=Kp\cdot e_{k}+Ki\sum_{j=0}^{k}e_{j}+Kd\left(e_{k}-e_{k-1}\right) \tag{离散}

算法表达式作用
P 算法KpekKp\cdot e_{k}P 算法的作用是减小测量值和理论值之间的误差(差值),让测量值不断接近理论值
D 算法Kd(ekek1)Kd\left(e_{k}-e_{k-1}\right)D 算法的作用是 “阻尼”。如果系统误差很大或 P 参数较大,那么 P 的输出就会很大,导致系统剧烈响应,出现过冲现象,此时就需要用到 D 算法来抑制,让系统可以刚好停在理论值而不过冲。<br /> 就好像在水中挥拳,挥的速度越快,收到水的阻力越大,越难继续挥拳。这个 “水的阻力” 跟 D 算法的作用很像,因此可以把 D 算法理解为 “阻尼”,抑制过冲现象
I 算法Kij=0kejKi\sum_{j=0}^{k}e_{j}I 算法的作用是消除稳态误差。当系统误差已经接近 0 时,P 的输出会很小,起不到继续减小误差的作用,导致误差始终没办法减小到 0。这个时候就需要用到 I 算法,让误差值不断累加,并将累加后的值输出

# PID 实际应用中应注意的三个点

  1. 读取状态的时间间隔要短,例如 5ms 或 10ms
  2. 每次读取的时间间隔要一致
  3. 状态的读取和 PID 的计算要放在一起,不要分开

# 参考视频

  • PID 算法 - 从入门到实战!
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

宇凌喵 微信支付

微信支付

宇凌喵 支付宝

支付宝