⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 排队系统仿真.txt

📁 matlab下的排队系统仿真
💻 TXT
字号:
function fz4=fz4()
clc
close all

q=input('请输入初始队长:');
n=input('请输入加工零件数:');
T=input('请输入服务时间:');

t1=ft1(n);
t2=ft2(n+q);
Q=zeros(1,2*(n+q));%队长序列
tc=zeros(1,n+q);%到达时刻序列
tg=zeros(1,n+q)+T;%离开时刻序列
clock=0;%仿真钟
if q>0
    for i=1:q
        tg(i)=sum(t2(1:i));
    end
end    
t=0;%初始时刻
for i=1+q:n+q
    t=t+t1(i-q);
    tc(i)=t;
end
i=1;
k=1;
j=1+q;
   
while clock<=T
    if i>length(tc)
        fprintf('结束服务\n');
        break
    end
    Q(k)=q;
    if q<0
        fprintf('出错\n');
        break
    end
    if tc(i)<tg(j)%服务开始
        clock=tc(i);
        fprintf('%f 时刻,零件 %d 到达\n',clock,i);
        if q==0
            fprintf('队里没有零件\n');
            tg(i)=t2(i)+clock;
            q=q+1;
        else
            if  i==1
                tg(i)=t2(i);
            else
                fprintf('队里有 %d 个零件\n',q);
                q=q+1;
                tg(i)=tg(i-1)+t2(i);
            end
        end
        i=i+1;%下一个进入
    else%C(j)<=T(i)
        if q<1
            fprintf('出错');
            break
        end
        
        clock=tg(j);
        fprintf('%f 时刻,零件 %d 离开\n',clock,j);
        q=q-1;
        j=j+1;
    end
    k=k+1;
end

fprintf('零件总数:%d \n',i-1);
fprintf('平均队长:%f \n',Q(1,1:2*(i-1))*diff([0 sort([tc(1:i-1) tg(1:i-1)])])'/T);
fprintf('平均用时:%f \n',sum(tg(1,1:i-1)-tc(1,1:i-1))/(i-1));    
fprintf('平均耽误:%f \n',sum(tg(1,1:i-1)-tc(1,1:i-1)-t2(1,1:i-1))/(i-1));    
figure
hist(t1);

fprintf('平均时间间隔:%d \n',sum(t1)/length(t1));
figure
hist(t2);
fprintf('平均服务时间 %d \n',sum(t2)/length(t2));
figure
stem(sort([tc(1,1:i-1) tg(1,1:i-1)]),Q(1,1:2*(i-1)))
corrcoef(rand(1,n+q));

function t1=ft1(n)%到达时间间隔
for i=1:n
    while 1>0
        t1(i)=-log(rand(1))*5;
        if t1(i)>=3 & t1(i)<=10
             break
        end
    end    
end 

function t2=ft2(n)%加工时间
for i=1:n
    while 1>0
        t2(i)=-log(rand(1))*4-log(rand(1))*4;
        if t2(i)>=2 & t2(i)<=8
            break
        end
    end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -