AnyLogic
Развернуть
Размер шрифта

Фаза 4. Сборка аккумуляторов

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

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

Добавьте новый тип материального объекта

  1. Перетащите элемент Тип материального объекта с палитры Библиотеки производственных систем на графическую диаграмму агента Main.
  2. В диалоговом окне Создание агента укажите Имя типа агента: Battery и щелкните по кнопке Далее.
  3. Распахните секцию Склады и контейнерные терминалы в списке 3D объектов и выберите Производственная тара 1. Щелкните по кнопке Готово.
  4. В графическом редакторе агента Battery выберите элемент Масштаб и задайте значение параметра Длина линейки соответствует: 1 метр.
  5. Перейдите в секцию Размеры и движение свойств агента Battery укажите следующее:
    a. Длина: 0.3 метра
    b. Ширина: 0.2 метра
    c. Высота: 0.15 метра
  6. Теперь нужно изменить размер объекта 3D, чтобы он соответствовал заданным размерам нашего типа агента. Выберите фигуру 3D в графическом редакторе и в свойствах этой фигуры задайте Доп. масштабирование: 50%.
  7. В секции Цвета свойств 3D фигуры укажите Мой цвет: black.

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

Создайте разметку пространства

  1. Дважды щелкните элемент Конвейер в секции Разметка пространства на палитре Библиотека производственных систем.
  2. Нарисуйте конвейер в соответствии с изображением ниже.
  3. Назовите его batteryConveyor.

  4. В свойствах конвейера укажите следующее:
    a. Тип материального объекта: Battery
    b. Максимальная скорость: 0.5 м/с
    c. Начальная скорость: 0.5 м/с
    d. Z: 20
    e. Ширина: 0.5 метра
  5. Перетащите элемент Точка конвейера из секции Разметка пространства палитры Библиотека производственных систем на графический редактор агента Main и разместите его на batteryConveyor.

  6. Назовите новый элемент blockInputPosition.
    С помощью этого элемента мы укажем точное место на конвейере, где группы электродов будут помещаться в корпус аккумулятора.
  7. Перетащите элемент Прямоугольный узел с палитры Разметка пространства на графическую диаграмму агента Main и разместите его у начальной точки конвейера batteryConveyor.
  8. Назовите узел caseBuffer.
  9. В свойствах узла укажите:
    a. Видимость: нет
    b. Расположение внутри: Упорядоченное
  10. Перетащите элемент Стреловой кран из секции Разметка пространства палитры Библиотека производственных систем на графический редактор агента Main и разместите его как указано на изображении ниже.
  11. Назовите кран batteryBlockCrane.
  12. В свойствах крана укажите следующее:
    a. Тип материального объекта: BatteryBlock
    b. В секции Местоположение и размер задайте значение следующих параметров: Длина плеча: 3 метра
    Высота крана: 4 метра
  13. Убедитесь в том, что рабочая зона крана полностью закрывает узел assembledBlocksBuffer и точку конвейера blockInputPosition. Перетаскивайте метку-манипулятор, расположенный на окончании плеча крана, чтобы увеличить/уменьшить размеры рабочей области.
  14. Выберите опцию Недоступная зона и отрегулируйте ее угол с помощью меток-манипуляторов так, чтобы эта зона выглядела, как на изображении ниже:

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

Теперь давайте опишем логику этого производственного процесса.

Добавьте процесс сборки аккумулятора в диаграмму процесса

  1. Перетащите элемент Source с палитры Библиотеки моделирования процессов на графический редактор агента Main и разместите его над блоком assembler. Убедитесь в том, что между этими двумя блоками не установилось соединение.
  2. Назовите блок source: batterySource.
    С его помощью мы будем создавать агентов типа Battery.

  3. В свойствах блока batterySource укажите следующее:
    a. Прибывают согласно: Интенсивности
    b. Интенсивность прибытия: 10 в час
    c. Местоположение прибытия: Узел сети / ГИС
    d. Узел: caseBuffer
    e. Новый агент: Battery
  4. Уберите галочку в опции Выталкивать агентов.

  5. Перетащите блок Queue с палитры Библиотеки моделирования процессов на графическую диаграмму агента Main и разместите его после блока batterySource. Убедитесь в том, что связь между этими блоками установилась.
    С помощью этого блока мы смоделируем нахождение корпусов в зоне ожидания перед конвейером.

  6. В свойствах блока queue укажите:
    a. Вместимость: 25
    b. Место агентов: caseBuffer
  7. Чтобы промоделировать перемещение корпусов аккумуляторов из области ожидания на конвейер для сборки, перетащите блок Conveyor Enter с палитры Библиотеки производственных систем на графический редактор агента Main и разместите его после блока queue.

  8. В свойствах блока conveyorEnter укажите:
    a. Точка входа задается как: Точка конвейера
    b. Точка конвейера: blockInputPosition
  9. Чтобы промоделировать перемещение групп электродов из области ожидания в корпус аккумулятора, перетащите блок Move By Crane с палитры Библиотеки производственных систем на графический редактор агента Main и разместите его после блока assembler.
  10. Назовите новый блок toCase.

  11. В свойствах блока toCase укажите следующее:
    a. Место назначения: Агент
    b. Кран: batteryBlockCrane
    c. Время загрузки: 5 секунд
    d. Время освобождения: 5 секунд
  12. В поле ввода параметра Агент добавьте следующую строку кода: blockInputPosition.getAgent().
    Эта функция возвращает агента, который в данный момент находится в точке конвейера blockInputPosition.

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

  1. Удалите соединитель между блоком toCase и блоком sink.
  2. Перетащите блок Combine с палитры Библиотеки моделирования процессов на графическую диаграмму агента Main и разместите его после блока conveyorEnter. Убедитесь в том, что соединение между этими блоками установилось через верхний входной порт блока combine.
  3. Дважды щелкните выходной порт блока toCase и перетащите созданный соединитель к нижнему входному порту блока combine. Отпустите кнопку мыши, когда точка соединения станет голубого цвета, как показано на изображении ниже:

  4. В свойствах блока combine укажите Объединенный агент: agent1.
  5. Разместите блок sink после блока combine.

  6. Запустите модель!

По прошествии некоторого времени выполнение модели прекратится из-за возникшей ошибки, когда кран попытается переместить группу электродов в отсутствующий корпус аккумулятора. Мы можем решить эту проблему с помощью Библиотеки моделирования процессов.

Синхронизируйте процесс сборки групп и процесс подготовки корпуса аккумулятора

  1. Перетащите блок Hold с палитры Библиотеки моделирования процессов и разместите его в диаграмме процессов между блоком assembler и блоком toCase.
    С помощью этого блока мы сможем контролировать поток групп электродов: мы будем останавливать поток, пока не появится новый корпус аккумулятора, куда можно будет поместить группы.

  2. В свойствах блока hold укажите Режим: Блокировать после заданного количества агентов и выберите опцию Изначально заблокирован.

Теперь мы должны правильно выбрать момент вызова функции unblock(), чтобы синхронизировать два процесса.

  1. В свойствах блока conveyorEnter распахните секцию Действия и введите следующую строку кода в поле При входе: hold.unblock()
    Теперь функция unblock() блока hold будет вызываться каждый раз, когда корпус аккумулятора поступает на конвейер, где кран должен поместить в него группу электродов. В оставшееся время движение групп электродов будет заблокировано.
  2. Запустите модель снова и понаблюдайте за процессом производства!

Демо-модель: Lead Acid Battery Production - Phase 4 Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.
Как мы можем улучшить эту статью?