Можно преобразовать модель в эквивалентную Simscape™ Multibody™ блок. Преобразование основано на smimport
функция с именем файла описания мультитела XML в качестве центрального аргумента. XML- файл передает в программное обеспечение Simscape Multibody данные, необходимые для воссоздания исходной модели - или приближение ее, если в модели существуют неподдерживаемые ограничения.
Вы переводите модель в два шага - экспорт и импорт. Шаг экспорта преобразует модель сборки CAD в файл описания мультитела XML и набор файлов геометрии детали STEP или STL. Шаг импорта преобразует описание мультитела и файлы геометрии детали в модель SLX Simscape Multibody и файл данных M. Модель получает все входы параметров блоков из файла данных.
Шаги преобразования CAD
Переведенная модель представляет части CAD - называемые телами в программном обеспечении Simscape Multibody - с помощью Simulink® подсистемы, которые состоят из нескольких твердых и Rigid Transform блоков. Твердые блоки обеспечивают геометрию тела, инерцию и цвета. Блоки Rigid Transform обеспечивают системы координат необходимыми положениями для соединения между телами.
Рассмотрим тело верхнего рычага модели роботизированной руки CAD, показанной на рисунке. Подсистема Simulink для этого тела состоит из одного твердого блока, соединенного с парой Блоков Твердого Преобразования. Блок Solid предоставляет ссылку на файл геометрии верхнего рычага и инерционные свойства, выведенные из модели CAD. Блоки Твердого Преобразования обеспечивают системы координат для соединения с основой робота и нижними телами рук.
Подсистема Simulink, представляющая тело верхнего рычага
CAD-соединения, ограничения и сопряженные соединения преобразуются в программное обеспечение Simscape Multibody как комбинации соединений и блоков ограничений. В примере роботизированного рычага CAD ограничения между верхним рычагом и нижним рычагом перемещаются в блок Revolute Joint. Этот блок находится между блоками Подсистемы Simulink, которые представляют верхнюю руку и тела нижней руки.
Подсистема Simulink, представляющая тело верхнего рычага
По умолчанию переведенная модель сохраняет структурную иерархию исходной модели CAD. Если исходная модель является CAD-моделью с подсистемами мультитела, подсистемы преобразуются в программном обеспечении Simscape Multibody в подсистемы Simulink мультитела. Снова рассмотрим модель роботизированной руки CAD. Модель содержит узел мультитела с семью телами, схематично показанный на рисунке.
Иерархия модели роботизированной руки CAD
Мультибодные Подсистемы Simulink с подсистемами Body Simulink
Блоки в переведенной модели параметризованы в терминах MATLAB® переменные, определенные в файле данных. Эти переменные хранятся в массивах структур, названных в честь различных типов блоков. Массивы структур вложены в родительскую структуру данных с именем smiData
или пользовательскую строку, которую вы задаете.
Рассмотрите импортированную модель со структурой данных с именем smiData
. Если модель содержит Revolute Joint блока, данными параметров для этих блоков является массив структур smiData.RevoluteJoint
. Этот массив структур содержит ряд полей данных, каждый из которых соответствует другим параметрам блоков.
Поля массива структур названы в честь параметров блоков. Например, целевые данные состояния положения для блоков Revolute Joint находятся в поле с именем Rz_Position_Target
. Если модель имеет два блока Revolute Joint, это поле содержит две записи - smiData.RevoluteJoint(1).Rz_Position_Target
и smiData.RevoluteJoint(2).Rz_Position_target
.
Каждый индекс массива структур соответствует определенному блоку в импортированной модели. Назначения индексов могут измениться, если файл данных перегенерирован из обновленного файла описания мультитела XML. smimport
функция проверяет предыдущий файл данных, если он задан, чтобы убедиться, что назначения индексов остаются неизменными. См. раздел «Обновление существующего файла данных».
Технически можно экспортировать модель сборки CAD из любого приложения CAD. Плагин Simscape Multibody Link CAD предоставляет одно средство для экспорта модели в допустимом формате XML. Плагин совместим с тремя приложениями CAD для настольных ПК: SolidWorks®, PTC® Creo™ и Autodesk® Изобретатель®. Плагин генерирует не только XML-файл описания мультитела, но и любые файлы геометрии, необходимые для визуализации в окончательной переведенной модели.
The Simscape Multibody
smexportonshape
функция предоставляет другое средство для экспорта модели CAD из облачного приложения с именем Onshape®. Эта функция экспортируется в формате, совместимом только с новыми блоками Simscape Multibody. Дополнительные сведения об экспорте (и импорте) моделей CAD из учетной записи Onshape см. в разделе Импорт onshape.
Если вы используете неподдерживаемое приложение CAD, можно создать программу, которая использует XML-схему CAD API и Simscape Multibody для генерации файлов описания мультитела и геометрии детали. Для выполнения этой задачи требуется знание XML-документов, определений XSD-схем и API-интерфейсов CAD. Определения XSD-схем см. на веб-сайте схемы. Смотрите MATLAB Central для примера программы, созданной на SolidWorks CAD API.
Если для приложения CAD существует конвертер URDF, можно экспортировать модель в формате URDF и импортировать файл URDF в окружение Simscape Multibody. Обратите внимание, однако, что спецификация URDF запрещает топологии модели с обратной связью, такие как топологии четырехзвенников и зубчатых колес. Дополнительные сведения см. в разделе Импорт URDF.
Если плагин Simscape Multibody Link не может экспортировать файл геометрии детали или преобразовать ограничительное множество CAD, программа выдает сообщение об ошибке. Сообщение об ошибке идентифицирует тела с отсутствующими файлами геометрии и любыми неподдерживаемыми ограничениями. Можно импортировать сгенерированный файл описания мультитела XML в программное обеспечение Simscape Multibody, но полученная модель может не точно представлять исходную модель сборки CAD.
Файл описания мультитела XML импортируется с помощью Simscape Multibody
smimport
функция в режиме импорта по умолчанию. Функция анализирует файл и генерирует модель Simscape Multibody и связанный файл данных. Для получения пошаговых инструкций по импорту модели сборки CAD через файл описания ее мультитела XML, смотрите Импорт модели сборки CAD.
Примечание
Начиная с версии R2017b, плагин Simscape Multibody Link экспортируется в формате XML, совместимом только с программным обеспечением Simscape Multibody Second Generation. Вы должны импортировать все такие XML- файлы, используя smimport
функция. Модели, сгенерированные с помощью этой функции, состоят только из блоков второго поколения - доступных путем ввода команды sm_lib
в командной строке MATLAB.
Программное обеспечение Simscape Multibody First Generation больше не поддерживается, и mech_import
функция больше не может использоваться.
Если файл геометрии детали недопустим или отсутствует, соответствующее тело не может отображаться в утилите визуализации Simscape Multibody. Если модель сборки CAD содержит неподдерживаемую комбинацию ограничений между телами, программа Simscape Multibody соединяет тела с жестким соединением. Жесткое соединение может принимать форму прямой линии связи, блока Rigid Transform или Weld Joint блока.
Твердое соединение из-за неподдерживаемых ограничений
Если программное обеспечение Simscape Multibody не может преобразовать комбинацию ограничений CAD, оно выдает предупреждение в командном окне MATLAB, идентифицирующее затронутые тела и их системы координат соединения. Для примера:
Warning: The set of constraints between upperarm_1_RIGID and forearm_1_RIGID could not be mapped to a joint. A rigid connection has been added between port F of upperarm_1_RIGID and port F1 or forearm_1_RIGID for these constraints.
Можно импортировать модель с упрощенной топологией. Чтобы вы могли это сделать, smimport
функция обеспечивает ModelSimplification
аргумент. Можно задать этот аргумент следующим образом:
bringJointsToTop
для группирования каждого набора жестко соединенных деталей в новую подсистему и продвижения всех соединений на верхний уровень иерархии модели.
groupRigidBodies
сгруппировать жестко соединенные детали в подсистемы (и оставить соединения в исходных местах в иерархии модели).
None
импортировать модель как есть, без упрощения.
Используйте bringJointsToTop
или groupRigidBodies
опция, если ваша CAD-модель имеет много жестко связанных компонентов, таких как гайки и болты, которые вы предпочитаете группировать вместе - например, чтобы более интуитивно ухватить ключевые компоненты модели с взгляда блока .
Используйте bringJointsToTop
опция, если ваша модель CAD имеет соединения внутри узлов, и вы предпочитаете выставлять их на верхнем уровне - например, работать с сигналами приведения в действие и измерения соединений, не требуя поиска соединений внутри различных подсистем.
Обратите внимание, что упрощение модели доступно только для импорта CAD. Модели URDF имеют плоские топологии с незначительной необходимостью упрощения.
Вы регенерируете файл данных для ранее импортированной модели, запустив smimport
функция в dataFile
режим. Вы задаете этот режим используя дополнительный ImportMode
Name,Value
аргумент в виде пары. Функция использует предыдущий файл данных, чтобы сохранить соответствие отображения между индексами массива структур и блоками.
Перед регенерацией файла данных необходимо экспортировать новый файл описания мультитела XML из обновленной модели сборки CAD. smimport
функция использует данные в новом файле описания мультитела, чтобы сгенерировать новый файл данных.
Функция не обновляет блок при запуске dataFile
режим. Если вы добавляете или удаляете тела в исходной модели сборки CAD, необходимо вручную добавить или удалить соответствующие блоки в ранее импортированной модели.
Обновление CAD