理论分析:
位置闭环控制就是根据编码器的脉冲累加测量电机的位置信息,并于目标值进行比较分析,的到控制偏差,然后通过对偏差的比例、积分、微分进行控制,使偏差趋向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。
第五行保存上一次偏差便用下一次使用。文章来源:https://www.toymoban.com/news/detail-583027.html
最后一行为返回值。文章来源地址https://www.toymoban.com/news/detail-583027.html
到了这里,关于位置式PID的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!