Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Мезенцев Имитационное моделирование / Очет по лабораторной работа 4 ИМ

.docx
Скачиваний:
47
Добавлен:
04.01.2020
Размер:
781.96 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра экономической информатики

Лабораторная работа №4

по дисциплине «Имитационное моделирование» на тему

«Оптимизация расписания работы производственного участка цеха»

Факультет: Бизнеса

Группа: ФБИ-21

Преподаватель: Мезенцев Ю.А.

Новосибирск 2015

Цель. Формализовать и найти решение задачи оптимального управления бизнес-процессом, имеющей следующее содержательное описание.

Условия задачи:

Перед администрацией цеха стоит задача разработки сменно-суточного графика работы производственного участка цеха, состоящего из нескольких станков и обрабатывающего три партии деталей различного типа. Маршруты обработки деталей всех типов представлены в таб.2.1а и 2.1б (распределение выполняемых операций по станкам Stanok1, Stanok2 и Stanok3 в указанной последовательности). Длительности обработки партий деталей заданы в таб.2.2 и таб. 2.3. Прерывания обработки любой партии деталей в пользу другой не допускаются. Одновременно один станок может обрабатывать только одну партию деталей и одну деталь в партии. Технологические маршруты для каждой партии фиксированы, хотя и различны в общем случае и не могут быть изменены. В качестве критерия эффективности расписания рассматривается быстродействие всей системы (участка), т.е. время завершения обработки последней по хронологии партии деталей.

Ход работы:

1 Построение дизъюнктивной сети обслуживающей системы в представлении узел-операция.

Маршруты обработки деталей всех типов представлены в таблице 1.

Таблица 1 – Технологические маршруты обработки деталей

Вариант

Detal1

Detal2

Detal3

Опер. 1

Опер. 2

Опер. 3

Опер. 4

Опер. 5

Опер. 6

Опер. 7

Опер. 8

Опер. 9

Пример

S1

S2

S3

 S1

S3

S2

S3

S2

S1

10

S2

S1

S3

S3

S1

S2

S3

S2

S1


Длительности обработки партий деталей заданы в таблице 2.

Вариант

Опер. 1

Опер. 2

Опер. 3

Опер. 4

Опер. 5

Опер. 6

Опер. 7

Опер. 8

Опер. 9

Пример

3

5

4

2

6

1

4

4

2

10

25

5

12

7

10

15

15

10

8

Таблица 2 – Длительности обработки партий деталей

Составим математическую модель для определения оптимального расписания работы участка. Занесли данные модели в таблицу Excel.

Рисунок 1 – Смешанная сетевая модель работы производственного участка

2 ЭММ оптимизации расписания работы производственного участка

+250

+50

+120

+70

+100

+150

+150

+100

+80

0 (A,U,V)

01, целые, (A,,V)

3 Структурирование данных задачи в соответствии с ЭММ

Данные задачи представлены на рисунках 2,3.

Рисунок 2 – Матрица системы ограничений и вектор коэффициентов целевой функции

Рисунок 3 – Матрица системы ограничений и вектор коэффициентов целевой функции продолжение

4 Расчеткратчайшего расписания (оптимального по быстродействию) работы участкасредствами ILog OPL studio

  1. Файл mod

/*********************************************

* OPL 6.1.1 Model

* Creation Date: 18.10.2009 at 5:27:43

*********************************************/

int n = ...;

int m = ...;

int m1 = ...;

int n1 = ...;

int m2 = m - m1;

int n2 = n - n1;

range j1 = 1..n1;

range j2 = 1..n2;

range i1 = 1..m1;

range i2 = 1..m2;

float b1[i1] = ...;

float b2[i2] = ...;

float z1[j1] = ...;

float z2[j2] = ...;

float A3[i2][j2] = ...;

float A1[i1][j1] = ...;

float A2[i2][j1] = ...;

floatMaxValue = 1000*max(r in i2) b2[r];

dvar float x[j1] in 0..MaxValue;

dvarboolean w[j2];

minimize

sum(jj in j1) z1[jj] * x[jj] +

sum(jjj in j2) z2[jjj] * w[jjj] ;

subject to {

forall( r1 in i1 )

ct1:

sum(jj in j1)

A1[r1][jj] * x[jj] <= b1[r1];

forall( r in i2 )

ct2:

sum(jj in j1 )

A2[r][jj] * x[jj] +

sum(jjj in j2)

A3[r][jjj] * w[jjj] <= b2[r];

}

  1. Файлdat

/*********************************************

* OPL 6.1.1 Data

* Creation Date: 18.10.2009 at 5:27:43

*********************************************/

n = 19;

m = 27;

m1 = 9;

n1 = 10;

SheetConnectionsheet("ind.xls");

A1 from SheetRead(sheet,"SAS!b4:k12");

A2 from SheetRead(sheet,"SAS!b13:k30");

A3 from SheetRead(sheet,"SAS!l13:t30");

b1 from SheetRead(sheet,"SAS!v4:v12");

b2 from SheetRead(sheet,"SAS!v13:v30");

z1 from SheetRead(sheet,"SAS!b31:k31");

z2 from SheetRead(sheet,"SAS!l31:t31");

x to SheetWrite(sheet,"SAS!b3:k3");

w to SheetWrite(sheet,"SAS!l3:t3");

На рисунке 4 представлены результаты работы IBMILogCPLEX

Рисунок 4 – Результаты работы IBMILogCPLEX

