数字pid笔记(1)

针对stm32中可以如下实现:

1 p->IncrementVal = (p->Kp * (p->err - p->err_next))  
2                       + (p->Ki * p->err)          
3                       + (p->Kd * (p->err - 2 * p->err_next + p->err_last));                         
4     
5     p->err_last = p->err_next;    //更新err_2
6     p->err_next = p->err;        //更新err_1

这样就得到了误差相对于的增量,其中,kd=0;

1、kp相当于位置式pid的Kd微分量

2、ki当于位置式pid的Kp比例量

 

然后可以:

1 pwm_info.duty_cycle += p->IncrementVal;

更新pwm的占空比,用于更新加热丝的功率。

之后用stm的pwm占空比函数更新即可达到pid的控制。

转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/10659948.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值