北邮mm1级联通信网实验报告.doc

上传人:scccc 文档编号:11425576 上传时间:2021-08-04 格式:DOC 页数:14 大小:1.01MB
返回 下载 相关 举报
北邮mm1级联通信网实验报告.doc_第1页
第1页 / 共14页
北邮mm1级联通信网实验报告.doc_第2页
第2页 / 共14页
北邮mm1级联通信网实验报告.doc_第3页
第3页 / 共14页
北邮mm1级联通信网实验报告.doc_第4页
第4页 / 共14页
北邮mm1级联通信网实验报告.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《北邮mm1级联通信网实验报告.doc》由会员分享,可在线阅读,更多相关《北邮mm1级联通信网实验报告.doc(14页珍藏版)》请在三一文库上搜索。

1、通信网理论基础实验报告实验一:二次排队问题M/M/1排队系统的级联 27班项明钧2013210731 27班唐睿2013210742 一、实验目的M/M/1是最简单的排队系统,其假设到达过程是一个参数为的Poisson过程,服务时间是参数为的负指数分布,只有一个服务窗口,等待的位置有无穷多个,排队的方式是FIFO。M/M/1排队系统的稳态分布、平均队列长度,等待时间的分布以及平均等待时间,可通过泊松过程、负指数分布、生灭过程以及Little公式等进行理论上的分析与求解。本次实验的目标有两个: 实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及

2、平均等待时间等值,以与理论分析结果进行对比。 仿真两个M/M/1级联所组成的排队网络,统计各个队列的平均队列长度与平均系统时间等值,验证Kleinrock有关数据包在从一个交换机出来后,进入下一个交换机时,随机按负指数分布取一个新的长度的假设的正确性。二、实验原理1、 M/M/1排队系统根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。设到达过程是一个参数为的Poisson过程,则长度为的时间内到达个呼叫的概率服从Poisson分布,即, ,其中0为一常数,表示了平均到达率或Poisson呼叫流的强度。设每个呼叫的持续时间为,服

3、从参数为的负指数分布,即其分布函数为.服务规则采用先进先服务的规则(FIFO)。在该M/M/1系统中,设,则稳态时的平均队长为,顾客的平均等待时间为。2、 二次排队网络由两个M/M/1排队系统所组成的级联网络,顾客以参数为的泊松过程到达第一个排队系统A,服务时间为参数为的负指数分布;从A出来后直接进入第二个排队系统B,B的服务时间为参数为的负指数分布,且与A的服务时间相互独立。在该级联网络中,如稳态存在,即且,则两个排队系统相互独立,顾客穿过网络的总时延为各个排队系统的时延之和,即。如将该模型应用于数据包穿越网络的平均时延的计算,假设数据包的包长服从负指数分布,平均包长为;排队系统A的信道速率

4、为,B的信道速率为。为保证两次排队的独立性,Kleinrock假设数据包在从一个交换机出来后,进入下一个交换机时,随机按负指数分布取一个新的长度。三、实验内容采用的语言:MATLAB数据结构:基本矩阵计算,基本数组计算主要函数:1、产生泊松流顾客和满足负指数分布的服务时间Interval_Arrive_a=exprnd(1/Lambda,1,Simtotal);%产生泊松流Interval_Serve_a=exprnd(1/Mu_a,1,Simtotal);Interval_Serve_b=exprnd(1/Mu_b,1,Simtotal);2、系统a的到达人数和离去人数(系统b同理)Arri

5、veNum_a(1)=1;for i=2:Simtotal t_Arrive_a(i)=t_Arrive_a(i-1)+Interval_Arrive_a(1) ArriveNum_a(i)=i;endt_Leave_a(1)=t_Arrive_a(1)+Interval_Serve_a(1);%顾客离开时间LeaveNum_a(1)=1;for i=2:Simtotal if t_Leave_a(i-1)t_Arrive_a(i) t_Leave_a(i)=t_Arrive_a(i)+Interval_Serve_a(i); else t_Leave_a(i)=t_Leave_a(i-1)+

