Образцовое простое выполнение порядка Используя автономных роботов

Этот пример моделирует склад с автономными роботами для управления порядком. Цель примера состоит в том, чтобы показать, как упростить сложные модели, созданные с Simulink®, Stateflow®, и компонентами SimEvents® и их коммуникацией с помощью сообщений. Различия в Виде на море Между сообщениями Stateflow, Событиями и Данными (Stateflow) для получения дополнительной информации о сообщениях.

Закажите модель выполнения

Прикажите, чтобы модель выполнения имела два главных компонента

  • Компонент Очереди Порядка представляет очередь онлайн-заказа с блоками от библиотеки SimEvents®.

  • Складской компонент представляет доставку элементов порядка автономными роботами. Это использует блоки от Simulink® и библиотек SimEvents® и графика Stateflow®. График требует лицензии Stateflow®.

В этой модели онлайн-заказ для нескольких элементов прибывает в компонент Очереди Порядка. Местоположения упорядоченных элементов передаются с блока Processing Order на автономных роботов в Складском компоненте. Три робота присвоены трем проходам. Робот поднимает элемент со своего местоположения прохода и возвращает его в его начальное местоположение для доставки. Порядок может иметь один, два, или три элемента. Когда все упорядоченные элементы поставляются роботами, порядок завершен, и прибывает новый порядок. Пока порядок не завершен, никакие новые заказы не получены к компоненту Очереди Порядка.

Складской компонент

Склад имеет три прохода. Первый проход содержит элементы одежды, второй проход содержит игрушки, и третий проход содержит электронику. Три робота доставки идентичны, и их движущие силы управляются линейной независимой от времени системой, которой управляет настроенный ПИД-регулятор. Например, блок подсистемы Aisle1 состоит из подсистемы Robot1 и блока Discrete-Event Chart как планировщик.

Подсистема Robot1

Подсистема Robot1 имеет типичный цикл управления с обратной связью с динамикой робота, представленного блоком State-Space и ПИД-регулятором.

Подсистема Robot1 разработана, чтобы отследить ссылочный сигнал от блока In1, который является сигналом out от блока Discrete-Event Chart. Система сравнивает входное значение с выводом от блока State-Space, и различие между сигналами питается блок PID Controller.

Например, если сигнал от блока In1 является константой со значением 10, начинающий с начального состояния 0, вывод системы сходится к 10.

В x - оси и y - ось, Robot1 перемещается можно следующим образом.

  • Robot1 первоначально в x1 и y1 = 0 координат. Для вывоза и доставки элемента это перемещается только в y - ось и ее координата x1 остаются то же самое.

  • Каждый элемент порядка в Aisle1 имеет координату yaisle на y - ось. yaisle становится постоянным входным сигналом ссылки, который будет прослежен подсистемой Robot1.

  • Когда подсистема Robot1 достигает yaisle, она берет элемент порядка и автономно повторно выполняется назад к y1 = 0 местоположений для доставки.

Осциллограф отображает траекторию в качестве примера для подсистемы Robot1, которая получает значение yaisle 10 как постоянный ссылочный вход во времени симуляции 265. Когда расстоянием между местоположением робота и y = 10 является 0.1, ссылочным входным сигналом является 0, и робот возвращается к его начальному местоположению для доставки.

Подсистема Robot2 и подсистема Robot3 имеют идентичную динамику и поведение для доставки элемента в подсистеме Aisle2 и подсистеме Aisle3. Их координатами x является x2 и x3, и они также перемещаются в вертикальный y - ось.

Планировщик

