主要内容

模型反应系统州流程

识别系统属性

在构建州流之前®在Simulink中的金宝app图表®模型,通过回答以下问题识别系统属性:

  1. 你的界面是什么?

    1. 系统对您的系统作出反应的事件触发了什么?

    2. 系统的输入是什么?

    3. 系统的输出是什么?

  2. 您的系统是否有任何操作模式?

    1. 如果答案是肯定的,操作模式是什么?

    2. 您可以转换哪种模式?是否有任何操作模式并行运行?

    如果您的系统没有操作模式,则系统是无国籍方式.如果您的系统有运行模式,则系统为莫代尔

选择一个状态机类型

在识别系统属性后,第一步是创建新图表。有关更多信息,请参阅sfnew..选择以下状态类型之一:

  • Classic - 默认的机器类型。为Matlab图表和C图表提供全套语义。

  • MEALY - 机器类型,输出是输入的功能州。

  • 摩尔 - 机器类型,输出是状态的函数。

有关更多信息,请参阅StateFlow对象如何在执行期间交互matlab和c为动作语言语法之间的差异,MEALY和MOORE机器概述

指定状态操作和转换条件

创建空图表后,回答以下问题:

  1. 对于每个状态,您希望执行哪些操作?

  2. 您的国家之间转换的规则是什么?如果您的图表没有状态,则流量逻辑分支之间转换的规则是什么?

使用您对这些问题的答案,指定状态操作和转换条件:

  1. 绘制状态来表示您的操作模式,如果有的话。看通过使用状态表示操作模式

  2. 通过添加使用相应语法的状态标签来实现状态操作。看states

  3. 绘制转换以表示流逻辑的方向、状态之间或流程图分支之间。看操作模式之间的转换

  4. 通过添加使用适当的语法的转换标签来实现转换条件。看过渡

定义持久化数据来存储状态变量

在向图表添加状态操作和转换条件后,确定图表是否需要任何本地或持久数据来存储状态变量。如果是这样,请按照下列步骤操作:

  1. 将本地数据添加到图表层次结构的相应级别。看添加Stateflow数据

    您还可以使用符号向导将数据添加到图表中。看通过符号向导解析符号

  2. 指定类型,大小,复杂性和其他数据属性。看设置数据属性

使用函数调用简化状态操作和转换条件

状态行动和转换条件可能是足够复杂的,以便在状态或过渡的内联定义它们是不可行的。在这种情况下,使用以下类型的状态流函数之一表达操作或条件:

  • 流程图 - 封装包含if-thel-else,switch-case的流程图,虽然是或执行else模式。

  • Matlab - 写入矩阵算法;调用MATLAB函数以进行数据分析和可视化。

  • 金宝appSimulink -调用Simulink函数直接调用子系统来简化设计并提高可读性。

  • 真值表-表示决策应用的组合逻辑,如故障检测和模式切换。

对于状态操作或转换条件中的计算类型,使用最自然的函数格式。有关这四种类型的函数的更多信息,请参阅:

如果四种类型的状态流函数不起作用,则可以编写自己的C或C ++代码以与您的图表集成。有关自定义代码集成的更多信息,请参阅在equenflow图表中重用自定义代码

检查您的系统表示是否已完成

您的状态流程图是否完全表达了系统的逻辑或事件驱动组件?

  • 如果答案是肯定的,则完成。

  • 如果答案是否定的,您可以创建一个单独的图表或在当前图表中添加层次结构。

    • 要创建一个新图表,重复这个基本工作流中的所有步骤。

    • 要添加层次结构,请在当前图表的较低级别上重复前三个步骤。