美发企业网站模板网站建设业务越做越累
今天我们来聊一聊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(速度位置环)调调看。
