exponenta event banner

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

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

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

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

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

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

  1. От vrlib вставьте блок VR-приемника в модель Simulink.

  2. Для определения виртуального мира используйте диалоговое окно «Параметры блока приемника VR». Введите имя файла 3D виртуального мира в поле Исходный файл или нажмите кнопку Обзор, чтобы выбрать файл в интерактивном режиме. Чтобы загрузить выбранную сцену виртуальной реальности, нажмите кнопку Применить.

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

  4. В дереве виртуального мира разверните главный объект Transform филиал. В иерархии объектов сцены найдите все детали, которыми необходимо управлять из Simulink, в соответствии с их именами, как указано в разделе «Добавить имена DEF». Названный Transform Узлы представляют каждую деталь. Установите флажок рядом с полями поворота и положения Transform узел. Можно выбрать другие свойства объектов виртуального мира, такие как цвет, но наиболее часто управляемыми являются вращения и положения.

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

После связывания блока VR Sink с виртуальным миром можно дважды щелкнуть его, чтобы открыть средство просмотра Simulink 3D Animation. Для доступа к параметрам блока в окне просмотра выберите «Моделирование» > «Свойства блока».

Входы VR Sink принимают сигналы типа, соответствующего их представлению виртуального мира. Позиционные входы имеют тип SFVec3f, которая является позицией, представленной в [x y z] координаты. Входы вращения имеют тип SFRotation, четырехэлементный вектор, определяющий поворот как [axis angle], используя систему координат, описанную в разделе Используемая система координат (Coordinate System Used), где значение угла в радианах.

Сопоставьте систему координат, используемую моделью Simulink, с системой координат виртуального мира. Если две системы координат не идентичны, преобразуйте ось.

Обычно позиции объектов доступны в форме, требуемой виртуальным миром (декартовы координаты). Часто вращения объектов определяются с помощью матричного представления вращения. Чтобы преобразовать такие повороты в формат VRML, используйте блок «Матрица вращения в вращение VRML».

Позиции и вращения объектов обрабатываются по-разному в зависимости от иерархии виртуального мира:

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

    Позиции объектаОтправьте в VR Sink все позиции в глобальных координатах.
    Вращения объектовОтправить в VR Sink все повороты в глобальных координатах с центром вращения, определенным как начало координат. Если центр поворота по умолчанию Transform объекты - [0 0 0], нет необходимости определять центр для каждой детали в файле виртуальной мировой 3D.
  • Если все детали в модели Simulink следуют иерархическим отношениям и виртуальный мир имеет вложенную структуру, используйте эти положения и вращения.

    Позиции объектаОтправить в VR Sink все позиции в локальных координатах относительно их родителей или предшественников в иерархии объектов. Например, отправьте положение инструмента робота относительно руки робота.
    Вращения объектов

    Отправка в VR Sink всех поворотов в локальных координатах относительно их родителей или предшественников в иерархии объектов. Например, отправить вращение инструмента робота относительно руки робота.

    Визуально сопоставьте положения соединений между объектами путем совмещения центров вращения в виртуальном мире и в модели Simulink. Совпадение центра вращения, так как если соединения между деталями не расположены в начале координат ([0 0 0]) системы координат родительского элемента.

    Чтобы определить центр вращения, отличный от значения по умолчанию, [0 0 0], определите поле центра нижестоящего элемента 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 создает вектор заданной длины, используя некоторые значения из входных портов и заполняя остальные значениями сигнала-заполнителя.

Чтобы управлять положением виртуального объекта в одномерной динамической модели, используйте блок VR Signal Expander с контролируемым размером в качестве его входа. Для вывода используйте трехкомпонентный вектор в блоке VR Sink. Остальные векторные элементы заполняются сигналами-заполнителями.

Использование блока расширения сигнала VR также возможно при определении вращений. Когда ось вращения определена в файле 3D виртуального мира, можно отправить в блок приемника VR значение поворота виртуального мира. Используйте значение, состоящее из трех сигналов-заполнителей и вычисленного угла. Это значение поворота образует допустимый четырехэлементный [axis angle] вектор.

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

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

  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. Подключите блок датчика тела к соответствующим системам координат, прикрепленным к телам. Определите положения и повороты с помощью глобальных координат. Обычно можно подключить датчик к системе координат тела с началом координат в [0 0 0] и с исходной матрицей поворота, определенной как единичная матрица, [1 0 0; 0 1 0, 0 0 1], в глобальных координатах.

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

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

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

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

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

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

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

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

Сведения о настройке свойств объекта с помощью интерфейса MATLAB см. в разделе Взаимодействие с мирами виртуальной реальности.

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