《实验六排队模型建模概要》由会员分享,可在线阅读,更多相关《实验六排队模型建模概要(9页珍藏版)》请在金锄头文库上搜索。
1、实验六 排队模型建模一、实验目的 (1)利用OPNET Modelr现有的队列模块建立研究排队论的简单仿真模型。在模型中利用处理器和队列模块构成数据源、队列和数据接收模块的节点模型,学习接口的相关操作。(2)理解排队服务方式及输入概率的改变对输出结果的影响。(3)比较先到先服务(FIFO)和后入先进(LIFO)分析两次仿真的结果,以及改变输入概率对队列性能的影响。二、实验要求:1) 先按下面步骤完成操作,理解数据源与概率的关系,改变概率分布,观察结果;2) 改变服务方式,包括服务模式,是否有分队列等,观察结果;3) 将自己完成的第二部分,完成实验报告第一部分:步骤一 创建节点域模型1. 创建F
2、IFO队列模型打开节点编辑器,将处理器和队列模块拖入工作空间后用包流线构成图625结构,按图625所示命名节点模块。 图625 FIFO队列模型2. 模块属性编辑source1、source2和source3节点模块当作数据源,此时将其process model属性设置simple_source。simple_source发包属性图626所示。因为是同时设置三个数据源的属性,需要选择Apply changes to selected objects才能使三个节点模块的属性同时改变。 图626 Simple Source的配置图626可以看出,对数据源的设置包括产生包的格式、发包间隔的概率分布,
3、包大小,发包开始和结束时间。本实例不考虑包格式,选择NONE。设置节点模块sink的process model属性为sink,表示其为数据接收模块。命名为queue队列模块的process model属性选择为acb_fifo,即选择了主动,汇集,面向比特,先进先出排队策略。点击subqueue后可看见其子队列的缺省属性是容量capability为无穷大。为研究子队列与容量的关系,将service_rate和subqueue的属性设置为Promote to higher level,属性在网络域中设置。 图627队列模块的属性设置3. 接口属性编辑(1)点击节点域的接口属性Node Inter
4、faces 的Node Type,将mobile 和satellite的值改为no,图628所示。 图628节点域的Node Interfaces属性配置(2) 点击节点域的接口属性Node Statistics,出现图629的Statistics Promotion对话框,点击对话框中的Orig.Name后出现节点域模型能产生的统计量,图630所示。 图629提升节点域统计量 图630选择节点域统计量选择图630中下划线部分作为统计量,包括数据源发包情况和队列大小queue size、时延delay及过流(overflow),点击Promote,在出现的菜单中改变Prom.Name名,如图6
5、31所示。注意缺省的情况可能会出现统计量的Orig.Name不一样但Prom.group却拥有相同的统计名的情况。在提升时就会出现要求统计量和所在统计组有唯一的对应关系的请求,此时需要改变Prom.Name以保证二者的有唯一对应的关系。 图631 Orig Name与Prom.Name的关系(3)改变数据收集模式在本次仿真中我们确定收集所有统计数据,点击图629中的capture mode,出现图6所示选择收集数据模式对话框,选中Advanced,在Capture mode中选择all values。 图632选择数据收集模式(4)按(3)所述,改变所有统计量的收集模式。4.保存所编辑的节点,
6、命名为book_acb_fifo,关闭节点编辑器。因为仿真必须在网络域中进行,需要将节点域模型映射到网络域中。步骤二 映射模型1.建立项目环境(1)打开项目编辑器,建立新项目:File New选择Project。(2)项目名为book_queue_disciplines,场景名为acb-fifo,点击OK。(3)点击Quit。2.注册对象面板(1)打开对象面板,点击opnen palette in icon view,及最左边的方块,可见Configure palette按钮。(2)在Configure palette中点击Clear按钮,将对象平台中其他对象清除。(3)选中Node Mode
7、ls按钮,在出现的节点模块中选择book_ acb_fifo,将not include变为include,点击ok,图633所示。 图633选择注册对象(4)在Configure palette平台上点击Save As保存注册对象。此时,对象平台将出现图634图所示的建模对象。 图634新建对象平台3.建立项目,编辑属性将对象book_acb_fifo_拖入项目编辑空间,在网络空间出现一个节点,该节点就是图625所示的节点域模型的网络域表示。选中queue节点模块,点击右键编辑属性,将data service rate 设置为9600,queue.subqueuerow的值为1;设置subqu
8、eue的pk capacity 为infinite,即子队列具有无限存储空间,点击OK。 图635网络域中设置节点属性步骤三 选择统计量选中节点点击右键选择Choose individual DES statisticsnode Statistics,选择统计量图636所示。 图636选择网络域统计量步骤四 建立容量有限的队列模型1.选择Scenario duplicate Scenario,命名场景名为acb_fifo_finite,图637所示,将节点queue Attributes的属性设置子队列容量有限。 图637设置子队列容量为有限值步骤五 仿真及结果分析1.运行仿真两个场景下分别运
9、行仿真, 设置Sim Duration为1hour。2.结果观察DES ResultView StatisticsDiscrete Event Graph选中相应的统计进行观察。(1)观察输入数据与队列的关系图638所示,在队列容量无限的情况下输入数据大小与队列内部数据大小几乎相同。说明在一个子队列的情况下数据按序输入队列模块。 图638队列容量无限时输入数据与队列的大小关系(2)图6-38表示队列容量无限和队列有限两种情况的过流(overflow),对前者几乎没有过流数据,而后者则出现较大的过流,图639所示。 图639 队列容量有限和无限时的Overflow统计(3)对应的队列大小在容量有限的情况下,队列变化到极限值时就不再变化,而队列无限的情况下,队列随输入而变。 图640队列容量有限和无限时的队列比较第二部分步骤一、在完成上述步骤,进行场景复制。步骤二、在节点域改变信号源的概率分布,另存节点模型。步骤三、在新场景下,按上述步骤完成仿真,看其与原来概率情形下的变化。步骤四、改变排队服务模块服务类型为LIFO或代优先级的分队列服务模式(subqueue)不为0,或是process model为pc-prio等,仿真,观察结果。步骤五、比较这些结果,分析结果。