Станция технического обслуживания

Автор работы: Пользователь скрыл имя, 19 Декабря 2011 в 17:54, курсовая работа

Описание

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

Работа состоит из  1 файл

отчет.docx

— 1.41 Мб (Скачать документ)
 

 

     3 КОМПЬЮТЕРНАЯ РЕАЛИЗАЦИЯ МОДЕЛИ 

     3.1 Построение имитационной модели

     Для построения компьютерной модели используем язык моделирования GPSS/PC.

     Сообщения (транзакты) - это динамические объекты GPSS/PC. Они создаются в определенных точках модели, продвигаются интерпретатором через блоки, а затем уничтожаются. Сообщения являются аналогами единиц-потоков в реальной системе. Сообщения могут представлять собой различные элементы даже в одной системе. 
Сообщения движутся от блока к блоку так, как движутся элементы, которые они представляют (программы в примере с ЭВМ). 
Каждое продвижение считается событием, которое должно происходить в конкретный момент времени. Интерпретатор GPSS/PC автоматически определяет моменты наступления событий. В тех случаях, когда событие не может произойти, хотя момент его наступления подошел (например, при попытке занять устройство, когда оно уже занято), сообщение прекращает продвижение до снятия блокирующего условия. 
После того, как система описана, исходя из операций, которые она выполняет, ее нужно описать на языке GPSS/PC, используя блоки, которые выполняют соответствующие операции в модели. Ниже перечислены некоторые свойства этих блоков. В последующих разделах подробно обсуждаются выполняемые ими операции.

     В блоках могут происходить  события четырех  основных типов: 
