这个例子展示了如何在一个简单的排队系统中控制实体生成速率和编写事件动作来改变实体属性。在离散事件模拟中事件是对可能改变状态变量、输出或其他事件发生的瞬间事件的观察。SimEvents®允许您在事件发生时创建自定义操作。这些动作被称为事件动作.事件可以有相应的动作。您可以使用MATLAB编写事件动作来更改实体属性®代码或仿真软件万博1manbetx®功能。
这是一个简单的队列系统,包含实体生成器、实体队列、实体服务器和实体终止程序块。在本例中,实体表示到达加油站的卡车的油箱。实体的属性表示油箱中当前的汽油量。事件动作表示油箱中汽油浓度的变化。油箱是随机生成的,排队的,它们由一个泵提供服务,在一秒钟内输送恒定数量的汽油。油箱带着新的总油量离开加油站。
选择整个模型或实体路径实体发电机,实体队列,实体服务器块并右击选择日志选择信号.仿真数据检查器用于可视化的流动的坦克和他们的气体水平在模型。有关更多信息,请参见检查模拟数据.
重命名实体发电机块作为坦克发电机,实体队列块作为等待队列,实体服务器作为泵,和实体终结者块退出。
重命名路径从坦克生成器块为坦克到队列,等待队列块为坦克到泵,泵块为坦克到出口。
双击坦克发电机,并选择实体类型选项卡。改变实体类型名称来坦克
,属性名称来CurrentGasLevel
.
实体属性CurrentGasLevel
表示每个油箱中现有的汽油量。
模拟模型。打开仿真数据检查.观察水箱以相同的速率接近等待队列、泵和出口。
油箱带着最初的汽油量离开加油站1
这是属性初始值.
打开坦克发电机块参数对话框。在实体的一代选项卡,设置时间源来Matlab的行动
.观察默认的MATLAB代码。
dt =兰德(1,1);
代码随机化实体代际时间参数dt
来代表随机到达的坦克。
模拟更新后的模型。在仿真数据检查,观察坦克随机到达与相同的初始气体量1
.
观察罐是随机产生的,但它们接近泵的速率是固定的,因为泵的服务时间是1
.
打开油箱发电机对话框。在事件动作选项卡,产生行动字段,输入代码。
实体。CurrentGasLevel =兰迪([1,4]);
到达加油站的油箱有随机的油量,从1
来4
.
模拟更新后的模型。在仿真数据检查在美国,你可以观察到气罐的数量是随机的。
对于泵块,设置以下参数:
在事件动作选项卡上,选择服务完成.
为服务完成行动字段,输入代码。
实体。CurrentGasLevel =实体。CurrentGasLevel + 3;
每个油箱充3单位的汽油1
S持续时间,然后离开泵。
观察Tank Generator和Pump块用事件动作图标{…}表示块定义了一个事件动作。
模拟更新后的模型。在仿真数据检查,观察每个油罐离开加油站时都有3单位额外的汽油。
这是在配置了简单的排队系统后修改的模型。