Постановка задачи.

реклама
Лабораторная работа № 2
«Имитационное моделирование технических систем
как систем массового обслуживания»
Цель работы: научиться использовать язык GPSS (General Purpose
Simulation System) для имитационного моделирования сложных технических
систем, которые могут быть описаны как системы массового обслуживания.
Задание на лабораторную работу
Построить и исследовать имитационные модели двух технических систем:
1) сборочного цеха из лабораторной работы № 1 как системы массового обслуживания для трех возможных режимов его работы
2) системы, описанной в варианте задания к лабораторной работе № 2
Краткие теоретические сведения
В математических моделях (ММ) сложных объектов, представленных в
виде систем массового обслуживания (СМО), фигурируют средства обслуживания, называемые каналами обслуживания или обслуживающими аппаратами (ОА),
и
обслуживаемые
заявки,
часто
называе-
мые транзактами. Так, например, в модели производственной линии ОА
отображают рабочие места, а транзакты - поступающие на обработку детали,
материалы, инструмент.
Состояние СМО характеризуется состояниями ОА, транзактов и очередей к ОА. Состояние ОА описывается двоичной переменной, которая может принимать значения «занят» или «свободен». Переменная, характеризующая состояние транзакта, может иметь значения «обслуживается» или
«ожидает». Состояние очереди характеризуется количеством транзактов,
находящихся в ней.
Имитационная модель СМО представляет собой алгоритм, отражающий поведение СМО, т.е. отражающий изменения состояния СМО во времени при заданных потоках заявок, поступающих на входы системы. Параметры входных потоков заявок - внешние параметры СМО. Выходными параметрами являются величины, характеризующие свойства системы - качество
ее функционирования.
Примеры выходных параметров:
 производительность СМО - среднее число заявок, обслуживаемых в
единицу времени
 коэффициенты загрузки оборудования - отношение времен обслуживания к общему времени в каждом ОА
 среднее время обслуживания одной заявки
