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

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

Эта тема обращается к программному обеспечению 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 time0.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 независимых государств, соответствуя шести степеням свободы (число степеней свободы). Каждая степень свободы соответствует одному положению и одной скорости.

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

[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.

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

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

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

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

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

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

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

  • Режим 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)

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