3. 故障注入核心概念与分类体系
在航天器测试与在轨健康管理中,故障注入不是“随便制造一个错误”,而是围绕故障—错误—失效这条因果链,在受控条件下把特定异常引入系统,观察其传播路径、检测时延与恢复效果。理解这三个概念的区别,是设计注入用例、判读测试结果的前提。
故障、错误与失效:一条因果链上的三个位置
三者常被混用,但在工程语义上有明确分工:
- 故障(Fault):系统内部潜在的、可能引发异常的缺陷或偏离。它可以是硬件缺陷(如某路电源输出纹波超标、星敏感器像元坏点)、软件缺陷(如姿态控制周期任务中未处理的除零分支)、设计缺陷(如遥测采样率不足导致瞬态无法捕获),也可以是外部诱因(如单粒子翻转造成的位翻转)。故障是“原因”,可能长期潜伏而不被察觉。
- 错误(Error):故障被激活后,系统内部状态出现的、与预期不一致的偏差。例如存储器某位翻转后,姿态角速度缓存值由 0.02°/s 变为 0.98°/s;或某任务因未捕获异常而进入错误分支,导致控制输出保持上一周期值。错误是“中间状态”,是故障在数据、时序或控制流上的具体体现。
- 失效(Failure):错误继续传播并超出系统可接受范围,导致系统或功能无法按规格提供服务。例如姿态控制失效导致太阳翼无法对日、星务计算机复位后关键遥测中断、载荷数据无法下传。失效是“可观测的结果”,通常由外部接口或任务指标判定。
这条链可以概括为:故障被激活 → 产生错误 → 错误传播 → 导致失效。故障注入测试的核心价值,就是在故障尚未自然发生时,人为激活它,观察错误是否被检测、被隔离、被恢复,从而验证系统的容错与恢复能力。需要特别注意的是,并非所有故障都会导致失效:若系统具备冗余、校验、限幅或重构机制,错误可能在传播途中被截断,这正是异常恢复测试要验证的关键能力。
故障注入的三个分类维度
工程上通常从层次、时机、方式三个维度对故障注入进行分类。三者不是互斥的,一个具体注入用例往往同时落在三个维度的某个交叉点上。
按层次:硬件级、软件级、系统级
硬件级注入直接作用于物理器件或电路,典型手段包括:在电源线上串入可编程电阻或电子开关模拟供电跌落;用继电器或模拟开关短接/断开某路信号;通过辐照、激光或重离子加速器诱发单粒子效应;在总线物理层注入位错误。硬件级注入最接近真实物理故障,但需要专用夹具、转接板和防护措施,成本高、可重复性相对较低。
软件级注入通过修改内存、寄存器、指令流或接口数据来模拟故障。常见实现方式有:在目标程序中插入桩代码,在指定时刻将某变量置为非法值;利用调试器或 JTAG 接口改写寄存器;通过总线监控工具篡改遥测帧中的校验字段;在操作系统层注入任务挂起、优先级反转或内存分配失败。软件级注入灵活、可重复、易于自动化,适合大批量回归测试,但需注意注入本身不能破坏被测软件的时序真实性。
系统级注入面向分系统或整器,关注接口、协议、任务流程和冗余切换。例如:切断某台星务计算机的 1553B 总线通信,观察备份机是否在约定周期内接管;向姿态控制分系统注入错误的陀螺数据,验证滤波算法能否识别并切换敏感器组合;在地面测试床上模拟测控链路中断,检查星上自主管理是否按预案进入安全模式。系统级注入通常需要多台设备协同和精确的时间同步。
按时机:设计、集成、测试、在轨
不同阶段注入的目的和约束差异很大:
- 设计阶段:以模型在环(MIL)或软件在环(SIL)为主,在仿真模型中注入传感器偏差、执行机构饱和、通信丢包等,验证算法和架构的容错设计是否合理。此时系统尚未固化,修改成本最低。
- 集成阶段:在分系统对接过程中注入接口级故障,如总线超时、协议帧格式错误、供电时序异常,重点验证接口容错和故障隔离边界。
- 测试阶段:在整器电测或环境试验中,结合真实硬件注入故障,验证 FDIR(故障检测、隔离与恢复)功能的正确性和恢复时间指标。这是最接近飞行状态的注入时机。
- 在轨阶段:受限于安全性和不可维修性,在轨注入通常以软件可逆方式为主,如通过遥控指令触发某模块的自检异常、临时屏蔽某路遥测、模拟载荷数据异常,用于在轨健康状态确认和恢复预案演练。在轨注入必须设置严格的安全边界和回滚机制。
按方式:物理、仿真、软件模拟
物理注入使用真实故障源或物理手段,如断线、短路、辐照、温度循环、振动台激励等,最真实但可控性和可观测性受限。仿真注入在数学仿真或半实物仿真环境中,通过修改模型参数或注入扰动信号实现,适合早期验证和大范围覆盖。软件模拟注入在真实软件运行过程中,通过桩、钩子、调试接口或总线代理篡改数据流,兼顾真实性和灵活性,是当前航天器测试中最常用的方式之一。
异常恢复测试的基本内涵
异常恢复测试不是单纯“注入故障看会不会坏”,而是验证系统在异常发生后能否完成检测—隔离—恢复—验证的闭环。具体来说,它要回答四个问题:
- 检测是否及时:故障激活后,系统在多长时间内通过何种手段(看门狗、校验、比较、超时、模型残差)发现异常?检测时延是否满足任务要求?
- 隔离是否准确:能否将故障限制在最小范围,避免污染其他功能或导致级联失效?隔离边界是否与设计一致?
- 恢复是否有效:系统采取何种恢复策略——重试、复位、切换冗余、降级运行、进入安全模式?恢复后关键功能是否恢复,性能是否可接受?
- 验证是否可信:恢复后系统如何确认自身状态正常?是否进行了自检、比对或遥测确认?是否存在“假恢复”风险?
以某姿态控制分系统为例:注入陀螺输出恒偏差故障后,若星务软件在 200 ms 内通过三模冗余表决检测到该陀螺与其他两路不一致,将其隔离并切换至双陀螺工作模式,同时向地面发送故障告警,则说明检测、隔离和恢复均有效。若系统仅检测到姿态角偏差增大,却未定位到具体陀螺,导致误切正常敏感器,则说明隔离策略存在缺陷,需要进一步分析故障传播路径和判据设计。
综上,故障、错误、失效构成从原因到结果的因果链;故障注入的层次、时机和方式决定了“在哪里、什么时候、用什么手段”引入异常;异常恢复测试则围绕检测、隔离、恢复、验证四个环节,检验系统在异常条件下的生存能力和任务连续性。三者共同构成航天器故障注入与异常恢复测试的概念基础。