第1章:传感器故障检测与隔离

各位同学,今天我们来聊聊飞控系统里最基础也最要命的一块——传感器故障处理。说白了,飞控就是靠传感器感知世界的。传感器一坏,飞机就是瞎子。

1.1 IMU故障诊断方法

IMU是惯性测量单元,包含加速度计和陀螺仪。这两个家伙一旦出问题,后果很严重。我见过不少炸机案例,追根溯源都是IMU故障没被及时发现。

基于残差的故障检测

这个方法的核心思想很简单:预测值和测量值之间的差异,就是残差。残差太大,说明有问题。

具体怎么做呢?我们拿加速度计举例。正常情况下,飞机悬停时,加速度计测到的三轴加速度应该满足:

sqrt(ax² + ay² + az²) ≈ g (重力加速度)

如果这个值偏离g太多,比如超过±0.5g,那大概率是加速度计出问题了。我习惯设置一个滑动窗口,取最近100个样本的均值来判断,这样能滤掉一些瞬时噪声。

关键点:残差阈值不能设得太死。不同机型、不同振动环境下,正常残差范围是不一样的。我建议做一次地面校准,记录下正常飞行时的残差统计值,再乘以一个安全系数(比如1.5倍)作为阈值。

基于一致性检验的方法

这个方法更聪明。它利用多个传感器之间的冗余关系来互相验证。比如,陀螺仪测角速度,加速度计测姿态,两者可以通过姿态解算互相印证。

具体流程是这样的:

  1. 用陀螺仪积分得到姿态角
  2. 用加速度计解算得到姿态角
  3. 比较两者的差值

如果差值超过某个阈值(比如5度),并且持续超过1秒,那就说明至少有一个传感器出问题了。嗯,这里要注意:机动飞行时加速度计解算的姿态不可靠,所以一致性检验只在悬停或匀速飞行时启用。

我的经验:我曾经在一个项目中遇到陀螺仪零偏缓慢漂移的问题。一致性检验帮了大忙。我设置了一个自适应阈值——根据飞行状态动态调整,悬停时严格一些,机动时宽松一些。效果很好。

1.2 磁力计异常检测

磁力计这东西,说脆弱也脆弱,说皮实也皮实。它最怕的是外部磁场干扰。电机电流、大功率线缆、甚至附近的高压线,都能让它发疯。

我常用的检测方法有两个:

  • 模值检验:地磁场强度一般在0.25-0.65高斯之间。如果磁力计三轴合成模值超出这个范围,基本可以判定异常。
  • 倾角一致性:磁力计解算的航向角,和GPS航向角(有速度时)做对比。差值超过15度就要警惕了。

警告:磁力计故障不能直接触发紧急降落。因为很多情况下只是临时干扰,比如飞过高压线塔。我建议的做法是:连续检测到异常超过3秒,才标记为故障。然后切换到GPS航向或纯惯性航向,继续完成任务。

1.3 气压计/超声波高度计故障处理

高度测量是飞控的另一个命门。气压计容易受气流和温度影响,超声波则受限于测量范围和环境反射。

气压计故障特征

我总结了几种常见故障模式:

故障类型 表现 检测方法
传感器失效 输出恒定值 方差检测(连续50个样本方差接近0)
气压管堵塞 高度变化缓慢或卡死 与加速度计积分高度对比
温度漂移 高度缓慢漂移 与GPS高度对比(有GPS时)

超声波高度计的特殊性

超声波的问题更直接。它测的是相对地面的距离,不是海拔高度。所以:

  • 地面不平整时,数据会跳变
  • 倾斜角度过大时,回波收不到
  • 软地面(草地、雪地)会吸收声波

我建议的做法是:超声波只用于低空(5米以下)的高度保持。一旦检测到数据异常(比如连续跳变超过0.5米),立即切换到气压计模式。

避坑指南:我曾经遇到过超声波在雨天完全失效的情况。雨滴会散射声波,导致测距不准。后来我在代码里加了一个湿度传感器联动逻辑——湿度超过80%时,自动降低超声波权重,增加气压计权重。这个小改动救了不少次飞行任务。

知识体系总览

下面这张图概括了本章的核心逻辑。你可以看到,传感器故障检测是一个层层递进的过程:从单传感器自检,到多传感器交叉验证,再到故障隔离和模式切换。

传感器故障检测与隔离知识体系 IMU(加速度计+陀螺仪) 磁力计 气压计/超声波 残差检测 一致性检验 模值+倾角对比 模值检验 航向一致性 外部干扰识别 方差检测 多源高度对比 环境适应性判断 IMU故障标记 磁力计异常标记 高度传感器故障 故障隔离 → 传感器权重调整 → 模式切换(GPS/惯性/视觉)

你看,整个体系其实就三个步骤:先检测,再判定,最后处理。每一步都有对应的技术手段。我个人觉得,最难的不是检测算法本身,而是阈值的设定和故障的确认时机。设得太敏感,容易误报;设得太迟钝,又可能错过最佳处理时机。

好了,这一章的内容就到这里。传感器故障检测是飞控安全的第一道防线,也是后续所有应急逻辑的基础。希望你能把这些方法真正用到自己的飞控代码里。

专注资料整理