exponenta event banner

Отправка и получение данных сцены изменения двухполосного движения

В этом примере показано, как использовать блоки Simulation 3D Message Set и Simulation 3D Message Get для взаимодействия со средой визуализации 3D при выполнении маневра смены двухполосного движения. В частности, используется следующее:

  • Simulation 3D Message Get block, чтобы узнать, сколько конусов ударяет транспортное средство во время маневра.

  • Блок Simulation 3D Message Set для управления светофором.

Минимальное количество оборудования, необходимое для выполнения примера, см. в разделе Требования и ограничения модуля визуализации 3D.

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

Включив 3D среду визуализации, выполните двухполосный маневр изменения, который ударяет по конусам.

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

  2. Включите среду визуализации 3D. В подсистеме Визуализации откройте 3D маску Блока двигателя и выберите, Позволил. Примените изменения и сохраните модель.

    Либо введите этот код в командной строке MATLAB ®.

     См. Код, разрешающий 3D среду

  3. На верхнем уровне модели задайте параметры блока «Генератор привязки изменения полосы движения», чтобы транспортное средство не завершило маневр успешно. Задайте эти параметры блока, примените изменения и сохраните модель.

    • Время начала маневра до 5.

    • Уставка скорости продольного входа в 36.

    Либо введите этот код в командной строке MATLAB.

     См. Код, устанавливающий параметры

  4. Проведите маневр 30 секунд. Во время моделирования в окне AutoVrtlEnv можно увидеть, как транспортное средство ударяется о конусы.

     См. Код, выполняющий моделирование

Использовать моделирование 3D сообщение Получить блок для извлечения данных конуса

Используйте блок Simulation 3D Message Get, чтобы узнать, сколько конусов ударяет транспортное средство во время маневра. По умолчанию в маневре используется сцена изменения двухполосности.

  1. Перейдите к подсистеме Visualization > 3D Engine. Щелкните правой кнопкой мыши по 3D Блоку двигателя и выберите Маску> Взгляд Под Маской. В подсистему Visualization > 3D Engine > 3D Engine вставьте следующие блоки:

    • Сообщение о моделировании 3D Получить

    • Показ

    • Математическая функция

  2. Установите параметры блока Simulation 3D Message Get так, чтобы блок извлекал данные конуса из сцены изменения двойной полосы. Задайте эти параметры блока, примените изменения и сохраните модель.

    • Имя сигнала, SigName to NumOfConesHit

    • Тип данных, тип данных в boolean

    • Размер сообщения, MsgSize to [2 15]

    • Время выборки для -1

    Либо введите этот код в командной строке MATLAB.

     См. Код, устанавливающий параметры

  3. Задайте для параметра размерности вывода блока математической функции значение transpose. При выполнении моделирования блок Математическая функция (Math Function) выводит [15 2] массив.

    Либо введите этот код в командной строке MATLAB.

     См. Код, устанавливающий параметры

  4. Подключите блоки Моделирование (Simulation) 3D Получение сообщений (Message Get), Математическая функция (Math Function) и Отображение (Display), как показано на рисунке. Подтвердите параметры блока. Сохраните модель.

  5. Убедитесь, что блок Simulation 3D Scene Configuration выполняется перед блоком Simulation 3D Message Get. Таким образом, среда визуализации Unreal Engine ® 3D подготавливает данные до их получения блоком Simulation 3D Message Get. Чтобы проверить порядок выполнения блока, щелкните его правой кнопкой мыши и выберите «Свойства». На вкладке Общие подтвердите следующие параметры приоритета:

    • Моделирование 3D Конфигурация сцены - 0

    • Симуляция 3D Сообщение Получить - 1

    Дополнительные сведения о порядке выполнения см. в разделе Управление и просмотр порядка выполнения.

  6. Проведи маневр. Во время моделирования блок отображения обновляется с помощью ReadMsg логическое значение 1 при наезде транспортного средства на соответствующий конус.

    Результаты показывают, что транспортное средство сбивает SM_Cone20 и SM_Cone30 во время маневра.

    В этой таблице представлено имя конуса сцены «Изменение двойной полосы движения», соответствующее ReadMsg элемент массива.

    Моделирование 3D сообщение Получить блок ReadMsg Стоимость

    Нереальное имя конуса редактора ®

    Моделирование 3D сообщение Получить элемент массива блоков

    Нереальное имя конуса редактора

    ReadMsg(1,1)SM_Cone5ReadMsg(2,1)SM_Cone10
    ReadMsg(1,2)SM_Cone4ReadMsg(2,2)SM_Cone09
    ReadMsg(1,3)SM_Cone3ReadMsg(2,3)SM_Cone08
    ReadMsg(1,4)SM_Cone2ReadMsg(2,4)SM_Cone07
    ReadMsg(1,5)SM_Cone01ReadMsg(2,5)SM_Cone06
    ReadMsg(1,6)SM_Cone15ReadMsg(2,6)SM_Cone20
    ReadMsg(1,7)SM_Cone14ReadMsg(2,7)SM_Cone19
    ReadMsg(1,8)SM_Cone13ReadMsg(2,8)SM_Cone18
    ReadMsg(1,9)SM_Cone12ReadMsg(2,9)SM_Cone17
    ReadMsg(1,10)SM_Cone11ReadMsg(2,10)SM_Cone16
    ReadMsg(1,11)SM_Cone25ReadMsg(2,11)SM_Cone30
    ReadMsg(1,12)SM_Cone24ReadMsg(2,12)SM_Cone29
    ReadMsg(1,13)SM_Cone23ReadMsg(2,13)SM_Cone28
    ReadMsg(1,14)SM_Cone22ReadMsg(2,14)SM_Cone27
    ReadMsg(1,15)SM_Cone21ReadMsg(2,15)SM_Cone26

