LQR控制器

最优控制理論主要探討的是讓动力系统以在最小成本來運作，若系統動態可以用一組线性微分方程表示，而其成本為二次泛函，這類的問題稱為線性二次（LQ）問題。此類問題的解即為線性二次調節器（英語：linear–quadratic regulator），簡稱LQR。 LQR是回授控制器，方程式在後面會提到。LQR是LQG（線性二次高斯）問題解當中重要的一部份。而LQG問題和LQR問題都是控制理论中最基礎的問題之一。 控制機器（例如飛機）的控制器，或是控制製程（例如化學反應）的控制器，可以進行最佳控制，方式是先設定成本函數，再由工程師設定加權，利用數學演算法來找到使成本函數最小化的設定值。成本函數一般會定義為主要量測量（例如飛行高度或是制程溫度）和理想值的偏差的和。演算法會設法調整參數，讓這些不希望出現的偏差降到最小。而控制量的大小本身也會包括在成本函數中。 LQR演算法減少了工程師為了讓控制器最佳化，而需付出的心力。不過工程師仍然要列出成本函數的相關參數，並且將結果和理想的設計目標比較。因此控制器的建構常會是迭代的，工程師在模擬過程中決定最佳控制器，再去調整參數讓結果更接近設計目標。 在本質上，LQR演算法是找尋合適狀態回授控制器的自動化方式。因此也常會有控制工程師用其他替代方式，例如全狀態回授（也稱為極點安置）的作法，此作法對控制器參數和控制器性能之間的關係比較明確。而LQR演算法的困難之處在找合適的加權因子，這也限制了以LQR控制器合成的相關應用。 方程式如下的連續時間線性系統， t ∈ [ t 0 , t 1 ] {\displaystyle t\in [t_{0},t_{1}]} ： x ˙ = A x + B u {\displaystyle {\dot {x}}=Ax+Bu} 其二次成本泛函為 J = x T ( t 1 ) F ( t 1 ) x ( t 1 ) + ∫ t 0 t 1 ( x T Q x + u T R u + 2 x T N u ) d t {\displaystyle J=x^{T}(t_{1})F(t_{1})x(t_{1})+\int \limits _{t_{0}}^{t_{1}}\left(x^{T}Qx+u^{T}Ru+2x^{T}Nu\right)dt} 其中F、Q和R都是正定矩陣。 可以讓成本最小化的回授控制律為 u = − K x {\displaystyle u=-Kx\,} 其中 K {\displaystyle K} 為 K = R − 1 ( B T P ( t ) + N T ) {\displaystyle K=R^{-1}(B^{T}P(t)+N^{T})\,} 而 P {\displaystyle P} 是連續時間Riccati方程的解： A T P ( t ) + P ( t ) A − ( P ( t ) B + N ) R − 1 ( B T P ( t ) + N T ) + Q = − P ˙ ( t ) {\displaystyle 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 ) . {\displaystyle P(t_{1})=F(t_{1}).} Jmin的一階條件如下 (i) 狀態方程 x ˙ = A x + B u {\displaystyle {\dot {x}}=Ax+Bu} (ii) 協態方程 − λ ˙ = Q x + N u + A T λ {\displaystyle -{\dot {\lambda }}=Qx+Nu+A^{T}\lambda } (iii) 靜止方程 0 = R u + N T x + B T λ {\displaystyle 0=Ru+N^{T}x+B^{T}\lambda } (iv) 邊界條件 x ( t 0 ) = x 0 {\displaystyle x(t_{0})=x_{0}} 且 λ ( t 1 ) = F ( t 1 ) x ( t 1 ) {\displaystyle \lambda (t_{1})=F(t_{1})x(t_{1})} 考慮以下的連續時間線性系統 x ˙ = A x + B u {\displaystyle {\dot {x}}=Ax+Bu} 其成本泛函為 J = ∫ 0 ∞ ( x T Q x + u T R u + 2 x T N u ) d t {\displaystyle J=\int _{0}^{\infty }\left(x^{T}Qx+u^{T}Ru+2x^{T}Nu\right)dt} 可以讓成本最小化的回授控制律為 u = − K x {\displaystyle u=-Kx\,} 其中 K {\displaystyle K} 定義為 K = R − 1 ( B T P + N T ) {\displaystyle K=R^{-1}(B^{T}P+N^{T})\,} 而 P {\displaystyle P} 是代數Riccati方程的解 A T P + P A − ( P B + N ) R − 1 ( B T P + N T ) + Q = 0 {\displaystyle A^{T}P+PA-(PB+N)R^{-1}(B^{T}P+N^{T})+Q=0\,} 也可以寫成下式 A T P + P A − P B R − 1 B T P + Q = 0 {\displaystyle {\mathcal {A}}^{T}P+P{\mathcal {A}}-PBR^{-1}B^{T}P+{\mathcal {Q}}=0\,} 其中 A = A − B R − 1 N T Q = Q − N R − 1 N T {\displaystyle {\mathcal {A}}=A-BR^{-1}N^{T}\qquad {\mathcal {Q}}=Q-NR^{-1}N^{T}\,} 考慮離散時間的線性系統，定義如下 x k + 1 = A x k + B u k {\displaystyle x_{k+1}=Ax_{k}+Bu_{k}\,} 其性能指標為 J = x N T Q x N + ∑ k = 0 N − 1 ( x k T Q x k + u k T R u k + 2 x k T N u k ) {\displaystyle J=x_{N}^{T}Qx_{N}+\sum \limits _{k=0}^{N-1}\left(x_{k}^{T}Qx_{k}+u_{k}^{T}Ru_{k}+2x_{k}^{T}Nu_{k}\right)} 可以讓性能指標最小化的最佳控制序列為 u k = − F k x k {\displaystyle u_{k}=-F_{k}x_{k}\,} 其中 F k = ( R + B T P k + 1 B ) − 1 ( B T P k + 1 A + N T ) {\displaystyle F_{k}=(R+B^{T}P_{k+1}B)^{-1}(B^{T}P_{k+1}A+N^{T})\,} 而 P k {\displaystyle P_{k}} 是由動態Riccati方程倒退時間佚代計算而得 P k − 1 = A T P k A − ( A T P k B + N ) ( R + B T P k B ) − 1 ( B T P k A + N T ) + Q {\displaystyle 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 {\displaystyle P_{N}=Q} 開始計算。注意 u N {\displaystyle u_{N}} 沒有定義，因為 x {\displaystyle x} 是由 A x N − 1 + B u N − 1 {\displaystyle Ax_{N-1}+Bu_{N-1}} 推導到其最終狀態 x N {\displaystyle x_{N}} 。 考慮離散時間的線性系統，定義如下 x k + 1 = A x k + B u k {\displaystyle x_{k+1}=Ax_{k}+Bu_{k}\,} 其性能指標為 J = ∑ k = 0 ∞ ( x k T Q x k + u k T R u k + 2 x k T N u k ) {\displaystyle J=\sum \limits _{k=0}^{\infty }\left(x_{k}^{T}Qx_{k}+u_{k}^{T}Ru_{k}+2x_{k}^{T}Nu_{k}\right)} 可以讓性能指標最小化的最佳控制序列為 u k = − F x k {\displaystyle u_{k}=-Fx_{k}\,} 其中 F = ( R + B T P B ) − 1 ( B T P A + N T ) {\displaystyle F=(R+B^{T}PB)^{-1}(B^{T}PA+N^{T})\,} 而 P {\displaystyle P} 是離散代數Riccati方程（DARE）的唯一正定解。 P = A T P A − ( A T P B + N ) ( R + B T P B ) − 1 ( B T P A + N T ) + Q {\displaystyle P=A^{T}PA-(A^{T}PB+N)\left(R+B^{T}PB\right)^{-1}(B^{T}PA+N^{T})+Q} . 可以寫成 P = A T P A − A T P B ( R + B T P B ) − 1 B T P A + Q {\displaystyle P={\mathcal {A}}^{T}P{\mathcal {A}}-{\mathcal {A}}^{T}PB\left(R+B^{T}PB\right)^{-1}B^{T}P{\mathcal {A}}+{\mathcal {Q}}} 其中 A = A − B R − 1 N T Q = Q − N R − 1 N T {\displaystyle {\mathcal {A}}=A-BR^{-1}N^{T}\qquad {\mathcal {Q}}=Q-NR^{-1}N^{T}} . 而求解代數Riccati方程的一個方式是迭代計算有限時間的動態Riccati方程，直到所得的解收斂為止。 Chow, Gregory C. Analysis and Control of Dynamic Economic Systems. Krieger Publ. Co. 1986. ISBN 0-89874-969-7.  Kwakernaak, Huibert & Sivan, Raphael. Linear Optimal Control Systems. First Edition. Wiley-Interscience. 1972. ISBN 0-471-51110-2.  Sontag, Eduardo. Mathematical Control Theory: Deterministic Finite Dimensional Systems. Second Edition. Springer. 1998. ISBN 0-387-98489-5.  MATLAB function for Linear Quadratic Regulator design （页面存档备份，存于互联网档案馆） Mathematica function for Linear Quadratic Regulator design （页面存档备份，存于互联网档案馆）