注意:本篇博客主要是为了代码相关的实现进行讲解,不再过多的赘述pid相关的原理部分,如果有需要原理部分的知识,
指路一篇博客:
这篇博客对于pid的原理阐述的非常详细,大家可以基于这个进行学习。
本篇博客不会给出所有的工程文件代码,如果需要可以关注我,并在评论区留下你的邮箱看到之后会立马发送工程文件
首先我们最先关注位置版的pid控制:
int Position_PID (int Encoder,int Target)
{
float Position_KP=8,Position_KI=0.001,Position_KD=500;
static float Bias,Pwm,Integral_bias,Last_Bias;
Bias=Encoder-Target; //计算偏差
Integral_bias+=Bias; //求出偏差的积分
Pwm=Position_KP*Bias+Position_KI*Integral_bias+Position_KD*(Bias-Last_Bias); //位置式PID控制器