主要内容

创建一个自定义资源收购者

这个例子展示了如何使用资源管理方法来创建一个自定义实体存储块从指定哪些实体获取资源资源池块。

假设你管理一个工厂生产零部件从两个不同的材料,材料1和材料2,履行订单。后产生的一部分,是评估的质量保证。

质量控制的两个测试方法是:

  • 测试1从材料用于生产部分1

  • 测试2是用于零件生产材料2

生产阶段后,部分是根据他们的材料标记应用正确的测试。

生成自定义行为,您创建一个对象™使用离散事件系统matlab.DiscreteEventSystem资源管理类方法。

创建离散事件系统对象

生成一个自定义实体存储块具有一个输入,一个输出,一个存储元素。

块接受一个实体类型的部分其存储容量1。实体的属性测试来表示材料的一部分。基于属性的值,指定的实体获得的资源资源池块和离开块进行测试。

看到代码来生成自定义块获取资源

自定义块的行为

  1. 定义Test1Test2类型资源收购实体类型部分

    函数resNames = getResourceNamesImpl (obj)%定义资源的名称。resNames = obj.resourceType (“部分”,{“Test1”,“Test2”});结束
  2. 实体进入存储。如果它的entity.data.Test值是1,从产生的实体Material1。实体获得1资源的资源池块的资源类型Test1。类似地,如果其entity.data.Test值是2,实体获得的一个资源资源池块的资源类型Test2

    方法函数(实体、事件)=条目(obj、存储实体,源)%在实体条目,获取指定的资源池。如果entity.data.Test== 1%如果从Material1实体,它获得Test1类型的资源。resReq = obj.resourceSpecification (“Test1”1);其他的%如果从Material2实体,它获得Test2类型的资源。resReq = obj.resourceSpecification (“Test2”1);结束%获得相应的资源池。事件= obj.eventAcquireResource (resReq,“TestTag”);结束函数(实体、事件)= resourceAcquired (obj、存储、实体、资源标签)%资源收购后,提出了实体到输出。事件= obj.eventForward (“输出”0.0、存储);结束结束

    资源是成功收购后,resourceAcquired调用实体的转发。

实现自定义的块

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

  2. 创建一个SimEvents模型使用MATLAB离散事件系统块,一个实体发电机块和一个实体终结者块,两个资源池块。如图表所示连接块。

    标签实体发电机块作为发电机和一部分实体终结者块,离开测试

  3. 在发电机部分:

    1. 实体的一代选项卡,设置生成实体在仿真开始

    2. 实体类型选项卡,设置实体类型名称作为部分属性名称测试

    3. 事件动作选项卡,生成的行动领域输入:

      实体。测试= randi([1 2]);

      部分生成的相生的时间1和他们的测试属性值是12表明材料类型。

  4. 资源池布洛克:

    1. 设置资源名称Test1可重用在释放参数

    2. 统计数据选项卡中,输出量,效果统计并连接到一个范围。

  5. 资源Pool1布洛克:

    1. 设置资源名称Test2可重用在释放参数

    2. 统计数据选项卡中,输出量,效果统计并连接到一个范围。

  6. 右键单击该实体路径生成器的一部分MATLAB离散事件系统块,并选择日志选择信号

  7. 模拟模型。

    • 观察测试传入的实体的属性值的自定义块。三个实体需要测试1和7个实体需要测试2。

    • 观察到三种类型的资源Test1是收购的实体。

    • 观察到七资源类型Test2是收购的实体。

另请参阅

|||||||

相关的话题