余潤芝 趙文龍 程若發(fā)
摘 ?要: 針對四旋翼飛行器的強耦合、欠驅動、非線性且無法精確建模等問題,設計一種能夠自主調節(jié)飛行器控制參數,且在工程實踐中易于實現的徑向基神經網絡PID控制算法。該算法以高斯激活函數為主體,采用梯度下降法訓練網絡的中心矢量及權值參數,得出網絡輸入/輸出之間的非線性關系,最后用于修正位置環(huán)PID的控制參數。搭建四旋翼飛行器實物平臺,通過實驗研究算法的控制性能。實驗結果表明,神經網絡PID控制算法控制效果優(yōu)良,不依賴系統(tǒng)的精確建立且具有較強的魯棒性及自適應能力。
關鍵詞: 四旋翼飛行器; 神經網絡; PID; 徑向基; 高斯激活函數; 梯度下降法
中圖分類號: TN876?34; TP391.9; TP242.6 ? ? ? ? ?文獻標識碼: A ? ? ? ? ? ?文章編號: 1004?373X(2019)10?0108?05
Research on neural network PID control algorithm for quadrotor aircraft
YU Runzhi, ZHAO Wenlong, CHENG Ruofa
(College of Information Engineering, Nanchang Hangkong University, Nanchang 330063, China)
Abstract: Since the quadrotor aircraft has the problems such as strong coupling, underactuation, non?linearity and incapability of accurate modeling, a radial basis neural network PID control algorithm that can autonomously adjust the control parameters of the aircraft and is easy to be implemented in engineering practice is designed. In the algorithm, with the Gaussian activation function as the main body, the center vector and weight parameters of the network are trained by using the gradient descent method. The nonlinear relationship between the input and output of the network is obtained to modify the PID control parameters of the position loop. The physical platform of the quadrotor aircraft was built. The control performance of the algorithm was researched in virtue of experiments. The experimental results show that the neural network PID control algorithm has a good control effect, does not depend on the precise construction of the system, and has strong robustness and self?adaptability.
Keywords: quadrotor aircraft; neural network; PID; radial basis; Gaussian activation function; gradient descent method
無人機全稱為無人駕駛飛機(UAV),是利用無線遙控設備和自備的程序控制裝置操縱的不載人飛機[1]。四旋翼飛行器作為無人機的一種,由于其體積小、價格低、可操作性強等優(yōu)勢得到了廣泛運用。在軍用方面既可以用來偵查敵情,也可以作為攻擊武器;在民用方面可以用于航拍、救災、電力巡視、快遞運輸等各方面。但四旋翼飛行器存在多輸入/多輸出、強耦合、欠驅動、非線性且容易受外界環(huán)境干擾等問題[2],針對這些問題國內外提出了很多經典的控制方法,如反步法、變結構滑膜控制法、自抗干擾控制法、自適應控制法等。文獻[3?4]采用反步法設計控制器,該方法對強耦合、非線性的控制系統(tǒng)具有良好的控制效果,但需要系統(tǒng)的精確模型,故對四旋翼這種無法精確建模的控制系統(tǒng)來說控制效果并不是很好;文獻[5?6]通過改變結構的滑膜控制方法設計控制器,該方法設計的算法具有響應迅速、實現簡單且不需要對系統(tǒng)進行精確建模等優(yōu)勢,但連續(xù)性較差會出現“抖振”現象,導致控制效果并不理想;文獻[7?8]先對四旋翼飛行器進行姿態(tài)解耦,再加入自抗干擾控制方法設計控制器,增強了系統(tǒng)的抗干擾能力,但對四旋翼飛行器這種多輸入/多輸出的非線性擬合度不夠,很難精確控制。
本文提出徑向基神經網絡PID控制算法,徑向基神經網絡是利用仿生動物神經元細胞的工作原理而演繹出來的一種局部逼近網絡,能以任意精度逼近任一連續(xù)函數。相比傳統(tǒng)PID控制算法,徑向基神經網絡PID控制算法在結構上加了一個在線辨識網絡,該辨識網絡通過系統(tǒng)的輸入/輸出實時優(yōu)化PID的控制參數,使得系統(tǒng)具有很強的自適應能力。實驗結果表明,徑向基神經網絡PID控制算法控制效果良好,且具有很強的魯棒性及抗干擾能力。
1 ?四旋翼飛行器動力學模型
1.1 ?四旋翼結構方位示意圖
圖1a)為四旋翼飛行器的結構框架示意圖,其中F1~F4為飛行器在運行時電機1~電機4所產生的升力,4個橢圓中的箭頭方向表示電機的旋轉方向,中間方框箭頭為機頭朝向;圖1b)中,xyz表示地面參考坐標系,x1y1z1表示機身三個軸線方向。定義x軸的正方向與機頭方向一致,當飛行器沿著y軸方向旋轉時,機身軸線x1方向與地面參考坐標系x軸在xOz平面形成的夾角[θ]為俯仰角(pitch),表示飛行器的俯仰運動;當飛行器沿著x軸方向旋轉時,機身軸線z1方向與地面參考坐標系z軸在yOz平面形成的夾角[?]為滾轉角(roll),表示機體的滾轉運動;當飛行器沿著z軸方向旋轉時,機身軸線y1方向與地面參考坐標系y軸在xOy平面形成的夾角[ψ]為偏航角(yaw),表示機體的偏航運動。
圖1 ?四旋翼飛行器方位結構示意圖
1.2 ?四旋翼的數學模型
對圖1a)進行受力分析可得:
[FxFyFz=i=14Fisin θ cos ? cos ψ+sin ? sin ψsin θ cos ? sin ψ-sin θ cos ψ ? ? ? ? ? ? ? ?cos θ cos ?] ? (1)
式中,Fx,Fy,Fz分別為升力沿x,y,z軸的分量。已知飛行器在各個方向的受力,再根據牛頓第二定律可以推導出飛行器的線性運動方程:
[x=Fx-ξxx2my=Fy-ξyy2mz=Fz-ξzz2m] ?(2)
式中:m為四旋翼飛行器的質量;ξx,ξy,ξz分別為空氣中各個方向的阻力系數。定義四旋翼飛行器的輸入為[9]:
[u=u1u2u3u4=F1+F2+F3+F4F2+F4-F1-F3F2+F3-F1-F4F1+F2-F3-F4 ? =kr(ω21+ω22+ω23+ω24)kr(ω22+ω24-ω21-ω23)kr(ω22+ω23-ω21-ω24)kd(ω21+ω22-ω23-ω24)] (3)
式中:[u1]為高度控制輸入;[u2]為滾轉運動控制輸入;[u3]為俯仰運動控制輸入;[u4]為偏航運動控制輸入;[kr]為飛行器升力系數;[kd]表示飛行器的阻力系數;ωi(i=1,2,3,4)表示電機1~電機4的轉速。
通過對飛行器剛體轉動動力學方程及機身姿態(tài)角的變化進行分析,可以得到四旋翼的動力學模型[10?11]:
[x=sinθcos ?cosψ+sin?sinψu1my=(sinθ cos ? sin ψ-sin? cos ψ)u1mz=(cos?cosψ)u1m-g?=bu2+(Jy-Jz)θψ+JrθafJxθ=bu3+(Jz-Jx)?ψ-Jr?afJyψ=u4+(Jx-Jy)?θJz] ? ? (4)
式中:ɑf=(ω2+ω4-ω1-ω3)表示系統(tǒng)的干擾;b為旋翼中心與機體重心的距離;Jx,Jy,Jz分別為飛行器在x,y,z三軸線的轉動慣量;Jr為電機外轉子與螺旋槳的轉動慣量。
本文采用科學嚴謹的數學方法對四旋翼飛行器進行建模,利用建立好的模型可以反復對其進行實驗來驗證自己提出的算法理論。但理論和實際還是有相當的差距,如式(4)中參數的選型,往往會因為傳感器精度有限,機體坐標和重心不在同一位置,系統(tǒng)狀態(tài)變化太快等各種環(huán)境因素影響,導致無法確定四旋翼飛行器的精確模型。
2 ?神經網絡控制器設計
2.1 ?控制系統(tǒng)位置環(huán)結構
四旋翼飛行器的控制系統(tǒng)位置環(huán)結構如圖2所示。由式(4)可知,四旋飛行器狀態(tài)量中x和y是間接驅動狀態(tài),狀態(tài)量z,[?],[θ]和[ψ]為直接驅動狀態(tài),即進入四旋翼飛行器的輸入分別為控制高度的u1、控制滾轉運動的u2、控制俯仰運動的u3、控制偏航運動的u4。圖2中神經網絡PID位置控制器不對姿態(tài)角度進行處理,僅對高度進行控制,神經網絡PID姿態(tài)控制器則是對系統(tǒng)的姿態(tài)角度進行控制。位置狀態(tài)觀測器和姿態(tài)狀態(tài)觀測器分別由GPS模塊、MS5611氣壓計、LSM303三軸加速度計、L3GD20陀螺儀組成。
圖2 ?控制系統(tǒng)位置環(huán)結構示意圖
2.2 ?RBF神經網絡結構
多變量插值的徑向基函數(Radial Basis Function,RBF)是一種局部逼近的神經網絡方法。RBF神經網絡一般由三層網絡結構組成,分別為輸入層、隱含層、輸出層。輸入層是由r個源節(jié)點組成,用于接收外界信號;隱含層由m個隱藏單元構成,m的大小與信號特征及其所描述的問題有關,輸入層到隱含層是一個無監(jiān)督混合學習的過程,之間的變換往往是非線性的;輸出層要對輸入信號做出一定的響應,是一個線性且有監(jiān)督的混合學習過程。
圖3 ?RBF網絡結構
2.2.1 ?RBF網絡輸出
由圖3可知網絡輸入x為r維向量,隱含層[δ]為m維向量,輸出y為n維向量。要實現RBF網絡中輸入層至輸出層x→δj(x)的非線性映射,較為常用的徑向基網絡節(jié)點函數為高斯激活函數[12],其定義為:
[δj(x)=δx-cj=exp-x-cj22σ2j] ? ? ?(5)
式中:j=1,2,…,m;x=[x1,x2,…,xr]T為輸入量;cj=[cj1,
cj2,…,cjr]T是第j個節(jié)點的中心矢量;δj(x)是第j個隱含節(jié)點的輸出;[σj]為節(jié)點j的基寬度常量。由式(5)可知,隱含層節(jié)點δj(x)輸出結果在0和1之間,其輸出的值越大,說明輸入量越接近節(jié)點中心。
在RBF神經網絡中隱含層到輸出層是線性的,所以δj(x)→yi可以表示為:
[yi=j=1mδjωij-υk=j=1mexp-x-cj22σ2jωij-υk] ?(6)
式中:i=1,2,…,n為輸出層節(jié)點序號;m表示隱含層節(jié)點數;yi為輸出層第i個節(jié)點的輸出;δj表示隱含層第j個節(jié)點的輸出;ωij為隱含層至輸出層的加權系數;[υk]為隱含層的閾值。
2.2.2 ?RBF網絡誤差修正學習算法
由式(6)可知,只需確定δj,cj,ωij參數的值,便可得輸出yk與輸入[x]非線性方程。用于訓練RBF神經網絡的誤差模型為:
[e(k)=y(k)-yi(k)] ?(7)
該神經網絡性能指標為:
[E(k)=12e2(k)=12(y(k)-yi(k))2] ?(8)
式中:y(k)為系統(tǒng)實際輸出;yi(k)為神經網絡模型輸出。
由梯度下降法、輸出節(jié)點中心及節(jié)點基寬參數的迭代算法如下:
[Δωij(k)=-η?E?ωij=-η?E?yi·?yi?ωij=ηe(k)δjωij(k)=ωij(k-1)+Δωij(k)+a(ωij(k-1)-ωij(k-2))] ? ? ? ? ? ? ? (9)
[Δσj(s)=-η?E?σj=-η?E?yi·?yi?σj=ηe(k)ωijδjx-cj2σ3jσj(s)=σj(k-1)+Δσj(k)+a(σj(k-1)-σj(k-2))] ? ? ? ? ? ? (10)
[Δcjb(s)=-η?E?cjb=-η?E?yi·?yi?cjb=ηe(k)ωijx-cjbσ2jcjb(s)=cjb(k-1)+Δcjb(k)+a(cjb(k-1)-cjb(k-2))] ? ? ? ? ? ? ? (11)
式中:b=1,2,…,r;η為學習速率;[a]為動量因子。
2.3 ?RBF神經網絡用于整定PID控制參數
由式(3)可知,四旋翼有4個輸入u1,u2,u3,u4,分別控制四旋翼飛行器的高度、俯仰、滾轉、偏航運動,定義這4個狀態(tài)的實際輸出與模型輸出差值為[eh],[epit],[erol],[eyaw], 采用增量式PID設計控制算法,以高度誤差[eh]為例求出參與四旋翼高度控制的PID參數。
首先高度控制PID三項輸入為:
[xh(1)=eh(k)-eh(k-1)] (12)
[xh(2)=eh(k)] ?(13)
[xh(3)=eh(k)-2eh(k-1)+eh(k-2)] ?(14)
PID控制器的控制算法為:
[uh(k)=uh(k-1)+Δuh(k)] ?(15)
[Δuh(k)=kP_h(eh(k)-eh(k-1))+kI_heh(k)+ ? ? ? ? ? ? ? ? ?kD_h(eh(k)-2eh(k-1)+eh(k-2))] (16)
高度控制的神經網絡整定指標為:
[Eh(k)=12e2h(k)=12(y(k)-yh(k))2] (17)
采用梯度下降法可得
[ΔkP_h=-η?Eh?kP_h=-η?Eh?yh·?yh?Δuh·?Δuh?kP_h ? ? ? ? ?=ηeh(k)?yh?Δuhxh(1)ΔkI_h=-η?Eh?kI_h=-η?Eh?yh·?yh?Δuh·?Δuh?kI_h ? ? ? ? =ηeh(k)?yh?Δuhxh(2)ΔkD_h=-η?E?kD_h=-η?Eh?yh·?yh?Δuh·?Δuh?kD_h ? ? ? ? =ηeh(k)?yh?Δuhxh(3)] (18)
式中,[?yh?Δuh]為被控對象的Jacobian信息,即對象的輸出對控制輸入變化的靈敏度信息,可以通過神經網絡訓練獲得,算法為
[?y(k)?Δuh(k)≈?yh(k)?Δuh(k)=j=1mωjδjcjb-Δuh(k)σ2j] ?(19)
把式(9)~式(11)代入式(19)可得[?yh?Δuh],之后便可求出式(18)中[ΔkP_h],[ΔkI_h],[ΔkD_h]的值,根據梯度下降法調整PID參數:
[kP_h(k)=kP_h(k-1)+ΔkP_h(k)+a1(kP_h(k-1)- ? ? ? ? ? ? ? ? kP_h(k-2))] ?(20)
[kI_h(k)=kI_h(k-1)+ΔkI_h(k)+a1(kI_h(k-1)- ? ? ? ? ? ? ? ? kI_h(k-2))] ?(21)
[kD_h(k)=kD_h(k-1)+ΔkD_h(k)+a1(kD_h(k-1)- ? ? ? ? ? ? ? ? kD_h(k-2))] (22)
同理可以分別得出控制俯仰、滾轉、偏航運動的PID控制參數,即能夠完成PID參數陣。
[KPID=kPkIkD=kP_hkP_pitkP_rolkP_yawkI_hkI_pitkI_rolkI_yawkD_hkD_pitkD_rolkD_yaw] ? (23)
3 ?控制算法研究實驗
為了驗證算法的控制性能,搭建一個四旋翼飛行器實物平臺,分別做了高度控制和姿態(tài)抗干擾控制實驗,把實驗得出的數據在Matlab環(huán)境下進行處理分析。四旋翼飛行器空中懸停如圖4所示。
3.1 ?高度控制
四旋翼飛行器切換成定高模式,高度設定為5 m,高度數據曲線如圖5所示,由圖可知飛行器在3 s時開始拉升,6.89 s時達到最高點,這時飛行器的高度為5.37 m,由此可得超調量為7.4%;若穩(wěn)態(tài)誤差設定為5%,飛行器在7.06 s時便達到穩(wěn)定,之后高度一直在5 m上下浮動。
圖4 ?四旋翼飛行器空中懸停
圖5 ?實際飛行高度曲線
3.2 ?姿態(tài)抗干擾實驗
四旋翼飛行器在空中懸停狀態(tài)下,分別在29 s和38.5 s時,通過拉扯飛行器的一端作為干擾,得出的姿態(tài)角度變化如圖6所示。由圖可知,在外加干擾的情況下,滾轉角和俯仰角產生-4.5°的偏差,但控制器能夠迅速響應并調節(jié)回來,抗干擾能力極強。
圖6 ?姿態(tài)控制曲線
4 ?結 ?語
本文針對四旋翼飛行器多輸入/多輸出難以精確建模的非線性特征系統(tǒng),設計徑向基神經網絡PID控制算法,并給出系統(tǒng)模型及算法步驟,通過搭建實物平臺驗證算法的性能。由實驗結果可知,徑向基神經網絡PID控制效果良好,能夠滿足四旋翼飛行器的正常飛行。但是本文實驗還有兩個缺點:
1) 缺乏普通PID和徑向基神經網絡PID控制性能的對比,這個是由于實驗過程中所選取的普通PID參數,對四旋翼飛行器這種難以精確建模的非線性系統(tǒng)控制效果非常不理想,導致飛行器根本不能正常飛行,且抗干擾能力極差,無法正常進行實驗;
2) 文中分別對高度、滾轉、俯仰運動進行了參數測試,并沒有對偏航PID參數進行探究,原因是偏航運動沒有具體參考值,比如懸停模式下滾轉和俯仰角度肯定在0附近波動,但是偏航可以是任意角度,所以就算給了一定干擾,其控制效果也很難分辨。
參考文獻
[1] 張立庭.無人機在船舶引航領域的應用[J].中國港口,2016(9):50?51.
ZHANG Liting. Application of UAV in ship pilotage [J]. China ports, 2016(9): 50?51.
[2] 周蕾,趙文龍,程若發(fā).四旋翼飛行器控制系統(tǒng)穩(wěn)定性優(yōu)化設計仿真[J].計算機仿真,2017,34(9):83?87.
ZHOU Lei, ZHAO Wenlong, CHENG Ruofa. Simulation of stability optimization design of quadrotor aircraft control system [J]. Computer simulation, 2017, 34(9): 83?87.
[3] 陳奕梅,陳增輝,修春波.四旋翼無人飛行器反步法的控制[J].天津工業(yè)大學學報,2015,34(5):32?36.
CHEN Yimei, CHEN Zenghui, XIU Chunbo. Backstepping control of quadrotor unmanned aerial vehicle [J]. Journal of Tianjin Polytechnic University, 2015, 34(5): 32?36.
[4] 趙元偉,盧京朝.四旋翼飛行器的建模及基于反步法的控制[J].科學技術與工程,2013,13(34):10425?10430.
ZHAO Yuanwei, LU Jingchao. Modeling and control of a quadrotor based on the backstepping method [J]. Science technology and engineering, 2013, 13(34): 10425?10430.
[5] 王璐,李光春,王兆龍,等.欠驅動四旋翼無人飛行器的滑??刂芠J].哈爾濱工程大學學報,2012,33(10):1248?1253.
WANG Lu, LI Guangchun, WANG Zhaolong, et al. Sliding mode control of underactuated quadrotor UAV [J]. Journal of Harbin Engineering University, 2012, 33(10): 1248?1253.
[6] 侯明冬,劉金琨,田杰.欠驅動四旋翼飛行器全局軌跡跟蹤滑模控制[J].控制工程,2016,23(6):928?932.
HOU Mingdong, LIU Jinkun, TIAN Jie. Global stability trajectory tracking of underactuated quadrotor [J]. Control engineering of China, 2016, 23(6): 928?932.
[7] 于占東,王慶超.飛行器姿態(tài)的一種魯棒自適應模糊解耦控制[J].宇航學報,2003,24(4):368?373.
YU Zhandong, WANG Qingchao. Robust adaptive fuzzy decoupling control of aircraft attitude [J]. Journal of astronautics, 2003, 24(4): 368?373.
[8] 李杰,齊曉慧,韓帥濤.基于自抗擾技術的四旋翼姿態(tài)解耦控制方法[J].電光與控制,2013,20(3):44?48.
LI Jie, QI Xiaohui, HAN Shuaitao. Attitude decoupling control for quadrotor aircraft based on active disturbance rejection control technique [J]. Electronics optics & control, 2013, 20(3): 44?48.
[9] 楊立本,章衛(wèi)國,黃得剛.基于ADRC姿態(tài)解耦的四旋翼飛行器魯棒軌跡跟蹤[J].北京航空航天大學學報,2015,41(6):1026?1033.
YANG Liben, ZHANG Weiguo, HUANG Degang. Robust trajectory tracking for quadrotor aircraft based on ADRC attitude decoupling control [J]. Journal of Beijing University of Aeronautics and Astronautics, 2015, 41(6): 1026?1033.
[10] 趙玥,陳奕梅.四旋翼無人飛行器控制算法設計[J].計算機工程與應用,2017,53(21):49?53.
ZHAO Yue, CHEN Yimei. Design of four rotor unmanned spacecraft control algorithm [J]. Computer engineering and applications, 2017, 53(21): 49?53.
[11] 焦金彥,薛建平,董新民,等.基于間接型迭代學習控制的四旋翼軌跡跟蹤[J].現代電子技術,2017,40(23):113?118.
JIAO Jinyan, XUE Jianping, DONG Xinmin, et al. Quadrotor trajectory tracking based on indirect iterative learning control [J]. Modern electronics technique, 2017, 40(23): 113?118.
[12] 李硯濃,李汀蘭,姜藝,等.基于RBF神經網絡自適應PID四旋翼飛行器控制[J].控制工程,2016,23(3):378?382.
LI Yannong, LI Tinglan, JIANG Yi, et al. Adaptive PID control of quadrotor based on RBF neural network [J]. Control engineering of China, 2016, 23(3): 378?382.