該文檔用以總結離散LQR的基本原理,反饋控制率的求解和一些拓展(時變系統,跟蹤命題等)。主要參考的是Stanford的課程EE363: Linear Dynamical Systems的部分課件。
目錄
1 有限時域離散LQR的基本原理
這裏我們首先考慮一個離散的線性系統:
xt+1=Axt+But,x0=xinit
LQR的目標就在於,找到一組控制序列
u0,u1,... 能夠使得:
- x0,x1,... 儘量小,即將狀態調節到零點;
- u0,u1,... 儘量小,即控制器付出較小的努力;
然而,這兩個目標往往是衝突的,因爲較大的控制作用u 能更快地將狀態調節到零點。因此LQR就是根據需要設計出一組控制率來實現上面兩個目標的權衡。
爲此,我們定義如下的二次代價函數(quadratic cost function):
J(U)=∑τ=0N−1(xTτQxτ+uTτRuτ)+xTNQfxN
這裏
U=(u0,u1,...,uN−1) ,且
Q=QT≥0,Qf=QTf≥0,R=RT>0
分別被稱爲 state cost, final state cost, input cost 矩陣。
代價函數中的三項分別用來衡量狀態偏差,輸入偏差以及最終狀態偏差。Q 和 R 用來確定狀態和輸入的相對權重。
因此,LQR的問題就是,找到一組序列:ulqr0,...,ulqrN−1 來最小化代價函數 J(U) 。
通常 Q 和 R 的形式爲:
R=ρI,Q=Qf=CTC
這裏
C∈Rp×n,ρ∈R,ρ>0 。
於是,代價函數就可以變形爲:
J(U)=∑τ=0N∥yτ∥2+ρ∑τ=0N−1∥uτ∥2
這裏
y=Cx ,
ρ√ 在這裏給出了輸出和輸入的相對權重。
2 基於動態規劃(Dynamic Programming)的求解
LQR命題也可以通過最小二乘(least-squares)的方法求解,但這裏我們只討論基於動態規劃的求解方法。
這裏我們首先定義一個價值函數(value function)Vt:Rn→R
Vt(z)=minut,...,uN−1∑τ=tN−1(xTτQxτ+uTτRuτ)+xTNQfxN
滿足約束
xt=z,xτ+1=Axτ+Buτ,τ=t,...,N−1
即,Vt(z) 給出的是從 t 時刻的狀態 z 開始的LQR的代價函數。當 t=0 時,V0(x0) 就是原始的LQR代價函數。
我們可以證明 Vt 是二次型,即Vt(z)=zTPtz ,其中 Pt=PTt≥0 。
首先,我們可以知道,當 t=N 時有:
VN(z)=zTQfz
因此我們有
PN=Qf 。
現在我們假設Vt+1(z) 已知,根據動態規劃(DP)的原理,有:
Vt(z)=minw(zTQz+wTRw+Vt+1(Az+Bw))
- zTQz+wTRw 是從當前時刻的代價值
- Vt+1(A+Bwz) 是從下一時刻到 N 時刻的代價值。
因此這就是一個典型的動態規劃問題。
因爲當前狀態 z 與優化命題無關,因此上面的優化命題也可以改寫爲:
Vt(z)=zTQz+minw(wTRw+Vt+1(Az+Bw))
也就是說,當前時刻
t 的控制率
ut 取值應該如下:
ulqrt=argminw(wTRw+Vt+1(Az+Bw))
假設Vt+1(z)=zTPt+1z,Pt+1=PTt+1≥0 ,我們可以證明Vt 具有同樣的形式。
將Vt+1(z)=zTPt+1z 代入上面Vt(z) 的表達式,即有:
Vt(z)=zTQz+minw(wTRw+(Az+Bw)TPt+1(Az+Bw))
對於這樣一個無約束的凸優化命題令其導數等於0即可以得到最優解。導數等於0得到的等式爲:
2wTR+2(Az+Bw)TPt+1B=0
因此,當前時刻的最優控制率爲:
w∗=−(R+BTPt+1B)−1BTPt+1Az
將上面的結果代入Vt(x) 的表達式,即
Vt(z)=zTQz+w∗TRw∗+(Az+Bw∗)TPt+1(Az+Bw∗)=zT(Q+ATPt+1A−ATPt+1B(R+BTPt+1)−1BTPt+1A)z=zTPtz
其中,
Pt=Q+ATPt+1A−ATPt+1B(R+BTPt+1)−1BTPt+1A
容易證明 Pt=PTt≥0
因此,LQR的求解過程可以總結如下:
- set PN:=Qf
- for t=N,...,1,
Pt−1:=Q+ATPtA−ATPtB(R+BTPt)−1BTPtA
- for t=0,...,.N−1 , define Kt:=−(R+BTPt+1B)−1BTPt+1A
- for t=0,...,.N−1 , ulqrt=Ktxt
從上面的推導我們可以看出,LQR中,最優控制率是狀態的線性反饋。
當t 遠小於 N 的時候,穩態的 Pss 可以近似收斂並滿足下面的方程:
Pss=Q+ATPssA−ATPssB(R+BTPss)−1BTPssA
這個方程被稱爲代數黎卡提方程(algebraic Riccati equation, ARE)。
因此,當時刻
t 距時域終點
N 較遠時,LQR的控制率可以近似看作狀態
x 的常數反饋,即
ut=Kssxt,Kss=−(R+BTPssB)−1BTPssA
3 一些拓展
針對時變系統
xt+1=Atxt+Btut
我們可以定義對應的時變代價函數
J=∑τ=0N−1(xTτQτxτ+uTτRτuτ)+xTNQfxN
可以看到,終點時刻的加權陣 Qf 並沒有發生變化,因此前面根據DP推導得到的LQR的架構可以直接拓展到時變系統。顯然,前面提到的穩態情況下的常值反饋在時變系統中將不復存在。
針對跟蹤命題,代價函數可以寫成
J=∑τ=0N−1(xτ−x¯τ)TQτ(xτ−x¯τ)+∑τ=0N−1(uτ−u¯τ)TRτ(uτ−u¯τ)
(簡要起見這裏捨去了終端狀態的代價)
其中,
x¯τ 和
u¯τ 分別是狀態和輸入要跟蹤的軌跡。
通過一些附加的推導,前面DP推導的結果也可以運用在這樣的跟蹤命題中。
Ref.
Stanford, EE363: Linear Dynamical Systems