Основное свойство ОА в модели СМО - это затраты времени на обслуживание, поэтому внутренними параметрами в модели СМО являются величины, характеризующие это свойство ОА. Обычно время обслуживания рассматривается как случайная величина и в качестве внутренних параметров
фигурируют параметры законов распределения этой величины.
Имитационное моделирование позволяет исследовать СМО при различных типах входных потоков и интенсивностях поступления заявок на
входы, при вариациях параметров ОА, при различных дисциплинах обслуживания заявок. Дисциплина обслуживания - правило, по которому заявки
поступают из очередей на обслуживание. Величина, характеризующее право
на первоочередное обслуживание, называется приоритетом. В моделях
СМО заявки, приходящие на вход занятого ОА, образуют очереди, отдельные
для заявок каждого приоритета. При освобождении ОА на обслуживание
принимается заявка из непустой очереди с наиболее высоким приоритетом.
Основной тип ОА - устройства, именно в них происходит обработка
транзактов с затратами времени. К ОА относятся также накопители (па-
мять), отображающие средства хранения обрабатываемых деталей в производственных линиях или обрабатываемых данных в вычислительных системах. Накопители характеризуются не временами обслуживания заявок, а емкостью - максимально возможным количеством одновременно находящихся
в накопителе заявок.
К элементам имитационных моделей СМО кроме ОА относят также узлы и источники заявок. Связи ОА между собой реализуют узлы, т.е.
характеризуют правила, по которым заявки направляются к ОА.
Для описания моделей СМО при их исследовании на ЭВМ разработаны
специальные
языки
имитационного
моделирования.
Существу-
ют общецелевые языки, ориентированные на описание широкого класса
СМО в различных предметных областях, и специализированные языки,
предназначенные для анализа систем определенного типа. Примером общецелевых языков служит язык GPSS, разработанный фирмой IBM в начале
70-х годов, примером специализированного языка - язык МПЛ/ВС моделирования вычислительных систем.
GPSS World - язык и общецелевая система имитационного моделирования, предназначенная для программирования имитационных моделей. Есть
бесплатная студенческая версия системы GPSS World (рисунок 1), которая
будет использоваться в данной лабораторной работе.
Рисунок 1 - Студенческая версия системы GPSS World
Студенческая версия абсолютно полнофункциональна. Единственное
ограничение - число блоков в программе, но этого вполне достаточно для
моделирования любой не коммерческой задачи.
В системе моделирования GPSS World различают четыре вида объектов (рисунок ц): модель, процесс моделирования, отчет и текстовый.
Рисунок 2 - Объекты GPSS World
Модель разрабатывается на языке GPSS и состоит из операторов, а
объект «Модель» создается при помощи встроенного текстового редактора.
Объект «Процесс моделирования» — это результат трансляции модели, получаемый после выполнения команды меню Create Simulation (Создать процесс моделирования). Далее процесс моделирования запускается с помощью
команд GPSS. По завершении моделирования, как правило, автоматически
создается объект «Отчет».
Текстовый объект (текстовый файл GPSS World) предназначен для
упрощения разработки больших моделей и создания библиотеки исходных
текстов, т. е. модель может быть разделена на наборы операторов, представляющие собой отдельные текстовые файлы, а затем объектом «Процесс моделирования» собрана из них. Объект «Процесс моделирования» может также создавать новые текстовые файлы с фрагментами модели, результатами
моделирования, а также считывать и записывать данные в текстовые файлы.
Для описания имитационной модели на языке GPSS полезно представить ее в виде схемы, на которой отображаются элементы СМО - устройства,
накопители,
узлы
и
источники.
Для
моделирования
использует-
ся событийный метод. Соблюдение правильной временной последовательности имитации событий в СМО обеспечивается интерпретатором
GPSSPC - программной системой, реализующей алгоритмы имитационного
моделирования.
Язык GPSS построен в предположении, что модель сложной системы
можно представить совокупностью элементов и логических правил их взаимодействия в процессе функционирования моделируемой системы. Также
предполагается, что для моделируемых систем можно выделить небольшой
набор абстрактных элементов, называемых объектами. Причем набор логических правил ограничен и может быть описан небольшим числом стандартных операций.
Объекты в моделируемой системе предназначены для различных целей.
Выбор объектов в моделируемой системе зависит от характеристик модели и,
в некоторых случаях, от разработчика модели. Совершенно не обязательно,
чтобы в одной модели участвовали все типы объектов. Необходимо лишь
наличие блоков и транзактов, иначе модель работать не будет.
Объекты подразделяются на 7 категорий и 15 типов, которые представлены в таблице 1.
Таблица 1 – Объекты GPSS
Динамическими объектами являются транзакты, которые создаются в
определенных точках модели, продвигаются планировщиком через блоки, а
затем уничтожаются. Транзакты являются аналогаами единиц — потоков в
реальной системе. Они могут представлять собой различные элементы даже в
одной системе.
Объекты аппаратной категории — это абстрактные элементы, на которые может быть декомпозирована реальная система. Воздействуя на эти
объекты, транзакты могут изменять их состояние и влиять на движение других транзактов. К объектам этого типа относятся одноканальные устройства,
памяти (многоканальные устройства) и логические ключи.
Одноканальные устройства (ОКУ) представляют собой оборудование,
которое в любой момент времени может быть занято только одним транзактом. Например, один канал передачи данных, одноканальный ремонтный орган, один узел связи.
Многоканальные устройства (МКУ) предназначены для имитации
оборудования, осуществляющего параллельную обработку. Они могут быть
использованы одновременно несколькими транзактами. МКУ можно использовать в качестве аналога, например, многоканального ремонтного органа,
нескольких каналов связи.
Ранее происходившие события в системе могут заблокировать, изменить движение транзактов и наступление последующих событий. Например,
один канал связи вышел из строя и все последующие заявки на передачу сообщений должны быть направлены на исправные каналы связи. Для моделирования таких ситуаций введены логические ключи. Транзакт может устанавливать эти ключи в положение «включено» или «выключено». Впоследствии
состояние ключей может быть проверено другими транзактами для определения пути их дальнейшего следования.
Операционные объекты, т. е. блоки, задают логику функционирования
модели системы и определяют пути движения транзактов между объектами
аппаратной категории. В блоках могут происходить события четырех основных типов:
1) создание или уничтожение транзактов;
2) изменение числового атрибута объекта;
3) задержка транзакта на определенный период времени;
4) изменение маршрута движения транзакта в модели.
Версия GPSS, реализованная в системе GPSS World, содержит 53 типа
блоков. В зависимости от назначения блоки подразделяются на несколько
групп.
1. Блоки, осуществляющие модификацию атрибутов транзактов:
а) генерирование и уничтожение транзактов GENERATE, SPLIT,
TERMINATE, ASSEMBLE;
б) временная задержка ADVANCE;
в) синхронизация движения двух MATCH и нескольких GATHER транзактов;
г) изменение параметров транзактов ASSIGN, INDEX, MARK, PLUS;
д) изменение приоритета транзакта PRIORITY.
2. Блоки, изменяющие последовательность движения транзактов (блоки
передачи управления): DISPLACE, TRANSFER, LOOP, TEST, GATE.
3. Блоки, связанные с группирующей категорией: ADOPT, ALTER,
EXAMINE, JOIN, REMOVE, SCAN.
4. Блоки, описывающие объекты аппаратной категории:
а) одноканальные устройства (технические средства) SEIZE, RELEASE,
PREEMPT, RETURN, FUNAVAIL, FAVAIL;
б) многоканальные устройства (памяти) ENTER, LEAVE, SAVAIL,
SUNAVAIL;
в) ключи (логические переключатели) LOGIC.
5. Блоки, сохраняющие необходимые значения для дальнейшего использования: SAVEVALUE, MSAVEVALUE.
6. Блоки, обеспечивающие получение статистических результатов:
а) очереди QUEUE, DEPART;
б) таблицы TABULATE.
7. Блоки для организации списка пользователя: LINK, UNLINK.
8. Блоки для организации ввода-вывода:
а) открытие/закрытие файла: OPEN/CLOSE;
б) считывание/запись в файл: READ/WRITE;
в) установка позиции текущей строки: SEEK.
9. Специальные блоки: BUFFER, COUNT, EXECUTE, INTEGRATION,
SELECT, TRACE, UNTRACE.
Вычислительная категория служит для описания таких ситуаций в
процессе моделирования, когда связи между компонентами моделируемой
системы наиболее просто и компактно выражаются в виде математических
(аналитических и логических) соотношений. Для этих целей в качестве объектов вычислительной категории введены арифметические и булевы переменные и функции.
Переменные представляют собой сложные выражения, которые включают константы, библиотечные арифметические функции, арифметические и
логические операции, системные числовые атрибуты (СЧА).
Под СЧА понимается следующее. Каждому объекту соответствуют атрибуты, описывающие его состояние в данный момент времени. Они доступны для использования в течение всего процесса моделирования. Например,
объект вычислительной категории — генератор случайных чисел имеет СЧА
RNn — число, вычисляемое генератором равномерно распределенных случайных чисел; у объекта динамической категории — транзакта СЧА: PR —
приоритет обрабатываемого в данный момент транзакта; Pi — значение i-го
параметра активного транзакта и др. Всего в GPSS World имеется свыше 50
СЧА.
Булевы переменные позволяют пользователю проверять в одном блоке
GPSS одновременно несколько условий, исходя из состояния или значения
этих условий и их атрибутов, т. е. в данном блоке производится обращение к
булевой переменной, выражение которой содержит в себе проверку нескольких условий. Булевы переменные могут быть представлены комбинациями
стандартных числовых атрибутов, связанных между собой посредством булевых операторов, включая и другие переменные. Булевы переменные определяются так же, как и арифметические, но вместо арифметических операций
проверяются различные логические условия.
С помощью функций пользователь может производить вычисления непрерывных или дискретных функциональных зависимостей между аргументом функции (независимая величина) и зависимым значением функции. Все
функции в GPSS задаются табличным способом с помощью команд описания
функций. Как и переменные, функции не связаны с определенными блоками.
Кроме библиотечных арифметических функций GPSS World имеет 24
встроенных генератора случайных чисел.
Объекты запоминающей категории обеспечивают обращения к сохраняемым значениям. Ячейки сохраняемых величин и матрицы ячеек сохраняемых величин используются для сохранения некоторой числовой информации.
Например, значение, занесенное в ячейку, может представлять собой
коэффициент использования устройства в какой-то момент времени. Любой
активный транзакт может произвести запись информации в эти объекты.
Впоследствии записанную в эти объекты информацию может считать
любой транзакт. Матрицы могут иметь до шести измерений.
К статистическим объектам относятся очереди и таблицы. В любой
системе движение потока транзактов может быть задержано из-за недоступности устройств. Например, требуемое ОКУ (канал связи) может быть уже
занято или МКУ (каналы связи), в которые нужно войти, уже заполнены. В
этом случае задержанные транзакты ставятся в очередь — еще один тип объектов GPSS.
Учет этих очередей составляет одну из основных функций планировщика.
Планировщик автоматически накапливает определенную статистику
относительно устройств и очередей. Кроме этого пользователь может собирать дополнительную статистическую информацию, указав специальные
точки в модели.
Для облегчения табулирования статистической информации в GPSS
предусмотрен специальный объект — таблица. Таблицы используются для
получения выборочных распределений некоторых случайных величин. Таблица состоит из частотных классов (диапазонов значений), куда заносится
число попаданий конкретного числового атрибута в каждый, тот или иной,
частотный класс. Для каждой таблицы вычисляется также математическое
ожидание и среднеквадратическое отклонение. Эта статистика является стандартной для всех таблиц. В конце эксперимента с моделью результаты, содержащиеся в таблицах, могут выводиться либо на дисплей, либо на печать.
К группирующей категории относятся три типа объектов: числовая
группа, группа транзактов и списки.
В некоторых моделях транзакты представляют собой объекты, характеризующиеся общими СЧА, которые обычно представляются как параметры
транзактов и меняются при прохождении транзактов через блок ASSIGN.
Однако это дает ограниченный доступ к атрибутам, а иногда приходится одновременно менять некоторые атрибуты всех транзактов данного множества.
Объекты такого типа предоставляют возможность пользователю обращаться
к атрибутам транзактов данной группы. Они работают в одном из режимов:
в режиме транзакта или числовом. Режим определяется первым обращением
к определенной группе. После того как он установлен, необходимо его поддерживать. В режиме транзакта величины, поступающие в группу, представляются номерами по очереди транзактов данной группы. В другом режиме
поступающие величины представляются группой числовых значений.
При моделировании транзакты хранятся в пяти списках:
1. В списке текущих событий (СТС) находятся транзакты, соответствующие
событиям, время наступления которых меньше (транзакты, которые
должны были начать двигаться в некоторый момент в прошлом, но были
заблокированы) или равно текущему времени. Транзакты из СТС готовы к
входу в блоки и должны войти в них до очередного изменения модельного
времени. В СТС транзакты расположены в порядке убывания приоритета,
транзакты с одинаковыми приоритетами в порядке их поступления.
2. Список будущих событий (СБС) содержит транзакты, соответствующие
событиям, время наступления которых больше текущего времени. Такие
транзакты размещаются в списке в порядке возрастания времени начала
движения. Приоритеты не влияют на порядок движения в этом списке.
3. В список повторных попыток помещаются транзакты, для которых не
выполнены условия входа в следующий блок. Эти условия проверяются
при попытке входа транзакта в блоки GATE, TEST, TRANSFER ALL и
TRANSFER BOTH. Транзакты из списка повторных попыток ожидают
изменения СЧА. Когда СЧА изменяется, транзакт активируется, проверяются условия входа его в следующий блок. Если условия выполняются,
транзакт входит в следующий блок и автоматически исключается из списка повторных попыток.
Одноканальное устройство имеет:
� список отложенных прерываний — список транзактов, ожидающих занятия ОКУ по приоритету;
� список прерываний — список транзактов, обслуживание которых данным
ОКУ было прервано;
� список задержки — список транзактов, ожидающих занятия ОКУ в порядке приоритета;
� список повторных попыток — список транзактов, ожидающих изменения
состояния ОКУ.
Многоканальное устройство имеет:
� список задержки — список транзактов в порядке приоритета, ожидающих
возможность занять освободившиеся каналы МКУ;
� список повторных попыток — список транзактов, ожидающих изменения
состояния МКУ.
4. Список
синхронизируемых
транзактов
имеют
блоки
ASSEMBLE,
GATHER, MATH. Он содержит транзакты, находящиеся в данный момент
времени в состоянии сравнения.
5. Список пользователя содержит транзакты, удаленные пользователем из
списка текущих событий и помещенные в список пользователя как временно неактивные. Списки пользователя используются для очередей с
дисциплинами, отличными от «первым пришел — первым обслужен».
Модели систем на GPSS могут быть первично описаны в виде блокдиаграмм. Блок-диаграмма представляет собой набор с характерным очертанием блоков (таблица 2).
Таблица 2 – Форматы и графическое изображение блоков
В таблице допустимые типы операндов указаны цифрами, которые соответствуют:
1 — Null (нет ввода);
2 — Name (имя);
3 — Number (неотрицательное число);
4 — Strinq (строковый);
5 — ParenthesizedExpression (выражение в скобках);
6 — SNA (СЧА);
7 — SNA*Parameter (косвенная адресация);
8 — PosInteger (положительное целое число);
9 — Integer (целое число со знаком (необязательно));
10 — DirectSNA (прямой СЧА, т. е. не использующий косвенную адресацию).
Модель строится следующим образом. Из допустимого множества блоков выбирают необходимые и далее выстраивают их в диаграмму для того,
чтобы в процессе функционирования модели они как бы взаимодействовали
друг с другом. Использование блоков при построении моделей зависит от логических схем работы реальных систем, моделируемых на ЭВМ. При этом
отдельные элементы модели и модель в целом имеют достаточно различимое подобие. Оно может быть также усилено разработчиком за счет более продуманного на этапе разработки разделения исследуемого объекта и
модели на сегменты.
Конфигурация блок-диаграммы модели отражает направления, по которым происходит движение перемещающихся элементов — транзактов. Работа модели заключается в перемещении транзактов от блоков к блокам.
В самом начале моделирования в модели нет ни одного транзакта. В
процессе моделирования транзакты входят в модель в определенные моменты времени в соответствии с теми логическими потребностями, которые возникают в моделируемой системе. Подобным же образом транзакты покидают
модель в определенные моменты времени в зависимости от специфики моделирования.
В общем случае в модели существует большое число транзактов, однако в определенный момент времени двигается только один транзакт. Если
транзакт начал движение, он перемещается от блока к блоку по пути, предписанному блок-диаграммой. Каждый блок можно рассматривать как некоторую точку, в которой происходит обращение к подпрограмме. В тот момент, когда транзакт входит в блок, на исполнение вызывается соответству-
ющая подпрограмма, и далее транзакт пытается войти в следующий блок.
Такое продвижение транзакта продолжается до тех пор, пока не произойдет
одно из следующих событий:
� транзакт входит в блок, функцией которого является задержка транзакта на
некоторое определенное модельное время;
� транзакт входит в блок, функцией которого является удаление транзакта из
модели;
� транзакт пытается войти в следующий блок в соответствии с предписанной
блок-диаграммой логикой, однако блок отказывается принять этот транзакт;
� транзакт остается в том блоке, в котором он в настоящее время находится,
и будет повторять свои попытки войти в следующий блок.
Когда условия в модели изменятся, одна из попыток может оказаться
успешной и транзакт сможет продолжить свое движение в модели.
Если возникло одно из перечисленных условий, транзакт остается на
месте и начинается перемещение в модели другого транзакта. Выполнение
модели заключается в последовательном обращении к подпрограммам, являющимся следствием входа в определенные блоки двигающихся транзактов.
Проходя через блоки, каждый транзакт вносит свой вклад в содержимое
счетчиков блоков. Значения этих счетчиков доступны разработчику через
СЧА блоков: W — текущее содержимое блока и N — общее количество входов в блок.
Каждое продвижение транзакта в модели является событием, которое
должно произойти в определенный момент модельного времени. Для того,
чтобы поддерживать правильную временную последовательность событий,
планировщик имеет таймер модельного времени, который автоматически
корректируется в соответствии с логикой, предписанной моделью.
Структура простейшей модели GPSS имеет вид:
GENERATE
блоки модели
TERMINATE
GENERATE создает транзакты, блоки модели осуществляют продвижение транзактов, а TERMINATE их уничтожает. Моделирование заключается в продвижении транзактов от блока к блоку аналогично функционированию реальной системы.
Функциональные блоки или операторы являются собственно языком
описания модели. C точки зрения программиста модель на языке GPSS по
структуре близка к программе на языке ассемблера. Каждый оператор (блок)
занимает одну строку и состоит из следующих полей, разделяемых знаком
«пробел»:
Номер строки Поле метки Поле операции Поле операндов
Поле комментария
А, В, С, D, Е, F, G, Н
Поле «номер строки» необязательное. Содержимым поля может быть
любое десятичное число из семи символов, в том числе и дробное. В последнем случае десятичная точка рассматривается как один из семи символов.
Содержимое поля метки зависит от типа оператора. В операторах описания объектов содержимым поля является имя объекта, в операторах блоков
- метка, в управляющих операторах поле метки пусто.
Поле операции содержит символическое обозначение оператора. Содержимое поля операндов для разных операторов отличается количеством
(от 0 до 8) и назначением операндов. Если при записи оператора пропускаются необязательные параметры, то их отсутствие отмечается запятой.
Поле комментариев (необязательное) содержит информацию, поясняющую назначение оператора, отделяется от прочих полей точкой с запятой.
Самая простая система массового обслуживания (СМО) может быть
отмоделирована программой со структурой, приведенной на рисунке 2, и
блок-диаграммой, представленной на рисунке 3.
Рисунок 2 - Структура программы на GPSS World для простой СМО
Рисунок 3 – Блок-диаграмма простой СМО
Текст этой программы приведен ниже.
GENERATE 7,2 ; генерирование требований с интервалом [5-9] ед.врем.
QUEUE 1
; увеличение очереди на одно требование
SEIZE KAN
; Проверка занятости канала KAN
DEPART 1
; Уменьшение очереди на одно требование
ADVANCE 6,3
; Обслуживание требование в канале в течении [3-9] ед.врем.
RELEASE KAN
; Освобождение канала KAN
TERMINATE 1
; Выход требования из системы
START 200
; Начало моделирования с числом требований 200
Запуск программы на выполнение - начало моделирования – показан на
рисунке 4.
Рисунок 4 – Запуск программы на выполнение
В результате, если программа не будет содержать ошибок, будет сгенерирован отчет о результатах моделирования (рисунок 5).
На отчете приведены расшифровки основных, наиболее важных обозначений:
время начала и завершения моделирования
коэффициент использования канала
среднее время в канала
среднее время в очереди
Рисунок 5 – Отчет о результатах моделирования
Пример разработки имитационной модели замкнутой СМО
Постановка задачи. Промоделировать работу многоканальной системы массового обслуживания – замкнутой с экспоненциальным законом поступления требований на обслуживание, для которой справедливы следующие условия:
 поступление одного требования в систему на обслуживание не зависит от
