曾玉龍,趙龍,,周建華
1. 北京航空航天大學(xué) 數(shù)字導(dǎo)航中心,北京 100191
2. 北京航空航天大學(xué) 飛行器控制一體化技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100191
基于改進(jìn)遺傳算法的四旋翼無人機(jī)參數(shù)辨識(shí)
曾玉龍1,趙龍1,2,周建華1
1. 北京航空航天大學(xué) 數(shù)字導(dǎo)航中心,北京 100191
2. 北京航空航天大學(xué) 飛行器控制一體化技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100191
為克服傳統(tǒng)遺傳算法在參數(shù)辨識(shí)過程中收斂速度慢的問題,提出了一種基于改進(jìn)遺傳算法的四懸翼無人機(jī)參數(shù)辨識(shí)方法。該方法引入梯度算子為遺傳進(jìn)化提供指示性的方向,利用遺傳算法的全局搜索性保證算法的全局收斂,并根據(jù)簡化四旋翼無人機(jī)數(shù)學(xué)模型設(shè)計(jì)了優(yōu)化函數(shù)。利用四懸翼無人機(jī)實(shí)飛數(shù)據(jù)進(jìn)行了實(shí)驗(yàn)測試,實(shí)驗(yàn)結(jié)果驗(yàn)證了本文方法的有效性和快速收斂性。
四旋翼無人機(jī);剛體模型;參數(shù)辨識(shí);遺傳算法;梯度算子
目前,無人機(jī)已然在災(zāi)區(qū)救援、物資運(yùn)輸、軍事偵察等諸多領(lǐng)域得到了廣泛的應(yīng)用,無人機(jī)的控制問題也越來越受到學(xué)界的重視。四旋翼無人直升機(jī),以其飛行的靈活機(jī)動(dòng)性以及垂直起降功能在無人機(jī)研究領(lǐng)域占有重要位置。近年來,針對(duì)四旋翼無人機(jī)的研究成果也越來越豐富[1]。然而四旋翼無人機(jī)由于其模型的非線性以及各變量間的耦合性,導(dǎo)致建模和控制問題成為該領(lǐng)域的關(guān)鍵技術(shù)問題[2]。
四旋翼無人機(jī)是一個(gè)典型的欠驅(qū)動(dòng)系統(tǒng),其數(shù)學(xué)模型表現(xiàn)出非線性和各狀態(tài)的高度耦合性[3-4],因而經(jīng)典的參數(shù)辨識(shí)方法,例如最小二乘法和極大似然法等,很難實(shí)現(xiàn)對(duì)模型參數(shù)的精確辨識(shí)[5]。遺傳算法是解決非線性問題的一個(gè)比較常用的方法,可以實(shí)現(xiàn)問題的全局收斂[6]。然而遺傳算法存在著進(jìn)化方向過于隨機(jī),收斂速度慢的問題[7-8]。梯度校正法是實(shí)現(xiàn)辨識(shí)問題的又一方法,算法收斂速度相對(duì)比較快,然而算法對(duì)非線性問題可能會(huì)陷入局部極小,很難實(shí)現(xiàn)全局收斂。
為解決上述問題,本文在遺傳算法中引入梯度算子,為遺傳算法進(jìn)化提供一個(gè)參考方向。應(yīng)用梯度下降的思想實(shí)現(xiàn)遺傳算法的快速收斂,同時(shí)利用遺傳算法的交叉變異過程跳出局部極小,實(shí)現(xiàn)算法的全局收斂[9]。
四旋翼無人機(jī)的結(jié)構(gòu)見圖1。無人機(jī)機(jī)體由4個(gè)旋翼驅(qū)動(dòng),其中互為對(duì)角線的2個(gè)旋翼為1組。2組旋翼旋轉(zhuǎn)方向相反,在4個(gè)旋翼旋轉(zhuǎn)速度大小相同時(shí),2組旋翼產(chǎn)生的反扭力矩相互平衡,4個(gè)旋翼拉力平衡重力時(shí)可以實(shí)現(xiàn)飛行器的懸停;當(dāng)同一組旋翼轉(zhuǎn)速相同而組間轉(zhuǎn)速不相同時(shí),反扭力矩的不平衡可以使飛行器產(chǎn)生偏航力矩;而當(dāng)同一組中的2個(gè)旋翼旋轉(zhuǎn)速度不同時(shí)則會(huì)產(chǎn)生俯仰或是滾轉(zhuǎn)力矩。
圖1 四旋翼無人機(jī)結(jié)構(gòu)
當(dāng)忽略了四旋翼無人機(jī)的機(jī)械振動(dòng)和彈性形變時(shí),系統(tǒng)可以簡化為1個(gè)六自由度的剛體,可以應(yīng)用剛體動(dòng)力學(xué)方程為四旋翼系統(tǒng)進(jìn)行建模。然而在實(shí)際飛行時(shí),飛行器的飛行狀態(tài)會(huì)受到很多復(fù)雜因素的影響,例如飛行過程中風(fēng)對(duì)飛行器的影響、飛行器向前飛時(shí)各旋翼的揮舞運(yùn)動(dòng)等等。為便于飛行器模型辨識(shí)過程的進(jìn)行,假設(shè)飛行器的飛行狀態(tài)為:1)四旋翼在基本無風(fēng)的飛行,不考慮風(fēng)的影響;2)四旋翼處于懸?;蚵亠w行狀態(tài),忽略旋翼的揮舞運(yùn)動(dòng)。文獻(xiàn)[4]和文獻(xiàn)[10]研究了此種情形下的四旋翼建模問題。
四旋翼飛行器機(jī)體坐標(biāo)系和慣性坐標(biāo)系之間的轉(zhuǎn)換矩陣為
式中φ、θ和ψ分別為四旋翼的滾轉(zhuǎn)角、俯仰角和航向角;符號(hào)S和C分別代表三角函數(shù)sin()和cos()。如果令η代表3個(gè)歐拉角構(gòu)成的向量η=[?θψ]T,用ω表示機(jī)體坐標(biāo)系下3個(gè)軸方向四旋翼的角速度ω=[pqr]T,則有
剛體運(yùn)動(dòng)方程可以由Newton-Euler法得到。假設(shè)四旋翼的4個(gè)旋翼產(chǎn)生拉力以及旋轉(zhuǎn)的反扭力矩分別用下式表示
式中iΩ表示旋翼轉(zhuǎn)動(dòng)角速度。則剛體的平動(dòng)和轉(zhuǎn)動(dòng)方程可以表示為
式中m表示四旋翼的質(zhì)量;J表示轉(zhuǎn)動(dòng)慣量張量;Jr表示旋翼的轉(zhuǎn)動(dòng)慣量;rΩ為表征陀螺效應(yīng)的相對(duì)角速度,該乘積項(xiàng)表征無人機(jī)4個(gè)旋翼整體的陀螺效應(yīng);FB為飛行器所受外力;MB為飛行器所受外力矩;R為坐標(biāo)轉(zhuǎn)換矩陣。FB和MB可表示為
式中Fi和Mi分別表示各旋翼的作用力和力矩。
根據(jù)四旋翼結(jié)構(gòu)的對(duì)稱性,轉(zhuǎn)動(dòng)慣量張量矩陣J可以寫成一個(gè)對(duì)角陣的形式。如果選取狀態(tài)變量為
由于動(dòng)力系統(tǒng)的時(shí)間常數(shù)要比電機(jī)的實(shí)現(xiàn)常數(shù)大得多,可以將四旋翼驅(qū)動(dòng)電機(jī)的數(shù)學(xué)模型簡化為如下形式[1]:
式中Vi為各旋翼電機(jī)的輸入電壓,K為電機(jī)常數(shù),從而可以得到四旋翼的狀態(tài)空間方程形式:
式中X為系統(tǒng)狀態(tài)變量,其估計(jì)值可以通過慣導(dǎo)統(tǒng)得到。通過狀態(tài)估計(jì)值和輸入值可以實(shí)現(xiàn)對(duì)系統(tǒng)參數(shù)的辨識(shí)。
實(shí)際飛行中,四旋翼無人機(jī)數(shù)據(jù)采集主要包括輸入量和輸出量數(shù)據(jù)的采集,其中輸出量主要由飛行器的導(dǎo)航系統(tǒng)提供。導(dǎo)航系統(tǒng)在進(jìn)行數(shù)據(jù)測量過程中存在偏差,因而實(shí)際測量的狀態(tài)會(huì)有一定誤差,即
傳統(tǒng)的優(yōu)化函數(shù)可以表示為
為解決遺傳算法收斂慢的問題,將梯度算子引入到遺傳算法之中,文中近似地取優(yōu)化函數(shù)為
式中N代表飛行過程中采集到的數(shù)據(jù)組數(shù)。辨識(shí)過程中利用差分近似代替微分,其表達(dá)式為式中T(k)代表飛行過程中數(shù)據(jù)的采樣時(shí)間;Δt?表示差分近似的微分運(yùn)算。用θ表示模型參數(shù)向量,對(duì)上式所示的優(yōu)化函數(shù)取梯度可以得到新的梯度算子,即
式中:
改進(jìn)遺傳算法在實(shí)現(xiàn)時(shí)包括編碼、種群初始化以及迭代進(jìn)化過程3個(gè)主要部分。每一次迭代進(jìn)化過程包括選擇、梯度進(jìn)化、交叉和變異4個(gè)主要步驟。算法流程如圖2所示。
1)編碼。針對(duì)四旋翼剛體模型的特點(diǎn),選取1個(gè)九維雙精度實(shí)向量作為染色體,采用十進(jìn)制編碼形式。九維向量對(duì)應(yīng)剛體模型的9個(gè)待辨識(shí)定常參數(shù){ai、k m、bj},i=1,2,…,5,j=1、2、3。
2)種群初始化。根據(jù)選用的四旋翼無人機(jī)的類型特點(diǎn)以及選用電機(jī)的參數(shù),估計(jì)各參數(shù)范圍。將各參數(shù)范圍綜合考慮,組成1個(gè)九維矩形區(qū)域作為參數(shù)可行域。在可行域中依均勻分布隨機(jī)選取若干個(gè)九維實(shí)向量作為進(jìn)化算法的初始染色體組。
3)迭代進(jìn)化。傳統(tǒng)的遺傳算法迭代進(jìn)化過程包括選擇、交叉和變異3個(gè)算子運(yùn)算。為實(shí)現(xiàn)對(duì)遺傳算法加速,文中在基本迭代運(yùn)算基礎(chǔ)上引入了梯度算子,算法過程包括選擇、梯度、交叉和變異4個(gè)步驟。而且為保證算法的收斂性,算法在每代進(jìn)化中保留親代中的最優(yōu)值。
a)選擇算子。算法根據(jù)優(yōu)化函數(shù)計(jì)算出每一代迭代運(yùn)算中得到染色體組的適應(yīng)度值,根據(jù)適應(yīng)度值分配梯度算子和交叉算子選取親本的概率。
b)梯度算子。根據(jù)選擇算子得到的概率選擇親本,并根據(jù)梯度公式對(duì)親本實(shí)施一步梯度計(jì)算并加入到子代染色體組中。
c)交叉算子。采用傳統(tǒng)十進(jìn)制交叉算法,選取2個(gè)親本染色體之后對(duì)親本進(jìn)行加權(quán)融合,得到2個(gè)新染色體并加入子代染色體組中。
d)變異算子。采用傳統(tǒng)的十進(jìn)制變異算法,根據(jù)概率對(duì)選中的子代染色體加入一個(gè)隨機(jī)生成的九維向量,同時(shí)保證變異后子代處于可行域內(nèi)。
圖2 改進(jìn)遺傳算法流程
文中利用實(shí)驗(yàn)四旋翼無人機(jī)的實(shí)飛數(shù)據(jù)對(duì)無人機(jī)的剛體模型參數(shù)進(jìn)行辨識(shí)和驗(yàn)證測試。
由于待辨識(shí)參數(shù)多,且四旋翼無人機(jī)模型中姿態(tài)控制回路和位置控制回路的參數(shù)間存在一定的獨(dú)立性,為簡化仿真計(jì)算,將四旋翼各參數(shù)進(jìn)行分組辨識(shí)。文中把待辨識(shí)參數(shù)分為俯仰回路、滾轉(zhuǎn)回路、航向回路以及位置回路四個(gè)部分分別進(jìn)行辨識(shí),并取100代遺傳最優(yōu)值作為辨識(shí)結(jié)果。
從俯仰回路參數(shù)辨識(shí)結(jié)果中得到的俯仰回路辨識(shí)軌線與實(shí)際飛行軌線對(duì)比如圖3所示。
圖3 俯仰回路辨識(shí)結(jié)果
從圖3中可以看出,俯仰角回路的辨識(shí)結(jié)果同實(shí)際飛行結(jié)果非常接近。2組數(shù)據(jù)只是在最后一段時(shí)間出現(xiàn)了一定的偏差,該偏差主要是由飛行數(shù)據(jù)誤差引起的。偏航角回路辨識(shí)結(jié)果對(duì)比軌線如圖4所示。
圖4 偏航回路辨識(shí)結(jié)果
從圖4中可以看出,與俯仰回路不同,偏航回路辨識(shí)結(jié)果存在一個(gè)角度的常值誤差。在辨識(shí)過程,一方面由于慣導(dǎo)系統(tǒng)的漂移會(huì)使系統(tǒng)出現(xiàn)一些誤差;另一方面航向角的基準(zhǔn)方向選取過程也存在一定誤差;再者,遺傳算法由于選取有限代數(shù)的進(jìn)化結(jié)果作為最終辨識(shí)結(jié)果。故此,辨識(shí)結(jié)果存在一定程度的偏差。
滾轉(zhuǎn)角辨識(shí)結(jié)果對(duì)比曲線如圖5所示。滾轉(zhuǎn)角回路的角速度辨識(shí)結(jié)果存在一個(gè)常值誤差,使得角度偏差等幅增大。在本回路中,誤差主要是算法的有限代結(jié)果存在的誤差引起的,此外回路相關(guān)參數(shù)過小也會(huì)導(dǎo)致角速度辨識(shí)過程出現(xiàn)誤差。
圖5 滾轉(zhuǎn)回路辨識(shí)結(jié)果對(duì)比
四旋翼的3個(gè)位置環(huán)對(duì)應(yīng)的輸入?yún)?shù)都只有油門輸入量,3個(gè)方向具體的運(yùn)動(dòng)形式主要通過無人機(jī)的姿態(tài)角來具體實(shí)現(xiàn)。因而3個(gè)位置回路待辨識(shí)參數(shù)只有1個(gè),即油門輸入的增益值。圖6為高度的辨識(shí)結(jié)果同實(shí)飛數(shù)據(jù)對(duì)比結(jié)果。
圖6 高度辨識(shí)結(jié)果對(duì)比
從圖6中可以看出,位置辨識(shí)結(jié)果同樣存在著常值的偏差,該誤差主要是由于高度測量的定位偏差引起的。此外算法的有限步取值同樣也會(huì)引起辨識(shí)誤差。
文中利用梯度算子對(duì)傳統(tǒng)的遺傳算法進(jìn)行了改進(jìn),意在加速算法的收斂過程。為比較加入梯度算子前后辨識(shí)過程的收斂情況,在同樣條件下利用傳統(tǒng)的遺傳算法對(duì)四旋翼的參數(shù)辨識(shí)問題進(jìn)行了求解,分別求出了2種算法的優(yōu)化函數(shù)值。改進(jìn)遺傳算法同傳統(tǒng)遺傳算法的收斂情況對(duì)比曲線如圖7所示。
圖7 改進(jìn)遺傳算法收斂情況對(duì)比
從圖7中可以看出,在引入梯度算子后,參數(shù)誤差降至初始種群5%時(shí),進(jìn)化代數(shù)由傳統(tǒng)遺傳算法的87代下降到17代。從效果上來看,改進(jìn)算法收斂速度較之傳統(tǒng)遺傳算法有了一定程度的提升。
針對(duì)四旋翼無人機(jī)系統(tǒng)辨識(shí)問題,利用梯度算子對(duì)遺傳算法參數(shù)辨識(shí)過程進(jìn)行改進(jìn),獲得了四旋翼無人機(jī)的剛體數(shù)學(xué)模型。利用實(shí)際試飛數(shù)據(jù)進(jìn)行仿真測試,測試結(jié)果表明,引入梯度算子加快了遺傳算法的收斂速度,增加了算法的魯棒性。
對(duì)于文中研究的問題還需進(jìn)一步完成:1)針對(duì)四旋翼模型特點(diǎn)對(duì)算法過程進(jìn)行進(jìn)一步優(yōu)化,實(shí)現(xiàn)算法運(yùn)行速度的進(jìn)一步改進(jìn);2)進(jìn)一步優(yōu)化梯度算子的表現(xiàn)形式,對(duì)算法進(jìn)行進(jìn)一步的加速。
[1] 岳基隆. 四旋翼無人機(jī)自適應(yīng)控制方法研究[D]. 長沙: 國防科學(xué)技術(shù)大學(xué), 2010: 11-37.
[2] 吳桐, 趙健康, 楊磊. 四旋翼無人機(jī)的系統(tǒng)模型與辨識(shí)[J].計(jì)算機(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] 李鵬波, 胡德文, 張紀(jì)陽, 等. 系統(tǒng)辨識(shí)[M]. 北京: 中國水利水電出版社, 2010: 169-174.
[6] 孫增圻, 鄧志東, 張?jiān)倥d. 智能控制理論與技術(shù)[M]. 北京:清華大學(xué)出版社, 2011: 347-387.
[7] 金菊良, 楊曉華, 丁晶. 標(biāo)準(zhǔn)遺傳算法的改進(jìn)方案——加速遺傳算法[J]. 系統(tǒng)工程理論與實(shí)踐, 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ī)理與收斂性研究[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.
國家自然科學(xué)基金資助重點(diǎn)項(xiàng)目(61039003);國家自然科學(xué)基金資助項(xiàng)目(41274038);中國航空基礎(chǔ)科學(xué)基金資助項(xiàng)目(20100851018);中國航天創(chuàng)新基金資助項(xiàng)目(CASC201102).
曾玉龍(1988-),男,碩士研究生;趙龍(1976-), 男,副教授,博士.
趙龍, E-mail: flylong@buaa.edu.cn.