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

9.1.8.Имитация функционирования аэропорта 1

9.1.8.1.Прибытие самолётов в аэропорт 1. Ожидание погрузки

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

1.Из палитры Презентация перетащите элемент Прямо-

угольник.

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

введите в поля X: 30, Y: 50, Ширина: 310, Высота: 200.

3.Перетащите элемент text и в поле Текст: введите Прибы-

тие самолётов в аэропорт 1. Ожидание погрузки.

4.Перетащите из Библиотеки моделирования процессов по

два объекта source, enter, queue, hold и один объект exit. Поместите и соедините их так, как на рис. 9.6.

При построении модели вам придётся воспользоваться Javaкодом, в котором потребуются дополнительные поля заявок. Для этого вы должны создать нестандартный тип заявки с дополнительными полями для записи и хранения параметров, о которых упоминалось ранее (см. п. 9.1.4).

Создайте тип заявок ТранспСредство.

1.Выделите объект source.

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

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

Имя: введите имя нового класса: ТранспСредство.

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

5.Появится вторая страница Мастера создания Java класса. Добавьте поля Java класса, показанные на рис. 9.7.

6.Оставьте флажки Создать конструктор и Создать метод toString (). Щёлкните Готово. Закройте редактор кода.

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

8.Аналогичным образом создайте типы заявок ГрузАэро-

порт1 и ГрузАэропорт2 с дополнительными полями колГрузоМест1 и колГрузоМест2 типа int соответственно. Эти классы заявок, как вы помните, будут использоваться при имитации поступления партий грузов в аэропорты 1 и 2 соответственно.

340

Рис. 9.6. Сегмент Прибытие самолётов в аэропорт 1

Рис. 9.7. Поля нового Java класса ТранспСредство

341

Продолжите построение сегмента имитации Прибытие само-

лётов в аэропорт 1 и ожидания погрузки.

Поочередно выделите объекты этого сегмента и установите их свойства согласно табл. 9.4.

 

 

 

Таблица 9.4

 

 

 

Свойство

 

Значения

 

 

source

Имя:

 

 

самолёт1

Тип заявки:

 

 

ТранспСредство

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

 

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

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

 

0

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

 

колСамТипА

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

 

Ограниченное

количество

 

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

прибытий

 

 

Максимальное

количество

 

1

прибытий

 

 

Новая заявка

 

 

ТранспСредство

Действия

 

 

entity.типТрансп=1;

При выходе:

 

 

entity.колГрузоМест=

 

 

 

грузПодСамА;

 

source1

Имя:

 

 

самолёт2

Тип заявки:

 

 

ТранспСредство

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

 

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

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

 

0

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

 

колСамТипБ

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

 

Ограниченное

количество

 

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

прибытий

 

 

Максимальное

количество

 

1

прибытий

 

 

Новая заявка

 

 

ТранспСредство

Действия

 

 

entity.типТрансп=2;

При выходе:

 

 

entity.колГрузоМест=

 

 

 

грузПодСамБ;

 

 

queue

Имя:

 

 

стоянкаПогр1А

Тип заявки:

 

 

ТранспСредство

Вместимость

 

 

колСамТипА

Включить сбор статистики

 

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

342

 

 

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

 

 

 

Свойство

 

Значения

 

queue1

Имя:

 

стоянкаПогр1Б

Тип заявки:

 

ТранспСредство

Вместимость

 

колСамТипБ

Включить сбор статистики

 

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

 

 

hold

Тип заявки:

 

ТранспСредство

Изначально заблокирован

 

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

 

hold1

Тип заявки:

 

ТранспСредство

Изначально заблокирован

 

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

 

 

exit

Имя:

 

наПогрузку1

Тип заявки:

 

ТранспСредство

Действия

 

if (entity.типТрансп==1)

При выходе:

 

{hold.setBlocked(true);

 

 

enter2.take(entity);}

 

 

else

 

 

{hold1.setBlocked(true);

 

 

enter3.take(entity);}

 

enter

Тип заявки:

 

ТранспСредство

 

enter1

Тип заявки:

 

ТранспСредство

Остановимся на замысле построения сегмента.

При запуске модели источники самолёт1 и самолёт2 генерируют число заявок, равное количеству самолётов типа А и типа Б соответственно. На этом активность источников прекращается.

Эти заявки-самолёты поступают на имитируемые объектами queue

стоянки стоянкаПогр1А и стоянкаПогр1Бсоответственно.

Элементы hold и hold1 изначально заблокированы, поэтому за- явки-самолёты дальше не проходят.

Элементы hold и hold1 управляются сегментом Поступление и учёт контейнеров в аэропорту 1. Как только в аэропорт 1 посту-

пит количество контейнеров, достаточное для полной загрузки самолёта типа А, и этот самолёт имеется на стоянке, а также нет самолётов типа А на погрузке, формируется команда на разблокировывание элемента hold.

343