поступления другого (отсутствие последействия)
 в систему одновременно никогда не поступает два или более требований
(поток ординарный)
 вероятность поступления требований зависит только от продолжительности периода наблюдений (поток требований стационарный), а не от принятого начала отсчета времени.
Известно среднее время поступления требования на обслуживание,
равное 10 мин, которое подчиняется экспоненциальному распределению вероятностей. В системе массового обслуживания имеется три канала обслуживания.
Требуется смоделировать процесс функционирования системы и определить следующие основные ее характеристики:
 коэффициент использования каждого канала обслуживания;
 среднее время использования каждого канала обслуживания;
 число входов в каждый канал обслуживания;
 среднее содержимое накопителя;
 среднее время пребывания требования в накопителе;
 максимальное содержимое накопителя;
 коэффициент использования накопителя.
Выявление основных особенностей. Графически процесс функционирования трехканальной замкнутой системы массового обслуживания показан на рисунке 6, где представлены основные события, которые возникают в
процессе работы СМО.
Рисунок 6 - Процесс функционирования многоканальной замкнутой СМО
События, возникающие в моделируемой системе:
1. Поступление требований в систему (GENERATE)
2. Вход требования в накопитель (ENTER)
3. Передача требования в один из свободных каналов обслуживания
(TRANSFER)
4. Ожидание освобождения одного из каналов обслуживания (SEIZE)
5. Выход требования из накопителя (LEAVE)
6. Время обслуживания требования в канале обслуживания (ADVANCE)
7. Освобождение канала обслуживания (RELEASE)
8. Возвращение требования в систему (TRANSFER)
Создание имитационной модели процесса. Создание имитационной
модели начинается с построения заголовка модели, который может быть
представлен, например, в таком виде:
; GPSSW File Smo3ze.GPS
********************************************
* Моделирование трехканальной замкнутой *
* системы массового обслуживания *
********************************************
Программу работы СМО можно представить в виде трех секторов.
В первом секторе указывается вместимость СМО. Это можно выполнить с помощью оператора STORAGE (Накопитель), который в примере будет выглядеть так:
NAK STORAGE 3
Во втором секторе моделируется поток требований в систему и его обслуживание. Оператор GENERATE используется для формирования числа
машин, которые обслуживает канал обслуживания. Этот режим использования оператора GENERATE предполагает, что поля А, В, С остаются пустыми, то есть ставятся соответственно три запятые, затем в поле операнда D
указывается число машин, которые должны обслуживать каналы обслуживания:
GENERATE ,,,10
Далее машины поступают в канал обслуживания. При этом поток поступления машин на обслуживание простейший со средним интервалом 10
единиц времени. Это можно представить с помощью оператора ADVANCE,
который в нашей задаче будет записан так:
MASH ADVANCE (Exponential(1,0,10))
Сбор статистической информации для многоканальной системы можно
обеспечить с помощью операторов ENTER и LEAVE. Оператор ENTER
может быть записан в таком виде:
ENTER NAK
В поле операнда А указано имя накопителя, вместимость которого
должна быть заранее определена. Поскольку СМО многоканальная, то необходимо использовать оператор TRANSFER для обеспечения возможности
направления требований к незанятому каналу:
TRANSFER ALL,KAN1,KAN3,3
Сначала требование направляется к оператору, имеющему символическую метку KAN1. Этим оператором является SEIZE, который записывается
так:
KAN1 SEIZE CAN1
Eсли канал обслуживания с символьной меткой KAN1 занят, то требование направляется к следующему каналу, перешагивая через три оператора.
3 – это число, указанное в поле операнда D в операторе TRANSFER. Таким
образом, следующим оператором будет:
SEIZE CAN2
Если и он будет занят, то требование снова перешагнет через три оператора и т.д., пока не найдется незанятый канал обслуживания. В свободном
канале обслуживания требование будет обслужено. Но предварительно требование должно запомнить канал, в который оно попало на обслуживание.
Для этого используется оператор ASSIGN (Присвоить) – с его помощью в
параметре требования под номером 1 запоминается имя канала, в который
требование пошло на обслуживание. В каждом канале имеется свой оператор
ASSIGN. Например, для первого канала это присвоение будет выглядеть так:
ASSIGN 1,CAN1
Далее, после определения свободного канала и записи его имени с помощью оператора TRANSFER требование направляется на обслуживание.
Это выглядит так:
TRANSFER ,COME
Однако перед началом обслуживания должно быть подано сообщение о
том, что требование оставило накопитель под именем NAK, в котором оно
находилось. Это будет выглядеть так:
COME LEAVE NAK
После выхода из накопителя требование поступает в канал на обслуживание. Это действие выполняется с помощью оператора ADVANCE. Время
обслуживания определяется так:
ADVANCE (Exponential(1,0,2))
После обслуживания требование выходит из канала обслуживания, и
должен появиться сигнал о его освобождении. Это делается с помощью оператора
RELEASE (Освободить):
RELEASE P1
Параметр требования под номером P1 содержит имя освобождаемого
канала обслуживания. Далее требование входит в оператор TRANSFER с
безусловным переходом для возвращения в систему. Он записывается так:
TRANSFER ,MASH
Таким образом, машины после обслуживания снова возвращаются в
систему для обслуживания. Возвращение машин в систему выполняется до
тех пор, пока время моделирования не превысит время моделирования системы. Определение времени моделирования системы выполняется в третьем
секторе модели. Оно определяется с помощью простой модели измерения
времени, состоящей из трех операторов:
GENERATE 480
TERMINATE 1
START 1
Этот сектор моделирует время работы системы в течение рабочей смены, равной 480 мин.
Представление имитационной модели. Для представления имитационной модели необходимо выполнить следующие действия:
 щелкнуть по пункту File главного меню системы. Появится выпадающее
