ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 26.01.2021

Просмотров: 791

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

На

рис

. 6.32 

представлены

сигналы

формируемые

на

выходе

 SF-

модели

и

регистрируемые

в

блоке

 Scope. 

Рис

. 6.32

а

соответствует

значениям

и

c

2

at

=

c

1

bt

=

Естественно

что

при

этом

очереди

нет

и

все

заявки

обслужены

На

рис

. 6.32

б

  

представлена

другая

  

ситуация

когда

c

25

,

0

at

=

и

c

5

bt

=

а

Соответственно

накопитель

быстро

заполняется

(

и

после

определенного

момента

времени

заявки

получают

отказ

После

того

как

через

 5 

с

заканчивается

обслуживание

первой

заявки

величина

 nq 

уменьшается

и

очередная

заявка

поступает

в

накопитель

Эта

ситуация

фиксируется

в

осциллограммах

 full, nq 

и

 reject. 

5

nqm

=

5

nq

=

Следующий

этап

предполагает

проведение

исследований

направленных

на

оценку

эффективности

рассматриваемой

системы

с

использованием

УП

реализующей

полномасштабное

стратегическое

и

тактическое

планирование

модельного

эксперимента

В

качестве

показателей

будем

рассматривать

относительную

пропускную

способность

системы

и

среднее

время

нахождения

заявки

в

системе

 ( 

в

очереди

и

на

обслуживании

 ). 

Типовой

текст

  m-

файла

сценария

имеет

следующий

вид

%

Оценка

эффективности

системы

массового

обслуживания

 M/M/1/nqm 

%

Используемые

показатели

относительная

пропускная

способность

 qm;  

%

среднее

время

обслуживания

заявки

 taym. 

%

Исследуемые

факторы

влияния

интенсивности

потока

заявок

 Li 

и

потока

%

обслуживания

 Lo. 

%

Фиксируемый

параметр

 - 

предельная

длина

очереди

 nqm.  

clear all; 
rand('state',10) 
%

Задание

интервала

дискретизации

по

времени

и

  

%

количества

отсчетов

на

интервале

моделирования

 [0,10] 

с

Ts=0.01; 
Ns=10000; 
%

Задание

неварьируемых

величин

 (

предельная

длина

очереди

nqm=5; 
%

Задание

количества

и

диапазонов

изменения

факторов

 Li (a) 

и

 Lo (b) 

nf=2; 
minf=[0.4 0.4]; 
maxf=[1 1]; 
%

формирование

дробного

двухуровневого

плана

эксперимента

%

для

учета

взаимодействий

fracfact('a b ab' ); 
N=2^nf; 

245


background image

246 

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; 
    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;  
 
 
%

Имитация

функционирования

системы


background image

247

 
sim('testo_main2',Ts*Ns); 
 
%

Фиксация

результатов

каждой

реализации

u=ok/ob; 
v=sum(tay)/ok; 
t1(1:ob); 
tay(1:ob); 
 
%

Усреднение

результатов

и

оценка

выборочной

%

дисперсии

 D 

измеряемого

параметра

e=e+u; 
l=l+v; 
SQ=SQ+u^2; 
if NE>1 D=SQ/(NE-1)-(e^2)/(NE*(NE-1)); end; 
NE=NE+1; 
    end; 
    NE=NE-1 
    %

Оценка

показателей

 (

реакции

по

 NE 

реализациям

    qm=e/NE 
    taym=l/NE 
    Y(j)=qm; 
    Y1(j)=taym; 
end; 
 
%

Определение

коэффициентов

регрессии

для

 qm 

и

 taym 

C=X*X'; 
b_=inv(C)*X*Y' 
b_1=inv(C)*X*Y1' 
%

Формирование

зависимостей

реакции

системы

на

множестве

%

значений

факторов

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); 
    Yc1(j,i)=b_1(1)+an(i)*b_1(2)+bn(j)*b_1(3)+an(i)*bn(j)*b_1(4); 
end; 


background image

248 

end; 
for i=1:N1, 
    for j=1:N2, 
        %

Теоретическая

поверхность

реакции

для

 qm(Yo)

и

 taym(Yo1) 

        ro=A(i)/B(j); 
        ss=0; 
        for p=1:nqm, 
            ss=ss+p*ro^(p-1); 
        end; 
         
            if ro~=1  
                 Yo(j,i)=(1-ro^(nqm+1))/(1-ro^(nqm+2)); 
                 Yo1(j,i)=((1-ro)/(1-ro^(nqm+2)))*(ro^2)*ss/B(j)+1/B(j); 
            else %

использование

предельных

соотношений

                 %

для

устранения

неопределенностей

типа

 0/0 

при

 ro=1 

                 Yo(j,i)=(nqm+1)/(nqm+2); 
                 Yo1(j,i)=(1/(nqm+2))*(ro^2)*ss/B(j)+1/B(j); 
            end; 
end; 
end; 
 
%

Отображение

зависимостей

в

трехмерной

графике

для

показателя

 qm  

[x,y]=meshgrid(A,B); 
figure; 
subplot(1,2,1),plot3(x,y,Yc), 
xlabel('fact a(Li)'), 
ylabel('fact b(Lo)'), 
zlabel('Yc'), 
title('qm(ex)'), 
grid on, 
subplot(1,2,2),plot3(x,y,Yo), 
xlabel('fact a(Li)'), 
ylabel('fact b(Lo)'), 
zlabel('Yo'), 
title('qm(th)'), 
grid on; 

%

Отображение

зависимостей

в

трехмерной

графике

для

показателя

 taym  

figure; 
subplot(1,2,1),plot3(x,y,Yc1), 
xlabel('fact a(Li)'), 
ylabel('fact b(Lo)'), 
zlabel('Yc1'), 


background image

249

title('taym(ex)'), 
grid on, 
subplot(1,2,2),plot3(x,y,Yo1), 
xlabel('fact a(Li)'), 
ylabel('fact b(Lo)'), 
zlabel('Yo1'), 
title('taym(th)'), 
grid on; 

В

данной

программе

реализуется

многократный

прогон

 S-

модели

в

ходе

статистических

испытаний

в

соответствии

с

планом

эксперимента

а

также

обработка

и

отображение

результатов

моделирования

Тактическое

планирование

выполняется

для

оценки

пропускной

способности

тогда

как

оценка

среднего

времени

нахождения

заявки

в

системе

проводится

попутно

Для

регистрации

результатов

в

каждой

реализации

процесса

функционирования

системы

в

программе

вводятся

   

массивы

моментов

времени

поступления

заявок

на

вход

системы

 t1(:) 

и

временных

интервалов

нахождения

заявок

в

системе

 tay(:), 

а

также

переменные

определяющие

количества

входящих

заявок

 ob 

и

количества

обслуженных

заявок

 ok. 

Кроме

того

для

фиксации

временных

интервалов

потребовалось

ввести

служебный

массив

 ns(:), 

который

должен

хранить

порядковые

номера

входящих

заявок

в

данный

момент

времени

находящихся

в

очереди

и

который

должен

постоянно

обновляться

по

мере

продвижения

заявок

в

очереди

в

процессе

обслуживания

.   

Основной

вопрос

который

возникает

при

разработке

данной

модели

и

ей

подобных

состоит

в

выборе

наиболее

рационального

и

удобного

для

пользователя

способа

связи

 S- 

и

 SF-

моделей

с

УП

написанной

на

языке

MATLAB, c 

учетом

потребностей

выполнения

необходимых

вспомогательных

процедур

обработки

данных

для

регистрации

результатов

моделирования

и

получения

оценок

эффективности

системы

В

предлагаемых

ниже

примерах

рассматривается

три

возможных

способа

.    

Первый

способ

не

предполагает

применение

каких

-

либо

дополнительных

компонентов

 Stateflow  

по

отношению

к

уже

рассмотренным

в

предыдущих

примерах

Он

основан

на

реализации

необходимых

процедур

и

операций

с

максимальным

использованием

возможностей

языка

 MATLAB. 

Пример

 SF-

модели

реализующей

данный

подход

представлен

на

рис

.6.33