В траектории предыдущего примера Robot1 имеет три состояния. Блок Discrete-Event Chart используется, чтобы запланировать переходы между этими состояниями робота.

  • Робот ожидает в состоянии Wait, пока это не получает координату элемента yaisle. Подсистема Robot1 находится в состоянии Wait, пока временем симуляции не является 265.

  • Переходы робота к состоянию PickUp, когда существует входящее сообщение, несущее значение yaisle элемента к блоку Discrete-Event Chart. Это значение присвоено out, который является выходным сигналом блока Discrete-Event Chart. Сигнал out питается подсистему Robot1 как входной сигнал, In1, который будет прослежен и робот, двигает местоположение элемента yaisle. Переходы подсистемы Robot1 к PickUp утверждают во время 265.

  • Когда робот является модулями 0.1 далеко от yaisle, он берет элемент. Затем утверждают переходы робота к Deliver. Сигнал out становится 0, и робот возвращается назад к y = 0 для доставки. Во времени симуляции 290 подсистема Robot1 является модулем 0.1 далеко от y = 10 и переходы к состоянию Deliver.

  • Когда робот возвращается, и это - модули 0.1 далеко от y = 0, это переходит к состоянию Wait. Приблизительно в 320 подсистема Robot1 поставляет элемент и переходы назад к состоянию Wait.

Закажите подготовку к пакету

  1. Когда робот поставляет свой элемент, элемент отправляется, чтобы сгенерировать пакет порядка. Это поведение представлено блоком Send сообщения, который генерирует сообщение в Элементе из Прохода Функциональный блок Simulink. Затем сгенерированное сообщение вводит блок Entity Queue.

  2. Блок Composite Entity Creator ожидает всех трех элементов от трех блоков Очереди Сущности, чтобы создать составную сущность, которая представляет порядок.

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

  3. Когда все элементы поставляются, порядок завершен, и он прибывает в блок Package Ready.

  4. Запись порядка к блоку Package Ready инициировала блок Simulink Function1, чтобы сгенерировать сообщение и открыть логический элемент для завершения порядка.

  5. Когда порядок отключен, новый порядок прибывает в блок Processing Order, который перезапускает процесс доставки.

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

Закажите компонент очереди

Блок очереди порядка является простой системой массового обслуживания, состоявшей из Генератора Сущности, Очереди Сущности, Сервера Сущности, логического элемента Сущности и блока Entity Terminator. Для получения дополнительной информации о создании простой системы массового обслуживания, смотрите, Управляют Сущностями Используя Действия События.

  1. Блок Entity Generator случайным образом генерирует порядки. Время межгенерации чертится от экспоненциального распределения со средним 100.

  2. Каждая сгенерированная сущность имеет три случайным образом сгенерированных атрибута aisle1, aisle2 и aisle3, которые представляют координаты yaisle элементов в Aisle1, Aisle2 и подсистемах Aisle3.

    entity.Aisle1 = randi([1,30]);
    entity.Aisle2 = randi([1,30]);
    entity.Aisle3 = randi([1,30]);

    Это принято, что элементы расположены вертикально между y = 1 и y = 30.

  3. Прибытие порядка к блоку Entity Server активирует роботов путем передачи координат yaisle элементов. Ввод этого кода MATLAB® в поле Entry action.

    LocateAisle1(entity.Aisle1);
    LocateAisle2(entity.Aisle2);
    LocateAisle3(entity.Aisle3);

    Вызывание функции LocateIsle() передает координату yaisle элемента к соответствующему роботу.

  4. Порядок ожидает в блоке Entity Server, пока блок Entity Gate не открывается.

  5. Когда все элементы поставляются, пакет порядка вводит блок Package Ready, и его запись вызывает блок Simulink Function1 через функциональный ordercomplete(). Блок Simulink Function1 генерирует сообщение, чтобы открыть логический элемент.

  6. Когда логический элемент открывается, порядок отключен, и новый порядок прибывает в блок Entity Server.

Результаты

Осмотрите пропускную способность порядка от Очереди Порядка.

  1. Увеличьте время симуляции до 1000.

  2. Моделируйте модель и заметьте, что осциллограф отображает 7 как общее количество завершенных порядков.

Смотрите также

| | | |

Связанные примеры

Больше о