4. 故障注入方法体系
在虚拟样机环境中,故障注入并不是单一技术,而是一组按“抽象层级”排列的方法族。理解它们的关键,不是记住四个名词,而是看清一条从纯数字模型到真实物理世界的连续谱:越靠左,注入越早、越便宜、越可控,但离真实失效机理越远;越靠右,越接近真实故障,但成本、风险和周期急剧上升。本节围绕这条谱系,说明四类方法的实现机理、适用阶段与选择准则。
一、四类方法的实现机理
基于模型的故障注入(Model-Based)在系统模型层面直接修改模型参数或结构。典型做法有三类:一是参数扰动,例如把电机模型的定子电阻从 0.5 Ω 改为 1.2 Ω 模拟绕组老化;二是结构变更,例如在 Simulink 模型中切断某条信号线,模拟传感器断线;三是注入故障模型,例如用查表或方程描述齿轮断齿引起的周期性转矩波动。它的输入是模型参数与故障描述,输出是仿真结果中的状态量偏差。优点是可在设计早期执行、可重复、可穷举;缺点是故障模型本身可能不准确,且无法覆盖模型未描述的失效。
基于软件的故障注入(Software-Based)在编译后的目标代码或运行时环境中注入错误。常见手段包括:修改内存单元(如把某变量强制置零)、篡改寄存器、在指令流中插入跳转、劫持函数返回值。例如在嵌入式控制程序中,将 ADC 采样值读取函数返回值固定为 0x7FFF,模拟传感器饱和。它作用于真实软件栈,能暴露编译器优化、时序竞争、异常处理缺陷;但需要目标程序可执行,且注入点定位依赖调试符号,对实时性有干扰。
基于硬件的故障注入(Hardware-Based)通过物理手段改变芯片或电路的工作条件。典型方法有:电源电压拉偏(如把 3.3 V 拉到 2.6 V 触发时序违例)、时钟毛刺注入、引脚强制拉高/拉低、以及重离子或激光辐照模拟单粒子翻转。它最接近真实失效,能触发软件层难以复现的硬件缺陷;但需要专用夹具与测试板,成本高,且可能造成不可逆损伤。
基于物理的故障注入(Physics-Based)在真实物理系统或半实物平台上施加真实故障。例如在电机台架上人为制造轴承磨损、在液压回路中设置节流孔堵塞、在传感器上施加超量程压力。它使用真实部件与真实载荷,结果最具说服力,但周期长、成本高、故障不可逆,通常用于最终确认。
二、适用阶段与选择准则
选择方法时,先问三个问题:故障机理是否已知?若已知且能用方程或参数描述,优先模型法;若机理未知或涉及随机硬件失效,需硬件或物理法。目标系统是否可执行?若只有模型没有代码,软件法不可用;若已有目标板,软件法成本最低。验证目标是什么?若目标是“验证安全机制能否在故障下正确响应”,模型法足以覆盖逻辑;若目标是“证明产品在真实失效下不产生危害”,必须用物理法。
实践中四类方法并非互斥,而是按 V 模型阶段组合使用。以某电机控制器为例:设计阶段在 Simulink 中注入定子电阻漂移与位置传感器断线,验证 FOC 算法的容错逻辑;软件集成阶段在目标板上篡改 ADC 返回值,验证过流保护是否在 2 ms 内关断 PWM;硬件验证阶段对驱动芯片电源拉偏至 2.6 V,观察是否触发欠压锁定;最终在台架上人为制造编码器偏心,确认系统在真实故障下进入安全状态。这条链路的每一环都不可省略,因为越靠后的方法越能暴露前面方法遗漏的失效。
三、选择决策表
| 判断条件 | 推荐方法 | 典型注入对象 | 观察指标 |
|---|---|---|---|
| 仅有模型,无目标代码 | 基于模型 | 模型参数、信号连接 | 状态量偏差、逻辑分支 |
| 有可执行目标,需查软件缺陷 | 基于软件 | 内存、寄存器、返回值 | 异常处理、看门狗、崩溃 |
| 怀疑硬件时序/电气缺陷 | 基于硬件 | 电源、时钟、引脚 | 复位、锁定、位翻转 |
| 需最终安全确认 | 基于物理 | 真实部件、真实载荷 | 安全状态、危害程度 |
需要强调的是,方法选择还受可观测性约束。模型法能观测所有内部状态,但观测的是模型状态而非真实状态;软件法能观测程序行为,但难以观测模拟量细节;硬件法能观测芯片级响应,但难以定位到具体软件分支;物理法能观测真实输出,但内部状态往往不可见。因此,选择时还要问:我需要观测什么?若需要观测内部信号,模型法最方便;若需要观测最终安全状态,物理法最直接。
最后,故障注入的覆盖度应作为选择依据之一。模型法可在一次仿真中注入数百个故障点,适合做故障模式覆盖分析;软件法受限于注入点数量与调试接口,通常覆盖数十个关键变量;硬件法每次只能针对一个引脚或一个电源域,覆盖度低但深度高;物理法每次只能复现一种真实故障,覆盖度最低但置信度最高。合理策略是:用模型法做广度扫描,用软件法做关键路径确认,用硬件法做电气边界验证,用物理法做最终安全鉴定。