exponenta event banner

Подключение виртуальных миров и моделей

После создания виртуального мира и модели Simulink ® для взаимодействия виртуального мира с динамическим моделированием системы соедините модель и виртуальный мир с помощью блоков Simulink 3D Animation™.

При моделировании модели Simulink генерируются данные сигналов для динамической системы. Чтобы вывести данные из модели для управления и анимации виртуального мира, используйте блок VR Sink.

Вывод данных моделирования в виртуальный мир

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

Совет

Другие примеры использования блока VR Sink см. в разделе Модель магнитного левитации и морфинг геометрии.

  1. В окне команд MATLAB ® введите

    vrtut2
    

    Модель Simulink открывается без блока Simulink 3D Animation, который соединяет модель с виртуальным миром.

  2. Смоделировать модель, щелкнув Выполнить (Run) в разделе Смоделировать (Simulate) вкладки Моделирование (Simulation) на панели инструментов Simulink.

    Наблюдайте за результатами моделирования в окнах области действия.

  3. Справа от модели щелкните левой кнопкой мыши и введите VR Sink. В диалоговом окне выберите блок VR Sink.

  4. Выберите виртуальный мир для визуализации моделирования. Дважды щелкните на блоке VR Sink. Нажмите кнопку Обзор и выберите vrtkoff.wrl.

  5. Связать виртуальный мир с моделью. В текстовом поле «Исходный файл» нажмите кнопку «Обзор». Откроется диалоговое окно Выбрать мир (Select World). Найти папку matlabroot\toolbox\sl3d\sl3ddemos. Выберите файл vrtkoff.wrl и нажмите кнопку ОК.

  6. В текстовом поле Описание (Description) проверьте краткое описание модели. Это описание появляется в списке доступных миров, обслуживаемых сервером Simulink 3D Animation.

  7. Выберите параметр «Открыть просмотр автоматически» и нажмите кнопку «Применить». В диалоговом окне VR Sink отображается дерево узлов виртуальной сцены, показывающее структуру связанного виртуального мира.

  8. Разверните окно Plane (Transform) узел.

    Список характеристик плоскости можно получить из интерфейса Simulink. Эта модель вычисляет положение и шаг плоскости.

  9. В Plane (Transform) выберите translation и rotation , которые представляют положение и шаг плоскости соответственно. Нажмите кнопку ОК.

    На схеме Simulink блок VR Sink обновляется двумя входами.

    Первый вход: Plane rotation. Определите поворот с помощью четырехэлементного вектора. Первые три числа определяют ось вращения. В этом примере для оси X установлено значение [1 0 0] (см. Pitch Axis of Rotation блок в модели). Шаг плоскости выражается поворотом вокруг оси X. Последнее число - угол поворота вокруг оси X в радианах. Поворот определяется ориентацией объекта в пространстве относительно его родительского узла.

  10. В модели Simulink подключите линию к блоку Scope с меткой Display Pitch в Plane rotation вход.

    Второй вход - Plane translation. Этот ввод описывает положение плоскости в виртуальном мире. Это положение состоит из трех координат, x, y, z. Связанный вектор должен иметь три значения. В этом примере взлётно-посадочная полоса находится в плоскости x-z (с использованием блока VR Signal Expander). Ось Y определяет высоту плоскости.

  11. В модели Simulink подключите линию к блоку Scope с меткой Display Position в Plane translation вход.

    Удалите блоки области. Модель выглядит так же, как показано на рисунке.

  12. Дважды щелкните на блоке VR Sink. Откроется окно просмотра, содержащее виртуальный мир плоскости.

    Совет

    При следующем открытии модели автоматически открывается связанная виртуальная сцена. Такое поведение происходит, даже если блок Simulink 3D Animation, связанный с виртуальной сценой, находится в подсистеме модели.

  13. Запустите моделирование. В окне «Simulink 3D Animation Viewer» в меню «Моделирование» выберите «Выполнить».

    Самолет, двигаясь направо налево, взлетает.

Ввод данных виртуального мира в модель

Блок VR Source можно использовать для обеспечения интерактивности между виртуальным миром и моделированием модели Simulink. Блок VR Source регистрирует взаимодействие пользователя с виртуальным миром и передает эти данные в модель, чтобы повлиять на моделирование модели. Блок VR Source считывает значения из полей виртуального мира, указанных в диалоговом окне блока, и вводит их значения в модель. Используя блок таким образом, можно:

  • Используйте данные датчиков из виртуального мира для управления моделированием.

  • Обеспечение взаимодействия между навигацией пользователя и взаимодействием в виртуальном мире и моделированием модели.

  • Чтобы моделирование реагировало на события виртуального мира, такие как отметки времени или выходные данные сценариев.

  • Для управления моделированием используется статическая информация из виртуального мира, например размер окна.

Например, можно определить уставки в виртуальном мире, чтобы пользователь мог указать местоположение объекта виртуального мира в интерактивном режиме. Затем моделирование реагирует на измененное местоположение объекта. Блок VR Source может считывать события модели из виртуального мира, такие как отметки времени или выходные данные из сценариев. Блок VR Source также может считывать в модель статическую информацию о виртуальном мире (например, размер поля, определенного в файле 3D виртуального мира). Примеры моделей, использующих блок источника VR, см. в разделе Магнитная модель левитации и виртуальная панель управления.

Чтобы использовать глобальные координаты для объекта виртуального мира, включите Transform узел в этом объекте. Откройте второе окно просмотра, дважды щелкнув значок VR Source блок. Во втором окне просмотра (которое может перекрывать первое окно) выберите «Моделирование» > «Параметры блока». Для узла «Преобразовать» объекта выберите в ветви «Расширения» одно или оба из этих расширений Simulink 3D Animation для преобразования значений поворота и перемещения в глобальные координаты: rotation_abs и translation_abs.

См. пример «Перемещение нагрузки манипулятором с использованием глобальных координат». Дополнительные сведения об использовании блока VR Source и других подходов для обеспечения интерактивности в модели см. в разделе Использование датчиков.

Изменение связанного виртуального мира

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

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

  1. Дважды щелкните блок VR Sink в модели. Откроется окно просмотра.

  2. Откройте диалоговое окно «Параметры блока» блока «VR-приемник», выбрав «Моделирование» > «Параметры блока».

  3. В текстовом поле «Исходный файл» нажмите кнопку «Обзор». Найти папку matlabroot\toolbox\sl3d\sl3ddemos. Выберите файл vrtkoff2.wrlи нажмите кнопку OK. В диалоговом окне VR Sink нажмите кнопку Apply.

    Справа появляется дерево виртуальной сцены, связывающее с моделью другой виртуальный мир.

  4. Разверните окно Plane (Transform) узел.

    Plane Transform дерево расширяется. Теперь из интерфейса Simulink можно увидеть, какие характеристики плоскости можно проехать. Эта модель вычисляет положение.

  5. В Plane Transform выберите translation флажок «Поле». Очистить rotation флажок «Поле». Нажмите кнопку ОК.

    Блок VR Sink обновляется и изменяется только на один вход, Plane translation. Блок VR Sink готов к использованию с новыми определенными параметрами.

  6. Убедитесь, что правильный выход подключен к блоку VR Sink. Подключите выход расширителя сигналов VR к одному входу.

  7. В окне «Simulink 3D Animation Viewer» в меню «Моделирование» снова запустите моделирование и просмотрите результаты моделирования.

См. также

Функции

Блоки

Связанные темы