Обрезка и линеаризация через обратную динамику

Предупреждение

Эта тема обращается к программному обеспечению Simscape™ Multibody™ First Generation. Библиотека первого поколения удерживается от использования. Чтобы избежать проблем совместимости, создайте любые новые модели и преобразуйте любые существующие модели с помощью блоков второго поколения — доступные путем ввода команды smlib в командной строке MATLAB®.

Об обрезке и обратной динамике

Это тематическое исследование находит устойчивое состояние платформы Стюарта с режимом Simscape Multibody Kinematics. Вы задаете движения и определяете силы и крутящие моменты, чтобы произвести те движения (обратная проблема динамики). Если вы не знакомы с реализацией обратной динамики в среде Simscape Multibody, работаете через Силы Открытия от Движений прежде, чем делать попытку этого тематического исследования.

Используйте режимы Inverse Dynamics и Kinematics для обратного динамического анализа открытых - и системы закрытой топологии, соответственно. Платформа Стюарта имеет закрытую топологию и таким образом требует режима Kinematics. Если у вас есть рабочая точка, можно линеаризовать движение.

Примечание

Чтобы завершить это тематическое исследование, необходимо использовать дополнительный продукт, Control System Toolbox .

Что обрезает?

Обрезка системы означает определять местоположение настройки своих состояний с определенными предшествующими условиями, наложенными на состояния и возможно их производные. В механическом контексте это означает внушительные условия на определенных положениях и скоростях, затем определяя остающиеся положения и скорости, таким образом, что целое состояние машины сопоставимо. Побочный продукт механической обрезки является определением сил/крутящих моментов, необходимых, чтобы произвести заданное движение. Эти состояния движения составляют или рабочую точку для обрезки. Обрезка проблем может иметь одно решение, больше чем один или ни один.

Чистая обратная динамика налагает предшествующие движения на все степени свободы. Затем все состояния определяются. (Непротиворечивость движений не гарантируется, но должна проверяться.) Только силы/крутящие моменты остаются, чтобы быть найденными.

Способы найти рабочую точку

Найти рабочую точку или устойчивое состояние для модели Simscape Multibody,

  • Используйте команду trim в Simulink®. См. Обрезающие Механические Модели.

  • Используйте более мощные методы, обеспеченные Control System Toolbox™ и Simulink Control Design™. Займитесь Контроллерами и Объектами.

  • Используйте режимы динамики инверсии Simscape Multibody. Можно управлять механическими состояниями модели непосредственно с приведением в действие движения, а не управлять ими через Simulink.

Обрезка в режиме кинематики

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

ФайлЦель
mech_stewart_control_equilМодель Kinematics для определения платформы Стюарта обеспечивает равновесие
mech_stewart_control_equil_legМодель Library участка платформы Стюарта для кинематического анализа
mech_stewart_control_plantПередайте модель динамики для линеаризации платформы Стюарта
mech_stewartplatform_legМодель Library участка платформы Стюарта для прямого динамического анализа

Настройки симуляции для обратной динамики

mech_stewart_control_equil модель имеет некоторую предварительную установку настройки не по умолчанию.

Параметры конфигурации

УстановкаЗначение
Solver> Simulation time> Stop timeСекунды 0.005
Data Import/ExportTime и States, выбранный>
tout и xout
Simscape Multibody 1G> DiagnosticsMark automatically cut joints выбран
Simscape Multibody 1G> VisualizationDisplay machines after updating diagram и
Show animation during simulation выбран

Среда машины

УстановкаЗначение
Parameters> Analysis modeKinematics
Parameters> Machine Dimensionality3D Only
Constraints> Constraint solver typeMachine Precision
Constraints> Use robust singularity handlingВыбранный

Определение движения

Шесть участков платформы Стюарта являются экземплярами основного участка, сохраненного в библиотеке mech_stewart_control_equil_leg. Это берет в качестве входных параметров сигналы приведения в действие движения, которые задают положение и скорость как функция времени. Сигналы положения задают движение платформы относительно начальной геометрической настройки.

В mech_stewart_control_equil подсистема Движения задает движение как тривиальное: обнуляет для всех шести положений участка и скоростей. Таким образом, модель содержит платформу все еще в ее начальном состоянии.

Измерение установившихся сил

Каждые выходные параметры участка платформы Стюарта вычисленная сила участка должны были поддержать движение, заданное приведением в действие движения. Эти шесть измеренных сил направлены к вашему рабочему пространству MATLAB блоком To Workspace.

  1. Откройтесь К диалоговому окну Рабочей области.

    Выходные силы хранятся в векторной переменной Forces. Блок сохраняет вектор силы только от последнего временного шага.

  2. Закройтесь К диалоговому окну Рабочей области.

Выполнение модели и получение Выходных параметров

Теперь запустите mech_stewart_control_equil.

  1. Нажмите Start и ожидайте симуляции, чтобы закончиться.

  2. В вашей рабочей области найдите tout и xout. Это временные шаги и соответствующие значения состояния, соответственно.

    В режиме Inverse Dynamics существует 40 механических состояний, считаемых Simulink, сопоставленным с механическими ограничениями. Консультируйтесь с Идентификацией Simulink и Механических состояний Платформы Стюарта.

  3. Найдите Forces в рабочей области. Это шесть значений силы вдоль каждого участка, чтобы содержать платформу все еще против падения силой тяжести. Значения положительны (расширяемый) вдоль участков.

