PID控制算法

PID控制算法(基于stm32输出PWM波形的应用)

PID控制算法是基于二位式控制算法,并加以改进

1、二位式控制算法

假定用户设定的期望值为Sv,控制对象每时刻经传感器返回的值为Pv,这两个值送入二位式控制算法中进行比对,Sv>Pv时,输出高电平,驱动执行部件对控制对象的工作;Sv<=Pv时,输出低电平,执行部件不工作。缺点是当前状态值会在用户设定的期望值上下来回波动。
在这里插入图片描述

2、PID控制算法

在这里插入图片描述

1、比例控制
设定每个时刻采样的值:X1,X2,X3…Xk
Ek=Sv-Xk
(1)Ek>0,当前未达标
(2)Ek=0,达标
(3)Ek<0,当前已超标
POUT=Kp*Ek+Out(Kp可以看成放大器或者衰减器,Out为一常数,防止Ek=0时,POUT=0失控这种情况)

2、积分控制
设定每个时刻偏差值:E1,E2,E3…Ek
Sk=E1+E2+E3+…+Ek
(1)Sk>0,历史大多未达标
(2)Sk=0,正好达标
(3)Sk<0,历史大多超标
IOUT=Ki*Sk+Out(Kp可以看成放大器或者衰减器,Out为一常数,防止Sk=0时,IOUT=0失控这种情况)

Sk的处理
Sk=(1/Ti)∑EkT
T:采样周期
Ti:积分时间常数(P、I处于同一状态的时间)
在第一次达标前,Ti设大值,削弱IOUT对输出的影响,避免过冲。

3、微分控制
Dk=Ek-Ek-1
(1)Dk>0,偏差有增大趋势
(2)Dk=0,没有偏差
(3)Dk<0,偏差有减小趋势
DOUT=Kd*Dk+Out(Kp可以看成放大器或者衰减器,Out为一常数,防止Dk=0时,DOUT=0失控这种情况)

Dk的处理
Dk=Td*(Ek-Ek-1)/T
T:采样周期
Td:微分时间常数(P、D处于同一状态的时间)

三者相加 位置型PIDOUT=Kp(Ek+Sk+Dk)+Out
增量型PIDOUT=PIDOUT(k)-PIDOUT(k-1)

3.输出PWM波形

PIDOUT的处理
PIDOUT值有三种情况
假定PWM波形周期为100ms,PIDOUT大于周期就设定为100,小于0就设定为Out常数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值