王術波, 韓宇, 陳建,*, 張自超, 劉旭贊
1. 中國農業(yè)大學 工學院,北京 100083 2. 中國農業(yè)大學 水利與土木工程學院,北京 100083 3. 武漢大學 測繪遙感信息工程國家重點實驗室,武漢 430079
農用四旋翼無人機在對作物進行表型探測及噴藥時,需要超低空精準懸停[1-3]。懸停過程中無人機螺旋槳轉動產生的下洗氣流遇到地面及作物冠層平面會產生渦流等不規(guī)則氣流擾動(稱為“地效擾動”),此時如果遇到自然風疊加,會加劇該擾動對四旋翼無人機超低空精準懸停的影響。這對無人機姿態(tài)控制器提出較高要求,而構建一種可以及時觀測擾動、并對控制量進行補償的自抗擾控制方法可解決以上問題。
現階段,四旋翼無人機姿態(tài)控制方法主要有PID控制[4-5]、滑模控制[6-7]、反步控制[8-9]、神經網絡控制[10-11]等。上述方法都是基于誤差從而消除誤差的控制方法,當存在外界未知擾動和內部不確定性時,不能較好預測擾動來給出控制補償量,控制效果不能達到理想控制要求。采用自抗擾控制(Active Disturbance Rejection Control, ADRC)可以克服以上困難。ADRC控制是韓京清教授提出的一種能夠補償不確定因素的控制技術[12],其中不確定因素包括內部擾動和外部擾動兩種。伍詠成等[13]提出了一種基于模糊LADRC的傾轉四旋翼無人機縱向姿態(tài)控制方法,設計了基于線性自抗擾控制(LADRC)的姿態(tài)控制器并采用模糊控制對其參數進行在線整定,進行了飛機縱向飛行控制仿真實驗驗證。
作為一種不依賴于被控對象數學模型的控制方法,ADRC控制器帶寬是基于經驗及參考法設置的。考慮到干擾和偏差的動態(tài)性,ADRC控制器帶寬不能為定值。ADRC帶寬越大,系統(tǒng)的輸出跟隨輸入指令的能力就越強,系統(tǒng)的動態(tài)性能就越好。所以帶寬越大,對控制量的補償越大,即控制量補償估計較大,這時稱為高增益狀態(tài)觀測器。當外界擾動較小時,高增益觀測器輸出抖振較大,則控制量輸出抖振會很大,被控對象輸出將振蕩嚴重[14]。選擇合適的帶寬,構建自適應ADRC,在大誤差、大擾動時,選用大帶寬;在小誤差、小擾動時,選用小帶寬?;谝陨蠁栴}提出一種基于迭代學習控制(Iterative Learning Control,ILC)的ADRC控制策略。迭代學習控制能針對干擾和誤差量在線整定ADRC帶寬,構建自適應ADRC姿態(tài)控制器。迭代學習控制是一種擬人的學習過程與特性的智能控制方法。迭代學習被應用于工業(yè)機器人[15-16]、數控機床[17]、電力系統(tǒng)控制[18]等重復運動型軌跡跟蹤領域,并因其不依賴于系統(tǒng)的精確數學模型即可高精度的跟蹤給定的期望軌跡,被許多學者及工程人員研究與使用。
基于以上研究綜述,本文提出了一種自適應ADRC姿態(tài)控制器,首先對四旋翼無人機建模,然后構建ADRC姿態(tài)控制器,提出了一種基于迭代學習控制的自適應ADRC姿態(tài)控制器,并進行了相應實驗驗證。
四旋翼無人機擁有4個螺旋槳,呈十字或交叉型對稱分布,無人機獲得的動力是由4個螺旋槳轉動產生。同時通過4個旋翼產生升力差來進行飛行狀態(tài)的控制。交叉型四旋翼示意圖如圖1所示,坐標原點為無人機重心,x軸為無人機重心指向機頭方向,y軸為無人機重心指向左側,z軸由重心按右手法則指向無人機上方。產生升力時
圖1 四旋翼無人機示意圖Fig.1 Schematic diagram of four-rotor UAV movement
同時增加4個旋翼的轉速實現上升或下降;同時差動改變1、3和2、4的轉速,產生反扭力,實現繞z軸的偏航;同時差動改變2、3和1、4,機體繞x軸滾動,并沿y軸移動,實現滾轉運動;同時差動改變1、2和3、4,機體繞y軸滾動,并沿x軸移動,實現俯仰運動。
四旋翼無人機姿態(tài)動力學模型為[19]
(1)
定義四旋翼無人機控制輸入為U={ui},i=1,2,3,4,即
(2)
式中:u1、u2、u3和u4分別為高度、滾轉、俯仰和偏航4個通道的輸入。故其姿態(tài)動力學模型為
(3)
在農用無人機對小型作物表型探測和噴藥時,需精準定點懸停,靠控制滾轉角、俯仰角、偏航角來抵抗地效擾動。所以在控制通道φ、θ、φ中分別加上w1(t)、w2(t)、w3(t)各自代表系統(tǒng)未知內部擾動和系統(tǒng)外部的地效和自然風擾動。φ、θ和φ控制通道改寫為
(4)
采用歐拉近似法[20-21]將式(4)離散化為
(5)
式中:Ts為采樣周期。
針對1.1節(jié)提出的四旋翼無人機運動學模型,通過設計跟蹤微分器(TD)、擴張狀態(tài)觀測器(ESO)、非線性狀態(tài)誤差反饋律(NLSEF),構建自抗擾控制器。自抗擾控制將作用于被控對象的所有不確定因素都歸結為未知擾動,并利用無人機姿態(tài)角的輸入輸出對未知風擾動進行估計并給予補償。風擾動在影響無人機最終輸出前,各個通道被自抗擾控制估計、提取并提前補償,這將降低了未知風擾動對無人機姿態(tài)的影響。
以四旋翼無人機俯仰通道為例,其自抗擾控制器設計如下:
跟蹤微分器(TD)實現了系統(tǒng)過渡過程的安排,得到控制信號的跟蹤信號和一系列微分信號,起到濾波和降低初始誤差作用。
跟蹤微分器(TD)數學表達式為
(6)
式中:fhan函數為
(7)
式中:θexpect為期望的俯仰角;v1為對θexpect的估計;v2為對θexpect的微分;參數r0為快速因子,其決定了跟蹤速度的快慢,越大則跟蹤速度越快,但同時也放大了噪聲,h0為積分步長,值越大濾波效果越好,但同時跟蹤信號相位損失也隨之增大。
擴張狀態(tài)觀測器(ESO)在線實時估計系統(tǒng)的總擾動,反饋系統(tǒng)的狀態(tài)變量和擾動觀測。
二階擴張狀態(tài)觀測器(ESO)數學表達式為
(8)
(9)
式中:被控對象的輸入u3和輸出θ為ESO輸入;z1、z2和z3為輸出;z1、z2為對v1、v2的估計;z3為對系統(tǒng)總擾動的估計;β01、β02和β03為觀測器反饋增益;ω0為觀測器帶寬;δ為函數fal(x,a,δ) 線性區(qū)間寬度;b0為增益參數。
非線性狀態(tài)誤差反饋律(NLSEF)利用基于誤差來消除誤差思想,利用非線性的高效率構建非線性誤差反饋律。
非線性狀態(tài)誤差反饋律(NLSEF)數學表達式為
(10)
式中:c、r1和h1為非線性狀態(tài)誤差反饋律待調參數。
對俯仰通道設計ADRC姿態(tài)控制如圖2所示。
圖2 俯仰通道ADRC姿態(tài)控制器Fig.2 ADRC attitude controller of pitch channel
對俯仰通道的控制為單輸入單輸出系統(tǒng),系統(tǒng)輸入為期望俯仰角度,輸出為對俯仰通道的控制量,無人機慣性測量單元(IMU)反饋實際俯仰角給ADRC控制器。同樣,對滾轉、偏航通道設計如上控制器,最終構建3輸入3輸出的3通道控制系統(tǒng),如圖3所示。
針對3通道ADRC觀測器帶寬相同,采用迭代控制,根據誤差和擾動在線更新ADRC帶寬,實現不同風向擾動和初始誤差下,ADRC實時自適應姿態(tài)控制。
迭代學習控制是人工智能與自動控制相結合的新的學習控制技術。迭代學習控制具有擬人的學習過程與特性,模擬人的循序漸進與邊干邊學的方法,廣泛適用于不確知、不確定的非線性復雜系統(tǒng)。迭代學習控制算法流程如圖4所示。
記x(r)為系統(tǒng)的狀態(tài)向量,為n維向量;u(t)為r維控制向量。當輸出y(t)為狀態(tài)的某種向量函數時,系統(tǒng)可以表示為
(11)
假設系統(tǒng)在有限時間區(qū)間[0,T]上重復運行。以k=0,1,2,…表示重復次數,那么可重復控制系統(tǒng)可以表示為
(12)
圖3 三通道ADRC姿態(tài)控制器Fig.3 ADRC attitude controller of three channels
圖4 迭代學習控制算法流程Fig.4 ILC algorithm flow
定義輸出誤差為
ek(t)=yd(t)-yk(t)
(13)
由當前控制uk(t)和輸出誤差ek(t)構成學習律,產生下一次迭代時的控制uk+1(t),由于四旋翼無人機抗干擾控制要求較短的調節(jié)時間,采用PD型學習律,學習律表示為
(14)
式中:Ψ、Γ為定常增益矩陣。
目前迭代學習控制主要討論通過改變輸入達到控制效果,對于控制器的參數沒有進行修正,也稱為靜態(tài)控制器,即在控制過程中,控制器的參數是確定不會發(fā)生變化的。間接型迭代學習控制是指系統(tǒng)有基本的反饋控制器,學習控制用于更新優(yōu)化局部控制器的參數,也稱為動態(tài)控制器,即控制器本身會隨著迭代的變化而變化。
間接迭代控制在控制對象受到未知或不可預知的輸入情況下,通過控制器的在線自動調整,最優(yōu)實現某性能指標。間接迭代學習控制通過在線調整ADRC中擴張狀態(tài)觀測器中帶寬ω0,實現自適應構建ADRC。俯仰通道控制系統(tǒng)如圖5所示。圖中自適應構建ADRC分為ADRC和間接ILC控制器,輸入為期望俯仰角,懸停實驗中為0°,輸出為對無人機俯仰通道控制量,無人機反饋實際俯仰角度分別給ADRC和間接ILC控制器。間接ILC控制器根據k-1 時刻俯仰角誤差和上一時刻的輸出uk-1,由PD型學習律輸出控制量uk,即該時刻ADRC擴張狀態(tài)觀測器帶寬ω0;ADRC控制器結合ILC輸出帶寬,根據俯仰角誤差,輸出無人機俯仰通道控制量u3。
擴張狀態(tài)觀測器(7)改寫成狀態(tài)空間表達式為
(15)
(16)
通過輸出誤差估計,給出PD型學習律收斂性充分條件與證明如下。
引理當初態(tài)位于xk(0)時施加控制uk(t),若系統(tǒng)滿足條件:
2)xk(0)=x0,y0(0)=yd(0)
則當k→∞時,yk(t)→yd(t)
證明:
第k+1次迭代的控制誤差為
Δuk+1(t)=ud(t)-uk+1(t)=
(17)
式中:Δuk+1(t)為實際控制輸出與期望控制輸出之差;ud(t)為系統(tǒng)達到期望輸出對應的控制信號。
輸出誤差表示為
ek(t)=yd(t)-yk(t)=C(zd(t)-zk(t))
(18)
(19)
兩邊求導可得
(20)
Δuk+1(t)=(I-ΓCB)Δuk(t)-
(21)
圖5 俯仰通道基于間接迭代學習控制的ADRC姿態(tài)控制器Fig.5 Design of ADRC attitude controller based on ILC for pitch channel
兩邊同時取范數:
(22)
由范數定義:
(23)
式中:
(24)
ρ可取小于1,此時
(25)
由式(18)可得
(26)
因此,所設計的間接PD型學習律收斂。證畢。
本實驗為模擬無規(guī)則氣流擾動,摒棄風洞裝置,采用自構建氣流擾動裝置,利用扇葉轉動模擬超低空飛行的地效擾動和自然風疊加的無規(guī)則氣流干擾。裝置如圖6所示。實驗分別構建如圖7所示側向水平風、前俯向風、側俯向風,黃色箭頭為無人機機頭朝向,藍色為風場中心,圖7(b)、圖7(c)風場斜向上。
實驗采用Tello開源無人機平臺,通過Wifi通信,地面站接收無人機IMU數據,并返回控制指令。Tello無人機重量100 g,漿直徑7.6 cm,機體中心長3.5 cm,寬6.5 cm,高2.5 cm。懸停實驗中期望俯仰角、滾轉角、偏航角都為0°。通過分別利用ADRC姿態(tài)控制器和不加ADRC姿態(tài)控制器控制,IMU輸出無人機俯仰角度、滾轉角度、偏航角度信息,控制周期約為0.1 s。實驗過程中ADRC和ILC控制器參數如表1所示。
圖6 實驗環(huán)境Fig.6 Experimental environment
圖7 不同風速和風向示意圖Fig.7 Schematic diagram of different wind speeds and directions
表1 控制器參數Table 1 Controller parameters
實驗分別在無風狀態(tài)和側向水平風、前俯向風、側俯向風3種不同風向下進行,并對風速和風向角度調節(jié),驗證ADRC對未知擾動觀測與補償。進行了無ADRC和有ADRC實驗對比,其中無ADRC直接采用Tello內置姿態(tài)控制算法。
實驗首先進行無風狀態(tài)下Tello內置姿態(tài)控制器、ADRC姿態(tài)控制器、ILC-ADRC姿態(tài)控制器實驗,實驗結果如表2所示。實驗可以看出ILC-ADRC相較于ADRC和Tello內置姿態(tài)控制器,姿態(tài)角累計誤差有較大程度降低。側向水平風實驗中,風速分別為0.9~1.1、1.1~1.3、1.4~1.6、2.0~2.4、2.5~2.9、3.3~3.6 m/s,風場中心與無人機飛行高度位于同一水平線,以驗證四旋翼無人機對側向水平風的抗干擾能力。表2為側向水平風存在下的實驗結果,表中θae為俯仰角累計誤差,φae為滾轉角累積誤差,φae為偏航角累積誤差。在側向水平風干擾存在時,偏航角受影響最大。從表2看出,沒有采用ADRC控制器的3種姿態(tài)角度累計誤差均大于采用ADRC控制器。特別是在風速較大的情況下,未使用ADRC控制器偏航角出現較大的累計誤差。實驗過程中無ADRC姿態(tài)控制環(huán)節(jié)在2.5~2.9 m/s 風速時出現失控現象,有ADRC姿態(tài)控制環(huán)節(jié)在3.3~3.6 m/s風速時出現失控現象。
圖8為無ADRC和有ADRC在2.0~2.4、2.5~2.9、3.3~3.6 m/s側向水平風速下,即臨界風速下,偏航角的輸出曲線。從曲線中可以看出,無ADRC姿態(tài)控制環(huán)節(jié)在2.5~2.9 m/s風速時,在第75~80次控制周期過程中,無人機偏航角出現嚴重失控。在運動過程中出現無人機360°旋轉現象,無人機順時針旋轉一周。采用ADRC姿態(tài)控制器在該風速下,仍能抵抗水平風干擾,未出現較大角度的偏差。繼續(xù)加大風速在3.3~3.6 m/s時,ADRC抗干擾控制器失效,無人機在55~62次 控制周期,出現360°旋轉失控現象。綜上,2.0~2.4 m/s為內置姿態(tài)控制器所能承受最大水平風速,2.5~2.9 m/s為ADRC姿態(tài)控制器所能承受最大水平風速。
進一步進行了在前俯向風下無人機抗擾實驗,分別在0.9~1.1 m/s(11°)、1.1~1.3 m/s(13°)、1.4~1.6 m/s(18°)、1.8~2.0 m/s(18°)、2.1~2.5 m/s(18°)風速進行。其中風場中心射線與無人機飛行水平面夾角稱為前俯風角。0.9~1.1 m/s(11°)表示前俯向風速為0.9~1.1 m/s,風場中心射線與無人機飛行水平面夾角為11°。
表3為無人機在前俯向風干擾下三姿態(tài)角累積誤差,從表中看出未使用ADRC控制器俯仰角累計誤差均大于使用ADRC控制器。在前俯向風干擾下,無人機俯仰角受到影響最大,圖9為臨界風速下無人機俯仰角輸出。從圖中看出,1.8~2.0 m/s 風速,風場角18°時,未使用ADRC姿態(tài)控制器無人機俯仰角度在43次控制周期時出現較大的俯仰角誤差,偏離程度達到10°,此時無人機偏離風擾作用時懸停點;在20~28次控制周期時,出現持續(xù)誤差,無人機嚴重偏離風擾作用時懸停點,此時姿態(tài)控制失效。同時在該風速下,使用ADRC姿態(tài)控制器無人機姿態(tài)角控制在-4°~+4°之內,滿足控制要求。繼續(xù)加大風速在 2.1~2.5 m/s,前俯風角18°時,ADRC姿態(tài)控制器在20~22、103~113次 控制周期,均出現較大的持續(xù)誤差,無人機偏離風擾作用時懸停點,姿態(tài)控制失效。綜上,1.4~1.6 m/s (18°)為內置姿態(tài)控制器所能承受最大前俯風速和風向角,1.8~2.0 m/s (18°)為ADRC姿態(tài)控制器所能承受最大前俯風速和風向角。
表2 側向水平風干擾下四旋翼無人機姿態(tài)角累積誤差Table 2 Cumulative errors of UAV attitude angles with lateral horizontal wind disturbance
圖8 臨界風速下四旋翼無人機偏航角輸出Fig.8 Yaw angle output of UAV at critical wind speed
同樣,進一步進行了在側俯向風下無人機抗擾實驗,分別在0.9~1.1 m/s(11°)、1.1~1.3 m/s(13°)、1.4~1.6 m/s(18°)、1.8~2.0 m/s(18°)、2.1~2.5 m/s(18°)風速進行。其中風場中心射線與無人機飛行水平面稱為側俯風角。
表3 前俯向風干擾下四旋翼無人機姿態(tài)角累積誤差Table 3 Cumulative errors of UAV attitude angles with forward pitch wind disturbance
圖9 臨界風速下四旋翼無人機俯仰角輸出Fig.9 Pitch angle output of UAV at critical wind speed
表4 側俯向風干擾下四旋翼無人機姿態(tài)角累積誤差Table 4 Cumulative errors of UAV attitude angles with sideways wind disturbance
圖10 臨界風速下四旋翼無人機滾轉角輸出Fig.10 Roll angle output of UAV at critical wind speed
表4為無人機在側俯向風干擾下三姿態(tài)角累積誤差,從表中看出未使用ADRC控制器滾轉角累計誤差均大于使用ADRC控制器。在前俯仰風干擾下,無人機滾轉角受到影響最大,圖10為臨界風速下無人機滾轉角輸出。
在1.8~2.0 m/s風速時,未使用ADRC姿態(tài)控制器無人機滾轉角度在50~61、81~87次控制周期時出現持續(xù)較大滾轉角誤差,誤差范圍在-7°~6°,無人機嚴重偏離風擾作用時懸停點,控制失效。在該干擾風下,使用ADRC姿態(tài)控制器無人機滾轉角未出現持續(xù)誤差。繼續(xù)加大風速2.1~2.5 m/s 時,使用ADRC姿態(tài)控制器無人機在90~106次控制周期,才出現持續(xù)較大滾轉角誤差,姿態(tài)控制失效。綜上,1.4~1.6 m/s (18°)為內置姿態(tài)控制器所能承受最大側俯風速和風向角,1.8~2.0 m/s (18°)為ADRC姿態(tài)控制器所能承受最大側俯風速和風向角。
為進一步驗證自適應自抗擾控制器,即基于迭代學習控制自抗擾控制(ILC-ADRC)對未知干擾觀測和補償的有效性。實驗設計了基于初始誤差下的干擾風實驗,在本次實驗中將初始誤差和風擾動同時視為一種外部擾動,采用ADRC和基于ILC的自適應ADRC分別進行實驗。實驗分別采用迎頭55°、90°、180°,水平風速1.1~1.3、1.4~ 1.6、2.0~2.4、2.5~2.9 m/s下使用ADRC和ILC-ADRC進行對比實驗。
表5中A表示采用ADRC姿態(tài)控制器,IA表示采用ILC-ADRC姿態(tài)控制器,φae為偏航角累計誤差,x(t)為輸出峰值,Mp為超調量,ts為調節(jié)時間。通常四旋翼無人機偏航角度誤差需要控制在15°以內,由表5可知除180°初始誤差外,ILC-ADRC偏航角誤差均小于或等于15°,即滿足偏航角控制要求。調節(jié)時間方面,ILC-ADRC相較于ADRC縮短較多。定義調節(jié)時間提高率η為
(2)
相較于ADRC,采用ILC-ADRC調節(jié)時間分別縮短了40%,16.67%,12.5%,53.33%,10.34%, 13.95%,27.27%,58.66%,11.86%。
圖11為臨界風速和初始誤差角度下無人機偏航角輸出。在1.1~1.3 m/s水平風速、180°初始誤差下,采用ADRC在第103~125、133~150次控制周期時,無人機偏航角誤差加大,分別出現無人機360°旋轉現象,無人機順時針旋轉一周,此時無人機偏航角控制失效。在該風速和初始誤差下,采用ILC-ADRC姿態(tài)控制器偏航角誤差在-15°~15°之間,滿足控制精度要求。在2.0~2.4 m/s, 90°初始誤差下,采用ADRC姿態(tài)控制器在100~115、130~140次控制周期均出現大于15°和小于-15°偏航角誤差;在2.5~2.9 m/s、90°初始誤差下,第25~60、79~100、120~150次控制也出現大于15°和小于-15°偏航角誤差,以上2個實驗ADRC控制器均失效。而采用ILC-ADRC姿態(tài)控制器,在150次控制周期內,偏航角誤差均在-15°~15°之間,滿足四旋翼無人機偏航角控制精度。綜上,2.0~2.4 m/s、55°為ADRC控制器所能承受最大水平風速和初始偏差,2.5~2.9 m/s、90°為ILC-ADRC姿態(tài)控制器所能承受最大水平風速和初始偏差。
表5 初始誤差及水平風干擾下四旋翼無人機控制結果Table 5 UAV control with initial errors and horizontal wind disturbance
圖11 臨界風速和初始誤差下四旋翼無人機偏航角輸出Fig.11 Yaw angle output of UAV at critical wind speed with initial error
1) 通過構建ADRC姿態(tài)控制器實現四旋翼無人機平臺精準懸停,實驗在0.9~1.1、1.1~1.3、1.4~1.6、2.0~2.4、2.5~2.9、3.3~3.6 m/s側向水平風、0.9~1.1 m/s(11°)、1.1~1.3 m/s(13°)、1.4~1.6 m/s(18°)、1.8~ 2.0 m/s(18°)、2.1~2.5 m/s(18°) 前俯向風和側俯向風下驗證ADRC姿態(tài)控制器對未知干擾的補償能力,實驗結果表明,采用ADRC姿態(tài)控制器后無人機抗風擾能力有較大提升。
2) 在有初始誤差和風擾下,構建自適應ADRC 姿態(tài)控制器,通過迭代學習控制在線整定ADRC 控制器帶寬,并證明了ILC-ADRC控制器的穩(wěn)定性。
3) 實驗分別進行了機頭實際方向與期望方向偏離55°、90°、180°,水平風速1.1~1.3、1.4~1.6、2.0~2.4、2.5~2.9 m/s下使用ADRC和ILC-ADRC的對比。采用ILC-ADRC姿態(tài)控制的真實四旋翼無人機平臺偏航角誤差均在-15°~15°之間,具備快速的暫態(tài)響應和改善的無抖振穩(wěn)態(tài)性能。