Кинематическое представление модели мультитела, чтобы анализировать
Объект KinematicsSolver
содержит кинематическое представление модели мультитела, вокруг которой можно сформулировать, и для которого можно решить, кинематическая проблема. Анализ может быть стандартной инверсией или передать кинематику, или это может быть другой тип. Отдых различия только на переменных, известных и разыскиваемых, и этих многих расположений, возможен.
Новый объект содержит только некоторые кинематические переменные, вероятно, чтобы показать в кинематическом анализе. Они это наследовалось модели. Это также не имеет никакой индикации, которой переменные, чтобы вычислить, и чтобы можно принять для ее аргументов. Задачей подготовки анализа является одна из добавляющих переменных к объекту и присвоению их к подходящим ролям. Переменные выводят или от соединений или от пар кадра:
Объединенные переменные
Смещения объединенных примитивов. Они - переводы для призматических примитивов и вращения для закрученных назад и сферических примитивов. Сферические вращения связываются со вспомогательными переменными, чтобы выразить также векторные компоненты 3-D оси вращения.
Объект KinematicsSolver
содержит все объединенные переменные, совместимые с базовой моделью от ее запуска. Те переменные являются снимком состояния модели, как это - когда объект создается. Вы не можете ни добавить, ни пропустить их.
Структурируйте переменные
Преобразования между избранными парами кадра. Пары часто от тел, не соединенных соединениями, мир иногда вместо тела. Преобразования могут быть переводами или вращениями от одного кадра (основа) к второму (последователь).
Объект KinematicsSolver
запускается без переменных кадра. Те, которые это получает результат вызовов addFrameVariables
. Можно пропустить их, если они становятся устаревшими. Используйте removeFrameVariables
, чтобы удалить некоторых за один раз и clearFrameVariables
, чтобы удалить их всех в одном вызове.
Рассмотрите роботизированную руку с шарнирными соединениями для ее плеча, колена и запястья. Закрученные назад углы каждый иск объединенная переменная. Положение руки относительно плеча, двух тел, которые обычно не соединяются через соединения, требует группы переменных кадра — один каждый для x, y и смещений положения z между телами, или, более точно, между кадрами, локальными для них.
Источник переменной не определяет свою роль в анализе. Объединенная переменная может быть входным параметром или выходным аргументом. Так может переменная кадра. Объект KinematicsSolver
распознает два входных типа: цели, чтобы стремиться и предположения, чтобы запустить анализ с, последний, чтобы сместить решение, когда альтернативы существуют.
Цели и выходные параметры показывают в типичном анализе. Предположения менее распространены, но ценны в проблемах с несколькими решениями, как средние значения, чтобы сместить решатель к одной подходящей мысли. В роботизированной руке предположение для колена помогает сохранить свой угол поворота в естественной области значений 0
–145
степенями во время анализа. Объект KinematicsSolver
предоставляет методы для каждой роли:
Целевые переменные
Используйте функцию объекта addTargetVariables
, чтобы присвоить соединение и переменные кадра как цели. Используйте removeTargetVariables
, чтобы понизиться один или некоторые от объекта KinematicsSolver
и clearTargetVariables
, чтобы пропустить их всех в одном вызове.
Цели работают с протестом: конфликты с ограничениями в модели, некоторые изложенные все еще другими целями, могут сохранить их всех с того, чтобы быть точно удовлетворенным. Цели ведут, но не обеспечивают соединения и тела в место для анализа. Неизвестные решены для любой настройки мультитела, которую целям удается произвести.
Выходные переменные
Используйте функцию объекта addOutputVariables
, чтобы присвоить соединение и переменные кадра как выходные параметры. Используйте removeOutputVariables
, чтобы понизиться один или некоторые от объекта KinematicsSolver
и clearOutputVariables
, чтобы пропустить их всех в одном вызове.
Угадайте переменные
Используйте функцию объекта addInitialGuessVariables
, чтобы присвоить соединение и переменные кадра как предположения. Используйте removeInitialGuessVariables
, чтобы понизиться один или некоторые от объекта KinematicsSolver
и clearInitialGuessVariables
, чтобы пропустить их всех в одном вызове.
Смотрите фигуру для сводных данных переменных и их ролей в объекте KinematicsSolver
. Объект может иметь объединенные переменные (J) и структурировать переменные (F). Они могут служить целями (T), чтобы вести блок во время анализа, как предположения (G), чтобы сместить решение к подходящей настройке, и как выходные параметры (O), неизвестные, чтобы решить для и отчет относительно. Переменные, присвоенные как цели, не могут удвоиться как предположения, но каждый из них может удвоиться, как выведено.
Объект KinematicsSolver
готов к анализу, если необходимые кинематические переменные существуют, и их роли установлены. Для инверсной кинематики роботизированной руки, например, это достаточно, чтобы создать три переменные кадра — один каждый для компонента перевода между кадрами руки и плеча. Объединенные кадры являются нативными к объекту и доступными от запуска. Присвоение переменных кадра как цели и объединенные переменные как выходные параметры подготавливает объект для анализа.
Чтобы запустить анализ, объект обеспечивает решатель. Вызовите его с помощью функции объекта solve
. Функция принимает численные значения целей и предположений, как введено, чтобы вычислить выходные параметры. Часто, если заданные цели в пределах досягаемости, они могут быть удовлетворены. Такой результат не всегда возможен. Цель может быть вне досягаемости решателя, например.
Чтобы предупредить о таких проблемах, решатель возвращает не только фактические значения, достигнутые для переменных, присвоенных как цели, но также и серия флагов. Каждый дает полное состояние блока. Если какая-либо цель будет пропущена, или ограничение нарушено, или если решение оставит блок в сингулярной настройке и так с ограниченной подвижностью, это отразится там. Остаток появляется в векторе, указывающем, какие цели были удовлетворены и которые не были.
ks = simscape.multibody.KinematicsSolver(modelName)
ks = simscape.multibody.KinematicsSolver(modelName,Name,Value)
создает объект ks
= simscape.multibody.KinematicsSolver(modelName)KinematicsSolver
для модели, названной в mdl
. Объект содержит представление модели, подходящей для кинематического анализа. Представление является снимком состояния модели, как это - когда объект создается. Последующие изменения к модели не переносят на объект. Создайте новый объект, при необходимости чтобы получить те изменения.
Модель должна содержать сеть Simscape Multibody. Это должно также загрузиться к памяти — например, при помощи команды load_system
. Если блоки параметризованы с точки зрения переменных MATLAB, те переменные должны быть численно заданы в рабочем пространстве модели или в рабочем пространстве MATLAB. Цели положения и входные параметры приведения в действие для объединенных блоков проигнорированы. Набор параметров блоков к Run-Time
оценен при создании объекта и не может быть изменен позже.
Объект KinematicsSolver
является объектом указателя. Переменная, созданная из него, содержит не копию объекта, а ссылки на него. Переменная действует как указатель или указатель. Изменение указателя изменяет также объект и все его остающиеся указатели. Копирование объекта KinematicsSolver и добавление переменной кадра к копии, например, добавляют, что переменная кадра к объекту и так также к любым другим указателям может иметь.
Не сохраняйте объект KinematicsSolver
в файл MAT. Важная деталь о базовой модели потеряна во время сохранения. Объект становится неприменимым когда-то перезагруженный в MATLAB.
создает объект ks
= simscape.multibody.KinematicsSolver(modelName,Name,Value)KinematicsSolver
с новыми значениями по умолчанию для модулей угла или длины. Используйте Аргументы пары "имя-значение" DefaultAngleUnit
и DefaultLengthUnit
, чтобы задать новые значения по умолчанию.