Моделирование непоследовательных операций

Во всех приведенных выше моделях технологических процессов транзакты переходят последовательно от блока к блоку, т.е. отображают последовательные операции, происходящие в системе. Если при моделировании возникает необходимость нарушить такую последовательность, то в модели надо нарушить последовательность движения транзактов. Для этого используют блок TRANSFER.

Блок TRANSFER (передать) – перенаправляет транзакты в блок, отличный от последующего (рис. 24).

Блок может использоваться в 8 режимах. Рассмотрим 3 основных режима.

Режим безусловной передачи

Моделирование непоследовательных операций - student2.ru

Рис. 24. Блок TRANSFER в режиме безусловной передачи

В операнде А ставится запятая (,). В операнде В записывается имя блока, в который должен перейти транзакт.

Пример блока TRANSFER в режиме безусловной передачи:

TRANSFER ,BOX

Когда транзакты входят в блок, они сразу же пытаются войти в блок ВОХ. Если последний отказывает в этом, транзакты остаются в блоке ТRANSFER.

Ряд сложных систем, и в том числе производственных, сводятся к замкнутым системам массового обслуживания. В этих СМО общее число заявок в течение всего интервала моделирования системы остается постоянным – заявки не покидают СМО, а циркулируют в ней, последовательно изменяя свои состояния в моменты перехода от одной фазы обслуживания к другой. Например, транспортная система некоторого производства, содержащая N транспортных средств или сборочное производство, в котором участвуют N человек.

При построении GPSS-моделей подобных систем число транзактов в модели должно оставаться постоянным в течение всего интервала моделирования. Это может быть достигнуто благодаря использованию блока GENERATE с операндом D, который выдает в модель заданное число транзактов, и блока TRANSFER в режиме безусловной передачи, помещенного в конце модели и возвращающего транзакты в начало модели.

Пример моделирования

Рассмотрим пример GPSS/Н-модели сборочного производства [4]. Производство изделий включает процесс сборки и обжиг в печи. Содержание печи обходится дорого, поэтому 4 сборщика используют одну печь, в которой одновременно можно обжигать только одну деталь. Сборщик не может начать новую сборку, пока в печи находится предыдущая деталь. Каждый сборщик выполняет следующие действия: сборку следующей детали; ожидание возможности использования печи; использование печи; возврат к сборке.

Время, необходимое на сборку, колеблется в интервале от 25 до 35 минут (распределение равномерное), а процесс обжига распределен нормально со средним значением 8 минут и среднеквадратическим отклонением 2 минуты. Необходимо промоделировать данное производство в течение 8-часового рабочего дня.

Пусть транзакты отображают сборщиков, приход которых смоделируем блоком GENERATE с операндом D, равным 4. За единицу модельного времени примем 1 минуту. Тогда время сборки отобразим блоком ADVANCE со средним 30 и размахом 5. Работу печи смоделируем прибором с именем РЕСН. После того как транзакт завершает использование прибора, моделирующего печь, он должен быть возвращен назад. Отобразим это условие при помощи блока TRANSFER в режиме безусловной передачи, который перенаправляет транзакты в блок следующей сборки. Для организации моделирования в течение 480 минут используем сегмент, содержащий блок GENERATE с соответствующим операндом А.

Блочная интерпретация модели сборочного производства представлена на рис. 25.

Созданная на основе блок-схемы GPSS/H-программа представлена ниже:

SIMULATE Начало моделирования

GENERATE ,,,4 Приход сборщиков

BACK ADVANCE 30,5 Сборка

SEIZE РЕСН Занятие печи

ADVANCE RVNORM(2,8,2) Обжиг

RELEASE РЕСН Освобождение печи

TRANSFER ,BACK Переход к сборке

GENERATE 480 Выход транзакта-таймера

TERMINATE 1 Удаление транзакта-таймера

START 1 Запуск модели

END Конец моделирования

Моделирование непоследовательных операций - student2.ru

Рис. 25. Блочная интерпретация GPSS/H-модели

процесса сборки

Режим статистической передачи

Часто при моделировании технологических процессов необходимо перенаправлять транзакты случайным образом в два различных блока модели. Такие ситуации можно смоделировать блоком TRANSFER в режиме статистической передачи (рис. 26).

Моделирование непоследовательных операций - student2.ru

Рис. 26. Блок TRANSFER

в режиме статистической передачи

В операнде А записывают частоту передачи транзактов в блок С (это число должно быть больше 0 и меньше 1 и всегда начинаться с десятичной точки). В операнде В записывают имя блока, в который переходят транзакты с частотой равной 1 (частота в операнде А). Розыгрыш направления передачи транзакта производится с помощью датчиков равномерно распределенных случайных величин в интервале (0, 1), входящих в GPSS/H.