5Построение графикаГанта обработки деталей и загрузки оборудования по результатам работы IBMILogCPLEX

В таблице 3 представлен календарный график работы производственного участка.

Таблица 3 – Календарный график работы производственного участкаДлительность обработки

Время начала обработки

Маршруты (М)

25

5

12

-1E-09

33

38

2

1

3

7

10

15

0

7

35

3

1

2

15

10

8

10

25

42

3

2

1

В таблице 4 представлено расписание обработки партий деталей, на основании которого строится график ганта, изображенный на рисунке 5.

Таблица 4 – Расписание обработки партий деталей

Расписание обработки партий деталей

Станок

2

1

3

t обслуживания

0

25

25

33

33

38

38

50

Партия 1

1

1

0

0

1

1

1

1

Станок

3

1

2

t обслуживания

0

7

7

17

17

35

35

50

Партия 2

2

2

2

2

0

0

2

2

Станок

3

2

1

t обслуживания

10

25

25

35

35

42

42

50

Партия 3

3

3

3

3

0

0

3

3

Рисунок 5 – График обслуживания партий деталей

В таблице 5 представлено расписание загрузки приборов. На рисунке 6 изображен график загрузки оборудования

Таблица 5 – Расписание загрузки приборов

Расписание загрузки приборов 

Партия

 

2

 

 

 

1

 

 

 

3

t обслуживания

7

17

17

33

33

38

38

42

42

50

Станок 1

1

1

0

0

1

1

0

0

1

1

Партия

 

1

 

3

 

2

 

 

 

 

t обслуживания

0

25

25

35

35

50

 

 

 

 

Станок 2

2

2

2

2

2

2

 

 

 

 

Партия

 

2

 

 

 

3

 

 

 

1

t обслуживания

0

7

7

10

10

25

25

38

38

50

Станок 3

3

3

0

0

3

3

0

0

3

3

Рисунок 6 – График загрузки оборудования

5 Расчетstudioкратчайшего расписания (оптимального по быстродействию) работы участкасредствами IlogCP.

Файл mod

  1. usingCP;

  2. intCJobs= ...;//Работы

  3. intCMachines= ...;//Станки

  4. rangeJobs=0..CJobs-1;

  5. rangeMchs=0..CMachines-1;

  6. // Mchs используется для индекса станков

  7. tupleOperation{

  8. intmch;// Станок

  9. intpt;// Время в процессе

  10. };

  11. OperationOps[jinJobs][minMchs] = ...; //индексы j и m

  12. dvarintervalitvs[jinJobs][oinMchs]sizeOps[j][o].pt;//динамическаяпеременнаяИнтервал

  13. dvarsequencemchs[minMchs]inall(jinJobs,oinMchs:Ops[j][o].mch==m)itvs [j][o];

  14. //последовательности

  15. execute{

  16. cp.param.FailLimit=10000;

  17. }

  18. minimizemax(jinJobs)endOf(itvs[j][CMachines-1]);

  19. //минимизирует время последней операции

  20. subjectto{

  21. //предусловие

  22. forall(minMchs)//для всех станков

  23. noOverlap(mchs[m]);

  24. //без перекрытия операций по станкам

  25. forall(jinJobs,oin0..CMachines-2)

  26. endBeforeStart(itvs[j][o],itvs[j][o+1]);

  27. }

  28. execute{

  29. for(varj=0;j<=CJobs-1;j++) {

  30. for(varo=0;o<=CMachines-1;o++) {

  31. write(itvs[j][o].start+" ");

  32. }

  33. writeln("");

  34. }

  35. }

Файлdat

CJobs = 3;

CMachines = 3;

Ops = [

[ <1,25>, <0,5>,<2,12>],

[ <2,7>, <0,10>, <1,15>],

[ <2,15>, <1,10>, <0,8>],

];

На рисунке 7,8 представлены результаты работы IBMILogCP.

Рисунок 7 – Результаты работы IBMILogCP

Рисунок 8 – Результаты работы IBMILogCP продолжение

6Построение графикаГанта обработки деталей и загрузки оборудования по результатам работы IBMILogCP

В таблице 7 представлен календарный график работы производственного участка.

Таблица 7 – Календарный график работы производственного участка по результатам работы IBMILogCP

Длительность обработки

Время начала обработки

Маршруты (М)

25

5

12

0E+00

25

30

2

1

3

7

10

15

0

7

35

3

1

2

15

10

8

7

25

35

3

2

1

В таблице 8 представлено расписание обработки партий деталей, на основании которого строится график ганта, изображенный на рисунке 10.

Таблица 8 – Расписание обработки партий деталей по результатам работы IBMILogCP

График обработки партий деталей

Станок

 

2

 

1

 

3

 

 

t обслуживания

0

25

25

30

30

42

 

 

Партия 1

1

1

1

1

1

1

 

 

Станок

 

3

 

1

 

 

 

2

t обслуживания

0

7

7

17

17

35

35

50

Партия 2

2

2

2

2

0

0

2

2

Станок

 

3

 

 

 

2

 

1

t обслуживания

7

22

22

25

25

35

35

43

Партия 3

3

3

0

0

3

3

3

3

Рисунок 10 – График обработки партий деталей по результатам работы IBMILogCP

В таблице 9 представлено расписание загрузки приборов по результатам работы IBMILogCP, на основания которого строится график ганта, изображенный на рисунке 11.