最优控制理論主要探討的是讓动力系统以在最小成本來運作，若系統動態可以用一組线性微分方程表示，而其成本為二次泛函，這類的問題稱為線性二次（LQ）問題。此類問題的解即為**線性二次調節器**（英語：），簡稱**LQR**。

LQR是回授控制器，方程式在後面會提到。LQR是LQG（線性二次高斯）問題解當中重要的一部份。而LQG問題和LQR問題都是控制理论中最基礎的問題之一。

簡介
--

控制機器（例如飛機）的控制器，或是控制製程（例如化學反應）的控制器，可以進行最佳控制，方式是先設定成本函數，再由工程師設定加權，利用數學演算法來找到使成本函數最小化的設定值。成本函數一般會定義為主要量測量（例如飛行高度或是制程溫度）和理想值的偏差的和。演算法會設法調整參數，讓這些不希望出現的偏差降到最小。而控制量的大小本身也會包括在成本函數中。

LQR演算法減少了工程師為了讓控制器最佳化，而需付出的心力。不過工程師仍然要列出成本函數的相關參數，並且將結果和理想的設計目標比較。因此控制器的建構常會是迭代的，工程師在模擬過程中決定最佳控制器，再去調整參數讓結果更接近設計目標。

在本質上，LQR演算法是找尋合適狀態回授控制器的自動化方式。因此也常會有控制工程師用其他替代方式，例如全狀態回授（也稱為極點安置）的作法，此作法對控制器參數和控制器性能之間的關係比較明確。而LQR演算法的困難之處在找合適的加權因子，這也限制了以LQR控制器合成的相關應用。

有限時間長度，連續時間的LQR
---------------

方程式如下的連續時間線性系統，{\displaystyle t\in [t\_{0},t\_{1}]}：

{\displaystyle {\dot {x}}=Ax+Bu}
其二次成本泛函為

{\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都是正定矩陣。

可以讓成本最小化的回授控制律為

{\displaystyle u=-Kx\,}
其中K為

{\displaystyle K=R^{-1}(B^{T}P(t)+N^{T})\,}
而P是連續時間Riccati方程的解：

{\displaystyle A^{T}P(t)+P(t)A-(P(t)B+N)R^{-1}(B^{T}P(t)+N^{T})+Q=-{\dot {P}}(t)\,}
邊界條件如下

{\displaystyle P(t\_{1})=F(t\_{1}).}
Jmin的一階條件如下

**(i) 狀態方程**

{\displaystyle {\dot {x}}=Ax+Bu}
**(ii) 協態方程**

{\displaystyle -{\dot {\lambda }}=Qx+Nu+A^{T}\lambda }
**(iii) 靜止方程**

{\displaystyle 0=Ru+N^{T}x+B^{T}\lambda }
**(iv) 邊界條件**

{\displaystyle x(t\_{0})=x\_{0}}
且
{\displaystyle \lambda (t\_{1})=F(t\_{1})x(t\_{1})}

無限時間長度，連續時間的LQR
---------------

考慮以下的連續時間線性系統

{\displaystyle {\dot {x}}=Ax+Bu}
其成本泛函為

{\displaystyle J=\int \_{0}^{\infty }\left(x^{T}Qx+u^{T}Ru+2x^{T}Nu\right)dt}
可以讓成本最小化的回授控制律為

{\displaystyle u=-Kx\,}
其中K定義為

{\displaystyle K=R^{-1}(B^{T}P+N^{T})\,}
而P是代數Riccati方程的解

{\displaystyle A^{T}P+PA-(PB+N)R^{-1}(B^{T}P+N^{T})+Q=0\,}
也可以寫成下式

{\displaystyle {\mathcal {A}}^{T}P+P{\mathcal {A}}-PBR^{-1}B^{T}P+{\mathcal {Q}}=0\,}
其中

{\displaystyle {\mathcal {A}}=A-BR^{-1}N^{T}\qquad {\mathcal {Q}}=Q-NR^{-1}N^{T}\,}

有限時間長度，離散時間的LQR
---------------

考慮離散時間的線性系統，定義如下

{\displaystyle x\_{k+1}=Ax\_{k}+Bu\_{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)}
可以讓性能指標最小化的最佳控制序列為

{\displaystyle u\_{k}=-F\_{k}x\_{k}\,}
其中

{\displaystyle F\_{k}=(R+B^{T}P\_{k+1}B)^{-1}(B^{T}P\_{k+1}A+N^{T})\,}
而{\displaystyle P\_{k}}是由動態Riccati方程倒退時間佚代計算而得

{\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}
從終端條件{\displaystyle P\_{N}=Q}開始計算。注意{\displaystyle u\_{N}}沒有定義，因為 x 是由{\displaystyle Ax\_{N-1}+Bu\_{N-1}}推導到其最終狀態 {\displaystyle x\_{N}}。

無限時間長度，離散時間的LQR
---------------

考慮離散時間的線性系統，定義如下

{\displaystyle x\_{k+1}=Ax\_{k}+Bu\_{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)}
可以讓性能指標最小化的最佳控制序列為

{\displaystyle u\_{k}=-Fx\_{k}\,}
其中

{\displaystyle F=(R+B^{T}PB)^{-1}(B^{T}PA+N^{T})\,}
而P是離散代數Riccati方程（DARE）的唯一正定解。

{\displaystyle P=A^{T}PA-(A^{T}PB+N)\left(R+B^{T}PB\right)^{-1}(B^{T}PA+N^{T})+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}}}
其中

{\displaystyle {\mathcal {A}}=A-BR^{-1}N^{T}\qquad {\mathcal {Q}}=Q-NR^{-1}N^{T}}.
而求解代數Riccati方程的一個方式是迭代計算有限時間的動態Riccati方程，直到所得的解收斂為止。

參考資料
----

1. ↑  Chow, Gregory C.. Krieger Publ. Co. 1986. ISBN 0-89874-969-7.

* Kwakernaak, Huibert & Sivan, Raphael.. Wiley-Interscience. 1972. ISBN 0-471-51110-2.

* Sontag, Eduardo.. Springer. 1998. ISBN 0-387-98489-5.

外部連結
----

* MATLAB function for Linear Quadratic Regulator design （页面存档备份，存于）
* Mathematica function for Linear Quadratic Regulator design （页面存档备份，存于）