Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа 5. Моделирование в Extend

.pdf
Скачиваний:
30
Добавлен:
02.04.2015
Размер:
872.18 Кб
Скачать

Андронов С.А.

Лабораторная работа N 5 "Имитационное моделирование в Extend"

Универсальный пакет имитационного моделирования Extend разработан компанией Imagine That., Inc. (Сан-Хосе, Калифорния, США). Чтобы создать в нем модель, в библиотеке выбирают блоки (Discrete Event, Generic, Statistics и др.) и помещают в определенные места в окне модели, затем блоки связывают, чтобы обозначить движение объектов (или значений) в системе, после чего эти блоки детализируют с помощью диалоговых окон. Кроме того, в программе есть вспомогательные библиотеки Manufacturing и Business Process Reengineering.

Пакет Extend позволяет моделировать самые разнообразные конфигурации систем, поскольку он содержит внутренний язык ModL для настройки существующих блоков и создания новых. Новые блоки помещают в новую библиотеку и применяют повторно как в данной, так и в других моделях. Чтобы наглядно представить связи между блоками, нужно дважды щелкнуть мышью на выбранном блоке, удерживая нажатой клавишу <Alt>. Иерархия модели может включать неограниченное число уровней, здесь также может использоваться механизм наследования. В настоящее время пакет Extend обеспечивает двухмерную анимацию, при этом в качестве вспомогательного средства служит программа Proof Animation, разработчиком которой является компания Wolverine Software Corporation (Annandale, Виржиния, США).

С каждой имитационной моделью в пакете Extend связана программа Notebook, в которой могут содержаться элементы диалоговых окон и результаты моделирования. Таким образом, Notebook может применяться как интерфейс для модели или как средство для вывода на экран важных результатов моделированиявовремяпрогонаимитационноймодели.

Число потоков случайных чисел в пакете Extend не ограничено. Более mm, имеется доступ к 18 стандартным теоретическим распределениям вероятностей, атакжекэмпирическимраспределениям.

В коммерческий пакет включен модуль оптимизации, позволяющий проводить поиск комбинации входных факторов, оптимизирующих основной выходной показатель работы, например, коэффициент загрузки системы.

Библиотека Manufacturing содержит конструкции для моделирования ряда погрузочно-разгрузочных устройств, в том числе конвейеров (транспортных конвейеров и конвейеров-накопителей), автоматизированных управляемых транспортных систем и кранов. Кроме того, в пакете Extend есть возможности для моделирования непрерывных систем.

Рассмотрим на конкретных примерах, как средствами пакета Extend создать модель системы массового обслуживания. Первый пример, рассмотренный в данном разделе, является учебным и позаимствован из книги Аверилла Лоу и Дэвида Кельтона [1].

Андронов С.А.

Задача 1

Городские автобусы прибывают на станцию технического обслуживания

(СТО) с экспоненциально распределенными интервалами времени между прибытиями со средним значением 2 ч. СТО включает в себя участок технического контроля и участок ремонта с двумя одинаковыми ремонтными постами (рис. 1).

Рис.1. Схемамоделирования Каждый автобус проходит технический контроль. Время технического

контроля равномерно распределено между 15 мин и 1,05 ч; для участка технического контроля существует единственная очередь с дисциплиной FIFO. Технический контроль показывает, что 30% автобусов нуждаются в каком-нибудь ремонте. Ремонтный участок с двумя параллельными ремонтными постами также имеет единственную очередь с дисциплиной FIFO. Время ремонта равномерно распределено между 2,1 и 4,5 ч.

Требуется разработать имитационную модель СТО. Выполнить пять прогонов имитационной модели (прогон - проведение независимого вычислительного эксперимента) для 160 часов (продолжительность пяти дневной рабочей недели) и вычислить :

-среднюю задержку в каждой очереди, среднюю длину каждой очереди,

-коэффициент использования участка технического контроля,

-коэффициент использования ремонтного участка (определяемого как половина среднего по времени числа занятых постов, поскольку на ремонтном участке таких постов два).

Допустим, что интенсивность прибытия автобусов увеличилась в четыре раза, т. е. среднее время между прибытиями уменьшилось до 30 мин. Сможет ли существующая система справиться с такой ситуацией?

Продолжительность моделирования (9600 минут, т. е. 160 часов в данном случае) и необходимое число прогонов (в данной ситуации — пять) задаются

спомощью команды Run Simulation Setup (Выполнить - Установки имитации) в окне диалога Simulation Setup (Установки имитации) (рис. 2).

Прежде всего после запуска системы задаем глобальные параметры моделирования, в частности, ед времени - минуты,…) рис 2.

Андронов С.А.

Рис.2 Диалоговое окно блока Simulation Setup пакета Extend