меню;
 щелкнуть по пункту New (Создать) выпадающего меню. Появится диалоговое окно Новый документ;
 выделить пункт Model и щелкнуть по кнопке ОК. Появится окно модели,
в котором вводится описанная выше программа:
KAN
lambda
mu
SRC
MASH
KAN1
KAN3
COME
STORAGE 3
EQU 7
EQU 1
EQU 4
GENERATE
ADVANCE
ENTER
TRANSFER
SEIZE
ASSIGN
TRANSFER
SEIZE
ASSIGN
TRANSFER
SEIZE
ASSIGN
LEAVE
ADVANCE
RELEASE
TRANSFER
GENERATE
TERMINATE
START
; число каналов обслуживания
; средний интервал времени между заявками на обслуживание
; средний интервал времени между обслуженными заявками
; число источников заявок
,,,SRC
(Exponential(1,0,lambda))
KAN
ALL,KAN1,KAN3,3
CAN1
1,CAN1
,COME
CAN2
1,CAN2
,COME
CAN3
1,CAN3
KAN
(Exponential(1,0,mu))
P1
,MASH
480
1
1
Подготовка к моделированию. Перед началом моделирования можно
установить вывод тех параметров, которые необходимо получить в процессе
моделирования. Для этого:
 щелкнуть по пункту Edit (Правка) главного меню системы или нажать
