simevents® 包含离散事件仿真引擎和组件库,可用于对 simulink 中基于消息的通信或任何事件驱动的流程进行建模,以分析事件驱动系统模型以及优化延迟、吞吐量和丢包等性能特征。队列、服务器、开关和其他预定义模块则可用于对路由、处理延迟以及调度和通信优先级建模。
使用 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 调试器是一个独立工具,通过在每一步暂停仿真或设置断点查询仿真行为来调试模型。该调试器还会创建仿真日志,提供仿真过程中即将发生或已发生状况的详细信息。您可以检查此日志,对离散事件仿真和混合仿真进行调试。