使用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
由于资源的优先级。