Далее необходимо подключить вышеназванные библиотеки (Library\Open Library ). Ниже представлена, созданная средствами пакета Extend, модель автобусной станции технического обслуживания. На рис. 3 показаны блоки, необходимые для ее создания, и соединения между ними. Соединения, обозначенные двойными линиями, соответствуют движению объектов (в этой модели — автобусов), а соединения, изображенные обычными тонкими линиями, используются для передачи значений (например, отправки наблюдений, полученных из распределения вероятностей, в блок). Под каждым блоком, о котором пойдет речь, помещено его описание.

Блок Executive (Исполнитель), не связанный графически ни с одним другим блоком, представляет собой список событий модели, разрабатываемой в пакете Extend, а блок Generator (Генератор) применяется для создания автобусов (см. диалоговое окно на рис. рис.4), время между поступлениями которых распределено экспоненциально со средним значением 120 минут. Выходной разъем этого блока связан с входным разъемом блока Timer (Таймер), диалоговое окно которого изображено на рис.5. Этот блок обеспечивает вычисление времени пребывания в системе (на станции техобслуживания) всех автобусов. Время пребывания автобусов в системе определяется путем вычитания времени поступления каждого автобуса в блок Timer из времени достижения этим автобусом блока Exit (Выход), показанного на рис. 3.

Блок Timer соединен с блоком Queue, FIFO (Очередь, FIFO), обозначенному как «Очередь на ТК». В диалоговом окне для очереди (рис. 6) задают ее максимальный размер 1000, что фактически создает неограниченную очередь.

Блок Queue, FIFO связан с блоком Activity, Delay (Активность, Задержка), диалоговое окно которого изображено на рис. 7. Этот блок, обозначенный «Тех. контроль», получает необходимое время задержки из блока Input Random Number (Входное случайное число), названного «Время ТК».

Блок Activity, Delay также связан с блоком Select (Выбор) (см. рис. 8), предназначенного для разделения потока автобусов на две группы «Good» («Хорошие», т.е. исправные) и «Bad» («Плохие», т. е. неисправные).

Блок Select получает входные данные из блока Input Random Number, обозначенного как «Good or Bad» («Хорошее или плохое»), в котором генериру-

Андронов С.А.

ются значения 0 и 1 с вероятностями 0,7 и 0,3 соответственно. Если получено значение 1, то неисправный автобус подается через выход «b» в блок Queue, FIFO, обозначенному «Очередь на ТР» (рис. 3).

Рис. 3. Модель автобусной станции техобслуживания в Extend

Рис. 4. Диалоговое окно блока Generator пакета Extend

Рис. 5. Диалоговое окно блока Timer пакета Extend

Андронов С.А.

Pиc. 6. Диалоговое окно блока Queue, FIFO пакета Extend (Очередь на ТК)

Рис. 7. Диалоговое окно блока Activity,Delay пакета Extend (Технический контроль)

Рис. 8. Диалоговое окно блока Select пакета Extend

Рис. 9. Диалоговое окно блока Input Random Number пакета Extend (Время ТК)

Рис. 10. Диалоговое окно блока Input Random Number пакета Extend («Хорошие или плохие»)

Андронов С.А.

Откуда он поступает на участок ремонта, т. е. в блок Activity, Multiple, обозначенный как «Участок ТР». В диалоговом окне этого блока в поле Maximum number in activity необходимо занести значение «2» (рис. 11), в результате неисправный автобус будет поступать из очереди на обслуживание на любой из двух участков ремонта, который в данный момент свободен. В случае же, если получено значение 0, то автобус подается через выход «а» в блок Combine и покидают систему через блок Exit (Выход). Время ухода автобуса передается через вход sensor (датчик) в блоке Timer.

В блок Plotter, Discrete Event (Плоттер) динамически выводятся данные о времени ожидания автобусов в очереди на технический контроль и ремонт,

Pиc. 11. Диалоговое окно блока Activity, Multiple пакета Extend

Pиc. 12. Диалоговое окно блока задания времени ремонта (случайного числа

винтервале)

атакже о среднем коэффициенте использования средств обслуживания. После окончания имитации можно посмотреть таблицу данных в нижней части окна с графиком, чтобы увидеть значения, по которым строились диаграммы.

Чтобы начать имитацию, необходимо выполнить команду Run - Run Simulation (Выполнить - Выполнить имитацию) или на панели инструментов Extend щелкнуть на кнопке с нарисованной стрелкой, направленной вправо.

Результаты моделирования, которые приведены далее на рис. 13— 15, показывают:

-среднее время пребывания в системе равно 101,3 минут (см. рис.13);

- максимальная длина очереди на технический контроль — 2 автобуса,

-максимальная задержка в очереди на технический контроль — 52,4 мину ты (см. рис. 14);

-максимальная длина очереди на ремонт — 1 автобус,

Андронов С.А.

-максимальная задержка в очереди на ремонт — 58,9 минуты (см. рис. 15); Из графиков, формируемых системой можно также заключить, что

средний коэффициент использования участка технического контроля равен примерно 0.33, а средний коэффициент использования участков ремонта равен примерно 0,25.

