找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6313|回复: 13
收起左侧

PID如何很好的控制小车直行?

[复制链接]
ID:524791 发表于 2020-4-23 00:21 来自手机 | 显示全部楼层 |阅读模式
10黑币
我用带万向轮的三轮小车,电机是带编码器的直流电机。用同一个PID参数控制两个轮子进行速度调节。两个轮子PID调节的速度都可以在设定速度波动,偏差1-3。但是一上电,两个电机反应速度有偏差导致一开始就歪的,后面就一只歪。昨天调车子还能直线走1米,今天换了好一点轮子加了程序以后同样在速度上有很好的效果,但是偏差却特别大。可以加陀螺仪的角度PID来修正吗?

回复

使用道具 举报

ID:546770 发表于 2020-4-23 08:38 | 显示全部楼层
陀螺仪静态误差很大的,长时间积累就更大了!你试试磁力计吧!
回复

使用道具 举报

ID:524791 发表于 2020-4-23 09:41 | 显示全部楼层
小黑屋525 发表于 2020-4-23 08:38
陀螺仪静态误差很大的,长时间积累就更大了!你试试磁力计吧!

万向轮对走直线有很大的影响吗?有的话我需要换成什么呢? 现在两个驱动轮的速度没有什么偏差
回复

使用道具 举报

ID:342451 发表于 2020-4-23 09:47 | 显示全部楼层
两个轮子分别用PI调节器,目标转速相同
回复

使用道具 举报

ID:342451 发表于 2020-4-23 09:49 | 显示全部楼层
或者你说的,用一个PID控制两个轮子,差速的方式,但是这样你要增加转向环,用陀螺仪的水平角速度带入,目标角速度理论为零,左右偏转的时候,角速度的值会发生变化,这个时候,将转向环计算的值补到速度输出上去,用于自动微调
回复

使用道具 举报

ID:191511 发表于 2020-4-23 09:54 | 显示全部楼层
走直线的话,如果不需要识别黑白线,最简单就是速度控制,让左右两个轮子速度保持一致,而这个,每个轮子都有编码器,速度是可以实时得到的,建议你先看看两边轮子速度变化,是否是pid导致速度不同步本身的问题。
如果是有黑白线线路车道识别,那就根据传感器返回的偏航数据进行pid速度调整,校正车头方向。
回复

使用道具 举报

ID:524791 发表于 2020-4-23 10:34 来自手机 | 显示全部楼层
wo4fisher 发表于 2020-4-23 09:54
走直线的话,如果不需要识别黑白线,最简单就是速度控制,让左右两个轮子速度保持一致,而这个,每个轮子都 ...

我用编码器测得回来速度与目标速度偏差不大,就是1-2的样子,但是可能是电机一上电 电机的反应速度有点不太一样。偏差有点大,越走越偏
回复

使用道具 举报

ID:524791 发表于 2020-4-23 10:37 来自手机 | 显示全部楼层
之一知足 发表于 2020-4-23 09:49
或者你说的,用一个PID控制两个轮子,差速的方式,但是这样你要增加转向环,用陀螺仪的水平角速度带入,目 ...

陀螺仪可以用HMC5883L吗?现在速度与设定速度偏差很小,但是就是一接触地面就偏了,可能是轮胎与地面摩擦以后,电机的反应时间导致偏差吗?
回复

使用道具 举报

ID:546770 发表于 2020-4-23 16:07 | 显示全部楼层
lsq1142 发表于 2020-4-23 09:41
万向轮对走直线有很大的影响吗?有的话我需要换成什么呢? 现在两个驱动轮的速度没有什么偏差

我不是说你的万向轮的影响,就是你说的想用陀螺仪来测量误差吗?就是说你想用陀螺仪测量车体的角度误差还是怎么的?
回复

使用道具 举报

ID:524791 发表于 2020-4-24 11:49 来自手机 | 显示全部楼层
小黑屋525 发表于 2020-4-23 16:07
我不是说你的万向轮的影响,就是你说的想用陀螺仪来测量误差吗?就是说你想用陀螺仪测量车体的角度误差还 ...

因为我直接用PID调节速度,让两个轮子达到目标速度而达到直线行驶的效果,但是一上电以后两个轮子的对地面的摩擦力不一样,导致达到目标速度的时间不一样。所以一开始就不偏的。我是想能不能用陀螺仪记录上电时的角度让小车沿着这个角度行驶进行PID计算?或者说您常见有效的直线形式的方法是什么?应该怎么调试?每调一次PID参数让两个轮子浮空看转速调试还是在地面行驶看效果?
回复

使用道具 举报

ID:546770 发表于 2020-4-25 13:52 | 显示全部楼层
lsq1142 发表于 2020-4-24 11:49
因为我直接用PID调节速度,让两个轮子达到目标速度而达到直线行驶的效果,但是一上电以后两个轮子的对地 ...

嗯,看来我最开始猜测是正确的,其实还是最开始的问题陀螺仪几乎说是不行的,因为Z轴的数据本来就不好弄,存在漂移,所以我最开始推荐你是磁力计,这里面涉及到一些算法,然后就我一点点小看法就是:你要是想学PID控制的话为什么要做3轮的呢?做个两轮的不好吗?个人提的一点点小建议,不喜欢的话略过就好了;
回复

使用道具 举报

ID:524791 发表于 2020-5-1 22:26 | 显示全部楼层
小黑屋525 发表于 2020-4-25 13:52
嗯,看来我最开始猜测是正确的,其实还是最开始的问题陀螺仪几乎说是不行的,因为Z轴的数据本来就不好弄 ...

我是做试验然后需要用到PID,之前有了解过但是没有实践过,而且这期间不能去学校,又没人能帮我所以没经验很难调。。。
回复

使用道具 举报

ID:420836 发表于 2020-5-2 01:11 | 显示全部楼层
如果使用黑白线跟随和PID速度控制,则更精确;如果仅使用速度PID控制,则由于两个车轮之间的摩擦力和车轮牵引力不平衡,精度将不高。
回复

使用道具 举报

ID:481073 发表于 2020-5-2 08:10 | 显示全部楼层
平衡车还是得加上陀螺仪,直立环是和陀螺仪有关的,速度环才是控制转速相同的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表