ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.01.2021
Просмотров: 791
Скачиваний: 2
На
рис
. 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
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;
%
Имитация
функционирования
системы
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;
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'),
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