Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / Compyuternoe_modelirovanie_v_AnyLogic_7_Boev_VD.pdf
Скачиваний:
228
Добавлен:
12.02.2018
Размер:
8.72 Mб
Скачать

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

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

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

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

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

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

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

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

4.На странице Местоположение и размер панели Свойства

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

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

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

6.На странице Местоположение и размер панели Свойства

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

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

укажите имена сегментов и свойства согласно табл. 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

251

252

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

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

1. Из Библиотеки моделирования процессов перетащите объект sourсe на агент Main и разместите в скругленном прямоугольнике с именем Цеха.

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

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

класс.

4.Появится диалоговое окно Новый Java класс. В поле

Имя: введите имя нового класса Product.

5.В поле Базовый класс: выберите из выпадающего списка Entity в качестве базового класса. Щёлкните кнопку Далее.

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

int numBlock; int sign1;

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

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

8.Щёлкните кнопку Готово. Появится редактор кода и авто-

матически созданный код вашего Java класса. Закройте код.

9. Щёлкните правой кнопкой мыши в панели Проект только что созданный Java класс и в контекстном меню выберите Преоб-

разовать Java класс в тип агента.

253

10.Появится окно c параметрами типа заявок Product.

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

 

 

Таблица 6.3

 

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

 

 

 

Имя

Свойства

Значения

 

 

 

Цех1

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

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

 

Тип заявки

Product

 

Прибывают согласно

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

 

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

exponential(1/aveTimeShop1)

 

Новая заявка

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);

254

 

 

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

 

 

 

Имя

Свойства

Значения

цех2

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

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

 

Тип заявки

Product

 

Прибывают согласно

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

 

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

exponential(1/aveTimeShop2)

 

Новая заявка

Product

 

Действия

kolIzgBlock2++;

 

При выходе:

 

 

entity.numBlock = 2;

 

 

costKomplBlock2 +=

 

 

stKomplBlock2;

 

 

costKomplBlock +=

 

 

stKomplBlock2;

 

 

costIzgBlock2 +=

 

 

stIzgBlock2;

 

 

sumCostBlock2 +=

 

 

(stKomplBlock2+stIzgBlock2);

 

 

costIzgBlock +=

 

 

stIzgBlock2;

 

 

sumCostBlock +=

 

 

(stKomplBlock2+stIzgBlock2);

цех3

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

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

 

Тип заявки

Product

 

Прибывают согласно

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

 

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

exponential(1/aveTimeShop3)

 

Новая заявка

Product

 

Действия

kolIzgBlock3++;

 

При выходе:

 

 

entity.numBlock = 3;

 

 

costKomplBlock3 +=

 

 

stKomplBlock3;

 

 

costKomplBlock +=

 

 

stKomplBlock3;

 

 

costIzgBlock3 +=

 

 

stIzgBlock3;

 

 

sumCostBlock3 +=

 

 

(stKomplBlock3+stIzgBlock3);

 

 

costIzgBlock +=

 

 

stIzgBlock3;

 

 

sumCostBlock +=

 

 

(stKomplBlock3+stIzgBlock3);

 

 

255