Фаза 1. Создание партий электродов

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

Создайте новую модель

  1. Щелкните мышью по кнопке панели инструментов Создать. Появится диалоговое окно Новая модель.

  2. Задайте имя новой модели. В поле Имя модели введите Lead Acid Battery Production.


  1. Задайте каталог, где будут храниться файлы модели. Если вы хотите сменить предложенный по умолчанию каталог на какой-либо другой, вы можете ввести путь к нему в поле Местоположение или выбрать этот каталог с помощью диалога навигации по файловой системе, открывающегося по нажатию на кнопку Выбрать.

  2. Оставьте секунды в качестве Единиц модельного времени.

  3. Щелкните мышью по кнопке Готово, чтобы завершить процесс.

Вы создали новую модель. В ней уже есть один тип агента  Main и эксперимент Simulation. Агенты - это главные строительные блоки модели AnyLogic. В нашем случае агент Main послужит местом, в котором мы зададим всю логику модели: здесь мы построим производственную линию и зададим движение агентов-электродов по диаграмме процесса. 

В центре рабочей области находится графический редактор диаграммы типа агента  Main.


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

На правой стороне рабочей области будет отображаться панель Свойства. Панель Свойства используется для просмотра и изменения свойств выбранного в данный момент элемента (или элементов) модели. Когда вы выделяете какой-либо элемент, например, в панели Проекты или в графическом редакторе, панель Свойства показывает свойства выбранного элемента.

Теперь мы можем настроить нашу модель.

Добавление плана пространства

Мы будем использовать следующий план:

Сохраните изображение с планом себе на компьютер

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

Добавьте план на графическую диаграмму модели

  1. В меню Палитры выберите палитру Презентация.
  2. Перетащите элемент Изображение из палитры Презентация на графическую диаграмму агента  Main. Вы можете использовать элемент Изображение, чтобы добавлять на презентацию агента изображения разных форматов, включая PNG, JPEG, GIF и BMP.
  3. Выберите изображение, которое мы будем использовать в модели. Диалог для выбора файла откроется автоматически. Откройте каталог, в который вы только что сохранили файл изображения, выберите файл и нажмите Открыть.

    Также вы можете перетащить файл изображения из каталога прямо на графический редактор AnyLogic.

  4. Убедитесь в том, что левый верхний угол изображения соответствует исходной точке системы координат, как указано на изображении ниже:


    Чтобы отрегулировать расположение изображения, выберите изображение щелчком мыши и перемещайте с помощью сочетания клавиш Shift + клавиши со стрелкой.

  5. В панели Свойства изображения выберите опцию Блокировать, чтобы заблокировать изображение.

    Блокирование фигур

Создание конвейера

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

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

Нарисуйте конвейер

  1. Откройте палитру Разметка пространства. В секции Производственные системы дважды щелкните мышью по элементу  Конвейер, чтобы переключить его в режим рисования. Иконка элемента сменится на .
  2. Нарисуйте конвейер в соответствии с изображением ниже, дважды щелкнув по графическому редактору, чтобы разместить начальную точку конвейера, а затем дважды щелкнув, чтобы разместить конечную точку. Обратите внимание, что направление движения конвейера будет зависеть от того, какую точку вы нарисовали сначала.

  3. В секции Местоположение и размер свойств конвейера задайте Z: 20.

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

Создание диаграммы процесса

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

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

