Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
uchebnik_po_EMM_Kharitonova.doc
Скачиваний:
194
Добавлен:
10.02.2015
Размер:
2.66 Mб
Скачать

3.2.4 Примеры простых моделей в gpssw.

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

Пример 3.2 Контролер проверяет качество изготовленных деталей. Время между поступлением деталей распределено равномерно со средним значением 10 минут и среднеквадратичным отклонением 10±5 минут. Время, затрачиваемое на контроль одной детали, также распределено равномерно и составляет 8±7 минут.

Промоделировать средствами GPSSW работу участка контроля. Определить среднее время, затрачиваемое на контроль 100 деталей, загрузку контролера, характеристики очереди деталей.

При составлении программы − модели за транзакты приняты детали, а обрабатывающим устройством является контролер.

Исходный текст программы модели представлен на рис. 3.6:

Операторы исходного текста программы

Пояснения

GENERATE 10,5

Поступление деталей каждые 10±5 минут

QUEUE VHOD

Занять очередь с именем VHOD

SEIZE KONTR

Попытка занять контролера

DEPART VHOD

Если попытка удалась, покинуть очередь деталей

ADVANCE 8,7

Задержка на время операции контроля

RELEASE KONTR

Освобождение контролера

TERMINATE 1

Деталь (транзакт) удаляется из системы, одновременно из содержимого счетчика завершений вычитается единица

Рис. 3.6

Программа запускается управляющим оператором START 100.

После прогона модели выдается стандартный отчет (см. Таблица 3.2):

Содержимое стандартного отчета к примеру 3.2 Таблица 3.2

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

  • об обрабатывающем устройстве: на контроль всех 100 деталей будет затрачено в среднем 1014 минут, коэффициент загрузки контролера составит 0,808, на контроль одной детали затрачивается в среднем 8,199 минуты.

  • статистика очереди: общее количество деталей, подвергнутых контролю, составило 100 штук, 46 из них поступили на контроль с нулевым временем простоя в очереди (т.е. контролер был не занят в момент их поступления). Максимальная длина очереди составила 5 деталей, средняя длина очереди ­ 0,496 детали, а среднее время простоя в очереди одной детали составило 5,027 минуты.

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

START 100 (надо обработать 100 транзактов) в счетчик завершений засылается число 100. Каждый транзакт, проходящий через оператор TERMINATE, вычитает из счетчика завершений 1, т.к. параметр А этого блока равен 1. Таким образом, моделирование завершится, когда 100-ый по счету транзакт войдет в оператор TERMINATE. При этом точное значение таймера в момент завершения прогона непредсказуемо. Следовательно, в приведенном примере продолжительность прогона устанавливается по количеству транзактов, прошедших через модель.

Пример 3.3 Изменена цель предыдущей задачи: необходимо исследовать работу участка контроля за одну смену. т.е. задано время моделирования. Поскольку все временные интервалы должны быть представлены одинаковыми единицами измерения, время моделирования представим в минутах (длительность смены ­ 8 часов): 60*8=480 минут. В этом случае программа примет следующий вид (рис.3.7):

GENERATE 10,5

QUEUE VHOD

S

Сегмент 1: сохранившаяся часть программы

EIZE KONTR

DEPART VHOD

ADVANCE 8,7

RELEASE KONTR

TERMINATE

G

Сегмент 2:

сегмент временимоделирования.

ENERATE ,,480

TERMINATE 1

START 1

Рис. 3.7 Текст программы к примеру 3.3

Модель, приведенная на рис.3.7, состоит из двух сегментов. Первый сегмент выполняет те же функции, что и в предыдущем примере. Однако, поле А оператора TERMINATE в первом сегменте пусто, т.е. транзакты, выводимые из системы, не уменьшают содержимого счетчика завершений. Во втором сегменте оператор GENERATE создаст первый транзакт в момент модельного времени, равный 480. Но этот транзакт окажется и последним в данном сегменте, так как войдя в блок TERMINATE, он обратит в ноль содержимое счетчика завершений, установленное при запуске программы оператором START равным 1. Таким образом, прогон завершится в заданный момент модельного времени, а точное количество транзактов, прошедших через модель, непредсказуемо и может быть получено из отчета.

Пример 3.4 Объектом исследования является участок по сборке и термообработке изделий. Сборка изделий осуществляется вручную несколькими рабочими. На сборку каждого изделия затрачивается 30±5 мин. Собранное изделие устанавливается в термошкаф и выдерживается 8±2 мин. Одновременно в термошкафу может находиться только одно изделие. Рабочий ожидает окончания термозакалки, извлекает готовое изделие и приступает к сборке нового изделия. Известны (в ден.ед.):

