Моделирование систем массового обслуживания в Simulink SimEvents. Лаб. работа 1. Моделирование систем массового обслуживания в Simulink SimEvents
Скачать 352.75 Kb.
|
Лабораторная работа № 1 по дисциплине: «Компьютерное моделирование сложных систем» на тему: «Моделирование систем массового обслуживания в Simulink+ SimEvents» Выполнил ст.гр. Проверил Москва 2021 Лабораторная работа № 1 Тема: Моделирование систем массового обслуживания в Simulink+ SimEvents Для описания объектов реального мира, функционирующих в условиях действия случайных факторов на практике, часто используется класс математических моделей, называемых системами массового обслуживания (СМО). Функционирование этих объектов носит характер обслуживания поступающих в систему заявок или клиентов. Задание 1. Смоделировать работы парикмахерской Требуется промоделировать работу парикмахерской. Интервалы прихода клиентов в парикмахерскую c одним креслом распределены равномерно на интервале 18 ± 6 мин. Время стрижки также распределено равномерно на интервале 16 ± 4 мин. Клиенты приходят в парикмахерскую, стригутся в порядке очереди: «первым пришел – первым обслужился». Промоделируйте работу парикмахерской в течение 8 часов. Требуется определить параметры функционирования парикмахерской: коэффициент загрузки парикмахера; максимальное, среднее и текущее число посетителей в очереди; среднее время обслуживания Построение модели. Порядок блоков в модели соответствует порядку фаз, в которых клиент оказывается при движении в реальной системе: 1) клиент приходит; 2) если необходимо, ждет своей очереди; 3) садится в кресло парикмахера; 4) парикмахер обслуживает клиента; 5) клиент уходит из парикмахерской. Модель представлена на рис. 1. Рисунок 1 – Модель работы парикмахерской в SimEvents В случайные моменты времени блок Time-Based Entity Generator генерирует события, моделирующие приход клиентов в парикмахерскую. В параметрах блока указан тип распределения Uniform (равномерный), параметры [12,24]. Блок FIFO Queue сохраняет заявки (клиентов), которые парикмахер не может немедленно выполнить. Емкость блока принята бесконечной (inf). Блок Single Server моделирует обслуживание клиента парикмахером. Этот блок может выполнить не более одной работы одновременно, тем самым ограничивая обработку новых работ. Времена обслуживания задаются через сигнальный порт t (Service time from – Signal port t) блоком Event Based Random Number, генерирующим равномерно распределенные случайные числа – тип распределения Uniform (равномерный), параметры [12,20]. Линии для передачи сущностей (entity connection line) показывают связь между двумя блоками (или между их входными/выходными портами для сущностей) путем отображения пути, по которому сущность может: покинуть один из блоков; одновременно прибыть в следующий блок. При моделировании сущность, которая покидает порт OUT одновременно прибывает в порт IN следующего связанного блока. Линии для связи сущностей нельзя разветвлять. Если в приложении требуется, чтобы сущность прибыла в несколько блоков, для создания копий сущностей используется блок Replicate. Блок Entity Sink поглощает работы, обработка которых завершена. Часть блоков в рассматриваемой модели могут обрабатывать сигналы. Сигналы представляют собой численные величины, определенные в любой момент времени в течение процесса моделирования (не только в дискретные моменты времени). Сигналы появляются на соединительных линиях между сигнальными портами двух блоков. Например, сигнальный выходной порт (signal output port) #n блока FIFO Queue вязан с сигнальным входным портом (signal input port) in блока Текущая длина очереди (Signal Scope). При моделировании событийно-управляемых систем, не содержащих блоков с непрерывными состояниями, необходимо настроить соответствующим образом параметры моделирования см. рис. 2. Выберите команду Simulation -> Configuration parameters -> Solver. В разделе Solver options в поле Type выбирается Variable-step и в поле Solver – Discrete. В поле Max step size (максимальный размер шага) введётся inf (бесконечность). На рис. 2 приведены параметры конфигурации. Рисунок 2 – Окно конфигурации Время моделирования принято 480 минут (8 часов). Результаты моделирование: Рисунок 3 – Изменение длины очереди по времени составляет не более 1 клиента Рисунок 4 – Изменение загрузки парикмахера по времени Рисунок 5 – Средняя длина очереди по времени составляет 0,05 минут Рисунок 6 – Среднее время обслуживания составляет 15 минут В ходе моделирования определены следующие параметры функционирования парикмахерской: коэффициент загрузки парикмахера 0,8; средняя длина очереди по времени составляет 0.05 минут среднее время обслуживания составляет 15 минут. Задание 2. Смоделировать работы небольшого магазина Требуется промоделировать работу небольшого магазина, который имеет один кассовый аппарат и одного продавца. Известны следующие параметры функционирования магазина: поток покупателей (заявок), приходящих в магазин за покупками, равномерный; интервал времени прибытия покупателей колеблется в пределах от 8,7 минуты до 10,3 мин. включительно, или 9,5 ± 0,8 мин; время пребывания покупателей у кассового аппарата составляет 2,3 ± 0,7 мин. После этого покупатели подходят к продавцу для получения товара; время, потраченное на обслуживание покупателей продавцом, составляет 10 ± 1,4 мин. Требуется определить параметры функционирования магазина: коэффициент загрузки кассира; коэффициент загрузки продавца; максимальное, среднее и текущее число покупателей в каждой очереди; среднее время обслуживания в каждом канале обслуживания. Entity Generator – блок генерирует сущности в моменты времени, определяемые входным сигналом или статистическим распределением, в данной работе является потоком покупателей. Тип распределения моментов генерации: Uniform (равномерное) – случайное равномерное распределение и заданы диапазоны в полях Minimum равно 8,7 и Maximum равно 10,3 включительно. При установке параметра распределения в значения Uniform или Exponential в диалоговом окне имеется также параметр Initial seed, определяющий генерируемый набор случайных чисел. Для фиксированного значения этого параметра случайная последовательность при следующем запуске модели повторится. Типично, значение этого параметра устанавливается в большое (например, пятизначное) нечетное число, в данной работе равно 12345. FIFO Queue – блок одновременно хранит до N сущностей, где N – значение параметра Capacity (Емкость), в данной работе значение inf. Блок пытается выпустить сущность через выходной порт OUT, однако если порт OUT блокирован, то сущность остается в блоке. Если в блоке хранятся несколько сущностей, то сущности покидают блок в соответствии с дисциплиной первый вошел – первый вышел (first in – first out (FIFO)). Если блок уже хранит N сущностей, то входной порт IN блока не доступен. Для сбора статистики блока нужно отметить галочкой нужные сигналы на вкладке Statistics в панели свойств блока. Если отмечен соответствующий пункт, то у блока появляется новый сигнальный выходной порт: #n – число сущностей в очереди; len – среднее число сущностей в очереди по времени, то есть средний по времени сигнал #n. Single Server – блок обслуживает одновременно одну сущность за некоторый интервал времени и затем пытается выпустить сущность через выходной порт OUT. У данного блока отмечены соответствующие пункты во вкладке Statistics: w – среднее время ожидания в этом блоке для всех сущностей, покинувших блок; util – утилизация сервера, то есть доля времени моделирования, использованная на хранение сущностей. Для завершения путей сущностей используется блок Entity Sink. Рисунок 7 – Модель работы магазина в SimEvents Ниже приведены результаты моделирования. Рисунок 8 – Изменение загрузки кассира по времени Рисунок 9 – Изменение загрузки продавца по времени равно 1 Рисунок 10 – Изменение длины очереди у кассового аппарата по времени Данный график показывает текущую длину очереди (число сущностей в очереди), и она не превышает одного покупателя. Рисунок 11 – Изменение длины очереди у продавца по времени Рисунок 12 – Среднее время обслуживания у кассового аппарата составляет 2,1 минуты Рисунок 13 – Среднее время обслуживания у продавца клиентов составляет 10 минут Рисунок 14 – Средняя длина очереди (продавец) В ходе моделирования магазина определены следующие параметры функционирования: коэффициент загрузки продавца равно 1; максимальное число посетителей в очереди продавца равно 3; среднее число посетителей в очереди продавца равно 1; текущее число посетителей в очереди продавца равно 3; среднее время обслуживания продавца 10 минут. коэффициент загрузки кассира равно 0,22; максимальное число посетителей в очереди продавца равно 1; среднее время обслуживания продавца 2,25 минут. Вывод. Результаты моделирования показывают, что необходимо увеличивать количество продавцов и разделять труд по обязанностям – кассира и консультанта. Это предотвращает образования больших очередей, и тем самым процесс купли-продажи наладиться эффективно. |