Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Построение базовой имитационной модели




 

Для анализа работы цеха можно использовать GPSS-модель, приведенную, в приложении 1.

Приведем описание данной модели.

Команда STORAGE – это команда объявления многоканального устройства (в нашей задаче это устройство имеет имя PODDON). После слова STORAGE указывается количество каналов, т.к. в нашей задаче используется 8 поддонов, соответственно и каналов у нас восемь. Команда STORAGE должна указываться вначале модели, до первого оператора GENERATE.

Далее используется группа операторов:

GENERATE,,,1

TARA ADVANCE (EXPONENTIAL(1,0,10))

SPLIT 1,TARA

Оператор GENERATE создает один транзакт. Он задерживается на экспоненциальную случайную величину равную 10-и секундам и попадает на оператор SPLIT. Оттуда этот транзакт передается в следующий оператор модели, а его копия – на метку TARA (задержка на 10 секунд). После этого копия первого транзакта снова попадает на оператор SPLIT, создается новая копия и т.д.

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

Первый аргумент этой функции – номер датчика (генератора) случайных чисел, т.е. номер встроенной процедуры языка GPSS, имитирующей случайные равномерно распределенные числа (СРРЧ). Этот номер может представлять собой любое число от 1 до 999.

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

Третий параметр – это математическое ожидание, т.е. среднее значение. В нашей задаче это среднее значение времени, через которое в цех поступают пустые бутылки, т.е. 10 секунд.

В операторе ADVANCE (EXPONENTIAL(1,0,10)) имитируется поступление пустых бутылок в цех, которое происходит в среднем через каждые 10 секунд.

Оператор SPLIT 1,TARA, создает транзакты путем копирования первого транзакта, такие транзакты называются транзактами одного ансамбля. 1-ца означает количество создаваемых копий, а TARA – это метка оператора, на который передаются все созданные копии.

Т.к. по мере поступления бутылки устанавливаются в поддон, вмещающий 25 бутылок и дальнейшие действие происходят с 25-ю бутылками сразу, то необходимо объединить 25 транзактов в один. Это можно сделать с помощью оператора ASSEMBLE. В нашей задаче используется оператор ASSEMBLE 25, это значит, что когда в оператор поступает транзакт, он не пропускается дальше, а остается в операторе ASSEMBLE до тех пор, пока в него не поступят еще двадцать четыре транзакта (т.е. пока в операторе не будет находиться двадцать пять транзактов). После этого двадцать пять транзактов объединяются в один (точнее первый транзакт пропускается в следующий оператор, остальные - уничтожаются).

Все транзакты, объединяемые в операторе ASSEMBLE, должны принадлежать одному ансамблю, т.е. должны быть созданы оператором SPLIT из исходного транзакта, что у нас и сделано.

Оператор MARK устанавливает значение атрибута М1 равным нулю; таким образом, имитируется отсчет времени с момента начала движения поддона в цеху.

Оператор MARK используется тогда, когда требуется во время моделирования установить значение М1 равным нулю, чтобы отсчитывать время пребывания транзакта в модели с некоторого заданного момента, а не с момента создания транзакта.

Далее имитируем вход в устройство PODDON. Вход транзакта в многоканальное устройство имитируется оператором ENTER, а выход – оператором LEAVE, но перед этим нужно войти в очередь.

Оператор QUEUE PODD имитирует вход в очередь с именем PODD.

Оператор ENTER PODDON имитирует вход в многоканальное устройство с именем PODDON.

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

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

Далее поддон с бутылками поступает к машине, выполняющий заполнение и закупоривание, это имитирует оператор QUEUE OCH_ZAKUP, т.е. имитирует вход в очередь с именем OCH_ZAKUP.

Оператор SEIZE ZAKUP имитирует вход в одноканальное устройство с именем ZAKUP.

Оператор DEPART OCH_ZAKUP имитирует выход из очереди с именем OCH_ZAKUP.

По условию сказано, что заполнение и закупоривание выполняются для всех бутылок в поддоне одновременно и занимают 30 5 секунд на поддон (обе операции вместе). Имитируем это с помощью оператора ADVANCE 30,5. Этот оператор имитирует задержку транзакта на 30 5 единицу времени, т.е. на время от 25 до 35 секунд.

После того как необходимая операция была выполнена, необходимо выйти из этого одноканального устройства. Это действие реализует оператор RELEASE ZAKUP.

Заполнение и закупоривание бутылок выполнено.

Далее идет оператор ADVANCE 8, его действие, я, обговаривал выше.

Т.к. дальше по условию задачи необходимо на закупоренные и заклеенные бутылки наклеить этикетки: эта операция займет от 10 до 14 секунд на бутылку (включая извлечение ее из поддона, наклеивание этикетки и установку обратно в поддон). Т.е. необходимо сделать из одного транзакта двадцать пять, т.к. наклеивание этикеток происходит по одной бутылке. Это и делает оператор SPLIT 24: он имитирует поступление 25 бутылок на дальнейшее действие.

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

Оператор QUEUE OCH_NAKLEI имитирует вход в очередь с именем OCH_NAKLEI.

Оператор SEIZE NAKLEI имитирует вход в одноканальное устройство с именем NAKLEI.

