欢迎来到天天文库
浏览记录
ID:50530191
大小:234.50 KB
页数:6页
时间:2020-03-10
《matlab单服务台排队系统实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、matlab单服务台排队系统实验报告一、实验目的本次实验要求实现M/M/1单窗口无限排队系统的系统仿真,利用事件调度法实现离散事件系统仿真,并统计平均队列长度以及平均等待时间等值,以与理论分析结果进行对比。二、实验原理根据排队论的知识我们知道,排队系统的分类是根据该系统中的顾客到达模式、服务模式、服务员数量以及服务规则等因素决定的。1、顾客到达模式设到达过程是一个参数为的Poisson过程,则长度为的时间内到达个呼叫的概率服从Poisson分布,即,,其中>0为一常数,表示了平均到达率或Poisson呼叫流的强度。2、服务模式设每个呼叫的持续时间为,服从参数为的负指数分布,即
2、其分布函数为3、服务规则先进先服务的规则(FIFO)4、理论分析结果在该M/M/1系统中,设,则稳态时的平均等待队长为,顾客的平均等待时间为。三、实验内容M/M/1排队系统:实现了当顾客到达分布服从负指数分布,系统服务时间也服从负指数分布,单服务台系统,单队排队,按FIFO方式服务。四、采用的语言MatLab语言源代码:clear;clc;%M/M/1排队系统仿真SimTotal=input('请输入仿真顾客总数SimTotal=');%仿真顾客总数;Lambda=0.4;%到达率Lambda;Mu=0.9;%服务率Mu;t_Arrive=zeros(1,SimTotal);
3、t_Leave=zeros(1,SimTotal);ArriveNum=zeros(1,SimTotal);LeaveNum=zeros(1,SimTotal);Interval_Arrive=-log(rand(1,SimTotal))/Lambda;%到达时间间隔Interval_Serve=-log(rand(1,SimTotal))/Mu;%服务时间t_Arrive(1)=Interval_Arrive(1);%顾客到达时间ArriveNum(1)=1;fori=2:SimTotalt_Arrive(i)=t_Arrive(i-1)+Interval_Arrive(i
4、);ArriveNum(i)=i;endt_Leave(1)=t_Arrive(1)+Interval_Serve(1);%顾客离开时间LeaveNum(1)=1;fori=2:SimTotalift_Leave(i-1)5、t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];%系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));%到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;fori=2:length(Timepoint)if(temp<=length(t_Arrive))&&(Timepoint(i6、)==t_Arrive(temp))CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;elseCusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);fori=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0CusNum];CusNum_avg=7、sum(CusNum_fromStart.*[Time_interval0])/Timepoint(end);QueLength=zeros(size(CusNum));fori=1:length(CusNum)ifCusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0QueLength].*[Time_interval0])/Timepoint(end);%系统平均等待队长%仿真图figure
5、t_Queue=t_Wait-Interval_Serve;%各顾客在系统中的排队时间t_Queue_avg=mean(t_Queue);Timepoint=[t_Arrive,t_Leave];%系统中顾客数随时间的变化Timepoint=sort(Timepoint);ArriveFlag=zeros(size(Timepoint));%到达时间标志CusNum=zeros(size(Timepoint));temp=2;CusNum(1)=1;fori=2:length(Timepoint)if(temp<=length(t_Arrive))&&(Timepoint(i
6、)==t_Arrive(temp))CusNum(i)=CusNum(i-1)+1;temp=temp+1;ArriveFlag(i)=1;elseCusNum(i)=CusNum(i-1)-1;endend%系统中平均顾客数计算Time_interval=zeros(size(Timepoint));Time_interval(1)=t_Arrive(1);fori=2:length(Timepoint)Time_interval(i)=Timepoint(i)-Timepoint(i-1);endCusNum_fromStart=[0CusNum];CusNum_avg=
7、sum(CusNum_fromStart.*[Time_interval0])/Timepoint(end);QueLength=zeros(size(CusNum));fori=1:length(CusNum)ifCusNum(i)>=2QueLength(i)=CusNum(i)-1;elseQueLength(i)=0;endendQueLength_avg=sum([0QueLength].*[Time_interval0])/Timepoint(end);%系统平均等待队长%仿真图figure
此文档下载收益归作者所有