線性二次調節器

最優控制理論主要探討的是讓動力系統以在最小成本來運作，若系統動態可以用一組線性微分方程表示，而其成本為二次泛函，這類的問題稱為線性二次（LQ）問題。此類問題的解即為**線性二次調節器**（英語：linear–quadratic regulator），簡稱 **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}Qx+u^{T}Ru+2x^{T}Nu\right)dt$

其中 F、Q 和 R 都是正定矩陣。

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

　
: $u=-Kx\,$

其中 $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^{T}x+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}Qx+u^{T}Ru+2x^{T}Nu\right)dt$

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

　
: $u=-Kx\,$

其中 $K$ 定義為

　
: $K=R^{-1}(B^{T}P+N^{T})\,$

而 $P$ 是代數 Riccati 方程的解

　
: $A^{T}P+PA-(PB+N)R^{-1}(B^{T}P+N^{T})+Q=0\,$

也可以寫成下式

　
: ${\mathcal {A}}^{T}P+P{\mathcal {A}}-PBR^{-1}B^{T}P+{\mathcal {Q}}=0\,$

其中

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

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

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

　
: $x_{k+1}=Ax_{k}+Bu_{k}\,$

其性能指標為

　
: $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}\,$

其中

　
: $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$ 是由 $Ax_{N-1}+Bu_{N-1}$ 推導到其最終狀態 $x_{N}$ 。

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

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

　
: $x_{k+1}=Ax_{k}+Bu_{k}\,$

其性能指標為

　
: $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}=-Fx_{k}\,$

其中

　
: $F=(R+B^{T}PB)^{-1}(B^{T}PA+N^{T})\,$

而 $P$ 是離散代數 Riccati 方程（DARE）的唯一正定解。

　
: $P=A^{T}PA-(A^{T}PB+N)\left(R+B^{T}PB\right)^{-1}(B^{T}PA+N^{T})+Q$ .

可以寫成

　
: $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}}$

其中

　
: ${\mathcal {A}}=A-BR^{-1}N^{T}\qquad {\mathcal {Q}}=Q-NR^{-1}N^{T}$ .

而求解代數 Riccati 方程的一個方式是迭代計算有限時間的動態 Riccati 方程，直到所得的解收斂為止。

## 參考資料

　
: * 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 （頁面存檔備份，存於網際網路檔案館）