产品中心

致力于为用户提供创新的解决方案和高品质的产品

Stateflow

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

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

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

 

Stateflow Onramp

Free Interactive Course

设计控制逻辑

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

以图形方式设计状态机

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

设计流程图

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

以表格方式设计逻辑

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

执行和调试图表

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

执行 Stateflow 框图

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

调试 Stateflow 框图

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

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

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

可重用的图对象

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

状态机和时序逻辑

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

部署 Stateflow 应用程序

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

调度 Simulink 算法

调度在 Simulink 中建模的算法

周期和连续调度

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

时序运算符

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

验证设计和生成代码

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

验证设计

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

生成代码

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

 

SimEvents

消息通信和离散事件系统建模与仿真

使用 SimEvents,您可以研究任务定时和资源使用对分布式控制系统、软件和硬件架构及通信网络性能产生的影响。此外,还可以对有关预测、产能规划和供应链管理的决策进行运营研究。

在 Simulink 中进行离散事件仿真

SimEvents 离散事件仿真通过混合系统模型、基于智能体的模型、状态图和流程,提供分析及优化事件驱动通信的功能。

在这一集成式的建模和数据分析环境中,您可以:  为航空航天、汽车和电子应用领域设计分布式控制系统、硬件架构以及传感器和通信网络  构建流程模型,执行产能规划,优化制造和运营供应链  分析和优化端到端延迟、吞吐量、丢包以及通信网络的其他性能特征  自定义队列、路由算法、处理延迟和优先方案   仿真包含基于时间、基于事件和基于智能体组件的混合系统  仿真事件驱动的流程,例如自主智能体任务规划,或制造流程的各个阶段

实体、消息、事件和资源

SimEvents 支持您以项目、实体、消息或资源的形式对模型中要研究的离散项目进行建模

实体和消息

您可以使用 SimEvents 创建实体或消息来表示要研究的离散项目,例如通信系统中的数据包或机场滑行道上的飞机。在系统中生成、移动和处理消息或实体会引发事件,例如数据包到达或飞机起飞。反过来,这些事件又会修改系统状态,进而影响系统行为。

属性和资源

您可以使用属性表征实体,例如目标地址、处理时间或服务器延迟。实体还可以获取和释放资源,这些资源可以表示实体完成任务或事件所需的用品、设备甚至人员。

以编程方式控制事件动作和实体

您可以通过以下方法,以编程方式控制事件动作和消息或实体:  为 Generator、Queue 和 Server 等不同的模块中发生的实体事件编写 MATLAB 代码。您可以通过这些事件动作来操作实体属性和优先级。  在事件动作中,调用可以修改实体并启动常规时间驱动执行的 Simulink 函数。  使用 Stateflow Discrete-Event Chart 模块定义自定义队列、路由实体及创建自定义的实体操作算法。  使用 MATLAB Discrete Event System 模块为您的离散事件模型编写新的离散事件组件和模块。

SimEvents 模块和设计模式

SimEvents 提供多种模块,可用于在系统中创建、处理、存储和移动消息或实体及其资源。  无论是简单还是复杂的队列和服务器网络,您都可以进行建模。  通过连接门和切换模块,您可以建立实体对事件做出响应所历经的路径。这些路径可以包含延迟和选择性的切换准则。  SimEvents 中的很多参数可以用编程方式进行确定,以便对系统的概率性变化进行建模。  也可以使用 Stateflow Discrete-Event Chart 或 MATLAB Discrete-Event System 模块自行构建领域特定的模块。  此外,还可以使用 Simulink 的封装子系统和创建库等功能,将 SimEvents 子系统构建到组件模块中,以便其他用户共享和重用。  SimEvents Design Patterns 库包含用于常见设计模式的预定义模块,例如在生成实体中包含时间戳,或将实体属性提取为 Simulink 信号。

结果分析和可视化

通过动画演示、统计数据、示波器以及调试,深入了解模型行为。

动画

您可以通过内置的实体动画来观察模型内部的实体移动。也可以通过为模型中的实体和事件创建的自定义观测器来自行构建 MATLAB 动画。

统计数据和示波器

大多数 SimEvents 模块均会生成统计数据,您可以据此监控汇总测量值,例如平均服务时间、队列长度和服务器利用率。自定义的示波器则支持您使用熟悉的阶梯图和茎干图实现信号可视化。

SimEvents 调试器

SimEvents 调试器是一个独立工具,通过在每一步暂停仿真或设置断点查询仿真行为来调试模型。该调试器还会创建仿真日志,提供仿真过程中即将发生或已发生状况的详细信息。您可以检查此日志,对离散事件仿真和混合仿真进行调试。

基于事件的建模