PID单环控制(位置环)详解及应用指南

今天我们来聊一聊pid如何控制轮子转动位置

  • 前期准备
  • 调试过程
  • 前期准备

    需要准备的几个条件:
    1.获取实时编码器的计数值
    2.写好pid控制算法的函数
    3.设定好时间多久执行一次pid计算,并设置限幅输出。
    4.多久执行一次pid输出

    接下来我们看看这几个部分的代码:
    第1部分:通过在定时器中断里来定时去计算编码器的累计值。
    请添加图片描述
    第2部分:写好pid算法
    请添加图片描述
    第三部分:我这里是50ms进行一次PID计算(放在中断时间为1ms的定时器,且累积中断50次,才进行PID计算),并设置输出限幅。
    请添加图片描述

    第4部分:多久执行一次PID输出,我这里是150ms执行一次
    请添加图片描述

    调试过程

    首先确保数据能发送给PID调试助手,我这里是50ms就上传一次波形。
    通过按键来设置我们想要达到的位置(相让车轮再正转几圈,或反转几圈),
    因为4分频,所以一圈编码器计数44次,又因为减速比为30(电机转1次,编码转30次。),所以一圈编码累计的变化次数绝对值为:44*30 = 1320.

    请添加图片描述

    接下来实际调参,用的是增量式PID(位置式效果也差不多),因为编码器有自带积分效果,所以我们积分项就设置为0,只使用PD,接下来我们看看曲线。
    请添加图片描述
    请添加图片描述
    可以看到轮子回先正转超过一圈,再反转一点,再维持再一圈的效果上,单单用位置环来控制位置,超调量明显,
    效果不理想,下章节我们来用双环pid(速度位置环)调调看。

    物联沃分享整理
    物联沃-IOTWORD物联网 » PID单环控制(位置环)详解及应用指南

    发表评论