2、常用传感器原理:加速度计、陀螺仪、磁力计、气压计与误差分析

好,咱们直接进入正题。传感器融合这事儿,说白了就是让几个传感器互相“打配合”。但你要想打好配合,首先得摸清每个传感器的脾气。这一章,我就带你逐个拆解加速度计、陀螺仪、磁力计和气压计。嗯,每个我都会讲讲原理、特性,还有那些让人头疼的误差来源。

2.1 加速度计:感知“静”与“动”

加速度计,顾名思义,测的是加速度。但这里有个坑——它测的其实是“比力”,也就是物体受到的惯性力与重力的合力。你把它平放在桌上,它读出来的是1g(约9.8m/s²)向上,因为桌面在顶着它对抗重力。

工作原理:最常见的是MEMS电容式加速度计。里面有个微小的质量块,连着弹簧。加速度一来,质量块就会位移,改变电容值。测出电容变化,就能算出加速度。我个人习惯用这个模型来理解:它就像你坐在车里,急刹车时身体前倾,前倾的幅度就对应了加速度的大小。

关键特性

  • 带宽:一般能到几百Hz,够用。
  • 量程:常见的有±2g、±4g、±8g、±16g。做姿态解算,±2g就够了;要是做碰撞检测,得上±16g。
  • 噪声:低频噪声大,高频噪声小。所以它适合测静态姿态,不适合测快速旋转。

避坑指南:加速度计最怕振动。我曾经在一个无人机项目里,电机一启动,加速度计数据直接炸了。后来加了低通滤波,才把姿态稳住。

2.2 陀螺仪:感知“转”与“不转”

陀螺仪测的是角速度,也就是物体转得多快。它不关心你平不平,只关心你转没转。

工作原理:MEMS陀螺仪用的是科里奥利效应。简单说,让一个质量块高速振动,然后你一转它,振动方向就会偏,产生一个垂直于振动方向的力。测这个力的大小,就能算出角速度。你想想看,这其实挺巧妙的——用振动来感知旋转。

关键特性

  • 零偏稳定性:这是最重要的指标。好的陀螺仪零偏能到0.01°/s,差的可能0.5°/s。我建议你选型时重点关注这个。
  • 带宽:比加速度计高,能到几千Hz。
  • 温漂:温度一变,零偏就跟着跑。这是MEMS陀螺仪的通病。

我的经验:陀螺仪积分算角度,短期很准,但长期会飘。为什么?因为零偏误差一直在累积。所以它必须配合加速度计或磁力计来“拉回来”。

2.3 磁力计:感知“方向”

磁力计测的是磁场强度,说白了就是个电子指南针。它能告诉你,你的设备朝向地球的哪个方向。

工作原理:常用的是各向异性磁阻(AMR)效应。某些材料在磁场中电阻会变,测电阻变化就能算出磁场大小和方向。也有用霍尔效应的,但精度差一些。

关键特性

  • 分辨率:一般能到0.1μT,地球磁场约50μT,够用。
  • 易受干扰:这是它最大的毛病。电路板上的电流、旁边的铁磁物质,都会让它“跑偏”。
  • 需要校准:几乎每个磁力计都需要做硬铁和软铁校准。不校准的话,你转一圈,它画出来的不是圆,是个椭圆。

注意:磁力计千万别靠近扬声器、电机这些带强磁的东西。我曾经在一个机器人项目里,磁力计装在电机旁边,结果读数完全没法用。后来挪远了20厘米,才恢复正常。

2.4 气压计:感知“高度”

气压计测的是大气压强。因为气压随高度变化,所以它能用来估算海拔高度。

工作原理:MEMS气压计里有个薄膜,气压变化会让薄膜变形,改变电容值。测电容就能算出气压。现在常用的有博世的BMP280、BMP388,精度不错。

关键特性

  • 分辨率:好的气压计能分辨0.01hPa的变化,对应约10厘米的高度变化。
  • 受天气影响:气压会随天气变化,所以绝对高度不准,但相对高度变化很准。
  • 温漂:温度一变,读数就飘。好在大多数芯片内部有温度补偿。

实用技巧:我习惯用气压计做无人机的高度锁定。GPS在垂直方向误差大,气压计反而更准。但要注意,风大的时候,气压计读数会抖动,需要加滤波。

2.5 各传感器误差来源分析

好了,原理讲完了。现在咱们聊聊最头疼的部分——误差。每个传感器都有“小脾气”,你得知道它什么时候会“撒谎”。

传感器 主要误差来源 影响 应对方法
加速度计 零偏、噪声、振动干扰 静态姿态不准,动态时噪声大 低通滤波、零偏校准
陀螺仪 零偏、温漂、积分漂移 角度长期漂移,温度变化时更明显 温度补偿、与加速度计融合
磁力计 硬铁干扰、软铁干扰、地磁异常 航向不准,转圈时读数不圆 硬铁/软铁校准、椭圆拟合
气压计 温漂、天气变化、风压 绝对高度不准,相对高度抖动 温度补偿、滑动平均滤波

误差分类

  • 确定性误差:比如零偏、比例因子误差。这些可以通过校准消除。我建议每次上电都做一次静态校准。
  • 随机误差:比如白噪声、随机游走。这些没法完全消除,只能靠滤波和融合算法来抑制。
  • 环境误差:温度、振动、磁场干扰。这些需要靠硬件设计和软件补偿来应对。

我的建议:做传感器融合之前,先把每个传感器的误差模型建好。比如陀螺仪的零偏,你可以用Allan方差来分析它的噪声特性。这样后面做卡尔曼滤波时,参数才好调。

嗯,这一章的内容就到这里。记住一句话:没有完美的传感器,只有聪明的融合算法。下一章,咱们就开始讲怎么把这些传感器“揉”在一起。