任開眾,徐 勝,蘇成悅 ,陳元電
(1.廣東工業(yè)大學(xué)信息工程學(xué)院,廣州 510006;2.廣東工業(yè)大學(xué)物理與光電工程學(xué)院,廣州 510006)
近年來,多旋翼無人機憑借可以垂直起降、懸停和易于控制等優(yōu)點,被廣泛用于航拍、測繪、農(nóng)業(yè)植保、物流運輸和消防等多個領(lǐng)域。隨著無人機的應(yīng)用場景越來越廣泛,對無人機控制的穩(wěn)定性提出了更高的要求。多旋翼無人機屬于欠驅(qū)動、非線性和強耦合系統(tǒng),飛行過程中容易受到風力干擾,這使得無人機姿態(tài)控制具有一定的挑戰(zhàn)。傳統(tǒng)的無人機姿態(tài)控制器是雙環(huán)串級PID,其原理簡單,易于實現(xiàn),但是存在控制精度不足、調(diào)參復(fù)雜和魯棒性差的缺點,因此不同的控制策略被提了出來。
文獻[5-8]分別提出了使用非線性PID 和模糊PID 來提高無人機姿態(tài)控制的魯棒性,但仍然存在控制精度不足的缺點。文獻[9]提出了基于神經(jīng)網(wǎng)絡(luò)的自適應(yīng)滑??刂品椒?,計算量較大,對處理器要求高,不易于實現(xiàn)。文獻[10-13]均采用了自適應(yīng)滑模控制策略,但是容易產(chǎn)生抖振現(xiàn)象。
自抗擾控制(active disturbance rejection control,ADRC)于1990年由韓京清研究員提出,傳統(tǒng)的ADRC 由二階跟蹤微分器(tracking differentiator,TD)、非線性PID 控制律(NLPID)和擴張狀態(tài)觀測器(extended state observer,ESO)組成。在ADRC 中,外擾和內(nèi)擾被歸為“總擾動”。擴張狀態(tài)觀測器是ADRC 的核心部分,在ESO 中,被控對象模型被等效成串聯(lián)積分系統(tǒng),總擾動被擴張成系統(tǒng)的一個狀態(tài),不需要精確模型也能很好地估計出擾動來并補償?shù)簦瑢υ肼曇种谱饔妹黠@,對多旋翼控制尤為適用。
文獻[16-19]都將自抗擾控制應(yīng)用于四旋翼姿態(tài)控制,與PID 控制器相比,ADRC 控制器在解耦和抗干擾方面都具有良好的性能。
如圖1 所示,本文主要的創(chuàng)新點是在傳統(tǒng)ADRC的基礎(chǔ)上引入了一個近似模型,無人機橫滾和俯仰軸旋轉(zhuǎn)建模分別引入一階慣性模型,并在此模型基礎(chǔ)上根據(jù)李亞普諾夫穩(wěn)定性定理設(shè)計了反步控制律來代替?zhèn)鹘y(tǒng)的非線性PID 控制律。為了得到更加平滑的輸入信號的一階、二階和三階導(dǎo)數(shù)信號,本文采用四階線性跟蹤微分器代替?zhèn)鹘y(tǒng)ADRC 的最速二階跟蹤微分器。擴張狀態(tài)觀測器同樣引入了一階慣性模型來預(yù)測被控對象的輸出,相比傳統(tǒng)ADRC,總擾動可以估計得更快更準。同時設(shè)計了針對參數(shù)的無人機姿態(tài)自適應(yīng)調(diào)參策略,經(jīng)過仿真和實際飛行驗證,此姿態(tài)控制器能保證無人機在初始參數(shù)與實際相差10 倍都不會發(fā)散,極大提升了控制器的魯棒性、調(diào)參簡易性、飛行的穩(wěn)定性和安全性。
圖1 自抗擾姿態(tài)控制器
以X型四旋翼無人機為例子,如圖2所示。
圖2 四旋翼姿態(tài)建模示意圖
假設(shè)無人機整體為一個剛體, 質(zhì)量分布均勻,其姿態(tài)動力學(xué)方程可表示為:
其中:、和分別是四旋翼無人機的橫滾角、俯仰角和偏航角。l、l和l是三軸轉(zhuǎn)動慣量。τ、τ和τ為外力擾動。l為電機轉(zhuǎn)動慣量。Ω =-+-。是力臂長度。F、F和F則是電機輸出升力。
在實際應(yīng)用中,對于橫滾俯仰旋轉(zhuǎn)運動,其力矩須由螺旋槳撥動空氣來產(chǎn)生,存在一定的延時,而偏航旋轉(zhuǎn)運動則依靠不同電機和螺旋槳自身轉(zhuǎn)速差來達到力矩輸出,故偏航旋轉(zhuǎn)模型可等效于·,俯仰和橫滾控制量到螺旋槳產(chǎn)生升力的過程則等效為一階慣性模型,假設(shè)電機動力參數(shù)一致,有:
式中:可認為是螺旋槳加速的慣性時間,為增益,把式(1)中除F外的項當成未建模擾動,結(jié)合式(3)可得:
以X 軸為例, 選取角速度為觀測量, 根據(jù)式(4)其旋轉(zhuǎn)動力學(xué)狀態(tài)空間方程如下所示:
其中:、和分別是角速度、角加速度和擾動,x則是模型預(yù)測角加速度。模型預(yù)測擴張狀態(tài)觀測器設(shè)計如下:
其中:、和分別是估計角速度、估計角加速度和估計擾動,z是預(yù)測角加速度,為無人機實際控制角度,和為觀測器系數(shù)。
控制器帶寬有限,用來跟蹤無限帶寬的輸入信號本身不合理,并且直接對帶噪信號求導(dǎo)會放大噪聲而導(dǎo)致控制發(fā)散,因此跟蹤微分器是經(jīng)典自抗擾控制中很重要的一部分。跟蹤微分器旨在獲得平滑的輸入信號及輸入信號的各階導(dǎo)數(shù)。如果能夠合理地提取差分信號,可以提高控制器的性能,大大簡化控制器的設(shè)計。傳統(tǒng)自抗擾控制采用的是二階最速微分跟蹤器,具有復(fù)雜的函數(shù)形式, 這對實際實現(xiàn)應(yīng)用是一個挑戰(zhàn)。此外它僅提供一階導(dǎo)數(shù)信號。四階線性跟蹤微分器可以獲得更高階的導(dǎo)數(shù)信號用于控制律,其參數(shù)較少,易于實現(xiàn),傳遞函數(shù)如式(7)所示:
其中:為跟蹤/濾波因子,>0。假設(shè)v() =,根據(jù)終值定理有:
式(8)證明此跟蹤微分器的輸出最終會無誤差地收斂到輸入值,如圖3所示,其跟蹤速度由參數(shù)決定,參數(shù)越大,跟蹤越快,但是濾波性能會下降。
圖3 四階線性跟蹤微分器的階躍響應(yīng)
此四階線性跟蹤微分器的離散形式如下所示:
式中:是輸入信號,、、、分別是跟蹤信號、跟蹤信號的一階、二階和三階導(dǎo)數(shù)。
選取角度為控制量,系統(tǒng)的狀態(tài)空間方程如式(10)所示:
其中:、和分別是角度、角速度和角加速度, ξ是系統(tǒng)的總擾動,包含外擾和內(nèi)擾??刂破髟O(shè)計如下:
(1)假設(shè)目標角度為,角度誤差為,有:
定義Lyapunov 函數(shù)為:
有:
定義Lyapunov函數(shù)為:
有:
定義:
定義Lyapunov函數(shù)為:
有:
即:
式(10)結(jié)合式(23)可得:
最后得到控制量輸出u為:
(4)反推
式(26)—式(28)即是反步姿態(tài)控制器所需的計算公式。及其各階導(dǎo)數(shù)由四階線性跟蹤微分器給出。
為解決無人機因控制參數(shù)與實際參數(shù)相差過大而導(dǎo)致控制發(fā)散的問題,針對參數(shù)提出一種基于批量梯度下降算法的自適應(yīng)調(diào)參策略。假設(shè)無人機實際角加速度為y,控制量為u,模型預(yù)測輸出為(u),為采樣數(shù)量選,取誤差函數(shù)()為:
有:
則參數(shù):
式中:為修正因子, 0<<1。實際應(yīng)用中由于噪聲的存在,需要對u和y進行低通濾波。
本文使用Matlab 的Simulink 搭建此姿態(tài)控制器的仿真模型,結(jié)構(gòu)如圖1 所示,令ESO 觀測參數(shù)=0.1,=0.001,真實姿態(tài)模型的=5.5,= 0.1,ESO 和控制的、參數(shù)為真實的模型參數(shù),反饋增益參數(shù)= 5,= 15,=50,ESO仿真結(jié)果如下圖所示。
如圖4 和圖5 所示,和原始濾波后的數(shù)據(jù)相比,在同樣的濾波效果前提下,ESO 估計角速度和ESO 估計角加速度延時更小,極大提高了控制器的穩(wěn)定性和魯棒性。擾動估計如圖6 所示, 在0.1 秒處加入階躍擾動后,傳統(tǒng)ESO 擾動估計并不準確,而本文的帶模型ESO 在0.15秒處即可估計出百分之八十的擾動,0.3 秒便達到了穩(wěn)定狀態(tài)。
圖4 角速度對比
圖5 角加速度對比
圖6 擾動估計對比
其他參數(shù)不變,令參數(shù)取值分別為24 和1.5,仿真結(jié)果如圖7 和圖8 所示,可以看到參數(shù)太大會導(dǎo)致角度控制超調(diào)并大幅度低頻震蕩,參數(shù)太小則會導(dǎo)致角度控制小幅度高頻震蕩,但都不會發(fā)散。
圖7 角度控制(b = 24,T = 0.1)
圖8 角度控制 (b = 1.5,T = 0.1)
當控制參數(shù)偏離真實參數(shù)時,角度控制也會發(fā)生震蕩,對于多旋翼無人機,實際應(yīng)用中參數(shù)的范圍一般在0.05~0.2 之間,變化范圍較小,因此通過調(diào)整參數(shù)也能達到很好的控制效果,仿真結(jié)果如圖9和圖10所示。
圖9 角度控制(b = 8,T = 0.2)
圖10 角度控制(b = 4,T = 0.05)
此姿態(tài)控制算法在數(shù)十臺多旋翼無人機上進行了驗證, 包括330~1600 mm 軸距、不同動力配置的多旋翼無人機,實際測試中發(fā)現(xiàn)參數(shù)通常為0.1 秒左右,故只需調(diào)整參數(shù)即可, 直觀表現(xiàn)為參數(shù)過大無人機姿態(tài)會大幅度晃動,參數(shù)太小無人機姿態(tài)則會高頻抖動,與仿真結(jié)果一致。
圖11 測試無人機
在此控制器一般只需調(diào)整參數(shù)的前提下,為進一步提高控制器的魯棒性,引入了自適應(yīng)調(diào)參策略。以330 mm 軸距的四旋翼無人機為例進行實飛測試,其真實參數(shù)和參數(shù)分別為0.1和5.5左右,設(shè)置初始參數(shù)為1和60,修正因子為0.002,參數(shù)自適應(yīng)效果如圖12所示,估計參數(shù)在10秒內(nèi)由60收斂到15左右,最后收斂接近于真實的參數(shù),有效防止了控制發(fā)散。
圖12 估計b參數(shù)
針對多旋翼無人機,本文提出了一種自適應(yīng)調(diào)參的自抗擾姿態(tài)控制器。通過引入一階慣性模型,降低ESO 負擔,能夠快速估計出擾動并補償?shù)簦Y(jié)合四階線性跟蹤微分器,設(shè)計反步控制律代替?zhèn)鹘y(tǒng)的非線性PID,仿真和實際飛行結(jié)果表明,對于不同軸距和動力的無人機,一般只需要調(diào)節(jié)參數(shù)即可。為了進一步提高調(diào)參的簡易性,解決因機身結(jié)構(gòu)、負載和電池動力導(dǎo)致的參數(shù)攝動問題,控制參數(shù)與實際參數(shù)相差過大而導(dǎo)致的控制發(fā)散問題,提出了基于批量梯度下降的自適應(yīng)調(diào)參策略,實際飛行結(jié)果證明控制參數(shù)與實際參數(shù)相差10倍都能夠迅速收斂并接近真實參數(shù), 證明此姿態(tài)控制器具有很高的穩(wěn)定性、魯棒性和實用性。