深入理解位置式PID控制算法

理论分析:

        位置闭环控制就是根据编码器的脉冲累加测量电机的位置信息,并于目标值进行比较分析,的到控制偏差,然后通过对偏差的比例、积分、微分进行控制,使偏差趋向0的过程。

 控制框图

        上图中的目标位置一般我们可以通过按键或者开关等方式编程实现改变目标值, 测量位置前应先获取编码器的数据。   目标位置和测量位置之间做差这个就是目前系统的偏差。送入PID控制器经行运算后输出,在经过电机驱动的功率放大控制电机的转动去减少偏差,最终达到目标位置的过程。

C语言实现:

        如何把我们以上的理论分析和控制原理图使用C语言写出来,

如下:

int Position_PID (int Encoder,int Target)
{
static float Bias,Pwm,Integral_bias,Last_Bias;
Bias=Target- Encoder; //计算偏差
Integral_bias+=Bias; //求出偏差的积分
Pwm=Position_KP*Bias+Position_KI*Integral_bias+Position_KD*(Bias-Last_Bias);
Last_Bias=Bias; //保存上一次偏差
return Pwm; //输出
}

入口参数为编码器的位置测量值和位置控制的目标值,返回值为电机控制PWM,返回值为电机控制PWM。

        第一行是相关内部变量的定义。

        第二行是求出位置偏差,由测量值减去目标值。

        第三行通过累加求出偏差的积分。

        第四行使用位置式PID控制器求出电机的PWM。

        第五行保存上一次偏差便用下一次使用。

        最后一行为返回值。

物联沃分享整理
物联沃-IOTWORD物联网 » 深入理解位置式PID控制算法

发表评论