%Оценка эффективности системы массового обслуживания M/M/1/nqm
%Используемые показатели: относительная пропускная способность qm;
%среднее время обслуживания заявки taym.
%Исследуемые факторы влияния: интенсивности потока заявок Li и потока
%обслуживания Lo.
%Фиксируемый параметр - предельная длина очереди nqm.
clear all;
rand('state',10)
%Задание интервала дискретизации по времени и
%количества отсчетов на интервале моделирования [0,100] с.
Ts=0.01;
Ns=10000;
%Задание неварьируемых величин (предельная длина очереди) ОБЪЁМ НАКОПИТЕЛЯ
nqm=2; nqm=5;
% Задание количества и диапазонов изменения факторов Li (a) (поток заявок)
% и Lo (b) (поток обслуживания)
nf=2;
minf=[5 5];
maxf=[10 10];
%формирование дробного двухуровневого плана эксперимента для учета взаимодействий
fracfact('a b ab' );
N=2^nf;
fracplan=ans;
fictfact=ones(N,1);
X=[fictfact ans]';
fraceks=zeros(N,nf);
for i=1:nf,
for j=1:N,
fraceks(j,i)=minf(i)+(fracplan(j,i)+1)*(maxf(i)-minf(i))/2;
end;
end;
fraceks
%Тактическое планирование эксперимента
%Задание доверительного интервала и уровня значимости оценки qm
%dm=0.01;
%alpha=0.05;
%Определение t-критического
%tkr_alpha=norminv(1-alpha/2);
%Цикл по совокупности экспериментов стратегического плана
for j=1:N,
a=fraceks(j,1);
b=fraceks(j,2);
Li=a;
Lo=b;
Pi=Li*Ts;
%rr=rand
%Организация цикла статистических испытаний с переменным объемом
%NE для достижения заданной точности оценки показателя qm;
%показатель taym оценивается попутно
NE=1;
e=0;
l=0;
% SQ=0;
% D=1;
% while NE < tkr_alpha^2*D/dm^2,
%Иниацилизация начальных значений массивов интервалов времени
t1(1:Ns)=0; tay(1:Ns)=0;
%Иниацилизация начальных значений массива номеров заявок в очереди
ns(1:nqm)=0;
%Иниацилизация начального значения количества входящих заявок
ob=0;
%Иниацилизация начального значения количества обслуженных заявок
ok=0;
%Имитация функционирования системы
regect=0; % заявки получившие отказ
sim('testo_main3',Ts*Ns);
%Фиксация результатов каждой реализации
v=ok/ob;
Y(j)=v;
end;
%Определение коэффициентов регрессии для qm и taym
C=X*X';
b_=inv(C)*X*Y'
%Формирование зависимостей реакции системы на множестве
%значений факторов
A=minf(1):0.01:maxf(1);
B=minf(2):0.01:maxf(2);
[k N1]=size(A);
[k N2]=size(B);
for i=1:N1,
for j=1:N2,
an(i)=2*(A(i)-minf(1))/(maxf(1)-minf(1))-1;
bn(j)=2*(B(j)-minf(2))/(maxf(2)-minf(2))-1;
%Экспериментальная поверхность реакции для qm(Yc)и taym(Yc1)
Yc(j,i)=b_(1)+an(i)*b_(2)+bn(j)*b_(3)+an(i)*bn(j)*b_(4);
end;
end;
%Отображение зависимостей в трехмерной графике для показателя qm
[x,y]=meshgrid(A,B);
figure;
plot3(x,y,Yc),
xlabel('fact a(Li)'),
ylabel('fact b(Lo)'),
zlabel('Yc'),
title('qm(ex)'),
grid on,