跳到主要內容

發表文章

目前顯示的是 一月, 2011的文章

[最佳控制] Finite Horizon LQR with Penalty on Final State

考慮 LQR 問題如下

成本函數
\[{V_N}({x_0},u): = \sum\limits_{i = 1}^{N - 1} {\underbrace {l(x\left( i \right),u\left( i \right))}_{{\rm{stage}}\begin{array}{*{20}{c}}
{}
\end{array}{\rm{cost}}}}  + \underbrace {{l_N}({x_N})}_{{\rm{terminal}}\begin{array}{*{20}{c}}
{}
\end{array}{\rm{cost}}}\]其中 \[\left\{ \begin{array}{l}
u: = \{ u(0),u(1),...,u(N - 1)\} \\
l(x,u): = \frac{1}{2}({x^T}Qx + {u^T}Ru)\\
{l_N}(x): = \frac{1}{2}{x^T}{P_f}x
\end{array} \right.\]另外假設 $Q \ge 0$  positive semi-definite 且 $R >0$ positive definite。

我們的目標:找到 $u^*=\{u^*(0),u^*(1),...,u^*(N-1)\}$ 使得
\[\begin{array}{l}
\mathop {\min }\limits_u {V_N}\left( {x\left( 0 \right),u} \right)\\
s.t.\;\;{x^ + } = Ax + Bu
\end{array}\]

現在利用 Backward Dynamic Programming,我們從最後的狀態 $x(N)$ 逐步回推最佳解,亦即觀察
\[{V_N}({x_0},u): = l({x_0},{u_0}) + l({x_1},{u_1}) + ... + \underbrace {l({x_{N - 1}},{u_{N - 1}}) + {l_N}({x_N})}_{{u_{N - 1}}\begin{array}{*{20}{c}}
{}
\end{array}{\rm{affects}}\begin{array}{*{20}{c}}
{}
\end{array}{\rm{only}}\begin{array}…

[線性代數] 矩陣二次式的等價運算

假設 $A$ 為 對稱 正定矩陣  (亦即 $A^T = A$ 且 $A$ 的 eigenvalue 全為正值),現在考慮一個矩陣二次函數:
\[
V(x) = x^T A x + c^T x + d
\]上述矩陣二次項為 $x^TAx$ 且 線性項為 $c^T x$ 常數項為 $d$。

注意到上式可改寫為 $ V(x) = (x-v)^T H (x-v) +d$。WHY? 因為改寫成此形式之後,最小值一目了然,亦即 $x=v$ 可得最小值。


現在若考慮兩組矩陣二次式
\[\left\{ \begin{array}{l}
{V_1}(x) = \frac{1}{2}{(x - a)^T}A(x - a)\\
{V_2}(x) = \frac{1}{2}{(x - b)^T}B(x - b)
\end{array} \right.\]且假設 $A >0$ 為 正定矩陣,$B$為半正定矩陣。

===============
FACT:  $V_1, V_2$ 皆為矩陣二次式,其和亦為矩陣二次式;亦即
$$V(x) = \frac{1}{2} (x-v)^T H (x-v) + d = V_1(x) + V_2(x)
$$===============
故現在問題變成如何找出 $d, H, v $ 用 $A,B,a,b$表示?

===============
FACT: 考慮兩組矩陣二次式
\[\left\{ \begin{array}{l}
{V_1}(x) = \frac{1}{2}{(x - a)^T}A(x - a)\\
{V_2}(x) = \frac{1}{2}{(x - b)^T}B(x - b)
\end{array} \right.\]若 $A^T = A$ 且 $B^T = B$,則 $$V(x) = \frac{1}{2} (x-v)^T H (x-v) + d = V_1(x) + V_2(x)$$ 且
\[\left\{ \begin{array}{l}
H = A + B\\
v = {\left( {A + B} \right)^{ - 1}}\left( {Aa + Bb} \right)\\
d = {V_1}\left( v \right) + {V_2}\left( v \right)
\end{array} \right.\]=…