1)создание или уничтожение сообщений; 
2)изменение числового атрибута объекта; 
3)задержка сообщения на определенный период времени; 
4)изменение маршрута сообщения в модели.

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

     Составим  модель на языке моделирования. Для  начала нужно составить блок – схему моделируемого объекта с использованием элементов языка GPSS. (Рис. А.1)

     Моделирование потока машин, поступающих на обслуживание, будем выполнять, используяоператорGENERATE(Генерировать). Нам необходимо сформировать поток машин, поступающих на обслуживание на СТО, который подчиняется экспоненциальному распределению вероятностей.

     В системе GPSS в библиотеку процедур включено более 20 встроенных распределений вероятности. Эти распределения имеют широкий диапазон использования.

     Каждый  вызов процедуры распределения  вероятности требует, чтобы вы определили параметр потока, номер генератора случайных чисел:

     GENERATE   (Exponential (1, 0, ..))

     В поле операнда А указывается обращение к библиотечной процедуре - экспоненциальному распределению вероятности. В третий параметр процедуры нужно вписать среднее время поступления (в данном случае) заявки.

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

     Автомобиль, поступающий на обслуживание, сначала встает в очередь, если она есть. Это можно промоделировать оператором QUEUE(Стать в очередь), который только в совокупности с оператором DEPART(Освободить очередь) собирает статистическую информацию о работе моделируемой очереди.

     В нашем примере оператор QUEUEбудет выглядеть так:

     QUEUEOchered

     В поле операнда А дается символьное или числовое имя очереди. Таких очередей в системе может быть очень много. В нашей задаче дадим очереди имя Ochered. Желательно, чтобы присваиваемое имя отражало суть описываемого элемента системы.

     Поскольку на СТО несколько работников, обслуживающих заявки, то необходимым условием является проверка на незанятость устройства обслуживания - если оно свободно, то авто становится на обслуживание, иначе переходит к метке с именем, указанным в параметре. В нашем случае используется оператор  GATE, который направляет заявку на метку WILET при занятости устройства. Выглядит подобное действие следующим образом:

     GATE SNF PR WILET

     Слово SNF (storage not full) определяет условие занятости устройства - означает передачу транзакта на метку WILET при условии, что устройство занято.

     Метка WILET направляет авто в новую очередь для фиксирования заявок, которые выбыли из системы без обслуживания. Здесь также используем блоки QUEUE, DEPART.

     Учитывая  то, что в нашей модели заявки поступают с неким приоритетом, то необходимо наличие блока, который  задает этот приоритет. Существует несколько  способов назначить приоритет, например, через блок PRIORITY, в параметре которого явно записывается приоритет транзакта. Но так как в данную систему будет входить несколько потоков заявок, то проще задать приоритет их обслуживания посредством использования параметра блока GENERATE операндом E:

     GENERATE  (Exponential(1,0,20)),,,,2

     Кстати  о нескольких потоках заявок –  для направления их в общую  очередь будем использовать блок TRANSFER в режиме безусловного перехода следующим образом:

     TRANSFER  ,VHOD

     Обслуживание  основной массы заявок приходится на однотипные обслуживающие устройства. Поэтому будем использовать свойство представления многоканальной СМО  как совокупности одноканальных с помощью блока STORAGE, описанного выше. Поставить транзакт на обслуживание, в таком случае. Можно с посредством блока ENTER, а снять с помощью оператора LEAVE, в параметрах которых указываем имя устройства (их совокупности в данном случае):

     ENTER  NAME

     LEAVE  NAME

     Также в нашей системе следует добавить устройство для обработки клиентов «не по общим вопросам» ( консультация либо техосмотр), которые требуют наличия специалиста в узкой области и время обслуживания которых отличается от основного. Соответственно требуется использование блоков SEIZEи RELEASE. Это блоки занятия и освобождения прибора, указанного в их параметрах, соответственно:

     SEIZE     NAME

     RELEASE    NAME

     В нашей системе используем заявки с тремя различными приоритетами: 1 – повседневные случайные заявки, 2 – заявки от постоянных  клиентов ( в очередь становятся первыми ), 3 – заявки для не по общим вопросам, которые обслуживаются на отдельном приборе. Для перехода на этот  прибор нужно условие сравнения приоритетов, которое можно задать в блоке TEST, с помощью СЧА PR, которое  означает, что сравниваются приоритеты с условием равенства, задаваемым параметром E (equal):

     TEST E  PR,2,PR2

     Говоря  человеческим языком: если приоритет  заявки равен трем, то эта заявка направляется на метку с именем PR2 – прибор для обслуживания клиентов по частным вопросам.

     После обслуживания авто покидает СТО. Для этого используется оператор TERMINATE(Завершить):

     TERMINATE

     И наконец, мы должны создать сегмент, который будет моделировать работу СТО в течение рабочей смены, равной 8 ч. Поскольку моделирование работы СТО проводится в минутах, то время моделирования системы будет равно 8 х 60 - 480 мин. Этот сегмент будет выглядеть так:

     GENERATE   480

     TERMINATE 1

     START 1

     Следует особо подчеркнуть, что парные операторы  QUEUEи DEPARTдля каждой очереди должны иметь одно и то же, но свое уникальное имя. Это же относится и к операторам SEIZEи RELEASE.

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

     Далее приведено словестное описание поставленной задачи.

     На  станцию технического обслуживания (СТО)  прибывают автомобили для технического обслуживания и ремонта. Время прибытия автомобилей распределено по экспоненциальному закону со средним временем Т. На СТО имеется м обслуживающих устройств (работников). Время технического обслуживания – случайная величина, распределенная по экспоненциальному закону со средним промежутком Тоб. Следует учесть тот факт, что заявки делятся на несколько группу, согласно приоритета (1 – повседневные случайные заявки, 2 – заявки от постоянных  клиентов , 3 – заявки для не по общим вопросам, которые обслуживаются на отдельном приборе). Также присудствует факт создания общей очереди для всех автомобилей. Построить GPSS модель для анализа эффективности работы станции обслуживания.

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

        PRIBORY STORAGE 3

      GENERATE    (Exponential(1,0,30)),,,,1

      TRANSFER    ,VHOD

      GENERATE    (Exponential(1,0,13.5)),,,,2

      TRANSFER    ,VHOD

      GENERATE    (Exponential(1,0,60)),,,,3

      TEST NE PR,3,PR_2

VHOD  QUEUE OCHERED

      GATE SNF PRIBORY,WILET

      ENTER PRIBORY

      DEPART OCHERED

      ADVANCE (Exponential(1,0,40))

      LEAVE PRIBORY

      TRANSFER ,OUT

PR_2  GATE NU PRIBOR,WILET

      SEIZE PRIBOR

      ADVANCE  (Exponential(1,0,15))

      RELEASE PRIBOR

      TRANSFER ,OUT

WILET QUEUE NOBSL

      DEPART NOBSL

OUT   TERMINATE

      GENERATE 480

      TERMINATE 1

      START 1

     Имитационная  модель составлена (Приложение Б). 

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

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

  • щелкнем по пункту Window главного меню системы;
  • щелкнем по пункту SimulationWindow выпадающего меню. Появится всплывающее меню;
  • щелкнем по пункту BlockEntities (Блочные элементы) всплывающего меню. Появится диалоговое окно BLOCKENTITIES.

     

     Рис. 3.1 Окно BLOCKENTITIES 

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

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

     

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

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

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

Информация о работе Станция технического обслуживания