郭 婕,金 海,沈昕格
(浙江理工大學 信息學院,浙江 杭州 310018)
四旋翼無人機(Unmanned Aerial Vehicles,UAVs)是一種能夠垂直起降具有對稱結(jié)構(gòu)的多旋翼飛行器。UAVs同一對角線上的一組旋翼順時針旋轉(zhuǎn),另一組旋翼逆時針旋轉(zhuǎn),抵消了旋翼旋轉(zhuǎn)帶來的反扭矩力,保持了無人機平衡[1]。通過調(diào)節(jié)4個旋翼的轉(zhuǎn)速,可以改變無人機的位置,實現(xiàn)對無人機飛行姿態(tài)的控制,例如懸停、俯仰、升降和橫滾運動[2]。根據(jù)無人機布局和控制的不同,可將無人機分為“+”型和“×”型[3-4]?!啊痢毙蜔o人機姿態(tài)變換更加靈活穩(wěn)定,且不會阻擋前方攝像頭的視線,故本文采用“×”型結(jié)構(gòu)無人機進行研究。
現(xiàn)有的無人機飛控算法主要有LQR控制、反步法控制、滑??刂频取N墨I[5~6]中設計了LQR(Linear Quadratic Regulator)控制器,并在仿真平臺下進行了四旋翼飛行器的姿態(tài)跟蹤和抗干擾實驗。研究結(jié)果表明,LQR控制器對模型的依賴性較強,懸停時震蕩,階躍響應穩(wěn)定態(tài)誤差大。文獻[7]發(fā)現(xiàn)反步控制法存在系統(tǒng)設計復雜的問題,會引起過參數(shù)化?;?刂扑惴ㄖ泻胁贿B續(xù)的切換項,容易造成控制輸入的高頻抖振[8]。傳統(tǒng)的PID(Proportional Integration Differentiation)控制算法無需知道系統(tǒng)復雜的內(nèi)部結(jié)構(gòu)和參數(shù),根據(jù)輸入輸出誤差即可達到較好的控制效果。但是,PID的缺點是一旦參數(shù)整定完成就不可再修改,對于無人機這種控制要求較高的系統(tǒng),無法實現(xiàn)較好的抗干擾控制。因此,本文結(jié)合神經(jīng)網(wǎng)絡的持續(xù)學習及權值修改的優(yōu)點,設計了神經(jīng)網(wǎng)絡PID控制器,并與傳統(tǒng)PID、串級PID做了對比,在建模仿真的基礎上證明了其控制的有效性。
為了描述無人機的位置和姿態(tài)信息,首先需要建立坐標系。無人機的運動可以分解為六自由度的剛體運動,包含繞3個軸的轉(zhuǎn)動和重心沿3個軸向的線運動。對于無人機的轉(zhuǎn)動分析,要選用機體坐標系obxbybzb;對于無人機的線運動,要選用地理坐標系oexeyeze。從機體坐標系到地理坐標系之間的轉(zhuǎn)換滿足以下關系式[9-11]
(1)
式中,R為坐標轉(zhuǎn)換矩陣
其中,s表示sin函數(shù);c表示cos函數(shù);θ表示無人機俯仰角;φ表示無人機橫滾角;ψ表示無人機偏航角。
無人機的數(shù)學模型能夠在仿真實驗中評估控制算法的有效性。為了建立無人機的數(shù)學模型,這里做如下假設:四旋翼無人機是剛體;四旋翼無人機是嚴格對稱結(jié)構(gòu),重心即幾何中心;四旋翼無人機受的重力沿著大地坐標系z軸負方向,而螺旋槳拉力沿著機體坐標系z軸正方向。
以上這些假設簡化了建模的過程,又能體現(xiàn)出無人機的運動特點。四旋翼無人機的建模主要分為3個部分:動力單元模型、剛體動力學模型、剛體運動學模型,具體如圖1所示。
圖1 四旋翼無人機模型
無人機飛行控制是由主控芯片給出的PWM(Pulse Width Modulation)信號,該PWM信號通過電調(diào)轉(zhuǎn)換成驅(qū)動電機的信號,通過電機帶動螺旋槳的旋轉(zhuǎn)帶來升力。為了方便建模和調(diào)試,本文根據(jù)電機和螺旋槳參數(shù)建立了動力單元模型,該模型將PWM信號轉(zhuǎn)換為無人機受到的拉力信息。配套電機與螺旋槳參數(shù)如表1所示。
表1 配套電機與螺旋槳參數(shù)表
根據(jù)對應的油門量和拉力數(shù)據(jù)在MATLAB中進行擬合,得到擬合曲線
y=1.515 4x+0.04523 2x2+6.253 9
(2)
根據(jù)該擬合曲線,在仿真模型中可以近似得到無人機的拉力信息,即輸入油門量x的大小(也就是輸出PWM占空比的大小),進而得到螺旋槳帶來的拉力
FT=y×g
(3)
式中,g是當?shù)氐闹亓铀俣取?/p>
分別從線運動和角運動兩個方面分析無人機在空間中的運動。
2.2.1 線運動方程分析
(4)
式中,m為無人機的質(zhì)量;x、y、z分別為無人機沿著機體坐標系3個軸的位移。將上式分解到3個軸的線運動為
(5)
式中,F(xiàn)Ti表示第i個螺旋槳提供的拉力;g為本地的重力加速度;Kx、Ky、Kz分別為沿著3個軸的空氣阻力系數(shù)。
2.2.2 角運動方程分析
在合外力矩的作用下,機體繞軸做旋轉(zhuǎn)運動,使無人機姿態(tài)角發(fā)生變化。無人機在飛行過程中受到的力矩作用主要有:4個旋翼提供的升力矩、空氣力矩[13-14]。在機體坐標系中,根據(jù)歐拉方程,無人機的角運動微分方程可表示為
(6)
(7)
式中,L表示各旋翼到無人機中心的位置;c表示無人機力到力矩的轉(zhuǎn)換系數(shù);Ix、Iy、Iz分別為沿機體坐標系3個軸的轉(zhuǎn)動慣量。
運動學與質(zhì)量和受力無關,因此,本文只研究位置、速度、姿態(tài)和角速度等變量。無人機的位置信息為[15-16]
(8)
無人機的角度信息如下式所示。
(9)
基于BP神經(jīng)網(wǎng)絡的PID控制系統(tǒng)結(jié)構(gòu)如圖2所示??刂破饔蓛刹糠纸M成:(1)經(jīng)典的PID控制器。PID系數(shù)由神經(jīng)網(wǎng)絡學習調(diào)整;(2)BP神經(jīng)網(wǎng)絡。根據(jù)輸入輸出誤差,通過自身的學習能力調(diào)整網(wǎng)絡的加權系數(shù),不斷調(diào)節(jié)PID的參數(shù),使系統(tǒng)輸出穩(wěn)定。
圖2 神經(jīng)網(wǎng)絡PID結(jié)構(gòu)圖
經(jīng)典增量式數(shù)字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神經(jīng)網(wǎng)絡NN采用3層BP結(jié)構(gòu),如圖3所示,其包含3個輸入節(jié)點,j個隱含節(jié)點,3個輸出節(jié)點。輸入變量的個數(shù)取決于被控系統(tǒng)的復雜程度。輸出節(jié)點分別對應PID控制器的3個參數(shù)kp、ki和kd,輸出層神經(jīng)元活化函數(shù)取非負的Sigmoid函數(shù)。
圖3 神經(jīng)網(wǎng)絡結(jié)構(gòu)圖
隱含層的激勵函數(shù)選取雙曲正切函數(shù),即
f(x)=(ex-e-x)/(ex+e-x)
(11)
輸出層的激勵函數(shù)選取非負的Sigmoid函數(shù),即
g(x)=1/(ex+e-x)
(12)
取性能指標函數(shù)為
(13)
按照梯度下降法修正網(wǎng)絡的加權系數(shù),誤差e(k)反向傳播對每個權值w求導,可求得使e(k)減小的梯度。作為調(diào)整權值的方向,輸出層權值的調(diào)整量和隱含層權值的調(diào)整量分別為
(14)
(15)
式中,η1、η2為學習率;α1、α2為慣性系數(shù)。權值更新之后正向傳播計算出新的PID參數(shù),再根據(jù)誤差反向傳播更新參數(shù),循環(huán)直到滿足條件。
在 MATLAB-Simulink平臺上搭建四旋翼無人機仿真系統(tǒng)整體模型,如圖4所示,包括期望姿態(tài)輸入、PID控制器、四旋翼無人機數(shù)學模型以及實際姿態(tài)輸出4部分。首先設定期望的3個姿態(tài)角,通過PID控制系統(tǒng)以及無人機剛體模型,得到輸出的實際姿態(tài)角信息,最后在示波器上顯示。
為了得到更加接近實際的仿真效果,需要確定無人機數(shù)學模型的參數(shù),如表2所示。轉(zhuǎn)動慣量和機身阻力系數(shù)通過北航飛行測試系統(tǒng)[12]獲得。
表2 無人機數(shù)學仿真模型參數(shù)
以Pitch角的調(diào)節(jié)為例,圖5為神經(jīng)網(wǎng)絡PID根據(jù)輸入輸出誤差自動整定PID參數(shù)的結(jié)果。該結(jié)果說明本文所提方法能夠快速調(diào)整PID參數(shù),得到較好的結(jié)果。
圖5 神經(jīng)網(wǎng)絡PID參數(shù)整定結(jié)果
表3為經(jīng)典PID、串級PID以及神經(jīng)網(wǎng)絡PID調(diào)節(jié)整定完成后的PID參數(shù)表。調(diào)整參數(shù)的過程中,經(jīng)典PID和串級PID采用試湊法,耗時較長,且不一定會得到最優(yōu)解。
表3 無人機仿真PID參數(shù)
如圖6所示,分別為Pitch期望角度與實際角度的曲線??梢钥吹?,輸出的實際角度基本與期望角度重合,在期望角度出現(xiàn)階躍改變的時候,輸出角度也能在很短的時間內(nèi)同步變化。但是,經(jīng)典PID調(diào)節(jié)剛開始有較大的超調(diào)和震蕩,調(diào)節(jié)時間為4 s;串級PID較好地抑制了這種劇烈的震蕩,但是調(diào)節(jié)時間仍然是4 s;神經(jīng)網(wǎng)絡PID不僅快速達到預期值,且在1 s內(nèi)就將誤差調(diào)節(jié)在了偏離靜態(tài)值5%的范圍內(nèi),沒有出現(xiàn)明顯的超調(diào)與震蕩,動態(tài)性能更加優(yōu)越。
圖6 不同PID控制方法角度跟蹤曲線
如圖7所示為3種PID控制器輸出的誤差曲線。后期輸出較穩(wěn)定時,經(jīng)典PID仍有±0.005的震蕩;串級PID有0.006的靜態(tài)誤差;神經(jīng)網(wǎng)絡PID有0.005的靜態(tài)誤差,可見神經(jīng)網(wǎng)絡PID控制效果最好,靜態(tài)性能優(yōu)于其他控制方法。
圖7 不同PID控制方法的誤差曲線
本文在闡述無人機飛行原理的基礎上,建立了四旋翼、“×”字型結(jié)構(gòu)無人機的仿真模型,在運動學建模和動力學建模中,考慮到了飛行空氣阻力和空氣力矩,并在此基礎上進行了傳統(tǒng)PID、串級PID、神經(jīng)網(wǎng)絡PID的控制。通過分析發(fā)現(xiàn)神經(jīng)網(wǎng)絡PID在非線性系統(tǒng)中具有良好的控制效果。本文僅研究了神經(jīng)網(wǎng)絡PID的姿態(tài)控制,今后將在此基礎上進一步測試軌跡跟蹤、自主飛行和自動避障。