郭 婕,金 海,沈昕格
(浙江理工大學 信息學院,浙江 杭州 310018)
四旋翼無人機(Unmanned Aerial Vehicles,UAVs)是一種能夠垂直起降具有對稱結構的多旋翼飛行器。UAVs同一對角線上的一組旋翼順時針旋轉,另一組旋翼逆時針旋轉,抵消了旋翼旋轉帶來的反扭矩力,保持了無人機平衡[1]。通過調節4個旋翼的轉速,可以改變無人機的位置,實現對無人機飛行姿態的控制,例如懸停、俯仰、升降和橫滾運動[2]。根據無人機布局和控制的不同,可將無人機分為“+”型和“×”型[3-4]。“×”型無人機姿態變換更加靈活穩定,且不會阻擋前方攝像頭的視線,故本文采用“×”型結構無人機進行研究。
現有的無人機飛控算法主要有LQR控制、反步法控制、滑模控制等。文獻[5~6]中設計了LQR(Linear Quadratic Regulator)控制器,并在仿真平臺下進行了四旋翼飛行器的姿態跟蹤和抗干擾實驗。研究結果表明,LQR控制器對模型的依賴性較強,懸停時震蕩,階躍響應穩定態誤差大。文獻[7]發現反步控制法存在系統設計復雜的問題,會引起過參數化。滑模控制算法中含有不連續的切換項,容易造成控制輸入的高頻抖振[8]。傳統的PID(Proportional Integration Differentiation)控制算法無需知道系統復雜的內部結構和參數,根據輸入輸出誤差即可達到較好的控制效果。但是,PID的缺點是一旦參數整定完成就不可再修改,對于無人機這種控制要求較高的系統,無法實現較好的抗干擾控制。因此,本文結合神經網絡的持續學習及權值修改的優點,設計了神經網絡PID控制器,并與傳統PID、串級PID做了對比,在建模仿真的基礎上證明了其控制的有效性。
為了描述無人機的位置和姿態信息,首先需要建立坐標系。無人機的運動可以分解為六自由度的剛體運動,包含繞3個軸的轉動和重心沿3個軸向的線運動。對于無人機的轉動分析,要選用機體坐標系obxbybzb;對于無人機的線運動,要選用地理坐標系oexeyeze。從機體坐標系到地理坐標系之間的轉換滿足以下關系式[9-11]
(1)
式中,R為坐標轉換矩陣

其中,s表示sin函數;c表示cos函數;θ表示無人機俯仰角;φ表示無人機橫滾角;ψ表示無人機偏航角。
無人機的數學模型能夠在仿真實驗中評估控制算法的有效性。為了建立無人機的數學模型,這里做如下假設:四旋翼無人機是剛體;四旋翼無人機是嚴格對稱結構,重心即幾何中心;四旋翼無人機受的重力沿著大地坐標系z軸負方向,而螺旋槳拉力沿著機體坐標系z軸正方向。
以上這些假設簡化了建模的過程,又能體現出無人機的運動特點。四旋翼無人機的建模主要分為3個部分:動力單元模型、剛體動力學模型、剛體運動學模型,具體如圖1所示。

圖1 四旋翼無人機模型
無人機飛行控制是由主控芯片給出的PWM(Pulse Width Modulation)信號,該PWM信號通過電調轉換成驅動電機的信號,通過電機帶動螺旋槳的旋轉帶來升力。為了方便建模和調試,本文根據電機和螺旋槳參數建立了動力單元模型,該模型將PWM信號轉換為無人機受到的拉力信息。配套電機與螺旋槳參數如表1所示。

表1 配套電機與螺旋槳參數表
根據對應的油門量和拉力數據在MATLAB中進行擬合,得到擬合曲線
y=1.515 4x+0.04523 2x2+6.253 9
(2)
根據該擬合曲線,在仿真模型中可以近似得到無人機的拉力信息,即輸入油門量x的大小(也就是輸出PWM占空比的大小),進而得到螺旋槳帶來的拉力
FT=y×g
(3)
式中,g是當地的重力加速度。
分別從線運動和角運動兩個方面分析無人機在空間中的運動。
2.2.1 線運動方程分析

(4)
式中,m為無人機的質量;x、y、z分別為無人機沿著機體坐標系3個軸的位移。將上式分解到3個軸的線運動為
(5)
式中,FTi表示第i個螺旋槳提供的拉力;g為本地的重力加速度;Kx、Ky、Kz分別為沿著3個軸的空氣阻力系數。
2.2.2 角運動方程分析
在合外力矩的作用下,機體繞軸做旋轉運動,使無人機姿態角發生變化。無人機在飛行過程中受到的力矩作用主要有:4個旋翼提供的升力矩、空氣力矩[13-14]。在機體坐標系中,根據歐拉方程,無人機的角運動微分方程可表示為
(6)

