Stateflow

 

Stateflow

使用状态机与流程图进行决策逻辑的建模和仿真

开始:

Free Interactive Course

Stateflow Onramp

设计控制逻辑

使用状态机、流程图和真值表进行系统逻辑建模

以图形方式设计状态机

通过绘制由转移线连接的状态和结点,以图形方式构建状态机。您还可以使用流程图批注、Simulink 子系统、MATLAB 代码和真值表创建函数。

定义锅炉温度控制系统逻辑的 Stateflow 图。该图使用图形函数(右侧)实现加热器系统(左侧)所调用的公用程序算法。

设计流程图

通过绘制由结点连接的转移线来创建流程图。使用“Pattern Wizard 模式向导”,可以创建常用的逻辑流模式。您可以使用流程图来设计在各状态间进行转换的逻辑。

使用流程图以图形方式表示组合逻辑,如决策树和迭代循环。

以表格方式设计逻辑

当输出完全依赖当前输入时,Stateflow 中的真值表可用来在 Simulink 中进行逻辑建模。状态转移表为在 Simulink 中进行状态机建模提供一个结构化环境。

用于实施在故障检测算法中选择有效传感器读数的逻辑的真值表。

执行和调试图表

直观地显示系统行为以进行分析和调试

执行 Stateflow 框图

使用状态图动画突出显示图表中的活动状态和转移,实现系统行为的可视化。

调试 Stateflow 框图

Stateflow 的调试功能使您得以详细地对框图的执行进行逐步调试。您可以设置断点,监视数据值,并逐步调试状态图中的不同函数。

Stateflow 中的仿真数据可视化选项。左上:用于比较特定信号的 Simulink Data Inspector;左下:用于分析数据的自定义 MATLAB 界面;右侧:用于比较特定状态的 Simulink Signal Selector。

为 MATLAB 应用程序开发可重用逻辑

使用 Stateflow 图对象为 MATLAB 应用程序开发可重用逻辑。为包括测试和测量、自主系统、信号处理和通信在内的各种应用设计状态机和时序逻辑。

可重用的图对象

创建独立的 Stateflow 图,以利用 MATLAB 语言在状态和转移操作方面的全部功能。在需要状态机和时序逻辑的应用中,使用这些图作为 MATLAB 对象。

状态机和时序逻辑

使用 Stateflow,以图形方式设计难以采用文字方式实现的状态机和时序逻辑,从而加快 MATLAB 应用程序的开发。

部署 Stateflow 应用程序

创建包含 Stateflow 图对象的 MATLAB 应用程序,不需要 Stateflow 即可共享这些应用程序。

与没有 Stateflow 的用户共享包含 Stateflow 图对象的 MATLAB 应用程序。 

调度 Simulink 算法

调度在 Simulink 中建模的算法

周期和连续调度

在 Stateflow 中,可对条件逻辑、基于事件的逻辑和基于时间的逻辑建模,从而以周期或连续方式调用 Simulink 算法。编排组件的执行,以模拟实时环境的调度。

在 Stateflow 中,可对逻辑建模,从而以周期或连续方式调用 Simulink 和 MATLAB 算法。

时序运算符

使用基于事件和基于时间的运算符(如 after 和 duration),根据事件计数、经过的时间和去噪信号来指定状态转换逻辑,而无需创建和维护您自己的计时器和计数器。

验证设计和生成代码

根据需求验证您的设计,并生成代码以便在嵌入式系统中予以实现

验证设计

将 Stateflow 与其他 Simulink 产品配合使用,以对照需求验证您的设计。

使用 Model Slicer 突出显示主动逻辑。

生成代码

生成代码,以便在嵌入式系统上实现您的 Stateflow 逻辑。

  • 使用 Simulink Coder™ 从 Simulink 和 Stateflow 模型生成 C 和 C++ 代码。
  • 使用 HDL Coder™ 生成 VHDL 和 Verilog 代码进行 FPGA 和 ASIC 设计。
  • 使用 Simulink PLC Coder™ 为 PLC 和 PAC 生成 IEC 61131-3 结构化文本。

生成代码以实现 Stateflow 逻辑。 

其它 Stateflow 资源