Stateflow

 

Stateflow

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

 

Stateflow® 提供图形化语言,包括状态转换图状态转移图、流程图、状态转换表状态转移表和真值表。 您可以使用 Stateflow 来 描述 MATLAB® 算法和 Simulink® 模型如何对输入信号、事件和基于时间的条件作出反应。 

Stateflow 使您能够设计和开发调度控制、任务调度、故障管理、通信协议、用户界面和混合系统。  

使用 Stateflow 可以对组合和时序决策逻辑建模,将其作为 Simulink 模型内的一个模块进行仿真,或作为 MATLAB 中的一个对象加以执行。利用图形动画,您可以在逻辑正在执行时对其进行分析和调试。编辑时和运行的时检查可确保在实现前的设计一致性和完整性。

设计控制逻辑

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

以图形方式设计状态机

通过绘制由转移线连接的状态和结点,以图形方式构建状态机。您还可以使用流程图批注、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 逻辑。 

最新特性

MATLAB 中的 Stateflow 图表

以图形方式编程、调试和执行作为 MATLAB 对象的独立状态机

外部 C 代码

在 Stateflow 图中,将外部 C 代码与变更同步、错误校验、值检查以及通过 Simulink Coverage 和 Simulink Design Verifier 进行的分析完整集成

真值表编辑器

通过使用编辑时检查、动画、断点和分步调试,在 Simulink 和 Stateflow 编辑环境内设计组合逻辑

Simulink 子系统作为 Stateflow 状态

通过使用连续性和周期性 Simulink 算法进行混合系统建模来设计状态

序列查看器

直观地显示一段时间以来的状态变化、事件活动和函数调用

状态和数据可视化

将状态活动和数据从 Stateflow 直接传输给 Simulation Data Inspector

编辑时检查

在设计时发现并修复图表中的潜在问题

符号管理器

在 Stateflow 编辑器中直接创建和管理数据、事件和消息

关于这些功能和相应函数的详细信息,请参阅发行说明

获取免费试用版

30 天探索触手可及。

马上下载

准备购买?

获取详细价格和并探索相关产品。

您是学生吗?

获得 MATLAB 和 Simulink 学生版软件。

了解更多