Назначение. Блок
генерирует транзакты и записывает их в список будущих событий.
Синтаксис.
GENERATE [A],[B],[C],[D],[E]
Назначение операндов.
Операнд
Назначение
Значение
Значение по умолчанию
A
Интервал времени между
моментами генерации транзактов
Число, СЧА(кроме СЧА
транзактов)
0
B
Модификатор, задающий разброс
интервала времени.
Два типа модификаторов:
модификатор – интервал, модификатор - функция
Модификатор-интервал задает
равномерный закон распределения времени генерации транзактов. При
вычислении разности значений, заданных в А и В, получается нижняя
граница интервала, а при вычислении суммы - верхняя граница.
При использовании
модификатора-функции время генерации транзакта определяется как
произведение значения операнда А и значения функции, заданной операндом
В
Число, СЧА(кроме СЧА
транзактов)
0
C
Начальная задержка. Задает
момент генерирования первого транзакта в блоке
GENERATE при первом
выполнении модели, и после выполнения операции CLEAR.
Поля А и В на задержку транзакта не влияют. Начальная задержка может
быть меньше, равна или больше среднего времени, заданного в поле А.
Число, СЧА(кроме СЧА
транзактов)
Если операнд пуст или равен
0, то момент появления первого транзакта определяется операндами A
и B
D
Предел генерации. Задает
максимальное число транзактов, которое будет создано в блоке
GENERATE. Если поле
Dпусто, блок генерирует
неограниченное число транзактов. Предел генерации устанавливается
повторно оператором CLEAR.
Число, СЧА(кроме СЧА транзактов)
E
Приоритет
транзакта
Число, СЧА(кроме СЧА
транзактов)
0
Особенности выполнения.
1.В начале моделирования( модельное время равно 0) просматриваются все
блоки
GENERATE
модели и планируется генерация первых транзактов блоков в соответствие со
значениями операндов. После генерации транзакта в заданное время он вводится в
модель и планируется генерация следующего транзакта.
2.Если первый из вычисленных интервалов между моментами генерации равен 0,
то этот интервал принимается равным 1.
3.Не допустимо одновременное отсутствие операндов А и
D.
4.Если задан только
операнд А, то время генерации первого транзакта и приращение времени для
генерации следующих транзактов равно значению
А.
5.Если задан операнд D
с нулевыми значениями операндов А,В и С, то транзакты генерируются в момент
времени 0.
6.Транзакты генерируются с заданными интервалами только в том случае, если
блоки, следующие за блоком
GENERATE
,всегда принимают транзакты. Поэтому нежелательно, чтобы после блока
GENERATE
следовал блок, создающий блокирующее приему транзакта условие.
7.После генерации для транзакта устанавливается время его рождения, которое
используется для вычисления СЧА М1( время пребывания транзакта в модели, равное
разности текущего абсолютного времени(AC1)
и времени рождения транзакта). Время рождения может быть изменено блоком MARK
( см. описание блок MARK).
8.После генерации транзакту присваивается номер, имеющий целочисленное
значение и доступный через СЧА XN1.
9.Номер семейства транзакта устанавливается равным его номеру.
10.Приоритеты транзакта – любые целые числа. Большему значению числа
соответствует больший приоритет. Наиболее эффективно выполнение модели при
задании приоритетов последовательными числами ( например 1,2,3, …)
11.Транзакты не должны входить в блок
GENERATE.
Если транзакт пытается это сделать, возникает ошибка выполнения.
12.Когда транзакт покидает блок
GENERATE,
счетчик общего числа прошедших через блок транзактов (Nj)
увеличивается на единицу. Содержимое счетчика текущего числа находящихся в блоке
транзактов (Wj)
никогда не превышает 1.
13.При повторном описании блока
GENERATE
транзакты, связанные с повторно описываемым блоком
GENERATE
уничтожаются. Операнды нового блока GENERATE
заменяют операнды предыдущего блока GENERATE
и затем создается новый транзакт с использованием спецификации нового блока.
Оператор
CLEAR
удаляет из модели все транзакты, в том числе и связанные с блоками
GENERATE.
После завершения действия оператора CLEAR,
транзакты генерируются в каждом блоке
GENERATE,
как при первом выполнении блока GENERATE.
14.Если в операторе описания блока
GENERATE в
поле
D было
задано максимальное число генерируемых блоком транзактов, и заданное число
транзактов уже вышло из этого блока, (т.е. блок уже закончил работу) ,то в
процессе моделирования этот блок может быть снова запущен только в одном из двух
случаев:
1)выполнены операции, заданные оператором
CLEAR, и
производится повторный запуск всех блоков
GENERATE;
2) блок
GENERATE
описан повторно.
Примеры
использования.
GENERATE
25,10
приращение времени
для генерация транзактов будет равно случайному числу, равномерно
распределенному в интервале от 15 до 20 единиц модельного времени .
GENERATE
25,FN$EXP
приращение времени
для генерации транзактов вычисляется как произведение значения числа 25 и
текущего значения функции EXP.
GENERATE
,,,25
генерируются 25
транзактов в момент времени, равный 0.
Опубликовал Kest
March 30 2014 22:01:01 ·
0 Комментариев ·
6210 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.