MPC控制
我們的 MPC 的目標是找到反作用力,使質點遵循給定的軌跡。在 MPC 的優化過程中,步態調度器和步長規劃器預先定義了接觸序列。 這讓公式保持凸性,使得優化問題求解速度快,並且可以始終求解到唯一的全局最小值。 而在非線性優化中並不總是可以得到的。
1、線性模型
由於力臂的交叉積項和轉向動力學,即使是簡單的質點模型也不是完全線性的。爲了實現線性MPC公式,我們應用了三個簡化。
a、假設滾動和俯仰角很小。
基於這個假設,我們可以簡化座標變換如下:
Θ˙≈Rz(ψ)ω(4)
gI≈Rz(ψ)BIRz(ψ)T(5)
其中
- Θ˙=[ϕ˙θ˙ψ˙]T:爲機體的角速度(分別對應roll,pitch,yaw)
- Rz(ψ):旋轉矩陣,將角速度映射到世界座標系
- ω:機身座標系下的角速度
- gI:世界座標系下的慣性張量
- BI:機身座標系下的慣性張量
b、狀態與指定軌跡接近
我們利用旋轉矩陣中的指令ψ,創建了時變線性動力學方程,並且利用命令的軌跡和當前步位置所計算出的預定軌跡設置等式(2)中的力臂。
c、俯仰和滾轉速度都很小, 慣性張量的非對角線項也很小。
基於上兩個假設,等式2近似於:
dtd(Iω)=Iω˙+ω×(Iω)≈Iω˙(6)
2、構建優化問題
將1中的簡化結果整理成以下三條公式:
Θ=RzT(ψ)ω(a)
i=1∑nri×fi=Iω˙(b)
p¨=m∑i=1nfi−g(c)
將式(a)~(b)組合寫成矩陣計算形式如下:
⎣⎢⎢⎡Θpωp˙⎦⎥⎥⎤=A⎣⎢⎢⎡Θpωp˙⎦⎥⎥⎤+B⎣⎢⎢⎡f1..fn⎦⎥⎥⎤+⎣⎢⎢⎡030303g⎦⎥⎥⎤
其中:
A=⎣⎢⎢⎡13×303×303×303×303×313×303×303×3Rz(ψk)Δt03×313×303×303×313×3Δt03×313×3⎦⎥⎥⎤
B=⎣⎢⎢⎡03×303×3gI[r1]×Δt13×3Δt/m............03×303×3gI[rn]×Δt13×3Δt/m⎦⎥⎥⎤
[rn]爲反對稱矩陣,形式如下:
⎣⎡0rz−ry−rz0rxry−rx0⎦⎤
簡化表達爲一下形式:
x(k+1)=Akx(k)+Bkf(k)+g
爲了減小問題的大小,我們消除了對應於不接觸地面的腳的地面 反作用力的變量。 這減少了成本和約束矩陣的大小,在實踐 中,我們的速度超過 10 倍。
3、最優化問題求解
假設參考軌跡如下(h爲軌跡長度):
χˉ=[xk+1ˉxk+2ˉxk+3ˉ...xk+hˉ]T
將2中的線性模型表達成以下形式:
X=AqpX0+BqpU
X∈R13k 是表示狀態的軌跡的向量(多個預測狀態的集合),U∈R3nk是控制量(地面反作用力)。則MPC的一個簡單的目標代價函數如下:
Umins.t.21UTHU+UTgcmin≤CU≤cmax
其中C是一個約束矩陣,且:
H=2(BqpTLBqp+K)g=2BqpTL(Aqpx0−y)
L∈R13k×13k爲狀態偏離權重,是一個對角矩陣,K∈R3nk×3nk爲力大小的一個對角權重矩陣。
構建好最優化問題後,可有二次規劃的方法求解,得到滿足目標代價函數的最優控制序列:
U=[ukuk+1uk+2uk+3...uk+h−1]
取第一組數組作爲輸出值作爲期望地面反作用力,即uk