Stateflow 提供图形化语言,包括状态转换图状态转移图、流程图、状态转换表状态转移表和真值表。 您可以使用 Stateflow 来 描述 MATLAB 算法和 Simulink 模型如何对输入信号、事件和基于时间的条件作出反应。
Stateflow 使您能够设计和开发调度控制、任务调度、故障管理、通信协议、用户界面和混合系统。
使用 Stateflow 可以对组合和时序决策逻辑建模,将其作为 Simulink 模型内的一个模块进行仿真,或作为 MATLAB 中的一个对象加以执行。利用图形动画,您可以在逻辑正在执行时对其进行分析和调试。编辑时和运行的时检查可确保在实现前的设计一致性和完整性。
开始:
免费交互式课程
Stateflow Onramp
以图形方式设计状态机
通过绘制由转移线连接的状态和结点,以图形方式构建状态机。您还可以使用流程图批注、Simulink 子系统、MATLAB 代码和真值表创建函数。
设计流程图
通过绘制由结点连接的转移线来创建流程图。使用“Pattern Wizard 模式向导”,可以创建常用的逻辑流模式。您可以使用流程图来设计在各状态间进行转换的逻辑。
以表格方式设计逻辑
当输出完全依赖当前输入时,Stateflow 中的真值表可用来在 Simulink 中进行逻辑建模。状态转移表为在 Simulink 中进行状态机建模提供一个结构化环境。
调试 Stateflow 框图
Stateflow 的调试功能使您得以详细地对框图的执行进行逐步调试。您可以设置断点,监视数据值,并逐步调试状态图中的不同函数。
可重用的图对象
创建独立的 Stateflow 图,以利用 MATLAB 语言在状态和转移操作方面的全部功能。在需要状态机和时序逻辑的应用中,使用这些图作为 MATLAB 对象。
状态机和时序逻辑
使用 Stateflow,以图形方式设计难以采用文字方式实现的状态机和时序逻辑,从而加快 MATLAB 应用程序的开发。
部署 Stateflow 应用程序
创建包含 Stateflow 图对象的 MATLAB 应用程序,不需要 Stateflow 即可共享这些应用程序。
周期和连续调度
在 Stateflow 中,可对条件逻辑、基于事件的逻辑和基于时间的逻辑建模,从而以周期或连续方式调用 Simulink 算法。编排组件的执行,以模拟实时环境的调度。
时序运算符
使用基于事件和基于时间的运算符(如 after 和 duration),根据事件计数、经过的时间和去噪信号来指定状态转换逻辑,而无需创建和维护您自己的计时器和计数器。
验证设计
将 Stateflow 与其他 Simulink 产品配合使用,以对照需求验证您的设计。
- 借助 Requirements Toolbox,可使用拖放操作将需求直接链接到 Stateflow 对象。
- 使用 Simulink Check 检查您的状态图是否符合标准。
- 借助 Simulink Coverage 收集模型和生成的代码的覆盖度指标。
- 使用 Simulink Design Verifier 检测设计错误并生成测试向量。
- 借助 Simulink Test 开发、管理和执行基于仿真的测试。
生成代码
生成代码,以便在嵌入式系统上实现您的 Stateflow 逻辑。
- 使用 Simulink Coder 从 Simulink 和 Stateflow 模型生成 C 和 C++ 代码。
- 使用 HDL Coder 生成 VHDL 和 Verilog 代码进行 FPGA 和 ASIC 设计。
- 使用 Simulink PLC Coder 为 PLC 和 PAC 生成 IEC 61131-3 结构化文本。