劉 斌,李佳窈,楊奕帆,周 鎮(zhèn)
(南昌航空大學(xué) 信息工程學(xué)院·南昌·330063)
近年來,隨著技術(shù)的發(fā)展,四旋翼無人機(jī)引起了人們越來越多的關(guān)注和重視,憑借其結(jié)構(gòu)簡單,飛行靈活,給人類的生活帶來了許多便利,如:航拍攝影、火災(zāi)救援、農(nóng)業(yè)灌溉、電力巡檢等。關(guān)于其飛控算法也吸引了大量學(xué)者,如常見的PID算法與非線性算法的結(jié)合,但是四旋翼無人機(jī)是一個多輸入、欠驅(qū)動、強(qiáng)耦合的非線性系統(tǒng),一般的控制算法在精度上可能有所不足。預(yù)測控制具有處理非線性和多約束的優(yōu)點(diǎn),在無人機(jī)飛行控制領(lǐng)域引起了廣泛關(guān)注,如文獻(xiàn)[6]中針對四旋翼無人機(jī)的容錯性,提出了一種預(yù)測控制算法作為魯棒控制系統(tǒng),能在部分執(zhí)行器失效時有良好的控制性能;外國學(xué)者Soyeon Koo等提出一種線性二次跟蹤器與預(yù)測控制相結(jié)合的控制策略,使得四旋翼無人機(jī)能自主降落到運(yùn)載工具之上。更多的研究結(jié)果可參考[8-9]等文獻(xiàn)。
一般的預(yù)測控制是處理較長時域優(yōu)化約束問題,在算法的實施過程中,每一時刻的控制序列只有第一個值作為當(dāng)前控制信號應(yīng)用于系統(tǒng)中,其他時刻的控制量需要反復(fù)重新計算,占用了一定的芯片計算資源,而無人機(jī)在空中作業(yè)時一般搭載著許多傳感器,也需要復(fù)雜的計算,兩者產(chǎn)生了一定的沖突。為降低預(yù)測控制的在線計算量,國內(nèi)外學(xué)者做了一些研究,如集結(jié)策略、預(yù)測控制在線快速算法等。
針對上述問題,本文提出一種新的預(yù)測控制方案,采用變量集結(jié)策略并加上終端代價函數(shù)與終端狀態(tài)約束,在保證系統(tǒng)穩(wěn)定性的前提下使計算量降低,并且一定程度降低系統(tǒng)優(yōu)化保守性,將此預(yù)測控制方案與PID控制相結(jié)合應(yīng)用于無人機(jī)的路徑跟蹤當(dāng)中,在MATLAB/Simulink下搭建系統(tǒng)模型并驗證算法可行。
由于結(jié)構(gòu)的不同,四旋翼無人機(jī)機(jī)型可分為“十”字型和“X”型,本文以“十”字型四旋翼無人機(jī)進(jìn)行敘述,在建立四旋翼飛行器數(shù)學(xué)模型前,做出如下假設(shè):
(1)四旋翼一般為低空低速飛行,忽略空氣阻力的影響;
(2)四旋翼飛行器在研究中視為剛體,忽略其彈性影響,總質(zhì)量m為常數(shù);
(3)機(jī)體幾何外形完全對稱且質(zhì)量分布均勻,質(zhì)心與幾何中心重合;
(4)每個電機(jī)所產(chǎn)生的升力與電機(jī)轉(zhuǎn)速的平方成正比;
(5)四旋翼懸停低速飛行時,認(rèn)為機(jī)體歐拉角變化很小,幾乎接近0(°)。
四旋翼的運(yùn)動過程分為線運(yùn)動和角運(yùn)動,對線運(yùn)動和角運(yùn)動運(yùn)用牛頓-歐拉法進(jìn)行建模得出以下模型
為了方便控制器設(shè)計,將四旋翼的飛行狀態(tài)分為四個獨(dú)立的通道:上下、橫滾、俯仰、偏航,定義控制量為
(2)
其中u
為上下通道控制量,u
為橫滾通道控制量,u
為俯仰通道控制量,u
為偏航通道控制量。把式(2)代入式(1)得到四旋翼動力學(xué)模型
(3)
四旋翼無人機(jī)的控制分為位置控制和姿態(tài)控制,為了實現(xiàn)較好的路徑跟蹤效果,位置控制器采用基于預(yù)測控制的控制策略,姿態(tài)控制器采用傳統(tǒng)的PID控制策略,控制結(jié)構(gòu)如圖1所示。
圖1 控制器結(jié)構(gòu)示意圖Fig.1 Schematic diagram of the controller
圖1中外環(huán)是位置控制,根據(jù)路徑發(fā)生器給出的三軸參考位置x
,y
,z
和四旋翼動力學(xué)模型反饋的三軸位置信息x
,y
,z
,以及三軸的速度信息u
,v
,w
,輸出四旋翼無人機(jī)上下通道控制量u
和三軸期望姿態(tài)角φ
,θ
,ψ
;內(nèi)環(huán)為姿態(tài)控制,根據(jù)期望姿態(tài)角φ
,θ
,ψ
和四旋翼動力學(xué)模型反饋的姿態(tài)角φ
,θ
,ψ
,輸出橫滾、俯仰、偏航通道的控制量u
,u
,u
。外環(huán)位置控制器采用了基于四旋翼無人機(jī)狀態(tài)空間模型的預(yù)測控制,與應(yīng)用最為廣泛的預(yù)測控制算法(動態(tài)矩陣控制)不同,由于根據(jù)四旋翼狀態(tài)空間模型設(shè)計的預(yù)測控制器,模型準(zhǔn)確度高,預(yù)測值接近于真實值,且狀態(tài)量大多可測,可以根據(jù)狀態(tài)量的變化主動校準(zhǔn)未來時刻的預(yù)測值,故不再設(shè)計額外的反饋校正。首先根據(jù)四旋翼狀態(tài)空間方程建立預(yù)測模型,然后設(shè)計預(yù)測控制器并對其改進(jìn),最后在線優(yōu)化通過求解目標(biāo)函數(shù)得到控制量并施加到系統(tǒng)。
(1)狀態(tài)空間模型
將四旋翼位置控制解耦為高度控制和x
,y
方向控制,通過輸入量u
可以計算出高度控制量,通過高度控制解算出來的控制量可以計算出x
,y
方向的控制量,因此先要求出高度控制量。(4)
表示z
軸的狀態(tài)量,表示z
軸的輸出量,表示z
軸的輸入量。則高度控制狀態(tài)空間模型為
(5)
其中
根據(jù)公式(3)令
(6)
式中:u
、u
是x
、y
軸的虛擬控制量,是x
、y
方向控制的狀態(tài)量,是x
、y
方向控制的輸出量。則x
,y
方向控制狀態(tài)空間模型為(7)
其中
x
,y
方向預(yù)測模型設(shè)計方法和過程一樣,下面僅以高度預(yù)測模型為例進(jìn)行敘述。(2)MPC模型
依據(jù)采樣周期對上述模型(5)進(jìn)行離散化為
(k
+1)=(k
)+(k
)k
)=(k
)(8)
其中=T
+,=T
,T
為采樣周期。定義控制增量
Δ(k
)=(k
)-(k
-1)(9)
則狀態(tài)變量寫成
(k
+1)=(k
)+(k
-1)+Δ(k
)(10)
則系統(tǒng)狀態(tài)空間方程寫成矩陣形式為
(11)
(12)
在式(12)的基礎(chǔ)上反復(fù)進(jìn)行遞推即可得到系統(tǒng)預(yù)測模型,這里直接給出結(jié)果
(13)
其中
k
)=[(k
+1|k
)(k
+2|k
) …(k
+N
|k
)]Δ(k
)=[Δ(k
|k
) Δ(k
+1|k
) …Δ(k
+N
-1|k
)]式中(k
)為預(yù)測狀態(tài)序列,(k
)為預(yù)測模型輸出序列,Δ
(k
)為控制增量序列,N
和N
分別為預(yù)測時域長度和控制時域長度,對于上述預(yù)測模型采用二次型目標(biāo)函數(shù)求解控制增量序列,該目標(biāo)函數(shù)包括兩方面:一是使預(yù)測值接近期望值,二是防止控制量變化劇烈從而選擇對控制增量加權(quán),具體如下(14)
其中(k
)為期望高度,和為誤差、控制加權(quán)矩陣,Δu
max為控制增量系統(tǒng)的最大值,在N
一定的情況下N
越大,系統(tǒng)的控制能力越強(qiáng),但是該控制器為有約束優(yōu)化問題,在線計算量大,而且在實際操作當(dāng)中,只采用當(dāng)前采樣時刻的控制增量Δ(k
),下一采樣時刻的Δ(k
+1)需要重復(fù)上述過程進(jìn)行計算,同樣會帶來較大的計算量。(3)變量集結(jié)的MPC
為了減少系統(tǒng)的計算量,在上文的基礎(chǔ)上采用了分段衰減集結(jié)的策略。將控制時域N
集結(jié)為三段,長度為{l
,l
,l
},l
=3。第一段集結(jié)序列為前三個采樣時間的控制增量;第二段集結(jié)序列為與第三個控制增量成等幅衰減序列的控制增量序列;第三段集結(jié)序列的選取借鑒雙??刂频乃枷耄羁刂圃隽繛轭A(yù)測狀態(tài)的線性反饋。取集結(jié)變換的形式為
Δ(k
)=(k
)(15)
則控制增量與集結(jié)優(yōu)化變量的關(guān)系為
Δ(k
+i
|k
)=(16)
其中,ρ
為第二段衰減集結(jié)序列的衰減系數(shù),K
為預(yù)測狀態(tài)的線性反饋系數(shù),集結(jié)優(yōu)化變量為(k
)=[(k
|k
),(k
+1|k
),(k
+N
|k
)](17)
式(17)中(k
|k
)=Δ(k
|k
),(k
+1|k
)=Δ(k
+1|k
),(k
+2|k
)=Δ(k
+2|k
),K
參見文獻(xiàn)[7]求出。集結(jié)矩陣為可以表示為(18)
將目標(biāo)函數(shù)改寫成如下形式
(19)
經(jīng)如此集結(jié)后,優(yōu)化變量由Δ(k
)變?yōu)?span id="j5i0abt0b" class="subscript">(k
),前兩段控制量在保證性能指標(biāo)優(yōu)化的同時通過集結(jié)降低了計算量,第三段集結(jié)序列降低了優(yōu)化保守性,盡管性能指標(biāo)有一定的損失,但由于降低了在線優(yōu)化變量數(shù)目更適合于四旋翼無人機(jī)飛控芯片處理。(4)加強(qiáng)穩(wěn)定性保證的MPC
為了加強(qiáng)系統(tǒng)穩(wěn)定性,引入終端代價函數(shù)和終端狀態(tài)約束,其中ε
為終端狀態(tài)約束集(20)
其中狀態(tài)加權(quán)矩陣通過黎卡蒂方程求解。經(jīng)過如上設(shè)計得到最終的預(yù)測控制器目標(biāo)函數(shù)為
(21)
無人機(jī)要求其控制器具有實時性。預(yù)測控制作為一種有約束在線優(yōu)化算法,如何降低在線計算量,滿足電機(jī)、逆變等毫秒甚至微秒級系統(tǒng)芯片的需求,是近年預(yù)測控制的一個研究熱點(diǎn),并取得了一些成果。如基于有效集的離線綜合/在線分區(qū)搜索策略、快速梯度下降法、多路復(fù)用技術(shù)等,可以在毫秒級的范圍內(nèi)實現(xiàn)系統(tǒng)的實時控制。本文結(jié)合上述無人機(jī)集結(jié)預(yù)測控制器的規(guī)模及無人機(jī)所提供的硬件資源,選擇擬牛頓法進(jìn)行求解,相較于梯度下降法和牛頓法而言,擬牛頓法收斂速度快,且使用正定矩陣近似Hessian矩陣改善了牛頓法每次需要求解復(fù)雜的Hessian矩陣的逆矩陣,減少了運(yùn)算量。求解得到k
時刻的優(yōu)化變量(k
),從而得到Δ(k
),算出k
時刻的控制量為(k
)=(k
-1)+Δ(k
)(22)
由高度預(yù)測控制器(k
)中提出的u
代入x
,y
方向控制器,用同樣的方法求解出虛擬控制量u
,u
。上文已解算出控制量u
,u
,由于偏航角變化幅度很小,令期望偏航角ψ
=0,期望俯仰角和期望滾轉(zhuǎn)角由式(6)反解而得,分別為(23)
姿態(tài)控制器采用傳統(tǒng)的PID控制器,將期望姿態(tài)與當(dāng)前姿態(tài)的差值做PID運(yùn)算得到四旋翼俯仰、橫滾、偏航通道的控制量如下
(24)
其中K
P、K
I、K
D分別是俯仰通道的比例、積分、微分系數(shù),K
P、K
I、K
D分別是橫滾通道的比較、積分、微分系數(shù),K
P、K
I、K
D分別是偏航通道的比較、積分、微分系數(shù)。為驗證所設(shè)計控制器的可行性,在MATLAB上搭建仿真,四旋翼參數(shù)如表1所示。
表1 四旋翼無人機(jī)參數(shù)表Tab.1 Parameter list of Quad-rotor UAV
位置控制器所用參數(shù)為:高度預(yù)測模型和x
,y
方向預(yù)測模型預(yù)測時域長度N
均為20,誤差加權(quán)矩陣分別為=diag(10,1)和=diag(10,1,10,1),控制時域長度N
均為10,控制加權(quán)矩陣分別為=diag(1,1)和=diag(1,1),控制約束u
max=25,u
max=10,集結(jié)矩陣中衰減系數(shù)ρ
=0.
6,終端狀態(tài)約束ε
=0.
5。姿態(tài)控制器所用PID參數(shù)為
仿真中給定的輸入?yún)⒖架壽E為
x
,y
,z
三個方向除了開始時因為初始點(diǎn)與參考軌跡有偏差之外,之后在每一個方向都能實現(xiàn)很好的路徑跟蹤效果,誤差幾乎為0。從圖4四旋翼無人機(jī)的姿態(tài)跟蹤軌跡,可以看出三個姿態(tài)角可以迅速地跟蹤上期望姿態(tài)角,實現(xiàn)姿態(tài)的快速響應(yīng)。圖2 四旋翼無人機(jī)路徑跟蹤三維效果圖Fig.2 3D rendering of path tracking of a Quad-rotor UAV
圖3 四旋翼無人機(jī)x,y,z方向路徑跟蹤軌跡Fig.3 Quad-rotor UAV x,y,z path tracking
圖4 四旋翼無人機(jī)姿態(tài)跟蹤Fig.4 Attitude tracking of Quad-rotor UAV
本文針對四旋翼無人機(jī)的路徑跟蹤問題,以四旋翼無人機(jī)狀態(tài)空間模型為基礎(chǔ)建立起預(yù)測模型并對其改進(jìn),利用分段集結(jié)策略降低優(yōu)化計算量和優(yōu)化保守性的同時,引入終端代價函數(shù)和終端狀態(tài)約束提升系統(tǒng)的穩(wěn)定性,以MATLAB/Simulink進(jìn)行仿真實驗驗證算法有效性,實驗結(jié)果表明本文所設(shè)控制器在進(jìn)行路徑跟蹤時效果良好。