Смекни!
smekni.com

Разработка имитационной модели грузового терминала (стр. 1 из 2)

Федеральное агентство по образованию

ГОУ ВПО Тольяттинский государственный университет

Институт финансов, экономики и управления

Кафедра Менеджмент организации

Курсовая работа

По дисциплине:Моделирование систем управления

Выполнил: Банкетова К.

Группа: УК-302

Проверил: Ярыгин О. Н.

Тольятти 2009


Формулировка задания:

Укомпании ОАО «МОЛОКО» отгрузка заказов потребителям организована следующим образом. Грузовые автомобили начинают прибывать на погрузку на терминал в 5 часов 00 минут утра с экспоненциально распределенными интервалами времени между прибытиями со средним значением 3 мин. Причем под погрузку прибывают автомобили различного типа (грузоподъемности):

· 10% из них — крупнотоннажные автомобили (свыше 6.0 т);

· 20% — среднетоннажные автомобили (свыше 1,5 до 6,0 т):

· 70% — малотоннажные автомобили (до 1,5 т).

Каждый грузовой автомобиль проходит диспетчера и пост погрузки. Оформление товаросопроводительных документов у диспетчера происходит параллельно с погрузкой автомобиля и не требует дополнительных затрат времени. Время погрузки грузового автомобиля зависит от его типа (грузоподъемности) и равномерно распределено в интервале:

· для крупнотоннажных автомобилей (св. 6,0 т) — от 40 до 60 минут:

· для среднетоннажных автомобилей (св. 1.5 до 6.0 т) — от 30 до 40 мл нут;

· для малотоннажных автомобилей (до 1,5 т) — от 20 до 30 минут.

Имеются участки погрузки крупнотоннажных, среднетоннажных и малотоннажных автомобилей, оборудованные двумя, пятью и восемью параллельными постами соответственно. Каждый автомобиль, прибывающий на погрузку, направляется диспетчером на участок погрузки данного типа подвижного состава, где он либо занимает свободный пост, либо встает в единственную очередь с дисциплиной обслуживания FIFO. После погрузки автомобиль покидает терминал (рис. 5.23). Прохождение автомобилем КПП и движение по территории грузового терминала занимает незначительное время и при моделировании может не учитываться.

Требуется разработать имитационную модель грузового терминала. Выполнить пять прогонов имитационной модели для 120 минут (планируемое время погрузки автомобилей с 5 часов 00 минут до 7 часов 00 минут утр и вычислить среднее количество занятых постов погрузки, среднее время задержки автомобилей на терминале и средний коэффициент использования каждого участка погрузки. Достаточно ли для эффективной работ терминала выделение под погрузку крупнотоннажных, среднетоннажных и малотоннажных грузовиков двух, пяти и восьми параллельных постов соответственно?

Ход работы:

Для создания модели были использованы блоки

• Activity, Multiple, Executive, Exit (4), Catch, Generator, Set Attribute, Queue, FIFO иThrow библиотекиDiscrete Event;

• Input Random Number библиотекиGeneric;

• Buffer библиотеки Manufacturing;

• Plotter, Discrete Event библиотекиPlotter.

Рассмотрим подробнее предназначение о особенности каждого из них:

Первым блоком, создаваемым в рамках данной модели является блок Executive (рисунок 1). Этот блок - сердце каждой отдельной модели и должен быть помещен в левый верхний угол от всех других блоков в модели. Он позволяет процессу моделирования остановиться ко времени завершения. Коней процесса можно задать и другой величиной, например после определенного количества повторений цикла, но у нас нет причин менять настройки заданные по молчанию.

Рисунок 1 – Блок Executive


Вторым создаем блок Generator (рисунок 2). Этот блок генерирует транзакты для процесса моделирования в указанные интервалы времени.

Рисунок 2 - Блок Generator

Параметры распределения времени между создаваемыми транзактами задаются в диалоговом окне. Например: постоянное распределение, эмпирическое, показательное, нормальное и т.д. Входы 1, 2, и 3 позволяют Вам изменять параметры случайного распределения в процессе моделирования. Вход V позволяет управлять количеством производимых транзактов. Для конкретной модели зададим параметры блока следующим образом –

Рисунок 3.

Рисунок 3 – Задание параметров для блока Generator

Транзакты, созданные в модели попадают в блок SetAttribute (рисунок4).



Рисунок 4 - Блок SetAttribute

Устанавливает признаки пунктов, проходящих через блок. Возможно до семи названий различных атрибутов. Для каждого признака определяется количество вариантов. Название атрибута выбирается из списка, который появляется после создания разветвления в модели. Отладку этого блока проведем позже.Чтобы задать вероятность идентифицирования приходящих из блока 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).

Рисунок 14 – Блок организующий очередь

Затем создадим блоки, которые будут проводить обработку транзактов. Для того, чтобы задать время обработки создает блок InputRandomNumber. Минимальное и максимальное время погрузки среднетоннажных и малотоннажных автомобилей заносится в соответствующие поля блоков InputRandomNumber, связанных с блоками Activity, Multiple, моделирующих задержку среднетоннажных и малотоннажных автомобилей при погрузке (рисунок 15).

Рисунок 15 - Диалоговое окно блока InputRandomNumber

В диалоговых окнах Activity, Multipleв поле Maximumnumberinactivityнеобходимо занести количество постов погрузки, предназначенных для обслуживания автомобилей данного типа, т.е. 2, 5и 8для крупнотоннажных, среднетоннажных и малотоннажных автомобилей соответственно.

Рисунок 16 - Диалоговое окно блока Activity

Последним создадим блок Exit(4) (рисунок 17). Он дает возможность регистрировать значения выходов для каждого типа машин.