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

мод сис / V.Boev-GPSSvsAnyLogic

.pdf
Скачиваний:
94
Добавлен:
11.04.2015
Размер:
9.01 Mб
Скачать

16.Перетащите элемент text и на странице Основные панели

Свойства в поле Текст: введите Исходные данные.

17.В Палитре выделите Основная. Перетащите элементы

Параметр на элемент с именем Исходные данные. Разместите их так, как показано на рис. 6.2. Значения свойств установите согласно табл. 6.1.

 

 

 

 

 

 

 

Таблица 6.1

 

 

 

 

 

 

 

 

 

 

 

Элементы и их свойства

 

 

 

 

Параметр

Параметр

 

Имя

 

Тип

Значение

Имя

Тип

 

Значение

 

по умолчанию

 

по умолчанию

 

 

 

 

 

 

aveTimeShop1

 

double

19

stKomplBlock1

double

 

35

aveTimeShop2

 

double

11

stKomplBlock2

double

 

32

aveTimeShop3

 

double

15

stKomplBlock3

double

 

43

aveTimeShop4

 

double

18

stKomplBlock4

double

 

48

stIzgBlock1

 

double

35

timeTestBlock1

double

 

12

stIzgBlock2

 

double

27

timeTestBlock2

double

 

16

stIzgBlock3

 

double

36

timeTestBlock3

double

 

21

stIzgBlock4

 

double

37

timeTestBlock4

double

 

17

postKontr1

 

int

2

procBrakBlock1

double

 

0.02

postKontr2

 

int

2

procBrakBlock2

double

 

0.03

postKontr3

 

int

2

procBrakBlock3

double

 

0.04

postKontr4

 

int

2

procBrakBlock4

double

 

0.06

stTestBlock1

 

double

12

kolStendKontrIzd

int

 

2

stTestBlock2

 

double

23

timeKontrIzd

double

 

26

stTestBlock3

 

double

32

procBrakIzd

double

 

0.05

stTestBlock4

 

double

28

stKontrIzd

double

 

74

kolPunSborki

 

int

2

verBlock1

double

 

0.9999

timeSborki

 

double

22

verBlock2

double

 

0.999999

stSborki

 

double

67

 

 

 

 

verBlockNum1

 

double

0.25

timeZamBlock1

double

 

12

verBlockNum2

 

double

0.25

timeZamBlock2

double

 

15

verBlockNum3

 

double

0.25

timeZamBlock3

double

 

12

verBlockNum4

 

double

0.25

timeZamBlock4

double

 

21

stZamBlock1

 

double

34

kolPunPriem

int

 

2

stZamBlock2

 

double

46

timePriemIzd

double

 

18

stZamBlock3

 

double

38

procBrakPriem

double

 

0.15

stZamBlock4

 

double

54

stPriemIzd

double

 

53

291

292

6.2.3. Вывод результатов моделирования

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

1.В Палитре выделите Презентация. Создайте область просмотра Результаты для размещения элементов Простая пере-

менная.

2.Перетащите элемент Область просмотра. В поле Имя:

введите Результаты.

3.Перейдите на страницу Дополнительные панели Свойст-

ва. Введите в поля X: 0, Y: 700, Ширина: 700, Высота: 460.

4.Перетащите элемент Скруглѐнный прямоугольник. Ос-

тавьте имя, предложенное системой.

5.Перейдите на страницу Дополнительные панели Свойст-

ва. Введите в поля X: 10, Y: 750, Ширина: 680, Высота: 400.

6. Перетащите элемент text и на странице Основные панели

Свойства в поле Текст: введите Данные о количестве подготовленных и забракованных блоков и изделий.

7. Перетащите второй элемент text и на странице Основные панели Свойства в поле Текст: введите Стоимостные пока-

затели функционирования предприятия.

8. В Палитре выделите Основная. Перетащите элементы Простая переменная. Разместите их и дайте им имена так, как показано на рис. 6.3. Тип всех переменных, используемых для вывода количества подготовленных и забракованных блоков и изделий на текущее модельное время — int. Тип переменных для вывода стоимостных показателей работы предприятия — double.

Значение по умолчанию равно 0.

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

293

294

6.2.4.Построение событийной части модели

Всобытийную часть модели включим указанные ранее сегменты согласно представлению предприятия как системы массового обслуживания (см. рис. 6.1).

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

