第1章:自检概念与分类

各位工程师,咱们今天聊聊飞控系统自检。说实话,这玩意儿看着简单,但坑不少。我做了十几年飞控,见过太多因为自检没做好,飞机在天上出幺蛾子的案例。

自检,说白了就是系统自己给自己做体检。你想想看,一架飞机飞上天之前,总得确认各个部件是不是都正常吧?这就是自检存在的意义。

1.1 什么是自检?

自检(Built-In Test,BIT)是电传飞控系统的一项核心能力。它让系统能够自动检测自身状态,判断是否存在故障。我个人习惯把自检比作「人体免疫系统」——平时不声不响,但一旦发现问题,立刻报警。

自检的核心目标有三个:

  • 检测故障:发现硬件或软件异常
  • 隔离故障:定位到具体哪个模块出了问题
  • 报告故障:把故障信息传递给飞行员或维护人员

我在项目中遇到过一件事:某次试飞前,自检报了一个舵机故障。当时大家都觉得是误报,想跳过。我坚持查一下,结果发现确实是舵机线缆松动。嗯,从那以后,没人敢轻视自检了。

1.2 自检的四大分类

飞控系统的自检,按执行时机和场景,可以分为四类。我建议你把这四类记牢,因为实际工程中天天要用到。

分类 英文缩写 执行时机 覆盖范围
上电自检 POST 系统上电瞬间 核心硬件、内存、CPU
飞行前自检 PBIT 起飞前地面准备 全系统、传感器、作动器
飞行中自检 IBIT 飞行过程中 关键功能、冗余通道
维护自检 MBIT 地面维护阶段 深度诊断、故障定位

这四类自检,就像四个不同层级的体检。上电自检是「快速筛查」,飞行前自检是「全面体检」,飞行中自检是「持续监测」,维护自检是「专项检查」。

1.3 上电自检(POST)

POST(Power-On Self-Test)是系统上电后最先执行的自检。它的特点是快——必须在几百毫秒内完成。为什么?因为飞行员等着呢。

POST主要检查:

  • CPU核心是否正常
  • 内存读写是否可靠
  • 关键寄存器能否正确配置
  • 电源电压是否在范围内

我曾经见过一个案例:某型飞控的POST只检查了内存的前64KB,结果后面有个地址线虚焊,飞了十几个架次才暴露出来。所以我现在做POST,一定会覆盖全部内存空间,哪怕多花50毫秒。

关键点:POST不能太复杂,否则上电时间过长;也不能太简单,否则漏检风险高。这是个平衡的艺术。

1.4 飞行前自检(PBIT)

PBIT(Pre-Flight Built-In Test)是起飞前,由飞行员或地勤触发的全面自检。它比POST深入得多,会检查每一个传感器、每一个作动器。

PBIT的典型流程:

  1. 初始化所有外设
  2. 逐个激活传感器,检查数据是否在合理范围
  3. 驱动舵机、阀门等作动器,验证响应是否正常
  4. 检查通信总线(如ARINC 429、CAN)是否通畅
  5. 汇总结果,显示在驾驶舱

我建议你在PBIT中增加一个「交叉验证」环节。比如,用两个不同的传感器测量同一个物理量,看结果是否一致。这能发现很多单靠自检发现不了的问题。

小技巧:PBIT的测试信号要足够小,不能真的让舵面大幅偏转。否则地勤人员站在旁边,突然舵面动一下,吓一跳不说,还可能伤人。

1.5 飞行中自检(IBIT)

IBIT(In-Flight Built-In Test)是飞机在天上时,系统持续进行的自检。它不能影响正常飞行,所以必须「偷偷摸摸」地做。

IBIT的难点在于:

  • 不能中断控制律计算
  • 不能产生额外的物理动作
  • 必须在实时性要求内完成

怎么做?我常用的方法是「空闲时间片」——在CPU处理完控制律的空隙,插入一小段自检代码。比如,每100个控制周期,抽一个周期做自检。这样对控制律的影响微乎其微。

我记得有一次,某型飞机的IBIT在特定飞行状态下触发了误报警。查了三天,发现是振动环境导致某个比较器的阈值漂了。后来我们在IBIT中加入了「多次确认」机制——连续三次检测到异常才报警,误报率直接降为零。

警告:IBIT的误报比漏报更可怕。误报会让飞行员失去对系统的信任,甚至做出错误决策。所以IBIT的阈值设置一定要留足余量。

1.6 维护自检(MBIT)

MBIT(Maintenance Built-In Test)是飞机在地面维护时,由维护人员触发的深度自检。它不追求速度,只追求全面和准确。

MBIT能做什么?

  • 逐通道测试冗余系统
  • 记录故障日志,分析历史数据
  • 校准传感器漂移
  • 验证线缆连接完整性

我参与过一个项目,MBIT能生成一份详细的「健康报告」,精确到哪个芯片的哪个引脚有问题。维护人员拿着这份报告,直接换板子就行,省去了大量排故时间。

这里有个坑:MBIT的测试用例要覆盖所有可能的故障模式。我曾经遇到过,MBIT只测试了正常工况,结果某个边缘工况下的故障完全没测出来。后来我要求测试团队必须写「故障模式覆盖矩阵」,一条一条过。

1.7 自检的层次结构

这四类自检不是孤立的,它们构成了一个层次化的体系。我画了一张图,帮你理解它们的关系:

电传飞控系统自检层次结构 上电自检(POST) 系统上电 → 核心硬件检查 → 快速通过 飞行前自检(PBIT) 地面准备 → 全系统检查 → 传感器/作动器验证 飞行中自检(IBIT) 飞行过程 → 持续监测 → 不影响控制律 维护自检(MBIT) 地面维护 → 深度诊断 → 故障定位与排除 时间维度 → 深度维度 → 快速筛查 全面检查 持续监测 深度诊断

从这张图你能看到,自检的层次是递进的。POST是基础,PBIT是扩展,IBIT是保障,MBIT是兜底。每一层都有它的职责,缺一不可。

1.8 自检设计的原则

做了这么多年飞控,我总结了几条自检设计的原则,分享给你:

  • 分层设计:不同阶段用不同的自检,不要试图用一个自检覆盖所有场景
  • 故障隔离:自检不仅要发现故障,还要能定位到可更换单元(LRU)级别
  • 避免误报:宁可漏报一次,也不要误报一次。误报会破坏信任
  • 实时性:自检不能影响主控任务的实时性,尤其是IBIT
  • 可追溯:所有自检结果都要记录日志,方便事后分析

核心思想:自检不是万能的,但没有自检是万万不能的。一个好的自检设计,能让飞控系统的可靠性提升一个数量级。

好了,这一章的内容就到这里。自检的概念和分类是飞控系统的基础,后面的章节我们会深入每个自检的具体实现。记住我今天说的这些原则,你在实际项目中会少走很多弯路。


公众号:蓝海资料掘金营,微信deep3321