带你手撕PID算法——含公式解析、项目源码

一、PID之位式控制算法

在这里插入图片描述

1.1特点

①位式控制算法输出信号只有H、L两种状态

②算法输出信号OUT的依据:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KnmUaN5c-1649482734901)(../Desktop/md图片/image-20220409120516298.png)]

例如:

设定值为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:302080
8:313070
8:325050

微分算法:只关心有没有变化趋势不考察偏差存不存在

D(out)=Kp * D(k) + OUTo

OUTo:维持动作

六、小结

算法类型特性
比例算法只考虑现在
积分算法利用历史数据输出控制信号
微分算法只考虑最近一段时间变化

七、源码提取

链接:https://pan.baidu.com/s/1vK52bc2VBHg30hJxsp4uIQ
提取码:1111

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一口气吃不成胖子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值