Использовать моделирование 3D блок набора сообщений для управления светофором

  1. Перейдите к подсистеме Visualization > 3D Engine. Щелкните правой кнопкой мыши по 3D Блоку двигателя и выберите Маску> Взгляд Под Маской. В подсистему Visualization > 3D Engine > 3D Engine вставьте следующие блоки:

    • Набор сообщений 3D моделирования

    • Повторяющаяся лестница последовательности

  2. Установите параметры блока Simulation 3D Message Set таким образом, чтобы блок передавал данные сигнала трафика в сцену изменения двухполосного режима. Задайте эти параметры блока, примените изменения и сохраните модель.

    • Имя сигнала, SigName to TrafficLight1

    • Время выборки для -1

    В этой таблице представлен цвет сигнала светофора сцены, соответствующий WriteMsg значение в сцене «Изменение двойной полосы движения».

    Блок набора сообщений Simulation 3D WriteMsg Стоимость

    TrafficLight1 Цвет

    0Red
    1Yellow
    2Green

    Либо введите этот код в командной строке MATLAB.

     См. Код, устанавливающий параметры

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

    • Вектор выходных значений: к [0 0 0 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2].'

    • Время выборки для 1

    • Тип выходных данных для int32

    Либо введите этот код в командной строке MATLAB. Примените изменения блока и сохраните модель.

     См. Код, устанавливающий параметры

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

  5. Убедитесь, что блок Simulation 3D Message Set выполняется перед блоком Simulation 3D Scene Configuration. Таким образом, Simulation 3D Message Set подготавливает данные сигнала до того, как среда визуализации Unreal Engine 3D получит их. Чтобы проверить порядок выполнения блока, щелкните его правой кнопкой мыши и выберите «Свойства». На вкладке Общие подтвердите следующие параметры приоритета:

    • Моделирование 3D Конфигурация сцены - 0

    • Набор сообщений Simulation 3D - -1

    Дополнительные сведения о порядке выполнения см. в разделе Управление и просмотр порядка выполнения.

  6. Проведи маневр. Во время моделирования в окне AutoVrtlEnv можно увидеть TrafficLight1 цвет изменяется с красного на желтый на зеленый.

    Временной диапазон (диапазоны)

    WriteMsg Стоимость

    TrafficLight1 Цвет

    0–3

    0Red

    3–5

    1Yellow

    5–30

    2Green

См. также

| | | |

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

Подробнее