跳到主要內容

發表文章

目前顯示的是 1月, 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}{

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

假設 $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(