комбинацию клавиш Alt+E. Появится выпадающее меню;
 щелкнуть по пункту Settings (Установки) выпадающего меню. Появится
диалоговое окно SETTINGS для данной модели, в котором можно установить нужные выходные данные. Для примера это окно может выглядеть
так, как показано на рисунке 7.
Рисунок 7 - Окно SETTINGS с установками для имитационной модели
Наличие галочки в окошках говорит о том, что эта информация будет
выведена в окне результатов моделирования. В нашем примере будет выведена информация для следующих объектов:
 Facilities (Каналы обслуживания);
 Storages (Накопители).
Моделирование системы. После создания имитационной модели
необходимо ее оттранслировать и запустить на выполнение. Для этого:
 щелкнуть по пункту Command главного меню системы или нажмите комбинацию клавиш Alt+C. Появится выпадающее меню;
 щелкнуть по пункту Create Simulation (Создать выполняемую модель)
выпадающего меню.
Так как в модели есть управляющая команда START, то исходная имитационная модель будет транслироваться, и если в ней нет ошибок, то начнется
процесс моделирования системы.
После выполнения программы появится окно с информацией о трансляции и выполнении – JOURNAL – и результаты работы программы в окне
REPORT (рисунок 8).
Рисунок 8 - Окно REPORT с результатами моделирования многоканальной
замкнутой СМО
Примеры GPSS- программ разомкнутых СМО
1. Программа на GPSS, моделирующая четырехканальную СМО с отказами,
в которой среднее значение временного интервала между заявками входного потока равно 2 мин, а среднее время обслуживания – 7 мин
USTR
STORAGE 4; число каналов обслуживания
lambda EQU
3; средний интервал времени между заявками входного потока
mu
EQU
7; средний интервал времени между заявками потока обслуживания
***************************************
GENERATE (EXPONENTIAL(1,0,lambda))
; прибывает деталь.
TEST NE SF$USTR,1,METKAOTKAZA
; условный переход.
ENTER USTR
ADVANCE (EXPONENTIAL(1,0,mu))
LEAVE USTR
; занятие многоканального устройства
; задержка для обработки детали
;освобождение многоканального устройства
TRANSFER ,VYHOD
; безусловный переход на выход
METKAOTKAZA TERMINATE
; не обслуженная заявка покидает систему
VYHOD TERMINATE
; заявка завершила работу.
* Установка ограничения по времени на рабочий день
GENERATE 480;
TERMINATE 1;
START 1
2. Программа на GPSS, моделирующая четырехканальную СМО с очередью
на 3 заявки и отказами, в которой среднее значение временного интервала
между заявками входного потока равно 2 мин, а среднее время обслуживания – 7 мин
KAN
STORAGE 4 ; число каналов обслуживания
lambda
EQU 3
; средний интервал времени между заявками входного потока
mu
EQU 7
; средний интервал времени между обслуженными заявками
len
EQU 3
; длина очереди
***************************************
GENERATE (EXPONENTIAL(1,0,lambda)); прибывает деталь.
TEST L
Q1,len,OTKAZ
QUEUE
1
; вход в очередь 1
ENTER
KAN
; занять канал
DEPART
1
; выход из очереди 1
ADVANCE
(EXPONENTIAL(1,0,mu)); задержка для обработки детали
LEAVE
KAN
; освободить канал
TERMINATE
OTKAZ
TERMINATE
* Установка ограничения по времени на рабочий день
GENERATE 480;
TERMINATE 1;
START 1
Варианты заданий
1) Имитационная модель сборочного цеха из лабораторной работы № 1
как замкнутой системы массового обслуживания
2) Имитационная модель второй технической системы
Вариант 1. «Сборка персональных компьютеров»
Постановка задачи.
На предприятии производятся персональные
компьютеры (ПК). После сборки они проходят серию испытаний на станции
технического контроля. Испытания проводят два контролера. Если оказывается, что функционирование компьютера не отвечает требованиям по надежности, то отбракованный компьютер переправляют в цех наладки, где заменяют один или несколько блоков. Наладку производит один специалист. После наладки ПК возвращают на станцию технического контроля, где его снова проверяют. Если проверка проходит успешно, компьютер уходит в цех
упаковки. Для хранения компьютеров, ожидающих испытаний и наладки, на
станции технического контроля и в цехе наладки организованы стеллажи.
Исходные данные. Компьютеры попадают на станцию технического
контроля с предыдущего участка каждые A минут. На станции находятся два
контролера. Каждому из них требуется на проверку B минут. Примерно C %
компьютеров проходят проверку успешно и попадают в цех упаковки.
Остальные попадают в цех наладки на станцию технического контроля.
Наладка одного компьютера занимает D минут. Исходные значения данных
параметров приведены в таблице (все числовые параметры подчиняются
равномерному распределению).
A, мин
B, мин
C, %
D, мин
10±4
16±6
85%
60±20
Листинг программы
GENERATE 10,4
KONTROLER
STORAGE 2
BGN
QUEUE QUEUE_KONTR
ENTER KONTROLER
DEPART QUEUE_KONTR
ADVANCE 16,6
LEAVE KONTROLER
TRANSFER 0.85,FIX,EXT
FIX
QUEUE QUEUE_NALAD
SEIZE NALADCHIK
DEPART QUEUE_NALAD
ADVANCE 60,20
RELEASE NALADCHIK
TRANSFER ,BGN,
EXT
TERMINATE
GENERATE 4800
TERMINATE 1
START 1
Вариант 2. «СМО с заданной структурой»
Постановка задачи. Для моделирования предлагается СМО со структурой, представленной на рисунке. Поток заявок в системе простейший со
средним временем поступления заявок, указанным на схеме. Времена обра-
ботки заявок в системе распределены экспоненциально со средним временем
обработки, указанным на схеме.
Листинг программы.
EXPON FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38/
.8,1.6/.84,1.83/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.81/.96,3.2/
.97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE 7,FN$EXPON
TRANSFER .6,,M2
QUEUE QQ1
SEIZE AA1
DEPART QQ1
ADVANCE 5,FN$EXPON
RELEASE AA1
TRANSFER ,M3
M2
QUEUE QQ1
SEIZE AA2
DEPART QQ1
ADVANCE 4,FN$EXPON
RELEASE AA2
M3
SEIZE BB1
ADVANCE 6,FN$EXPON
RELEASE BB1
M5
QUEUE QQ2
SEIZE BB2
DEPART QQ2
ADVANCE 7,FN$EXPON
RELEASE BB2
TRANSFER .1,,M2
TRANSFER .28,,M5
TERMINATE
GENERATE 480
TERMINATE 1
START 1
Вариант 3. «Роботизированная гибкая производственная система»
Постановка задачи. Экспериментальная роботизированная гибкая
производственная система имеет два станка с ЧПУ, зону приемки и зону готовых изделий. Компоненты прибывают каждые 150 секунд (экспоненциальное распределение) и последовательно обрабатываются на двух станках. Роботу требуется 8±1 секунд, чтобы захватить или отпустить компоненты, и 6
секунд, чтобы переместить их из зоны приемки к первому станку. Время обработки на первом станке распределено по нормальному закону со средним в
60 секунд и стандартным отклонением в 10 секунд. На перемещение от первого станка ко второму роботу требуется 7 секунд. Время обработки на втором станке составляет 100 секунд (экспоненциальное распределение). Чтобы
переместить компоненты от второго станка в зону готовых изделий, роботу
требуется 5 секунд. Необходимо смоделировать работу гибкого производственного модуля (для 75 готовых изделий).
Листинг программы.
GENERATE (Exponential(1,0,150))
QUEUE One
SEIZE Robot
DEPART One
ADVANCE 8,1
ADVANCE 6
ADVANCE 8,1
RELEASE Robot
QUEUE Two
SEIZE Machine1
DEPART Two
ADVANCE (Normal(1,60,10))
RELEASE Machine1
QUEUE Three
SEIZE Robot
DEPART Three
ADVANCE 8,1
ADVANCE 7
ADVANCE 8,1
RELEASE Robot
QUEUE Four
SEIZE Machine2
DEPART Four
ADVANCE (Exponential(1,0,100))
RELEASE Machine2
QUEUE Five
SEIZE Robot
DEPART Five
ADVANCE 8,1
ADVANCE 5
ADVANCE 8,1
RELEASE Robot
TERMINATE 1
START 75
Вариант 4. «Мастерская по ремонту телевизоров»
Постановка задачи. Телевизионная мастерская наняла одного мастера
для капитального ремонта сдаваемых в аренду телевизоров, сервисного обслуживания клиентов и выполнения мелкого немедленного ремонта. Необходимость в капитальном ремонте телевизоров, принадлежащих компании,
возникает каждые 40±8 часов, ремонт занимает 10±1 час. Мелкий ремонт,
например, замена плавкого предохранителя, настройка каналов и настройка
телевизоров выполняется немедленно. Необходимость в мелком ремонте
возникает каждые 90±10 минут, ремонт занимает 15±5 минут. Телевизоры
клиентов, требующие обычного обслуживания, прибывают каждые 5±1 часов, их ремонт занимает 120±30 минут. Обычное обслуживание телевизоров
имеет более высокий приоритет, чем капитальный ремонт сдаваемой в аренду техники и техники, находящейся в собственности компании. Необходимо
cмоделировать работу мастерской в течение 50 дней.
Листинг программы.
* Капитальный ремонт арендуемой техники
GENERATE 2400,480,,,1
QUEUE Overhaul
SEIZE Maintenance
DEPART Overhaul
ADVANCE 600,60
RELEASE Maintenance
TERMINATE
* Мелкий ремонт
GENERATE 90,10,,,3
QUEUE Spot
PREEMPT Maintenance,PR
DEPART Spot
ADVANCE 15,5
RETURN Maintenance
TERMINATE
* Обычный ремонт техники покупателей
GENERATE 300,60,,,2
QUEUE Service
PREEMPT Maintenance,PR
DEPART Service
ADVANCE 120,30
RETURN Maintenance
TERMINATE
* Счетчик дней
GENERATE 72000 ;Каждый транзакт означает один рабочий день.
TERMINATE 1
START 1
Вариант 5. «Система обработки данных с резервированием»
Постановка задачи. Структурная схема системы имеет вид:
Данные поступают в систему через 8±4 мс.
Обработка данных в основном канале 7±3 мс. Сбои основного канала в
таком режиме работы возникают через 170±30 мс. Задержка на восстановление основного канала составляет 20±7 мс.
Во время сбоя данные обрабатываются резервным каналом в течение
7±3 мс
Листинг программы.
GENERATE 8,4
QUEUE QRAM
QUEUE QN
SEIZE OSKANAL
DEPART QN
ADVANCE 7,3
RELEASE OSKANAL
DEPART QRAM
OUT TERMINATE
GENERATE 170,30,,,1
PREEMPT OSKANAL,PR,OUT
SPLIT 1,REZ
ADVANCE 20,7
RETURN OSKANAL
TRANSFER ,OUT
REZ QUEUE 1
ADVANCE 1,1
DEPART 1
QUEUE 2
SEIZE RKANAL
DEPART 2
ADVANCE 7,3
RELEASE RKANAL
TRANSFER ,OUT
;сегмент таймера
GENERATE 7200
TERMINATE 1
START 1
Вариант 6. «Система передачи данных с ретрансляцией»
Постановка задачи. Система передачи данных обеспечивает передачу
пакетов данных из пункта A в пункт C через ретрансляционный пункт B. В
пункт А пакеты поступают через 6±2мс. Там они буферизуются и передаются
по любой из двух линий. Передача по линии АВ1 за 3±1 mc, передача по линии АВ2 за 3±2 мс. В пункте В они снова буферизуются и передаются по
следующим линиям в пункт C. Передача по линии ВС1 за 3 мс, передача по
линии ВС2 за 3±1 мс. Во время передачи пакетов по линия возможны сбои,
вероятности которых отображены на схеме. Требуется смоделировать прохождение через систему 500 пакетов данных.
Листинг программы.
ABUF
equ
1
BBUF
equ
2
CAB1
equ
1
CAB2
equ
2
CBC1
equ
3
CBC2
equ
4
ABUF
STORAGE
3
BBUF
STORAGE
8
* Основной сегмент модели
GENERATE
6,2,,500
TRANSFER
.50,AB1,AB2
ENTER
ABUF
AB1Er SEIZE
CAB1
AB1
ADVANCE
3,1
RELEASE
CAB1
TRANSFER
.10,,AB1Er
LEAVE
ABUF
ENTER
BBUF
BC1Er SEIZE
CBC1
ADVANCE
3
RELEASE
CBC1
TRANSFER
.05,,BC1Er
LEAVE
BBUF
TRANSFER
,OUT
ENTER
ABUF
AB2Er SEIZE
CAB2
AB2
ADVANCE
3,2
RELEASE
CAB2
TRANSFER
.10,,AB2Er
LEAVE
ABUF
ENTER
BBUF
BC2Er SEIZE
CBC2
ADVANCE
3,1
RELEASE
CBC2
TRANSFER
.05,,BC2Er
LEAVE BBUF
* Сегмент счетчика
OUT
TERMINATE
1
START
500
Вариант 7. «Система анализа и обработки данных»
Постановка задачи. Структурная схема содержит шесть основных
блоков: источник информации А, источник информации В, источник информации С, блок отбраковки данных, блок сжатия данных и блок обработки
данных. Из трех источников информации А, В и С данные поступают на блок
отбраковки данных. После отбраковки на блок сжатия поступает 80% данных. В блоке сжатия данных выполняется операция сжатия данных, в результате которой выходной поток второго блока уменьшается на 90% по сравнению с входным. После этого данные поступают в блок обработки.
Листинг программы.
BL1
EQU
1
BL2
EQU
2
BL3
EQU
3
BUF1
EQU
4
BUF2
EQU
5
BUF3
EQU
6
GENERATE
12,5
TRANSFER
,META
GENERATE
20,5
TRANSFER
,METB
GENERATE
20,3
TRANSFER
,METC
QUEUE
BUF1
SEIZE
BL1
DEPART
BUF1
ADVANCE
4,1
RELEASE
BL1
TRANSFER
.2,META2,METTER
QUEUE
BUF1
SEIZE
BL1
DEPART
BUF1
ADVANCE
6,1
RELEASE
BL1
TRANSFER
.2,METBC,METTER
QUEUE
BUF1
META
METB
METC
META2
METBC
METABC
METTER
SEIZE
BL1
DEPART
BUF1
ADVANCE
6,2
RELEASE
BL1
TRANSFER
.2,METBC,METTER
QUEUE
BUF2
SEIZE
BL2
DEPART
BUF2
ADVANCE
7,2
RELEASE
BL2
TRANSFER
.9,METABC,METTER
QUEUE
BUF2
SEIZE
BL2
DEPART
BUF2
ADVANCE
7,1
RELEASE
BL2
TRANSFER
.9,METABC,METTER
QUEUE
BUF3
SEIZE
BL3
DEPART
BUF3
ADVANCE
80,20
RELEASE
BL3
TERMINATE
GENERATE
5000
TERMINATE
1
START 1
Вариант 8. «Процесс сборки насосов»
Постановка задачи. Некий производитель выпускает центробежные
насосные агрегаты, которые собираются по заказам клиентов. Заказы поступают в среднем каждые 5 часов (экспоненциальное распределение). При поступлении заказа с него снимают две копии. Исходный заказ используется
для получения со склада двигателя и подготовки его к сборке (200±100 минут). Первая копия используется для заказа и подгонки насоса (180±120 минут), а вторая копия – для производства опорной плиты (80±20 минут). Когда
насос и опорная плита готова, производится проверочный монтаж (50±10
минут). После того как будут готовы все три компонента, производится
окончательная сборка. Агрегат разбирается, насос и двигатель окрашиваются, а опорная плита оцинковывается. Затем агрегат собирается окончательно
(150±30 минут). Необходимо смоделировать сборку 50 насосных агрегатов.
Листинг программы.
Factory
Pump
Baseplate
Plate
Tryout
Finish
Basplate
GENERATE
(Exponential(1,0,300))
SPLIT
2,Factory,1
QUEUE
Motor
SEIZE
Motor
DEPART
Motor
ADVANCE
200,100
RELEASE
Motor
TRANSFER
,Tryout
TEST E
P1,2,Baseplate
QUEUE
Pumps
SEIZE
Pumps
DEPART
Pumps
ADVANCE
180,120
MATCH
Plate
ADVANCE
50,10
RELEASE
Pumps
TRANSFER
,Tryout
QUEUE
Base
SEIZE
Base
DEPART
Base
ADVANCE
80,20
MATCH
Pump
ADVANCE
50,10
RELEASE
Base
GATHER
3
ADVANCE
60
TEST E
P1,1,Finish
SEIZE
Paint1
ADVANCE
100,20
RELEASE
Paint1
TRANSFER
,Build
TEST E
P1,2,Basplate
SEIZE
Paint2
ADVANCE
120,30
RELEASE
Paint2
TRANSFER
,Build
SEIZE
Galvanize
Build
ADVANCE
120,30
RELEASE
Galvanize
ASSEMBLE
3
ADVANCE
150,30
TERMINATE
1
START
50
Порядок выполнения работы
1. Разработать на основе приведенных в методических указаниях примерах GPSS-программ типовых СМО имитационные модели сборочного
цеха для трех режимов работы, описанных в лабораторной работе № 1
2. Исследовать в среде GPSS World имитационные модели сборочного
цеха
3. Выбрать и обосновать по результатам моделирования оптимальный
режим функционирования сборочного цеха при заданных значениях
производительностей оборудования. Сравнить с результатами, полученными в лабораторной работе № 1
4. Провести экспериментальное исследование второй технической системы согласно варианту задания по приведенной в постановке задаче
программе в среде GPSS World путем варьирования двух наиболее
важных параметров в диапазоне от -20%  +20% от заданных значений
5. Определить оптимальный режим функционирования технической системы. Критерии оптимальности сформулировать самостоятельно
Содержание отчета
1. Постановка задачи имитационного моделирования сборочного цеха как
системы массового обслуживания. Блок-диаграммы, тексты программ
имитационного моделирования сборочного цеха для различных режимов работы с подробными комментариями
2. Результаты имитационного моделирования (отчеты по моделированию
и выборка из отчетов требуемых выходных параметров модели), выбор
и обоснование оптимального режима работы сборочного цеха
3. Постановка задачи имитационного моделирования второй технической
системы. Блок-диаграмма, текст программы имитационного моделирования технической системы с подробными комментариями
4. Результаты имитационного моделирования (отчеты по моделированию
и выборка из отчетов требуемых выходных параметров модели), обоснование и выбор двух наиболее важных для данной технической системы параметров, формулировка критерия оптимальности и определение оптимального режима работы технической системы
Скачать