单服务台排队系统问题仿真

1、问题:

设有一单服务台排队系统,到达实体总数为8, 即需要服务的实体对象数N=8, 其到达时间间隔和服务时间分别为:

到达时间间隔为: 0, 10, 15, 35, 30, 10,5,5

服务时间为: 22, 15, 10,5, 15,15, 10, 10

试通过计算机仿真求出平均队长及服务台平均空闲时间。(写出详细的仿真建模过程、仿真程序以及仿真结果)

2、Matlab仿真结果:

画出过程的甘特图:
在这里插入图片描述

3、Matlab仿真代码:

N=8;
%到达间隔
arr=[0,10,15,35,30,10,5,5];
%服务时间
servetime=[22,15,10,5,15,15,10,10];  
%等待时间
wait=zeros(1,N);
free=0;
%到达时间
arrive=zeros(1,N);
% 完成时间
completiontime=zeros(1,N);
% 到达时刻
for n=2:N   
     arrive(n)=arrive(n-1)+arr(n)
end
%求各个实体等待时间
for i=2:N   
    completiontime(i-1)=arrive(i-1)+servetime(i-1)+wait(i-1)
    if (arrive(i-1)+servetime(i-1)+wait(i-1)>arrive(i))
        wait(i)=arrive(i-1)+servetime(i-1)+wait(i-1)-arrive(i);   
    else
        wait(i)=0; 
    end
end
completiontime(N)=completiontime(i-1)+servetime(N)
%求空闲时间
 for i=2:N   
     if  arrive(i)>completiontime(i-1)
         free=arrive(i)-completiontime(i-1)+free;
     end
 end
free
%求平均空闲时间
averagefree=free/completiontime(N)
%求平均队长
averagelength=(sum(servetime)+sum(wait))/completiontime(N)
%平均等待时间
%meantime=mean(wait) 
arry=[arrive;wait;servetime];
%画堆叠直方图
barh(arry.','stack');
xlabel('time')  % 设置x轴标题
ylabel('实体')  % 设置x轴标题
legend('未到达','等待','服务')  % 设置图例,与y轴的一组数据从左到右一一对应
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值