а ­ материальные затраты на одно изделие; b ­ затраты на эксплуатацию термошкафа в час; z ­ зарплата одного рабочего в час; c ­ стоимость готового изделия.

Методом имитационного моделирования найти оптимальное число сборщиков, при котором обеспечивается максимальная прибыль.

Узким местом в процессе производства является единственная термопечь: увеличение числа рабочих может привести к их простою в ожидании освобождения термопечи и, следовательно, к непроизводительным затратам (учитывая, что рабочие находятся на повременной оплате). При малой численности рабочих будет простаивать термопечь, значит будет произведено меньше изделий.Время моделирования соответствует одной рабочей неделе. При 5-ти дневной рабочей неделе и 8-ми часовом рабочем дне модельное время составляет 2400 минут. С учетом того, что, во-первых, деталей будет изготовлено столько, сколько раз была занята термоустановка, и во- вторых ­ термопечь может быть занята каждым из рабочих несколько раз, за транзакты примем количестао сборщиков на участке и будем набирать статистику работы термопечи.

Текст программы примет следующий вид (рис.3.8):

GENERATE , , , 7

AAA ADVANCE 30,5

SEIZE PECH

ADVANCE 8,2

RELEASE PECH

TRANSFER AAA

GENERATE 2400

T

Сектор времени

ERMINATE 1

START 1

Рисунок 3.8 Программа модели производственного участка

До начала каждого нового прогона в первом операторе GENERATE задать новое число сборщиков. По результатам прогона из отчета выписать количество транзактов (сборщиков), прошедших через устройство с именем PECH. Прогоны закончить тогда, когда количество изготовленных изделий не перестанет увеличиваться. По результатам прогона и исходным данным подсчитать получаемую прибыль. Расчеты свести в таблицу и построить график вида (Рис. 3.09):

Рис.3.09 Графическое определение оптимального числа сборщиков по

результатам моделирования.

Пример 3.5. Автомобили прибывают на бензоколонку через каждые 2±1 минута, платят деньги кассиру (2±1 минута) и затем с равной вероятностью заправляются бензином А-93 или А-76. Время заправки (4±1) минуты. Если в момент прибытия автомобиля выбранная колонка занята, то автомобиль уходит не заправившись.

Определить количество автомобилей, обслуженных за рабочую неделю и количество автомобилей , ушедших без обслуживания.

Определить коэффициент загрузки кассира и бензозаправок в течение времени моделирования.

В данной задаче необходима работа с вычисляемыми переменными. Для составления модели понадобятся два новых оператора: SAVEVALUE и GATE.

Для задержки или изменения марщрута транзактов в зависимости от состояния обслуживающих устройств (аппаратных объектов) модели служит оператор GATE (впустить).

Оператор имеет следующий формат:

GATE X A,B где

X ­ вспомогательный операнд содержит код состояния проверяемого аппаратного объекта (вот часть значения кодов: U ­ устройство занято, NU ­ устройство свободно),

A ­ имя или номер проверяемого устройства,

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

Для изменения значения переменных используется оператор

SAVEVALUE А±, В где

операнд А содержит имя переменной, содержимое которой увеличивается (А+) или уменьшается (А-) на величину В при входе транзакта в этот оператор.

Программа ­ модель этой задачи приводится на рис.3.10.

В данной модели в счетчиках KOLOBSL и KOLN подсчитывается общее количество соответственно обслуженных и необслуженных автомобилей.

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

Изменяя исходные данные задачи (вероятности заправки той или иной маркой бензина, среднее время заправки и др.) можно исследовать работу АЗС в различных режимах и принять оптимальное управленческое решение.

GENERATE 2,1 ­ приход авто

SEIZE KASSIR

ADVANCE 2,1 работа кассира

RELEASE KASSIR

TRANSFER .5,,VTOR

GATE NU ZAPR1,OTKAZ1

SEIZE ZAPR1

ADVANCE 4,2 работа 1-ой колонки

RELEASE ZAPR1

SAVEVALUE KOLOBSL+,1

TERMINATE

OTKAZ1 SAVEVALUE KOLN+, 1

TERMINATE

VTOR GATE NU ZAPR2,OTKAZ2

SEIZE ZAPR2

ADVANCE 4,2 работа 2-ой колонки

RELEASE ZAPR2

SAVEVALUE KOLOBSL+,1

TERMINATE

OTKAZ2 SAVEVALUE KOLN+,1

TERMINATE

GENERATE ,,100800,1

TERMINATE 1 сектор времени

START 1

Рис.3.10 Программа модели работы АЗС.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]