Создайте диаграмму процесса

  1. Перетащите элемент Source с палитры Библиотеки моделирования процессов на графическую диаграмму агента  Main. С помощью этого блока мы будем генерировать электроды.

    Разместите блок под изображением с планом пространства, оставив достаточно свободного места между ними, поскольку в дальнейшем, с каждой новой фазой учебного пособия, наша диаграмма будет расти не только горизонтально, но и вертикально.

  2. В Свойствах блока source задайте параметры, как указано на изображении ниже, чтобы блок каждые 1.5 часа генерировал 200 электродов, и эти электроды покидали блок один за другим:

    a. В параметре Прибывают согласно выберите опцию Времени между прибытиями.
    b. В поле Время между прибытиями задайте значение 1.5 и выберите часы из выпадающего списка единиц времени.
    c. В параметре Первое прибытие происходит выберите опцию При запуске модели.
    d. Выcтавите флажок в параметре За 1 раз создается несколько агентов.
    e. В поле Кол-во агентов, прибывающих за 1 раз введите значение 200.
    f. В секции свойств Специфические снимите флажок в параметре Выталкивать агентов.
    g. В параметре Агенты, которые не могут выйти выберите из выпадающего списка опцию ожидают в этом блоке.

  3. Чтобы промоделировать перемещение электродов с помощью конвейера, перетащите элемент  Convey с палитры Библиотеки производственных систем на графическую диаграмму агента Main и разместите его справа от блока source так, чтобы они автоматически соединились, как указано на изображении ниже:


    Это единственный блок Библиотеки производственных систем, с помощью которого можно управлять движением материальных объектов в конвейерной сети. Он по умолчанию выбирает кратчайший маршрут от начальной точки до места назначения, но вы можете задать точную последовательность конвейеров, которые должны войти в маршрут материального объекта, а также использовать параметры Исключить конвейеры и Пройти через конвейеры, чтобы настроить маршрут по своему желанию.

  4. В Свойствах блока convey укажите Начальный конвейер: conveyor и Конечный конвейер: conveyor.

    Обратиться к элементам модели из свойств блока можно двумя способами:
  5. Поставьте флажок в параметре Покинуть конвейер при выходе.

  6. Добавьте в диаграмму процессов блок Sink. Он уничтожает агентов и обычно является последним блоком диаграммы.

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

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

  1. Щелкните кнопку Запуск на панели инструментов и выберите из выпадающего списка эксперимент, который хотите запустить. Нужный вам эксперимент называется Lead Acid Battery Production / Simulation.

В нашем случае в рабочем пространстве открыта только одна модель, поэтому вам сразу предложат запустить нужный эксперимент. В дальнейшем, по нажатию на эту кнопку будет запускаться предыдущий запущенный эксперимент. Для запуска любого другого эксперимента нужно будет щелкнуть правой клавишей мыши (Mac ОС: Ctrl+щелчок правой клавишей мыши) по эксперименту в панели Проекты и выбрать команду Запуск из контекстного меню.

Запустив модель, вы увидите окно модели. Оно отображает презентацию, созданную для вашего имитационного эксперимента.

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

При необходимости, отрегулируйте скорость выполнения модели с помощью элементов управления Замедлить и Ускорить .

Создание электродов

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

Создайте новый тип материального объекта
  1. Перетащите элемент Тип материального объекта из палитры Библиотеки производственных систем на графическую диаграмму агента  Main.


  2. Автоматически откроется диалоговое окно Создание агента.
  3. На первой странице диалогового окна укажите Имя нового типа: Electrode.
  4. Щелкните кнопку Далее.


  5. На следующем этапе вам предложат выбрать анимацию для материального объекта этого типа. Поскольку мы будем создавать анимацию самостоятельно, выберите опцию Нет и щелкните кнопку Готово.


    В AnyLogic автоматически откроется графическая диаграмма нового типа агента.

  6. В панели Свойства типа агента Electrode разверните секцию Размеры и движение и задайте длину, ширину и высоту типа агента Electrode, как указано на изображении ниже.


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

  7. Теперь давайте настроим масштаб агента. Сдвиньте холст графической диаграммы агента Electrode, щелкнув по диаграмме и прокрутив колесо мышки вверх до тех пор, пока в графическом редакторе не появится элемент Масштаб. В свойствах элемента задайте Длина линейки соответствует: 1 метр. Обратите внимание, как метка-заполнитель для анимации агента, расположенная в исходной точке координат, изменит свой размер.

  8. Добавьте фигуру анимации агента. Перетащите элемент Прямоугольник element из палитры Презентация на  графическую диаграмму Electrode и разместите его в исходной точке координат.
  9. В секции свойств прямоугольника Внешний вид оставьте значение по умолчанию параметра Цвет заливки.
  10. Из выпадающего списка в параметре Цвет линии выберите опцию Нет цвета.
  11. В секции свойств Местоположение и размер задайте настройки, как указано на изображении ниже. Теперь размер прямоугольника будет соответствовать размеру метки-заполнителя.


Мы завершили создание нового агента. Осталось настроить масштаб так, чтобы он соответствовал масштабу основного агента:
  1. Перейдите на графическую диаграмму агента Main. Перетащите холст диаграммы вниз, чтобы элемент Масштаб стал виден.
  2. В свойствах элемента задайте значение параметра Длина линейки соответствует: 5 метров.
  3. В свойствах элемента conveyor задайте значение параметра Ширина: 0.5 метров.
Теперь мы должны сообщите элементу разметки пространства (conveyor) и диаграмме процесса, что роль материального объекта выполняет агент  Electrode.
  1. Откройте свойства conveyor и выберите из выпадающего списка в параметре Тип материального объекта: Electrode:

  2. Выберите блок source в диаграмме процессов.
  3. В свойствах блока выберите из выпадающего списка в параметре Новый агент:  Electrode.
