黃揚(yáng)煉,雙 豐,周 翔
(廣西大學(xué)電氣工程學(xué)院,廣西 南寧 530004)
隨著智能控制技術(shù)在無(wú)人直升機(jī)控制中的應(yīng)用,無(wú)人直升機(jī)作為人工智能設(shè)備逐漸出現(xiàn)在大眾的視野之內(nèi),無(wú)人直升機(jī)的應(yīng)用領(lǐng)域涉及軍工[1]、農(nóng)業(yè)[2]、商用[3]和救援救災(zāi)[4]等方面。無(wú)人直升機(jī)的應(yīng)用如此廣泛,是建立在良好的姿態(tài)控制基礎(chǔ)上的,因此研究直升機(jī)的姿態(tài)控制具有重要意義。
經(jīng)典的直升機(jī)姿態(tài)控制算法中有PID[5]、LQR[6]和H∞等[7]線性控制方法,但這些方法只能滿足直升機(jī)懸停點(diǎn)附近或小機(jī)動(dòng)下的飛行性能,文獻(xiàn)[8]設(shè)計(jì)的增益調(diào)度控制算法雖然可以滿足直升機(jī)的全包線飛行但會(huì)出現(xiàn)抖振現(xiàn)象。近年來(lái),MPC算法因?yàn)槟苡行У靥幚矶嘧兞?、有約束的問(wèn)題被廣泛應(yīng)用于直升機(jī)控制中。文獻(xiàn)[9,10]以懸停點(diǎn)的LTI模型作為預(yù)測(cè)模型為直升機(jī)設(shè)計(jì)的LTIMPC控制器,在直升機(jī)離開(kāi)懸停點(diǎn)或高機(jī)動(dòng)飛行時(shí)會(huì)出現(xiàn)預(yù)測(cè)模型失配。文獻(xiàn)[11]利用非線性模型作為預(yù)測(cè)模型為四旋翼設(shè)計(jì)的NMPC控制器雖然解決了預(yù)測(cè)模型失配問(wèn)題,但因其計(jì)算復(fù)雜度高而無(wú)法輕易實(shí)現(xiàn)。文獻(xiàn)[12]用線性時(shí)變(LTV)模型作為預(yù)測(cè)模型,為直升機(jī)設(shè)計(jì)了LTV MPC控制器,相比NMPC來(lái)說(shuō)該算法復(fù)雜度降低但沒(méi)考慮擾動(dòng)問(wèn)題。在抗擾動(dòng)控制器設(shè)計(jì)方面,文獻(xiàn)[13]為四旋翼設(shè)計(jì)的ADRC控制器只適用于擾動(dòng)量與控制量在同一通道的系統(tǒng),而直升機(jī)的外擾動(dòng)與控制量一般不在同一個(gè)通道。文獻(xiàn)[14,15]結(jié)合ESO與MPC為直升機(jī)設(shè)計(jì)了控制器,文獻(xiàn)[14]直接用控制量對(duì)ESO觀測(cè)到的擾動(dòng)進(jìn)行前饋補(bǔ)償會(huì)導(dǎo)致控制量飽和而無(wú)法完全補(bǔ)償大擾動(dòng)問(wèn)題。文獻(xiàn)[15]利用ESO觀測(cè)到的擾動(dòng)與系統(tǒng)模型相結(jié)合但MPC中的預(yù)測(cè)模型采用的仍是LTI模型。
與文獻(xiàn)[14,15]的方法不同,本文提出的ESO+LTVMPC控制算法結(jié)合了ADRC和LTV MPC算法的優(yōu)點(diǎn),利用ESO觀測(cè)到的擾動(dòng)力矩補(bǔ)充到非線性模型中并線性化得到LTV模型,并將此LTV模型作為MPC的預(yù)測(cè)模型為直升機(jī)設(shè)計(jì)LTVMPC控制器。最后將本文設(shè)計(jì)的ESO+LTVMPC算法與PID、LTI MPC和LTV MPC算法進(jìn)行姿態(tài)跟蹤和抗風(fēng)擾仿真對(duì)比。
本文的研究對(duì)象為小型無(wú)人共軸雙旋翼直升機(jī),根據(jù)機(jī)理建模法可以得到共軸式直升機(jī)的非線性數(shù)學(xué)模型。
根據(jù)文獻(xiàn)[16],把直升機(jī)當(dāng)作剛體,直升機(jī)的運(yùn)動(dòng)學(xué)模型可以描述為
(1)
式中φ,θ,ψ是歐拉角;p,q,r是機(jī)體軸系下的角速度。
直升機(jī)的剛體動(dòng)力學(xué)模型可以由牛頓-歐拉方程描述,具體表達(dá)式為
(2)
(3)
上旋翼槳葉的揮舞運(yùn)動(dòng)是一個(gè)比較復(fù)雜的非線性耦合系統(tǒng),根據(jù)文獻(xiàn)[19]旋翼的揮舞運(yùn)動(dòng)方程可以表示為
(4)
其中,Abs、Bas分別是縱、橫向揮舞運(yùn)動(dòng)間的耦合效應(yīng)系數(shù),τ是上旋翼?yè)]舞運(yùn)動(dòng)時(shí)間常數(shù),它們的具體計(jì)算表達(dá)式可以參考文獻(xiàn)[19];δlon、δlat為傾斜盤(pán)的橫、縱向輸入,Alon是δlon到槳葉橫向周期變距角的放大倍數(shù),Blat是δlat到槳葉縱向周期變距角的放大倍數(shù)。
聯(lián)立式(1)到式(4),整理得到共軸雙旋翼直升機(jī)的非線性數(shù)學(xué)模型為
(5)
根據(jù)式(5),本文研究的共軸雙旋翼直升機(jī)的非線性數(shù)學(xué)模型結(jié)構(gòu)如圖1所示,直升機(jī)的非線性數(shù)學(xué)模型參數(shù)如表1所示。
表1 模型參數(shù)
圖1 模型結(jié)構(gòu)
為了驗(yàn)證本文建立的非線性數(shù)學(xué)模型與真實(shí)直升機(jī)動(dòng)態(tài)的關(guān)系,根據(jù)式(5)在simulink中搭建直升機(jī)的仿真模型,在相同PID控制器參數(shù)和相同的姿態(tài)參考值下,對(duì)比仿真模型的輸出曲線與直升機(jī)的真實(shí)飛行動(dòng)態(tài)曲線,對(duì)比結(jié)果如圖2所示。俯仰角與橫滾角的仿真結(jié)果類似。
圖2 模型驗(yàn)證
由圖2可知,本文所建立的共軸直升機(jī)非線性數(shù)學(xué)模型很好地體現(xiàn)了直升機(jī)的真實(shí)動(dòng)態(tài),可以用于控制器設(shè)計(jì)和仿真。
為了降低ESO的階次,分別為橫滾通道和俯仰通道設(shè)計(jì)各自的ESO。以橫滾通道為例,首先從式(5)中提取出橫滾姿態(tài)模型,并展開(kāi)為如下形式
(6)
(7)
(8)
其中
(9)
V=[p1,p2,p3,p4]; Lroll=(place(Aroll′,C′,V))′;
俯仰通道ESO的設(shè)計(jì)方法與橫滾通道的設(shè)計(jì)方法類似,這里不再贅述。為了第3節(jié)中對(duì)俯仰ESO觀測(cè)值的使用,記3為as的觀測(cè)值,4為的觀測(cè)值。
不考慮偏航通道,從式(5)中提取出共軸直升機(jī)的非線性姿態(tài)模型,根據(jù)第2節(jié)中的假設(shè)(4)和假設(shè)(6)可以將非線性姿態(tài)模型化為
(10)
令x(t)=[φ,θ,p,q,as,bs]T,u(t)=[δlon,δlat]T將式(10)寫(xiě)成如下形式
(11)
將式(11)進(jìn)一步線性化。將式(11)在t0時(shí)刻對(duì)應(yīng)的系統(tǒng)運(yùn)行點(diǎn)(x(t0),u(t0))附近進(jìn)行一階泰勒展開(kāi),得到:
(12)
(13)
令可測(cè)量狀態(tài)向量η=[φ,θ,p,q,r]T,采樣周期為T(mén),則式(13)中的系數(shù)矩陣計(jì)算方法如下
LTVMPC與LTIMPC算法的唯一區(qū)別是,LTVMPC算法中的預(yù)測(cè)模型是線性時(shí)變的,而LTIMPC算法的預(yù)測(cè)模型是線性時(shí)不變的。因此,當(dāng)系統(tǒng)運(yùn)行偏離平衡點(diǎn)較遠(yuǎn)時(shí),MPC算法常常會(huì)發(fā)生預(yù)測(cè)模型失配的現(xiàn)象,導(dǎo)致控制性能下降,而LTVMPC算法的預(yù)測(cè)模型是線性時(shí)變模型,隨著系統(tǒng)工作點(diǎn)的變化而變化,所以LTVMPC算法基本上不會(huì)出現(xiàn)預(yù)測(cè)模型失配現(xiàn)象。
第3節(jié)已經(jīng)求得直升機(jī)的LTV模型,以此LTV模型作為預(yù)測(cè)模型設(shè)計(jì)LTVMPC姿態(tài)控制器。一般情況下,LTVMPC算法的目標(biāo)函數(shù)取如下形式
(14)
其中,Y(k)是預(yù)測(cè)矩陣,可以根據(jù)式(13)求得。ΔU(k)是控制增量矩陣,Yref(k)是參考值矩陣,U(k)是控制矩陣,它們的具體表達(dá)式可以參考文獻(xiàn)[20]。ε是防止式(14)無(wú)法求得最優(yōu)解而引入的松弛因子。ρ、Q、R 和S 為權(quán)重矩陣。
根據(jù)文獻(xiàn)[21]的方法可以將目標(biāo)函數(shù)式(14)化為標(biāo)準(zhǔn)二次型形式
(15)
其中,系數(shù)矩陣Hk、Gk、Pk、N、S、Mmin、Mmax的具體表達(dá)式可以參考文獻(xiàn)[21]。求解一個(gè)ΔU(k)使得目標(biāo)函數(shù)式(15)最小是一個(gè)標(biāo)準(zhǔn)二次規(guī)劃問(wèn)題,本文使用matlab的quadprog函數(shù)求解式(15)。求得的ΔU(k)即LTVMPC算法在控制時(shí)域內(nèi)的最優(yōu)控制序列,取該序列的第一個(gè)元素作為k時(shí)刻的控制量作用于系統(tǒng)。
本文設(shè)計(jì)的ESO+LTVMPC姿態(tài)控制算法的控制結(jié)構(gòu)如圖3所示。為了進(jìn)行對(duì)比實(shí)驗(yàn),另外設(shè)計(jì)離散串聯(lián)PID算法、LTIMPC算法、LTVMPC算法,并給出對(duì)比實(shí)驗(yàn)結(jié)果。
ESO+LTVMPC姿態(tài)控制算法中,橫滾ESO和俯仰ESO的閉環(huán)極點(diǎn)取V=[-10-25i,-10+25i,-180-15i,-180+15i];線性時(shí)變模型預(yù)測(cè)控制算法的權(quán)重矩陣取Q=diag(17,17,1,1),R=diag(0.5,0.5),ρ=2,S=diag(0.1,0.1);預(yù)測(cè)時(shí)域P=20;控制時(shí)域M=2;采樣時(shí)間T=0.0025s;期望角速率pr=qr≡0。
離散串聯(lián)PID姿態(tài)控制算法的角度環(huán)的PI參數(shù)取P=5,I=2;角速度環(huán)的PID參數(shù)取P=0.6,I=3,D=0.001。
LTIMPC算法、LTVMPC算法的各參數(shù)與ESO+LTVMPC算法的參數(shù)保持相同。MPC算法的預(yù)測(cè)模型取直升機(jī)懸停點(diǎn)的LTI模型,LTVMPC算法的預(yù)測(cè)模型取無(wú)ESO補(bǔ)充值的LTV模型。
圖3 控制結(jié)構(gòu)圖
對(duì)上述4種算法做4組不同的仿真,4組實(shí)驗(yàn)的實(shí)驗(yàn)內(nèi)容比較如表2所示。另外,由于俯仰角的仿真結(jié)果與橫滾角的仿真結(jié)果相似,下面只給出橫滾角的仿真結(jié)果。
表2 實(shí)驗(yàn)內(nèi)容比較
圖4 風(fēng)擾為正弦波下的橫滾角仿真結(jié)果
圖5 風(fēng)擾為階躍波下的橫滾角仿真結(jié)果
圖6 風(fēng)擾為正弦波橫滾角參考值為矩形波的仿真結(jié)果
圖7 風(fēng)擾為階躍波橫滾角參考值為矩形波的仿真結(jié)果
由圖4和圖5可知,在正弦波或者階躍波風(fēng)擾條件下,ESO+LTVMPC算法的抗干擾能力是最強(qiáng)的,能夠迅速抑制擾動(dòng)并回到0位置,而其它算法會(huì)產(chǎn)生不同程度的等幅震蕩或衰減震蕩。由圖6和圖7可知,ESO+LTVMPC算法在正弦風(fēng)擾或者階躍風(fēng)擾力矩作用下的姿態(tài)跟蹤性能是最好的,幾乎可以達(dá)到無(wú)靜差無(wú)超調(diào)地跟蹤參考值,而其它算法會(huì)產(chǎn)生靜差和超調(diào),LTIMPC算法因?yàn)轭A(yù)測(cè)模型失配的原因控制效果最差。在所有實(shí)驗(yàn)中ESO則很好的觀測(cè)到了總擾動(dòng),由于ESO觀測(cè)到的是總擾動(dòng)(內(nèi)擾動(dòng)+外界風(fēng)擾),因此,總擾動(dòng)與風(fēng)擾輸入曲線存在輕微的差異。
把直升機(jī)當(dāng)作剛體,通過(guò)機(jī)理建模得到了共軸式直升機(jī)的非線性數(shù)學(xué)模型,并通過(guò)直升機(jī)實(shí)際飛行數(shù)據(jù)驗(yàn)證了所建立模型的可行性。
假設(shè)外界風(fēng)擾作為一個(gè)力矩項(xiàng)只直接作用于角速度通道,設(shè)計(jì)了ESO觀測(cè)系統(tǒng)所受的擾動(dòng)力矩并補(bǔ)充到直升機(jī)非線性微分方程中,對(duì)補(bǔ)充擾動(dòng)力矩后的微分方程進(jìn)行泰勒展開(kāi)得到了直升機(jī)的LTV模型,基于此模型設(shè)計(jì)了LTVMPC姿態(tài)控制器,并將LTVMPC問(wèn)題轉(zhuǎn)化為QP問(wèn)題進(jìn)行求解。
設(shè)計(jì)了串聯(lián)離散PID、LTIMPC、LTVMPC算法與本文算法進(jìn)行仿真對(duì)比,驗(yàn)證了本文設(shè)計(jì)的ESO+LTVMPC姿態(tài)控制算法的抗擾動(dòng)能力和姿態(tài)跟蹤能力。
本文設(shè)計(jì)的ESO+LTVMPC算法擁有很好的姿態(tài)跟蹤性能和抗干擾能力,但是也存在一些不足。第一,該算法中的ESO模塊對(duì)傳感器噪聲是比較敏感的;第二,算法中需要調(diào)節(jié)的參數(shù)相比PID或者LTIMPC算法要多;第三,算法結(jié)構(gòu)復(fù)雜。因此,作者下一步的工作計(jì)劃,主要側(cè)重于算法的參數(shù)如何快速整定問(wèn)題、硬件平臺(tái)的算法實(shí)施和傳感器濾波等問(wèn)題。