Опубликован: 15.02.2013 | Доступ: свободный | Студентов: 257 / 0 | Длительность: 16:52:00
ISBN: 978-5-9556-0146-5
Лекция 3:

Модель процесса изготовления в цехе деталей

Модель в AnyLogic

AnyLogic-модель процесса изготовления в цехе деталей будет включать согласно представлению как система массового обслуживания (Рис. 2.1) следующие сегменты:

  • исходные данные;
  • подготовка заготовки;
  • операция 1;
  • операция 2;
  • операция 3;
  • пункт окончательного контроля;
  • склад готовых деталей;
  • склад бракованных деталей.
  • результаты моделирования.
Исходные данные. Использование массивов

Для ввода исходных данных используем элементы Параметр. Идентификаторы возьмём те же (кроме времени моделирования и количества прогонов модели), что и в GPSS-модели, только без знака подчёркивания.

  1. Выполните команду Файл/Создать/Модель на панели инструментов.
  2. В поле Имя модели диалогового окна Новая модель введите Изготовление_в_цехе_деталей. Выберите каталог, в котором будут сохранены файлы вашей модели. Щелкните кнопку Далее.
  3. На открывшейся второй странице Мастера создания модели выберите Начать создание модели "с нуля". Щелкните кнопку Далее.
  4. В Палитре выделите Презентация.
  5. Перетащите элемент Скруглённый прямоугольник в нужное место.
  6. Перетащите элемент text и на странице Основные панели Свойства в поле Текст: введите Исходные данные.
  7. В Палитре выделите Основная. Перетащите элементы Параметр на элемент с именем Исходные данные. Разместите их так, как показано на рис. 2.4. Значения свойств установите согласно табл. 2.3. На рис. 2.4, как вы, наверное, уже заметили, два элемента Параметр отличаются от остальных. Они используются для ввода данных табл. табл. 2.1 как одномерных массивов.
Размещение элементов Параметр для ввода исходных данных

Рис. 2.4. Размещение элементов Параметр для ввода исходных данных
Таблица 2.3.
Элементы и их свойства
Параметр Параметр
Имя Тип Значение по умолчанию Имя Тип Значение по умолчанию
Tn double 35 Tk1 double 4
T1 double 30 Tk2 double 5
T2 double 25 Tk3 double 15
T3 double 35 Tk double 8
q1 double 0.12 врМод double 480
q2 double 0.15 колПрог double 16641
q3 double 0.10
q4 double 0.80

Создайте размерности массивов. В данном случае они одинаковые. Элементов в одной строке табл. 2.1 шесть. Предположим, что число видов заготовок может увеличиться до 10. Значит размерность одного массива 10 элементов.

  1. Щёлкните правой кнопкой мышки в панели Проекты и в контекстном меню выберите Создать/Размерность.
  2. В открывшемся окне Размерность в поле Имя введите КолВарЗаг.
  3. Установите Тип размерности: Диапазон.
  4. В открывшееся поле Диапазон: введите 1-10.
  5. Щёлкните Готово.

Теперь создайте непосредственно массивы. Начните с массива верВарЗаг для вероятностей появления видов заготовок.

  1. Из Палитры Основные перетащите элемент Параметр.
  2. На странице Основные панели Свойства в поле Имя: введите верВарЗаг.
  3. Установите флажок Массив. Рядом появится значок {…}. Щёлкните по нему.
  4. Откроется страница свойств Массив. В окошке Возможные размерности: выделите КолВарЗаг.
  5. Щелкните по кнопке . Размерность КолВарЗаг появится в окошке Выбранные размерности.
  6. Вернитесь на страницу Основные панели Свойства.
  7. В поле Значение по умолчанию: введите:
    {0.05,0.18,0.34,0.56,0.85,1.0,0,0,0,0}

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

  1. Аналогичным образом создайте второй массив с именем срВрПодгЗаг для среднего времени подготовки заготовки.
  2. В поле Значение по умолчанию: введите:
    {10,14,21,22,28,25,0,0,0,0}
Построение событийной части модели

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

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

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

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

  1. В Палитре выделите Презентация. Перетащите элемент Прямоугольник и разместите, где считаете нужным. На странице Дополнительные панели Свойства введите в поле Ширина: 240, в поле Высота: 150.
  2. Перетащите элемент text и на странице Основные панели Свойства в поле Текст: введите Подготовка заготовки (Рис. 2.5).
  3. В Палитре выделите Enterprise Library. Перетащите объект source на диаграмму класса Main и разместите в прямоугольнике с именем Подготовка заготовки.
  4. Для записи и хранения параметров детали в дополнительные поля заявок нужно создать нестандартный класс заявки. Создайте класс заявки Detail.
  5. В панели Проект щелкните правой кнопкой мыши элемент модели верхнего уровня дерева и выберите Создать Java класс.
  6. Появится диалоговое окно Новый Java класс. В поле Имя: введите имя нового класса Detail.
  7. В поле Базовый класс: выберите из выпадающего списка Entity в качестве базового класса. Щелкните кнопку Далее.
    Сегмент Подготовка заготовки

    Рис. 2.5. Сегмент Подготовка заготовки
  8. Появится вторая страница Мастера создания Java класса. Добавьте следующие поля Java класса, которые потребуются в дальнейшем при разработке модели:
    double n;
    double a;
    double Tn1;

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

  9. Оставьте выбранными флажки Создать конструктор и Создать метод toString().
  10. Щелкните кнопку Готово. Появится редактор кода и автоматически созданный код вашего Java класса. Закройте код.
  11. Из Палитры Основная перетащите на сегмент Исходные данные элемент Простая переменная. На странице Основные панели Свойства дайте Имя: b, установите Тип: double.
  12. Выделите объект source. На странице Основные панели Свойства установите свойства согласно рис. 2.6.

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

    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);
  13. Из библиотеки Enterprise Library перетащите объекты queue и delay на диаграмму класса Main, разместите в прямоугольнике с именем Подготовка заготовки и соедините как на рис. 2.5.
    Элемент source с установленными свойствами

    увеличить изображение
    Рис. 2.6. Элемент source с установленными свойствами
  14. Выделите объект queue и на странице Основные панели Свойства установите свойства:
    • Имя: очЗаг
    • Класс заявки: Detail
  15. Максимальная вместимость установить флажок.
  16. Выделите объект delay и на странице Основные панели Свойства установите свойства:
    • Имя: подЗаг
    • Класс заявки: Detail
    • Задержка задаётся Явно
    • Время задержки exponential (1/entity.Tn1)
    • Вместимость 1
    • Действие при выходе entity.a = 1;
Алексей Гроссман
Алексей Гроссман

Здравствуйте, прошел курс "Концептуальное проектирование систем в AnyLogic и GPSS World". Можно ли получить по нему сертификат? У нас в институте требуют сертификаты для создания портфолио.

Елена Блинаева
Елена Блинаева