模型基本排队系统
这个例子展示了如何在一个离散事件仿真模型基本排队系统使用实体队列和实体服务器块。
的实体队列块存储实体的时间长度,事先不能确定。每天一个队列的例子是人在排队等候商店注册。购物者事先不能确定他们必须等多久来完成他们的购买。您可以使用实体队列在不同的应用,如飞机跑道等待访问或等待传送的消息。的实体队列块存储容量,实体分类政策,实体覆盖策略。基于这些参数,阻止试图输出取决于下游实体块接受新的实体。
的实体服务器块存储实体的时间长度,称为服务时间,然后试图发送实体取决于下游块接受新的实体。在服务期间,块服务实体店。一个服务器的日常例子是一个人(如银行出纳员或零售收银员)与预计持续时间与你进行交易。
这个例子提出了基本的排队模型,展示了如何:
模型FIFO队列,后进先出队列,队列和优先级。
指定实体覆盖政策当队列达到容量。
定制和不同实体服务时间。
基于事件的分配和改变实体的属性。
在模拟理解队列长度的统计数据。
实体使用实体队列块
这个模型显示了如何实体通过改变队列的排序策略。实体队列块支持三种消息排序策略:金宝app
方法暗含(后进先出)——最新的实体存储先离开。
先进先出(FIFO)——最古老的实体存储先离开。
优先级——实体基于他们的优先级排序。你只能使用时的优先队列如果队列满覆盖最古老的元素清除复选框。
下面的模型显示了四个不同的实体排序行为:先进先出,后进先出,优先按升序,降序和优先级。
四个相同的实体生成器块生成10实体。每一块实体相生次使用重复序列模式dt
。
生成10实体后,相生dt
将无穷停止生成实体。在实体发电机块,相生的时间行动字段中,使用这段代码。
持续的SEQ;持续的idx;如果isempty (SEQ)%生成10实体1秒的间隔。SEQ = [1 1 1 1 1 1 1 1 1 1];idx = 1;结束如果idx >元素个数(SEQ)%停止实体生成后生成10实体。dt =正;其他的dt = SEQ (idx);结束
块生成一个实体,它指定属性Attribute1
在每个实体。您可以使用属性来表示实体的特性或属性。在这个例子中,第一个实体的价值1
生成,每个实体的属性值增加1
。为了实现这一行为,在实体发电机块事件动作选项卡,产生行动字段中,使用这段代码。
%模式:重复序列持续的SEQ1;持续的idx1;如果isempty (SEQ1) SEQ1 = (1 2 3 4 5 6 7 8 9 10];idx1 = 1;结束如果idx1 < =元素个数(SEQ1)实体。Attribute1 = SEQ1 (idx1);结束idx1 = idx1 + 1;
生成的实体是转发到四个实体队列模块。为了显示排序行为,实体队列阻塞连接四个相同的实体门配置为释放盖茨。发布门允许一个实体通过当它收到一个实体携带一个积极的(大于0
从控制端口)值。盖茨第一块实体10
秒并将它们存储在队列中。第一次10秒后,盖茨每秒让一个实体通过基于排序的政策。
模拟模型。打开模拟数据检查和观察到的实体离开队列块每个实体排序基于队列的排序策略。
第一个情节显示实体离开队列和一个FIFO的政策。第一个实体
属性
价值1
,离开队列,当门打开时11
。后续实体离开队列的顺序生成,增加属性值。
第二图显示实体离开队列和一个后进先出的政策。这一政策逆转实体出发顺序从实体承载最大的属性值。
第三图显示了各种实体实体离开一个优先队列基于它们的属性在升序的顺序进入队列。携带最小的实体属性值先离开。后续实体遵循相同的政策。
第四个图显示,实体离开一个优先队列类型实体基于它们的属性按照降序排列。最大的实体属性值先离开,其余的实体遵循相同的政策。
队列实体覆盖策略
您可以指定当块达到什么实体队列阻塞的能力通过设置实体覆盖策略。指定政策通过选择或清除如果队列满覆盖最古老的元素复选框。
如果如果队列满覆盖最古老的元素清除复选框时,块不接受新的实体当队列已满。这是一个阻塞队列的行为。
如果如果队列满覆盖最古老的元素复选框被选中时,块设置为总是接受传入的实体通过覆盖最古老的实体存储。块覆盖最古老的实体,但离开块的实体是由队列排序策略。
在这个模型中,两个相同的实体发电机每一块生成实体1
第二。转发给两个实体的实体队列模块每一个都有能力10
和一个FIFO的实体分类政策。然而,阻塞队列配置为不接受新的实体时队列已满,而覆盖队列配置覆盖最古老的实体在其队列已满。阻塞队列和覆盖队列连接两个相同的实体服务器模块,每一个都有服务的时间价值25
秒。实体的实体产生率发生器块远远高于实体服务器的服务速率。这种差异导致实体实体队列中的积累。
模拟模型和开放顺序查看器块。观察到实体发生器1和实体发电机2块最初生成实体的数据值0.8147
,实体是转发实体实体服务器1和服务器2。两个实体生成器块生成第二组实体的数据值0.9058
,这是存储在阻塞队列和覆盖队列,因为实体服务器模块都是满的。其余生成的实体也存储在队列块实体。
观察到实体队列1块停止接受新实体存储时间11
。然而,实体队列2允许新实体与属性0.9706
存储和覆盖现存的最古老的实体,数据的价值0.9058
。
自定义实体服务时间
在基本的排队系统中,您可以使用一个实体服务器延迟块模型基于过程系统中。您可以确定源指定延迟通过改变服务时间源参数实体服务器的块。
这个例子展示了四个不同的来源可以使用基于应用程序:
对话框
——你可以定义一个常量服务时间的价值。在第一个建模模式,实体被推迟2
秒。块然后试图实体转发给下一个块。信号端口
——传入仿真软件®信号决定了金宝app服务时间。在第二个建模模式,阻止使用斜坡信号值作为服务时间源。属性
——一个指定的实体属性值决定了服务时间。在第三建模模式,每个实体Attribute1
与价值4
这是服务时间源。
MATLAB的行动
——你可以输入MATLAB™代码服务时间行动场和分配的变量dt
,这是参数模型使用的服务时间。在第四建模模式,随机服务时间dt =兰德(1,1);
使用,代码集之间均匀分布随机服务时间价值0
和1
。
模拟模型和评估结果
模拟模型,观察仿真数据检查,显示实体实体服务器转发的块。
构建一个简单的队列系统改变实体的属性
您可以将属性附加到实体来表示它们的特性。在排队系统中,您可以使用行为作为反应事件和改变实体的属性。例如,您可以更改一个实体属性的值,当实体进入和退出队列块的实体。在实体队列块,事件动作选项卡中,您可以看到事件的集合,您可以创建操作。
假设你想银行分支机构的客户服务系统模型。分支有两个银行出纳员,每个分配一个特定的事务类型。客户到达分支。他们选择一个数量的事务和定向到正确的银行出纳员。客户事务完成后离开分支。
在这个例子中,客户人数由一个实体建模的发电机。顾客们认为与常数interarrival乘以到达,和期是1
。每一个生成的实体连接属性TransactionType
代表客户请求。的TransactionType | | 0时初始化
因为之前的事务是未知的客户进入分支。
等候室由一个实体表示队列。当客户进入等候室,他们有相应的银行出纳员的数量。这个动作是通过改变实体属性事件动作的实体队列。下面是操作调用实体的实体进入事件队列。
分析使用统计和逻辑队列的队列长度
您可以使用队列统计分析和理解一个队列的行为仿真。具体来说,你可以测量:
实体的数量从一个队列下游块。
实体的数量在一个特定的仿真时间。
的平均等待队列中的实体之前离开。
平均队列长度或数量的实体从队列中提取的实体找到块。
理解这些数据可以了解您的模型的行为。为更多信息队列统计,看看解释SimEvents使用统计分析模型。
这个例子给出了两种不同的方法观察和理解队列长度。
确定一个队列存储任何实体,可以输出数据,对应实体的数量存储在一块。
遵循这些简单的步骤输出统计信息。
启用n输出信号从队列中。在块对话框,统计数据选项卡中,选择块的实体数量,n复选框。
汇库的仿真软件金宝app®图书馆设置,插入一个范围块到模型中。连接n输出端口队列的块的输入端口范围块。
如果队列为空显示范围。
更多信息可视化队列统计,看看探索统计和可视化仿真结果。
分区队列理解队列长度
分区队列可以了解更详细的队列长度和行为模拟。
假设您想要确定队列长度超过比例的时间10
队列的容量One hundred.
。您可以通过使用一双队列研究这个串联连接。队列的长度90年
和10
。他们代表一个队列的容量One hundred.
。
分区原来的队列分成两个小队列允许您收集统计数据与一个小队列。例如,您可以查看实体队列的队列长度数据块的能力90年
。如果有实体在队列中积累的能力90年
,意味着队列的容量10
已经满了。因此,确定的时间的比例队列的容量One hundred.
最低10实体相当于确定的时间比例队列的队列长度的能力90年
大于0
。
模拟模型。观察到的实体队列容量90年
块输出块的实体数量,n。观察到在特定时间间隔实体存储在块,这表明队列的容量10
已经满了。
可视化的时间比例,队列的容量10
已满,统计信号进一步处理和比较为零。