一、PID之位式控制算法
1.1特点
①位式控制算法输出信号只有H、L两种状态
②算法输出信号OUT的依据:
例如:
设定值为80°,当前值为50°输出高电平H
设定值为80°,当前值为100°输出低电平L
③OUT值在不停波动,要么大于设定值,要么小于设定值,不能稳定在设定值。
④控制对象因素:有一定惯性
例如:电烙铁的缓慢升温
⑤只考察我们控制对象的当前状态值
二、PID结构图
1.2
SV:用户设定值
PV:控制对象当前值
“+”:状态叠加
三、PID算法的形成
1.3数据模型:
①从开机以来,传感器的所以采样点的数据序列
②分析采样点的数据序列,可以挖掘出三方面的信息
K:代表第K次
③SV-X(K)=E(K) ----- 偏差值
OUT=Kp* E(k) ----- 比例控制
比例控制:根据当前相差比例大小输出控制信号
OUT:输出的是PWM信号
缺点:整个系统总是存在误差
改进:
P(out)=Kp*E(k)+OUTo 保持稳定
OUTo:一个常数,由用户设置
四、积分算法分析
①历史上的每一个采样点进行:
E(k)=SV-X(K)
②历史偏差序列:
E1、E2、E3、·····、E(k-2)、E(k-1)、E(k)
③历史偏差序列全部相加:
S(K)=E1+E2+E3+…+E(K-2)+E(K-1)+E(K)
注意:E(k)可能是正可能是负
∑ i = 1 n E n \sum_{i=1}^{n}E_n ∑i=1nEn
④积分算法:考虑过去一段时间的情况
I(out)=Kp*S(k)+OUTo
OUTo:防止过去影响现在
五、微分算法
①概念:取得的变化量,不能单独行动,需要最近两次的偏差值相减构成
D(k)=E(k)-E(k-1)
②利用过去的一段时间变化,预测将来这段时间的变化
③D(out)=D(k)*Kp
Kp:提高控制灵敏度,抑制将来的变化
举例: 预设100°
时间 | 当前温度 | 偏差 |
---|---|---|
8:30 | 20 | 80 |
8:31 | 30 | 70 |
8:32 | 50 | 50 |
微分算法:只关心有没有变化趋势不考察偏差存不存在
D(out)=Kp * D(k) + OUTo
OUTo:维持动作
六、小结
算法类型 | 特性 |
---|---|
比例算法 | 只考虑现在 |
积分算法 | 利用历史数据输出控制信号 |
微分算法 | 只考虑最近一段时间变化 |
七、源码提取
链接:https://pan.baidu.com/s/1vK52bc2VBHg30hJxsp4uIQ
提取码:1111