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

8.В левой части окна стрелками показано размещение элементов массива. Оставим горизонтальное. Элементы массива имеют разные значения. Поэтому не используем [ВСЕ].

9.В правой части окна введите значения элементов массива:

0.05,0.18,0.34,0.56,0.85,1,0,0,0,0

Обратите внимание, что данные из первой строки табл. 2.1 введены в порядке возрастания, причём, второй элемент = первый элемент табл. 2.1 + второй табл. 2.1, третий = второй + третий табл. 2.1 и т.д. Эта особенность будет учтена в последующем программном коде. Хотя можно было бы ввести и так, как в табл. 2.1.

10.Щёлкните ОК. Вы вернётесь на панель Свойства. В поле Значение по умолчанию: появятся введённые вами значения шести элементов массива. Остальные четыре элемента равны нулю. Обратите также внимание на то, что элементы массива заключены

вфигурные скобки {…}.

11.Аналогичным образом создайте второй массив с именем

срВрПодгЗаг для среднего времени подготовки заготовки.

12. В поле Значение по умолчанию: должно быть:

{10,14,21,22,28,25,0,0,0,0}

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

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

Начнём с сегмента имитации процесса подготовки заготовки.

2.2.2.1. Подготовка заготовки

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

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

Прямоугольник. На странице Местоположение и размер уста-

новите: X: 20, Y: 300, Ширина: 240, в поле Высота: 150.

2. Перетащите элемент text и на странице Текст панели

Свойства введите: Подготовка заготовки (рис. 2.8).

71

Рис. 2.8. Сегмент Подготовка заготовки

3. В Палитре выделите Библиотека моделирования про-

цессов. Перетащите объект source на агента Main и разместите в прямоугольнике с именем Подготовка заготовки.

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

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

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

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

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

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

double n; double a; double Tn1;

Поле n будет использоваться для занесения номера выполняемой с деталью операции. Эти номера необходимы для определения

72

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

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

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

11.Теперь нужно преобразовать Java класс в тип агента. Для этого щёлкните правой кнопкой мыши в панели Проект только что созданный Java класс и в контекстном меню выберите Преоб-

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

12.Появится окно c автоматически созданными параметрами

нестандартного типа заявок Detail.

13. Из Палитры Основная перетащите на сегмент Исходные данные элемент Переменная. На странице Основные панели

Свойства дайте Имя: b, установите Тип: double.

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

В коде, приведенном ниже, который вы ввели в поле свойства Действия При выходе:, используются данные созданных ранее двух массивов.

entity.n=uniform_pos();

if (entity.n <= верВарЗаг.get(1))

entity.Tn1=срВрПодгЗаг.get(1);

else if (entity.n > верВарЗаг.get(1) && entity.n

<= верВарЗаг.get(2)) entity.Tn1=срВрПодгЗаг.get(2); else if (entity.n > верВарЗаг.get(2) && entity.n

<= верВарЗаг.get(3)) entity.Tn1=срВрПодгЗаг.get(3); else if (entity.n > верВарЗаг.get(3) && entity.n

<= верВарЗаг.get(4)) entity.Tn1=срВрПодгЗаг.get(4); else if (entity.n > верВарЗаг.get(4) && entity.n

<= верВарЗаг.get(5)) entity.Tn1=срВрПодгЗаг.get(5); else if (entity.n > верВарЗаг.get(5) && entity.n

<=верВарЗаг.get(6)) entity.Tn1=срВрПодгЗаг.get(6);

73

Рис. 2.9. Объект source с установленными свойствами

1. Выделите объект queue и на страницах панели Свойства установите свойства:

Имя: очЗаг

Тип заявки: Detail

2.Максимальная вместимость: установить флажок.

3.Выделите объект delay и на странице Основные панели

Свойства установите свойства:

Имя: подЗаг

74