Создайте область просмотра для размещения сегментов событийной части модели на диаграмме класса Main.

12.В Палитре выделите Презентация. Перетащите элемент

Область просмотра.

13.Перейдите на страницу Основные панели Свойства.

14.В поле Имя: введите Mainview.

15.Перейдите на страницу Дополнительные панели Свойст-

ва. Введите в поля X: 0, Y: 0, Ширина: 990, Высота: 390.

16.Перетащите элемент Скруглѐнный прямоугольник. В

нѐм мы разместим все сегменты модели. Оставьте имя, предложенное системой.

17.Перейдите на страницу Дополнительные панели Свойст-

ва. Введите в поля X: 10, Y: 60, Ширина: 970, Высота: 320.

18. Перетащите элементы Скруглѐнный прямоугольник,

укажите имена сегментов и свойства согласно табл. 6.2. Шрифт, цвет и т.д. выберите по своему усмотрению.

 

 

 

 

Таблица 6.2

 

 

 

 

 

 

Сегмент

 

Свойства

 

 

 

 

 

 

 

Х:

Y:

Ширина:

Высота:

 

 

 

Цеха

20

80

140

270

 

 

 

 

 

 

 

Посты контроля блоков

170

80

160

270

 

 

 

 

 

 

 

Пункты сборки изделий

340

80

120

270

 

 

 

 

 

 

 

Стенды контроля изделий

470

80

150

270

 

 

 

 

 

 

 

Пункты приѐма изделий

630

80

170

270

 

 

 

 

 

 

 

Склад готовых изделий

810

80

160

130

 

 

 

 

 

 

 

Склад бракованных изделий

810

220

160

130

 

 

 

 

 

 

 

295

296

6.2.4.1. Имитация работы цехов предприятия

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

1.В Палитре выделите Enterprise Library.

2.Перетащите объект sourсe на диаграмму класса Main и

разместите в скругленном прямоугольнике с именем Цеха.

3. Для записи и хранения параметров блоков и изделий в дополнительные поля заявок нужно создать нестандартный класс заявки. Создайте класс заявки Product.

4. В панели Проект щелкните правой кнопкой мыши элемент модели верхнего уровня дерева и выберите в меню Создать Java

класс.

5. Появится диалоговое окно Новый Java класс (см. рис. 3.32). В поле Имя: введите имя нового класса Product.

6.В поле Базовый класс: выберите из выпадающего списка

.anylogic.libraries.enterprise.Entity в качестве базового класса. Щелкните кнопку Далее.

7.Появится вторая страница Мастера создания Java класса. Добавьте следующие поля Java класса, которые потребуются в дальнейшем при разработке модели:

int numBlock; int sign1;

int numBlBrak1; int numBlBrak2; int numBlBrak3; int numBlBrak4; double timeSbor; double cost;

8.Оставьте выбранными флажки Создать конструктор и Создать метод toString().

9.Щелкните кнопку Готово. Появится редактор кода и автоматически созданный код вашего Java класса. Закройте код.

10.Выделите объект source. На странице Основные панели Свойства установите свойства согласно табл. 6.3.

297

Таблица 6.3

 

Свойства объектов source

 

 

 

Имя

Свойства

Значения

 

 

 

Цех1

Отображать имя

Установите флажок

 

Класс заявки

Product

 

Заявки прибывают соглас-

 

 

но

Времени между прибытиями

 

Время между прибытиями

 

 

Количество заявок, прибы-

Exponential(1/aveTimeShop1)

 

вающих за один раз

1

 

Новая заявка

new Product()

 

Действие при выходе

if (a==0){

 

 

costBlock1=stKomplBlock1+

 

 

stIzgBlock1+stTestBlock1;

 

 

costBlock2=stKomplBlock2+

 

 

stIzgBlock2+stTestBlock2;

 

 

costBlock3=stKomplBlock3+

 

 

stIzgBlock3+stTestBlock3;

 

 

costBlock4=stKomplBlock4+

 

 

stIzgBlock4+stTestBlock4;

 

 

costBlockIzd=costBlock1+

 

 

costBlock2+costBlock3+

 

 

costBlock4;

 

 

minCostIzd=costBlockIzd+

 

 

stSborki+

 

 

stKontrIzd+stPriemIzd;

 

 

a=1;}

 

 

