LQR控制器

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

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

簡介

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

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})}

無限時間長度,連續時間的LQR

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

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

有限時間長度,離散時間的LQR

考慮離散時間的線性系統,定義如下 [1]

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

無限時間長度,離散時間的LQR

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

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方程,直到所得的解收斂為止。

參考資料

  1. ^ 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 (页面存档备份,存于互联网档案馆