Оператор DEPART OCH_ NAKLEI имитирует выход из очереди с именем OCH_ NAKLEI.

Далее идет оператор ADVANCE 12,2. Он имитирует наклейку этикеток на бутылки, которая занимает от 10 до 14 секунд, иными словами этот оператор имитирует задержку транзакта на 12 2 единицы времени.

Оператор RELEASE NAKLEI имитирует выход из одноканального устройства с именем NAKLEI.

Таким образом, выполнена еще одна операция: на бутылки наклеены этикетки.

Далее для того, что бы сымитировать перемещение поддона от места наклейки этикеток к месту перегрузки бутылок в ящики, который занимает 8 секунд, необходимо снова объединить 25 транзактов в один. Это делает оператор ASSEMBLE 25. После этого имитируем перемещение поддона оператором ADVANCE 8.

Затем, по условию, по окончании всей обработки бутылки из поддона перегружаются в ящики, вмещающие (как поддоны) по 25 бутылок. Т.к. перенос бутылок в ящики выполняется аппаратом, захватывающим по пять бутылок, то необходимо из 25 транзактов сделать 5. Оператор SPLIT 4 имитирует перенос бутылок в ящики по 5 штук.

После этого необходимо сымитировать перенос пяти бутылок, который занимает от 8 до 12 секунд.

Оператор QUEUE OCH_POGRUZKA имитирует вход в очередь с именем OCH_ POGRUZKA.

Оператор SEIZE POGRUZKA имитирует вход в одноканальное устройство с именем POGRUZKA.

Оператор DEPART OCH_ POGRUZKA имитирует выход из очереди с именем OCH_ POGRUZKA.

Перенос пяти бутылок занимает от 8 до 12 секунд, поэтому далее идет оператор ADVANCE 10,2. Он имитирует погрузку бутылок, которая занимает от 8 до 12 секунд, иными словами этот оператор имитирует задержку транзакта на 10 2 единицы времени.

Оператор RELEASE POGRUZKA имитирует выход из одноканального устройства.

Т.к. в ящик погружают 25 бутылок, а погрузка происходит по 5 бутылок, то необходимо применить оператор ASSEMBLE 5, который объединит 5 транзактов в один, а т.к. до этого мы уже использовали оператор ASSEMBLE для захвата бутылок по 5 штук, то повторное использование ASSEMBLE 5 приводит к тому, что в ящике оказывается 25 бутылок.

В условии задачи сказано, что возвращение пустого поддона к месту подачи пустых бутылок занимает 20 секунд. Это реализовывает оператор ADVANCE 20, т.е. он имитирует задержку транзакта на 20 единиц времени.

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

Оператор SAVEVALUE JAS4IKOV+,1 предназначен для подсчета количества ящиков, выходящих из цеха. Единица обозначает то, что когда ящик покидает цех, счетчик увеличивается на единицу.

Далее строится таблица с данными о времени перемещения поддона, т.е. времени когда он пройдет весь путь: от места подачи пустых бутылок к машине для заполнения и закупоривания, от нее – к месту наклейки этикеток, оттуда – к месту перегрузки бутылок в ящики и снова пустой возвратится к месту подачи пустых бутылок. Для этого используется оператор TABULATE VREMA, но для этого необходимо было указать вначале программы команду VREMA TABLE М1,600,250,18. В этой команде указаны параметры таблицы. Они означают, что требуется определить количество случаев, когда время перемещения поддона составит менее 600 секунд, от 600 до 850 секунд, от 850 да 1100 секунд, от 1100 до 1350 секунд и т.д. Всего предполагается получить результаты по 18 интервалам с шагом 250 секунд.

Оператор MARK, добавленный перед оператором QUEUE PODD, требуется для того, чтобы отсчитать время (значения атрибута М1) с момента подачи поддона.

Для регистрации значений табулируемой величины и указан оператор TABULATE VREMA. Он указан после оператора LEAVE PODDON, т.е. в той части модели, где имитируется время полного перемещения поддона: от места подачи пустых бутылок к машине для заполнения и закупоривания, от нее – к месту наклейки этикеток, оттуда – к месту перегрузки бутылок в ящики и снова пустой возвратится к месту подачи пустых бутылок. В этот момент атрибут М1 и содержит полного время перемещения поддона.

Модель запускается на выполнение командой START 1.

При запуске модели на выполнение командой START 1 счетчик завершений становиться равным единице. Для удаления транзактов из модели (т.е. для имитации окончания выпуска безалкогольных напитков) используется оператор TERMINATE. Так как у него нет операндов, счетчик завершений при удалении транзактов из модели не изменяется. Оператор GENERATE 28800 имитирует поступление транзактов с интервалом ровно 28800 единиц времени; таким образом, этот оператор имитирует поступление первого транзакта через 28800 единиц времени (в данном случае – 28800 секунд) после начала моделирования. Этот транзакт сразу же переходит на оператор TERMINATE 1, т.е. удаляется из модели; при этом из счетчика завершений вычитается единица. Т.к. при запуске модели счетчик завершений был задан равным единице, он становится равным нулю. Моделирование при этом завершается, и создается файл-отчет.


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...