主要内容

自定义实体存储块与多个计时器事件

不同的事件类型的离散事件系统允许实现操纵实体和存储。有时候,期望的行为涉及到多个事件作用于相同的存储或实体。这个例子展示了如何处理多个事件作用于同一个目标在离散事件系统框架。在本例中,生成一个自定义实体存储块来实现的标签,这是一个标识符,当多个计时器事件作用于同一个实体。事件标识符的列表,看看使用事件和事件操作自定义离散事件系统行为

打开模型和观察的行为定义块,明白了CustomEntityStorageBlockWithTwoTimerEventsExample

创建离散事件系统与多个计时器事件对象

假设离散事件系统对象™用于表示一个设施处理金属零件使用烤箱。基于检测到金属的处理时间不同。为了安全,部分有一个最大允许处理时间。

  • 如果烤箱处理时间小于允许的最长时间,零件加工和离开烤箱和设施。

  • 如果有一个错误在检测到金属,服务时间超过最大允许处理时间,这个过程停止,部分取出烤箱的路线进行进一步处理。

代表这种行为,这个示例使用一个自定义实体存储块和一个输入,两个输出,存储元素。一个实体类型的部分超时属性输入自定义的存储块处理。超时决定了零件的最大允许处理时间。当一个部分进入存储、两个计时器事件被激活。一个定时器跟踪处理时间的烤箱。这个定时器到期时,实体是转发到输出1。另一个计时器作为一个故障保险和跟踪如果超过最大允许处理时间。这个定时器到期时,流程终止和实体是转发到输出2

这个例子中,生成自定义的块和惟一地标识目标这两个计时器事件在同一实体使用自定义标签。

查看代码生成定制的存储块计时器事件

自定义块的行为

  1. 生成一个自定义的块和一个输入,两个输出,存储元素。创建一个基本的存储元素的更多信息,见实现一个离散事件系统对象与MATLAB离散事件系统

    函数num = getNumInputsImpl (~) num = 1;结束函数num = getNumOutputsImpl (~) num = 2;结束函数entityTypes = getEntityTypesImpl (obj) entityTypes = obj.entityType (“部分”);结束函数[inputTypes, outputTypes] = getEntityPortsImpl (obj) inputTypes = {“部分”};outputTypes = {“部分”“部分”};结束函数[storageSpecs, I, O] = getEntityStorageImpl (obj) storageSpecs = obj.queueFIFO (“entity1”,obj.Capacity);I = 1;O = [1];结束
  2. 调用两个定时器和标记“超时”“ProcessComplete”当一个实体进入存储。

    函数(实体、事件)= PartEntry (obj、存储实体,源)%指定事件动作当实体进入存储。randi ProcessingTime = (15 [1]);%超时属性指定超时计时器过期时间的标签event1 = obj.eventTimer (“超时”,entity.data.TimeOut);%的过期时间计时器ProcessComplete之间的一个随机整数% 1和15。event2 = obj.eventTimer (“ProcessComplete”,ProcessingTime);事件= [event1 event2];结束
  3. 计时器到期后第一个决定了实体行为。

    函数(实体、事件)=计时器(obj、存储实体,标签)%为当预定定时器完成指定事件动作。事件= obj.initEventArray;开关标签情况下“ProcessComplete”%如果ProcessComplete到期,实体是转发到输出1。事件= obj.eventForward (“输出”1 0);情况下“超时”%如果超时过期,实体是转发到输出2。事件= obj.eventForward (“输出”2 0);结束结束

实现自定义的块

  1. 保存。m文件CustomEntityStorageBlockTimer。链接SimEvents的系统对象®模型通过使用一个MATLAB离散事件系统块。关于链接的更多信息,请参阅创建自定义模块使用MATLAB的离散事件系统

  2. 创建一个包括SimEvents模型MATLAB离散事件系统块,一个实体发电机块,两个实体终结者块。连接块如图所示的模型。

  3. 实体发电机布洛克:

    1. 实体类型选项卡,设置属性名称作为超时

    2. 事件动作选项卡,产生行动字段:

      实体。超时= 10;
  4. 实体终结者实体Terminator1块,输出数量的实体来了,统计并连接范围。

  5. 增加仿真时间One hundred.和模拟模型。观察到实体是转发到相应的输出基于相应的定时器过期。

另请参阅

|||||||

相关的话题