Автор работы: Пользователь скрыл имя, 11 Января 2011 в 10:01, курсовая работа
Требуется промоделировать работу АЗС в течение рабочей смены - 8 часов и определить параметры функционирования АЗС:
* коэффициент загрузки каждой колонки;
* среднее время обслуживания в каждой колонке;
* максимальное, среднее и текущее число автомобилей в очереди к каждой колонке;
* среднее время нахождения автомобиля в каждой очереди.
Введение………………………………………………………………...………………3
1. Моделирование работы АЗС………………………………………………………..4
1.1. Постановка задачи……………………………………………………………4
1.2. Выявление основных особенностей…………………………………………4
1.3. Построение имитационной модели процесса………………………………5
1.4. Представление имитационной модели……………………………………..10
1.5. Визуализация процесса функционирования системы…………………..11
1.6. Моделирование системы…………………………………………………...12
1.7. Графическое представление результатов моделирования………………….16
Заключение………………………………………………………………………………...19
Список литературы…………………...………………………………………………..…20
Курсовая
работа
по дисциплине: Имитационное моделирование экономических процессов
на
тему: Моделирование
работы АЗС
Выполнила: студентка 41 И группы
специальности Прикладная информатика (в экономике)
Маркова А.Ю.
Проверил:
Филатов Ю.А.
Рязань 2010
Содержание
Введение…………………………………………………………
1. Моделирование
работы АЗС……………………………………………………
1.6.
Моделирование системы…………………………………………………...
1.7. Графическое представление результатов моделирования………………….16
Заключение……………………………………………………
Список
литературы…………………...…………………………
Введение
За последнее время в самых разных областях практики возникла необходимость в решении различных вероятностных задач, связанных с работой, так называемых систем массового обслуживания (СМО). Примерами таких систем могут служить: телефонные станции, ремонтные мастерские, билетные кассы, стоянки такси, парикмахерские и т.п.
Темой данного курсового проекта как раз и является решение подобной задачи.
Требуется промоделировать работу АЗС в течение рабочей смены - 8 часов и определить параметры функционирования АЗС:
Практическое решение задачи осуществлено с помощью программы GPSSW.
1.
Моделирование работы
АЗС
Исходные данные:
Вариант | ||||
1 | 2 | 8 |
1.2.
Выявление основных
особенностей
Составим
концептуальную модель
работы автозаправочной станции. Элементами
исследуемой системы являются: входящий
поток автомобилей, две бензоколонки и
очереди. На рис. 1 приведена концептуальная
модель АЗС.
Рис. 1. Схема обслуживания автомобилей на АЗС
Ограничения модели связаны:
В
качестве единицы измерения времени
примем минуту.
1.3.
Построение имитационной
модели процесса
Составим модель на языке моделирования. В качестве средства автоматизации имитационного моделирования автозаправочной станции будем использовать GPSS World. Для начала составим блок – схему моделируемого объекта с использованием элементов языка GPSSW. (Рис.2)
Рис.2.
Блок-схема моделируемого объекта
Моделирование потока машин, поступающих на заправку, будем выполнять с помощью оператора GENERATE (Генерировать). Нам необходимо сформировать поток машин, поступающих на обслуживание на АЗС, который подчиняется экспоненциальному распределению вероятностей.
В системе GPSSW в библиотеку процедур включено более 20 встроенных распределений вероятности. Эти распределения имеют широкий диапазон использования.
Каждый вызов процедуры распределения вероятности требует, чтобы вы определили параметр потока, номер генератора случайных чисел:
GENERATE (Exponential (1, 0, 8))
В поле операнда А указывается обращение к библиотечной процедуре - экспоненциальному распределению вероятности.
Автомобиль, поступающий на заправку, сначала встает в очередь, если она есть. Это можно промоделировать оператором QUEUE (Очередь), который только в совокупности с оператором DEPART (Выйти) собирает статистическую информацию о работе моделируемой очереди.
В нашем примере оператор QUEUE будет выглядеть так:
QUEUE Zapravka
В поле операнда А дается символьное или числовое имя очереди. Таких очередей в системе может быть очень много. В нашей задаче дадим очереди имя Zapravka (Заправка). Желательно, чтобы присваиваемое имя отражало суть описываемого элемента системы.
Поскольку на АЗС есть две колонки для заправки, то автомобиль подъезжает к первой колонке, если она свободна, и ко второй, если первая занята. Если обе колонки заняты, то автомобиль ожидает их освобождения в общей очереди. Направление автомобилей на ту или иную колонку может быть обеспечено оператором TRANSFER (Передать), который запишется так:
TRANSFER Both, Kol_1, Kol_2
Слово Both (Оба) означает возможность передачи требования (машины) по двум направлениям: к оператору с меткой Коl_1, если первая колонка (объект) не занята, и к оператору с меткой Коl_2, если занята.
Следуя логике, автомобиль может выйти из очереди только тогда, когда освободится первая или вторая колонка (объект). Для моделирования используются два сегмента. Первый из них связан с работой первой колонки, а второй - с работой второй. Оба сегмента начинаются с оператора SEIZE (Занять), и каждый из них имеет свою метку, соответственно Ко1_1 и Ко1_2, которые определяют занятость первой или второй колонки (канала обслуживания). При освобождении одной из них находящееся впереди требование выходит из очереди и идет в канал на обслуживание.
Начало первого сегмента записывается так:
Kol SEIZE Kolonka_l
В поле операнда А дается символьное или числовое имя объекта. Таких каналов обслуживания в системе может быть очень много. В нашей задаче каналу дано имя Kolonka_l (Колонка_1).
Выход автомобиля из очереди фиксируется оператором DEPART с соответствующим названием очереди:
DEPART Zapravka
Далее промоделируем время заправки автомобиля на первой колонке. Оно в нашем случае составляет 10±2,5 мин. Для моделирования этого процесса используется оператор ADVANCE (Задержать), который выглядит так:
ADVANCE 10, 2.5
Затем необходимо сообщить об освобождении колонки под номером 1. Это можно сделать с помощью оператора RELEASE (Освободить):
RELEASE Kolonka_1
Далее используется оператор TRANSFER (Передать) в режиме безусловной передачи требования к оператору с указанной меткой в поле операнда В. Это будет выглядеть так:
TRANSFER, Next
Начало второго сегмента запишется так:
Kol_2 SEIZE Kolonka_2
В поле операнда А дается символическое имя объекта - Kolonka_2. Выход автомобиля из очереди фиксируется оператором DEPART с соответствующим названием очереди:
DEPART Zapravka
Далее должно быть промоделировано время заправки автомобиля на второй колонке. Оно в нашем примере составляет 13±4 мин. Для моделирования этого процесса аналогично используется оператор ADVANCE:
ADVANCE 13, 4
Далее необходимо сообщить об освобождении колонки под номером 2:
RELEASE Kolonka_2
Затем используем оператор SAVEVALUE (Сохраняемая величина) с меткой Next (Следующий) для сохранения среднего времени нахождения автомобиля в очереди под именем Zapravka в сохраняемой величине под именем Ave_Queue. Это будет выглядеть так:
Next SAVEVALUE Ave_Queue,QT$Zapravka
Далее автомобиль покидает АЗС. Для этого используется оператор TERMINATE (Завершить):
TERMINATE
И наконец, мы должны создать сегмент, который будет моделировать работу АЗС в течение рабочей смены, равной 8 ч. Поскольку моделирование работы АЗС проводится в минутах, то время моделирования системы будет равно 8 х 60 - 480 мин. Этот сегмент будет выглядеть так:
GENERATE 480
TERMINATE 1
START 1
Следует особо подчеркнуть, что парные операторы QUEUE и DEPART для каждой очереди должны иметь одно и то же, но свое уникальное имя. Это же относится и к операторам SEIZE и RELEASE.
Завершающим оператором является START, дающий команду начать моделирование.
Итак, текст имитационной модели будет выглядеть следующим образом:
GENERATE (Exponential(1,0,8))
QUEUE Zapravka
TRANSFER Both,Kol_1,Kol_2
Kol_1 SEIZE Kolonka_1
DEPART Zapravka
ADVANCE 10,2.5
RELEASE Kolonka_1
TRANSFER ,Next
Kol_2 SEIZE Kolonka_2
DEPART Zapravka
ADVANCE 13,4
RELEASE Kolonka_2
Next SAVEVALUE Ave_Queue,QT$Zapravka
TERMINATE
GENERATE 480
TERMINATE 1
START
1