Решение прямых и обратных проблем кинематики для модели мультитела
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 и добавление переменной системы координат к копии, например, добавляют, что переменная системы координат к объекту и так также к любым другим указателям может иметь.
Можно сохранить объект в — и загрузить его от — файл MAT. Сделайте так, чтобы совместно использовать объект с коллегой или использовать объект через сеансы работы с MATLAB.
создает ks
= simscape.multibody.KinematicsSolver(modelName,Name,Value)KinematicsSolver
объект с новыми значениями по умолчанию для модулей угла или длины. Используйте Аргументы пары "имя-значение" DefaultAngleUnit
и DefaultLengthUnit
задавать новые значения по умолчанию.