kolIzgBlock1++;

 

 

entity.numBlock = 1;

 

 

entity.timeSbor =

 

 

exponential(1/timeSborki);

 

 

costKomplBlock1 +=

 

 

stKomplBlock1;

 

 

costKomplBlock +=

 

 

stKomplBlock1;

 

 

costIzgBlock1 +=

 

 

stIzgBlock1;

 

 

sumCostBlock1 +=

 

 

(stKomplBlock1+stIzgBlock1);

 

 

costIzgBlock += stIzgBlock1;

 

 

sumCostBlock +=

 

 

(stKomplBlock1+stIzgBlock1);

298

 

 

Продолжение табл. 6.3

Имя

Свойства

Значения

цех2

Отображать имя

Установите флажок

 

Класс заявки

Product

 

Заявки прибывают соглас-

 

 

но

Времени между прибытиями

 

Время между прибытиями

Exponential(1/aveTimeShop2)

 

Количество заявок, прибы-

 

 

вающих за один раз

1

 

Новая заявка

new Product()

 

Действие при выходе

kolIzgBlock2++;

 

 

entity.numBlock = 2;

 

 

costKomplBlock2 +=

 

 

stKomplBlock2;

 

 

costKomplBlock +=

 

 

stKomplBlock2;

 

 

costIzgBlock2 +=

 

 

stIzgBlock2;

 

 

sumCostBlock2 +=

 

 

(stKomplBlock2+stIzgBlock2);

 

 

costIzgBlock += stIzgBlock2;

 

 

sumCostBlock +=

 

 

(stKomplBlock2+stIzgBlock2);

цех3

Отображать имя

Установите флажок

 

Класс заявки

Product

 

Заявки прибывают соглас-

 

 

но

Времени между прибытиями

 

Время между прибытиями

 

 

Количество заявок, прибы-

Exponential(1/aveTimeShop3)

 

вающих за один раз

1

 

Новая заявка

new Product()

 

Действие при выходе

kolIzgBlock3++;

 

 

entity.numBlock = 3;

 

 

costKomplBlock3 +=

 

 

stKomplBlock3;

 

 

costKomplBlock +=

 

 

stKomplBlock3;

 

 

costIzgBlock3 +=

 

 

stIzgBlock3;

 

 

sumCostBlock3 +=

 

 

(stKomplBlock3+stIzgBlock3);

 

 

costIzgBlock += stIzgBlock3;

 

 

sumCostBlock +=

 

 

(stKomplBlock3+stIzgBlock3);

299

 

 

Окончание табл. 6.3

 

 

 

Имя

Свойства

Значения

цех4

Отображать имя

Установите флажок

 

Класс заявки

Product

 

Заявки прибывают соглас-

 

 

но

Времени между прибытиями

 

Время между прибытиями

 

 

Количество заявок, прибы-

Exponential(1/aveTimeShop4)

 

вающих за один раз

1

 

Новая заявка

new Product()

 

Действие при выходе

kolIzgBlock4++;

 

 

entity.numBlock = 4;

 

 

costKomplBlock4 +=

 

 

stKomplBlock4;

 

 

costKomplBlock +=

 

 

stKomplBlock4;

 

 

costIzgBlock4 +=

 

 

stIzgBlock4;

 

 

sumCostBlock4 +=

 

 

(stKomplBlock4+stIzgBlock4);

 

 

costIzgBlock += stIzgBlock4;

 

 

sumCostBlock +=

 

 

(stKomplBlock4+stIzgBlock4);

11.Щелкните выделенный source правой кнопкой мыши и в контекстном меню выберите Копировать.

12.Вставьте в скругленный прямоугольник с именем Цеха еще три объекта source. Разместите их вертикально один под дру-

гим. Во время вставки имена объектов будут изменяться: цех2, цех3, цех4. Однако остальные свойства останутся такими же, как и у объекта цех1. Поэтому, последовательно выделяя второй, третий и четвертый объекты source, скорректируйте их свойства также согласно табл. 6.3.

6.2.4.2. Имитация работы постов контроля блоков

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

на склад забракованных блоков.

Для размещения объектов, имитирующих работу постов кон-

троля блоков, создайте новый класс активного объекта Test.

300