Main Content

quinticpolytraj

説明

[q,qd,qdd,pp] = quinticpolytraj(wayPoints,timePoints,tSamples) は、指定された一連の入力ウェイポイントと対応する時間点を通る 5 次多項式を生成します。この関数は、指定された時間サンプル tSamples における位置、速度、および加速度を出力します。また、この関数は、時間に対する多項式軌跡の区分的多項式 pp も返します。

[q,qd,qdd,pp] = quinticpolytraj(___,Name,Value) は、前述の構文の任意の組み合わせを使用し、Name,Value のペアの引数として追加パラメーターを指定します。

すべて折りたたむ

一連の 2 次元 "xy" ウェイポイントを指定して、関数 quinticpolytraj を使用します。ウェイポイントの時間点も指定します。

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

軌跡をサンプリングする時間ベクトルを指定します。指定した時間点よりも短い間隔でサンプリングします。

tvec = 0:0.01:5;

5 次軌跡を計算します。関数は、5 次多項式の軌跡の位置 (q)、速度 (qd)、加速度 (qdd)、および多項式係数 (pp) を出力します。

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

"x" 位置および "y" 位置の 5 次軌跡をプロットします。軌跡を各ウェイポイントと比較します。

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

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

2 次元平面における実際の位置も確認できます。q ベクトルとウェイポイントの個別の行を、"x" 位置および "y" 位置としてプロットします。

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

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

入力引数

すべて折りたたむ

軌跡のウェイポイントを表す点。n 行 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

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name引用符で囲みます。

例: '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

各ウェイポイントの加速度境界条件。'AccelerationBoundaryCondition' と 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) 行 order 列の行列。n(p–1) は、軌跡の次元と pieces の数の積です。n 行の各セットは、各変動軌跡を記述した多項式の係数を定義します。

  • pieces: p–1。ブレーク数から 1 を引いた値。

  • order:多項式の次数 + 1。たとえば、3 次多項式の次数は 4 です。

  • dim: n.制御点の位置の次元。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2019a で導入