exponenta event banner

cubicpolytraj

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

Описание

пример

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

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

Примеры

свернуть все

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

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. Сравните траекторию с каждым ППМ.

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

Figure contains an axes. The axes contains 4 objects of type line. These objects represent X-positions, Y-positions.

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

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

Figure contains an axes. The axes contains 2 objects of type line.

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

свернуть все

Точки для ППМ траектории, определенные как матрица n-by-p, где n - размер траектории, а p - количество ППМ.

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

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

Временные точки для ППМ траектории, заданные как вектор 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]

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

Пример: [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 - количество ППМ.

  • 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