Моделирование работы АЗС

Федеральное государственное  образовательное учреждение высшего  профессионального образования

Рязанский государственный  агротехнологический университет

имени П.А. Костычева

Кафедра Информационных технологий (в экономике)

 
 
 

Курсовая  работа 

по  дисциплине: Имитационное моделирование экономических процессов

на  тему: Моделирование работы АЗС 
 
 
 
 
 
 
 
 
 

                  Выполнила: студентка 41 И группы

                  специальности Прикладная информатика (в экономике)

                  Маркова А.Ю.

                  Проверил: Филатов Ю.А. 
                   
                   
                   
                   
                   

Рязань 2010

 

Содержание 

Введение………………………………………………………………...………………3

1. Моделирование  работы АЗС………………………………………………………..4

    1. Постановка задачи……………………………………………………………4
    2. Выявление основных особенностей…………………………………………4
    3. Построение имитационной модели процесса………………………………5
    4. Представление имитационной модели……………………………………..10
    5. Визуализация процесса функционирования системы…………………..11

    1.6.     Моделирование системы…………………………………………………...12

    1.7.     Графическое представление результатов моделирования………………….16

    Заключение………………………………………………………………………………...19

    Список  литературы…………………...………………………………………………..…20

Введение 

      За  последнее время в самых разных областях практики возникла необходимость в решении различных вероятностных задач, связанных с работой, так называемых систем массового обслуживания (СМО). Примерами таких систем могут служить: телефонные станции, ремонтные мастерские, билетные кассы, стоянки такси, парикмахерские и т.п.

      Темой данного курсового проекта как  раз и является решение подобной задачи.

      Требуется промоделировать работу АЗС в течение рабочей смены -  8 часов и определить параметры функционирования АЗС:

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

      Практическое  решение задачи осуществлено с помощью  программы GPSSW.

1. Моделирование работы  АЗС 

    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 

    1.4. Представление имитационной модели

    Для представления имитационной модели выполним следующие действия:

  • щелкнем по пункту File главного меню системы. Появится выпадающее меню;
  •    щелкнем по пункту New (Создать) выпадающего меню. Появится диалоговое окно Новый документ;
  •    выделим пункт Model и щелкнем по кнопке ОК. Появится окно модели, в котором введем данную программу. Оно показано на рис. 3.

 

Рис. 3. Окно имитационной модели АЗС 

1.5. Визуализация процесса функционирования системы 

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

    • щелкнем по пункту Window главного меню системы;
    • щелкнем по пункту Simulation Window выпадающего меню. Появится всплывающее меню;
    • щелкнем по пункту Block Entities (Блочные элементы) всплывающего меню. Появится диалоговое окно BLOCK ENTITIES.

    

    Рис.4. Окно BLOCK ENTITIES 

    Для визуального наблюдения перемещения  активных требований в процессе моделирования:

  • щелкнем по пункту Command главного меню системы. Появится выпадающее меню;
  • щелкните по пункту START. Появится диалоговое окно Start Command;
  • щелкните по кнопке ОК. Начнется процесс поступления и перемещения активных требований (автомашин) в моделируемой системе. (Рис.5)
 

    

    Рис.5. Блок-схема моделируемой системы АЗС 

    1.6. Моделирование системы

    После создания имитационную модель необходимо оттранслировать и запустить  на выполнение. Для этого:

  • щелкнем по пункту Command главного меню системы;
  • щелкнем по пункту Create Simulation (Создать выполняемую модель) выпадающего меню.

    Так как в имитационной модели имеется  управляющая команда START, то исходная имитационная модель будет транслироваться, и если в ней нет ошибок, начнется процесс моделирования системы.

    Перед началом моделирования установим вывод тех параметров моделирования, которые нам нужны. Для этого;

  • щелкнем по пункту Edit (Правка) главного меню системы. Появится выпадающее меню;
  • щелкнем по пункту Settings (Установки) выпадающего меню. Появится диалоговое окно SETTINGS для данной модели, в котором устанавливаем нужные выходные данные.

Рис.6. Окно Settings с установками для имитационной модели АЗС

    В нашем примере будет выведена информация по следующим объектам:

  • Queues (Очереди);
  • Facilities (Каналы обслуживания) ;
  • Savevalues (Сохраняемые величины).

