平衡车加速度传感器方案:姿态控制 | 传感器选型指南

平衡车加速度传感器方案:姿态控制

两轮自平衡车能站住不倒,靠的就是一套反应够快的姿态检测系统。核心部件——加速度传感器和陀螺仪组成的IMU模块,每秒采集上百次数据,告诉控制器车身现在是什么角度、往哪边倾斜。选错传感器,平衡车要么晃个不停,要么直接栽跟头。

平衡车姿态检测原理

平衡车的控制逻辑其实很简单:车身向前倾,轮子就往前跑;向后仰,轮子就往后退。跑的速度和倾斜角度成正比,这样就能把车"顶"回平衡位置。这个控制周期一般在5-10毫秒,传感器数据更新慢了根本来不及反应。

姿态检测需要两个信息:倾角和角速度。倾角由加速度传感器测出来——重力在传感器三个轴上的分量能算出当前倾斜了多少度。但有个问题:加速度传感器怕震动。车轮一转、路面颠簸,测出来的角度就跳来跳去。这时候就需要陀螺仪补充角速度数据,用卡尔曼滤波或互补滤波把两个信号融合,得到既稳定又快速响应的姿态角。

加速度传感器选型要点

量程选择

平衡车正常工作时倾角很少超过±30°,但启动、急停、过坎时瞬时角度可能飙到45°以上。加速度传感器量程建议选±4g到±8g,太小容易饱和,太大又会牺牲精度。MPU6050默认±2g可配置到±16g,BMI160支持±2g到±16g,这个范围够用了。

精度与分辨率

角度精度0.1°以内算比较好的水平。14-16位ADC的传感器基本能满足,比如ICM20602内置16位ADC,理论上分辨能力在±2g量程下能达到0.06mg/LSB。当然实际精度还得看标定和滤波算法。

响应速度

输出数据速率(ODR)至少要1kHz,也就是每毫秒一个数据。BMI160在加速器模式下ODR可达1600Hz,MPU6050最高1kHz。低于这个速度,控制周期就得拉长,平衡稳定性下降。

接口与封装

I2C接口最常见,接线简单。SPI接口传输更快,适合对时延敏感的场合。封装方面,LGA和QFN用得最多,手工焊接有点麻烦,打样阶段可以考虑买转接板。

常用IMU型号推荐

型号 加速度量程 陀螺仪量程 ADC位数 接口 参考价格
MPU6050 ±2/4/8/16g ±250~2000°/s 16位 I2C ¥5-8
BMI160 ±2/4/8/16g ±125~2000°/s 16位 I2C/SPI ¥15-20
ICM20602 ±2/4/8/16g ±250~2000°/s 16位 I2C/SPI ¥20-30
LSM6DS3 ±2/4/8/16g ±125~2000°/s 16位 I2C/SPI ¥10-15

MPU6050是老牌方案,资料多、价格低,新手入门首选。缺点是已停产,市面上多为翻新或克隆芯片。BMI160是博世的新一代产品,功耗低、性能好,适合量产项目。ICM20602是TDK InvenSense的产品,性能接近BMI160,稳定性不错。LSM6DS3来自意法半导体,性价比适中。

姿态控制算法

互补滤波

最简单实用的融合算法。加速度传感器算出的角度低频特性好,陀螺仪积分得到的角度高频响应快。互补滤波就是各取所长,用一个系数把两者加权融合。公式大概是这样:

角度 = α × (角度 + 陀螺仪角速度 × dt) + (1-α) × 加速度计角度

α通常取0.95-0.98,dt是采样周期。代码不到十行,STM32F103跑起来毫无压力。

卡尔曼滤波

比互补滤波复杂,但效果更好。把姿态角和陀螺仪零偏都当作状态变量,通过预测和更新两个步骤迭代计算。对传感器噪声和漂移有更好的抑制作用,代价是运算量稍大。平衡车这个应用场景,互补滤波其实够用了,没必要杀鸡用牛刀。

PID控制

姿态角算出来后,用PID控制器把角度误差转成电机PWM输出。平衡车一般用串级PID:内环控制角速度,外环控制角度。调试时先把内环调稳,再调外环。参数整定是个细致活,P太大会震荡,D太大系统响应迟钝。

实际应用案例

某客户开发的载重平衡车,载重50kg,最高时速18km/h。IMU选的是BMI160,通过SPI连接到STM32F405。采样率设为1kHz,用互补滤波融合姿态。控制周期5ms,串级PID参数经过台架测试反复整定。最终实现原地静止稳定、爬坡15°、过减速带不倒车。

这个项目遇到过一个坑:车身共振频率正好在15Hz左右,陀螺仪原始数据在这个频率上有明显毛刺。后来在滤波环节加了个陷波滤波器,问题才解决。所以说传感器选好了不算完,信号处理同样关键。

常见问题

平衡车原地抖动

多半是D参数太大或者传感器数据抖动。检查一下原始数据是否稳定,必要时加大低通滤波强度。另外机械装配间隙太大也会引起类似问题,轴承、电机座这些地方不能晃。

平衡车启动就倒

先确认陀螺仪和加速度传感器的安装方向是否和代码一致。再检查零偏是否校准,上电时车子必须静止放在水平地面上。有些IMU上电瞬间的数据不可靠,建议丢弃前100个采样点。

行驶中方向跑偏

单电机驱动引起的。两个电机参数不可能完全一致,需要在软件里做左右轮速度补偿。另外检查车身重心是否居中,电池位置偏了也会跑偏。

选型建议

入门学习:MPU6050模块 + Arduino,成本几十块,网上例程一堆。

产品开发:BMI160或ICM20602 + STM32F4,性能稳定、供货可靠。

高端应用:考虑用六轴或九轴IMU外加独立的磁力计,支持航向角锁定,适合载重车、物流机器人。

传感器只是姿态系统的一部分,选型时还要考虑控制器的运算能力、电机的响应速度、机械结构的刚性。木桶效应在这里体现得淋漓尽致——最慢的那个环节决定了整车性能。

如有选型疑问或需要技术支持,欢迎联系我们:IMU传感器产品页

需要传感器选型支持?

现货库存,快速发货,技术支持

获取报价

电话:0755-82591179 | 邮箱:ivy@yingtexin.net