Этот пример показывает вам, как использовать Simulation 3D Message Set и блоки Simulation 3D Message Get, чтобы связаться с 3D средой визуализации, когда вы запускаете маневр изменения двойного маршрута. А именно, вы используете:
Блок Simulation 3D Message Get, чтобы получить, сколько конусов транспортное средство совершает нападки во время маневра.
Блок Simulation 3D Message Set, чтобы управлять световым индикатором трафика.
Для минимального оборудования, требуемого запускать пример, смотрите 3D Требования Engine Визуализации.
С 3D включенной средой визуализации запустите маневр изменения двойного маршрута, который поражает конусы.
Создайте и откройтесь, рабочая копия двойного маршрута изменяют проект примера готовых узлов.
Включите 3D среду визуализации. В подсистеме Визуализации откройте маску блока 3D Engine и выберите Enabled. Примените изменения и сохраните модель.
В качестве альтернативы в командной строке MATLAB®, введите этот код.
В верхнем уровне модели, устанавливает параметры блоков Lane Change Reference Generator так, чтобы транспортное средство успешно не завершало маневр. Установите эти параметры блоков, примените изменения и сохраните модель.
Maneuver start time к 5
.
Longitudinal entrance velocity setpoint к 40
.
В качестве альтернативы в командной строке MATLAB, введите этот код.
Запустите маневр. Когда симуляция запускается в окне AutoVrtlEnv, вы видите, что транспортное средство врезается в конусы.
Используйте блок Simulation 3D Message Get, чтобы получить, сколько конусов транспортное средство совершает нападки во время маневра. По умолчанию маневр использует сцену изменения двойного маршрута.
Перейдите к Визуализации> 3D Подсистемы двигателей. Щелкните правой кнопкой по блоку 3D Engine и выберите Mask> Look Under Mask. В Визуализации> 3D Engine> 3D Подсистемы двигателей, вставьте эти блоки:
Simulation 3D Message Get
Display
Math Function
Установите параметры блоков Simulation 3D Message Get так, чтобы блок получил конические данные от сцены изменения двойного маршрута. Установите эти параметры блоков, примените изменения и сохраните модель.
Signal name, SigName к NumOfConesHit
Data type, DataType к boolean
Message size, MsgSize к [2 15]
Sample time к -1
В качестве альтернативы в командной строке MATLAB, введите этот код.
Установите блок Math Function параметр Output dimensionality на transpose
. Когда вы запускаете симуляцию, блок Math Function выводит [15 2]
массив.
В качестве альтернативы в командной строке MATLAB, введите этот код.
Соедините Simulation 3D Message Get, Math Function и блоки Display как показано. Подтвердите параметры блоков. Сохраните модель.
Проверьте, что блок Simulation 3D Scene Configuration выполняется перед блоком Simulation 3D Message Get. Тем путем Нереальная среда визуализации Engine® 3D готовит данные, прежде чем блок Simulation 3D Message Get получит его. Чтобы проверять порядок выполнения блока, щелкните правой кнопкой по блокам и выберите Properties. На вкладке General подтвердите эти настройки Priority:
Simulation 3D Scene Configuration — 0
Simulation 3D Message Get — 1
Для получения дополнительной информации о порядке выполнения, смотрите Порядок выполнения Управления и Отображения (Simulink).
Запустите маневр. Когда симуляция запускается, обновления блока отображения с ReadMsg
булево значение 1
когда транспортное средство врезается в соответствующий конус.
Результаты показывают, что транспортное средство врезается в SM_Cone20
, SM_Cone29
, и SM_Cone30
во время маневра.
Эта таблица обеспечивает, Двойной Маршрут Изменяют название конуса сцены, которое соответствует ReadMsg
элемент массива.
Блок Simulation 3D Message Get | Unreal® Editor Cone Name | Элемент блочного массива Simulation 3D Message Get | Нереальное имя конуса редактора |
---|---|---|---|
ReadMsg(1,1) | SM_Cone5 | ReadMsg(2,1) | SM_Cone10 |
ReadMsg(1,2) | SM_Cone4 | ReadMsg(2,2) | SM_Cone09 |
ReadMsg(1,3) | SM_Cone3 | ReadMsg(2,3) | SM_Cone08 |
ReadMsg(1,4) | SM_Cone2 | ReadMsg(2,4) | SM_Cone07 |
ReadMsg(1,5) | SM_Cone01 | ReadMsg(2,5) | SM_Cone06 |
ReadMsg(1,6) | SM_Cone15 | ReadMsg(2,6) | SM_Cone20 |
ReadMsg(1,7) | SM_Cone14 | ReadMsg(2,7) | SM_Cone19 |
ReadMsg(1,8) | SM_Cone13 | ReadMsg(2,8) | SM_Cone18 |
ReadMsg(1,9) | SM_Cone12 | ReadMsg(2,9) | SM_Cone17 |
ReadMsg(1,10) | SM_Cone11 | ReadMsg(2,10) | SM_Cone16 |
ReadMsg(1,11) | SM_Cone25 | ReadMsg(2,11) | SM_Cone30 |
ReadMsg(1,12) | SM_Cone24 | ReadMsg(2,12) | SM_Cone29 |
ReadMsg(1,13) | SM_Cone23 | ReadMsg(2,13) | SM_Cone28 |
ReadMsg(1,14) | SM_Cone22 | ReadMsg(2,14) | SM_Cone27 |
ReadMsg(1,15) | SM_Cone21 | ReadMsg(2,15) | SM_Cone26 |
Перейдите к Визуализации> 3D Подсистемы двигателей. Щелкните правой кнопкой по блоку 3D Engine и выберите Mask> Look Under Mask. В Визуализации> 3D Engine> 3D Подсистемы двигателей, вставьте эти блоки:
Simulation 3D Message Set
Data Type Conversion
Stair Generator
Установите параметры блоков Simulation 3D Message Set так, чтобы блок отправил данные сигнала трафика в сцену изменения двойного маршрута. Установите эти параметры блоков, примените изменения и сохраните модель.
Signal name, SigName к TrafficLight1
Sample time к -1
Эта таблица обеспечивает цвет светового индикатора трафика сцены, который соответствует WriteMsg
значение в Двойной сцене Изменения Маршрута.
Блок Simulation 3D Message Set |
|
---|---|
0
| Red |
1
| Yellow |
2
| Green |
В качестве альтернативы в командной строке MATLAB, введите этот код.
Установите параметры блоков Data Type Conversion преобразовывать данные в int32
. Установите эти параметры блоков, примените изменения и сохраните модель.
Output data type к int32
В качестве альтернативы в командной строке MATLAB, введите этот код.
Установите параметры блоков Stair Generator отправлять команду, которая соответствует красным, желтым, и зеленым сигналам светофора. Установите эти параметры блоков, примените изменения и сохраните модель.
Time к [0,2,3,5,8]
Amplitude к [0,0,1,2,2]
Sample time к 1
В качестве альтернативы в командной строке MATLAB, введите этот код. Примените изменения блока и сохраните модель.
Соедините блоки как показано. Подтвердите параметры блоков и связи сигнала. Сохраните модель.
Проверьте, что блок Simulation 3D Message Set выполняется перед блоком Simulation 3D Scene Configuration. Тем путем Simulation 3D Message Set готовит данные сигнала перед Нереальным Engine, 3D среда визуализации получает его. Чтобы проверять порядок выполнения блока, щелкните правой кнопкой по блокам и выберите Properties. На вкладке General подтвердите эти настройки Priority:
Simulation 3D Scene Configuration — 0
Simulation 3D Message Set — -1
Для получения дополнительной информации о порядке выполнения, смотрите Порядок выполнения Управления и Отображения (Simulink).
Запустите маневр. Когда симуляция запускается в окне AutoVrtlEnv, вы видите TrafficLight1
легкое изменение от красного до желтого к зеленому.
Область (области) значений времени |
|
|
---|---|---|
0–3 | 0
| Red |
3–5 | 1
| Yellow |
5–8 | 2
| Green |
3D Engine | Двойное изменение маршрута | Simulation 3D Message Get | Simulation 3D Message Set | Simulation 3D Scene Configuration