updateErrorDynamicsFromStep

Обновление значений NaturalFrequency и DampingRatio свойства заданные желаемая переходная характеристика

Описание

пример

updateErrorDynamicsFromStep(motionModel,settlingTime,overshoot) обновляет значения NaturalFrequency и DampingRatio свойства данного jointSpaceMotionModel объект, заданный требуемой переходной характеристикой.

updateErrorDynamicsFromStep(motionModel,settlingTime,overshoot,jointIndex) обновляет NaturalFrequency и DampingRatio свойства для определенного соединения. В этом случае значения SettlingTime и Overshoot должны быть предусмотрены как скаляры, поскольку они применяются к одному шарниру.

Примеры

свернуть все

В этом примере показано, как создать и использовать jointSpaceMotionModel объект для робота манипулятора в пространстве соединений.

Создайте робота

robot = loadrobot("kinovaGen3","DataFormat","column","Gravity",[0 0 -9.81]);

Настройте симуляцию

Установите временной интервал равным 1 с с размером временного интервала 0,01 с. Установите начальное состояние роботов, домашнее строение со скоростью нуля.

tspan = 0:0.01:1;
initialState = [homeConfiguration(robot); zeros(7,1)];

Задайте состояние ссылки с целевой позицией, нулевой скоростью и нулевым ускорением.

targetState = [pi/4; pi/3; pi/2; -pi/3; pi/4; -pi/4; 3*pi/4; zeros(7,1); zeros(7,1)];

Создайте модель движения

Моделируйте систему с вычисленным управлением крутящим моментом и динамикой ошибок, заданной умеренно быстрой переходной характеристикой с 5% перерегулированием.

motionModel = jointSpaceMotionModel("RigidBodyTree",robot);
updateErrorDynamicsFromStep(motionModel,.3,.05);

Симулируйте робота

Используйте производную от модели в качестве входов к ode45 решатель, чтобы симулировать поведение в течение 1 секунды.

[t,robotState] = ode45(@(t,state)derivative(motionModel,state,targetState),tspan,initialState);

Постройте график отклика

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

figure
plot(t,robotState(:,1:motionModel.NumJoints));
hold all;
plot(t,targetState(1:motionModel.NumJoints)*ones(1,length(t)),"--");
title("Joint Position (Solid) vs Reference (Dashed)");
xlabel("Time (s)")
ylabel("Position (rad)");

Figure contains an axes. The axes with title Joint Position (Solid) vs Reference (Dashed) contains 14 objects of type line.

Входные параметры

свернуть все

The jointSpaceMotionModel объект, который определяет свойства модели движения.

Время урегулирования, необходимое для достижения диапазона допусков 2% в секундах, задается как скаляр или n-вектор. n - количество нефиксированных соединений в rigidBodyTree от jointSpaceMotionModel в motionModel аргумент.

Перерегулирование относительно единичного шага, заданное как скаляр или n элемент. n - количество нефиксированных соединений в rigidBodyTree от jointSpaceMotionModel в motionModel аргумент.

Индекс соединения, для которого NaturalFrequency и DampingRatio обновляется с учетом динамики ошибок шага установки. В этом случае время урегулирования и перерегулирование должны быть определены как скаляры.

Ссылки

[1] Огата, Кацухико. Modern Control Engineering 4th ed. Englewood Cliffs, NJ: Prentice Hall, 2002.

См. также

Классы

Введенный в R2019b