打印
[STM32F0]

MPU6050对加速度积分得速度和路程的效果怎样?

[复制链接]
4137|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
btflzd|  楼主 | 2016-6-15 19:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我用030接MPU6050打印加速度 使用的是浮点小数
传感器一直放在桌上没动过(最多就打印开始和结束的时候点下鼠标)
三轴加速度一直在这附近波动
但我积分之后老是发现速度会慢慢变大 更不用说是路程
不知道是浮点算法出问题还是传感器本省的问题
我想问一下 离散成这样的加速度能使用吗?
沙发
btflzd|  楼主 | 2016-6-15 19:24 | 只看该作者
本帖最后由 btflzd 于 2016-6-15 20:21 编辑

这是打印的加速度 有时候还会突变一下 单位是 mm/s^2
每20ms会测一次数据 并进行以下积分操作 现在我是单单积分加速度  发现速度会慢慢变大 而板子明明都不动
以下使用的都是浮点型  
        current_accelerate_y=accel_y*10;                         //单位 mm/s^2       引入测量到的Y方向的加速度  
        
        true_current_accelerate_y=current_accelerate_y-parameter_accelerate_y;    //用测量得到的加速度 减去 之前用50次测量得到的平均值 得到实际的加速度 (因为三轴中的两轴由于不水平 不可避免会非0)

        true_current_speed_y=true_last_speed_y+(true_last_accelerate_y+true_current_accelerate_y)*0.01;    //*0.02/2;改成s//// *20/2; ms   公式V2=V1+(a1+a2)*20ms/2    v2 a2是本次应得到的结果   v1 a1是上次测量的结果

        true_last_accelerate_y=true_current_accelerate_y; //把本次结果赋值到下次
        true_last_speed_y=true_current_speed_y; //把本次结果赋值到下次

这个操作用浮点计算 20MS一次 会不会太快? 感觉式子本身好像没问题啊

111111.jpg (156.82 KB )

水平

水平

2222222.jpg (105.53 KB )

竖直方向

竖直方向

3333.jpg (64.19 KB )

水平

水平

使用特权

评论回复
板凳
ROOTHer| | 2016-6-17 11:26 | 只看该作者
是可以的,但是要做好滤波,本来有误差,你这样算得又很快,累计误差越来越大,最后就差别很大,只要有一点正加速度,你的速度就越来越大了。应该先获取载体在静止状态下的波动范围,然后实际使用时过滤掉低于这个波动的数值,再判定。

使用特权

评论回复
地板
电佬| | 2019-9-27 14:14 | 只看该作者
楼主,你这个功能实现了吗?我最近也在研究这个,可以说毫无头绪哎!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

52

帖子

1

粉丝