Чтобы установить живое информационное соединение между моделью и виртуальным миром, создайте ассоциации между количествами объекта динамической модели и соответствующими свойствами объектов виртуального мира. Например, создайте связи со свойствами объектов виртуального мира, такими как положение и вращения.
Несмотря на то, что Simscape™ Multibody™ и Simulink® общая платформа для моделирования механических систем, также можно использовать продукт Simulink 3D Animation™ для визуализации моделей, реализованных в MATLAB®.
Вы сопоставляете сигналы модели Simulink к свойствам объектов виртуального мира через блок VR Sink из библиотеки блоков Simulink 3D Animation, vrlib
.
Сопоставлять Сигнал Simulink к свойству виртуального объекта:
От vrlib
библиотека, вставьте блок VR Sink в свою модель Simulink.
Чтобы задать виртуальный мир, используйте диалоговое окно параметров блоков VR Sink. Введите имя виртуального мира 3D файл в Source file или нажмите Browse, чтобы выбрать файл в интерактивном режиме. Чтобы загрузить выбранную сцену виртуальной реальности, нажмите Apply.
Для сглаженной визуализации перемещения можно изменить блок Sample time. Например, чтобы обновить виртуальный мир 25 раз на вторую симуляцию, установите Sample time на 0.04
. Будьте осторожны при использовании наследованного шага расчета для блока VR Sink. В зависимости от решателя используемый, использующий наследованный шаг расчета может привести к неравноотстоящему (во времени симуляции) обновление виртуального мира. Неравноотстоящее обновление производит ложное впечатление системной динамики человеку, просматривающему виртуальный мир.
В Virtual World Tree расширьте основной объект Transform
ветвь. В иерархии объектов сцены найдите все части, которыми вы хотите управлять от Simulink согласно их именам, как подано Добавляют Имена DEF. Названный Transform
узлы представляют каждую часть. Установите флажок рядом с вращением и полями положения Transform
узел. Можно выбрать другие свойства объектов виртуального мира, такие как цвет, но вращения и положения - те, которыми наиболее часто управляют.
Нажмите OK. Для каждого выбранного поля блок VR Sink создает входной порт. Увеличьте размер блока VR Sink как соответствующий, чтобы вместить количество входных портов.
После того, как вы сопоставите блок VR Sink с виртуальным миром, можно дважды кликнуть его, чтобы открыть средство просмотра Simulink 3D Animation. Чтобы получить доступ к параметрам блоков, в средстве просмотра, выбирают Simulation> Block Properties.
Входные параметры VR Sink берут сигналы типа, соответствующего их представлению виртуального мира. Входные параметры положения имеют тип SFVec3f
, который является положением, представленным в [x y z]
координаты. Входные параметры вращения имеют тип SFRotation
, четырехэлементное вращение определения вектора как [axis angle]
, использование системы координат описало в Используемой Системе координат, где угловое значение исчисляется в радианах.
Совпадайте с системой координат, используемой моделью Simulink к тому из виртуального мира. Если эти две системы координат не идентичны, преобразовывают ось.
Обычно, положения объекта доступны в форме, требуемой виртуальным миром (Декартовы координаты). Часто, объектные вращения заданы с помощью матричного представления вращения. Чтобы преобразовать такие вращения в формат VRML, используйте блок Rotation Matrix to VRML Rotation.
Положения объекта и вращения обработаны по-другому в зависимости от иерархии виртуального мира:
Чтобы задать все части в модели Simulink в глобальных координатах, когда виртуальный мир имеет плоскую структуру независимых объектов, используют эти положения и вращения.
Положения объекта | Отправьте в VR Sink все положения в глобальных координатах. |
Объектные вращения | Отправьте в VR Sink все вращения в глобальных координатах с центром вращения, заданного как источник системы координат. Если центр по умолчанию вращения Transform объектами является [0 0 0] , вы не должны задавать центр каждой части в виртуальном мире 3D файл. |
Когда все части в модели Simulink следуют за иерархическими отношениями, и виртуальный мир имеет вложенную структуру, используйте эти положения и вращения.
Положения объекта | Отправьте в VR Sink все положения в локальных координатах относительно их родительских элементов или предшественников в иерархии объектов. Например, отправьте положение инструмента робота относительно руки робота. |
Объектные вращения | Отправьте в VR Sink все вращения в локальных координатах относительно их родительских элементов или предшественников в иерархии объектов. Например, отправьте вращение инструмента робота относительно руки робота. Совпадайте с положениями соединений между объектами визуально путем совпадения центров вращения в виртуальном мире и в модели Simulink. Совпадите центр вращения потому что, когда соединения между частями не будут расположены в источник ( Задавать центр вращения, отличающегося от значения по умолчанию, |
В иерархической структуре сцены, когда части соединяются путем вращения соединений, легко задать относительные вращения между частями. Объединенная ось непосредственно задает ось вращения виртуального мира, таким образом, можно создать [axis angle]
четырехэлементный вектор вращения.
Модель Simulink начальные условия должна соответствовать начальным положениям объекта и вращениям, заданным в виртуальном мире. В противном случае объект, которым управляют от Simulink, спрыгивает с положения, заданного в файле VRML к позиции, продиктованной Simulink для симуляции. Чтобы компенсировать это смещение, используйте один из этих подходов:
В виртуальном мире 3D файл задайте другой уровень вложенного Transform
вокруг управляемого объекта.
В режиме Simulink добавьте объектное исходное положение в вычисления модели прежде, чем отправить с блоком VR Sink.
Выровняйте начальные условия модели Simulink с положениями объекта виртуального мира, Поддержите правильное положение объекта относительно окружающей сцены. Можно отрегулировать положение среды объекта. Например, переместите дорожное положение так, чтобы автомобиль в положении [0 0 0]
остается на дороге, без снижения колес или плавания выше дороги.
Блок VR Sink принимает только входные параметры, которые задают полностью определенные значения полей. Динамические модели, которые описывают поведение системы только в одной размерности все еще, требуют полных 3D положений для всех управляемых объектов для их визуализации виртуальной реальности.
Чтобы упростить моделирование в таких случаях, можно использовать VR Placeholder и блоки VR Expander библиотеки Simulink 3D Animation.
Блок VR Placeholder отсылает специальное значение, которое интерпретировано как незаданное блоком VR Sink. Когда это значение заполнителя появляется на входе VR Sink, когда одно значение или как векторный элемент, соответствующее значение в виртуальном мире остается неизменным.
Блок VR Signal Expander создает вектор из предопределенной длины, с помощью некоторых значений от входных портов и заполняя остальных значениями сигналов заполнителя.
Чтобы управлять положением виртуального объекта в одномерной динамической модели, используйте блок VR Signal Expander с управляемой размерностью как ее вход. Для его выхода используйте трехкомпонентный вектор в блоке VR Sink. Остающиеся векторные элементы заполнены сигналами заполнителя.
Использование блока VR Signal Expander является также возможностью при определении вращений. Когда ось вращения задана в виртуальном мире 3D файл, можно отправить в блок VR Sink значение вращения виртуального мира. Используйте значение, состоящее из трех сигналов заполнителя и вычисленного угла. Это значение вращения формирует допустимый четырехэлементный [axis angle]
вектор.
Можно использовать продукт Simulink 3D Animation, чтобы просмотреть поведение модели, созданной с программным обеспечением Simscape Multibody.
Создайте модель машины в интерфейсе Simulink с помощью блоков Simscape Multibody.
Создайте подробное визуальное представление своей машины в виртуальном мире.
Соедините виртуальный мир с датчиком тела Simscape Multibody выходные параметры.
Просмотрите поведение тел в средстве просмотра виртуального мира.
Можно использовать программное обеспечение Simscape Multibody для 3D визуализации с помощью продукта Simulink 3D Animation. В дополнение к функциям, что предложения продукта Simscape Multibody по моделированию механических блоков, следующие функции упрощают визуализацию моделей Simscape Multibody в виртуальной реальности:
Simscape Multibody и системы координат виртуального мира идентичны.
В программном обеспечении Simscape Multibody можно работать и с координатами глобального и с локального объекта. Эта гибкость дает возможность адаптировать модель к структуре виртуального мира, экспортируемого от Инструмента CAD.
Продукт Simscape Multibody также предлагает удобный способ импортировать проекты блока CAD в машины Simscape Multibody через интерфейс Simscape Multibody Link. В качестве альтернативы, когда вы экспортируете блок CAD в формат виртуального мира, можно добавить визуализацию виртуальной реальности в такие блоки.
Программное обеспечение Simulink 3D Animation включает следующие функции для работы с файлами Simscape Multibody: vrcadcleanup
, vrphysmod
, и stl2vrml
.
В зависимости от иерархии виртуального мира можно использовать один из двух подходов, чтобы помочь визуализировать машины Simscape Multibody:
Когда виртуальный мир имеет плоскую структуру независимых объектов, можно получить положения и вращения частей машины с помощью блоков Body Sensor. Соедините блок Body Sensor, чтобы адаптировать системы координат, присоединенные к телам. Задайте положения и вращения с помощью глобальных координат. Обычно, можно соединить датчик с системой координат тела с источником в [0 0 0]
и с начальной матрицей вращения, заданной как единичная матрица, [1 0 0; 0 1 0, 0 0 1]
, в глобальных координатах.
Когда виртуальный мир имеет иерархическую структуру вложенных объектов, можно получить положения тела и вращения. Используйте блок Body Sensor с его выходным набором, чтобы использовать координаты органа местного самоуправления. В особых случаях, такой как тогда, когда два тела соединяются через автоматически возобновляемое соединение, можно получить угол между объектами с помощью блока Joint Sensor.
Чтобы помочь вам взаимодействовать с виртуальными мирами, продукт Simulink 3D Animation предлагает набор функций MATLAB и создает упомянутый коллективно как его “интерфейс MATLAB”. Обстоятельства, когда эта функциональность MATLAB подходит для использования с основанными на CAD проектами, включают:
Используя индивидуально настраиваемые графический интерфейсы пользователя, чтобы визуализировать статические объекты и их отношения в виртуальной среде, такой как в интерактивных инструкциях по блоку машины.
Визуализация 3D информации на основе независимого количества (не обязательно время).
Используя функции интерфейса MATLAB в коллбэках модели Simulink.
Визуализация систем, динамические модели которых доступны как код MATLAB.
Визуализирование систем, где крупный объект изменяется, такие как деформации, происходит. В этом случае отправьте динамически измеренные данные матричного типа от динамических моделей до виртуальных миров, которые не являются возможным использованием только Сигналы Simulink.
Для получения информации об установке свойств объектов с помощью интерфейса MATLAB смотрите, Взаимодействуют с Мирами виртуальной реальности.