位置式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。

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

        最后一行为返回值。

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值