Рис.13. Среднее время пребывания в системе

Рис. 14. Максимальная длина очереди на технический контроль и максимальное время задержки

Рис. 15. Максимальная длина очереди на ремонт и максимальное время задержки

В соответствии с поставленной задачей увеличим в 4 раза интенсивность поступления автобусов на станцию техобслуживания, для чего в блоке Generator изменим значение среднего времени поступления автобусов со 120 минут на 30 минут, и повторно выполним имитацию. Результаты имитации, представленные на рис. 16—19, показывают:

среднее время пребывания в системе равно 1306.5 минуты (см. рис. 16); максимальная длина очереди на технический контроль — 100 автобуса,

максимальная задержка в очереди на технический контроль — 2606,9 минуты (см. рис. 17);

Андронов С.А.

максимальная длина очереди на ремонт — 3 автобусов, максимальная задержка в очереди на ремонт — 191,1 минуты (см. рис. 18);

время ожидания автобусов в очереди на технический контроль неограниченно возрастает (см. рис. 19).

Рис.16. Среднее время пребывания в системе

Pиc. 17. Максимальная длина очереди на технический контроль и максимальное время задержки

Рис. 18. Максимальная длина очереди на ремонт и максимальное время задержки

Андронов С.А.

Рис 19. Графики времени ожидания автобусов в очереди на технический контроль и ремонт

Результаты повторной имитации однозначно позволяют сделать вывод: существующая система (автобусная станция техобслуживания с одним участком технического контроля и двумя участками ремонта) не в состоянии справиться с возросшей в 4 раза интенсивностью прибытия автобусов на техобслуживание. Данная проблема может быть решена открытием дополнительного участка технического контроля. Чтобы убедиться в этом, необходимо внести небольшие изменения в модель, представленную на рис. 3, и провести имитацию модели, содержащей два поста технического контроля.

Задача 2

Отгрузка заказов потребителям организована следующим образом. Грузовые автомобили начинают прибывать ни погрузку на терминал в 5 часов 00 минут утра с экспоненциально распределенными интервалами времени между прибытиями со средним знамением 3 мин. Причем под погрузку прибывают автомобили различного типа(грузоподъемности):

10% из них — крупнотоннажные автомобили (свыше 6,0 т);

20% — среднетоннажные автомобили (свыше 1,5 до 6,0 т);

70% — малотоннажные автомобили (до 1,5 т).

Каждый грузовой автомобиль проходит диспетчера и пост погрузки. Оформление товаросопроводительных документов у диспетчера происходит параллельно с погрузкой автомобиля и не требует дополнительных затрат времени. Время погрузки грузового автомобиля зависит от его типа (грузоподъемности) иравномернораспределеновинтервале:

для крупнотоннажных автомобилей (св. 6,0 т) — от 40 до 60 минут;

для среднетоннажных автомобилей (св. 1,5 до 6,0 т) — от 30 до 40 минут;

для малотоннажных автомобилей (до 1,5 т) — от 20 до 30 минут. Имеютсяучасткипогрузкикрупнотоннажных, среднетоннажныхималотоннажных автомобилей, оборудованные двумя, пятью и восемью параллельными постами

Андронов С.А.

соответственно. Каждый автомобиль, прибывающий на погрузку, направляется диспетчером на участок погрузки данного типа подвижного состава, где он либо занимает свободный пост, либо встает в единственную очередь с дисциплиной обслуживания FIFO. После по грузки автомобиль покидает терминал (рис. 20). Прохождение автомобилем КПП и движение по территории грузового терминала занимает незиачительное время и при моделировании может не учитываться.

Требуется разработать имитационную модель грузового терминала. Выполнить пять прогонов имитационной модели для 120 минут (планируемое время погрузки автомобилей с 5 часов 00 минут до 7 часов 00 минут утра) и вычислить среднее количество занятых постов погрузки, среднее время задержки автомобилей на терминале и средний коэффициент использонания каждого участкапогрузки. Достаточнолидляэффективнойработытерминалавыделениепод погрузку крупнотоннажных, среднетоннажных и малотоннажных грузовиков двух, пятиивосьмипараллельныхпостовсоответственно?

Рис. 20. Схема грузового терминала

Ниже представлена, созданная средствами пакета Extend, модель грузового терминала. На рис. 21 показаны блоки, необходимые для ее создания, и соединения между ними.

При создании данной модели использованы блоки:

• Activity, Multiple, Executive, Exit (4), Catch, Generator, Set Attribute, Queue, FIFO и Throw библиотеки Discrete Event;

Input Random Number библиотеки Generic;

Plotter, Discrete Event библиотеки Plotter.

На рис. 22—27 представлены диалоговые окна основных блоков, использованных при создании модели, с внесенными значениями входных переменных. На рис.26 показано, как в блоке Throw задана связь с блокам именами Catch - блоков.