一次元のジャーク二乗積算値の最小化問題

ジャーク二乗積算値最小化問題の定式化

次の条件を満たす関数 x(t) (0\le t \le t_{0})を求めたい。

  • 制約条件
\begin{eqnarray}
x(0) &=& 0 \\\
\dot{x}(0) &=& 0 \\\
\ddot{x}(0) &=& 0 \\\

x(t_{0}) &=& x_{0} \\\
\dot{x}(t_{0}) &=& 0 \\\
\ddot{x}(t_{0}) &=& 0 \\\

\end{eqnarray}
  • 最小化関数
\begin{eqnarray}
J(x(t)) = \int_{0}^{t_{0}} \left( \dddot{x}(t)\right)^{2} dt
\end{eqnarray}

解き方

 Jを最小にする関数が x_{opt}(t)とすると、Jは x_{opt}(t)まわりで極小となっていることが必要条件である。すなわち、 0\le t \le t_{0}で定義され、かつ \eta(0) = \dot{\eta}(0)=\ddot{\eta}(0)=\eta(t_{0}) = \dot{\eta}(t_{0}) = \ddot{\eta}(t_{0})=0を満たす任意の関数 \eta(t)に対して、

\begin{equation}
\frac{dJ(x_{opt}(t)+e \eta(t))}{de} |_{e=0} = 0
\end{equation}

が成立しなければいけない。これを展開すると

\begin{eqnarray}
\frac{dJ(x_{opt}(t)+e \eta(t))}{de} |_{e=0} &=& \lim_{e \rightarrow 0} \frac{1}{e} \left[\int_{0}^{t_{0}} (\dddot{x}(t)+e\dddot{\eta}(t))^{2} dt - \int_{0}^{t_{0}} \dddot{x}(t) dt \right] \\\
&=& 2 \int_{0}^{t_{0}} \dddot{x}(t) \dddot{\eta}(t) dt \\\
&=& 2 \left[ \dddot{x}(t) \ddot{\eta}(t)\right]_{0}^{t_{0}} – 2 \int_{t}^{t_{0}} \ddddot{x}(t) \ddot{\eta}(t) dt \ \ \ \ \ (部分積分) \\\
&=& -2 \left[ \ddddot{x}(t) \dot{\eta}(t)\right]_{0}^{t_{0}} + 2 \int_{t}^{t_{0}} x^{(5)}(t) \dot{\eta}(t) dt \ \ \ \ \ (部分積分) \\\
&=& 2 \left[ x^{(5)}(t) \eta(t)\right]_{0}^{t_{0}} - 2 \int_{t}^{t_{0}} x^{(6)}(t) \eta(t) dt \ \ \ \ \ (部分積分) \\\
&=& - 2 \int_{t}^{t_{0}} x^{(6)}(t) \eta(t) dt \\\
\end{eqnarray}

なお、 x^{(5)}(t) x^{(6)}(t)はそれぞれ5階微分、6階微分を表す。したがって、

\begin{equation}
 \int_{t}^{t_{0}} x^{(6)}(t) \eta(t) dt = 0
\end{equation}

が任意の関数 \eta(t)で成立しないといけないので、

\begin{equation}
x^{(6)}(t) = 0
\end{equation}

となり、 x(t)は5次多項式だとわかる。初期条件を満たすように係数を設定すると

\begin{equation}
x(t) = 6x_{0} \left( \frac{t}{t_{0}} \right) ^{5} - 15x_{0}\left( \frac{t}{t_{0}} \right)^{4} + 10x_{0} \left( \frac{t}{t_{0}} \right) ^{3}
\end{equation}

となるので、これが一次元のジャーク二乗積算値を最小にする関数である。

参考

https://courses.shadmehrlab.org/Shortcourse/minimumjerk.pdf