Лабораторные работы (2010) (Отчет 3)

Посмотреть архив целиком

Московский энергетический институт

(технический университет)


Институт автоматики и вычислительной техники


Кафедра прикладной математики









Отчет по лабораторной работе №3

курса: “Теория игр и исследование операций”.

Тема: “ Моделирование с помощью системы интеллектуального

имитационного моделирования РДО ”.










Выполнила:

Щербакова Ю.М.

А-13-06

Проверила:

Гречкина П.В.











Москва 2010



Оглавление

Постановка задачи 3

Описание предметной области 3

Описание имитационной модели 3

Типы ресурсов 3

Ресурсы 4

Операции 4

Интерфейс 5

Выполнение 10

Статистика 10

Приложение 11

Объекты констант, функций и последовательностей 11

Объекты операций 12

Объекты требуемой статистики 19



Постановка задачи

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


Описание предметной области

В разработанной системе смоделирован последовательный многоэтапный процесс упаковки сигарет. Первым шагом является приход сигарет на конвейер. После этого сигареты помещаются в фольгу, а затем в бумагу. Из полученных пачек сигарет составляются блоки, которыми заполняются коробы. Окончательной стадией является перемещение коробов в паллеты.

Сигареты появляются на ленте конвейера согласно равномерному закону распределения в интервале времени (0,00001; 0,00005) часа. В момент накопления первых десяти сигарет приходит новая фольга. Когда приходит одиннадцатая сигарета, фольга перемещается и сигареты складываются в нее. Одна фольга рассчитана на 20 сигарет, затем согласно равномерному закону распределения в интервале времени (0,00003; 0,00004) часа фольга упаковывается и уходит для дальнейшей упаковки в бумагу.

Бумага приходит на конвейер, когда он свободен. Затем бумага перемещается, когда количество пачек из фольги не равно 0, т.е. когда фольга находится в состоянии «упаковано». Согласно равномерному закону распределения в интервале времени (0,00003; 0,00004) часа происходит упаковка в бумагу.

Полученная пачка упаковывается в блок согласно равномерному закону распределения в интервале времени (0,00003; 0,00005) часа. Каждый блок состоит из 10 пачек. Как только поступает 11-ая пачка, полностью заполненный блок уходит, и вслед за этим приходит новый блок, в котором появляется 1-ая пачка.

Блоки помещаются в короб согласно равномерному закону распределения в интервале времени (0,00001; 0,00002) часа. Каждый короб состоит из 9 блоков. Короб уносит рабочий, этот процесс занимает довольно продолжительного времени. Как только ушел короб, приходит новый, в который снова складываются блоки.

На заключительной стадии короба, состоящие из блоков, помещаются в паллету согласно равномерному закону распределения в интервале времени (0,00004; 0,00005) часа. Каждая паллета состоит из 5 коробов. Как только приходит 6-ой короб, паллета перемещается погрузчиком и уходит. Как только ушла паллета, приходит новая, в которую снова складываются короба.

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


Описание имитационной модели

Типы ресурсов

Используется один тип ресурсов – Упаковки. Это постоянный ресурс, у которого есть 13 параметров. Шесть из них – целочисленные и определены для задания количества соответствующих объектов на конвейере: сигарет, пачек из фольги, пачек, блоков, коробов, паллет.

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

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


$Resource_type Упаковки : permanent

$Parameters

количество_сигарет_на_конвейере: integer

упаковка_в_фольгу: (приходит, пришла, перемещается, перемещена, упаковывается, упаковано, уходит, ушла) = ушла

количество_пачек_из_фольги_на_конвейере: integer

приход_рабочего: (пришел, берет, взял, закурил, выкурил, уходит, ушел) = ушел

количество_пачек_на_конвейере: integer

упаковка_в_бумагу: (приходит_бумага, пришла_бумага, перемещается_бумага, перемещена_бумага, упаковывается_бумага, упаковано_бумага, уходит_бумага, ушла_бумага) = ушла_бумага

конвейер_свободен: (да, нет) = да

количество_блоков_на_конвейере: integer

упаковка_в_блок: (приходит_блок, пришел_блок, перемещается_блок, перемещен_блок, упаковывается_блок, упаковано_блок, уходит_блок, ушел_блок) = ушел_блок

количество_коробов_на_конвейере: integer

упаковка_в_короб: (приходит_короб, пришел_короб, перемещается_короб, перемещен_короб, упаковывается_короб, упаковано_короб, уходит_короб, ушел_короб) = ушел_короб

количество_паллет_на_конвейере: integer

упаковка_в_паллету: (приходит_паллета, пришла_паллета, перемещается_паллета, перемещена_паллета, упаковывается_паллета, упаковано_паллета, уходит_паллета, ушла_паллета) = ушла_паллета

$End


Ресурсы

