曾玉龍,趙龍,,周建華
1. 北京航空航天大學 數(shù)字導航中心,北京 100191
2. 北京航空航天大學 飛行器控制一體化技術重點實驗室,北京 100191
基于改進遺傳算法的四旋翼無人機參數(shù)辨識
曾玉龍1,趙龍1,2,周建華1
1. 北京航空航天大學 數(shù)字導航中心,北京 100191
2. 北京航空航天大學 飛行器控制一體化技術重點實驗室,北京 100191
為克服傳統(tǒng)遺傳算法在參數(shù)辨識過程中收斂速度慢的問題,提出了一種基于改進遺傳算法的四懸翼無人機參數(shù)辨識方法。該方法引入梯度算子為遺傳進化提供指示性的方向,利用遺傳算法的全局搜索性保證算法的全局收斂,并根據(jù)簡化四旋翼無人機數(shù)學模型設計了優(yōu)化函數(shù)。利用四懸翼無人機實飛數(shù)據(jù)進行了實驗測試,實驗結(jié)果驗證了本文方法的有效性和快速收斂性。
四旋翼無人機;剛體模型;參數(shù)辨識;遺傳算法;梯度算子
目前,無人機已然在災區(qū)救援、物資運輸、軍事偵察等諸多領域得到了廣泛的應用,無人機的控制問題也越來越受到學界的重視。四旋翼無人直升機,以其飛行的靈活機動性以及垂直起降功能在無人機研究領域占有重要位置。近年來,針對四旋翼無人機的研究成果也越來越豐富[1]。然而四旋翼無人機由于其模型的非線性以及各變量間的耦合性,導致建模和控制問題成為該領域的關鍵技術問題[2]。
四旋翼無人機是一個典型的欠驅(qū)動系統(tǒng),其數(shù)學模型表現(xiàn)出非線性和各狀態(tài)的高度耦合性[3-4],因而經(jīng)典的參數(shù)辨識方法,例如最小二乘法和極大似然法等,很難實現(xiàn)對模型參數(shù)的精確辨識[5]。遺傳算法是解決非線性問題的一個比較常用的方法,可以實現(xiàn)問題的全局收斂[6]。然而遺傳算法存在著進化方向過于隨機,收斂速度慢的問題[7-8]。梯度校正法是實現(xiàn)辨識問題的又一方法,算法收斂速度相對比較快,然而算法對非線性問題可能會陷入局部極小,很難實現(xiàn)全局收斂。
為解決上述問題,本文在遺傳算法中引入梯度算子,為遺傳算法進化提供一個參考方向。應用梯度下降的思想實現(xiàn)遺傳算法的快速收斂,同時利用遺傳算法的交叉變異過程跳出局部極小,實現(xiàn)算法的全局收斂[9]。
四旋翼無人機的結(jié)構(gòu)見圖1。無人機機體由4個旋翼驅(qū)動,其中互為對角線的2個旋翼為1組。2組旋翼旋轉(zhuǎn)方向相反,在4個旋翼旋轉(zhuǎn)速度大小相同時,2組旋翼產(chǎn)生的反扭力矩相互平衡,4個旋翼拉力平衡重力時可以實現(xiàn)飛行器的懸停;當同一組旋翼轉(zhuǎn)速相同而組間轉(zhuǎn)速不相同時,反扭力矩的不平衡可以使飛行器產(chǎn)生偏航力矩;而當同一組中的2個旋翼旋轉(zhuǎn)速度不同時則會產(chǎn)生俯仰或是滾轉(zhuǎn)力矩。
圖1 四旋翼無人機結(jié)構(gòu)
當忽略了四旋翼無人機的機械振動和彈性形變時,系統(tǒng)可以簡化為1個六自由度的剛體,可以應用剛體動力學方程為四旋翼系統(tǒng)進行建模。然而在實際飛行時,飛行器的飛行狀態(tài)會受到很多復雜因素的影響,例如飛行過程中風對飛行器的影響、飛行器向前飛時各旋翼的揮舞運動等等。為便于飛行器模型辨識過程的進行,假設飛行器的飛行狀態(tài)為:1)四旋翼在基本無風的飛行,不考慮風的影響;2)四旋翼處于懸?;蚵亠w行狀態(tài),忽略旋翼的揮舞運動。文獻[4]和文獻[10]研究了此種情形下的四旋翼建模問題。
四旋翼飛行器機體坐標系和慣性坐標系之間的轉(zhuǎn)換矩陣為
式中φ、θ和ψ分別為四旋翼的滾轉(zhuǎn)角、俯仰角和航向角;符號S和C分別代表三角函數(shù)sin()和cos()。如果令η代表3個歐拉角構(gòu)成的向量η=[?θψ]T,用ω表示機體坐標系下3個軸方向四旋翼的角速度ω=[pqr]T,則有
剛體運動方程可以由Newton-Euler法得到。假設四旋翼的4個旋翼產(chǎn)生拉力以及旋轉(zhuǎn)的反扭力矩分別用下式表示
式中iΩ表示旋翼轉(zhuǎn)動角速度。則剛體的平動和轉(zhuǎn)動方程可以表示為
式中m表示四旋翼的質(zhì)量;J表示轉(zhuǎn)動慣量張量;Jr表示旋翼的轉(zhuǎn)動慣量;rΩ為表征陀螺效應的相對角速度,該乘積項表征無人機4個旋翼整體的陀螺效應;FB為飛行器所受外力;MB為飛行器所受外力矩;R為坐標轉(zhuǎn)換矩陣。FB和MB可表示為
式中Fi和Mi分別表示各旋翼的作用力和力矩。
根據(jù)四旋翼結(jié)構(gòu)的對稱性,轉(zhuǎn)動慣量張量矩陣J可以寫成一個對角陣的形式。如果選取狀態(tài)變量為
由于動力系統(tǒng)的時間常數(shù)要比電機的實現(xiàn)常數(shù)大得多,可以將四旋翼驅(qū)動電機的數(shù)學模型簡化為如下形式[1]:
式中Vi為各旋翼電機的輸入電壓,K為電機常數(shù),從而可以得到四旋翼的狀態(tài)空間方程形式:
式中X為系統(tǒng)狀態(tài)變量,其估計值可以通過慣導統(tǒng)得到。通過狀態(tài)估計值和輸入值可以實現(xiàn)對系統(tǒng)參數(shù)的辨識。
實際飛行中,四旋翼無人機數(shù)據(jù)采集主要包括輸入量和輸出量數(shù)據(jù)的采集,其中輸出量主要由飛行器的導航系統(tǒng)提供。導航系統(tǒng)在進行數(shù)據(jù)測量過程中存在偏差,因而實際測量的狀態(tài)會有一定誤差,即
傳統(tǒng)的優(yōu)化函數(shù)可以表示為
為解決遺傳算法收斂慢的問題,將梯度算子引入到遺傳算法之中,文中近似地取優(yōu)化函數(shù)為
式中N代表飛行過程中采集到的數(shù)據(jù)組數(shù)。辨識過程中利用差分近似代替微分,其表達式為式中T(k)代表飛行過程中數(shù)據(jù)的采樣時間;Δt?表示差分近似的微分運算。用θ表示模型參數(shù)向量,對上式所示的優(yōu)化函數(shù)取梯度可以得到新的梯度算子,即
式中:
改進遺傳算法在實現(xiàn)時包括編碼、種群初始化以及迭代進化過程3個主要部分。每一次迭代進化過程包括選擇、梯度進化、交叉和變異4個主要步驟。算法流程如圖2所示。
1)編碼。針對四旋翼剛體模型的特點,選取1個九維雙精度實向量作為染色體,采用十進制編碼形式。九維向量對應剛體模型的9個待辨識定常參數(shù){ai、k m、bj},i=1,2,…,5,j=1、2、3。
2)種群初始化。根據(jù)選用的四旋翼無人機的類型特點以及選用電機的參數(shù),估計各參數(shù)范圍。將各參數(shù)范圍綜合考慮,組成1個九維矩形區(qū)域作為參數(shù)可行域。在可行域中依均勻分布隨機選取若干個九維實向量作為進化算法的初始染色體組。
3)迭代進化。傳統(tǒng)的遺傳算法迭代進化過程包括選擇、交叉和變異3個算子運算。為實現(xiàn)對遺傳算法加速,文中在基本迭代運算基礎上引入了梯度算子,算法過程包括選擇、梯度、交叉和變異4個步驟。而且為保證算法的收斂性,算法在每代進化中保留親代中的最優(yōu)值。
a)選擇算子。算法根據(jù)優(yōu)化函數(shù)計算出每一代迭代運算中得到染色體組的適應度值,根據(jù)適應度值分配梯度算子和交叉算子選取親本的概率。
b)梯度算子。根據(jù)選擇算子得到的概率選擇親本,并根據(jù)梯度公式對親本實施一步梯度計算并加入到子代染色體組中。
c)交叉算子。采用傳統(tǒng)十進制交叉算法,選取2個親本染色體之后對親本進行加權(quán)融合,得到2個新染色體并加入子代染色體組中。
d)變異算子。采用傳統(tǒng)的十進制變異算法,根據(jù)概率對選中的子代染色體加入一個隨機生成的九維向量,同時保證變異后子代處于可行域內(nèi)。
圖2 改進遺傳算法流程
文中利用實驗四旋翼無人機的實飛數(shù)據(jù)對無人機的剛體模型參數(shù)進行辨識和驗證測試。
由于待辨識參數(shù)多,且四旋翼無人機模型中姿態(tài)控制回路和位置控制回路的參數(shù)間存在一定的獨立性,為簡化仿真計算,將四旋翼各參數(shù)進行分組辨識。文中把待辨識參數(shù)分為俯仰回路、滾轉(zhuǎn)回路、航向回路以及位置回路四個部分分別進行辨識,并取100代遺傳最優(yōu)值作為辨識結(jié)果。
從俯仰回路參數(shù)辨識結(jié)果中得到的俯仰回路辨識軌線與實際飛行軌線對比如圖3所示。
圖3 俯仰回路辨識結(jié)果
從圖3中可以看出,俯仰角回路的辨識結(jié)果同實際飛行結(jié)果非常接近。2組數(shù)據(jù)只是在最后一段時間出現(xiàn)了一定的偏差,該偏差主要是由飛行數(shù)據(jù)誤差引起的。偏航角回路辨識結(jié)果對比軌線如圖4所示。
圖4 偏航回路辨識結(jié)果
從圖4中可以看出,與俯仰回路不同,偏航回路辨識結(jié)果存在一個角度的常值誤差。在辨識過程,一方面由于慣導系統(tǒng)的漂移會使系統(tǒng)出現(xiàn)一些誤差;另一方面航向角的基準方向選取過程也存在一定誤差;再者,遺傳算法由于選取有限代數(shù)的進化結(jié)果作為最終辨識結(jié)果。故此,辨識結(jié)果存在一定程度的偏差。
滾轉(zhuǎn)角辨識結(jié)果對比曲線如圖5所示。滾轉(zhuǎn)角回路的角速度辨識結(jié)果存在一個常值誤差,使得角度偏差等幅增大。在本回路中,誤差主要是算法的有限代結(jié)果存在的誤差引起的,此外回路相關參數(shù)過小也會導致角速度辨識過程出現(xiàn)誤差。
圖5 滾轉(zhuǎn)回路辨識結(jié)果對比
四旋翼的3個位置環(huán)對應的輸入?yún)?shù)都只有油門輸入量,3個方向具體的運動形式主要通過無人機的姿態(tài)角來具體實現(xiàn)。因而3個位置回路待辨識參數(shù)只有1個,即油門輸入的增益值。圖6為高度的辨識結(jié)果同實飛數(shù)據(jù)對比結(jié)果。
圖6 高度辨識結(jié)果對比
從圖6中可以看出,位置辨識結(jié)果同樣存在著常值的偏差,該誤差主要是由于高度測量的定位偏差引起的。此外算法的有限步取值同樣也會引起辨識誤差。
文中利用梯度算子對傳統(tǒng)的遺傳算法進行了改進,意在加速算法的收斂過程。為比較加入梯度算子前后辨識過程的收斂情況,在同樣條件下利用傳統(tǒng)的遺傳算法對四旋翼的參數(shù)辨識問題進行了求解,分別求出了2種算法的優(yōu)化函數(shù)值。改進遺傳算法同傳統(tǒng)遺傳算法的收斂情況對比曲線如圖7所示。
圖7 改進遺傳算法收斂情況對比
從圖7中可以看出,在引入梯度算子后,參數(shù)誤差降至初始種群5%時,進化代數(shù)由傳統(tǒng)遺傳算法的87代下降到17代。從效果上來看,改進算法收斂速度較之傳統(tǒng)遺傳算法有了一定程度的提升。
針對四旋翼無人機系統(tǒng)辨識問題,利用梯度算子對遺傳算法參數(shù)辨識過程進行改進,獲得了四旋翼無人機的剛體數(shù)學模型。利用實際試飛數(shù)據(jù)進行仿真測試,測試結(jié)果表明,引入梯度算子加快了遺傳算法的收斂速度,增加了算法的魯棒性。
對于文中研究的問題還需進一步完成:1)針對四旋翼模型特點對算法過程進行進一步優(yōu)化,實現(xiàn)算法運行速度的進一步改進;2)進一步優(yōu)化梯度算子的表現(xiàn)形式,對算法進行進一步的加速。
[1] 岳基隆. 四旋翼無人機自適應控制方法研究[D]. 長沙: 國防科學技術大學, 2010: 11-37.
[2] 吳桐, 趙健康, 楊磊. 四旋翼無人機的系統(tǒng)模型與辨識[J].計算機仿真, 2012, 29(8): 89-92.
[3] BOUCHOUCHA M, TADJINE M, TAYEBI A, et al. Step by step robust nonlinear PI for attitude stabilisation of a four rotor mini-aircraft[C]// 16th Mediterranean Conference on Control and Automation. Ajaccio, France, 2008: 1276-1283.
[4] WANG Tianmiao, WANG Liewu, LIANG Jianhong, et al. Autonomous control and trajectory tracking of quadrotor helicopter[J]. Computer and Modernization, 2012 (5): 251-255.
[5] 李鵬波, 胡德文, 張紀陽, 等. 系統(tǒng)辨識[M]. 北京: 中國水利水電出版社, 2010: 169-174.
[6] 孫增圻, 鄧志東, 張再興. 智能控制理論與技術[M]. 北京:清華大學出版社, 2011: 347-387.
[7] 金菊良, 楊曉華, 丁晶. 標準遺傳算法的改進方案——加速遺傳算法[J]. 系統(tǒng)工程理論與實踐, 2001 (4): 8-13.
[8] GUO Pengfei, WANG Xuezhi, HAN Yingshi. The enhanced genetic algorithms for the optimization design[C]// 3rd International Conference on Biomedical Engineering and Informatics. Yantai, China, 2010: 2990-2994.
[9] 于志剛, 宋申民, 段廣仁. 遺傳算法的機理與收斂性研究[J].控制與決策, 2005, 20(9): 971-980.
[10] NAGATY A, SAEEDI S, THIBAULT C, et al. Control and navigation framewoek for quadrotor helicopters[J]. J Intel Robot Syst, 2013 (5): 251-255.
Parameter identification for quadrotor UAVs based on an improved genetic algorithm
ZENG Yulong1, ZHAO Long1,2, ZHOU Jianhua1
1. Digital Navigation Center, Beihang University, Beijing 100191, China
2. Science and Technology on Aircraft Control Laboratory, Beihang University, Beijing 100191, China
In order to work out the low convergence speed problem in the process of parameter identification in which the genetic algorithm is adopted as the main section, a new method of parameter identification process is developed for the quadrotor UAV model, which is constructed based on an improved method of the GA process. This method introduced a gradient operator into the GA process to offer a sort of direction for algorithm evolution. The global convergence of the algorithm is guaranteed by the global search property of the GA and an optimal function is designed with the simplified quadrotor model. A test with the data gained from the actual flight experiment of the quadrotor is made and results proved the effectiveness and rapid convergence property of this method.
quadrotor UAV; rigid body model; parameter identification; genetic algorithm; gradient operator
N945.14; TP23
A
1009-671X(2014)01-0001-05
10.3969/j.issn.1009-671X.20130620
2013-06-18.
國家自然科學基金資助重點項目(61039003);國家自然科學基金資助項目(41274038);中國航空基礎科學基金資助項目(20100851018);中國航天創(chuàng)新基金資助項目(CASC201102).
曾玉龍(1988-),男,碩士研究生;趙龍(1976-), 男,副教授,博士.
趙龍, E-mail: flylong@buaa.edu.cn.