3. 故障注入核心概念

在虚拟样机中做故障注入,最容易混淆的不是工具操作,而是概念边界。很多团队把“扰动”“故障”“错误”“失效”当成同义词使用,结果在建模时把外部干扰注入到内部状态变量上,或者在验证时把性能下降误判为功能失效,导致测试结论无法追溯。本节先把这五个概念的关系理清,再给出故障模式的分类方法,最后说明故障注入在V模型中的位置。

一、五个概念的定义与因果链

在可靠性工程与功能安全领域,这五个概念构成一条从“外部原因”到“可观测后果”的因果链,方向是单向的:

  • 扰动(Disturbance):来自系统边界之外、非设计预期的输入或环境作用。例如路面激励、电磁干扰、环境温度突变、供电电压波动。扰动本身不是系统缺陷,它只是“外部施加的作用”。
  • 故障(Fault):系统内部某个部件、信号或软件状态偏离了设计规定的行为。故障是“内部异常状态”,例如传感器增益漂移、执行器卡滞、CAN报文丢失、控制参数被错误写入。
  • 错误(Error):故障在系统内部传播后,导致某个中间变量、计算结果或数据与正确值不一致。错误是“故障在信息层面的表现”,例如滤波后的车速估计值偏离真实值、PID积分项饱和。
  • 失效(Failure):系统在规定的条件下无法完成规定功能,或功能指标超出允许范围。失效是“对外可观测的功能丧失或降级”,例如制动距离超标、转向助力完全丢失。
  • 边界条件(Boundary Condition):系统正常工作的参数范围与约束,包括输入范围、环境范围、时序约束、负载范围。边界条件定义了“正常”与“异常”的分界。

它们的关系可以概括为:扰动作用于系统,可能触发或加剧故障;故障在系统内部传播形成错误;错误若未被抑制,最终表现为失效。边界条件则决定了这条链在什么范围内被触发、在什么范围内被容忍。故障注入的本质,就是在虚拟样机中人为制造“故障”或“扰动”,观察错误如何传播、是否越过边界条件、最终是否导致失效。

关键区分:扰动是“外部输入”,故障是“内部状态”,错误是“信息偏差”,失效是“功能后果”。注入扰动不等于注入故障,注入故障也不必然导致失效——这正是边界验证要回答的问题。
扰动 → 故障 → 错误 → 失效 因果链与边界条件 边界条件(正常工作范围) 输入范围 · 环境范围 · 时序约束 · 负载范围 扰动 外部输入/环境作用 路面激励·EMI·温变 故障 内部部件/信号异常 增益漂移·卡滞·丢帧 错误 中间变量/数据偏差 估计值偏离·积分饱和 失效 功能丧失/指标超限 制动超标·助力丢失 触发 传播 越界 容错/冗余/限幅:错误被抑制,不发展为失效 超出边界 故障注入的观察点 ① 注入位置:扰动注入在边界外,故障注入在部件/信号内部 ② 观察位置:错误看中间变量,失效看系统输出与功能指标

二、故障模式分类

故障模式是故障在具体对象上的表现形式。虚拟样机中常用的分类维度有三个,它们可以组合使用,形成故障注入用例的坐标系。

按时间行为分类:永久故障(如传感器断路、执行器卡死)、间歇故障(如接触不良、偶发丢帧)、瞬态故障(如单粒子翻转、短时电压跌落)。永久故障适合用常量偏置或固定值替换建模;间歇故障需要用随机过程或马尔可夫链描述其出现概率与持续时间;瞬态故障则用脉冲或定时触发。

按数值表现分类:偏置故障(输出叠加固定偏差,如 +5%)、增益故障(输出乘以系数,如 1.2 倍)、卡滞故障(输出冻结在某一值)、漂移故障(输出随时间线性或非线性偏移)、噪声故障(输出叠加随机噪声)、丢帧故障(信号周期性缺失)。这六类在Simulink、AMESim等工具中都有对应的注入模块或可通过查表、开关、随机数组合实现。

按对象层级分类:部件级故障(单个传感器、执行器、控制器)、信号级故障(总线报文、硬线信号)、系统级故障(供电网络、通信网络、冗余通道切换失败)。层级越高,故障传播路径越长,越需要关注错误在层级间的传递与放大。

分类维度典型模式建模方式观察重点
时间行为永久/间歇/瞬态常量替换、随机过程、脉冲触发故障持续时间与恢复行为
数值表现偏置/增益/卡滞/漂移/噪声/丢帧加法、乘法、冻结、斜坡、随机叠加、开关错误幅值与传播速度
对象层级部件级/信号级/系统级模块替换、信号注入、网络仿真跨层级传播与抑制效果

三、故障注入在V模型中的位置

V模型左侧是设计分解,右侧是集成验证。故障注入不是只出现在某一侧,而是贯穿左右两侧,但目的不同。

在左侧设计阶段,故障注入用于“设计验证”:在系统架构设计、部件选型、控制策略开发时,通过注入预期故障,检查设计是否具备足够的容错能力、冗余切换是否可靠、安全机制是否在正确时机触发。此时注入的故障来自FMEA或安全分析中识别出的故障模式,属于“已知故障的主动验证”。

在右侧集成验证阶段,故障注入用于“确认与验收”:在部件集成、系统集成、整车/整机验证时,注入故障并观察系统响应是否满足安全目标与功能指标。此时更关注故障传播路径、边界条件是否被正确覆盖、诊断覆盖率是否达标。

在虚拟样机中,故障注入通常落在V模型右侧的模型在环(MIL)、软件在环(SIL)、硬件在环(HIL)环节。MIL阶段注入的是模型级故障,用于快速验证控制逻辑;SIL阶段注入的是代码级故障,用于验证软件实现;HIL阶段注入的是电气级故障,用于验证真实控制器与虚拟被控对象的交互。越往右,故障注入的保真度越高,但迭代速度越慢,因此需要在左右之间做权衡。

常见误区:把故障注入只当作HIL阶段的工作。实际上,越早注入故障,修复成本越低。在MIL阶段发现控制策略对传感器偏置无抑制能力,远比在HIL阶段发现要便宜得多。

四、边界条件与故障注入的关系

边界条件不是故障,但它决定了故障是否被触发、错误是否被放大、失效是否发生。例如,一个增益漂移故障在低速小转角工况下可能只造成微小误差,不越过边界;但在高速大转角工况下,同样的增益漂移可能使估计值超出安全阈值,触发失效。因此,故障注入用例必须与边界条件组合设计:同一故障模式,在不同边界条件下应产生不同的预期结果。

在虚拟样机中,边界条件通常以参数扫描、工况矩阵或场景序列的方式实现。例如,将车速设为 20/60/100 km/h,转角设为 30°/90°/150°,温度设为 -20/25/80 ℃,组合成工况矩阵,再在每个工况点注入同一组故障模式,观察失效边界是否与设计目标一致。这样得到的不是单点结论,而是一张“故障—边界—结果”的映射表,可直接用于安全论证与测试覆盖度评估。

总结来说,扰动、故障、错误、失效构成一条从外到内、再从内到外的因果链,边界条件定义了这条链的触发与容忍范围;故障模式分类提供了注入用例的设计维度;V模型则给出了故障注入在不同阶段的定位与目的。理解这三者的关系,是后续设计故障注入用例、搭建注入环境、判读注入结果的基础。