cubicpolytraj

Сгенерируйте траектории полинома третьего порядка

Описание

пример

[q,qd,qdd,pp] = cubicpolytraj(wayPoints,timePoints,tSamples) генерирует полином третьего порядка, который достигает данного набора входа waypoints с соответствующими моментами времени. Функциональные выходные положения, скорости и ускорения на данных выборках времени, tSamples. Функция также возвращает кусочный полином pp форма полиномиальной траектории относительно времени.

[q,qd,qdd,pp] = cubicpolytraj(___,Name,Value) задает дополнительные параметры как Name,Value парные аргументы с помощью любой комбинации предыдущих синтаксисов.

Примеры

свернуть все

Используйте cubicpolytraj функция с данным набором 2D xy waypoints. Моменты времени для waypoints также даны.

wpts = [1 4 4 3 -2 0; 0 1 2 4 3 1];
tpts = 0:5;

Задайте временной вектор для выборки траектории. Выборка в меньшем интервале, чем точки требуемого времени.

tvec = 0:0.01:5;

Вычислите кубическую траекторию. Функциональные выходные параметры положения траектории (q), скорость (qd), ускорение (qdd), и полиномиальные коэффициенты (pp) из кубического полинома.

[q, qd, qdd, pp] = cubicpolytraj(wpts, tpts, tvec);

Постройте кубические траектории для x-и y-положений. Сравните траекторию с каждым waypoint.

plot(tvec, q)
hold all
plot(tpts, wpts, 'x')
xlabel('t')
ylabel('Positions')
legend('X-positions','Y-positions')
hold off

Можно также проверить фактические положения в 2D плоскости. Постройте отдельные строки q вектор и waypoints как x-и y - положения.

figure
plot(q(1,:),q(2,:),'-b',wpts(1,:),wpts(2,:),'or')
xlabel('X')
ylabel('Y')

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

свернуть все

Точки для waypoints траектории, заданной как n-by-p матрица, где n является размерностью траектории и p, являются количеством waypoints.

Пример: [1 4 4 3 -2 0; 0 1 2 4 3 1]

Типы данных: single | double

Моменты времени для waypoints траектории, заданной как p - вектор элемента.

Пример: [0 2 4 5 8 10]

Типы данных: single | double

Выборки времени для траектории, заданной как m - вектор элемента. Выходное положение, q, скорость, qd, и ускорения, qdd, производятся в этих временных интервалах.

Пример: 0:0.01:10

Типы данных: single | double

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'VelocityBoundaryCondition',[1 0 -1 -1 0 0; 1 1 1 -1 -1 -1]

Граничные условия скорости для каждого waypoint, заданного как разделенная запятой пара, состоящая из 'VelocityBoundaryCondition' и n-by-p матрица. Каждая строка соответствует скорости во всем p waypoints для соответствующей переменной в траектории.

Пример: [1 0 -1 -1 0 0; 1 1 1 -1 -1 -1]

Типы данных: single | double

Выходные аргументы

свернуть все

Положения траектории на данных выборках времени в tSamples, возвращенный как m - вектор элемента, где m является длиной tSamples.

Типы данных: single | double

Скорости траектории на данных выборках времени в tSamples, возвращенный как вектор.

Типы данных: single | double

Ускорения траектории на данных выборках времени в tSamples, возвращенный как вектор.

Типы данных: single | double

Кусочный полином, возвращенный как структура, которая задает полином для каждого раздела кусочной траектории. Можно создать собственные кусочные полиномы с помощью mkpp, или оцените полином в требуемые времена с помощью ppval. Структура содержит поля:

  • form: 'pp'.

  • breaks: p - вектор элемента времен, когда кусочная траектория изменяет формы. p является количеством waypoints.

  • coefs: n (p –1)-by-order матрица для коэффициентов для полиномов. n (p –1) является размерностью времен траектории количество pieces. Каждый набор строк n задает коэффициенты для полинома, который описал каждую переменную траекторию.

  • pieces: p –1. Количество пропусков минус 1.

  • order: Степень полинома + 1. Например, кубические полиномы имеют порядок 4.

  • dimN. Размерность положений контрольной точки.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2019a

Для просмотра документации необходимо авторизоваться на сайте