В модели используется один ресурс Упаковка типа Упаковки. Начальные значения числовых параметров равны 0, остальные указаны в файле с типами ресурсов, поэтому в качестве начального значения указана *.

$Resources

Упаковка: Упаковки trace 0 * 0 * 0 * * 0 * 0 * 0 *

$End


Операции

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

Всего определено 25 операций:

- 2 из них типа irregular_event; они отвечают за приход рабочего и поступление сигареты на конвейер;

- остальные 23 операции типа operation; они описывают все оставшиеся процессы.

$Operations

Приход_сигареты: образец_прихода_сигареты

Выкуривание: образец_выкуривания

Взятие: образец_взятия_сигареты

Приход: образец_прихода_рабочего

Уход: образец_ухода

Приход_фольги: образец_прихода_фольги

Перемещение_фольга: образец_перемещения_фольги

Упаковка_в_фольгу: образец_упаковки_в_фольгу

Уход_фольги: образец_ухода_фольги

Приход_бумаги: образец_прихода_бумаги

Перемещение_бумаги: образец_перемещения_бумаги

Упаковка_в_бумагу: образец_упаковки_в_бумагу

Уход_бумаги: образец_ухода_бумаги

Приход_блока: образец_прихода_блока

Перемещение_блока: образец_перемещения_блока

Упаковка_в_блок: образец_упаковки_в_блок

Уход_блока: образец_ухода_блока

Приход_короба: образец_прихода_короба

Перемещение_короба: образец_перемещения_короба

Упаковка_в_короб: образец_упаковки_в_короб

Уход_короба: образец_ухода_короба

Приход_паллеты: образец_прихода_паллеты

Перемещение_паллеты: образец_перемещения_паллеты

Упаковка_в_паллету: образец_упаковки_в_паллету

Уход_паллеты: образец_ухода_паллеты

$End

Интерфейс

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




$Frame Кадр_1

$Back_picture = <255 255 255> fon //фоновая картинка


//Прорисовка поясняющих надписей

Show

text [10, 5, 200, 15, transparent, <0 0 0>, 'Время моделирования:']

text [170, 5, 200, 15, transparent, <0 0 0>, Time_now]

text [10, 300, 200, 15, transparent, <0 0 0>, 'Рабочий:']

text [10, 310, 200, 15, transparent, <0 0 0>, Упаковка.приход_рабочего]

text [35, 60, 200, 15, transparent, <0 0 0>, 'Сигарет:']

text [100, 60, 200, 15, transparent, <0 0 0>, Упаковка.количество_сигарет_на_конвейере]

text [130, 50, 200, 15, transparent, <0 0 0>, 'Фольга:']

text [130, 60, 200, 15, transparent, <0 0 0>, Упаковка.упаковка_в_фольгу]

text [240, 40, 200, 15, transparent, <0 0 0>, 'Бумага:']

text [240, 50, 200, 15, transparent, <0 0 0>, Упаковка.упаковка_в_бумагу]

text [240, 65, 200, 15, transparent, <0 0 0>, 'Пачки:']

text [290, 65, 200, 15, transparent, <0 0 0>, Упаковка.количество_пачек_на_конвейере]

text [400, 5, 200, 15, transparent, <0 0 0>, 'Упаковка в блок:']

text [400, 15, 200, 15, transparent, <0 0 0>, Упаковка.упаковка_в_блок]

text [400, 30, 200, 15, transparent, <0 0 0>, 'Блоки:']

text [450, 30, 200, 15, transparent, <0 0 0>, Упаковка.количество_блоков_на_конвейере]

text [850, 40, 200, 15, transparent, <0 0 0>, 'Упаковка в короб:']

text [850, 50, 200, 15, transparent, <0 0 0>, Упаковка.упаковка_в_короб]

text [850, 65, 200, 15, transparent, <0 0 0>, 'Короба:']

text [910, 65, 200, 15, transparent, <0 0 0>, Упаковка.количество_коробов_на_конвейере]

text [1050, 130, 200, 15, transparent, <0 0 0>, 'Упаковка в паллету:']

text [1050, 140, 200, 15, transparent, <0 0 0>, Упаковка.упаковка_в_паллету]

text [1050, 155, 200, 15, transparent, <0 0 0>, 'Паллет:']

text [1110, 155, 200, 15, transparent, <0 0 0>, Упаковка.количество_паллет_на_конвейере]

Show_if Упаковка.количество_паллет_на_конвейере > 0 and Упаковка.количество_паллет_на_конвейере < 11

rect [1050, 170, (Упаковка.количество_паллет_на_конвейере)*10, 10, <50 50 255>, <0 0 0>]

Show_if Упаковка.количество_паллет_на_конвейере > 10

rect [1050, 170, 100, 10, <50 50 255>, <0 0 0>]


//Прорисовка различных состояний рабочего






Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.