(7)
式中,L表示各旋翼到無人機中心的位置;c表示無人機力到力矩的轉換系數;Ix、Iy、Iz分別為沿機體坐標系3個軸的轉動慣量。
運動學與質量和受力無關,因此,本文只研究位置、速度、姿態和角速度等變量。無人機的位置信息為[15-16]
(8)
無人機的角度信息如下式所示。
(9)
基于BP神經網絡的PID控制系統結構如圖2所示。控制器由兩部分組成:(1)經典的PID控制器。PID系數由神經網絡學習調整;(2)BP神經網絡。根據輸入輸出誤差,通過自身的學習能力調整網絡的加權系數,不斷調節PID的參數,使系統輸出穩定。

圖2 神經網絡PID結構圖
經典增量式數字PID的控制算式[17-18]如式(10)所示。
u(k)=u(k-1)+kp(e(k)-e(k-1))+kie(k)+
kd(e(k)-2e(k-1)+e(k-2))
(10)
設BP神經網絡NN采用3層BP結構,如圖3所示,其包含3個輸入節點,j個隱含節點,3個輸出節點。輸入變量的個數取決于被控系統的復雜程度。輸出節點分別對應PID控制器的3個參數kp、ki和kd,輸出層神經元活化函數取非負的Sigmoid函數。

圖3 神經網絡結構圖
隱含層的激勵函數選取雙曲正切函數,即
f(x)=(ex-e-x)/(ex+e-x)
(11)
輸出層的激勵函數選取非負的Sigmoid函數,即
g(x)=1/(ex+e-x)
(12)
取性能指標函數為
(13)
按照梯度下降法修正網絡的加權系數,誤差e(k)反向傳播對每個權值w求導,可求得使e(k)減小的梯度。作為調整權值的方向,輸出層權值的調整量和隱含層權值的調整量分別為
(14)
(15)
式中,η1、η2為學習率;α1、α2為慣性系數。權值更新之后正向傳播計算出新的PID參數,再根據誤差反向傳播更新參數,循環直到滿足條件。
在 MATLAB-Simulink平臺上搭建四旋翼無人機仿真系統整體模型,如圖4所示,包括期望姿態輸入、PID控制器、四旋翼無人機數學模型以及實際姿態輸出4部分。首先設定期望的3個姿態角,通過PID控制系統以及無人機剛體模型,得到輸出的實際姿態角信息,最后在示波器上顯示。
為了得到更加接近實際的仿真效果,需要確定無人機數學模型的參數,如表2所示。轉動慣量和機身阻力系數通過北航飛行測試系統[12]獲得。

表2 無人機數學仿真模型參數
以Pitch角的調節為例,圖5為神經網絡PID根據輸入輸出誤差自動整定PID參數的結果。該結果說明本文所提方法能夠快速調整PID參數,得到較好的結果。

圖5 神經網絡PID參數整定結果
表3為經典PID、串級PID以及神經網絡PID調節整定完成后的PID參數表。調整參數的過程中,經典PID和串級PID采用試湊法,耗時較長,且不一定會得到最優解。

表3 無人機仿真PID參數
如圖6所示,分別為Pitch期望角度與實際角度的曲線。可以看到,輸出的實際角度基本與期望角度重合,在期望角度出現階躍改變的時候,輸出角度也能在很短的時間內同步變化。但是,經典PID調節剛開始有較大的超調和震蕩,調節時間為4 s;串級PID較好地抑制了這種劇烈的震蕩,但是調節時間仍然是4 s;神經網絡PID不僅快速達到預期值,且在1 s內就將誤差調節在了偏離靜態值5%的范圍內,沒有出現明顯的超調與震蕩,動態性能更加優越。

圖6 不同PID控制方法角度跟蹤曲線
如圖7所示為3種PID控制器輸出的誤差曲線。后期輸出較穩定時,經典PID仍有±0.005的震蕩;串級PID有0.006的靜態誤差;神經網絡PID有0.005的靜態誤差,可見神經網絡PID控制效果最好,靜態性能優于其他控制方法。

圖7 不同PID控制方法的誤差曲線
本文在闡述無人機飛行原理的基礎上,建立了四旋翼、“×”字型結構無人機的仿真模型,在運動學建模和動力學建模中,考慮到了飛行空氣阻力和空氣力矩,并在此基礎上進行了傳統PID、串級PID、神經網絡PID的控制。通過分析發現神經網絡PID在非線性系統中具有良好的控制效果。本文僅研究了神經網絡PID的姿態控制,今后將在此基礎上進一步測試軌跡跟蹤、自主飛行和自動避障。