Запустите модель и посмотрите, как изменилась анимация.

Нанесение пасты на электроды

На электроды, которые по сути являются свинцовыми решетками, необходимо нанести специальную пасту. Эта паста послужит активным материалом в электрохимических реакциях, которые будут проходить во время зарядки и разрядки аккумуляторов.

Добавить пастонамазочную станцию

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


  2. В свойствах станции обработки настройте следующие параметры:

    a. Имя: pastingMachine
    b. Время обработки: 1 секунда
    c: Смещение от начала конвейера: 80
    d: Длина: 0.5 м


Динамический цвет материального объекта

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

  1. Перетащите элемент  Переменная с палитры Агент на графическую диаграмму агента Electrode.
  2. Назовите его color.
  3. В свойствах переменной укажите:

    a. Тип: Color
    b. Начальное значение: white

    Обратите внимание, что white здесь является именем Java-константы, которую мы используем, чтобы задать цвет.

  4. Щелкните по прямоугольнику, который мы создали для анимации агента Electrode и перейдите в секцию Внешний вид его свойств. Мы используем динамическое значение параметра Цвет заливки, где укажем переменную color для задания цвета электродов во время выполнения модели.

    a. Щелкните по иконке Редактор значения возле поля Цвет заливки. Когда вместо этой иконки появится иконка  Динамическое значение, вместо поля с выпадающим списком появится поле редактирования.
    b. Введите в поле редактирования color, чтобы связать этот параметр с созданной ранее переменной.

  5. Переключитесь в графический редактор агента  Main.
  6. Щелкните по станции обработки pastingMachine и раскройте секцию свойств Действия.
  7. В поле При окончании процесса введите следующий код:


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

    Чтобы облегчить работу с кодом, вы можете использовать Мастер подстановки кода. Поместите курсор мыши в поле, где вы хотите ввести код, напечатайте первую букву слова и нажмите клавиши Ctrl+Пробел. Появится мастер подстановки со всеми переменными и функциями, доступными в вашей модели. Все элементы, которые начинаются с введенной буквы, будут перечислены вверху списка.


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

Сборка партий

Перед тем, как отправиться в сушильную печь, электроды должны быть собраны в партии. Давайте смоделируем этот процесс.

Добавьте место хранения партии

  1. Дважды щелкните по элементу Прямоугольный узел в палитре Разметка пространства, чтобы переключиться в режим рисования. Иконка элемента сменится иконкой . Щелкните по графической диаграмме агента  Main возле конечной точки конвейера, чтобы разместить начальную точку (угол) прямоугольного узла, и двигайте мышь до тех пор, пока узел не станет нужной вам формы. Снова щелкните по графическому редактору, чтобы завершить рисование. В этом узле партии электродов будут ожидать отправки в сушильную камеру.
  2. В свойствах узла укажите следующее:

    a. Имя: platesBuffer
    b. Видимость: no
    c. Расположение внутри: Упорядоченное

  3. Распахните секцию свойств Специфические и выберите Отображать в: Только в 2D.


Добавьте блок batch в диаграмму процесса
  1. Перетащите блок sink вправо, чтобы освободить место в диаграмме процесса для нового блока.
  2. Перетащите блок  Batch из Библиотеки моделирования процессов и поместите его в диаграмму процесса перед блоком sink. Соединение между блоками установится автоматически.
  3. В свойствах блока batch укажите следующее:

    a. Размер партии: 100. Блок будет накапливать по 100 агентов типа  Electrode, а потом выпускать их в виде одной партии.
    b. Место агентов: platesBuffer.
    c. Место новой партии: Узел сети/ГИС.
    d. Узел: platesBuffer.


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

  5. Задайте Имя: PlatesBatch.

  6. В диалоговом окне Создание агента на этапе Шаг 2. Анимация агента оставьте выбранной опцию 3D, распахните секцию Склады и контейнерные терминалы в списке и выберите элемент Поддон. Щелкните по кнопке Готово.


  7. В свойствах агента PlatesBatch укажите:

    a. Длина: 1.2 м
    b. Ширина: 1.2 м

  8. Выберите элемент Масштаб, расположенный на графической диаграмме агента PlatesBatch.
  9. Укажите Длина линейки соответствует: 1 м.


  10. Перетащите элемент Прямоугольник с палитры Презентация на графическую диаграмму агента PlatesBatch. С его помощью мы анимируем уже готовую партию электродов на поддоне.
  11. В свойствах прямоугольника укажите следующее:

    a. Цвет заливки: peru,
    b. Ширина: 100
    c. Высота: 100
    d. Z-Высота: 30

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


  13. Вернитесь в графический редактор агента Main.
  14. Откройте свойства блока batch и выберите PlatesBatch из выпадающего списка в параметре Новая партия.


  15. Запустите модель снова и посмотрите, как электроды проходят через пастонамазочную машину, меняют цвет и собираются в партии, прежде чем исчезнуть.

