第3章:传感器模型与噪声特性
各位同学,今天我们来聊聊传感器。说实话,做飞控这么多年,我最大的体会就是——算法再牛,也架不住传感器数据是坨屎。你想想看,姿态控制说白了就是「测量-计算-执行」的闭环,测量这一步要是歪了,后面全白搭。
这一章我会把陀螺仪、加速度计、磁力计、GPS这几个核心传感器的模型和噪声特性掰开揉碎了讲。嗯,还会重点说说Allan方差分析——这可是我当年被坑过好几次才真正搞明白的工具。
3.1 陀螺仪与加速度计模型
先说陀螺仪。它的核心输出是角速度,单位一般是 °/s 或 rad/s。理想情况下,陀螺仪的输出就是真实的角速度。但现实嘛……
我习惯把陀螺仪模型写成这样:
ω_meas = ω_true + b_gyro + n_gyro + S_gyro · ω_true + ...
这里面:
- ω_meas:测量值
- ω_true:真实角速度
- b_gyro:零偏(bias),随时间缓慢漂移
- n_gyro:白噪声,高频随机波动
- S_gyro:比例因子误差,说白了就是刻度不准
加速度计呢?它测量的是比力(specific force),也就是物体受到的惯性力减去重力。模型类似:
a_meas = a_true - g + b_acc + n_acc + S_acc · a_true
这里有个关键点——加速度计分不清重力加速度和运动加速度。我在做四旋翼悬停测试时就遇到过,电机振动导致加速度计数据全是毛刺,姿态解算直接崩了。后来加了低通滤波才稳住。
3.2 磁力计与GPS模型
磁力计,说白了就是个电子指南针。它测量的是地球磁场矢量。模型长这样:
m_meas = R · m_earth + b_mag + n_mag + H_mag · m_meas
其中 R 是旋转矩阵,b_mag 是硬铁偏差(比如电路板上的永磁体),H_mag 是软铁偏差(磁场畸变)。
我曾经在某个项目中,磁力计数据怎么校准都不对。折腾了两天,最后发现是机架上的一颗螺丝钉被磁化了……嗯,从那以后我每次装机都会用消磁器处理所有金属件。
GPS模型相对简单一些:
p_meas = p_true + n_gps
位置误差 n_gps 一般是高斯白噪声,水平精度在 2-5 米左右(单点定位)。但要注意,GPS 的更新频率很低(5-10Hz),而且高楼遮挡时信号会跳变。
3.3 传感器噪声与漂移特性
噪声和漂移,这是传感器最让人头疼的两个问题。我简单分个类:
| 特性 | 来源 | 频率特征 | 影响 |
|---|---|---|---|
| 白噪声 | 热噪声、量化噪声 | 高频,均匀分布 | 短期抖动 |
| 闪烁噪声 | 半导体缺陷 | 1/f 低频 | 长期漂移 |
| 随机游走 | 积分累积 | 低频 | 姿态发散 |
| 零偏稳定性 | 温度、老化 | 超低频 | 稳态误差 |
你想想看,陀螺仪的角速度积分一次就是角度。如果零偏是 0.1°/s,积分 10 秒就偏了 1°。这就是为什么纯陀螺仪姿态解算会越飘越远——说白了就是漂移在作怪。
加速度计也有类似问题,但它的漂移主要来自温度变化和安装误差。我习惯在每次上电后做一次静态校准,采集 100 组数据取平均,把零偏先扣掉。
3.4 Allan方差分析
好了,终于到了我最想讲的部分——Allan方差。这玩意儿是分析传感器噪声特性的利器。为什么用它?因为传统的方差只能告诉你「数据有多散」,但Allan方差能告诉你「不同时间尺度上的噪声成分」。
说白了,Allan方差就是把数据按不同时间长度分段,然后看每段的方差变化。公式长这样:
σ²(τ) = ½ · E[(θ(t+τ) - θ(t))²]
其中 θ(t) 是累积角度,τ 是相关时间。实际计算时,我们取不同 τ 值,画出 log-log 曲线。
我画了一张图,帮你理解Allan方差的分析流程:
从图上你能看到,Allan方差曲线在不同 τ 区间有不同的斜率。我总结一下规律:
- 斜率 -1/2:白噪声主导,对应角度随机游走(ARW)
- 斜率 0:闪烁噪声,对应零偏稳定性
- 斜率 +1/2:速率随机游走,低频漂移
- 斜率 +1:量化噪声
实际项目中,我一般会采集 2-3 小时的静态数据来做Allan方差分析。为什么这么久?因为你要看到低频段的漂移特性,时间太短根本看不出来。
举个例子,某款MEMS陀螺仪的Allan方差曲线在 τ=100s 时达到最小值 0.01°/s。这意味着如果你用 100 秒的滑动窗口做零偏估计,精度最高。我当年做无人机长航时飞行时,就用这个参数设计了自适应零偏补偿算法,效果立竿见影。
allanvar 函数,或者 Python 的 allantools 库。我自己写了个脚本,每次拿到新传感器都会跑一遍,把噪声参数存到配置文件里。
好了,这一章的内容就到这里。传感器模型和噪声特性是飞控系统设计的基石,你把这些搞清楚了,后面的滤波器和控制器设计才能有的放矢。记住一句话:知己知彼,百战不殆——传感器就是你的「知彼」工具。
公众号:蓝海资料掘金营,微信deep3321