从“恒温控制”到“功能安全状态锁定”
一、工程背景:一个看似简单、实则危险的需求
需求描述(简化版):
-
当温度低于目标值时,加热器开启
-
当温度达到目标值时,加热器关闭
-
若检测到过温,立即永久关闭加热
-
控制周期 10 ms
-
MCU 性能有限
这类需求看起来用 if-else 就能写,
但在 Stateflow 中,如果自转移和优先级没处理好,非常容易出事故。
二、为什么“加热控制”特别适合讲自转移
因为它天然包含三类行为:
-
持续调节(留在当前状态)
-
条件跳转(开 ↔ 关)
-
不可逆锁定(过温保护)
👉 三种行为,三种不同的转移诉求。
三、Stateflow 状态设计(先给结构)
INIT
↓
HEAT_OFF
└─ [Temp < T_on] → HEAT_ON
HEAT_ON
├─ [OverTemp] → LOCKED
├─ [Temp >= T_off] → HEAT_OFF
└─ [Temp <
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



