主要内容

事件和事件操作

离散事件仿真,事件是一个瞬时事件,可能会改变一个状态函数,输出,或其他事件的发生。通过使用SimEvents®,您可以创建自定义一个实体发生当一个事件发生时执行的操作,如当一个实体进入或退出一个街区。

事件的概述

在SimEvents,您可以指定事件动作基于实体状态。一个典型的事件序列在SimEvents模型是:

  1. 生成一个实体。

  2. 从一个实体的进步实体发电机块一个实体服务器块。

  3. 实体服务器块完成服务的实体。

  4. 实体出口实体服务器块和进入一个实体终结者块。

  5. 实体被摧毁。

当创建一个实体,进入或退出一个街区,或服务或销毁,实体的变化状态。您可以使用某些SimEvents库模块来创建这些状态更改时触发的事件动作发生。您可以编写事件操作使用:

  • MATLAB®执行计算的代码。

  • 金宝app®执行计算的函数调用,调用一个函数。

有关事件动作语言的更多信息,请参阅事件动作语言和随机数生成

事件动作编写自定义代码

创建事件动作代码和语言,在SimEvents块,选择事件动作选项卡并选择事件,调用操作。例如,在实体发电机块,有两个事件提供调用事件动作,生成退出。事件动作触发时生成一个实体或出口。

实体生成器块窗口显示生成行动领域。

如果你点击生成事件,你可以编写代码产生行动字段。

当你使用事件动作:

  • 作为MATLAB提供的实体结构,包括结构的字段代表的实体属性值。

  • 预留字段,如实体ID和实体优先级,也可以在一个单独的MATLAB结构entitySys

使用事件行为的一个例子,看到使用事件动作管理实体

SimEvents块,包括事件动作

你可以看到事件动作上可用事件动作选项卡的一个块。这些都是可能的事件,您可以创建操作。

实体发电机块 实体队列块 实体服务器块 实体终结者块 资源收购者块 实体批创造者块

实体的一代

实体进入队列

实体进入服务器

实体进入终结者

实体进入收购者

实体进入批块

实体退出块

实体退出块

服务完成实体

N /一个

实体退出收购者

实体批量代

N /一个

实体被阻塞

实体退出块

N /一个

实体被阻塞

实体退出块

N /一个

N /一个

实体被阻塞

N /一个

N /一个

实体被阻塞

N /一个

N /一个

实体是抢占

N /一个

N /一个

N /一个

这幅图显示的流动行为是实体通过一个离散事件系统仿真。

实体流和事件发生在一个存储。实体是转发到存储在存储或生成。在存储实体服务或终止。实体退出存储转发过程不是封锁了。

注:

  • 实体进入、退出和阻塞操作作为一个实体的一部分执行事件。

  • 服务完成后执行行动一个计时器事件。

  • 实体终止事件执行破坏行动。

您还可以修改实体属性(entityNameattributeName),实体优先级(sys.entity.priority)和实体的id (sys.entity.id)。然而,你不能改变实体属性或系统属性(entitySys对退出的行为)。试图在模拟更改这些值会导致一个错误。

使用事件动作的助理

事件动作助理帮助您创建代码重复序列事件动作或随机事件的行为根据统计分布。例如,访问的助理实体发电机布洛克:

  1. 打开块并选择事件动作选项卡并选择生成事件动作。

  2. 产生行动字段中,单击插入模式按钮。

实体发电机块窗口

假设您想要生成实体,并将随机属性值分配给他们。生成的值之间均匀分布01

为了实现这一行为:

  1. 选择随机数

  2. 选择一个均匀分布,设置分布参数统一的

  3. 默认情况下,最低最大参数指定为01,分别。

  4. 附加实体属性的值Attribute1,设置指定输出参数entity.Attribute1

助理创建代码。

MATLAB代码创建的助理在生成行动领域

种子的代码创建一个持久的变量。然后连接到一个随机值entity.Attribute1。你定义一个行动后,星号(*)似乎在事件动作选项卡中显示的代码称为事件。在这种情况下,后显示星号生成事件动作。

在事件动作助手的更多信息,看一下事件动作语言和随机数生成

跟踪事件与事件日历

SimEvents并不代表事件图形。相反,SimEvents软件维护一个事件日历日程事件。您可以使用事件日历观察事件当你调试SimEvents模型。有关更多信息,请参见调试SimEvents模型

你也可以与事件日历使用交互simevents.SimulationObserver方法。您可以创建一个定制事件的观察者使用这个类及其方法。有关更多信息,请参见使用SimulationObserver类监控SimEvents模型

可视化事件动作

当你创建一个事件动作,{…}徽章出现在块创建行动表明。这取决于事件动作出现的徽章有相关联的代码。

例如,这幅图显示了一个实体队列块与所调用的事件动作的实体进入和退出。

实体与事件动作队列块徽章

当你悬停在徽章上,你可以看到事件的行动。例如,这幅图描绘了一个实体退出动作。

徽章显示事件动作

双击直接打开徽章事件动作块的选项卡。

防止活锁大型有限数量的同时发生的事件

同时发生的事件事件发生在同一仿真时钟时间。活动的事件日历TT+Δt被认为同时如果0≤Δt≤128 * eps *T,在那里每股收益是在MATLAB软件和浮点相对精度T仿真时间。如果你模拟创建大量的并发事件,这个数字可能表明一个不必要的活锁的情况。在活锁的情况下,一块返回相同的状态无限经常同时即时。与这些限制SimEvents软件阻止活锁:

  • SimEvents限制每块同步事件的最大数量为5000。

  • SimEvents限制每模型同步事件的最大数量为100000。

另请参阅

||||||

相关的例子

更多关于