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

Автор работы: Пользователь скрыл имя, 10 Декабря 2013 в 09:09, курсовая работа

Краткое описание

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

Содержание

Введение 3
1 Постановка задачи 4
1.1 Переработка модели 5
2 Анализ задачи моделирования и выдвижение гипотез 6
2.1 Анализ задачи моделирования 6
2.2 Выдвижение гипотез 8
3 Описание реализации модели 9
3.1 Разработка концептуальных моделей 9
3.2 Выбор программного средства моделирования 10
3.3 Выбор программы для реализации имитационной модели 11
4 Описание имитационной модели 14
4.1 Описание использованных в модели объектов 16
4.2 Организация экспериментов в GPSS 19
5 Анализ и оценка результатов моделирования 20
Заключение 22
Список использованной литературы 23

Прикрепленные файлы: 1 файл

курасак.docx

— 305.49 Кб (Скачать документ)

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

Такая разница в использовании  роботов объясняется тем, что  время, требуемое на транспортировку  детали роботом, меньше времени, требуемого станку, и интервала прихода деталей. Один робот успевает перевозить почти все детали. Работа второго робота для данных наборов параметров вызывается лишь в двух случаях, когда первый робот находится возле станка, а второй всё ещё возле приёмного пункта, и когда первый робот находится возле склада обработанных деталей, а первый возле станка. С уменьшением интервала прихода заявок или с увеличением времени движения робота данная ситуация меняется и коэффициенты использования выравниваются.

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

 

Заключение

 

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

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

 

Список использованной литературы

  1. Бусленко Н.П. Моделирование сложных  систем / Н.П. Бусленко – М.: Наука 2009. – 540 с.
  2. Варфоломеев В.И. Алгоритмическое моделирование элементов экономических систем / В.И. Варфоломеев – М.: Финансы и статистика, 2005 – 208 с.
  3. Емельянов А.А. Имитационное моделирование экономических процессов / А.А. Емельянов, Е.А. Власова, Р.В. Дума – М.: Финансы и статистика 2007. – 368с.
  4. Кудрявцев Е.М. GPSS World. Основы имитационного моделирования различных систем. / Кудрявцев Е.М. – М.: ДМК Пресс, 2006. – 320 с.
  5. Марков А.А. Моделирование информационно – вычислительных процессов / А.А. Марков – М.: МГТУ 2006. – 360с.
  6. Савина О. А. Имитационное моделирование экономических систем и процессов / Савина О.А, Терентьев С.В. – Орел: ОрелГТУ, 2008 – 172 с.
  7. Савина О. А. Методические указания к выполнению курсовых работ по дисциплине:  Моделирование экономических процессов / Савина О. А, Терентьев С. В. – Орел: ОрелГТУ, 2007. – 59 с.
  8. Советов Б.Я. Моделирование систем/ Советов Б.Я., Яковлев С.А.  Учебник для вузов – М.: Высшая школа, 2005. -344 с.
  9. Томашевский В. Имитационное моделирование в среде GPSS / Томашевский В., Жданова Е. – М.: Бестселлер, 2009. – 416 с.
  10. Шрайбер Т. Дж. Моделирование на GPSS: Пер. с англ./Пер. В. И. Гаргера, И. Л. Шмуйловича; Ред. М. А. Файнберг / Т. Дж. Шрайбер – М.: Машиностроение, 2010. - 592 с.

 

 

Приложение А. Листинг исходной модели

; исходные данные

INITIAL X$t_0,40

INITIAL X$t_1,6

INITIAL X$t_2,7

INITIAL X$t_3,5

INITIAL X$t_4,8

INITIAL X$t_5,1

INITIAL X$t_6,60

INITIAL X$t_7,10

INITIAL X$t_8,100

INITIAL X$pos1,0 ; приёмный пункт

INITIAL X$pos2,1 ; станок 1

INITIAL X$pos3,2 ; станок 2

INITIAL X$progon,0 ; нужно для учёта времени  холостого прогона робота к  нужному станку

