第四章:传感器原理与建模
IMU:飞控的“内耳”
IMU,也就是惯性测量单元,说白了就是飞控系统里感知自身运动状态的“内耳”。它主要由两部分组成:加速度计和陀螺仪。有些高级的IMU还会集成磁力计,但咱们通常把磁力计单独拎出来讲。
我个人习惯把IMU比作一个盲人坐在飞机里——他感觉不到外面世界的样子,但能清晰感知自己是在加速、减速还是转弯。嗯,这个比喻很形象。
加速度计:感知“重力”与“运动”
加速度计测量的是比力(specific force),也就是物体受到的惯性力与重力的合力。你想想看,当无人机悬停时,加速度计感受到的其实是重力加速度g,而不是0。这一点很多新手会搞混。
我在项目中遇到过一个问题:某款无人机在剧烈机动后,高度估计突然漂移。查了半天,发现是加速度计的振动整流误差(Vibration Rectification Error)在作怪。说白了,就是高频振动被整流成了低频的加速度偏置。
加速度计误差模型:
a_measured = a_true + b_a + s_a * a_true + n_a
其中:
b_a:零偏(bias),单位m/s²s_a:比例因子误差(scale factor error)n_a:随机噪声(白噪声+随机游走)
这里要注意,零偏是IMU最头疼的问题。我曾经调试一架六旋翼,发现悬停时姿态角有0.5度的偏差,最后定位到是加速度计Z轴的零偏没校准好。嗯,从那以后我每次上电都会做一次静态校准。
我的经验:加速度计校准最好在水平面上进行,至少采集30秒的静态数据。取平均值作为零偏,然后减去即可。别偷懒,30秒是底线。
陀螺仪:感知“旋转”
陀螺仪测量的是角速度,单位是rad/s或°/s。它比加速度计更“娇气”,因为温度变化对它的影响特别大。
我记得有一次在户外做飞行测试,气温从25度骤降到10度,陀螺仪的零偏直接漂了0.1°/s。你想想看,0.1°/s的误差积分10秒就是1度的姿态误差,这还得了?
陀螺仪误差模型:
ω_measured = ω_true + b_g + s_g * ω_true + n_g + ε_temp
其中:
b_g:零偏(bias),单位rad/ss_g:比例因子误差n_g:随机噪声ε_temp:温度相关误差
避坑指南:我曾经因为忽略了陀螺仪的温漂,导致无人机在低温环境下姿态发散。后来我加了一个简单的温度补偿模型:b_g(T) = b_g_0 + k * (T - T_0)。效果立竿见影。
磁力计:飞控的“指南针”
磁力计测量的是地球磁场,用来确定航向角(yaw)。但它有个致命弱点——容易受干扰。电机电流、铁磁材料、甚至地下的钢筋都会让它“发疯”。
我做过一个项目,在工业园区里测试无人机,磁力计数据总是跳变。后来发现是地面下的钢筋网在作怪。解决方案?要么用GPS航向替代,要么做硬铁/软铁校准。
磁力计误差模型:
m_measured = R * m_true + b_hard + S_soft * m_true + n_m
b_hard:硬铁干扰(恒定偏置)S_soft:软铁干扰(比例+旋转)n_m:随机噪声
校准方法其实很简单:拿着无人机在空中画“8”字,采集各个方向的数据,然后拟合椭球。嗯,这个操作我教过很多新手,他们总以为我在开玩笑。
GPS/RTK:飞控的“眼睛”
GPS提供位置和速度信息,但精度有限(2-5米)。RTK(实时动态差分)可以把精度提升到厘米级。说白了,RTK就是给GPS配了个“放大镜”。
我在做农业植保无人机时,RTK是标配。因为喷洒农药需要厘米级的航线精度,普通GPS根本做不到。但RTK也有坑——它需要基站和流动站之间的通信链路,一旦断链,就会降级为普通GPS。
GPS误差模型:
p_gps = p_true + b_iono + b_tropo + b_ephem + n_gps
b_iono:电离层延迟b_tropo:对流层延迟b_ephem:星历误差n_gps:接收机噪声
我的建议:在融合GPS数据时,一定要设置合理的协方差。比如,水平位置协方差设为3米,垂直位置设为5米(因为GPS垂直精度更差)。别把GPS数据当真理,它只是参考。
气压计:飞控的“高度计”
气压计通过测量大气压力来推算高度。原理很简单:气压随高度增加而降低。但实际使用中,它受天气影响很大——刮风下雨都会导致气压变化,从而引起高度估计误差。
我记得有一次在台风来临前测试无人机,气压计显示的高度一直在缓慢下降,但实际上无人机是悬停的。后来发现是气压变化导致的。从那以后,我每次飞行前都会记录地面气压作为参考。
气压计误差模型:
h_measured = h_true + b_baro + n_baro + ε_wind
b_baro:零偏(随时间缓慢变化)n_baro:测量噪声ε_wind:风扰动误差
避坑指南:我曾经在室内用气压计做高度估计,结果发现误差高达2米。为什么?因为空调的风直接吹到了气压计上。后来我给气压计加了个海绵防风罩,问题解决。
知识体系总览
下面这张图是我自己画的,把本章的知识结构梳理了一遍。你一看就明白各个传感器之间的关系了。
这张图把四个传感器的核心功能和误差来源都串起来了。你仔细看,IMU和磁力计属于“内部感知”,GPS和气压计属于“外部感知”。飞控系统需要把这两类数据融合起来,才能得到稳定可靠的姿态和位置估计。
好了,这一章的内容就到这里。传感器原理是飞控算法的基础,你把这些误差模型吃透了,后面学卡尔曼滤波就会轻松很多。