0
|
24
|
30
|
48
|
60
|
66
|
69
|
72
|
73
|
76
|
76
|
88
|
24
|
0
|
6
|
24
|
36
|
42
|
45
|
48
|
49
|
52
|
52
|
64
|
30
|
6
|
0
|
18
|
30
|
36
|
39
|
42
|
43
|
46
|
46
|
58
|
48
|
24
|
18
|
0
|
12
|
18
|
21
|
24
|
25
|
28
|
28
|
40
|
60
|
36
|
30
|
12
|
0
|
6
|
9
|
12
|
13
|
16
|
16
|
28
|
66
|
42
|
36
|
6
|
0
|
3
|
6
|
7
|
10
|
10
|
22
|
69
|
45
|
39
|
21
|
9
|
3
|
0
|
9
|
10
|
13
|
10
|
22
|
72
|
48
|
42
|
24
|
12
|
6
|
9
|
0
|
13
|
16
|
10
|
22
|
73
|
49
|
43
|
25
|
13
|
7
|
10
|
13
|
0
|
17
|
10
|
22
|
76
|
52
|
46
|
28
|
16
|
10
|
13
|
16
|
17
|
0
|
10
|
22
|
76
|
52
|
46
|
28
|
16
|
10
|
10
|
10
|
10
|
10
|
0
|
12
|
88
|
64
|
40
|
28
|
22
|
22
|
22
|
22
|
22
|
12
|
0
|
Значения данной матрицы будут использоваться для
определения времени задержки крана во время операции перемещения к вызвавшему
его рабочему месту.
Заготовка может пройти операцию по нарезанию
зубьев на одном из 4-х РТК (5-8). Для проверки, есть ли свободные РТК для
нарезания зубьев, используем переменную STZAN и блок TEST,
в переменной будем хранить число занятых приборов (РТК(5-8)), а в блоке будем
проводить проверку, есть ли свободные приборы. В случае если есть хотя бы один
свободный прибор (РТК(5-8)), заготовка может пройти операцию по нарезанию
зубьев. Для определения какой станок свободен и к какому станку кран должен
перенести заготовку используем блоки GATE
с логическим указателем NULL(проверка
незанятости прибора), перед транспортировкой к каждому из РТК(5-7). Перед
транспортировкой к РТК8 GATE
использовать не нужно, т.к. если ни один из станков РТК(5-7) не свободен, то
РТК8 точно свободен. Логика работы блоков GATE
такова, что при попытке входа транзакта в блок GATE
проверяется занят или нет прибор указанный в первом операнде. Если прибор не
занят, то транзакт переходит в следующий блок, а если занят, то транзакт
переходит в блок указанный во втором операнде, которым в нашем случае является GATE
перед другим РТК. Т.е. проверяется занят или нет другой РТК. Для того, чтобы
транзакт после обработки на одном из РТК и переноса краном пошёл на обработку
на РТК9, используется блок TRANSFER
в режиме безусловного перехода. Без него транзакт попытается пройти ту же
операцию на другом РТК.
*1. Перед программной реализацией должна быть
блок-схема, состоящая из графических аналогов блоков GPSS.
. Также к каждому блоку необходимы комментарии в
терминах технологии! В программе .gps,
тоже должны быть комментарии!
Код программы:
КОМЕНТЫ!
SIMULATE&PLACE&PLACE=1&STZAN&STZAN=0&SKOROST&SKOROST=10
MATRIX MB,12,12MB1(1,1),0/MB1(1,2),24/MB1(1,3),30/MB1(1,4),48/MB1(1,5),60/MB1(1,6),66MB1(1,7),69/MB1(1,8),72/MB1(1,9),73/MB1(1,10),76/MB1(1,11),76/MB1(1,12),88MB1(2,1),24/MB1(2,2),0/MB1(2,3),6/MB1(2,4),24/MB1(2,5),36/MB1(2,6),42MB1(2,7),45/MB1(2,8),48/MB1(2,9),49/MB1(2,10),52/MB1(2,11),52/MB1(2,12),64MB1(3,1),30/MB1(3,2),6/MB1(3,3),0/MB1(3,4),18/MB1(3,5),30/MB1(3,6),36MB1(3,7),39/MB1(3,8),42/MB1(3,9),43/MB1(3,10),46/MB1(3,11),46/MB1(3,12),58MB1(4,1),48/MB1(4,2),24/MB1(4,3),18/MB1(4,4),0/MB1(4,5),12/MB1(4,6),18MB1(4,7),21/MB1(4,8),24/MB1(4,9),25/MB1(4,10),28/MB1(4,11),28/MB1(4,12),40MB1(5,1),60/MB1(5,2),36/MB1(5,3),30/MB1(5,4),12/MB1(5,5),0/MB1(5,6),6MB1(5,7),9/MB1(5,8),12/MB1(5,9),13/MB1(5,10),16/MB1(5,11),16/MB1(5,12),28MB1(6,1),66/MB1(6,2),42/MB1(6,3),36/MB1(6,4),18/MB1(6,5),6/MB1(6,6),0MB1(6,7),3/MB1(6,8),6/MB1(6,9),7/MB1(6,10),10/MB1(6,11),10/MB1(6,12),22MB1(7,1),69/MB1(7,2),45/MB1(7,3),39/MB1(7,4),21/MB1(7,5),9/MB1(7,6),3MB1(7,7),0/MB1(7,8),9/MB1(7,9),10/MB1(7,10),13/MB1(7,11),10/MB1(7,12),22MB1(8,1),72/MB1(8,2),48/MB1(8,3),42/MB1(8,4),24/MB1(8,5),12/MB1(8,6),6MB1(8,7),9/MB1(8,8),0/MB1(8,9),13/MB1(8,10),16/MB1(8,11),10/MB1(8,12),22MB1(9,1),73/MB1(9,2),49/MB1(9,3),43/MB1(9,4),25/MB1(9,5),13/MB1(9,6),7MB1(9,7),10/MB1(9,8),13/MB1(9,9),0/MB1(9,10),17/MB1(9,11),10/MB1(9,12),22MB1(10,1),76/MB1(10,2),52/MB1(10,3),46/MB1(10,4),28/MB1(10,5),16/MB1(10,6),10MB1(10,7),13/MB1(10,8),16/MB1(10,9),17/MB1(10,10),0/MB1(10,11),10/MB1(10,12),22MB1(11,1),76/MB1(11,2),52/MB1(11,3),46/MB1(11,4),28/MB1(11,5),16/MB1(11,6),10MB1(11,7),10/MB1(11,8),10/MB1(11,9),10/MB1(11,10),10/MB1(11,11),0/MB1(11,12),12MB1(12,1),88/MB1(12,2),64/MB1(12,3),58/MB1(12,4),40/MB1(12,5),28/MB1(12,6),22MB1(12,7),22/MB1(12,8),22/MB1(12,9),22/MB1(12,10),22/MB1(12,11),12/MB1(12,12),0S(PECH),53,1KRAN
MB(1,&PLACE,1)/&SKOROST MB(1,1,2)/&SKOROST&PLACE=2KRANRTK11.06,0.05RTK1KRANMB(1,&PLACE,2)/&SKOROST
MB(1,2,3)/&SKOROST&PLACE=3KRANRTK23.05,0.20RTK2KRANMB(1,&PLACE,3)/&SKOROST
MB(1,3,4)/&SKOROST&PLACE=4KRANPECH50,5PECHKRANMB(1,&PLACE,4)/&SKOROST
MB(1,4,5)/&SKOROST&PLACE=5KRANRTK33.03,0.20RTK3KRANMB(1,&PLACE,5)/&SKOROST
MB(1,5,6)/&SKOROST&PLACE=6KRANRTK41.06,0.10RTK4L &STZAN,4 *NU
RTK5,RTK6&STZAN=&STZAN+1 KRANMB(1,&PLACE,6)/&SKOROST
MB(1,6,7)/&SKOROST&PLACE=7KRANRTK513.25,0.25&STZAN=&STZAN-1RTK5KRANMB(1,&PLACE,7)/&SKOROST
MB(1,7,11)/&SKOROST&PLACE=11KRAN,RTK9GATE NU
RTK6,RTK7&STZAN=&STZAN+1KRANMB(1,&PLACE,6)/&SKOROST
MB(1,6,8)/&SKOROST&PLACE=8KRANRTK614.15,0.50&STZAN=&STZAN-1RTK6KRANMB(1,&PLACE,8)/&SKOROST
MB(1,8,11)/&SKOROST&PLACE=11KRAN,RTK9GATE NU RTK7,RTK8&STZAN=&STZAN+1KRANMB(1,&PLACE,6)/&SKOROST
MB(1,6,9)/&SKOROST&PLACE=9KRANRTK710.05,0.15&STZAN=&STZAN-1RTK7KRANMB(1,&PLACE,9)/&SKOROST
MB(1,9,11)/&SKOROST&PLACE=11KRAN,RTK9BLET &STZAN=&STZAN+1
KRANMB(1,&PLACE,6)/&SKOROST MB(1,6,10)/&SKOROST&PLACE=10KRANRTK811.12,0.30&STZAN=&STZAN-1RTK8KRANMB(1,&PLACE,10)/&SKOROST
MB(1,10,11)/&SKOROST&PLACE=11KRAN,RTK9SEIZ
RTK90.98,0.05RTK9KRANMB(1,&PLACE,11)/&SKOROST
MB(1,11,12)/&SKOROST&PLACE=12KRAN14401 1
END
. Проверка адекватности модели
Верификация с использованием
логической блок-схемы и интерактивного контроля за ходом моделирования
Интерактивный контроль в режиме
отладки
Шаг 1.1
В системе: поступление заготовки на склад, вызов
крана
В модели: генерация транзакта, занятие
устройства kran
Шаг 1.2
В системе: перемещение крана к рабочему месту
В модели: нулевая задержка, т.к. кран находиться
в нужном месте
Шаг 1.3
В системе: Взятие заготовки краном, перенос
заготовки краном
В модели: задержка транзакта на время
перемещения от склада до РТК1
Шаг 1.4
В системе: освобождение крана
В модели: освобождение устройства kran
и запись его новых координат в PLACE=2
Шаг 1.5
В системе: поступление заготовки на станок
В модели: занятие устройства RTK1
Шаг 1.6
В системе: Обработка заготовки на РТК1
В модели: Задержка транзакта на время обработки
Шаг 1.7
В системе: Освобождение РТК1 и занятие крана
В модели: освобождение устройства RTK1
и занятие устройства kran
Далее происходят аналогичные предыдущим
действия!
Шаг 2.1
В системе: проверка, есть ли свободные станки
для нарезки зубьев
В модели: блок TEST,
пока переменная STZAN
не станет меньше 4, транзакт будет задержан в блоке TEST
Шаг 2.2
В системе: В системе есть свободные станки по
нарезанию зубьев. Проверка, свободен ли РТК5?
Шаг 2.2-2.5
В системе: Занятие крана, перенос детали с РТК4
на РТК5, освобождение крана, занятие РТК5, обработка на РТК5, освобождение
РТК5, занятие крана, перенос детали с РТК5 на РТК9, освобождение крана
В модели: Занятие прибора KRAN,
задержка транзакта на время переноса, освобождение прибора KRAN,
занятие прибора RTK5,
задержка транзакта на время обработки, освобождение прибора RTK5,
занятие прибора KRAN,
задержка транзакта на время переноса, освобождение прибора KRAN.
Шаг 2.6
В системе: занятие РТК9
В модели: безусловный переход в блок с именем RTK9,
занятие прибора RTK9
Далее происходят действия аналогичные
предыдущим!
Шаг последний
В системе: готовая деталь на складе
В модели: уничтожение тазнзакта в блоке terminate
Валидация
Валидация - проверка, является ли модель
допустимым представлением реальной системы.
Чтобы проверить валидность модели, нужно
сравнить данные полученные на модели с результатами аналитических расчётов.
Для сравнения возьмём среднее время изготовления
одной детали. Изготовление детали заключается в последовательном выполнении
операции по обработки и переносу. Поэтому время изготовления детали, t1
будет равно:
где ti
- время выполнения i-ой
операции, n - число операций
Перечислим все операции обработки и переноса.
Таблица 3
Номер
операции
|
Название
|
Время,
мин
|
1
|
Перенос:
склад - РТК1
|
2,4
|
2
|
Фрезерно-центровальная
|
1,06(+,-)0,20
|
3
|
Перенос:
РТ1 - РТК2
|
0,6
|
4
|
Токарная
|
3,05(+,-)0,20
|
5
|
Перенос:
РТК2 - печь
|
1,8
|
6
|
Термообработка
|
50,00(+,-)5,00
|
7
|
Перенос:
печь - РТК3
|
1,2
|
8
|
Токарная
|
3,03(+,-)0,20
|
9
|
Перенос:
РТК3 - РТК4
|
0,6
|
10
|
Фрезерная
|
1,06(+,-)0,10
|
11
|
Перенос:
РТК4 - РТК5
|
0,3
|
12
|
Зубофрезерная
|
13,25(+,-)0,25
|
13
|
Перенос:
РТК5 - РТК9
|
1
|
Шлифование
|
0,98(+,-)0,05
|
15
|
Перенос:
РТК9 - склад
|
1,2
|
Нарезание зубьев будет производиться на РТК5,
т.к. если все станки для нарезания зубьев свободны, то занимается именно РТК5.
Для расчётов, возьмём среднее время каждой
операции. Подставив значения в формулу получим:
81,53мин
Для определения времени изготовления одной
детали изменим модель так, чтобы в начальный момент времени, на складе была
одна заготовка и больше заготовок не поступало. А после изготовления одной
детали модель должна остановится. Это делается для того чтобы кран не был занят
другими заготовками, т.к. в таком случае рассчитать аналитическое значение
времени будет крайне тяжело.
Т.к. наша система стохастична, чтобы получить
среднее значение времени изготовления одной детали нам нужно провести большое
количество экспериментов. Но мы можем изменить нашу модель, установив
детерминированные значения задержек равные средним значениям стохастических
задержек. В итоге проведя только один прогон, мы получим достаточно достоверное
значение среднего времени. Время затраченное на изготовление детали будет
равное времени моделирования, взятому из стандартного файла отчёта.
Как видно модельные результаты совпадают с
аналитическими. Такие результаты увеличивают вероятность того, что система
валидна.
*Это очень примитивный расчет и вряд ли по нему
можно судить о валидности модели. См. 8 лабу "Верификация и
валидация". Ваша модель состоит из множества практически стандартных СМО
для которых есть аналитическое описание. Единственное, что нужно - поменять
закон на экспоненциальный. Для этого надо провести дисперсионный анализ и
оценить чувствительность к изменению закона распределения с равномерного на
экспоненциальный. Если чувствительности нет, то меняем на экспоненциальный и
проверяем результаты моделирования с результатами, полученными по формулам.
5. Планирование и
проведение экспериментов
Планирование эксперимента
Так как дисперсия измеряемой случайной величины
нам не дана, проведём 100 предварительных прогонов.
Для расчёта дисперсии воспользуемся программой excel.
Для этого внесём в программу результаты прогонов, и используя встроенную
функцию нахождения дисперсии, рассчитаем дисперсию, в результате чего получаем
значение дисперсии δ = 1.7 (по
производительности заготовок). Аналогично вычисляем дисперсию загруженности
оборудования. Файл excel
прилагается.
Количество прогонов модели, которое необходимо
осуществить для оценки среднего значения случайной величины:
где δ
- дисперсия, t
- квантиль нормального распределения, ε
- точность.
В нашем случае δ = 1.7,
ε = 1. Квантиль нормального распределения t
определяется из таблицы распределения Стьюдента. Для его определения необходимо
найти число степеней свободы υ = k
- 1 - m, где k
- число значений, m - число
определяемых параметров.
В нашем случае k
= 100, m = 1. Тогда υ
= 98.
Уровень значимости равен 0,1. Тогда согласно таблице распределения Стьюдента
квантиль нормального распределения t
= 1,66.
В результате расчетов получаем N
= 6 прогонов
Для определения загруженности оборудования РТК1,
РТК2, РТК3, РТК4, РТК8, РТК9 по результатам расчетов необходимо провести N
= 1 прогонов. Для РТК5 N
= 5 прогонов. Для РТК6 N
= 17 прогонов. Для РТК7 N
= 2 прогонов. Для определения загруженности оборудования KRAN
и PECH по результатам
расчетов необходимо провести N
= 1 и N = 2 прогонов. Т.к.
N максимальное 17,
проводим 17 прогонов за которые мы получим достоверные результаты для всех
других измеряемых величин.
Проведение эксперимента
Выполняем 17 прогонов модели, при этом каждый
раз меняем последовательность псевдослучайных чисел (дописываем в код программы
перед блоком GENE блок RMULT и при каждом прогоне присваиваем ему разные
значения (1,2,3,4…,17)).
В файлах отчета находим количество изготовленных
деталей, суммируем их и делим на 17. По результатам прогонов получаем, что за
сутки будет изготовлено в среднем 44 детали.
По результатам, полученным в файлах отчета,
средняя загруженность оборудования:
РТК1=4%; РТК2=11,4%; РТК3=10,2%; РТК4=3,5%;
РТК5=27,4%; РТК6=15,2%; РТК7=1%; РТК8=0%; РТК9=3%; Печь=34,5%; Кран=99,8%.
6. Зависимость
производительности участка от скорости крана-штабеллера
Как видно из графика, на производительность
влияние скорость крана-штабеллера оказывает до определенного момента. На
интервале скорости от 1 до 30м/мин мы установили линейную зависимость
производительности.
где y
- производительность в м/мин, x
- скорость в м/мин.
При увеличении скорости более 30 м/мин не
оказывает существенного влияния на производительность. Это связано с тем, что
при дальнейшем увеличении скорости, уменьшение времени перемещения меняется
незначительно.
Вывод
На основании проведенных экспериментов можно
сделать вывод, что если увеличить скорость крана-штабеллера до 30 м/мин, то за
сутки можно обработать наибольшее количество заготовок. Так же выяснили, что в
данной системе низкая загруженность оборудования (за исключением крана).
Список используемой литературы
1. Зиновьев В. В., Стародубов А. Н.
Моделирование систем при помощи компьютерной анимации и имитации: учебное пособие
/ КузГТУ. Кафедра информационных и автоматизированных производственных систем -
Кемерово, 2010.
. Зиновьев В. В. Моделирование
систем: методические указания по выполнению курсовой работы для студентов
специальностей 071900 "Информационные системы и технологии", 210200
"Автоматизация технологических процессов (в машиностроении)" /
КузГТУ. Кафедра информационных и автоматизированных производственных систем -
Кемерово, 2008.