4. 故障注入方法分类与选型

在航空航天HIL(硬件在环)测试中,故障注入的“层”决定了你能制造出多真实的异常,也决定了实现代价、可重复性和对被测对象的侵入程度。同一个“传感器失效”需求,既可以在物理层拔掉插头,也可以在信号层把电压拉偏,还可以在软件层把模型输出置为无效值——三者对被测ECU的刺激、可观测性和风险完全不同。因此,选型不是挑“最先进”的层,而是让故障的物理机理、被测对象的接口形态和验证目标三者对齐。

四个注入层的本质区别

物理层注入直接作用于真实硬件通路:断开线束、串入电阻、短接引脚、拔除传感器、切断供电或制造接地偏移。它最接近真实故障,能同时影响信号、阻抗和供电完整性,因此对ECU的模拟前端、上下拉网络和诊断逻辑的考核最充分。缺点是操作不可编程、重复性差、可能造成不可逆损伤,且难以在自动化测试序列中高频复用。它适合首件验证、安全关键项的最终确认,以及需要考核真实电气边界(如短路到电源、开路、接触电阻增大)的场景。

信号层注入在传感器/执行器与ECU之间的模拟信号线上做文章:用可编程电阻箱模拟热敏电阻漂移,用DAC叠加偏置电压,用继电器矩阵切换开路/短路,或在4–20 mA、0–5 V、±10 V、PWM、频率量等信号上注入增益、偏置、噪声、漂移和卡滞。它保留了真实ECU接口和线束,又具备可编程、可重复、可自动化的优点,是HIL中最常用的“电气级”故障注入方式。局限在于它通常只改变信号本身,不改变传感器内部的物理过程,对涉及多信号耦合或供电-信号交互的故障覆盖有限。

协议层注入面向总线与网络:在CAN/CAN FD、ARINC 429、MIL-STD-1553、AFDX、Ethernet等链路上制造丢帧、延迟、重复、乱序、CRC错误、ID伪造、DLC异常、总线关闭、错误帧风暴等。它不碰模拟量,而是考核通信栈、超时监控、冗余管理和故障降级策略。优点是能精确控制时序和错误模式,适合验证网络管理、健康监控和分布式系统的一致性;缺点是需要深入理解协议状态机,且某些错误(如总线关闭)会波及同一总线上的其他节点,必须隔离测试环境。

软件层注入在模型、中间件或应用代码中直接篡改数据:把模型输出的温度值置为NaN、把有效标志拉低、在状态机中强制进入故障分支、修改标定参数或注入内存位翻转。它实现成本最低、灵活性最高,能制造物理上难以复现的“逻辑故障”和“边界条件”,例如传感器值合法但变化率异常、双通道数据不一致、时间戳跳变。缺点是它绕过了真实电气接口,可能掩盖模拟前端和驱动电路的问题,因此更适合早期验证、故障树遍历和诊断逻辑的快速迭代,而不宜单独作为安全关键项的最终证据。

故障注入四层选型:从物理到软件的侵入性与覆盖范围 真实信号链 传感器 / 执行器 物理量 → 电信号 线束 / 连接器 电压、电流、阻抗 ECU 模拟前端 采样、滤波、诊断 总线 / 网络 CAN、429、AFDX 应用 / 模型 逻辑、状态、标定 ① 物理层注入 断线、短接、串电阻、拔传感器、切供电、接地偏移 优点:最真实,考核电气边界与诊断前端 缺点:不可编程、重复性差、有损伤风险 适用:首件验证、安全关键项最终确认 ② 信号层注入 电阻箱模拟热敏电阻、DAC叠加偏置、继电器切开路/短路 优点:保留真实接口,可编程、可重复、易自动化 缺点:不改变传感器内部物理过程,多信号耦合覆盖有限 适用:HIL主力,电气级故障批量回归 ③ 协议层注入 丢帧、延迟、重复、乱序、CRC错误、ID伪造、总线关闭 优点:精确控制时序与错误模式,考核通信栈与降级策略 缺点:需深入协议状态机,错误可能波及同总线其他节点 适用:网络管理、冗余切换、健康监控验证 ④ 软件层注入 模型输出置NaN、有效标志拉低、强制故障分支、标定篡改 优点:成本最低、最灵活,可制造逻辑故障与边界条件 缺点:绕过真实电气接口,可能掩盖模拟前端问题 适用:早期验证、故障树遍历、诊断逻辑迭代 侵入性高 / 真实性强 侵入性低 / 灵活性强

选型的三个判断维度

面对一个具体故障需求,建议按以下顺序判断:第一,故障的物理机理是什么?如果故障本质是“导线断了”“传感器内部短路”,物理层或信号层更贴切;如果本质是“报文没收到”“状态机卡死”,协议层或软件层更直接。第二,被测对象在哪个接口上感知故障?ECU通过模拟引脚感知的,优先信号层;通过总线接收的,优先协议层;通过内部变量感知的,软件层最省事。第三,验证目标需要多强的证据?安全关键项(如DO-178C/DO-254相关)通常要求物理层或信号层提供最终证据,软件层注入可作为补充覆盖。

典型场景的选型示例

以“大气数据计算机空速信号失效”为例,若验证目标是ECU模拟前端能否识别开路并置故障位,应选信号层:用继电器在空速信号线上制造开路,观察ECU在多少毫秒内报出“空速信号丢失”,并检查故障位是否被总线正确广播。若验证目标是飞控计算机在空速数据无效时的降级逻辑,可先用软件层把模型输出的空速置为无效标志,快速遍历降级分支;确认逻辑正确后,再用信号层注入一次真实开路作为最终确认。若验证目标是ARINC 429总线上的标签丢失,则应选协议层,在总线上停止发送特定Label,观察接收端超时和重构行为。

选型口诀:物理层求“真”,信号层求“稳”,协议层求“准”,软件层求“快”。安全关键项用物理/信号层兜底,逻辑覆盖用软件层提速,网络行为用协议层专攻。

组合使用与注意事项

实际工程中很少只用一层。推荐策略是:软件层做广度,信号层做深度,协议层做网络,物理层做确认。例如先软件层批量注入200个故障用例筛出可疑逻辑,再对其中20个用信号层复现,最后对5个安全关键项用物理层做最终验证。需要注意:协议层注入总线关闭时,务必把被测节点置于独立总线或使用总线隔离器,避免影响其他ECU;信号层注入短路到电源时,要确认ECU引脚耐受电压和限流保护,防止真实损坏;软件层注入要记录注入点、注入时刻和恢复条件,否则故障无法复现。

最后,无论选哪一层,都要在测试用例中明确注入位置、注入量级、持续时间、恢复方式和判据。例如“在ECU引脚A3处,用继电器断开信号线,持续500 ms,恢复后100 ms内故障位应清零,且总线报文中的故障码应为0x2A”。只有把层选对、参数写清、判据量化,故障注入才从“制造异常”变成“可验证的工程证据”。