主要内容

使用MATLAB离散事件系统资源调度和数据存储内存块

这个例子展示了如何使用数据交换模型资源调度MATLAB离散事件系统块和数据存储之间的内存块。

示例模型工具,该工具可以生成两种类型的部件,部分B部分,经过加热过程。两个部分获得资源的加热过程相同的资源池。资源获取的部分拥有更高的优先级。当部分获得一定数量的资源,B部分只能获得1资源。这种约束要求的总数之间的资源共享流程和收购计划基于共享数据。

模型描述

在模型中,一个实体发电机块生成实体的类型PartA。部分然后发送到存储单元获取资源池中的资源块。块,使用MATLAB的离散事件系统PartAStorage系统对象™表示存储单元。

系统对象™定义获得资源和资源获取事件的数量部分

函数(实体、事件)= PartAEntry (obj、存储实体,源)%获得资源的数量定义为一个随机值。数量=兰迪([1 3]);resReq = obj.resourceSpecification (“资源”、数量);%定义资源收购事件。事件= obj.eventAcquireResource (resReq“ResourceAcq”);结束

部分成功获得资源,实体是转发到输出。TotalAcquiredByPartA数据存储在数据存储内存块代表获得资源的总数吗部分。系统对象™首先调用值存储在数据存储更新和写新的TotalAcquiredByPartA通过添加获取资源的数量值。

函数(实体、事件)= resourceAcquired (obj、存储、实体、资源标签)全球TotalAcquiredByPartA;%成功资源收购后,提出了实体%输出| 1 |。事件= obj.eventForward (“输出”1、obj.Delay);%更新资源的总数。TotalAcquiredByPartA = TotalAcquiredByPartA + resources.amount;结束

发送部分加热过程,这是由一个实体服务器。加热过程完成时,部分释放获得资源和离开工厂。

模型中,另一个实体发电机块生成的实体类型B部分。部分然后发送到存储单元获取资源池中的资源块。块,使用MATLAB的离散事件系统PartBStorage系统对象™代表另一个存储单元。

系统对象™定义获得资源和资源获取事件的数量B部分

函数(实体、事件)= PartBEntry (obj、存储实体,源)全球TotalAcquiredByPartA;%如果资源收购部分的数量大于% 30 B部分获得只有| 1 |资源。如果TotalAcquiredByPartA > 30数量= 1;其他的%,否则,乙方可以获得任意数量的资源% | 1 |和| 5 |。数量=兰迪([1 5]);结束resReq = obj.resourceSpecification (“资源”、数量);%定义resurce收购事件。事件= obj.eventAcquireResource (resReq“ResourceAcq”);结束

资源的数量B部分获得取决于获得的资源部分。这次收购是通过PartBStorage系统对象™,读取的值TotalAcquiredByPartA存储在数据存储为每个实体条目。

成功获取资源后,实体是转发到输出。系统对象(TM)更新TotalAcquiredByPartB并将其新值写入数据存储B。

函数(实体、事件)= resourceAcquired (obj、存储、实体、资源标签)全球TotalAcquiredByPartB;%成功后的资源收购,向前实体输出。事件=obj.eventForward (“输出”1、obj.Delay);%更新总数资源收购。TotalAcquiredByPartB=TotalAcquiredByPartB+ resources.amount;结束

然后部分被发送到加热过程b他们释放资源过程完成后,离开工厂。

跟踪资源组件模型中,可用资源和获得的资源数量的每个部分。可用的资源来衡量量,效果资源池中的数据块。所获得的资源部分B部分是观察到的输出数据存储块读过B值从数据存储和数据存储。

仿真结果

模拟模型。观察范围块连接到数据存储阅读部分的显示范围部分获得30.资源在仿真时间40

也观察范围块连接到数据存储读取一部分b显示范围B部分获得1资源在仿真时间40由于资源的优先级。

相关的话题