Ссылка на модели Simulink и Simscape Multibody

Чтобы установить живое соединение данных между моделью и виртуальным миром, создайте связи между величинами объекта динамической модели и соответствующими свойствами объекта виртуального мира. Для примера создайте связи со свойствами объектов виртуального мира, такими как положение и повороты.

Хотя Simscape™ Multibody™ и Simulink® являются общей платформой для моделирования механических систем, также можно использовать продукт Simulink 3D Animation™ для визуализации моделей, реализованных в MATLAB®.

Соедините виртуальный мир с моделью Simulink

Вы связываете сигналы модели Simulink с свойствами объекта виртуального мира через блок VR Sink из библиотеки блоков Simulink 3D Animation, vrlib.

Чтобы связать сигнал Simulink со свойством виртуального объекта:

  1. Из vrlib library, вставьте блок VR Sink в модель Simulink.

  2. Чтобы определить виртуальный мир, используйте диалоговое окно параметров VR Sink блоков. Введите имя файла 3D виртуального мира в Source file или нажатие кнопки Browse, чтобы выбрать файл в интерактивном режиме. Чтобы загрузить выбранную сцену виртуальной реальности, нажмите Apply.

  3. Для сглаживания визуализации движения можно изменить Sample time блока. Например, чтобы обновить виртуальный мир 25 раз в секунду симуляции, установите Sample time на 0.04. Будьте осторожны при использовании унаследованного шага расчета для блока VR Sink. В зависимости от используемого решателя, использование унаследованного шага расчета может привести к неэквидистантному (во времени симуляции) обновлению виртуального мира. Неэквидистантное обновление создает ложное впечатление о динамике системы для человека, просматривающего виртуальный мир.

  4. В Virtual World Tree разверните основной объект Transform ветвь. В иерархии объектов сцены найдите все детали, которыми вы хотите управлять из Simulink, в соответствии с их именами, как указано в Add DEF Names. Именованные Transform узлы представляют каждую деталь. Установите флажок рядом с полями поворота и положения Transform узел. Можно выбрать другие свойства объектов виртуального мира, таких как цвет, но повороты и положения являются таковыми наиболее часто управляемыми.

  5. Нажмите OK. Для каждого выбранного поля блок VR Sink создает порт входа. Увеличьте размер VR Sink блока по мере необходимости, чтобы вместить количество входных портов.

После связи блока VR Sink с виртуальным миром можно дважды щелкнуть по нему, чтобы открыть Simulink 3D Animation viewer. Чтобы получить доступ к параметрам блоков, в средстве просмотра выберите 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. Совпадают с центром вращения, потому что, когда соединения между частями не расположены в источник ([0 0 0]) системы координат родительского элемента.

    Чтобы задать центр вращения, отличный от значения по умолчанию, [0 0 0], задайте center поле ребенка Transform узел в файле 3D виртуального мира. Например, задайте центр вращения робота, чтобы совпадать с соединением руки и инструмента в локальных координатах руки.

В иерархической структуре сцены, когда детали соединяются шарнирными соединениями, легко задать относительные повороты между частями. Ось соединения непосредственно задает ось вращения виртуального мира, поэтому можно создать [axis angle] четырехэлементный вектор вращения.

Начальные условия

Начальные условия модели Simulink должны соответствовать начальным положениям и вращениям объекта, заданным в виртуальном мире. В противном случае объект, управляемый из Simulink, перескакивает из положения, заданного в файле VRML, в положение, диктуемое Simulink для симуляции. Чтобы компенсировать это смещение, используйте один из следующих подходов:

  • В файле 3D виртуального мира задайте другой уровень вложенных Transform вокруг контролируемого объекта.

  • В режиме Simulink добавьте начальное положение объекта в вычисления модели перед отправкой в блок VR Sink.

Выровняйте начальные условия модели Simulink с положениями объекта виртуального мира, Сохраните правильное положение объекта относительно окружающей сцены. Можно настроить положение окружения объекта. Например, переместите положение дороги так, чтобы машина находилась в положении [0 0 0] остается на дороге, не имея колес, тонущих или плавающих над дорогой.

Блоки расширения VR-заполнителя и VR-сигнала

Блок 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] вектор.

Ссылка на модели Simscape Multibody

Можно использовать продукт Simulink 3D Animation, чтобы просмотреть поведение модели, созданной с помощью программного обеспечения Simscape Multibody.

  1. Создайте модель машины в интерфейсе Simulink с помощью блоков Simscape Multibody.

  2. Создайте подробное визуальное представление вашей машины в виртуальном мире.

  3. Соедините виртуальный мир с выходами датчика тела Simscape Multibody.

  4. Просмотрите поведение тел в программе средства просмотра виртуального мира.

Можно использовать программное обеспечение 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 блока.

Ссылка на модель MATLAB

Чтобы помочь вам взаимодействовать с виртуальными мирами, продукт Simulink 3D Animation предлагает набор функций MATLAB и конструкций, называемых в совокупности его «интерфейсом MATLAB». Обстоятельства, когда эта функциональность MATLAB подходит для использования с проектами на основе CAD, включают:

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

  • Визуализация 3D информации на основе независимой величины (не обязательно времени).

  • Использование функций интерфейса MATLAB в обратных коллбэках модели Simulink.

  • Визуализация систем, динамические модели которых доступны в виде кода MATLAB.

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

Для получения информации об установке свойств объекта с помощью интерфейса MATLAB, смотрите Взаимодействие с Мирами Виртуальной Реальности.

Похожие темы