Моделирование работы сборочного цеха
Оглавление
1. Постановка задачи 2
2. Описание моделируемой системы 3
3. Блок-диаграмма модели в символике языка GPSS 5
4. Решение задачи на языке GPSS 6
5. Результаты моделирования 7
6. Заключение 11
Приложение А 12
7. Список использованной литературы 19
Постановка задачи
На сборочный участок цеха предприятия через интервалы времени, распределенные экспоненциально со средним значением 10 мин, поступают партии, каждая из которых состоит из трех деталей. Половина всех поступающих деталей перед сборкой должна пройти предварительную обработку в течение 7 мин. На сборку подаются обработанная и необработанная детали. Процесс сборки занимает всего 6 мин. Затем изделие поступает на регулировку, продолжающуюся в среднем 8 мин (время выполнения ее распределено экспоненциально). В результате сборки возможно появление 4% бракованных изделий, которые не поступают на регулировку, а направляются снова на предварительную обработку.
Смоделировать работу участка в течение 24 ч. Определить возможные места появления очередей и их вероятностно-временные характеристики. Выявить причины их возникновения, предложить меры по их устранению и смоделировать скорректированную систему.
Элементы модели участков обработки деталей:
транзакты – детали, поступающие на участки обработки;
очереди – очереди на участках обработки;
участки обработки – участки цеха, производящие сборку, обработку и регулировку деталей.
Описание моделируемой системы
Данная система описывает работу сборочного участка цеха, которая состоит из трех этапов: сборка, предварительная обработка и регулировка деталей. Первые два этапа осуществляются параллельно. Половина всех партий (50 %) поступает сразу на сборку, а вторая половина проходит предварительную обработку, после чего отправляется на сборку. В процессе сборки деталей выделяется 4 % брака, которые заново проходят предварительную обработку. Следующим этапом все партии поступают на регулировку (96 %).
На основании задания была построена структурная схема (Рисунок 1).
Сборка (6 мин)
Производящий детали
участок цеха
Предварительная обработка (7 мин)
Регулировка (8 мин)
Готовая продукция
4 % брака
96 %
50 %
50 %
Интервалом в 10 мин поступают партии
(из 3 деталей)
Сборочный участок цеха
Рисунок 1 - Блок-схема.
В данной модели (рисунок 1) заявки (партии) поступают в систему (сборочный участок цеха) из участка цеха, производящего детали, откуда в свою очередь выходит готовая продукция. Каждая партия состоит из трех деталей. Поступление заявок происходит через интервалы времени, распределенные экспоненциально со средним значением 10 мин. По окончании времени работы системы (24 часа), все заявки удаляются из системы (перестают поступать), т.е. работа сборочного участка цеха прекращается.
Для реализации имитации работы сборочного участка цеха в среде GPSS World понадобились следующие операторы: GENERATE, TRANSFER, SPLIT, QUEUE, SEIZE, DEPART, ADVANCE, RELEASE, TERMINATE, START. Синтаксис данных операторов указан в Приложении А.
Блок-диаграмма модели в символике языка GPSS
10
Sp2
Sp1
sdsd
7
6
0.5
0.04
sdsd
8
1440
1
Рисунок 2. Блок-диаграмма.
Решение задачи на языке GPSS
******************************
GENERATE (EXPONENTIAL(1,0,10)) - поступление заявок с интервалом в 10 мин.
TRANSFER .5,sp1,sp2 - распред. заявок между sp1 и sp2 (по 50%)
******************************
sp1 SPLIT 2 - размножение заявок (становится 3 детали)
blok1 QUEUE OCHER1 - занятие очереди 1
SEIZE OBRABOTKA - занятие этапа предв. обработки
DEPART OCHER1 - освобождение очереди 1
ADVANCE 7 - задержка на этапе предв. обработки
RELEASE OBRABOTKA - освобождение этапа предв. обработки
TRANSFER ,blok2 - переход к блоку 2
******************************
sp2 SPLIT 2
blok2 QUEUE OCHER2 - занятие очереди 2
SEIZE SBORKA - занятие этапа сборки
DEPART OCHER2 - освобождение очереди 2
ADVANCE 6 - задержка на этапе сборки
RELEASE SBORKA - освобождение этапа сборки
******************************
TRANSFER .04,blok3,blok1 - 4% заявок отпр-ся в блок 1, 96% в блок 3
******************************
blok3 QUEUE OCHER3 - занятие очереди 3
SEIZE REGULIROVKA - занятие этапа регулировки
DEPART OCHER3 - освобождение очереди 3
ADVANCE (EXPONENTIAL(1,0,8)) - задержка на этапе сборки
RELEASE REGULIROVKA - освобождение этапа регулировки
******************************
TERMINATE - удаление заявок
******************************
GENERATE 1440 - прогон модели в течении 24 часов
TERMINATE 1 - удаление заявок (окончание моделирования)
START 1
- 1 завершение прогона модели
Результаты моделирования
После окончания моделирования в среде GPSS World, был получен следующий стандартный отчет:
Sunday, January 23, 2011 11:37:38
START TIME |
END TIME |
BLOCKS |
FACILITIES |
STORAGES |
0.000 |
1440.000 |
24 |
3 |
0 |
NAME |
VALUE |
BLOK1 |
4.000 |
BLOK2 |
11.000 |
BLOK3 |
17.000 |
OBRABOTKA |
10005.000 |
OCHER1 |
10004.000 |
OCHER2 |
10000.000 |
OCHER3 |
10002.000 |
REGULIROVKA |
10003.000 |
SBORKA |
10001.000 |
SP1 |
3.000 |
SP2 |
10.000 |
LABEL |
LOC |
BLOCK TYPE |
ENTRY COUNT |
CURRENT COUNT |
RETRY |
1 |
GENERATE |
131 |
0 |
0 | |
2 |
TRANSFER |
131 |
0 |
0 | |
SP1 |
3 |
SPLIT |
70 |
0 |
0 |
BLOK1 |
4 |
QUEUE |
224 |
31 |
0 |
5 |
SEIZE |
193 |
0 |
0 | |
6 |
DEPART |
193 |
0 |
0 | |
7 |
ADVANCE |
193 |
1 |
0 | |
8 |
RELEASE |
192 |
0 |
0 | |
9 |
TRANSFER |
192 |
0 |
0 | |
SP2 |
10 |
SPLIT |
61 |
0 |
0 |
BLOK2 |
11 |
QUEUE |
375 |
135 |
0 |
12 |
SEIZE |
240 |
0 |
0 | |
13 |
DEPART |
240 |
0 |
0 | |
14 |
ADVANCE |
240 |
1 |
0 | |
15 |
RELEASE |
239 |
0 |
0 | |
16 |
TRANSFER |
239 |
0 |
0 | |
BLOK3 |
17 |
QUEUE |
225 |
67 |
0 |
18 |
SEIZE |
158 |
0 |
0 | |
19 |
DEPART |
158 |
0 |
0 | |
20 |
ADVANCE |
158 |
1 |
0 | |
21 |
RELEASE |
157 |
0 |
0 | |
22 |
TERMINATE |
157 |
0 |
0 | |
23 |
GENERATE |
1 |
0 |
0 | |
24 |
TERMINATE |
1 |
0 |
0 |
FACILITY |
ENTRIES |
UTIL. |
AVE. TIME |
AVAIL. |
OWNER |
PEND |
INTER |
RETRY |
DELAY |
SBORKA |
240 |
0.999 |
5.993 |
1 |
215 |
0 |
0 |
0 |
135 |
REGULIROVKA |
158 |
0.990 |
9.022 |
1 |
178 |
0 |
0 |
0 |
67 |
OBRABOTKA |
193 |
0.935 |
6.974 |
1 |
228 |
0 |
0 |
0 |
31 |
QUEUE |
MAX |
CONT. |
ENTRY |
ENTRY(0) |
AVE.CONT. |
AVE.TIME |
AVE.(-0) |
RETRY |
OCHER2 |
135 |
135 |
375 |
1 |
68.334 |
262.401 |
263.103 |
0 |
OCHER3 |
69 |
67 |
225 |
4 |
32.035 |
205.025 |
208.736 |
0 |
OCHER1 |
40 |
31 |
224 |
7 |
19.017 |
122.249 |
126.193 |
0 |
FEC XN |
PRI |
BDT |
ASSEM |
CURRENT |
NEXT |
PARAMETER |
VALUE |
178 |
0 |
1441.319 |
174 |
20 |
21 |
||
215 |
0 |
1441.715 |
210 |
14 |
15 |
||
228 |
0 |
1444.961 |
228 |
7 |
8 |
||
393 |
0 |
1466.839 |
393 |
0 |
1 |
||
396 |
0 |
2880.000 |
396 |
0 |
23 |
Из полученного отчета можно узнать результаты прогона построенной модели, представленные в Таблице 1:
Таблица 1 – Результаты моделирования
Этапы |
Загруженностьустройств |
Кол-во необслуженных заявок |
Среднее время задержки в очереди |
Пр. обработка |
0.935 |
31 |
122.249 |
Сборка |
0.999 |
135 |
262.401 |
Регулировка |
0.990 |
67 |
205.025 |
В данной задаче необходимо обеспечить нормальную работу на всех этапах модели, с наименьшим количеством необслуженных заявок, вероятностью появления очередей, и временем задержек в них. А так же, результаты показывают недостаточную загруженность устройства на этапе предварительной обработки, что желательно исправить. Сделать это можно за счет оптимизации параметров, а именно, сократив время выполнения работы на этапах системы, но это приведет к чрезмерному увеличению нагрузки на людей и работающее оборудование. Возникнет необходимость в закупке усовершенствованного, дорогостоящего оборудования.
Предположим, что цех закупил улучшенное оборудование. В соответствии с моим предложением в текст программы были внесены изменения.
Ниже представлен текст программы после внесения изменений:
GENERATE (EXPONENTIAL(1,0,10))
TRANSFER .5,sp1,sp2
******************************
sp1 SPLIT 2
blok1 QUEUE OCHER1
SEIZE OBRABOTKA
DEPART OCHER1
ADVANCE 7
RELEASE OBRABOTKA
TRANSFER ,blok2
******************************
sp2 SPLIT 2
blok2 QUEUE OCHER2
SEIZE SBORKA
DEPART OCHER2
ADVANCE 5 - значение изменяем с «6» до «5»
RELEASE SBORKA
******************************
TRANSFER .04,blok3,blok1
******************************
blok3 QUEUE OCHER3
SEIZE REGULIROVKA
DEPART OCHER3
ADVANCE 5 - значение изменяем с «8» до «5»
RELEASE REGULIROVKA
******************************
TERMINATE
******************************
GENERATE 1440
TERMINATE 1
START 1
Как видно из текста программы изменения произошли в последних двух блоках, т.е. новое оборудование завезли в отдел непосредственной сборки деталей и в отдел регулировки. Процессы сборки и регулировки стали занимать всего по 5 мин. При этом время, затрачиваемое на предварительную обработку деталей, не изменилось, т.е. не пришлось закупать дополнительное оборудование. Как и предполагалось, уменьшилось количество необслуженных заявок и среднее время задержки в очереди, соответственно вероятность появления очередей тоже уменьшилась. А также установился приемлемый уровень загруженности устройств объслуживающих процессы: сборки, предварительной обработки и регулировки.
Числовые данные произошедших изменений приведены в таблице 2.
Таблица 2 – Результаты измененной модели (М2) по сравнению с данной (М1)
Этапы |
Загруженность устройств |
Кол-во необслуженных заявок |
Среднее время задержки в очереди | |||
М1 |
М2 |
М1 |
М2 |
М1 |
М2 | |
Пр. обработка |
0.935 |
0.972 |
31 |
8 |
122.249 |
38.486 |
Сборка |
0.999 |
0,999 |
135 |
86 |
262.401 |
160.541 |
Регулировка |
0.990 |
0.957 |
67 |
0 |
205.025 |
0.000 |
Заключение
На основе полученного задания был выполнен прогон построенной модели в течение 24 ч. (1440 мин.). По результатам полученных данных были выявлены возможные места появления очередей и причины их возникновения. Также определено количество необслуженных заявок и среднее время задержки в очередях. Можно теперь сделать вывод о том, что в системе есть некоторые факторы, которые неблагоприятно влияют на её работоспособность.
Усовершенствовать данную систему можно путем предложенных изменений, т.е. за счет замены работающего оборудования в цеху на более новое, с наименьшими затратами времени. Что в свою очередь повысит производительность сборочного участка цеха и обеспечит оптимальную работу всей системы в целом, соответственно увеличится доход предприятия.
Приложение А
Синтаксис операторов GPSS использованных в данном курсовом проекте:
GENERATE (ГЕНЕРИРОВАТЬ)
GENERATE - вводит транзакты в модель. Формат: GENERATE A,B,C,D,E,F,G
А - среднее значение интервала времени;
В - разброс или модификатор среднего значения (по умолчанию ноль);
С - время появления первого транзакта;
D - общее число генерируемых транзактов;
Е - уровень приоритета каждого транзакта; (от 0 до 127, значение по умолчанию 0);
F - число параметров (по умолчанию 12);
G - тип параметра (F - полнословный, Н - полусловный - по умолчанию).
Вводит транзакты в модель, посылая их в следующий по порядку блок. Если в поле В не указана Функция, то интервал между поступлением транзактов определяется случайным числом, равномерно распределенным в диапазоне от (А - В) до (А + В). Если поле В является функцией (FN$), то этот интервал определяется произведением поля А на значение функции, заданной в поле В.
TRANSFER (ПЕРЕДАТЬ)
TRANSFER - изменяет движение транзакта в модели.
Формат: TRANSFER А,В,С,D
А - режим передачи
(пробел,.,ALL,BOTH,FN,P,PICK,
В - следующий блок;
С - следующий блок;
D - значение индекса, используемое в режиме ALL.
Транзакт направляется в блок, определяемый в соответствии с режимом передачи, указанным в поле А. Режимы передачи поля А:
Пробел - транзакт передается в блок, определяемый полем;
"." - статистический
режим; в поле А указано десятичное число,
выражающее
ALL - транзакт
последовательно пытается перейти в блоки,
определяемые
BOTH - транзакт последовательно пытается войти в блок В, затем в блок С, до тех пор, пока один из них станет доступным;
FN - функциональный режим: поле В является номером функции; следующий блок определяется суммой значения этой функции поля С;
Р - параметрический режим: поле В является номером параметра; следующий блок определяется суммой значения этого параметра и поля С;
PICK - выборочный режим: блок выбирается с равной вероятностью из блоков с номерами: В, B+l,..., С.
SBR - режим перехода
к подпрограмме: номер текущего блока
помещается в
параметр, указанный в поле С, а
транзакт передается в блок, номер которого
SIM - одновременный режим: проверяется одновременное
выполнение условий
беспрепятственного движения
транзактов в задерживающих блоках.
Если
условие выполняется, транзакт
передается в следующий блок, в противном
SPLIT (РАСЩЕПИТЬ)
SPLIT - создает копии текущего транзакта.
Формат: SPLIT A,B,C,D
А - число создаваемых копий;
В - следующий блок для копий;
С - параметр для хранения порядкового номера копии;
D - число параметров у каждой копии.
Поле А определяет число копий, которые образуются при входе текущего транзакта. Эти вновь созданные транзакты по умолчанию идентичны исходному транзакту. Копии входят в блок, указанный в поле В. Исходный транзакт поступает на следующий блок. Параметр поля С используется для задания порядковых номеров копий. Нумерация осуществляется следующим образом. Порядковый номер исходного транзакта увеличивается первым. Если он был равен нулю, при входе транзакта в блок он станет равным единице. Порядковый номер первой копии станет на единицу больше, чем у исходного транзакта номера последующих копий также увеличиваются на единицу. Если поле D не задано, копии имеют такое же, как у исходного транзакта число и тип параметров.
QUEUE (СТАТЬ В ОЧЕРЕДЬ)
QUEUE - помещает транзакт в конец очереди.
Формат: QUEUE А,В
А - номер очереди (числовое или символьное имя очереди);
В - число добавляемых к очереди элементов (по умолчанию 1).
Увеличивает текущее содержимое очереди, указанной в поле А, на значение в поле В. Если поле В не определено, увеличивает содержимое очереди на единицу. Транзакт может находиться в двух различных очередях одновременно.
Очередь имеет следующие стандартные числовые атрибуты:
Q$j - текущая длина очереди j;
Q$Xj - максимальная длина очереди j;
QA$j - средняя длина очереди j;
QC$j - число входов в очередь j;
QZ$j - число входов в очередь с нулевым временем пребывания (транзакт прошел
через блок QUEUE, не задерживаясь в очереди);
QT$j - среднее время пребывания в очереди j, включая нулевые входы;
QX$j - среднее время пребывания в очереди j, без нулевых входов.
SEIZE (ЗАНЯТЬ)
SEIZE - занимает устройство.
Формат: SEIZE А
А - номер устройства.
Транзакт пытается занять устройство, определенное полем А. Если прервано, транзакт задерживается в предыдущем блоке.
DEPART (ПОКИНУТЬ ОЧЕРЕДЬ)
DEPART - удаляет транзакт из очереди.
Формат: DEPART А,В
А - номер (имя) очереди;
В - число удаляемых из очереди элементов.
Удаляет текущий транзакт из очереди, указанной в поле А, и уменьшает содержимое очереди на значение поля В. транзакт может находиться одновременно в двух различных очередях.
ADVANCE (ЗАДЕРЖАТЬ)
ADVANCE - задерживает транзакт.
Формат: ADVANCE A,B
А - среднее время задержки (константа, если В не задано);
В - разброс относительно среднего значения, должен быть меньше или равен А.
Блок ADVANCE моделирует временную задержку транзакта в течение определенного интервала. Значение задержки по умолчанию равно нулю. Если поле В не является FN$, т время задержки является случайным числом, распределенным равномерно на интервале от (; + В) до (А - В). Если поле В является функцией FN$, то время задержки определяете произведением поля А на значение функции в поле В. Функция может быть использована для задания времени задержки с определенным средним значением и отклонением, зависящим от А.
RELEASE (ОСВОБОДИТЬ)
RELEASE - освобождает устройство.
Формат: RELEASE А
А - номер устройства (числовое или символьное имя освобождаемого устройства).
Устройство, указанное в поле А, освобождается и становится доступным для других транзактов. Освобождать устройство должен тот же транзакт, который его занимал.
TERMINATE (ЗАВЕРШИТЬ)
TERMINATE - удаляет транзакт.
Формат: TERMINATE A
А - величина, вычитаемая из содержимого счетчика завершений (поле А карты START).
Транзакт удаляется из модели и поступает в пассивный буфер. Если в поле А пробел, воздействия на счетчик завершений не происходит, в противном случае его значение уменьшается на величину, указанную в поле А.
START (НАЧАТЬ)
START - управление процессом моделирования.
Формат: START А,В,С,D
А - счетчик числа завершений;
В - подавление вывода на печать (В = NP);
С - промежуточный вывод статистики; 0 - распечатка списков.
Поле А определяет счетчик завершений при прогоне модели. При входе транзакта в блок TERMINATE с ненулевым значением поля А, содержимое поля А блока TERMINATE вычитается из остаточного значения счетчика - поля А карты START.
Прогон завершается, когда значение счетчика достигнет нуля. Указатель NP в поле В отменяет вывод стандартного отчета GPSS. Величина , указанная в поле С, определяет число завершений, по достижении которого выдается промежуточный отчет. Таким образом, можно получать статистические данные в определенных интервалах моделирования. Если поле D содержит 1, полученный отчет будет содержать списки текущих и будущих событий, а также списки пользователя.
Список использованной литературы
- Кудрявцев Е.М. Основы моделирования различных систем.
- Алтаев А.А. Имитационное моделирование на языке GPPS.
- Сайт в Интернете: www.gpss.ru
- Сайт в Интернете: www.gpss-forum.narod.ru

- Моделирование работы сервера
- Моделирование работы склада ООО «Деловые линии»
- Моделирование работы станка с поломками
- Моделирование работы станции технического обслуживания автомобилей
- Моделирование работы узла коммутации
- Моделирование работы ЭВМ
- Моделирование работы ЭВМ
- Моделирование работы кафе
- Моделирование работы конечного распознавателя для последовательностей путей поиска файлов, разделенных запятой, и заканчивающихся точко
- Моделирование работы машинного зала пользователей ЭВМ
- Моделирование работы отделения банка
- Моделирование работы порта
- Моделирование работы предприятия быстрого обслуживания
- Моделирование работы предприятия быстрого обслуживания