Контрольная работа: Разработка имитационной модели грузового терминала
Устанавливает признаки пунктов, проходящих через блок. Возможно до семи названий различных атрибутов. Для каждого признака определяется количество вариантов. Название атрибута выбирается из списка, который появляется после создания разветвления в модели. Отладку этого блока проведем позже.Чтобы задать вероятность идентифицирования приходящих из блока Generator транзактов, как принадлежащих к каждому конкретному типу атрибута, создадим блок InputRandomNumber (рисунок 5).
Рисунок 5 – Блок InputRandomNumber
Блок производит случайные целые числа или действительные числа, основанные на выбранном распределении. Для нашей модели используем эмпирическое рапределение в котором вероятности заданы при помощи эмпирической таблицы. Настроим блок следующим образом – рисунок 6.
Рисунок 6 – Настройка блокаInputRandomNumber
После прохождения блока SetAttribute транзакты попадают в блок Buffer (рисунок 7). По подобию очереди типа «firstin – firstout» моделирует накопление транзактов для того, чтобы буферизовать пункты, необходимые последующим операциями моделирования. Максимальная длина, определяемая количеством пунктов в очереди может быть установлена в диалоговом окне.
Рисунок 7 – Блок Buffer
Мгновенная буферная длина и время ожидания, время может быть проверено в L и соединителях W соответственно.
Когда буфер заполнен он перестает принимать транзакты, пока транзакты не будут удалены; или конец моделирования может быть определен как момент заполнения буфера. В диалоговом окне так же можем рассмотреть среднюю и максимальную длину очереди и время ожидания, число пунктов, которые вошли и вышли из буфера. Настройки, установленные в блоке по умолчанию удовлетворяют условиям нашей модели (рисунок 8).
Рисунок 8 – Настройка блока Buffer
Из буфера транзакты попадают в блок Throw (рисунок 9). Этот блок позволяет создать разветвление в схеме, чтобы разделить обработку транзактов разного типа. Этот блок "бросает" транзакты в блок Catch (рисунок 10), не используя соединители или линии связи. Связь между блоками Throw и Catch определяется лейбл и номер блока Catch в его диалоговом окне. Такие блоки можно использовать и не создавая разветвлений в цепи.
Рисунок 9 – Блок Throw
Рисунок 10 – Блок Catch
Чтобы «бросить» транзакт необходимо создать связи, основанные на значении атрибута. Для этого сначала настроим блоки принимающие транзакты (рисунок 11). Для каждого блока Catch присвоим имя (тип 1, тип 2, и тип 3).
Рисунок 11 – Настройка блока Catch
После этого перейдем к настройке блока Throw. Устанавливаем отметку SpecifyCatcСпециализированные блоки Приема в зависимости от атрибутов и заполняем таблицу. В строку Attributename вводим имя атрибута: Machinetipe. И заполняем таблицу построчно, выбирая Catchblock из ниспадающего списка (в этом списке будут названия, присвоенные каждому из таких блоков).
Рисунок 12 – Диалоговое окно блока Throw
После настройки работы этого блока вернемся к блоку SetAttributes и в его диалоговом окне выберем предложенное имя атрибута. Заданное количество вариаций равно трем – три типа прибывающих машин.
Рисунок 13 – Диалоговое окно блока SetAttributes
Таким образом предыдущие блоки разделяют приходящие в систему транзакты в соответствии с их типом и теперь для каждого типа создаем отдельную очередь типа firstin – firstout (рисунок 14).