Соедините виртуальные миры и модели

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

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

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

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

Совет

Другие примеры использования блока VR Sink см. в Magnetic Levitation Model и Geometry Morphing.

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

    vrtut2
    

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

  2. Симулируйте модель, нажав Run в Simulate разделе вкладки Simulation на панели инструментов Simulink.

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

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

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

  5. Ассоциируйте виртуальный мир с моделью. В Source File текстовом поле нажмите кнопку Browse. Откроется диалоговое окно Выбрать мир (Select World). Найдите папку matlabroot\toolbox\sl3d\sl3ddemos. Выберите файл vrtkoff.wrl и нажмите OK.

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

  7. Выберите параметр Open Viewer automatically и нажмите Apply. В диалоговом окне VR Sink отображается дерево узла виртуальной сцены, показывающее структуру связанного виртуального мира.

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

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

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

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

    Первый вход Plane rotation. Задайте поворот с помощью вектора с четырьмя элементами. Первые три числа определяют ось вращения. В этом примере это [1 0 0] для оси X (см. 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 вход.

    Удалите блоки Scope. Ваша модель выглядит аналогично рисунку, показанному на рисунке.

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

    Совет

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

  13. Запустите симуляцию. В Simulink 3D Средство Просмотра из меню Simulation нажмите Run.

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

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

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

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

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

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

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

Например, можно задать уставки в виртуальном мире, чтобы пользователь мог задать местоположение объекта виртуального мира в интерактивном режиме. Симуляция затем реагирует на измененное местоположение объекта. Блок VR Source может считывать в модель события из виртуального мира, такие как временные такты или выходы скриптов. Блок VR Source может также считывать в модель статическую информацию о виртуальном мире (для примера, размер коробки, заданный в файле 3D виртуального мира). Для примеров моделей, которые используют блок VR Source, см. Magnetic Levitation Model и Virtual Control Panel.

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

См. пример «Манипулятор, перемещающий нагрузку с использованием глобальных координат». Для получения дополнительной информации об использовании исходного блока VR и других подходов для обеспечения интерактивности в модели, смотрите Использование датчиков.

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

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

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

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

  2. Откройте диалоговое окно Параметров блоков блока VR Sink путем выбора Simulation > Block Parameters.

  3. В текстовом поле Source File нажмите кнопку Browse. Найдите папку matlabroot\toolbox\sl3d\sl3ddemos. Выберите файл vrtkoff2.wrl, и нажмите OK. В диалоговом окне VR Sink нажмите Apply.

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

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

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

  5. В Plane Transform дерево, выберите translation флажок поля. Очистить rotation флажок поля. Нажмите OK.

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

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

  7. В Simulink 3D Средство Просмотра из меню Simulation еще раз запустите симуляцию и наблюдайте симуляцию.

См. также

Функции

Блоки

Похожие темы