Примеры блока TRANSFER в режиме статистической передачи:

TRANSFER .25,BOX,PLAY

транзакты, входящие в блок, в 25 % случаев будут передаваться в блок с именем PLAY. В остальных 75 % случаев они будут переданы в блок с именем BOX.

TRANSFER .33,,FAX

транзакты, входящие в блок, будут переданы в 33 % случаев в блок с именем FAX. В остальных случаях они попадут в следующий по порядку блок.

Пример моделирования

Приведем пример модели гибкой производственной системы, содержащей два робототехнических комплекса, где блок TRANSFER используется в режиме статистической и безусловной передачи.

Пусть ГПС содержит два независимо функционирующих робототехнических комплекса (РТК). В ГПС поступает равномерный поток заданий на обработку. Для выполнения одних заданий требуется РТК1, для выполнения других – РТК2. Выбор РТК происходит случайным образом: с вероятностью, равной 0.35, задание направляется на РТК1 и с вероятностью 0.65 (1–0.35) – на РТК2. Для упрощения времена между поступлениями заданий в ГПС, времена работы РТК по выполнению заданий примем равномерно распределенными со средними значениями 100, 80, 200 и размахом 40, 50, 20 соответственно. Требуется построить модель и определить загрузку обоих РТК и среднее количество скопившихся перед ними заданий.

Графическая интерпретация модели представлена на рис. 27.

GPSS/H-программа приведена ниже:

SIMULATE

GENERATE 100,40 Поступление заданий в ГПС

TRANSFER .65,ОН1,ОН2 65 % идет в РТК2, а 35 % в РТК1

OH1 QUEUE 1 Ожидание освобождения РТК1

SEIZE RTK1 Занятие РТК11

DEPART 1 Конец ожидания

ADVANCE 80,50 Обработка в РТК1

RELEASE RTK1 Освобождение РТК1

TRANSFER ,FIN Задание выполнено

ОН2 QUEUE 2 Ожидание освобождения РТК2

SEIZE RTK2 Занятие РТК2

DEPART 2 Конец ожидания

ADVANCE 200,20 Обработка в РТК2

RELEASE RTK2 Освобождение РТК2

FIN TERMINATE Задание выполнено

GENERATE &TIM Моделирование 24 часов

TERMINATE 1

START 1

END

В модели использованы два прибора и две очереди. Прибор с именем RTK1 использован для моделирования работы РТК1, прибор с именем RTK2 – для моделирования работы РТК2. Очередь 1 служит для сбора информации о времени нахождения на ГПС заданий, направляемых на РТК1, очередь 2 – времени нахождения в ГПС заданий, направляемых на РТК2. Поток транзактов создается блоком GENERATE, после чего следует вероятностное прореживание потока транзактов с помощью блока TRANSFER. Этот блок с вероятностью 0.35 направляет транзакты в блок с именем ОН1 и с вероятностью 0.65 в блок с именем ОН2. Блок TRANSFER безусловного типа в модели использован для передачи транзактов, вышедших из прибора RTK1, в блок TERMINATE с именем FIN.

Моделирование непоследовательных операций - student2.ru

Рис. 27. Блок-схема GPSS/H-модели ГПС

Режим BOTH

Когда требуется передать транзакты не случайным образом в один из двух заданных блоков, используют блок TRANSFER в режиме ВОТН (рис. 28).

Моделирование непоследовательных операций - student2.ru

Рис. 28. Блок TRANSFER в режиме ВОТН

В операнде А записывается слово BOTH. В операнде В записывается имя блока, в который будет осуществляться начальная попытка передачи транзакта. Если она неудачна (например, занят блок SEIZE), то транзакт будет передан в блок с именем, записанным в операнде С. Если и этот блок откажет во входе, то транзакт останется в блоке TRANSFER, пока блоки, указанные в операндах В или С, не освободятся. Первым проверяется блок с именем в операнде В.

Примеры блока TRANSFER в режиме BOTH:

TRANSFER BOTH,BOX,PLAY

транзакт будет пытаться войти в блок с именем ВОХ, если эта попытка неудачна, то он будет пытаться войти в блок с именем PLAY. Если и эта попытка неудачна, транзакт останется в блоке TRANSFER, пока не освободится блок BOX или блок PLAY.

TRANSFER BOTH,,COM

транзакт будет пытаться войти в следующий по порядку блок, если эта попытка неудачна, то он будет пытаться войти в блок с именем СОМ.

Наши рекомендации