Рис.7. Окно REPORT с результатами моделирования имитационной модели АЗС

    В верхней строке указывается:

  • START TIME (Начальное время) - 0.000;
  • END TIME (Время окончания) - 480.000;
  • BLOCKS (Число блоков) - 16;
  • FACILITIES (Число каналов обслуживания) - 2;
  • STORAGES (Число накопителей) - 0.

    Ниже  указываются результаты моделирования  каналов обслуживания соответственно под назначенными нами именами KOLONKA_1 и KOLONKA_2:

  • ENTRIES (Число входов) - 36 и 25;
  • UTIL. (Коэффициент использования) - 0.715 и 0.679;
  • AVE. TIME (Среднее время обслуживания) - 9.533 и 13.039;
  • AVAIL. (Доступность) - 1 и 1;
  • OWNER (Возможное число входов) - 62 и 0;
  • PEND-0 и 0;
  • INTER-0 и 0;
  • RETRY (Повтор) - 0 и 0;
  • DELAY (Отказ) - 0 и 0.

    Еще ниже указываются результаты моделирования  очереди под именем ZAPRAVKA:

  • МАХ (Максимальное содержание) - 6;
  • CONT. (Текущее содержание) - 0;
  • ENTRY (Число входов) - 61;
  • ENTRY(O) (Число нулевых входов) - 22;
  • AVE.CONT. (Среднее число входов) - 1.063;
  • AVE.TIME (Среднее время пребывания в очереди) - 8.365;
  • AVE.(-0) - 13.084;
  • RETRY-0.

    Еще ниже приведены параметры сохраняемой  величины под именем AVE_QUEUE:

  • RETRY - 0;
  • VALUE (Значение) - 8.504.
 

    Определим параметры функционирования АЗС:

  • коэффициент загрузки каждой колонки - 0.715 и 0.679;
  • среднее время обслуживания в каждой колонке - 9.533 и 13.039;
  • максимальное число автомобилей в очереди -  6;
  • среднее число автомобилей в очереди - 1.063;
  • текущее число автомобилей в очереди - 0;
  • среднее время нахождения автомобиля очереди - 8.365.
 

    Так как, коэффициент использования второй колонки меньше 0,7, (UTIL. = 0.679), сократим одного служащего, что приведет к увеличению среднего времени обслуживания каждой колонки в 1,25 раза. Таким образом,  время заправки на первой колонке составит мин., а на второй - мин. Проведем прогон модели с новыми входными данными и проанализируем результаты. 

Рис.8. Окно REPORT с результатами моделирования имитационной модели АЗС

    Результаты моделирования каналов обслуживания:

  • коэффициент загрузки каждой колонки - 0.891 и 0.830;
  • среднее время обслуживания в каждой колонке - 11.884 и 15.932;
  • максимальное число автомобилей в очереди -  9;
  • среднее число автомобилей в очереди - 2.554;
  • текущее число автомобилей в очереди - 0;
  • среднее время нахождения автомобиля очереди - 20.101.
 

    Из  результатов моделирования видно  что, сокращение одного служащего привело к увеличению среднего время обслуживания каждой колонки, и оно составило 11.884 и 15.932 соответственно; увеличилось среднее число автомобилей в очереди; увеличилась максимальное число автомобилей в очереди, и следовательно требуются большие подъездные площади АЗС. 

     1.7. Графическое представление результатов моделирования 

    Представим  графически на всем периоде моделирования, как меняется длина очереди машин на заправку. Для нашей задачи окно Edit Plot Window заполним так, как показано на рис.9.

    

    Рис.9. Окно Edit Plot Window

    После заполнения диалогового окна Edit Plot Window щелкнем по кнопкам Plot (График), Memorize (Запомнить), а затем - по кнопке ОК. Появится заготовка графика. После этого:

  • в пункте Command главного меню системы щелкнем по пункту START. Появится диалоговое окно Start Command;
  • введем в диалоговом окне Start Command число 1 и щелкнем по кнопке 
    ОК. Появится окно REPORT (Отчет) с результатами моделирования. На 
    заднем плане будет размещаться график;

    Фрагмент  графика представлен на рис. 10.

    

    Рис.10. График «Длина очередей колонок» 

    Для получения дополнительной информации можно ввести в начале программы команду QTABLE для построения соответствующей гистограммы. Эта команда для нашей задачи может быть записана в таком виде:

    INFORM QTABLE ZAPRAVKA 0,3,35

где INFORM – имя таблицы;

    А (ZAPRAVKA)- имя очереди;

    B (0) - левая граница первого интервала таблицы;

    C (3) - ширина интервала таблицы;

    D (35) - количество интервалов таблицы, увеличенное на 2 

    Далее для построения гистограммы:

  • щелкнем по пункту Window главного меню системы. Появится выпадающее меню;
  • щелкнем по пункту Simulation Window (Окно моделирования) выпадающего меню и выберем пункт Table Window (Окно гистограммы). Появится диалоговое окно Open Table Window (Открыть окно гистограммы). В раскрывающемся списке Table щелкните по гистограмме INFORM.
  • щелкнем по кнопке ОК. Появится соответствующая гистограмма (Рис.11).

 

Рис.11. Окно гистограммы имитационной модели АЗС 
 

    Заключение

    В ходе выполнения курсовой работы были получены основные навыки решения задач  СМО в среде имитационного  моделирования GPSS World.

    Нами  была смоделирована работа СМО, представленной АЗС с двумя колонками и потоком автомобилей, подчиняющимся  экспоненциальному распределению. В результате получены выходные данные в среде GPSS, которые были проверены путём математических вычислений. В процессе нескольких реализаций работы СМО для двух вариантов значений среднего времени обслуживания каждой колонки были получены результаты функционирования системы. На основе полученных данных были построены графики, позволяющие провести исследование работы СМО.

    Список  литературы

    1. Кудрявцев Е.М. GPSS World. Основы имитационного моделирования различных систем. – М.: DMK Press, 2004. – 318 с.
    2. Шевченко Д.Н., Кравченя И.Н.  Имитационное моделирование на GPSS. – Гомель: БелГУТ, 2007, - 97с.
    3. В. Боев – «Моделирование систем. Инструментальные средства GPSS WORLD» 368 стр. 2004 г. Издательство: BHV.
    4. Кудрявцев, Добровольский – «Основы работы с универсальной системой моделирования GPSS World» 256 стр. 2005 г.
    5. Томашевский – «Имитационное моделирование в среде GPSS» 416 стр. 2003 г.
Моделирование работы АЗС