Линеаризация платформы Стюарта в рабочей точке

Знание установившихся сил должно было сохранить платформу все еще, вы теперь линеаризуете другую версию модели, mech_stewart_control_plant. Это имеет настройки, подобные mech_stewart_control_equil, за исключением того, что:

  • Analysis mode установлен в Forward Dynamics.

  • Время симуляции составляет 10 секунд.

  • Time и Output, tout и yout, соответственно, сохранены в рабочую область.

Откройте модель mech_stewart_control_plant.

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

  • Стандартной образцовой входной переменной является u. Сигнал вектора силы является образцовым входом.

  • Сигналами радиус-вектора и вектора скорости являются образцовые выходные параметры. Выходная переменная Data Import/Export является yout и появится в вашей рабочей области, присвоенной с данными после того, как вы моделируете.

Закройте модель.

Линеаризация прямой модели динамики

Можно моделировать mech_stewart_control_plant модель, не открывая его.

  1. В командной строке войти

    nomForces = Forces'; % Transpose the force vector
  2. Линеаризуйте модель путем ввода

    [A,B,C,D] = ...
       linmod('mech_stewart_control_plant',[],nomForces);

    Аргументы, по порядку,

    • Имя модели

    • Образцовый вектор состояния (не используемый)

    • Образцовый входной вектор u = nomForces

Эти (неуменьшаемые) выходные матрицы являются стандартным представлением пространства состояний линеаризовавшей модели. Пробел задан x, u, и y, состоянием, входом и выходными векторами, соответственно.

Существует 52 состояния, 6 входных параметров и 12 выходных параметров. Таким образом A, B, C, D имеет размерности 52 52, 52 6, 12 52, и 12 6, соответственно. Не все эти матричные записи независимы.

Нахождение минимальной реализации линеаризовавшей модели

Примечание

Этот шаг требует Control System Toolbox.

Из 52 механических состояний платформа Стюарта имеет только 12 независимых государств, соответствуя шести степеням свободы (DoFs). Каждая степень свободы соответствует одному положению и одной скорости.

Чтобы устранить избыточные состояния, войти

[a,b,c,d] = ...
   minreal(A,B,C,D);
40 states removed.

в командной строке. a, b, c, матрицы d уменьшаются в размере до 12 12, 12 6, 12 12, 12 6, соответственно.

Для больше о линеаризации и пространстве состояний

Смотрите Линеаризацию Открытой Топологии: Двойной Маятник и документация Simulink.

Дальнейшие предложения для обратной обрезки динамики

Обрезка в Режиме Кинематики и Линеаризация Платформы Стюарта в Рабочей точке представляют самый простой сценарий обрезки:

  • Все шесть степеней свободы (DoFs) определяются предшествующей спецификацией положений и скоростей. Это входные параметры к проблеме. Выходные параметры являются силами, необходимыми, чтобы поддержать заданное движение. Симуляция решает чистую обратную проблему динамики.

  • Фактические сигналы приведения в действие движения требуют, чтобы платформа содержала все еще относительно ее начальной геометрической настройки.

Общие условия обрезки: смешанная динамика

В более типичной проблеме обрезки вы задаете некоторые DoFs приведением в действие движения и оставляете другие свободными ответить силам/крутящим моментам. Такой сценарий является смешанной проблемой динамики. В среде Simscape Multibody можно решить такие проблемы в

  • Передайте режим Dynamics, где дерево утверждает (DoFs, соответствующий неразрезанным Соединениям), механические состояния

  • Режим Kinematics (закрытая топология), где сокращающие ограничения, которые заменяют Соединения сокращения, составляют механические состояния

  • Обратная Динамика (открывают топологию), где нет никаких механических состояний

Взаимозависимость инверсии и прямой динамики

Приведите в действие степень свободы с...Распознайтесь на степени свободы...
Силы/крутящие моментыДвижения
ДвиженияСилы/крутящие моменты

Если вы хотите решить такую проблему для платформы Стюарта, вы должны

  • Используйте участок библиотеки с

    • Вход Force

    • Motion вывод

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

  • Используйте участок библиотеки с

    • Вход Motion

    • Force вывод

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

Используя рабочую точку, чтобы линеаризовать модель

Установившиеся выходные параметры являются в свою очередь входными параметрами для линеаризации.

Взаимозависимость обрезки и линеаризации

Обрезка Вывода становится...... Вход линеаризации
Измеренные движения становятся...... Сигналы приведения в действие движения
Измеренные силы/крутящие моменты становятся...... Обеспечьте/закрутите сигналы приведения в действие

Выполнить линеаризацию вашей системы,

  1. Создайте различную модель в режиме Forward Dynamics, который берет

    • Установившиеся силы как входное приведение в действие силы линеаризации

    • Установившиеся движения как линеаризация вводят приведение в действие движения

  2. Линеаризуйте с linmod.

    linmod('forward_dynamics_model_to_linearize', state, input)

    Эта команда может подать образцовые входные параметры в линеаризовавшую симуляцию как аргумент команды. Дополнительную информацию см. в ссылке команды.