Добавление 3D анимации

Мы закончили создавать логическую часть первого этапа. Пора заняться 3D анимацией нашей модели!

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

Добавить 3D окно

  1. Перетащите элемент  3D Окно из секции 3D палитры Презентация на графический редактор агента Main.
  2. Появится серая область. Разместите ее там, где вы хотите видеть 3D анимацию во время запуска модели:

Навигация в 3D анимации

Теперь можно запустить модель и увидеть простую 3D анимацию.

  1. Когда вы добавляете 3D окно, AnyLogic создает область просмотра, где вы можете с легкостью управлять 3D просмотром в ходе выполнения модели. Чтобы переключиться в 3D обзор во время выполнения модели, откройте панель разработчика, щелкнув по элементу управления Панель разработчика в правом углу панели управления. В панели разработчика раскройте список  выбрать область и показать и выберите опцию [window3d].

  2. Управляйте 3D сценой с помощью следующих команд:

    Чтобы

    Используйте мышь следующим образом

    Передвинуть сцену

    1.  Зажмите левую клавишу мыши в области просмотра 3D и не отпускайте.
    2.  Двигайте курсор мыши в нужном направлении.

    Повернуть сцену

    1.  нажмите клавишу Alt (Mac ОС: Option) и не отпускайте.
    2.  Щелкните по области просмотра 3D, не отпуская клавишу Alt, зажмите левую клавишу мыши.
    3.  Двигайте курсор мыши в нужном направлении вращения.

    Приблизить/удалить сцену

    1.  Прокручивайте колесо мыши в окне 3D по направлению к себе, чтобы приблизить сцену, и от себя - чтобы удалить.

Если вы запустите модель сейчас, то увидите, что конвейер, электроды и партии электродов анимированы в 3D, а пастонамазочная станция и стены отсутствуют. Давайте это исправим!

Добавить пастонамазочную машину

  1. Выберите станцию обработки pastingMachine и в ее свойствах задайте Видимость: нет. Таким образом анимация станции по умолчанию не будет отображаться во время выполнения модели и не помешает 3D анимации.
  2. Перейдите в палитру 3D объекты.
  3. Перетащите 3D объект Пастонамазочная машина из секции Производство палитры на графический редактор агента Main и разместите его поверх станции pastingMachine.
  4. Появится диалоговое окно Автомасштабирование 3D объекта.

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

  5. В диалоговом окне щелкните кнопку Да.


Нарисовать стены


  1. Дважды щелкните мышью по элементу Стена в секции Пешеходы палитры Разметка пространства, чтобы перейти в режим рисования.
  2. Щелкните в точке, где должен начаться сегмент стены. Вторым щелчком обозначьте, где будет находиться угол. Дважды щелкните по графическому редактору, чтобы разместить конечную точку сегмента стены.

    В нашем плане есть несколько стен одинакового размера. Чтобы не рисовать их все снова и снова, воспользуйтесь копированием. Нарисуйте одну стену, а потом перетащите ее на новое место, зажав клавишу Ctrl на клавиатуре. Повторите это действие столько раз, сколько вам нужно будет сделать копий.

    Чтобы отрегулировать расположение стены, выберите ее и используйте сочетание клавиш Shift+стрелка.

  3. Используйте элемент Прямоугольная стена, чтобы нарисовать сплошную область. Принципы рисования у данного элемента те же, что и у элемента разметки пространства Прямоугольный узел.
  4. Зажмите клавишу Ctrl и выделите все нарисованные стены одну за другой. В панели свойств отобразится Выбрано n элемента(ов).
  5. В секции Внешний вид укажите Цвет: серый.
  6. В секции Местоположение и размер укажите Z-Высота: 20.


  7. Запустите модель и полюбуйтесь 3D анимацией!

Обратите внимание, что есть несколько контрольных моделей, отображающих все ключевые этапы создания. Изучайте их, если у вас возникают какие-либо сложности в процессе создания модели и появляется необходимость сравнить свою модель с контрольной. Ниже расположена ссылка, шелкнув по которой вы откроете модель, соответствующую этому этапу разработки.

Контрольная модель: Lead Acid Battery Production - Phase 1


          Учебное пособие: Производство кислотно-свинцовых аккумуляторов

          Фаза 2. Моделирование транспортеров с произвольным режимом навигации