- •5 Моделирование систем массового обслуживания
- •5.1 Аналитические модели систем массового обслуживания
- •5.1.1 Потоки событий
- •5.1.2 Марковские случайные процессы
- •5.1.3 Непрерывно – вероятностные модели
- •5.2 Имитационное моделирование процессов функционирования систем массового обслуживания
- •5.2.1 Формирование входных воздействий
- •5.2.2 Способы построения моделирующих алгоритмов
- •5.2.4 Моделирующие алгоритмы процессов функционирования системы
- •5.2.3 Особенности имитации процесса функционирования систем
- •5.3 Имитационное моделирование систем массового обслуживания в среде «matlab»
- •5.3.1. Имитация потоков заявок и обслуживаний
- •5.3.2 Модели накопителей и каналов обслуживания
- •5.3.3. Модели типовых схем систем массового обслуживания
- •Список использованных источников
5.3.2 Модели накопителей и каналов обслуживания
Для формирования накопителя заявок в виде очереди можно использовать блок «Queue» (очередь), обеспечивающий сохранение значений входного сигнала в регистре, имеющем формат FIFO. При этом входной сигнал может быть скаляром, вектором или матрицей (рис. 5.24).
Рисунок 5.24 – Блок «Queue» (Очередь)
Блок имеет: входной порт «In», на который подается сигнал в виде числа; управляемый импульсами порт «Push» (постановка заявки в очередь); управляемый также импульсами порт «Pop» (выталкивание очередной заявки на обслуживание). К выходам блока относят порты: «Out», «Empty», «Full» и «Number». Через порт «Out» заявки покидают очередь при наличии управляющего импульса на входе «Pop». При этом значение сигнала на выходе сохраняется до следующего импульса на входе «Pop», это дает возможность моделировать c помощью блока элементарный прибор обслуживания. Выход «Empty» (пустой) выдает «1», если очередь пуста и «0» - в противном случае. Выход «Full» (полный) выдает «1», если в очереди находится число заявок равное емкости очереди, и «0» - в противном случае. Выход «Number» показывает число заявок в очереди на данном шаге.
Выходы: «Empty», «Full», «Number» устанавливаются флажками на панели блока. Подготовка блока «Очередь» производится путем: установки емкости очереди; выбора режима (Rising, Falling, Either); выбора режима при условии заполнения регистра очереди; выбора режима при условии, что регистр пуст, а следует вытолкнуть очередной элемент из очереди.
Накопление сигналов можно осуществлять и блоком «Stack» (стек), работающим в формате LIFO (последним вошел, первым вышел). Его использование в качестве ИМ накопителя аналогично блоку «Queue». Кроме рассмотренных блоков для накопления значений сигнала могут использоваться блоки «Сумматор» и «Дискретный сумматор времени».
5.3.3. Модели типовых схем систем массового обслуживания
В основе способа имитации канала обслуживания лежит блок «Очередь». На основе блока «Очередь» можно построить схему ИМ канала обслуживания с потерями или схему одноканальной СМО с очередью. Схема ИМ их одинакова (рис. 5.26), а подготовка схемы отличается лишь числом мест в очереди. В этой схеме источник заявок и источник обслуживаний представлены соответственно блоками: «Subsystem» и «Subsystem1». Для одноканальной СМО с отказами должна быть установлена емкость очереди L=1.
Информационный вход блока «Очередь» должен соединятся с выходом дискретного сумматора времени для того, чтобы заявки в очереди различались по уровню.
а) б)
Рисунок 5.25 – Q-схемы а) одноканальной СМО с отказами;
б) одноканальной СМО с очередью
Рисунок 5.26 – Структурная схема ИМ одноканальной СМО
с очередью
К входу «Pop» подключают выход источника обслуживаний. Для фиксации среднего числа заявок в очереди к выходу «Number» подключают блок «Mean» (МО) с дисплеем.
В практике моделирования элементы СМО могут соединяться последовательно, параллельно и с помощью обратной связи в случае необходимости подать обслуженную с недостаточным качеством заявку на повторное обслуживание в ту или иную фазу.
а) б)
Рисунок 5.27 – Q-схемы а) последовательного соединения каналов;
б) последовательного соединения каналов с накопителями
Для осуществления последовательного соединения блоков «Очередь» необходимо информационный выход предыдущего блока соединить как с информационным входом последующего блока «Очередь», так и с входом «Push» (постановка в очередь) с помощью блока производной (рис.5.28).
Рисунок 5.28 – Последовательное соединение блоков «Очередь»
Блокировку (задержку обслуженных заявок) в каналах можно выполнять отключением потока обслуживания в предыдущем канале с помощью блока «AND», управляемого сигналом «Full» (полный регистр) через блок «NOT».
Имитация параллельного соединения приборов обслуживания оказывается сложнее и требует реализации процедуры распределения заявок между ними. Она зависит от числа каналов в многоканальной фазе и от заданного закона распределения заявок между каналами. В случае равномерного распределения заявок по каналам соединение одноканальной фазы с многоканальной можно произвести посредством схемы случайного выбора канала (рис. 5.29), обеспечивающей равномерное распределение заявок по трем каналам.
Рисунок 5.29 – Схема случайного выбора канала
Работа схемы
заключается в генерации на каждом шаге
случайного числа с равномерным
распределением в интервале (0,
1), сравнение
которого с постоянными числами позволяет
выработать один импульс единичной
амплитуды и шаговой длительности,
подключающий на каждом шаге к магистрали
заявок
только один из трех каналов. Эта схема
легко преобразуется как для большего
числа каналов, так и для других законов
распределения заявок между каналами.
Для упрощения схем ИМ СМО схему прибора обслуживания будем представлять в виде подсистемы (рис. 5.30).
а)
б)
Рисунок 5.30 – Схема прибора обслуживания – а),
в виде подсистемы – б)
Рассмотрим пример ИМ трехканальной СМО с отказами.
а) б)
Рисунок 5.31- Q-схемы трехканальной СМО а) без накопителей;
б) с накопителями
Рисунок 5.32 – схема ИМ трехканальной СМО
В данном случае заявки, сформированные источником заявок, попадут на обслуживание во второй канал только в том случае, если первый канал (L=1) занят или первый накопитель полон (L=k). Аналогично для третьего канала.
Среда «Matlab» позволяет исследовать СМО не только состоящие из нескольких каналов, но и из нескольких фаз. Рассмотрим пример схемы ИМ двухфазной СМО.
а)
б)
Рисунок 5.33 - Q-схемы двухфазной СМО а) без накопителей;
б) с накопителями
Рисунок 5.34 – схема ИМ двухфазной СМО
Основываясь на выше изложенном материале, можно создавать ИМ СМО большей сложности и исследовать на них процессы, протекающие в реальных системах.
Вопросы для самоконтроля
1. Какими свойствами должен обладать поток событий, чтобы быть простейшим?
2. Какая операция позволяет превратить простейший поток событий в поток событий с одинаковыми интервалами между ними?
3. Чем различаются графы состояний дискретной и непрерывной марковских цепей?
4. Объясните причину появления очередей в системах массового обслуживания.
5. Как выбирается величина шага расчета в детерминированном и асинхронном моделирующих алгоритмах?
6. Почему моделирующие алгоритмы непременно должны удовлетворять рекуррентному правилу?
7. Почему моделирующие алгоритмы систем массового обслуживания должны быть основаны на просмотре элементов схемы в направлении обратном движению заявок в системе?
8. В среде «MATLAB» создайте модель источника простейшего потока событий (заявок) с интенсивностью две заявки в единицу времени.
9. Какие параметры необходимо установить в блоке «Очередь», чтобы он мог выполнять функции канала обслуживания?
10. Как осуществляется параллельное соединение приборов обслуживания, созданных на основе блока «Очередь»?
