数字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的控制。

猜你喜欢

转载自www.cnblogs.com/CodeWorkerLiMing/p/10659948.html
PID
今日推荐