最优控制理論主要探討的是讓动力系统以在最小成本來運作,若系統動態可以用一組线性微分方程表示,而其成本為二次泛函,這類的問題稱為線性二次(LQ)問題。此類問題的解即為線性二次調節器(),簡稱LQR。
LQR是回授控制器,方程式在後面會提到。LQR是LQG(線性二次高斯)問題解當中重要的一部份。而LQG問題和LQR問題都是控制理论中最基礎的問題之一。
簡介
控制機器(例如飛機)的控制器,或是控制製程(例如化學反應)的控制器,可以進行最佳控制,方式是先設定成本函數,再由工程師設定加權,利用數學演算法來找到使成本函數最小化的設定值。成本函數一般會定義為主要量測量(例如飛行高度或是制程溫度)和理想值的偏差的和。演算法會設法調整參數,讓這些不希望出現的偏差降到最小。而控制量的大小本身也會包括在成本函數中。
LQR演算法減少了工程師為了讓控制器最佳化,而需付出的心力。不過工程師仍然要列出成本函數的相關參數,並且將結果和理想的設計目標比較。因此控制器的建構常會是迭代的,工程師在模擬過程中決定最佳控制器,再去調整參數讓結果更接近設計目標。
在本質上,LQR演算法是找尋合適狀態回授控制器的自動化方式。因此也常會有控制工程師用其他替代方式,例如全狀態回授(也稱為極點安置)的作法,此作法對控制器參數和控制器性能之間的關係比較明確。而LQR演算法的困難之處在找合適的加權因子,這也限制了以LQR控制器合成的相關應用。
有限時間長度,連續時間的LQR
方程式如下的連續時間線性系統,t\in[t_0,t_1]:
:\dot{x} = Ax + Bu
其二次成本泛函為
:J = x^T(t_1)F(t_1)x(t_1) + \int\limits_{t_0}^{t_1} \left( x^T Q x + u^T R u + 2 x^T N u \right) dt
其中F、Q和R都是正定矩陣。
可以讓成本最小化的回授控制律為
:u = -K x \,
其中K為
:K = R^{-1} (B^T P(t) + N^T) \,
而P是連續時間Riccati方程的解:
:A^T P(t) + P(t) A - (P(t) B + N) R^{-1} (B^T P(t) + N^T) + Q = - \dot{P}(t) \,
邊界條件如下
:P(t_1) = F(t_1).
Jmin的一階條件如下
(i) 狀態方程
:\dot{x} = Ax + Bu
(ii) 協態方程
:-\dot{\lambda} = Qx + Nu + A^T \lambda
(iii) 靜止方程
: 0 = Ru + N^Tx + B^T \lambda
(iv) 邊界條件
: x(t_0) = x_0
且
\lambda(t_1) = F(t_1) x(t_1)
無限時間長度,連續時間的LQR
考慮以下的連續時間線性系統
:\dot{x} = Ax + Bu
其成本泛函為
:J = \int_{0}^\infty \left( x^T Q x + u^T R u + 2 x^T N u \right) dt
可以讓成本最小化的回授控制律為
:u = -K x \,
其中K定義為
:K = R^{-1} (B^T P + N^T) \,
而P是代數Riccati方程的解
:A^T P + P A - (P B + N) R^{-1} (B^T P + N^T) + Q = 0 \,
也可以寫成下式
:\mathcal A^T P + P \mathcal A - P B R^{-1} B^T P + \mathcal Q = 0 \,
其中
:\mathcal A = A - B R^{-1} N^T \qquad \mathcal Q = Q - N R^{-1} N^T \,
有限時間長度,離散時間的LQR
考慮離散時間的線性系統,定義如下
:x_{k+1} = A x_k + B u_k \,
其性能指標為
:J = x_N^T Q x_N + \sum\limits_{k=0}^{N-1} \left( x_k^T Q x_k + u_k^T R u_k + 2 x_k^T N u_k \right)
可以讓性能指標最小化的最佳控制序列為
:u_k = -F_k x_{k} \,
其中
:F_k = (R + B^T P_{k+1} B)^{-1} (B^T P_{k+1} A + N^T) \,
而P_k是由動態Riccati方程倒退時間佚代計算而得
:P_{k-1} = A^T P_k A - (A^T P_k B + N) \left( R + B^T P_k B \right)^{-1} (B^T P_k A + N^T) + Q
從終端條件P_N = Q開始計算。注意u_N沒有定義,因為 x 是由A x_{N-1} + B u_{N-1}推導到其最終狀態 x_N。
無限時間長度,離散時間的LQR
考慮離散時間的線性系統,定義如下
:x_{k+1} = A x_k + B u_k \,
其性能指標為
:J = \sum\limits_{k=0}^{\infty} \left( x_k^T Q x_k + u_k^T R u_k + 2 x_k^T N u_k \right)
可以讓性能指標最小化的最佳控制序列為
:u_k = -F x_k \,
其中
:F = (R + B^T P B)^{-1} (B^T P A + N^T) \,
而P是離散代數Riccati方程(DARE)的唯一正定解。
:P = A^T P A - (A^T P B + N) \left( R + B^T P B \right)^{-1} (B^T P A + N^T) + Q .
可以寫成
:P = \mathcal A^T P \mathcal A - \mathcal A^T P B \left( R + B^T P B \right)^{-1} B^T P \mathcal A + \mathcal Q
其中
: \mathcal A = A - B R^{-1} N^T \qquad \mathcal Q = Q - N R^{-1} N^T .
而求解代數Riccati方程的一個方式是迭代計算有限時間的動態Riccati方程,直到所得的解收斂為止。
參考資料
:*
:*
外部連結
- [http://www.mathworks.com/help/toolbox/control/ref/lqr.html MATLAB function for Linear Quadratic Regulator design]
- [http://reference.wolfram.com/mathematica/ref/LQRegulatorGains.html Mathematica function for Linear Quadratic Regulator design]
评论 (0)