stateflow® 提供图形化语言,包括状态转换图状态转移图、流程图、状态转换表状态转移表和真值表。 您可以使用 stateflow 来 描述 matlab® 算法和 simulink® 模型如何对输入信号、事件和基于时间的条件作出反应。
stateflow 使您能够设计和开发调度控制、任务调度、故障管理、通信协议、用户界面和混合系统。
使用 stateflow 可以对组合和时序决策逻辑建模,将其作为 simulink 模型内的一个模块进行仿真,或作为 matlab 中的一个对象加以执行。利用图形动画,您可以在逻辑正在执行时对其进行分析和调试。编辑时和运行的时检查可确保在实现前的设计一致性和完整性。
开始:
free interactive course
设计控制逻辑
使用状态机、流程图和真值表进行系统逻辑建模
以图形方式设计状态机
通过绘制由转移线连接的状态和结点,以图形方式构建状态机。您还可以使用流程图批注、simulink 子系统、matlab 代码和真值表创建函数。
设计流程图
通过绘制由结点连接的转移线来创建流程图。使用“pattern wizard 模式向导”,可以创建常用的逻辑流模式。您可以使用流程图来设计在各状态间进行转换的逻辑。
以表格方式设计逻辑
当输出完全依赖当前输入时,stateflow 中的真值表可用来在 simulink 中进行逻辑建模。状态转移表为在 simulink 中进行状态机建模提供一个结构化环境。
执行和调试图表
直观地显示系统行为以进行分析和调试
调试 stateflow 框图
stateflow 的调试功能使您得以详细地对框图的执行进行逐步调试。您可以设置断点,监视数据值,并逐步调试状态图中的不同函数。
为 matlab 应用程序开发可重用逻辑
使用 stateflow 图对象为 matlab 应用程序开发可重用逻辑。为包括测试和测量、自主系统、信号处理和通信在内的各种应用设计状态机和时序逻辑。
可重用的图对象
创建独立的 stateflow 图,以利用 matlab 语言在状态和转移操作方面的全部功能。在需要状态机和时序逻辑的应用中,使用这些图作为 matlab 对象。
状态机和时序逻辑
使用 stateflow,以图形方式设计难以采用文字方式实现的状态机和时序逻辑,从而加快 matlab 应用程序的开发。
部署 stateflow 应用程序
创建包含 stateflow 图对象的 matlab 应用程序,不需要 stateflow 即可共享这些应用程序。
调度 simulink 算法
调度在 simulink 中建模的算法
周期和连续调度
在 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 结构化文本。