4. 故障检测与确认状态机设计
在故障管理系统中,传感器信号从“出现异常”到“被判定为故障”之间,必须经过一套可标定、可复现的确认逻辑。如果仅凭单次采样越界就立即置位故障,系统会被噪声和瞬态干扰频繁触发;如果确认条件过于保守,又会延误真实故障的响应。本节围绕阈值判断、持续时间、去抖动和计数器四种机制,说明如何在 Stateflow 中构建故障检测与确认状态机,并给出参数标定的具体方法。
一、四种确认机制的本质区别
阈值判断解决“信号是否越界”的问题,它是最基础的判据。例如冷却液温度正常范围为 -40~120 ℃,当采样值大于 120 ℃ 时,阈值条件成立。但阈值条件成立不等于故障成立,因为传感器噪声、电磁干扰、工况瞬变都可能造成短时越界。
持续时间机制要求越界条件连续保持一段时间才确认故障。设确认时间为 T_confirm,只有当越界标志连续为真且累计时间达到 T_confirm 时,才输出故障确认。它适合缓变型故障,如温度缓慢爬升、压力逐渐泄漏。
去抖动机制针对的是信号在阈值附近反复跳变的情况。常见实现是“连续 N 次采样同向才认可”,或“进入和退出使用不同阈值”的迟滞设计。例如温度高于 120 ℃ 进入报警,低于 115 ℃ 才退出报警,5 ℃ 的迟滞带可以有效抑制临界抖动。
计数器机制则对离散事件计数,例如“10 秒内出现 3 次越界”即确认故障。它比纯持续时间更灵活,允许越界不连续,但要求事件密度足够高。四种机制可以单独使用,也可以组合使用,组合后的确认逻辑更贴近真实工程需求。
二、Stateflow 状态机结构设计
推荐将确认状态机划分为四个状态:Normal、Pending、Confirmed 和 Cleared。Normal 表示信号正常,故障标志为 0;Pending 表示越界条件已成立,但确认条件尚未满足,此时计时器或计数器正在累加;Confirmed 表示故障已确认,故障标志置 1 并上报故障码;Cleared 表示故障恢复后的过渡状态,用于执行恢复确认和故障码清除。
状态迁移的核心逻辑如下:Normal 在越界条件成立时进入 Pending;Pending 在确认条件满足时进入 Confirmed,在越界条件消失时回退到 Normal;Confirmed 在恢复条件满足时进入 Cleared;Cleared 在恢复稳定后回到 Normal。这里的关键是 Pending 状态必须同时维护计时器和计数器,因为实际工程中往往需要“持续时间满足且计数达标”才确认故障。
三、参数标定方法
阈值标定应基于传感器量程、正常工况分布和故障边界。以冷却液温度为例,正常工况下温度在 85~105 ℃ 之间波动,故障边界设定为 120 ℃,则 TH_high 取 120 ℃,TH_low 取 115 ℃,迟滞带 5 ℃ 可以覆盖传感器噪声和工况波动。
持续时间 T_confirm 的标定需要权衡响应速度和抗干扰能力。如果 T_confirm 取 2.0 s,采样周期为 10 ms,则 Pending 状态需要连续保持 200 个采样周期。这个值可以通过分析正常工况下越界脉冲的最大持续时间来确定:若正常瞬态越界最长不超过 1.5 s,则 T_confirm 取 2.0 s 可以可靠滤除瞬态。
计数器参数 N 和窗口时间 T_window 的标定则针对间歇性故障。例如某传感器在 10 s 内出现 3 次越界,每次持续 0.3 s,若仅用持续时间机制,每次越界都不足以确认故障;但用计数器机制,3 次事件累计后即可确认。N 的取值应大于正常工况下窗口内最大越界次数,通常取 3~5 次。
四、Stateflow 实现要点
在 Stateflow 中,计时器可以用 after(T_confirm, sec) 实现,计数器则需要在 Pending 状态的 during 动作中累加。以下是一个简化的实现示例:
% Stateflow 伪代码示例
state Normal
during:
if (x > TH_high)
timer = 0;
cnt = 0;
goto Pending;
end
state Pending
during:
timer = timer + Ts;
if (x > TH_high)
cnt = cnt + 1;
end
if (timer >= T_confirm && cnt >= N)
goto Confirmed;
end
if (x < TH_low)
goto Normal;
end
state Confirmed
entry:
fault_flag = 1;
fault_code = CODE_OVER_TEMP;
during:
if (x < TH_low)
goto Cleared;
end
state Cleared
during:
if (x < TH_low && timer_clear >= T_clear)
fault_flag = 0;
goto Normal;
end
需要注意,计时器和计数器应在进入 Pending 时清零,避免上一次残留值影响本次确认。同时,Confirmed 状态应保持故障标志为 1,直到恢复条件满足并经过 Cleared 状态的恢复确认。
五、验证与结果判读
验证时,可以构造三类测试信号:第一类是持续越界信号,用于验证持续时间机制;第二类是间歇越界信号,用于验证计数器机制;第三类是阈值附近抖动信号,用于验证迟滞和去抖动效果。观察 Stateflow 的状态迁移序列和故障标志输出,判断确认逻辑是否符合预期。
例如,输入一个持续 3 s 的 125 ℃ 温度信号,采样周期 10 ms,TH_high=120 ℃,T_confirm=2.0 s,N=3。预期状态迁移为 Normal → Pending → Confirmed,故障标志在约 2.0 s 后置 1。若输入一个在 118~122 ℃ 之间抖动的信号,由于迟滞带为 115~120 ℃,信号在 120 ℃ 以上时进入 Pending,低于 115 ℃ 时才回退,抖动期间不会频繁切换状态,故障标志保持稳定。
综上,故障检测与确认状态机的设计核心在于:用阈值判断越界,用迟滞抑制抖动,用持续时间滤除瞬态,用计数器捕捉间歇故障,并在 Stateflow 中通过 Normal、Pending、Confirmed、Cleared 四个状态清晰表达确认过程。参数标定应结合信号特性和工况分布,通过测试信号验证确认逻辑的响应速度和抗干扰能力。