状态机

用简化的图形形式表示事件驱动系统

状态机(或有限状态机)是事件驱动的反应性系统的表示,如果控制变化的条件满足,它就会从一个状态转换到另一个状态。状态机通常用于描述计算系统,但它们已经扩展到动态系统(如飞机、汽车、机器人和移动电话)中的复杂逻辑模型。

包含复杂逻辑的操作示例包括:

  • 为系统安排任务或步骤的顺序
  • 定义故障检测、隔离和恢复逻辑
  • 监督如何在不同的操作模式之间切换

表示状态机的方法有很多种,但图形化方法是最常见的。状态转换图,也称为状态图,是一个显示有限数量的状态的图,其中包含控制何时从一个状态转换到另一个状态的规则。

例如,您可以使用状态图来表示汽车自动齿轮变速箱的简化版本。下面显示的状态机标记了四个操作状态第一个第二个第三,第四.就像它们所代表的齿轮一样,这些状态是独占的,所以一次只有一个状态是活动的。这个状态机监视汽车的速度,并在速度超过运行中的档位的固定阈值时切换到不同的档位。

图1。使用statflow建模的自动齿轮传动系统的状态图。

状态图主要有两种类型:

  • Mealy -状态机输出不仅依赖于状态,还依赖于对系统的输入,通过在转换中定义机器输出来表示,如图2所示
  • Moore -状态机输出仅依赖于系统的状态,通过在状态上定义机器输出来表示,如图3所示

有关这些语义的更多信息,请参见Mealy和Moore机器概述

要创建模拟复杂软件组件的状态机,状态图的基本构建块是不够的。为了有效地获取系统的复杂细节,需要以下附加功能:

  • 层次结构-介绍父状态并进一步构造设计
  • 并行性和正交性-允许一个图包含多个同时运行的状态
  • 事件广播—允许两个独立的状态或状态机之间的信息交换

当这些功能与状态转换图相结合时,这些表示称为Harel状态图,或简称为状态图。

图4。使用Stateflow建模的安全系统的状态图。

有关这些功能的更多信息,请参见状态图和状态图

带有状态流的状态机

Stateflow®是一个基于有限状态机的图形化编程环境。使用Stateflow,您可以从简单的状态图开始,并构建状态图来建模动态系统中的复杂逻辑。

你可以用MATLAB®作为MATLAB对象或Simulink来执行独立的状态图®将状态图模拟为Simulink块。

有关在MATLAB或Simulink中建模和执行状态流图的更多信息,请参见模型有限状态机

要了解关于建模状态机的更多信息,请参见Stateflow而且动态仿真模块

参见:控制逻辑状态图控制系统嵌入式系统

Baidu
map