Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Построение имитационной модели начнем с создания заголовка модели, который может быть представлен, например, в таком виде:

GPSSW Transp_konv.GPS

**************************************

* Моделирование работы системы *

* " Транспортный конвейер-рабочий" *

**************************************

Далее разобьем всю модель на несколько секторов.

В первом секторе введем информацию, необходимую для функционирования системы. Этот сектор может выглядеть так:

INITIAL X1, 9

INITIAL X2, 1

INITIAL X3, 12

INITIAL X4, 1

INITIAL X5, 13

INITIAL X6, 2

В этом секторе с помощью оператора INITIAL (Инициализировать) задаются

значения сохраняемых величин.

Во втором секторе моделируется процесс поступления деталей на обработку, передача деталей не занятому рабочему и обработка детали первым рабочим. Эта часть модели может быть сформирована следующим образом.

С помощью оператора GENERATE генерируется поток деталей, поступающих

на обработку. Среднее время поступления деталей определяется сохраняемой величиной под номером 1, значение которой должно быть определено заранее. Отклонение от среднего времени определяется сохраняемой величиной под номером 2, значение которой также должно быть определено заранее. Это можно

записать так:

GENERATE X1, X2

В поле операнда А указывается средний интервал времени между поступлениями требований в систему – X1. В задаче эта величина равна 9. Поле операнда В

показывает величину отклонения от среднего интервала времени, равную ±1 единице времени. Таким образом, интервал времени между поступлениями деталей

в систему может составлять [8–10] единиц времени включительно. Определение конкретной величины интервала времени выполняется следующим образом.

Встроенная подпрограмма случайных чисел (датчик случайных чисел) в интервале [0–1], используя равномерное распределение, определяет случайное число, например 0, 25, затем система моделирования вычисляет искомую величину, используя формулу

Х = A + (B – A) × Y,

где A и B – соответственно левая и правая границы интервала поступления требований в систему.

Искомое случайное число в нашей задаче будет следующим:

X = 8 + (10 – 8) × 0, 25 = 8, 5.

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

занят, то требование переходит к оператору, указанному в поле С; если и этот оператор занят, то требование остается в операторе TRANSFER и в цепи текущих событий до освобождения занятого оператора в поле С. Это можно записать так:

TRANSFER BOTH,, RABO

Если первый рабочий занят, то деталь поступает на обработку ко второму рабочему – оператору с меткой RABO – при условии, что он не занят. Если и он занят,

то деталь будет ожидать освобождения любого рабочего. Если первый рабочий освободился – а это определяется с помощью пары операторов SEIZE (Занять)

и RELEASE (Освободить), – то деталь поступает к первому рабочему, где и производится ее обработка. Это можно записать так:

SEIZE RAB1

ADVANCE X3, X4

RELEASE RAB1

TERMINATE

Операторы SEIZE и RELEASE с символьным именем RAB1 обеспечивают сбор статистической информации о канале обслуживания – первом рабочем. Оператор

ADVANCE моделирует время выполнения операции первым рабочим (задержи вает требование в канале обслуживания). Информация о времени обслуживания

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

представлено среднее время выполнения операции (обслуживания требования),

а в поле операнда В – отклонение от среднего времени. Действительное время обслуживания требования определяется так же, как и время поступления деталей (требований) в операторе GENERATE. Так, если датчик случайных чисел выработал число 0, 940, то время обслуживания требования будет следующим:

Х = 11 + (13 – 11) × 0, 940 = 12, 88.

В третьем секторе моделируется процесс обработки деталей вторым рабочим.

Если первый рабочий занят, то деталь поступает на обработку ко второму рабочему при условии, что он не занят. Условие незанятости второго рабочего также определяется с помощью своей пары операторов SEIZE и RELEASE. Это можно

записать так:

RABO SEIZE RAB2

ADVANCE X5, X6

RELEASE RAB2

TERMINATE

Операторы SEIZE и RELEASE определяют соответственно занятость канала обслуживания (рабочего) и его освобождение. Эти два оператора взаимно дополняют друг друга. В поле операнда А операторов указывается имя канала обслуживания (символьное или числовое). Если канал обслуживания занят, то требование не может войти в него. Если канал обслуживания освободился, то при прохождении требования через оператор RELEASE дается сигнал об освобождении канала, и таким образом, следующее требование может поступить на обслуживание. Оператор ADVANCE моделирует время выполнения операции вторым

рабочим.

В четвертом секторе моделируется время функционирования системы – 480 мин.

Это выполняется с помощью оператора GENERATE.

В пятом секторе открывается текстовый файл, в который записываются нужные результаты моделирования. Этот сектор может выглядеть так:

Fin OPEN (" Transp_konveer_rez.txt"),, Met1

WRITE (Catenate(" Facility =", FC$RAB1)),, Met

WRITE (Catenate(" Util. Facility =", FR$RAB1/1000)),, Met

WRITE (Catenate(" Facility =", FC$RAB2)),, Met

WRITE (Catenate(" Util. Facility =", FR$RAB2/1000)),, Met

CLOSE Prob,, Met2

TERMINATE 1

Met TERMINATE 1

Met1 TERMINATE 1

Met2 TERMINATE 1

START 1, NP

Оператор OPEN (Открыть) открывает в нашем примере текстовый файл

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

оператора WRITE (Записать). В нашем примере записывается число деталей, прошедших через рабочих, и коэффициент использования рабочих. Это выполняется с помощью соответствующих стандартных числовых атрибутов: FC$RAB1, FR$RAB1,

FC$RAB2, FR$RAB2.

Затем открытый файл закрывается с помощью оператора CLOSE (Закрыть).

Использование каждого оператора в третьем секторе в случае появления ошибок связано с переходом к оператору завершения – TERMINATE (Завершить).

Оператор TERMINATE удаляет из системы требования: указанное в поле А

число требований покидают систему.

START представляет собой управляющий оператор, обеспечивающий выполнение процесса моделирования.

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

как показано на рис. 4.2 и 4.3.

Результаты моделирования системы представлены на рис. 4.4.

Первая строка:

Facility = 26

Рис. 4.2. Начало программы моделирования системы «Tранспортный конвейер–рабочий»

 

Рис. 4.3. Продолжение программы моделирования системы «Tранспортный конвейер–рабочий»

 

Рис. 4.4. Результаты моделирования системы «Tранспортный конвейер–рабочий»

 

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

Вторая строка:

Util. Facility =.6549566083333333

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

Третья строка:

Facility = 26

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

Четвертая строка:

Util. Facility =.6749524583333336

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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.