Работа в GPSS
Основные команды системы моделирования GPSS World. Построение GPSS модели
При
запуске файла
появится Главное окно системы:
Рис.
1. Главное окно GPSS
Главное окно состоит из нескольких компонентов. В верхней части расположено основное меню, еще ниже – панель инструментов, еще ниже поле – клиентская область. В самой нижней части экрана размещена строка состояния: левая часть For Help показывает подсказки с информацией об используемых пунктах меню. Средняя часть строки состояния Results показывает сообщения об ошибках. Правая часть Clock используется для отображения модельного времени в процессе выполнения модели.
Нам необходимо создать объект «Модель».
Для обработки текста GPSS World имеет текстовый редактор. Выбираем File ►New. После этого появится меню
Рис.
2. Меню выбора объекта
Так
как нам нужно создать объект
«Модель» - выбираем Model. Откроется окно
текстового редактора:
Рис.3.
Окно текстового редактора
Пример 1
Решить
с помощью программы-иммитатора
задачу 1.
Задача 1. Требуется построить и проверить имитационную модель (ИМ) работы ремонтного подразделения с одним каналом обслуживания. В ремонтное подразделение поступают неисправные средства связи (СС) двух типов, которые ремонтируются одними и теми же мастерами ремонтного отделения. Интервалы времени поступления СС первого типа распределены равномерно 10±5 часов. Распределение интервалов времени поступления СС второго типа 12±8 часов. Поступающие СС ремонтируются в последовательности: первым поступило – первым отремонтировано. На ремонт СС первого типа затрачивается 6±2 часа, второго типа – 8±4 часов.
Функционирование ремонтного подразделения моделируется двумя независимыми последовательностями блоков. В качестве единицы модельного времени берем 1 мин. Время моделирования – 3 суток (72 часа).
Переводим все данные в мин.:
10 часов = 600 мин.
5 часов = 300 мин.
12 часов = 720 мин.
8 часов = 480 мин.
6 часов = 360 мин.
2 часа = 120 мин.
4 часа = 240 мин.
72 часа = 4320 мин.
При
построении и проверке ИМ используются
параметры:
Таблица 1
| Обозначение идентификатора | Наименование идентификатора | Примечание |
| Rem1 | Ремонтное подразделение с одним каналом обслуживания | |
| RemQ | Общая очередь неисправных СС первого типа | |
| RemQ1 | Общая очередь неисправных СС второго типа | |
| RemQ2 | Имя таблицы, в которой будет табулироваться общее время прохождения неисправного СС в ремонте | |
| VrRem | Имя таблицы, в которой будет табулироваться общее время нахождения неисправного СС в ремонте | |
| VrRem1 | Имя таблицы, в которой будет табулироваться общее время нахождения в ремонте неисправного СС первого типа | |
| VrRem2 | Имя таблицы, в которой будет табулироваться общее время нахождения в ремонте неисправного СС второго типа |
Модель для решения задачи 1 начнем с заголовка, выделив его жирным шрифтом. В изменения типа шрифта воспользуемся Edit ►Font, жирный. После ввода заголовка приступаем к вводу команд определения таблиц.
Введем имя VrRem1. Для перехода к вводу таблицы командой TABLE следует воспользоваться клавишей [Tab]. Введем строку
«VrRem1 TABLE M1, 420, 180, 5», следующие строки-команды отличаются от первой команды только последними символами в именах переменных. Поэтому воспользуемся командамои копирования Copy и вставки Paste.
Для ввода остальных операторов модели воспользуемся окном Edit ► Insert GPSS Blocks, в появившемся окне выбирается необходимая команда (рис. 4).
Выберем блок GENERATE, появится окно создания блока. В операнды А и В введем данные из условия задачи: 600 и 300, соответственно. Переход от операнда к операнду осуществляется клавишей [Tab] либо мышью. В окошке Comment вводятся комментарии к действиям, например «Источник СС 1 типа» (рис. 5).
Рис.
4. Использование меню блоков GPSS
Рис.
5. Окно заполнения блока GENERATE
Продолжим
ввод остальных операторов модели:
; Пример 1
; Определение таблиц
VrRem1 TABLE M1,420,180,5
VrRem2 TABLE M1,420,180,5
VrRem TABLE M1,420,180,5
; Сегмент имитации ремонта СС 1 типа
GENERATE 600,300 ; Источник СС 1 типа
QUEUE RemQ ; Встать в общую очередь
QUEUE RemQ1 ; Встать в очередь СС 1 типа
SEIZE Rem1 ; Занять ремонтное подразделение
DEPART RemQ ; Покинуть общую очередь
DEPART RemQ1 ; Покинуть очередь СС 1 типа
ADVANCE 360,120 ; Имитация ремонта
RELEASE Rem1 ; Освободить ремонтное подразделение
TABULATE VrRem1 ; Данные о СС 1 типа в таблицу
TRANSFER ,Met1 ; Отремонтированные СС 1 типа
; Сегмент имитации ремонта СС 2 типа
GENERATE 720,480 ; Источник СС 2 типа
QUEUE RemQ ; Встать в общую очередь
QUEUE RemQ2 ; Встать в очередь СС 2 типа
SEIZE Rem1 ; Занять ремонтное подразделение
DEPART RemQ ; Покинуть общую очередь
DEPART RemQ2 ; Покинуть очередь СС 2 типа
ADVANCE 480,240 ; Имитация ремонта
RELEASE Rem1 ; Освободить ремонтное подразделение
Met1 TABULATE VrRem2 ; Данные о СС 2 типа в таблицу
TABULATE VrRem ; Данные о СС обоих типов в таблицу
TERMINATE ; Отремонтированные сс 1 и 2 типа
; Сегмент задания времени моделирования
GENERATE 4320
TERMINATE 1
Таблица 2
Описание блоков GPSS
| Блок | Описание | Примечание |
| GENERATE | Осуществляет
модификацию атрибутов |
|
| QUEUE | Блок, обеспечивающий получение статистических результатов - очереди | |
| SEIZE | Блок, описывающий обект аппаратной категории – однокональных устройств (технических средств) | |
| DEPART | Блок, обеспечивающий получение статистических результатов - очереди | |
| ADVANCE | Блок, осуществляющий
модификацию атрибутов |
Продолжение таблицы 2
| Блок | Описание | Примечание |
| RELEASE | Блок, описывающий обект аппаратной категории – однокональных устройств (технических средств) | |
| TABULATE | Блок, обеспечивающий получение статистических результатов - таблиц | |
| TRANSFER | Блое, изменяющий последовательность движения транзактов (блок передачи управления) | |
| GENERATE | Блок |
|
| TERMINATE | Блок |
Сохраним объект «Модель» и приступим к созданию объекта «Процесс моделирования», который представляет собой оттранслированный объект «Модель». Для трансляции необходимо выбрать Command ► Create Simulation. По этой команде транслятор GPSS проверяет модель на наличие синтаксических ошибок. При их отсутствии, транслятор активизирует все интерактивные команды и окна, что бы можно было следить за состоянием процесса моделирования и управлять им.
Если ошибки имеются, то в окне Journal транслятор выдаст список сообщений об ошибках трансляции. Для поиска ошибок и их исправления следует воспользовавться командой Search ► Next Error. При выполнении этой команды курсор помещается в строке текста модели с ошибкой. После исправления ошибок трансляция выполняется повторно Command ► Retranslate. В случае отсутствия ошибок появится сообщение (рис. 6):
12/06/10 15:35:57 Model Translation Begun.
12/06/10 15:35:57 Ready.
Рис. 6.
Теперь можно запустить процесс моделирования. Для этого выбрать Command ► Start. Появится диалоговое окно (рис. 7):
Рис.
7. Диалоговое окно Start
После нажатия ОК может произойти останов по ошибке выполнения, например, если в строках будет записано Rem, а не Rem1:
ADVANCE 360,120 ; Имитация ремонта
RELEASE Rem1 ; Освободить ремонтное подразделение ,
то в окне Journal будет выдано сообщение об этом (рис. 8):
Рис.
8. Окно с сообщением об ошибке выполнения
There are no Transactions. Check Transaction limits and blocking - означает «Попытка освободить незанятое устройство», что транзакт пытается освободить ОКУ, которое не было им занято, т.е. в блоке RELEASE в данной модели нужно было указать Rem1, а не Rem. При ошибках выполнения строка с ошибкой ищется самостоятельно, иногда номер строки с ошибкой указан в сообщении словом Line №. Перейти к строке с этим номером можно с помощью команды Search ► Go TO Line. Но будьте внимательны, иногда бывает, что найденная строка по сообщению об ошибке ее не содержит, ошибка находится в соседних строках.
Когда успешно завершается первоначальная трансляция модели, создаются:
- последовательность блоков;
- регистрационный список процедур;
- список команд.
Все это передается объекту «Процесс моделирования». Последовательность блоков и список команд сохраняются отдельно.
После первоначальной трансляции модели, созданному объекту «Процесс моделирования» можно передавать любые операторы модели. Такие операторы называются интерактивными. Это могут быть:
- команды;
- определения Plus - процедур;
- блоки.
Последовательность блоков, созданная во время первоначальной трансляции, остается неизменной до следующей повторной трансляции. Интерактивные блоки не включаются в эту последовательность, они транслируются независимо и передаются для выполнения объекту «Процесс моделирования». Для этого после их поступления создается временной блок, который используется в режиме ручного моделирования и затем уничтожается.
Интерактивные блоки называются операторами ручного режима моделирования. Только блоки GENERATE не могут использоваться в этом режиме. Вместо них для создания транзактов могут быть применены блоки SPLIT.
Во время первоначальной трансляции также создается список команд, образующих очередь. Команды делятся на срочные и несрочные. К срочным относятся только команды HALT и SHOW. Срочные команды выполняются сразу же после того, как были переданы объекту «Процесс моделирования». Все остальные ставятся в очередь команд, которые не были еще выполнены.
Есть несколько способов передать оператор модели процессу моделирования:
- использовать меню Command. Нужно выбрать Command ►Custom, набрать список команд и нажать ОК. Список команд будет оттранслирован и передан для выполнения.
- комбинации горячих клавиш;
- закрепить с помощью журнала установок модели оператор GPSS за функциональной клавишей;
- можно поместить список наиболее употребляемых команд в текстовый файл. Затем применить команду INCLUDE для передачи списка команд объекту «Процесс моделирования». Закрепить команду INCLUDE за функциональной клавишей и иметь готовый список команд, выполняемый одним нажатием клавиши.
Команды GPSS World в соответствии со своим назначением делятся на две группы:
- команды определения объектов GPSS;
- команды управления процессом моделирования.
Таблица 3
Описание команд
| Команда | Описание | Примечание |
| SHOW | Предназначена для передачи объекту «Процесс моделирования» выражения для вычисления и записи результата в строку состояния окна Model. Формат команды: SHOW Х, где Х – арифметическое или логическое выражение. Переменные применяемые в выражении Х должны быть предварительно заданы с помощью команды EQU. Например, SHOW XN1 – показать номер активного транзакта; SHOW LOG(AC1) – вычислить и вывести в строку состояния натуральный логарифм абсолютного модельного времени; SHOW N$Met1/N$Met2 – показать результат деления количества транзактов в блоке с меткой Met1 на количество транзактов в блоке с меткой Met2. | SHOW является срочной командой и выполняется немедленно. |
| EQU | Присваивает значение переменной пользователя. |
Отладка моделей.
Запустите процесс моделирования. Выберите Command u Create Simulation. В главном меню выберите Window u Simulation u Blocks Window (рис. 9).
Рис. 9.
Окна GPSS
Делаем пошаговую отладку ИМ и исследуем некоторые показатели в процессе моделирования.
Выберите Command u SHOW и в диалоговом окне наберите Q$RemQ и нажмите ОК.
Закрепите команды SHOW за функциональными клавишами. Выберите Edit ►Setting ► и перейдите на вкладку Function Keys (рис. 10):
Рис. 10. Страница Edit ►Setting
Обратите внимание на все клавиши. Рядом с клавишами [F8] и [F9] наберите две команды (рис. 11):
SHOW Q$RemQ1
SHOW Q$RemQ2
Рис.11.
Вкладка Function Keys
Нажмите ОК. Если будет допущена ошибка, после нажатия ОК появится соответствующее сообщение. Если ошибок нет – команды закреплены за функциональными клавишами. Во время выполнения процесса моделирования можно интерактивно исследовать текущие длины очередей RemQ1 и RemQ2 нажатием одной соответствующей клавишей.
При нажатии [F8] в строке состояния главного окна и в окне Journal отобразится длина очереди неисправных СС 1-го типа, а при нажатии [F9] – длина очереди неисправных СС второго типа. Просмотр удобнее с помощью Window u Simulation Window u Queues Window. Откроется окно с подробным обзором состояния очередей (рис. 12).
Рис. 12.Окно
Queues (очереди)
Для наблюдения за изменением параметров очередей нажмите несколько раз [F5]. Закройте окно.
Выберите Window u Simulation Window u Facilites Window (Окно Устройства) (рис. 13).
Рис.
13. Окно Facilites (обслуживающие устройства
(ОУ))
Цвет значка устройства может быть в двух вариантах: серого цвета – устройство свободно; красный – устройство занято. Значок можно рассмотреть покрупнее, для этого сделайте общий обзор окна командами View u Entity Details (рис. 14). Маленькая белая полосочка в правой части значка показывает небольшую очередь. Большая белая полосочка означает, что очередь превышает 10 транзактов. Закройте окно.
Рис.
14. Окно Entity Details
Откройте окно Window u Simulation Window u Expression Window (окно процесса моделирования). В строке Label введите комментарий Вероятность ремонта; в строке Expression (редактор выражений) (N$Met1/QC$RemQ) нажмите кнопки View и Memorize и ОК. Вы увидите вероятность ремонта СС (рис. 16).
Рис.
15. Окно Expression
Рис. 16.
Определена вероятность ремонта
СС
Построение графиков и диаграмм.
Запустите процесс моделирования Command u Create Simulation. Выберите Window u Simulation Window u Table Window (окно таблица). В окне Open Table
Рис. 17.
Окно Table
выберите VRREM и нажмите ОК. Запустите процесс моделирования Command u START1 и вместо 1 поставьте 10 прогонов:
Рис. 18.
Установка 10 прогонов для ИМ
Понаблюдайте
за изменением диаграммы. По завершению
10 прогонов, в появившейся гистрограмме
(рис. 19) видно, что среднее время ремонта
СС обоих типов составляет 5490,823 мин со
стандартным отклонением 2521,028.
Рис. 19.
Окно Table
График постром так же для 10 прогонов. Запустите процесс моделирования Command u Create Simulation.
Для каждого графика должен быть указан интервал времени. Для 10 прогонов заданное время 4320 умножим на количество прогонов и введем в поле Time Rang после того, как выберите Window u Simulation Window u Plot Window (редактор графика):
В поле Label ставим метку – пояснения к графику, в нашем примере это – Вероятность ремонта (рис. 20), в поле Expression вводим первую переменную для построения графика:
(N$Met1/QC$RemQ).
Это ожидаемая вероятность ремонта, определяемая как отношение отремонтированных СС к поступившим всего в ремонт. Количество поступивших СС всего в ремонт считается равным общему числу входов в общую модель.
В поле Title задайте имя графика, которое описывало бы обе переменные:
Вероятность выполнения ремонта & Время ремонта
Временной
интервал для оси Х мы уже ввели
в Time Rang – 43200. Для оси Y сами устанавливаем
конец интервала 10 (по умолчанию интервал
от 0 до 100). Нажмите кнопки Plot и Memorize.
Рис. 20.
Диалоговое окно редактора графика
Вводим вторую переменную (для второго графика). В поле Label ставим метку (рис. 21):
Время ремонта
В поле Expression вводим переменную для построения второго графика:
((QT$RemQ+FT$Rem1)/1000)
Это среднее время ремонта, определяемое как сумма среднего времени пребывания в очереди и среднего времени пребывания непосредственно в ремонте. Так как вероятность не может быть больше 1, а время ремонта может превысить 1000 мин, то для времени ремонта ввели масштабный множитель 1/1000, что бы рассмотреть оба графика на одном поле (в одном окне). Нажмите кнопки Plot и Memorize.
Нажмите ОК.
Рис. 21.
Заполнение полей окна графика информацией
о втором графике
Теперь
запустите процесс
Рис. 22.
Окно Plot
По
завершению указанного числа прогонов
график можно будет рассмотреть, прокручивая
линейку внизу графика (рис. 23):
Рис. 23. Окно Plot с двумя построенными графиками

- Работа в MS Excel 2007
- Работа В.В. Акимцева: "Почвы и здоровье человека"
- Работа в интерент
- Работа в Интернете
- Работа в конфликтных ситуациях
- Работа в ОС Windows при объектно-ориентированном подходе
- Работа в программе Powerpoint
- Работа А. Печчеи «Человеческие качества»
- Работа аудитора
- Работа базовой станции (БС)
- Работа банка с драгметаллами
- Работа банка с платиковыми картами
- Работа банка с проблемными кредитами
- Работа в Excel