В этом примере показано, как добавить 3D визуализацию в модель Simulink® использование Космической Симуляции 3D библиотечные блоки. Чтобы видеть, что итоговая модель включает 3D визуализацию, откройте SkyHoggSim3DExampleModel.
Откройте модель, используемую для Легкого примера Проекта Самолета, asbSkyHogg
.
Эта модель настраивается для использования визуализации FlightGear в подсистеме Визуализации. В этом примере показано, как заменить ту реализацию с помощью Нереального Engine®.
Откройте подсистему Визуализации и удалите все за исключением In1 и Шины Selector1.
Используйте браузер библиотеки, чтобы перейти к Aerospace Blockset> Анимация> 3D Симуляция.
К модели:
Добавьте Симуляцию блоков 3D Настройка Сцены и Симуляция 3D Самолет.
Добавьте блок Scope и присоедините его к порту Altitude самолета.
Отключите порт Simulation 3D Aircraft WoW.
WoW (Вес на Колесах) порт возвращает логический true, если любой левая или правая основная шина механизма находится на поверхности (i.e. его высота является нулем), или ложь в противном случае. Поскольку этот пример имеет летающий самолет, этот порт не используется.
Дважды кликните, чтобы открыть блок Simulation 3D Aircraft, чтобы настроить значения на Параметрах Самолета, Значения Inital и Высотные вкладки Датчика.
Во вкладке Aircraft Parameters:
Установите параметр Типа на SkyHogg.
Выберите требуемый цвет.
Оставьте имя по умолчанию SimulinkVehicle1
.
Оставьте значение Шага расчета -1
позволить блоку использовать шаг расчета в Симуляции 3D Блок Configuration Сцены.
Начальные условия для входных портов даны во вкладке Initial Values. Если это - авиалайнер, каждый должен быть 12 3 массив. Для Неба Хогг каждый должен быть 11 3 массив, потому что Небо Хогг имеет только одну силовую установку. Элемент конструкции самолета, сопоставленный с каждой строкой для Неба Хогг, следующие.
В данном примере измените Начальное значение перевода в [0 0 -2000; 0 0 0; 0 0 0; 0 0 0; 0 0 0; 0 0 0; 0 0 0; 0 0 0; 0 0 0; 0 0 0; 0 0 0]
и оставьте Начальное значение вращения в zeros( 11, 3 )
.-2000 метров Z значение являются отрицанием начальной высоты (NED).
Высотный датчик является дополнительным и может быть включен и выключен Разрешать высотным флажком датчика на этой вкладке. Датчик работает путем отправки трассировок луча вертикально вниз от корпуса самолета и каждого из его колес. Высота только обнаруживается, если объект поражен лучами, которые имеют предписанную конечную длину. Z возмещают место значений начальная точка каждого луча на данном вертикальном (нисходящем) расстоянии от источника корпуса самолета или центров колеса. Например, если значение смещения Z ввело для Переднего радиуса шины механизма (в метрах), фактический передний радиус шины для выбранной mesh самолета, то возвращенное второе высотное значение является нулем, когда передняя шина механизма самолета находится на тротуаре.
Оставьте настройки по умолчанию на месте на данный момент.
Проверяйте настройку Симуляции 3D Блок Configuration Сцены. Этому нужно установить источник Сцены на Default Scenes
, с Airport
сцена выбрана. Для представления Scene используйте имя, введенное в блоке Simulation 3D Aircraft, который по умолчанию является SimulinkVehicle1
. Шаг расчета 1/60
или подобный прекрасен; используйте меньшее значение для более высокой частоты кадров. Чтобы экспериментировать с погодой, смотрите средства управления на вкладке Weather. Обратите внимание на то, что погода в Нереальном Engine® является в настоящее время только визуальным эффектом неба; нет никаких фактических векторов ветра или сил, например.
Остающийся шаг должен сконфигурировать входные параметры порта Translation и Rotation с блоком Simulation 3D Aircraft. Эти порты ожидают 11 3 вход массивов на каждом временном шаге при использовании Неба Хогг. Смотрите страницу с описанием блока Simulation 3D Aircraft для полного описания. Поскольку движения поверхности управления не обеспечиваются моделью, изменяют только значения BODY. Обнулите все другие значения.
Реконфигурируйте селектор шины, чтобы вывести только Xe
и body
angles
.
Затем создайте подсистему, чтобы принять значения Ксенона, как введено и возвратить массив Перевода, что самолеты блокируют потребности. Соедините вход Xe с блоком Reshape с вектором-строкой (2D) выход. Добавьте блок Constant для остальной части переводов (zeros(10,3)
), и канал оба в другой блок Vector Concatenate. Установите этот блок на Multidimensional array
режим с конкатенацией размерности 1
.
Создайте подобную подсистему для вращения, которое возвращается 11 3 массив вращений для самолета. Используйте Селектор Шины, чтобы получить эти три угла из входа и подать тех в Векторную конкатенацию. Остаток от подсистемы идентичен подсистеме перевода.
Итоговая подсистема Визуализации должна выглядеть так:
Модель готова запуститься.
После нажатия кнопки Run позвольте нескольким секундам для 3D окна визуализации инициализировать.
Необходимо теперь видеть, что самолет пролетает над аэропортом.
Если это симулирует, можно переключиться между полями зрения камеры первым щелчком левой кнопкой в 3D окне, затем с помощью ключей чисел 0 до 9, чтобы выбрать между десятью предварительно сконфигурированными положениями камеры. Для получения дополнительной информации о полях зрения камеры смотрите, что раздел Run Simulation в Настраивает Сцены Используя Simulink и Нереальный Редактор.
Поскольку изменение высоты является настолько небольшим (50 метров), оно затрудняет, чтобы видеть, что высота увеличивается в 3D окне. В иллюстративных целях можно добавить блок Gain, чтобы увеличить перевод Z значения.
Эта сцена не очень реалистична, поскольку пропеллер не поворачивается. Вращение пропеллера не что-то, что вычисляется в модели, но можно выбрать уровень вращения для него. Чтобы вращаться это на уровне 1 500 об/мин, или 157 радианов в секунду, добавляет блок Ramp для крена (phi) угол второй строки массива Вращений. Модифицированное Небо подсистема Вращения Хогга должно выглядеть примерно так.
На первый взгляд высотный Осциллограф датчика, кажется, не работает (возвращающийся -1
значения. Это вызвано тем, что высота больше продолжительности лучей. Откройте маску блока Simulation 3D Aircraft и измените Продолжительность лучей (в метрах) к 2500
. Если вы хотите видеть лучи, выберите Enable, видимый датчик излучает флажок. Запустите симуляцию снова. Высоты выводят в двух осциллографах, подтверждает это, это действительно в предписанном местоположении. Если видимые лучи датчика включены, то они окрашены в красный, поскольку они ударяются о землю. Не изменяя продолжительность луча, лучи окрашены в зеленый (если сделано видимый), потому что они не добираются до земли.
Все эти шаги были завершены для вас в следующей модели в качестве примера.
mdl = "SkyHoggSim3DExampleModel";
open_system(mdl);