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

Действия При выходе:

колГотИзд ++;

времяИзгИзд = time()/колГотИзд;

стоимГотИзд += entity.cost;

минСтоимГотИзд +=minCostIzd; коэфУвелСтоимИзд = (стоимГотИзд+стоимБракБл)/минСтоимГотИзд;

ostGotBlock1 = gotBlock1 - колГотИзд - zamBlock1; ostGotBlock2 = gotBlock2 - колГотИзд - zamBlock2; ostGotBlock3 = gotBlock3 - колГотИзд - zamBlock3; ostGotBlock4 = gotBlock4 - колГотИзд - zamBlock4;

Код свойства Действия При выходе введен для счёта количества kolGotIzd готовых изделий, их стоимости costGotIzd и коэффициента koefIncrCostIzd увеличения себестоимости изделия вследствие наличия брака.

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

6.2.4.7. Имитация склада бракованных блоков

Ранее (см. п. 6.2.4.2) для имитации склада бракованных блоков было рекомендовано использовать один объект sink.

Предположим, что требуется вести раздельный учёт забракованных блоков на постах контроля цехов и забракованных на стендах контроля и пунктах приёма изделий. Для разделения потока брака дополнительному полю entity.sign1 присваивались признаки 1 или 2.

1.Перетащите объекты selectOutput и sink на прямоугольник

сименем Склад бракованных блоков диаграммы агента Main.

2.Разместите и соедините их согласно рис. 6.12.

3.Поочередно выделите объекты имитации склада бракованных блоков, начиная с объекта selectOutput, и установите свойства согласно табл. 6.8.

Коды в свойстве Действия При выходе: обоих объектов sink

одинаковые. Они предназначены для счёта:

стоимости costzbrakBlock забракованных блоков не по типам, а в целом всех блоков;

количества забракованных блоков по типам allBrakBlock1… allBrakBlock4.

278

4. Из палитры Картинки перетащите на сегменты имитации складов готовых изделий и бракованных блоков картинки Склад.

Таблица 6.8

Свойства

Значение

 

 

 

selectOutput

 

 

Тип заявки:

Product

Выход true выбирается

При выполнении условия

Условие

entity.sign1 == 1

 

sink

 

 

Имя

БрПостКонтр

Тип заявки:

Product

Действия

if (entity.numBlBrak1 == 1)

При выходе:

{ стоимБракБл += costBlock1;

 

allBrakBlock1++;}

 

if (entity.numBlBrak2 == 1)

 

{ стоимБракБл += costBlock2 ;

 

allBrakBlock2++;}

 

if (entity.numBlBrak3 == 1)

 

{ стоимБракБл += costBlock3;

 

allBrakBlock3++;}

 

if (entity.numBlBrak4 == 1)

 

{ стоимБракБл += costBlock4;

 

allBrakBlock4++;}

Имя

БрБлЗам

Тип заявки:

Product

Действия

if (entity.numBlBrak1 == 1)

При выходе:

{ стоимБракБл += costBlock1;

 

allBrakBlock1++;}

 

if (entity.numBlBrak2 == 1)

{стоимБракБл += costBlock2;

allBrakBlock2++;}

if (entity.numBlBrak3 == 1)

{стоимБракБл += costBlock3;

allBrakBlock3++;}

if (entity.numBlBrak4 == 1)

{стоимБракБл += costBlock4; allBrakBlock4++;}

6.2.4.8.Организация перек между областями просмотра

Добавьте свои собственные элементы презентации на ранее созданные области просмотра Mainview, Data, Result, Kont1 и Sbor,

279

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

Для этого разместите на каждой области просмотра элементы презентации, показанные на рис. 6.13.

Рис. 6.13. Элементы презентации для переключения

Начните с области просмотра Mainview.

1. В Палитре выделите Презентация. Перетащите элемент text на область просмотра Mainview, разместите и введите в поле Текст: Предприятие (рис. 6.13). На панели Свойства установите в поле Цвет: black, выберите выравнивание текста и шрифт.

2. Перетащите второй элемент text, разместите и введите в поле Текст: Посты контроля блоков. На панели Свойства

установите в поле Цвет: blue, выберите выравнивание текста и шрифт. Раскройте Специфические и в поле Действие по щелчку:

введите код: тест.Kontr1.navigateTo();

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

3. Перетащите третий элемент text, разместите и введите

вполе Текст: Пункты сборки изделий. Раскройте Специфи-

ческие. В поле Действие по щелчку: введите: сбор-

ка.Sbor.navigateTo();

4.Перетащите четвертый элемент text. Разместите и введите

вполе Текст: Исходные данные. В поле Действие по щелчку:

на странице Специфические введите: Данные.navigateTo(); 5. Перетащите пятый элемент text, разместите и введите в поле Текст: Результаты моделирования. На панели Свой-

ства выделите Специфические и в поле Действие по щелчку:

введите: Результаты.navigateTo();

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

280

1.Скопируйте элементы презентации согласно рис. 6.13. Шрифт, цвет и его размеры установите по своему усмотрению.

2.Последовательно переходите на остальные области просмотра, вставьте скопированные элементы презентации и внесите правки в их свойства согласно табл. 6.9.

 

Таблица 6.9

 

 

Элемент презентации

Действие по щелчку

 

 

 

Data

Предприятие

Mainview.navigateTo();

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

тест.Kontr1.navigateTo();

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

сборка.Sbor.navigateTo();

Исходные данные

Результаты.navigateTo();

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

 

Result

Предприятие

Mainview.navigateTo();

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

тест.Kontr1.navigateTo();

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

сборка.Sbor.navigateTo();

Исходные данные

Данные.navigateTo();

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

 

 

Kontrol

Предприятие

main.Mainview.navigateTo();

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

main.сборка.Sbor.navigateTo();

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

Исходные данные

main.Данные.navigateTo();

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

main.Результаты.navigateTo();

 

Sbor

Предприятие

main.Mainview.navigateTo();

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

main.тест.Kontr1.navigateTo();

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

main.Данные.navigateTo();

Исходные данные

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

main.Результаты.navigateTo();

Построение модели для проведения простого эксперимента завершено. Теперь отладьте модель, используя возможности AnyLogic по обнаружению ошибок. Если вы всё выполнили корректно, то получите результаты, показанные на рис. 6.14.

Замечание. При каждом запуске модели результаты будут повторяться, если используются только распределения и случайные функции из AnyLogic. Например, если вместо функции uniform(1) использовать функцию random(), которая является функцией Java, результаты моделирования воспроизводиться не будут.

281

Рис. 6.14. Результаты моделирования согласно постановке задачи

282