Описание некоторых операторов gpss
1. GENERATE (генерировать).
Программный блок предназначен для создания ТА с соответствующим набором атрибутов. Программный блок имеет только выход.
Формат: GENERATE A, B, C, D
В поле A записывается математическое ожидание интервала следования транзактов ().
В поле B записывается величина отклонения случайной величины от математического ожидания (). По умолчанию отклонение равно 0. Так заполняется полеB в случае равномерного закона распределения.
В поле C устанавливается время появления на выходе генератора 1-го транзакта (t1).
В поле D записывается число транзактов, которое должен сформировать генератор.
В случае, если закон отличается от равномерного, генератор задается в следующем формате. Например, генератор с экспоненциальным распределением (=0,25) и с использованием генератора случайных чисел RN1 запишется в виде:
GENERATE (Exponential(1,0,(1/0.25))).
2. TRANSFER (передать).
Оператор предназначен для имитации правил и условий обслуживания. С помощью этого оператора ТА можно передавать в различные программные блоки модели.
Формат: TRANSFER A, B, C, D
В поле A ставится условие (режим) передачи.
В поле B указывается номер следующего блока по условию. В поле C указывается номер блока, в который должен перейти ТА, если блок, указанный в поле B, занят. В поле D записывается индекс, используемый в условии «ALL».
Описание условий в поле A.
1. По этому условию «Пробел» ТА
передаётся в блок, указанный в поле B, (безусловный переход). Если блок занят, ТА остаётся в предыдущем блоке.
2. .N - по этому условию через N- десятичное число записывается вероятность, с которой ТА будет переходить в блок, указанный в поле C.
3. «ALL» - по этому условию ТА пытается войти в блок B, если он занят, то в B+D, если тот занят, то в B+2D и т.д. до C.
4. «BOTH» - ТА пытается войти в блок B, если он занят, то в блок C,
если блок C занят, то остаётся в предыдущем блоке.
Пример: 1. TRAN , МM1
Безусловная передача блоку с меткой ММ1.
2. TRAN .300,ММ1,ММ2
С вероятностью 0.7 ТА будут переданы блоку с меткой ММ1 и с вероятностью 0.3 в блок ММ2.
3. SEIZE (занять).
С помощью оператора SEIZE производится ввод ТА в устройство, имитирующее обслуживание.
Формат: SEIZЕ A
В поле A указывается номер или имя устройства.
4. ADVANCE (задержать).
Блок имитирует обслуживание путём выделения транзакту определённого времени нахождения в блоке.
Формат: ADVAСЕ A, B
В поле A устанавливается математическое ожидание времени обслуживания. В поле B – разброс времени обслуживания (аналогично блоку GENERATE).
Пример: 1. ADVAСЕ 7, 2
Транзакт будет оставаться в блоке от 5 до 9 единиц времени.
2. ADVAСЕ (Exponential (1,0,70)).
Транзакт будет задержан в среднем на время, равное 70 единиц времени.
5. QUEUE (встать в очередь).
Оператор имитирует постановку ТА в очередь.
Формат: QUEUЕ A, B
В поле A – имя очереди или её номер.
В поле B – число одновременно вводимых транзактов в очередь. По умолчанию 1.
6. DEPART (покинуть очередь).
Оператор предназначен для вывода ТА из очереди.
Формат: DEPART A, B
A – имя очереди; B – число выводимых ТА (по умолчанию 1).
7. RELEASE (освободить устройство, реализовать).
Оператор предназначен для вывода из устройства обслуженного ТА.
Формат: RELEASE A
В поле A – имя или номер устройства.
8. TEST ( сравнение двух СЧА).
Оператор используется для передачи управления (ТА) по результатам сравнения двух СЧА.
Формат: TEST R A, B, C.
В поле R ставятся условия сравнения:
E – « = »; NE – «»; L – « < »; LE – « »; G – «> »; GE – « ».
В полях A, B записываются СЧА, подлежащие сравнению.
Если условие поля R выполнимо, то ТА входит в блок TEST и далее по программе. Если условие не выполнено, ТА пытается войти в блок, указанный в поле C (метка перехода). Если блок C занят, то ТА не заходит в TEST, а ожидает выполнение условия.
9. MARK (отметить).
Формат: MARK A
Блок записывает в параметр, указанный в поле А, значение текущего времени. Если поле А свободно, то в место времени создания ТА устанавливается текущее время.
Пример: 1. MARK
Заменяет время входа транзакта в модуль на текущее значение.
2. MARK 3
Записывает текущее время в параметр 3.
10. TERMINAТE (завершить).
Блок предназначен для уничтожения транзактов, прошедших через модель.
Формат: TERMINAТE A
В поле A указывается число уничтоженных транзактов, а в дальнейшем число, вычитаемое из содержимого оператора START.
Примечание. Если в поле A «пробел», то ТА уничтожается, но при этом содержимое оператора START не уменьшается. Используется это в тех случаях, если в модели необходимо задать время моделирования Т. Выполняется это следующим образом. После оператора TERMINAТE с «пробелом» устанавливается группа операторов:
GENERATE Т
В поле Т записывается время моделирования (момент появления 1-го ТА).
TERMINAТE 1
STAR 1
Оператор START устанавливается в пункте меню Command/Start с указанием:
– числа прогонов модели,
– условия печати результатов (по умолчанию печатается стандартный отчёт, если стоит NP, печать отменяется)
– число прогонов, через которые осуществляется промежуточная распечатка результатов.
Работает START следующим образом. После каждого прогона из содержимого счетчика вычитается число, указанное в поле A оператора TERM. При достижении счетчика нулевого значения моделирование заканчивается и если есть разрешение, печатается отчёт.
Пример: 1. START 400
Выполнить модель до 400 прогонов с печатью стандартного отчета.
2. START 100, ,10
Выполнить модель до 100 прогонов и вывод отчета через каждые 10 завершений.
Более подробное описание GPSS World смотрите в /7/.
- Рязанский государственный радиотехнический университет
- Моделирование как основа эксперимента
- Обработка результатов эксперимента
- 1.2. Планирование модельных экспериментов
- 2. Модели для параметрического анализа систем и процессов
- 2.1. Словесное и концептуальное описание модели
- 2.1.1. Составление словесного описания объекта
- 2.1.2. Составление концептуальной модели
- 2.2. Имитационное моделирование
- 2.2.1. Принципы построения моделирующего алгоритма
- 2.2.2. Методика построения имитационной модели
- Структура моделирующего алгоритма
- 17 (F17)
- 1 (Ф1)
- 4 (Ф4)
- 5 (А5)
- 3 (А3)
- 14 (К14)
- 6 (А6)
- 19 (А19)
- 8 (F8)
- 7 (F7)
- 12 (К12)
- 15 (K15)
- 9 (Ф9)
- 13 (А13)
- 16 (A16)
- 20 (A20)
- 10 (А10)
- 11 (А11)
- 18 (А18)
- 2.2.3. Проверка адекватности результатов имитационного моделирования
- 2.2.4. Оценка устойчивости модели
- 2.2.5. Оценка чувствительности модели
- 2.2.6. Калибровка модели
- 2.3. Язык моделирования gpss World
- Функциональные объекты
- Операторы gpss
- Описание некоторых операторов gpss
- Пример моделирования средствами gpss системы обслуживания
- Литература
- Содержание