使用事件操作管理实体

这个例子演示了如何在一个简单的队列系统中控制实体生成速率和编写事件操作来更改实体属性。在离散事件模拟中事件是瞬时事件可能改变的状态变量,一个输出端,或其他事件的发生的观察。SimEvents®可以让你在事件发生时创建自定义操作。这些动作称为事件动作。事件可以有相应的操作。可以使用MATLAB编写事件操作来更改实体属性®代码或Simul金宝appink中®功能。

从一个简单的排队系统开始

这是一个简单排队系统与实体发生器,实体队列,实体服务器,和实体终结者块。在这个例子中,实体表示到达一个加油站卡车的罐。实体的属性表示在一个罐中的当前气体水平。事件的行动表示油箱中气体水平的变化。罐是随机生成的,排队的,并且它们被与一个泵,其传递气体的恒定量一秒钟提供服务。坦克从与他们的新的总气量站离开。

修改模型

  1. 选择整个模型或从实体路径始发实体发电机实体队列,实体服务器块,然后右键单击选择登录选择的信号。仿真数据检查用于显现罐的流动,并在模型中它们的气体水平。欲了解更多信息,请参阅检查模拟数据(金宝appSIMULINK)。

  2. 重命名实体发电机块体作为罐式发电机,其实体队列块作为等待队列实体服务器块作为泵,并且实体终结者块作为退出。

  3. 重命名从罐发生器块作为坦克到队列,等待队列块作为罐的泵,并且泵块作为坦克到退出路径始发。

配置和模拟模型

  1. 双击坦克发电机,并选择实体类型选项卡。改变实体类型名称属性名称CurrentGasLevel

    实体属性CurrentGasLevel表示气体在每个箱中的存在量。

  2. 模拟模型。打开仿真数据检查。观察该坦克接近等待队列,泵,并用同样的速度退出。

    坦克离开车站与他们最初的气体量1哪一个是属性初始值

  3. 打开油箱Generator模块参数对话框。在里面实体的一代选项卡,设置时间源Matlab的行动。观察默认的MATLAB代码。

    DT =兰特(1,1);

    该代码会随机实体代际时间参数DT表示随机到达的坦克。

  4. 模拟更新的模型。在里面仿真数据检查,观察到与水箱相同的初始气体量随机到达1

    观察该坦克是随机生成的,但他们的做法与规定的固定利率泵,因为服务时间泵1

  5. 打开油箱Generator模块对话框。在里面事件动作选项卡,产生动作字段中输入代码。

    entity.CurrentGasLevel =兰迪([1,4]);

    罐在与该范围为一个随机气体量到达车站14

  6. 模拟更新的模型。在里面仿真数据检查时,注意观察水箱随机量的气体到达。

  7. 对于泵座,设置这些参数:

    1. 在里面事件动作选项卡,选中服务完成

    2. 为了服务完成行动字段中输入代码。

      entity.CurrentGasLevel = entity.CurrentGasLevel + 3;

      每个罐填充有3个单位气体的供1秒持续时间中,然后离开泵。

    观察该坦克发生器和事件操作图标{...}泵座更新,表明块定义事件动作。

  8. 模拟更新的模型。在里面仿真数据检查,注意每个油箱离开加油站时要加3个单位的汽油。

修改模型来管理在排队系统中的实体

这是配置简单排队系统后修改的模型。

也可以看看

|||

相关的话题