陳保國,史春景,王 磊,吳東旭,郝永平
(沈陽理工大學兵器科學技術研究中心,遼寧 沈陽 110159)
近年來,隨著無人機(UAV,Unmanned Aerial Vehicle)行業(yè)的發(fā)展,自主飛行控制越來越成為無人機領域研究的熱點[1-2]。共軸雙槳飛行器(Coaxial Dual Rotor Aircraft)相比于其他機型有著結(jié)構(gòu)緊湊、氣動特性對稱、推重比大、懸停效率高等優(yōu)點[3-4]。旋翼折疊后可將整個飛行器放入彈體內(nèi),通過炮射或其他方法在短時間內(nèi)到達指定空域,完成偵查、照明等任務,解決了普通飛行器航程短的問題,在軍用方面有著廣闊的應用前景[6-7]。
目前,對于共軸雙槳飛行器姿態(tài)的控制,傳統(tǒng)PID控制算法效果不理想[8],諸如基于神經(jīng)網(wǎng)絡和深度學習的現(xiàn)代智能控制算法在仿真過程中有很好的表現(xiàn),但由于其計算量大,在嵌入式系統(tǒng)中不能做到實時解算,因此難以獲得理想的控制效果[9-10]。本文針對上述在共軸雙槳飛行器懸停飛行姿態(tài)控制過程中存在的問題,提出一種在姿態(tài)解耦基礎上利用串級PID與模糊控制相結(jié)合的半自適應控制算法。
在對共軸雙槳飛行器姿態(tài)穩(wěn)定算法進行數(shù)值模擬仿真之前,建立一個合理準確的數(shù)學模型是必不可少的[11]。建模過程中需要用到兩個坐標系:地面坐標系E(O,E,N,U)和機體坐標系B(O,X,Y,Z),如圖1所示。
對于地面坐標系,其坐標原點位于飛行器起飛點,E,N,U三個坐標軸分別指向東、北和天三個方位;對于機體坐標系,其坐標原點位于飛行器重心,X,Y,Z三個坐標軸分別指向飛行器的前、左和上三個方位。建立飛行器數(shù)學模型時本文假定飛行器為剛體,因此其遵循六自由度運動學方程和牛頓-歐拉動力學方程。
由剛體運動學方程,飛行器在地面坐標系下的線位移與在機體坐標系下的線速度的關系為:
(1)
式(1)中,x,y,z為飛行器在地面坐標系下的線位移;u,v,w為飛行器在機體坐標系下的線速度;φ,θ,ψ為飛行器的姿態(tài)角。c*,s*分別表示cos(*),sin(*)。
飛行器的姿態(tài)角與的角速度的關系為:
(2)
式(2)中,p,q,r為飛行器在機體坐標系下的角速度。
根據(jù)牛頓-歐拉公式,飛行器的動力學方程為:
(3)
(4)
式(3)、式(4)中,m為飛行器的質(zhì)量,可直接測得;Fx,Fy,Fz為飛行器所受合力在三個坐標軸上的投影;J為飛行器的轉(zhuǎn)動慣量;Mx,My,Mz為飛行器所受合力矩在三個坐標軸上的投影。
式(3)中飛行器所受的力包括旋翼推力Ti(i∈{up,lw},代表上旋翼和下旋翼)、飛行器重力和機體阻力。本文只研究飛行器懸停飛行過程,飛行器機體阻力較小,可以忽略:
(5)
(6)
|Ti|=KT,iΩ2i
(7)
式(7)中,KT,i為推力系數(shù),可通過試驗臺試驗求得;ai,bi為上下旋翼槳葉縱向/橫向揮舞角;Ω為旋翼角速度。
式(4)中飛行器轉(zhuǎn)動慣量為:
(8)
本團隊研制的共軸雙槳飛行器樣機采用對稱設計,Jxy,Jyz,Jxz數(shù)值非常小,可以忽略;Jxx,Jyy,Jzz為飛行器的固有屬性,可在建模軟件中對相關零件賦值真實密度直接獲得。
式(4)中飛行器所受力矩包括旋翼推力產(chǎn)生的力矩,槳葉揮舞力矩,旋翼阻力矩和旋翼反作用力矩:
(9)
式(9)中,Ii為飛行器重心到上下槳轂的距離,可在樣機中直接測量;Ksp,i為上下旋翼槳葉剛度系數(shù),為槳葉固有參數(shù);Qd,i為旋翼阻力矩;Qr,i為旋翼反作用力矩。
上式中上旋翼槳葉揮舞角與平衡桿滯后角有關,下旋翼槳葉揮舞角與傾斜盤角度即舵機輸入量有關。由于旋翼轉(zhuǎn)速高,槳葉揮舞角變化區(qū)間小,本文假定槳葉揮舞角與平衡桿滯后角和舵機輸入量之間為線性關系:
aup=Aa,upθsb+Ab,upφsb+Aup
(10)
bup=Bb,upφsb+Ba,upθsb+Bup
(11)
alw=Aa,lwδele+Ab,lwδail+Alw
(12)
blw=Ba,lwδail+Bb,lwδele+Blw
(13)
式(10)—(13)中,Aa,lw,Bb,lw為舵機輸入與揮舞角的同軸比例系數(shù);Ab,lw,Ba,lw為舵機輸入與揮舞角的離軸比例系數(shù);Aup,Bup,Alw,Blw為旋翼橫向/縱向揮舞補償量;θsb,φsb為平衡桿的橫向和縱向滯后角;δele,δail為縱向和橫向控制舵機的輸入量。上述各系數(shù)與補償量均可在通過試驗臺試驗獲得。
式(10)、式(11)中平衡桿滯后角與飛行器的滾轉(zhuǎn)角和俯仰角有關:
(14)
(15)
式(14)、式(15)中,τsb為時間常數(shù),本文取在懸停速度下旋翼轉(zhuǎn)1/4圈所需要的時間,可通過試驗臺試驗獲得。
式(9)中由旋翼角速度產(chǎn)生的阻力矩為:
Qd,up=|Qd,up|[0 0 1]′
(16)
Qd,lw=|Qd,lw|[0 0 -1]′
(17)
|Qd,i|=KQ,iΩ2i
(18)
式(18)中,KQ,i為力矩系數(shù),可通過試驗臺試驗獲得;[0 0 1]′,[0 0 -1]′表示上下旋翼阻力矩的方向。
式(9)中由旋翼角加速度產(chǎn)生的反作用力矩為:
(19)
(20)
式(9),式(20)中,Jup,Jlw為上下旋翼相對轉(zhuǎn)軸的轉(zhuǎn)動慣量,可在建模軟件中對相關零件賦值真實密度直接獲得;[0 0 1]′和[0 0 -1]′表示上下旋翼反作用力矩的方向。
旋翼角速度和角加速度與電機參數(shù)和控制量有關,本文研究飛行器懸停飛行過程,旋翼轉(zhuǎn)速變化鉸小,可以假定旋翼角加速度與電機輸入量的差值成正比:
(21)
式(21)中,Km,i為電機轉(zhuǎn)速系數(shù),可通過試驗臺試驗獲得;Δδi為電機本次控制量與前一次控制量的差值。
至此,共軸雙槳飛行器的六自由度數(shù)學模型建立完畢。建模過程中涉及到較多試驗,要搭建多個試驗臺,需要高速攝像機、測力計、轉(zhuǎn)速表等設備,考慮到篇幅問題,本文不再詳細描述。
本文針對共軸雙槳飛行器懸停飛行過程提出的在姿態(tài)解耦基礎上利用串級PID與模糊控制相結(jié)合的半自適應控制算法主要由三部分組成:姿態(tài)解耦器、模糊控制器和PID控制器,其總體結(jié)構(gòu)如圖2所示。
對飛行器姿態(tài)控制進行解耦可以縮小控制器的控制量區(qū)間,在改變飛行器姿態(tài)設定值時使控制更加高效。共軸雙槳飛行器存在兩種耦合:滾轉(zhuǎn)/俯仰與高度的耦合,傾斜盤角度即舵機輸入與滾轉(zhuǎn)/俯仰運動的耦合。
飛行器滾轉(zhuǎn)角和俯仰角改變時,旋翼產(chǎn)生的推力在地面坐標系Z軸上的分量也會改變,這就是滾轉(zhuǎn)/俯仰與高度的耦合。因此要保證飛行器飛行高度不變,在給舵機控制量時也要相應給電機控制量,對于這種耦合可以用PID控制器進行補償。
對于傾斜盤角度即舵機輸入量與滾轉(zhuǎn)/俯仰運動的耦合,若給定舵機的控制量未進行調(diào)整,飛行器懸停過程中機體會有歪扭現(xiàn)象,這種耦合對飛行器懸停過程影響較大。本文通過對輸入量進行基于當前飛行姿態(tài)的線性轉(zhuǎn)換進行解耦。由式(12)、式(13)可得出解耦方程:
(22)
(23)
飛行器姿態(tài)由解耦器和“控制器”共同控制,在改變飛行器姿態(tài)設定值時,解耦器使“控制器”需要產(chǎn)生的控制量減小,同時減小了姿態(tài)耦合對姿態(tài)控制的影響。
對于控制器中的PID控制,采用串級PID。外環(huán)PID期望角度值為ra(k),實際角度值為ca(k),控制偏差為:
ea(k)=ra(k)-ca(k)
(24)
其控制規(guī)律為:
ua(k)=Kpoea(k)+KIoeai(k)+KDoead(k)
(25)
(26)
ead(k)=ea(k)-ea(k-1)
(27)
式(25)中,Kpo為外環(huán)比例系數(shù);KIo為外環(huán)積分系數(shù);KDo為外環(huán)微分系數(shù)。Kpo,KIo,KDo的取值均需要在現(xiàn)場飛行試驗過程中整定。
對于內(nèi)環(huán)PID,期望角速度值為外環(huán)PID的輸出值ua(k),實際角速度值為cv(k),控制偏差值為:
ev(k)=|ua(k)-cv(k)|
(28)
其控制率為:
uv(k)=KPiev(k)+KIievi(k)+KDievd(k)
(29)
(30)
evd(k)=ev(k)-ev(k-1)
(31)
式(29)中,Kpi為內(nèi)環(huán)比例系數(shù);KIi為內(nèi)環(huán)積分系數(shù);KDi為內(nèi)環(huán)微分系數(shù)。Kpi,KIi,KDi的取值分為現(xiàn)場整定部分和模糊控制器的輸出部分:
Kpi=kp+Δkp
(32)
KIi=ki+Δki
(33)
KDi=kd+Δkd
(34)
式中,kp,ki,kd的取值均需在現(xiàn)場飛行試驗過程中整定。Δkp,Δki,Δkd為模糊控制器的輸出。
對于模糊控制器,選取偏差E、偏差變化率EC和控制器輸出量Δkp,Δki,Δkd的模糊子集為{NL,NM,NS,ZO,PS,PM,PL}將輸入量和輸出量均量化為7個等級。對于橫滾/俯仰控制的模糊論域的取值見表1,航向控制的模糊論域的取值見表2。
表1 橫滾/俯仰控制的模糊論域
表2 航向的模糊論域
模糊控制器中,輸入變量和輸出量均采用高斯隸屬度函數(shù),對三個姿態(tài)角的控制采用相同的模糊規(guī)則,利用“中心-平均”法進行反模糊化。為了能夠直觀看出控制器輸入與輸出的立體結(jié)果,本文用空間曲面的形式將整個論域上的輸出量與輸入量之間的函數(shù)關系顯示出來,在曲面觀察器中得到的控制輸出的數(shù)值空間分布如圖3(a),(b),(c)所示,依次為橫滾/俯仰控制中Δkp,Δki, Δkd的數(shù)值空間分布,航向控制的輸出與橫滾/俯仰輸出在趨勢上相同。
由圖3可以看出,Δkp的取值隨E和EC總體上呈線性變化;當E和EC在0附近時,Δki變化較快,當E和EC絕對值較大時,Δki變化會逐漸變緩;當E和EC在0附近時,Δkd的值變化較慢且基本為0,當E和EC的絕對值較大時,Δkd的值將會近似呈指數(shù)型增長。對于該模糊控制器,總體上不同輸入產(chǎn)生的輸出曲面非常平滑,這說明控制過程沒有突變,原理上控制器設計較好。
為了驗證本文提出算法的可行性,首先在數(shù)值模擬仿真系統(tǒng)中對算法在原理上的可行性進行了驗證。
在仿真系統(tǒng)中,將飛行器及其控制過程分為五個模塊:手動輸入模塊、自動控制模塊、上旋翼模塊、下旋翼模塊和總體模塊,如圖4所示。其中,手動輸入模塊模擬操作員的手動輸入和外部干擾,自動控制模塊模擬嵌入式控制系統(tǒng),下旋翼模塊負責飛行器下旋翼系統(tǒng)的動力學解算,上旋翼模塊負責飛行器上旋翼系統(tǒng)的動力學解算,總體模塊負責飛行器整體的運動學解算。
本團隊根據(jù)項目要求自主研制的共軸雙槳飛行器試驗樣機如圖4中整體部分所示,主要分為上旋翼系統(tǒng)、下旋翼系統(tǒng)和動力與傳動系統(tǒng)三個部分。上旋翼系統(tǒng)由平衡桿、上旋翼和內(nèi)傳動軸等構(gòu)成;下旋翼系統(tǒng)由操縱機構(gòu)動環(huán)、下旋翼和外傳動軸等構(gòu)成;動力與傳動系統(tǒng)主要由安裝臺、兩個伺服舵機、兩個直流無刷電機、嵌入式飛控系統(tǒng)和供電模塊等構(gòu)成。
在數(shù)值模擬仿真過程中,前0.2 s對飛行器施加外部干擾,0.2 s之后消除外部干擾,分別得出無控制、采用傳統(tǒng)PID控制、采用本文提出的控制和采用神經(jīng)網(wǎng)絡PID控制情況下的飛行器姿態(tài)角的變化。仿真過程中飛行器姿態(tài)角的期望值均為0,仿真過程姿態(tài)角變化的時域描述如圖5所示。
由圖5可以看出,在給定的外界擾動下,采用傳統(tǒng)PID控制,滾轉(zhuǎn)角和俯仰角最大誤差值達到了0.018 rad,航向角最大誤差值達到了0.073 rad;而采用本文設計的控制算法,滾轉(zhuǎn)角和俯仰角誤差約為0.013 rad,航向角誤差約為0.025 rad;采用神經(jīng)網(wǎng)絡PID控制,滾轉(zhuǎn)角和俯仰角最大誤差值約為0.009 rad,航向角最大誤差值約為0.018 rad。采用傳統(tǒng)PID,需要1 s左右才能使飛行器達到穩(wěn)態(tài),而本文設計的控制算法使飛行器達到穩(wěn)態(tài)僅需要約0.3 s,采用神經(jīng)網(wǎng)絡PID控制使飛行器達到穩(wěn)態(tài)也只需要約0.3 s。由仿真結(jié)果可以看出,在數(shù)值模擬仿真系統(tǒng)中,傳統(tǒng)PID控制算法、本文提出的控制算法和神經(jīng)網(wǎng)絡PID控制算法都能夠使飛行器的姿態(tài)角收斂,但本文提出的控制算法和神經(jīng)網(wǎng)絡PID控制算法能夠使姿態(tài)角收斂速度更快,在更短時間達到穩(wěn)態(tài),同時產(chǎn)生的超調(diào)量都比采用傳統(tǒng)PID控制產(chǎn)生的超調(diào)量小。神經(jīng)網(wǎng)絡PID控制算法在抑制誤差方面要比本文提出的控制算法略優(yōu),在收斂時間方面兩者沒有太大差別。
數(shù)值模擬仿真的結(jié)果驗證了本文提出的在姿態(tài)解耦基礎上利用串級PID與模糊控制結(jié)合的半自適應控制算法在原理上的可行性。
在數(shù)值模擬仿真系統(tǒng)中,神經(jīng)網(wǎng)絡PID控制和本文提出的控制算法都有較好的控制效果,并且神經(jīng)網(wǎng)絡PID要優(yōu)于本文提出的控制算法。為了驗證這兩種控制算法在實際應用中的可行性,本文將算法燒錄到嵌入式系統(tǒng)中,搭載到本團隊自主研制的共軸雙槳飛行器樣機上進行了現(xiàn)場飛行試驗。
對于神經(jīng)網(wǎng)絡PID控制算法,盡管在現(xiàn)場飛行試驗中進行了大量參數(shù)整定,但最終效果并不理想,過程中甚至出現(xiàn)了促進偏差的控制量。通過調(diào)試程序發(fā)現(xiàn)這是由于控制程序未完整運行造成的,這可以說明有著較大計算量的智能算法雖然能夠在數(shù)值模擬仿真系統(tǒng)中表現(xiàn)較好,但是現(xiàn)階段在運算速度并不是特別快的嵌入式系統(tǒng)中并不適用。
對于本文提出的控制算法,在現(xiàn)場飛行試驗中進行一系列參數(shù)整定后,飛行器能夠較好地實現(xiàn)懸停飛行過程中的姿態(tài)穩(wěn)定,飛行試驗中飛行器姿態(tài)角的時域描述如圖6所示。開始對飛行器施加外部干擾,對飛行器的滾轉(zhuǎn)角、俯仰角和航向角分別造成了約0.1,0.2,0.1 rad的擾動,去除干擾后在本文提出的控制算法的閉環(huán)控制下,飛行器的姿態(tài)角誤差在1 s時間里穩(wěn)定在了0.03 rad以內(nèi),在1.5 s時間里姿態(tài)角誤差基本為0。
通過對現(xiàn)場飛行試驗結(jié)果的分析可以發(fā)現(xiàn),雖然外部干擾對飛行器的姿態(tài)角產(chǎn)生了較大影響,但是飛行器在本文提出的控制算法的閉環(huán)控制下依然能快速恢復穩(wěn)態(tài)??梢哉f明,對于共軸雙槳飛行器在姿態(tài)解耦基礎上利用串級PID與模糊控制結(jié)合的半自適應控制方法能夠在嵌入式系統(tǒng)中應用,而且有良好的控制效果。飛行試驗驗證了該算法在實際應用中的可行性與有效性。
本文提出一種在姿態(tài)解耦基礎上利用串級PID與模糊控制相結(jié)合的半自適應控制算法。該算法創(chuàng)新性地在共軸雙槳飛行器的姿態(tài)控制器中加入了姿態(tài)解耦器,并利用模糊控制器實現(xiàn)了PID控制器內(nèi)環(huán)參數(shù)的自適應。仿真實驗和飛行試驗表明,該控制算法在數(shù)值模擬仿真系統(tǒng)中比傳統(tǒng)PID控制效果要好很多,比神經(jīng)網(wǎng)絡PID控制效果略差,但是在現(xiàn)場飛行試驗中神經(jīng)網(wǎng)絡PID由于其計算量較大并不能在嵌入式系統(tǒng)中應用,而本文提出的控制算法卻能表現(xiàn)出較好的控制效果。