使用有限状态机器状态流图表
一个有限状态机是事件驱动的反应性系统的表示,当定义更改的条件为真时,该系统从一个操作模式过渡到另一种操作模式。例如,您可以使用状态机来表示汽车的自动传输。变速箱具有操作模式,例如公园,反向,中性,驱动器和低点。当驾驶员移动齿轮时,系统从一个操作模式过渡到另一种操作模式。
种类状态流块
为了表示有限状态机的输入,输出和操作模式之间的关系,您可以添加状态流®块到模拟万博1manbetx®创建状态过渡图,状态过渡表和真相表的模型:
一个图表是基于状态过渡图的有限状态机的图形表示。在图表中,状态和过渡构成了顺序逻辑系统的基本构建块。状态对应于操作模式,过渡代表状态之间的途径。有关更多信息,请参阅使用状态表示操作模式和操作模式之间的过渡。
一个状态过渡表提供了用于建模列车状状态机的顺序逻辑的表格表示,其中模态逻辑涉及一系列状态之间的过渡。有关更多信息,请参阅状态过渡表中的状态流。
一个真相表用有限状态机的输入和输出之间的关系描述组合逻辑。有关更多信息,请参阅使用真实表来建模组合逻辑。
小费
结合国家机器编程的优势与MATLAB的完整功能®,您可以创建独立的状态流图。您可以直接通过命令窗口或使用脚本执行独立图表作为MATLAB对象。您还可以对MATLAB应用程序进行编程,该应用程序通过图形用户界面来控制图表状态。有关更多信息,请参阅创建作为MATLAB对象执行的状态流图表。
程序状态流图表
创建模拟有限状态机的状态流图:
创建一个通过调用该万博1manbetx函数的模型,该模型包含一个空的状态流图表
sfnew
。sfnew
要打开状态流编辑器,请双击图表块。有关使用状态流编辑器的更多信息,请参见状态流编辑器操作。
对于系统中的每个操作模式,绘制状态并通过添加状态标签来实现状态操作,如前所述使用状态表示操作模式。
为了组织复杂的系统,请通过在父状态内绘制儿童状态来定义状态的层次结构。例如,您可以使用超级巨星来封闭共享相同状态操作的替代。有关更多信息,请参阅使用状态层次结构设计多级状态复杂性。
要模拟同时处于活动状态的操作模式,请在父状态下启用并行(和)分解。有关更多信息,请参阅通过使用状态分解来定义独家和并行模式。
为了表示状态之间的流逻辑方向,通过添加过渡标签来绘制过渡并实现过渡条件,如操作模式之间的过渡。
要标记第一个活跃的状态,请使用默认过渡。有关更多信息,请参阅使用默认过渡来指定初始替代活动。
要创建从单个源到多个目的地或从多个来源到单个目的地的路径,请结合过渡和连接连接。有关更多信息,请参阅结合过渡和连接以创建分支路径。
如果您的系统具有输入或输出,或取决于任何状态变量,则添加输入,输出和本地数据,如图所述添加状态流数据。
如果您的系统对事件触发器有反应或必须在模型中的图表或其他块中触发操作,请添加输入,输出或本地事件,如图所述通过广播事件同步模型组件。
如果您的图表具有复杂的状态操作或过渡条件,请在图表中添加可重复使用的功能。通过从这些函数中选择状态作用或过渡条件下的计算类型,使用最自然的函数格式:
图形函数 - 封装包含逻辑和迭代环模式的流程图。看通过定义图形功能,重复使用逻辑模式。
MATLAB函数 - 编写面向矩阵的算法以进行数据分析和可视化。看通过定义MATLAB函数重复使用MATLAB代码。
万博1manbetxsimulink函数 - 通过调用simulink函数通话子系统来简化设计。看在状态流图中万博1manbetx重复使用simulink函数。
真相表 - 代表决策应用的组合逻辑。看使用真实表来建模组合逻辑。
另外,您可以编写自己的C或C ++代码以与图表集成。有关更多信息,请参阅在状态流图中重用自定义代码。
使用输入和输出端口将图表连接到Simulink模型中的其他块。万博1manbetx
要模拟模型,请单击跑。在模拟过程中,状态流编辑器突出显示了活动状态和通过图表动画进行过渡。
有关说明此工作流程的教程,请参见构建并运行状态流图。
参考
[1]哈雷尔,大卫。“ Statecharts:复杂系统的视觉形式主义。”计算机编程科学8,第3号(1987年6月):231-74。
[2] Hatley,Derek J.和Imtiaz A. Pirbhai。实时系统规范的策略。纽约,纽约:多塞特郡出版社,1988年。