Модель Цементный завод / Модель Цементный Завод
.docЗадача, которая стоит перед нами, заключается в нахождении оптимальной структуры организации обслуживания цементовозов на цементном заводе. Начальные условия могут отличаться, и при организации эксперимента мы будем оперировать следующими параметрами: количество цементовозов, расстояние до объекта, количество погрузочных модулей, количество типов бетона и организацией процесса обслуживания.
Модель «Цементный завод» состоит из нескольких крупных функциональных блоков:
-
Блок INIT («Инициализация») – служит для инициализации работы модели – это создание новых сущностей (цементовозов), назначение им атрибутов, инициализация глобальных переменных модели.
-
Блок DCOUNT («Параметризация пути»)– служит для расчета коэффициентов понижения средней скорости движения цементовоза, учитывая день движения, сезон и время суток. Погода в данной модели не учитывается, но может задаваться аналогичным образом.
-
Блок ZAVOD («Завод»)– служит для моделирования процесса погрузки бетона на бетоновозы, начиная от въезда машины на территорию, заканчивая выездом загруженной машины с территории завода на объект.
-
Блок TRACK («Дорога»)– служит для моделирования прохождения цементовозом пути до объекта, разгрузки на объекте (или на месте аварийной разгрузки) и возвращения его на завод.
-
Блок SCHEDULE (На схеме отдельно не обозначен, принадлежит блоку «завод») – служит для ограничения длины «рабочего дня» завода. Блок настроен на 10 часовой рабочий день и 14 часов простоя. Нужно обратить внимание на то, что при запуске модели время считается с начала рабочего дня, а не от начала суток.
Рассмотрим используемые для моделирования глобальные переменные:
Обозначение переменной |
Смысл переменной |
Начальное значение и область определения |
G_SPEED |
Средняя скорость цементовоза с учетом коэффициента замедления |
Нет, рассчитывается для каждой машины на каждом отрезке пути |
G_TIME |
Время, затраченное на прохождения отрезка пути от завода до объекта или обратно |
Нет, рассчитывается для каждой машины на каждом отрезке пути |
KZ |
Коэффициент замедления |
0, рассчитывается для каждой машины на каждом отрезке пути |
L |
Длина пути от завода до объекта, км |
70 |
LENGTH_Q |
Максимальная длина очереди цементовозов на погрузку до перераспределения |
3 |
MVAR |
Минимальное опорное время аварийной разгрузки, мин. |
15 |
MVNR |
Минимальное опорное время обычной разгрузки, мин. |
5 |
MVSC |
Минимальное опорное время смены вида цемента, мин. |
5 |
MODUL_L |
1 строка - номера модулей, 2 строка – текущий тип бетона 3 строка – ориентировочный тип бетона для цементовозов |
Массив из трех строк и N столбцов, где N – число погрузочных модулей |
SCDAYTIME |
Время суток, с которого начинается моделирование |
8 8:00 (Утро) |
SCSEASONDAY |
Номер дня в году, с которого начинается моделирование |
125 5 Мая (Весна) |
SVAR |
Среднее время аварийной разгрузки, мин. |
25 |
SVNR |
Среднее время обычной разгрузки, мин. |
25 |
SVP |
Среднее время погрузки, мин. |
20 |
SVSC |
Среднее время смены вида цемента, мин. |
15 |
T0 |
Время застывания цемента в неспециализированном бетоновозе, мин |
120 |
T1 |
Время застывания цемента в специализированном бетоновозе, мин. |
180 |
VP |
Вариация времени погрузки бетона, мин. |
2 |
Рассмотрим используемые для моделирования атрибуты сущностей:
Обозначение атрибута |
Смысл переменной |
Начальное значение и область определения |
CURDAY |
Текущий день года в модели, дни |
Используется для расчета коэффициента замедления |
CURTIME |
Текущее время суток модели, часы |
Используется для расчета коэффициента замедления |
KDAYTIME |
Коэффициент замедления для времени дня |
Используется для расчета коэффициента замедления |
KSEASON |
Коэффициент замедления для сезона года |
Используется для расчета коэффициента замедления |
Length_Av |
Расстояние, пройденное до точки аварийной разгрузки, км |
0 |
LOAD |
Текущая загрузка цементовоза, т. |
0 |
LOAD_MAX |
Максимально возможная загрузка цементовоза, т. |
Зависит от конкретного типа цементовоза |
SPEED |
Крейсерская скорость цементовоза |
Зависит от конкретного типа цементовоза |
TYP_B |
Тип погруженного бетона |
0 |
TYP_Z |
Тип заказанного бетона |
0 |
VECH |
Тип кузова цементовоза |
1-Специальный 2-Обычный |
Рассмотрим детальнее блок «Инициализация».
Это самый простой из всех блоков, но его роль в модели очень велика. Он создает входящий поток сущностей, задает длительность эксперимента и условия его завершения. Кроме того, здесь вводятся переменные даты и времени модели. Рассмотрим процесс настройки входного потока детальнее:
Для этого откройте свойства модуля Arrive. В появившемся окне нужно обратить внимание на поле параметров Arrival Data.
-
Batch Size – количество грузовиков, идущих одним пакетом. Это значение всегда должно быть равно единице (для этой модели).
-
First Creation - время создания первого пакета сущностей (прибытия первого грузовика). Это поле можно использовать для изменения настроек старта моделирования (начала рабочего дня).
-
Time Between – интервал между прибывающими грузовиками. Если значение равно 0, значит, грузовики прибывают все сразу.
-
Max Batches – количество создаваемых грузовиков.
Для того, чтобы настроить список атрибутов, принадлежащих грузовикам, воспользуйтесь кнопкой Assign…
Рассмотрим детальнее блок «Блок». Используем этот блок, как пример построения логических конструкций в «Арена».
-
Для поиска погрузочного модуля с нужным типом бетона используется матрица MODUL_L и оператор поиска индекса FINDJ, о котором говорится в презентации.
Принцип работы блока очень простой. Существует глобальная системная переменная J, задачей блока является приравнять значение которой к искомому значению индекса матрицы. Индекс ищется исходя из условия поиска Search Condition. Правила указания условий смотрите в главе «Операторы». Поля Start of Range и End of Range – являются границей диапазона поиска. В случае если ни одно из значений не удовлетворяет критерию поиска, индекс J приравнивается к 0.
-
Для нахождения очереди с минимальной загрузкой используется модуль PICKSTATION, который анализирует длину очередей перед погрузочными модулями. Обратите внимание на настройки модуля, он может оценивать множество различных системных переменных, но в данный момент отмечена одна Number in Queue, т.е. длина очереди. Кроме того, каждая переменная анализируется на минимальное/максимальное значение. Что и является критерием отбора. Каждой проверяемой переменной ставится в соответствие станция назначения, название которой будет присвоено атрибуту «PickStation 1_att». Это системный атрибут, означающий направление дальнейшего движения сущности (цементовоза). После работы данного модуля, для изменения движения цементовоза, нам достаточно будет установить блок проверки значения атрибута «PickStation 1_att» CHOOSE.
-
Рассмотрим механизм логической блокировки, который часто применяется для реализации следующей схемы:
В случае, когда процесс можно отразить элементарной задержкой, используются стандартные модули Server или «тройка» Enter, Process, Leave. Но в случае логической разветвленности процесса этот вариант не подходит. Следующая конструкция решает проблему механизма блокировки: