Моделирование систем -3-я лабораторная пример управляющей программы - ФКН ВГУ

%Оценка эффективности системы массового обслуживания 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,