6、Interval_Serve_a(i); end LeaveNum_a(i)=i;End3、 在系统a中的顾客数(系统b同理)CusNum_a(1)=1;for i=2:length(Timepoint_a) if (temp=2 QueLength_a(i)=CusNum_a(i)-1; else QueLength_a(i)=0; endendQueLength_avg_a=sum(0 QueLength_a.*Time_interval_a 0)/Timepoint_a(end);%系统平均等待队长5、 a系统和b系统的关系函数Interval_Arrive_b(1)=t_Leave_a

7、(1);for i=2:Simtotal Interval_Arrive_b(i)=t_Leave_a(i)-t_Leave_a(i-1)endInterval_Serve_b=exprnd(1/Mu_b,1,Simtotal);for i=1:Simtotal t_Arrive_b(i)=t_Leave_a(i); ArriveNum_b(i)=i;end6、 建立总系统的所有事件事件以及对应系统人数的矩阵A=t_Arrive_a;ArriveNum_a;zeros(1,Simtotal);zeros(1,Simtotal);B=t_Leave_a;zeros(1,Simtotal);Lea

8、veNum_a;zeros(1,Simtotal);C=t_Leave_b;zeros(1,Simtotal); zeros(1,Simtotal);LeaveNum_b;A=sortrows(A);B=sortrows(B);C=sortrows(C);7、 为每个事件断点配置a、b系统到达和离去人数for i=1:Simtotal b=B(:,1); t=find(b=2 CusNum(i)=D(2,i)-D(3,i)-1; else CunNum(i)=0; endendfor i=1:length(D) if (D(3,i)-D(4,i)=2 CusNum(i)=CusNum(i)+D

9、(3,i)-D(4,i)-1; else CusNum(i)=CusNum(i); end endTimepoint=D(1,:);10、建立画图窗口并生成12个figure(1);set(1,position,0,0,1300,700);subplot(3,4,1);title(a各顾客到达时间和离去时间);stairs(0 ArriveNum_a,0 t_Arrive_a,b);hold on;stairs(0 LeaveNum_a,0 t_Leave_a,y);legend(到达时间,离去时间);hold off;11、理论和仿真数值比较举例disp(理论平均停留系统时间t_Wait_a

10、vg=,num2str(1/(Mu_a-Lambda)+(1/(Mu_b-Lambda);disp(仿真平均停留系统时间t_Wait_avg=,num2str(t_Wait_avg_a+t_Wait_avg_b);开始算法流程图:设置顾客总数,到达率和服务率 产生泊松流顾客第一个顾客到达时间确定,由负指数分布计算下一个顾客前一个顾客(i-1)是否离开系统a排队否是第i个顾客在系统a的等待时间、服务时间、离开时间到达b系统时间确定前一个顾客(i-1)是否离开系统b排队否是否是结束输出结果顾客流结束?第i个顾客在系统b的等待时间、服务时间、离开时间4、 仿真结果与分析1、 M/M/1系统仿真与给定

11、和_a,_b条件下a、b系统及总系统的到达离去时间,等待队长,系统顾客数,排队时间和停留时间分布:(1) =0.3,_a=_b=0.8,顾客流总数为100(2) =0.3,_a=_b=0.8,顾客数为1000(3) =0.3,_a=_b=0.8,顾客数为2000(4) =0.2,_a=_b=0.9,顾客数为1000(5) =0.4,_a=_b=0.5,顾客数为10002. 平均队长和平均系统时间随/的变化曲线5、 实验结论1. 从上述五组数据比较可以看出,运用控制变量法。 对于仿真顾客总数,仿真顾客数越大,仿真值越接近理论值,当顾客数为2000时基本仿真和理论值基本相等,由于再增加人数程序运行

12、时间将会很长,因此就做到2000人数的仿真。因此尽可能地增加顾客数是到达稳态的一个途径。对于到达率和服务率的比例,当到达率远小于服务率时,全系统平均队长和平均系统时间都比较小,容易达到稳态。到达率与服务率特别接近时,全系统平均队长和平均系统时间都比较大,系统仿真误差比较大,而且很难达到稳态。由仿真图得出,平均队长和平均等待时间均随的增大而增大,随的增大而减小。2.从平均队长和平均系统时间随/的变化曲线可以看出,平均队长和平均系统时间和/的值呈正相关增长,随着/的值不断变大,平均队长和平均系统时间呈类似于指数增长趋向于无穷大。6、 实验问题和难点1、 a,b系统级联衔接的问题原因在于b系统的顾客

13、流来自于a,并不属于泊松分布,因此在程序中直接将a的离开时间设置为b的到达时间。2、 计算全系统的顾客数和排队顾客数的问题由于每个事件的时间断点只提供到达a系统人数、离开a(到达b)系统人数、离开b系统人数三个中的一个,而计算全系统的顾客数和排队长需要知道每个时间断点的三个值,因此确定一个时间对应的另外两个值是本实验的最大难点。通过分析时间轴,我建立了三个矩阵对应三种断点,从而确定了这个时间点对应的另外两个值,然后将三个矩阵合并成一个时间轴的矩阵,排序,通过将a系统人数、离开a(到达b)系统人数、离开b系统人数三个互相的运算从而计算出全系统的顾客数和排队长。3、建立了2中的矩阵后仍不知道如何找

14、出对应时间点的另外两个值,经过画时间轴通过sortrow将每行按小到大排序,再用find(a)函数找出这个时间点对应的区间,照着另外两个矩阵相同位置便可找出另外的两个值4、仿真出现问题仿真后发现全系统顾客数图形为一个三角形这显然是不符合情理的,为此做了大量的排查,发现是由于B矩阵中的一个函数的B手误打成了b,经过修正图形显示终于正常5、 在计算顾客平均等待队长时不知如何计算将仿真的数据转换为仿真值,查阅教程资料后得到: 顾客平均等待队长及平均排队等待时间的定义为其中,为在时间区间上排队人数乘以该区间长度。为第i个顾客排队等待时间。6、关于稳态的确定从实验结果中可以看出,测试的顾客人数越多,仿真

15、值越接近理论值,在图表中当排队长和顾客数的曲线分布接近平稳之后即可认为系统已达到稳态。7、 实验心得 此次实验我们做的是两个M/M/1系统的级联问题,较之单个系统在编程难度上有了很大的提升,因此我们在编写程序过程中也遇到了很多麻烦。同时也学习了很多关于MATLAB的基本语句函数和算法思想。在实际操作过程中,知道了用矩阵数组运算代替for循环可以加快运算速度,这对我们是一个极大的帮助。MATLAB的主要思想就是通过矩阵运算解决实际问题,因此学会灵活运用矩阵的各种算法来达到仿真目的是很有帮助的。另外在仿真过程中出现了图像错误却不知道程序错在哪,突然发现在命令行窗口的f(x)处输入程序的中间变量可以分段校验程序的错误,通过这个方法我们很快找出了出错的程序在哪一段,找出了错误并改正使得图像顺利仿真出来。 此次实验给我巨大的感触便是提高编程能力的最好方法便是实际运用MATLAB去编写以具体问题,遇到麻烦了可以通过翻阅书,网上查询或者通过命令行窗口自行检查来解决。同时通过这次实验我也对M/M/1系统和它的级联系统有了更深的理解。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1