ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 26.01.2021
Просмотров: 785
Скачиваний: 2
представленной
на
рис
. 6.35,
подобная
функция
используется
в
блоке
Queue.full
и
реализует
такую
же
операцию
обновления
массива
ns,
как
и
графическая
функция
в
блоке
Queue.stored.
Тем
самым
иллюстрируется
возможность
получения
одного
и
того
же
результата
различными
способами
.
Рис
. 6.37
В
результате
использования
рассмотренных
внутренних
графических
компонентов
Stateflow
появляется
возможность
определить
переменные
и
массивы
внутри
самой
SF-
модели
(
как
это
видно
на
рис
6.35).
Это
упрощает
описание
общей
интегрированной
модели
MATLAB
+ Simulink + Stateflow
по
сравнению
с
вариантом
,
в
котором
активно
используются
переменные
и
функции
,
определенные
в
MATLAB (
этот
вариант
ранее
представлен
текстом
m-
сценария
и
SF-
моделью
рис
. 6.33).
Дальнейшим
естественным
шагом
является
построение
моделей
более
сложных
систем
массового
обслуживания
на
основе
использования
рассмотренных
выше
базовых
конструкций
как
элементов
разрабатываемой
модели
.
Этот
процесс
можно
существенно
упростить
,
если
ввести
иерархическое
описание
событий
и
данных
для
тиражируемых
модулей
,
то
есть
выделить
те
переменные
,
которые
имеют
внутреннюю
«
видимость
»
и
не
используются
вне
данного
модуля
.
Тогда
процесс
создания
модели
практически
можно
свести
к
копированию
и
вставке
типовых
конструкций
в
общей
SF-
диаграмме
.
На
рис
. 6.38, 6.39
представлен
пример
построения
модели
двухфазной
системы
массового
обслуживания
,
содержащей
в
первой
фазе
255
накопитель
и
один
канал
обслуживания
(Q1)
и
во
второй
фазе
два
параллельных
канала
обслуживания
(Q21
и
Q22),
предваряемые
накопителями
.
Входной
поток
заявок
является
пуассоновским
и
имеет
интенсивность
Li.
Все
накопители
имеют
одинаковую
предельную
длину
очереди
nqm.
Канал
обслуживания
первой
фазы
имеет
интенсивность
потока
обслуживания
Lo,
а
каналы
обслуживания
второй
фазы
– Lo/3
каждый
.
Все
эти
переменные
устанавливаются
и
могут
варьироваться
в
управляющей
MATLAB-
программе
.
Собственно
S-
модель
состоит
из
одного
блока
Chart
и
блока
Scope,
обеспечивающего
визуализацию
результатов
работы
модели
.
Рис
.6.38
Наибольший
интерес
представляет
построение
собственно
SF-
модели
,
представленной
на
рис
. 6.39.
В
ней
блок
Activ,
как
и
ранее
,
является
генератором
потока
заявок
(
событий
zayvka)
на
входе
прибора
256
Рис
. 6.39
257
258
Q1
с
интенсивностью
Li.
В
этом
блоке
также
фиксируется
количество
генерируемых
заявок
,
передаваемое
в
УП
переменной
ob,
и
запоминаются
моменты
времени
появления
заявок
на
входе
системы
.
Эти
заявки
обрабатываются
в
Q1.
В
структуре
данного
модуля
объединяются
ранее
подробно
рассмотренные
компоненты
Queue
и
Process,
имитирующие
работу
накопителя
и
канала
обслуживания
первой
фазы
.
Текущее
количество
заявок
в
очереди
здесь
,
как
и
ранее
,
определено
переменной
nq.
В
момент
окончания
процесса
обслуживания
очередной
заявки
на
выходе
блока
фиксируется
значение
переменной
za1=1,
которой
во
все
остальные
моменты
времени
присваивается
нулевое
значение
.
Для
распределения
заявок
,
поступающих
на
вторую
фазу
обслуживания
,
в
модели
введен
специальный
модуль
MP,
иллюстрирующий
возможности
Stateflow
по
использованию
внутренних
переходов
для
формирования
логически
управляемых
ветвей
действий
.
Выполнение
условия
[za1=1]
здесь
порождает
генерацию
события
zayvka1
–
появления
новой
заявки
на
входе
приборов
второй
фазы
обслуживания
,
которая
в
зависимости
от
загруженности
очередей
Q21
и
Q22,
определяемых
переменными
nq1
и
nq2,
и
текущих
состояний
блоков
Q21.Process
и
Q22.Process (free
или
busy),
пересылается
в
тот
или
иной
модуль
.
В
случае
,
когда
оба
накопителя
второй
фазы
заполнены
,
в
модуле
MP
фиксируется
отказ
путем
присвоения
значения
переменной
reject1=1,
которой
во
все
остальные
моменты
времени
присваивается
нулевое
значение
.
По
сути
,
принцип
работы
данного
модуля
повторяет
принцип
работы
модуля
Active,
то
есть
реализует
генерацию
и
пересылку
заявок
,
поступающих
на
вторую
фазу
обслуживания
,
в
необходимые
блоки
модулей
Q21
и
Q22.
Внутренняя
структура
Q21
и
Q22
практически
полностью
повторяет
структуру
модуля
Q1,
с
тем
только
отличием
,
что
в
них
осуществляется
фиксация
интервалов
времени
нахождения
заявок
в
системе
,
которые
записываются
в
массив
tay,
определенный
в
УП
,
подсчитывается
количество
обслуженных
каждым
модулем
заявок
(
переменные
ok1
и
ok2).
Для
фиксации
моментов
окончания
обслуживания
заявок
используются
компоненты
массива
za2[1]
и
za2[2].
Переменные
nz
и
nz1,
используемые
в
Q1, Q21,Q22,
служат
для
запоминания
номеров
заявок
,
поступающих
на
обслуживание
.
На
рис
.6.40
представлено
окно
обозревателя
Stateflow,
иллюстрирующее
иерархию
состояний
,
а
также
перечень
событий
и
данных
,
имеющих
видимость
в
пределах
всей
SF-
диаграммы
.
Все
остальные
переменные
:
события
типа
prf,
массивы
типа
ns,
используемые
для
хранения
номеров
заявок
,
находящихся
в
очередях
,
вспомогательные
данные
типа
ct, ta, bt, to, nob
и
т
.
п
.
определяются
и
имеют
область
видимости
в
пределах
использующих
их
блоков
.
Рис
. 6.40
В
качестве
иллюстрации
работоспособности
разработанной
модели
СМО
на
рис
. 6.41
представлено
визуальное
отображение
всех
основных
процессов
,
реализуемых
в
системе
,
получаемое
в
блоке
Scope S-
модели
.
Значения
интенсивности
потока
заявок
при
этом
равно
Li=1
Гц
,
а
интенсивностей
потоков
обслуживания
в
первой
фазе
Lo=1
Гц
и
во
второй
259