GENERATE (EXPONENTIAL(1,X$t_0#2,(X$t_0)))

QUEUE priem

; ищем робота находящегося возле  приёмного пункта

proverka_pos1 TEST NE X$pos1,0,seize_robot1

proverka_pos2 TEST NE X$pos2,0,seize_robot2

proverka_pos3 TEST NE X$pos3,0,seize_robot3

; ищем робота находящегося возле  1-го станка

proverka_pos1_1 TEST NE X$pos1,1,izm_progon1

proverka_pos2_1 TEST NE X$pos2,1,izm_progon2

proverka_pos3_1 TEST NE X$pos3,1,izm_progon3

; ищем робота находящегося возле  2-го станка

proverka_pos1_2 TEST NE X$pos1,2,izm_progon11

proverka_pos2_2 TEST NE X$pos2,2,izm_progon22

proverka_pos3_2 TEST NE X$pos3,2,izm_progon33

; ищем робота находящегося возле  3-го станка

proverka_pos1_3 TEST NE X$pos1,3,izm_progon111

proverka_pos2_3 TEST NE X$pos2,3,izm_progon222

proverka_pos3_3 TEST NE X$pos3,3,izm_progon333

TRANSFER ,proverka_pos1

; определение времени движения  ближайшего робота до станка

izm_progon1 SAVEVALUE progon,X$t_1

TRANSFER ,seize_robot1

izm_progon2 SAVEVALUE progon,X$t_1

TRANSFER ,seize_robot2

izm_progon3 SAVEVALUE progon,X$t_1

TRANSFER ,seize_robot3

izm_progon11 SAVEVALUE progon,(X$t_1 + X$t_2)

TRANSFER ,seize_robot1

izm_progon22 SAVEVALUE progon,(X$t_1 + X$t_2)

TRANSFER ,seize_robot2

izm_progon33 SAVEVALUE progon,(X$t_1 + X$t_2)

TRANSFER ,seize_robot3

izm_progon111 SAVEVALUE progon,(X$t_1 + X$t_2 + X$t_3)

TRANSFER ,seize_robot1

izm_progon222 SAVEVALUE progon,(X$t_1 + X$t_2 + X$t_3)

TRANSFER ,seize_robot2

izm_progon333 SAVEVALUE progon,(X$t_1 + X$t_2 + X$t_3)

TRANSFER ,seize_robot3

; моделирование работы робота

seize_robot1 SEIZE robot1

SAVEVALUE pos1,1

DEPART priem

ADVANCE (X$t_1+X$t_4+X$t_5 + X$progon)

RELEASE robot1

TRANSFER ,metka_stanok1

seize_robot2 SEIZE robot2

SAVEVALUE pos2,1

DEPART priem

ADVANCE (X$t_1+X$t_4+X$t_5 + X$progon)

RELEASE robot2

TRANSFER ,metka_stanok1

seize_robot3 SEIZE robot3

SAVEVALUE pos3,1

DEPART priem

ADVANCE (X$t_1+X$t_4+X$t_5 + X$progon)

RELEASE robot3

TRANSFER ,metka_stanok1

;моделирование работы станка

metka_stanok1 QUEUE pered_stankom1

SEIZE stanok1

DEPART pered_stankom1

ADVANCE (normal (1, X$t_6, X$t_7))

RELEASE stanok1

********************************************************************************

QUEUE posle_stanka1

a_proverka_pos1 TEST NE X$pos1,1,a_seize_robot1

a_proverka_pos2 TEST NE X$pos2,1,a_seize_robot2

a_proverka_pos3 TEST NE X$pos3,1,a_seize_robot3

a_proverka_pos1_1 TEST NE X$pos1,0,a_izm_progon1

a_proverka_pos2_1 TEST NE X$pos2,0,a_izm_progon2

a_proverka_pos3_1 TEST NE X$pos3,0,a_izm_progon3

a_proverka_pos1_2 TEST NE X$pos1,2,a_izm_progon11

a_proverka_pos2_2 TEST NE X$pos2,2,a_izm_progon22

a_proverka_pos3_2 TEST NE X$pos3,2,a_izm_progon33

a_proverka_pos1_3 TEST NE X$pos1,3,a_izm_progon111

a_proverka_pos2_3 TEST NE X$pos2,3,a_izm_progon222

a_proverka_pos3_3 TEST NE X$pos3,3,a_izm_progon333

TRANSFER ,a_proverka_pos1

a_izm_progon1 SAVEVALUE progon,X$t_1

TRANSFER ,a_seize_robot1

a_izm_progon2 SAVEVALUE progon,X$t_1

TRANSFER ,a_seize_robot2

a_izm_progon3 SAVEVALUE progon,X$t_1

TRANSFER ,a_seize_robot3

a_izm_progon11 SAVEVALUE progon,X$t_2

TRANSFER ,a_seize_robot1

a_izm_progon22 SAVEVALUE progon,X$t_2

TRANSFER ,a_seize_robot2

a_izm_progon33 SAVEVALUE progon,X$t_2

TRANSFER ,a_seize_robot3

a_izm_progon111 SAVEVALUE progon,(X$t_2 + X$t_3)

TRANSFER ,a_seize_robot1

a_izm_progon222 SAVEVALUE progon,(X$t_2 + X$t_3)

TRANSFER ,a_seize_robot2

a_izm_progon333 SAVEVALUE progon,(X$t_2 + X$t_3)

TRANSFER ,a_seize_robot3

a_seize_robot1 SEIZE robot1

SAVEVALUE pos1,2

DEPART posle_stanka1

ADVANCE (X$t_2+X$t_4+X$t_5 + X$progon)

RELEASE robot1

TRANSFER ,a_metka_stanok2

a_seize_robot2 SEIZE robot2

SAVEVALUE pos2,2

DEPART posle_stanka1

ADVANCE (X$t_2+X$t_4+X$t_5 + X$progon)

RELEASE robot2

TRANSFER ,a_metka_stanok2

a_seize_robot3 SEIZE robot3

SAVEVALUE pos3,2

DEPART posle_stanka1

ADVANCE (X$t_2+X$t_4+X$t_5 + X$progon)

RELEASE robot3

TRANSFER ,a_metka_stanok2

a_metka_stanok2 QUEUE pered_stankom2

SEIZE stanok2

DEPART pered_stankom2

ADVANCE (EXPONENTIAL(1,0,(1/X$t_8)))

RELEASE stanok2

********************************************************************

QUEUE posle_stanka2

b_proverka_pos1 TEST NE X$pos1,2,b_seize_robot1

b_proverka_pos2 TEST NE X$pos2,2,b_seize_robot2

b_proverka_pos3 TEST NE X$pos3,2,b_seize_robot3

b_proverka_pos1_1 TEST NE X$pos1,1,b_izm_progon1

b_proverka_pos2_1 TEST NE X$pos2,1,b_izm_progon2

b_proverka_pos3_1 TEST NE X$pos3,1,b_izm_progon3

b_proverka_pos1_2 TEST NE X$pos1,3,b_izm_progon11

b_proverka_pos2_2 TEST NE X$pos2,3,b_izm_progon22

b_proverka_pos3_2 TEST NE X$pos3,3,b_izm_progon33

b_proverka_pos1_3 TEST NE X$pos1,0,b_izm_progon111

b_proverka_pos2_3 TEST NE X$pos2,0,b_izm_progon222

b_proverka_pos3_3 TEST NE X$pos3,0,b_izm_progon333

TRANSFER ,b_proverka_pos1

b_izm_progon1 SAVEVALUE progon,X$t_2

TRANSFER ,b_seize_robot1

b_izm_progon2 SAVEVALUE progon,X$t_2

TRANSFER ,b_seize_robot2

b_izm_progon3 SAVEVALUE progon,X$t_2

TRANSFER ,b_seize_robot3

b_izm_progon11 SAVEVALUE progon,X$t_3

TRANSFER ,b_seize_robot1

b_izm_progon22 SAVEVALUE progon,X$t_3

TRANSFER ,b_seize_robot2

b_izm_progon33 SAVEVALUE progon,X$t_3

TRANSFER ,b_seize_robot3

b_izm_progon111 SAVEVALUE progon,(X$t_1 + X$t_2)

TRANSFER ,b_seize_robot1

b_izm_progon222 SAVEVALUE progon,(X$t_1 + X$t_2)

TRANSFER ,b_seize_robot2

b_izm_progon333 SAVEVALUE progon,(X$t_1 + X$t_2)

TRANSFER ,b_seize_robot3

b_seize_robot1 SEIZE robot1

SAVEVALUE pos1,3

DEPART posle_stanka2

ADVANCE (X$t_3+X$t_4+X$t_5 + X$progon)

RELEASE robot1

TRANSFER ,konec

b_seize_robot2 SEIZE robot2

SAVEVALUE pos2,3

DEPART posle_stanka2

ADVANCE (X$t_3+X$t_4+X$t_5 + X$progon)

RELEASE robot2

TRANSFER ,konec

b_seize_robot3 SEIZE robot3

SAVEVALUE pos3,3

DEPART posle_stanka2

ADVANCE (X$t_3+X$t_4+X$t_5 + X$progon)

RELEASE robot3

konec TERMINATE

main GENERATE 28800

TERMINATE 1

start 10

 

Приложение Б. Листинг второй модели

* инициализация сохраняемых величин, 

* предназначенных для значений  входных параметров

***************************************

INITIAL X$t_0,40

INITIAL X$t_1,6

INITIAL X$t_2,7

INITIAL X$t_3,5

INITIAL X$t_4,8

INITIAL X$t_5,1

INITIAL X$t_6,60

INITIAL X$t_7,10

INITIAL X$t_8,100***************************************

* инициализация позиций роботов

***************************************

INITIAL X$pos1,0 ; приёмный пункт

INITIAL X$pos2,0 ; станок 1

***************************************

* инициализация всремени холостого  прогона робота

INITIAL X$progon,0

* определение таблицы, состоящей  из 80 интервалов длиной 5

* значения начинаются с 80

VREMIA_TRANZAKTA TABLE M1,80,5,60

* вход транзакта в модель

nachalo GENERATE (EXPONENTIAL(1,X$t_0#2,(X$t_0)))  

* сохранение текущего времени

MARK

* очередь

QUEUE priem   

* поиск робота, находящегося возле  приёмного пункта

***************************************

proverka_pos1 TEST NE X$pos1,0,seize_robot1 

proverka_pos2 TEST NE X$pos2,0,seize_robot2 

***************************************

* поиск робота, находящегося возле  станка

***************************************

proverka_pos1_1 TEST NE X$pos1,1,izm_progon1 

proverka_pos2_1 TEST NE X$pos2,1,izm_progon2 

***************************************

* поиск робота, находящегося возле  склада

***************************************

proverka_pos1_2 TEST NE X$pos1,2,izm_progon11 

proverka_pos2_2 TEST NE X$pos2,2,izm_progon22 

***************************************

* переход к поиску робота  возле приёмного пункта

TRANSFER ,proverka_pos1

* определение времени холостого  прогона робота к нужному станку

***************************************

izm_progon1 SAVEVALUE progon,X$t_1 

TRANSFER ,seize_robot1

izm_progon2 SAVEVALUE progon,X$t_1 

TRANSFER ,seize_robot2

izm_progon11 SAVEVALUE progon,(X$t_1 + X$t_2) 

TRANSFER ,seize_robot1

izm_progon22 SAVEVALUE progon,(X$t_1 + X$t_2) 

TRANSFER ,seize_robot2

***************************************

* перемещение детали первым  роботом

***************************************    

seize_robot1 SEIZE robot1    

SAVEVALUE pos1,1 

DEPART priem 

ADVANCE (X$t_1+X$t_4+X$t_5 + X$progon)

RELEASE robot1 

TRANSFER ,metka_stanok1

***************************************

* перемещение детали вторым  роботом

***************************************

seize_robot2 SEIZE robot2  

SAVEVALUE pos2,1 

DEPART priem 

ADVANCE (X$t_1+X$t_4+X$t_5 + X$progon)

RELEASE robot2 

TRANSFER ,metka_stanok1

* работа станка

***************************************

metka_stanok1 QUEUE pered_stankom1

SEIZE stanok1 

DEPART pered_stankom1  

ADVANCE (normal (1, X$t_6, X$t_7))

RELEASE stanok1 

***************************************

* очередь после станка

QUEUE posle_stanka1    

* ищем робота находящегося возле  станка

***************************************

a_proverka_pos1 TEST NE X$pos1,1,a_seize_robot1 

a_proverka_pos2 TEST NE X$pos2,1,a_seize_robot2 

***************************************

* ищем робота находящегося возле  приёмного пункта

***************************************

a_proverka_pos1_1 TEST NE X$pos1,0,a_izm_progon1 

a_proverka_pos2_1 TEST NE X$pos2,0,a_izm_progon2 

***************************************

* ищем робота находящегося возле  склада

***************************************

a_proverka_pos1_2 TEST NE X$pos1,2,a_izm_progon11 

a_proverka_pos2_2 TEST NE X$pos2,2,a_izm_progon22 

***************************************

* переход к поиску робота  возле первого станка

TRANSFER ,a_proverka_pos1

* определение времени холостого  хода робота

***************************************

a_izm_progon1 SAVEVALUE progon,X$t_1 

TRANSFER ,a_seize_robot1

a_izm_progon2 SAVEVALUE progon,X$t_1 

TRANSFER ,a_seize_robot2

a_izm_progon11 SAVEVALUE progon,X$t_2 

TRANSFER ,a_seize_robot1

a_izm_progon22 SAVEVALUE progon,X$t_2 

TRANSFER ,a_seize_robot2

*************************************** 

* работа первого робота

***************************************

a_seize_robot1 SEIZE robot1    

SAVEVALUE pos1,2 

DEPART posle_stanka1 

ADVANCE (X$t_2+X$t_4+X$t_5 + X$progon)

RELEASE robot1 

TRANSFER ,zanesenie_vremeni

***************************************

* работа второго робота

***************************************

a_seize_robot2 SEIZE robot2  

SAVEVALUE pos2,2 

DEPART posle_stanka1 

ADVANCE (X$t_2+X$t_4+X$t_5 + X$progon)

RELEASE robot2 

TRANSFER ,zanesenie_vremeni

***************************************

* занесение в таблицу времени  прохождения транзакта

zanesenie_vremeni TABULATE VREMIA_TRANZAKTA 

* вывод транзакта из модели

konec  TERMINATE

* моделирование 8-ми часовой  рабочей смены

*************************************** 

main  GENERATE 28800 

TERMINATE 1

*************************************** 

* 10 запусков модели

start 10

 

 

 

Приложение С. Статистика программы

  START TIME           END TIME  BLOCKS  FACILITIES  STORAGES

                0.000         288000.000    67        3          0

 

 

              NAME                       VALUE 

Информация о работе Построение имитационной модели роботизированной производственной системы