Engee 文档

有限自动机的第一步

此示例演示 有限自动机的逻辑并不是详尽的。 有关有限自动机的更深入理解,请参阅本节中的其他文章 有限状态机.

考虑使用自动灭火系统模型的示例使用有限状态机(RC)。 最终模型将包括航天器库的主要元素。 stateflow button library:

为了便于理解 内存节点 stateflow history junction 它不会被使用。

让我们假设模型可以处于以下状态:

  • 休息(rest)-不超过最大烟雾浓度;

  • 警报(alarm)-系统开启洒水器;

  • 故障(故障)-自诊断已显示系统故障,进一步操作是不可能的。

im1

该系统有一个输入-空气中的烟雾浓度和两个输出—"喷头"和"故障灯"。 根据输入信号的值,系统切换到可能的状态之一,并相应地设置输出信号的值。:

  • 休息(休息)-喷头关闭,故障灯关闭;

  • 警报(警报)-喷头亮起,故障灯亮起;

  • 故障(故障)-喷头关闭,故障灯亮。

系统通过以下方式从一个状态转换到另一个状态 过渡:

im2

当满足模型中指定的某些*条件*('[]'`时,会发生状态之间的转换。 转换条件可以是事件、逻辑条件或时间。 在我们的示例中,从*Rest*状态转换到*Alarm*状态的条件将超过最大允许烟雾浓度,并且如果传感器显示负浓度值,则会发生*故障*。

im3

要向模型添加更复杂的条件,可以使用 节点:

im4

如果浓度过高,上层节点会阻止从*Rest*状态到*Alarm*状态的转换,因为这不符合实际情况。 相反,系统也进入*故障*状态。

自动灭火系统模型的一个例子说明了有限状态机的基本原理:将逻辑划分为状态,定义转换的条件,以及使用节点来处理更复杂的场景。 这种方法使我们能够开发一个可靠且可预测的系统,该系统能够正确响应输入信号的变化,从而在现实世界中实现时最大限度地减少错误。

有用的连结