張 博,賈華宇,馬 珺
1.太原理工大學(xué) 物理與光電工程學(xué)院,太原030024
2.太原理工大學(xué) 電氣與動(dòng)力工程學(xué)院,太原030024
無(wú)人駕駛飛行器(Unmanned Aerial Vehicle,UAV)具有體積小、質(zhì)量輕、成本低、結(jié)構(gòu)簡(jiǎn)單等特點(diǎn)[1-3],在軍事偵察、防恐救生等領(lǐng)域得到廣泛應(yīng)用[4-5]。無(wú)人機(jī)在飛行過(guò)程中受到風(fēng)的干擾時(shí),需要自主判斷風(fēng)的方向、速度等信息,并根據(jù)需要采取相應(yīng)措施。
目前應(yīng)用于無(wú)人機(jī)進(jìn)行風(fēng)場(chǎng)估計(jì)的方法有很多:馬舒慶等人提出水平空速歸零法以及解析法測(cè)量空速[6-7],屈耀紅等人在此基礎(chǔ)上提出矢量三角形法來(lái)計(jì)算空速[8]。此類方法僅考慮水平二維風(fēng)速,存在計(jì)算過(guò)多的問(wèn)題。周偉靜等人根據(jù)澳大利亞氣象局Dr.Greg Holland提出的皮托管測(cè)風(fēng)方法,提出無(wú)人機(jī)搭載皮托管的方式測(cè)量風(fēng)速[9-10],金永奇在此基礎(chǔ)上引入加速度修正誤差[11]。此類方法基于伯努利流體方程,測(cè)量直接,缺點(diǎn)是需要搭載額外設(shè)備,壓差傳感器容易受干擾,無(wú)法應(yīng)用于四旋翼。以上方法雖然可以得到無(wú)人機(jī)實(shí)時(shí)受風(fēng)情況,但需要額外搭載傳感器且計(jì)算復(fù)雜,不利于無(wú)人機(jī)輕量化發(fā)展。
針對(duì)上述問(wèn)題,本文提出了一種基于粗糙集的神經(jīng)網(wǎng)絡(luò)無(wú)人機(jī)風(fēng)場(chǎng)估計(jì)方法[12-13]。利用機(jī)載IMU模塊提供的姿態(tài)數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的輸入,將無(wú)人機(jī)受風(fēng)的狀態(tài)按無(wú)風(fēng)及各方向受風(fēng)依次編碼作為對(duì)應(yīng)輸出,以建立無(wú)人機(jī)受風(fēng)狀態(tài)估計(jì)模型。本文方法不依賴額外傳感器,且計(jì)算簡(jiǎn)單,時(shí)效性強(qiáng),可有效解決上述問(wèn)題。同時(shí),為解決傳統(tǒng)神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練速度慢、易陷入局部極值的問(wèn)題,引入粗糙集(Rough Set,RS)和遺傳算法(Genetic Algorithm,GA)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化[14-15]。
無(wú)人機(jī)在受到風(fēng)的作用時(shí),姿態(tài)角會(huì)相應(yīng)發(fā)生改變,利用無(wú)人機(jī)姿態(tài)角以及姿態(tài)角的變化情況即可推知無(wú)人機(jī)的受風(fēng)情況(無(wú)風(fēng)為0,各方向受風(fēng)依次為1~4)。但無(wú)人機(jī)是強(qiáng)耦合欠驅(qū)動(dòng)的非線性系統(tǒng),且風(fēng)作用因素眾多,利用傳統(tǒng)方法建立精確的無(wú)人機(jī)風(fēng)場(chǎng)估計(jì)模型非常困難。而神經(jīng)網(wǎng)絡(luò)不依賴系統(tǒng)的精確模型,具有很強(qiáng)的非線性擬合能力,理論證明三層神經(jīng)網(wǎng)絡(luò)就能夠以任意精度逼近任何非線性函數(shù)[16]。利用神經(jīng)網(wǎng)絡(luò)逼近風(fēng)場(chǎng)估計(jì)模型可有效解決模型建立的問(wèn)題。使用足量已知受風(fēng)狀況的無(wú)人機(jī)姿態(tài)角數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),即可得到神經(jīng)網(wǎng)絡(luò)無(wú)人機(jī)風(fēng)場(chǎng)估計(jì)模型,如圖1。
圖1 神經(jīng)網(wǎng)絡(luò)風(fēng)場(chǎng)估計(jì)模型
但經(jīng)典反向傳播(Back Propagation,BP)神經(jīng)網(wǎng)絡(luò)算法存在易陷入局部極小值,算法收斂速度慢,容易出現(xiàn)“過(guò)擬合”現(xiàn)象等問(wèn)題[17]。為解決這些問(wèn)題,本文將RS-GA優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法應(yīng)用于無(wú)人機(jī)風(fēng)場(chǎng)估計(jì)。粗糙集分析方法可以對(duì)神經(jīng)網(wǎng)絡(luò)以及訓(xùn)練數(shù)據(jù)進(jìn)行約簡(jiǎn),從眾多影響因素中提取主要因素,用約簡(jiǎn)后的數(shù)據(jù)集訓(xùn)練神經(jīng)網(wǎng)絡(luò)[18],結(jié)合全局搜索能力較強(qiáng)的遺傳算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的初始權(quán)值,以降低神經(jīng)網(wǎng)絡(luò)的訓(xùn)練難度,減少訓(xùn)練時(shí)間,提高識(shí)別率[19-20]。
Pawlak教授提出了粗糙集理論[21],其特點(diǎn)是可以在不損失原有信息的基礎(chǔ)上,通過(guò)屬性約簡(jiǎn)、屬性值約簡(jiǎn)、元素約簡(jiǎn)等方式簡(jiǎn)化數(shù)據(jù)量,搜索并刪除冗余和重復(fù)數(shù)據(jù)。
一般用S來(lái)表示所要處理的信息系統(tǒng),在其他文獻(xiàn)中也稱作論域[21]。
對(duì)一個(gè)信息系統(tǒng),表格化后的列為屬性,行為對(duì)象。其中U是所有對(duì)象xi(i=1,2,…,n)的有限集合;A是對(duì)象屬性的有限集合且A=C?D,C?D=?,C是表征條件屬性的對(duì)象屬性子集,D是表征決策屬性的對(duì)象屬性子集;V是所有屬性的屬性值域V=∪q∈AVq,q∈A,Vq是屬性q的屬性值域,一般用離散的數(shù)值表示;f為從條件屬性到?jīng)Q策屬性的映射關(guān)系。
對(duì)于x,y∈U,Q?A,若滿足?p∈VQ,px=py,則稱對(duì)象x、y關(guān)于屬性集Q是不可分辨的,也稱對(duì)象x、y關(guān)于屬性集Q等價(jià)。其中Q是A的子集,可以是一個(gè)或者多個(gè)屬性,當(dāng)滿足x、y在Q下相應(yīng)屬性的屬性值相同時(shí),無(wú)法用Q來(lái)區(qū)別x、y。這是粗糙集理論的一個(gè)重要概念,是之后進(jìn)行分析的基礎(chǔ)。
定義由屬性子集P?A確定的分類ψ的分類質(zhì)量為γp(ψ),如式(2):
式中,num()表示某集合中元素個(gè)數(shù),POSP(Xi)是正域,指的是在X?U必然被分類的元素的集合。分類相關(guān)度表示由屬性子集P確定的正確分類對(duì)象的數(shù)量與信息系統(tǒng)中所有對(duì)象數(shù)量的比值。
屬性集P的約簡(jiǎn),記作REDUψ(P)。相關(guān)約簡(jiǎn)具有同原始屬性集相同的分類質(zhì)量,且體量小于原系統(tǒng)。所有約簡(jiǎn)的交集COREψ(P)=?REDUψ(P),稱COREψ(P)為核。多數(shù)情況下,信息系統(tǒng)的決策屬性并不依賴所有條件屬性,由部分關(guān)鍵屬性(分類質(zhì)量高)就能得到?jīng)Q策屬性。
條件屬性P?C與決策屬性D的相干程度(依賴程度)如式(3):
顯然0≤k(P,D)≤1。此概念量化了條件屬性與決策屬性的相關(guān)程度。
本文將粗糙集以及遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)應(yīng)用于無(wú)人機(jī)風(fēng)場(chǎng)估計(jì),以下將按照步驟,給出RS-GA神經(jīng)網(wǎng)絡(luò)風(fēng)場(chǎng)估計(jì)模型的搭建過(guò)程[22]。
在實(shí)踐中,無(wú)人機(jī)姿態(tài)角數(shù)據(jù)為連續(xù)值,而粗糙集的對(duì)象屬性常要求為有限的離散值,因此,在使用粗糙集處理對(duì)象之前,需要對(duì)無(wú)人機(jī)的姿態(tài)角數(shù)據(jù)做離散化處理。本文采用模糊C-means(FCM)聚類方法。FCM把n個(gè)向量xj(j=1,2,…,n)分為c個(gè)模糊組,并求每組的聚類中心cj,使得非相似性指標(biāo)的價(jià)值函數(shù)J達(dá)到最小,如式(4):
FCM用模糊劃分,使得每個(gè)給定數(shù)據(jù)點(diǎn)用值在0、1間的隸屬度來(lái)確定其屬于各個(gè)組的程度。其聚類中心和隸屬度公式如式(5)、(6):
其中,vij表示第j個(gè)元素對(duì)第i個(gè)聚類中心的隸屬度,是第j個(gè)元素與第i個(gè)聚類中心的歐氏距離,m是加權(quán)指數(shù),一般取m=2。
具體步驟如下:
(1)初始化隸屬度矩陣V,對(duì)于γR(ψ)且滿足
(2)計(jì)算c個(gè)聚類中心ci,i=1,2,…,c;
(3)計(jì)算價(jià)值函數(shù)J,如果它小于某閾值或其變化量小于某閾值則終止算法,否則繼續(xù);
(4)計(jì)算新的隸屬度矩陣,然后返回步驟(2)。
將無(wú)人機(jī)數(shù)據(jù)集按照上述聚類分析方法離散化處理,對(duì)于每種屬性的屬性值用正整數(shù)(1,2,…)表示其所屬聚類中心。經(jīng)過(guò)離散化處理的數(shù)據(jù)集即為粗糙集分析的信息系統(tǒng)。約簡(jiǎn)步驟如下:
(1)數(shù)據(jù)篩選,去除信息系統(tǒng)中重復(fù)以及錯(cuò)誤的數(shù)據(jù)。由于數(shù)據(jù)集已經(jīng)過(guò)離散化處理,假設(shè)有q種條件屬性,每個(gè)屬性分別有qi種情況,則理論上篩選后的信息系統(tǒng)元素個(gè)數(shù)
(2)根據(jù)定義求出信息系統(tǒng)的核COREψ(P)。
(2.1)判斷γR(ψ)=γQ(ψ)是否成立,若不成立則核不是信息系統(tǒng)的約簡(jiǎn),進(jìn)行步驟(3);若成立則核COREψ(P)就是系統(tǒng)的約簡(jiǎn)REDUψ(P),此時(shí)刪除剩余屬性,跳至步驟(4)。
(3)選擇剩余任意屬性添加至COREψ(P),比較γR(ψ)與γR+(ψ),若γR+(ψ)>γR(ψ)則返回步驟(2.1),否則刪除此屬性選擇其他屬性重新計(jì)算。
(4)對(duì)于同一決策屬性所對(duì)元素,每?jī)蓚€(gè)進(jìn)行對(duì)比,刪除某一屬性后剩余屬性值相同且與其他決策屬性所對(duì)元素?zé)o沖突,則所刪除屬性值多余可進(jìn)行約簡(jiǎn)(可理解為不需要此屬性值也可得到同樣的判斷,故此屬性值無(wú)效)。
(5)對(duì)所有決策所對(duì)元素執(zhí)行步驟(4)操作,將無(wú)效屬性值記為0。
經(jīng)過(guò)以上步驟,利用粗糙集理論約簡(jiǎn)信息系統(tǒng)中冗余、錯(cuò)誤的信息,在不降低信息量的前提下大幅度減少信息量。
遺傳神經(jīng)網(wǎng)絡(luò)的搭建主要包括神經(jīng)網(wǎng)絡(luò)模型搭建以及遺傳算法優(yōu)化兩部分。首先要設(shè)計(jì)合理的神經(jīng)網(wǎng)絡(luò)層數(shù)、每層神經(jīng)元個(gè)數(shù)、學(xué)習(xí)因子、訓(xùn)練精度以及最大步長(zhǎng)等參數(shù)。然后用遺傳算法進(jìn)行全局搜索,用搜索到的近似全局最優(yōu)的權(quán)值初始化神經(jīng)網(wǎng)絡(luò);最后經(jīng)神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到所需神經(jīng)網(wǎng)絡(luò)風(fēng)場(chǎng)估計(jì)模型。步驟如下:
(1)將神經(jīng)網(wǎng)絡(luò)權(quán)值、偏置按順序連接編碼為染色體,生成并初始化種群。
(2)計(jì)算種群適應(yīng)度。
(2.1)判斷種群適應(yīng)度是否滿足要求,若滿足則執(zhí)行步驟(5),否則繼續(xù)進(jìn)行選擇、交叉、變異操作。
(3)按照隨機(jī)競(jìng)爭(zhēng)的方式選擇一定數(shù)量子代種群個(gè)體,舍棄父代未被選擇個(gè)體。
(4)隨機(jī)選擇個(gè)體進(jìn)行交叉以及變異操作,返回步驟(2.1)。
(5)選擇適應(yīng)度最高個(gè)體解碼并初始化神經(jīng)網(wǎng)絡(luò)。
(6)繼續(xù)按照梯度下降算法訓(xùn)練神經(jīng)網(wǎng)絡(luò),當(dāng)神經(jīng)網(wǎng)絡(luò)誤差小于閾值或達(dá)到所設(shè)定的訓(xùn)練步長(zhǎng)終止訓(xùn)練,固定此時(shí)神經(jīng)網(wǎng)絡(luò)參數(shù)即得到神經(jīng)網(wǎng)絡(luò)無(wú)人機(jī)風(fēng)場(chǎng)估計(jì)模型。
以上建立了一個(gè)基于粗糙集的遺傳神經(jīng)網(wǎng)絡(luò)無(wú)人機(jī)風(fēng)場(chǎng)估計(jì)模型。
為了驗(yàn)證本文方法的有效性,利用實(shí)驗(yàn)室所用Parrot 2.0四旋翼無(wú)人機(jī)以及Matlab進(jìn)行仿真研究。本文原始數(shù)據(jù)來(lái)自CV Drone平臺(tái)編程輸出Parrot 2.0無(wú)人機(jī)回傳至上位機(jī)的姿態(tài)角數(shù)據(jù)。
選取無(wú)人機(jī)X、Y軸姿態(tài)角(橫滾角x、俯仰角y)的角度(x,y)、角速度(ωx,ωy)、角加速度(αx,αy)作為條件屬性,以無(wú)人機(jī)各方向受風(fēng)情況(d)作為決策屬性。實(shí)驗(yàn)時(shí),控制無(wú)人機(jī)飛行高度約為1.5 m,利用調(diào)速電機(jī)帶動(dòng)扇葉產(chǎn)生模擬風(fēng)干擾。分別收集不同受風(fēng)情況下無(wú)人機(jī)姿態(tài)數(shù)據(jù),與其所對(duì)應(yīng)受風(fēng)狀態(tài)組合作為原始數(shù)據(jù)。仿真實(shí)驗(yàn)流程如圖2所示。
本文共采集4 667條數(shù)據(jù),將4 667條數(shù)據(jù)隨機(jī)排序后按照1~4667進(jìn)行編號(hào),從中抽取編號(hào)1~4267的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,第4268~4667號(hào)作為測(cè)試數(shù)據(jù)集(檢驗(yàn)集)(由于全部4 667條數(shù)據(jù)已經(jīng)隨機(jī)排序,故400條訓(xùn)練數(shù)據(jù)可認(rèn)為是隨機(jī)抽?。?,利用訓(xùn)練數(shù)據(jù)集訓(xùn)練即可得到神經(jīng)網(wǎng)絡(luò)風(fēng)場(chǎng)模型。隨機(jī)排序后的4 667條原始數(shù)據(jù)如表1所示。
表1 原始數(shù)據(jù)集
圖2 仿真實(shí)驗(yàn)流程圖
本文利用聚類分析方法對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行聚類分析,并利用Matlab編程計(jì)算聚類中心以及樣本對(duì)各個(gè)聚類中心的隸屬度。數(shù)據(jù)的離散化根據(jù)聚類中心(見(jiàn)表2)以及每個(gè)元素對(duì)中心的隸屬度,對(duì)各個(gè)聚類中心依次編碼,將元素歸入隸屬度最大的屬性值。將原始數(shù)據(jù)中連續(xù)數(shù)值以離散整數(shù)代替即可得到原始決策表(見(jiàn)表3)。
表2 各屬性聚類中心
表3 原始決策表
利用粗糙集分析的方法,對(duì)原始決策表進(jìn)行數(shù)據(jù)分析,約簡(jiǎn)多余元素、屬性、屬性值。首先過(guò)濾數(shù)據(jù),刪除重復(fù)元素以及錯(cuò)誤元素,經(jīng)過(guò)初步過(guò)濾,元素個(gè)數(shù)由4 267個(gè)減少到2 909個(gè)。然后尋找系統(tǒng)的約簡(jiǎn)REDUψ(P),經(jīng)過(guò)約簡(jiǎn),條件屬性仍然為6個(gè),因?yàn)樗治鰲l件屬性為人工選擇后的結(jié)果,每種屬性均對(duì)決策有影響。屬性約簡(jiǎn)完成后分析元素,重新刪除不必要的元素,元素個(gè)數(shù)由2 909個(gè)減少至311個(gè),這311條數(shù)據(jù)將作為粗糙集遺傳神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集。約簡(jiǎn)后的訓(xùn)練數(shù)據(jù)集各屬性重要度見(jiàn)表4。
表4 屬性重要度
參考常用分類問(wèn)題神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),本文選取的神經(jīng)網(wǎng)絡(luò)層數(shù)為3層;輸入層按照數(shù)據(jù)集的6個(gè)條件屬性選為6個(gè)輸入神經(jīng)元;隱含層神經(jīng)元數(shù)目采用驗(yàn)證集實(shí)驗(yàn)法選取,取訓(xùn)練集編號(hào)1~100的個(gè)體作為驗(yàn)證集,分別選隱含層神經(jīng)元數(shù)目為9、10、11、12進(jìn)行實(shí)驗(yàn),其中當(dāng)神經(jīng)元數(shù)目為11的時(shí)候網(wǎng)絡(luò)誤差最小,故選取隱含層神經(jīng)元數(shù)目為11;輸出層為4個(gè)神經(jīng)元,經(jīng)加權(quán)計(jì)算后輸出一個(gè)狀態(tài)結(jié)果;因此最終選擇神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為6-11-(4-1)。神經(jīng)網(wǎng)絡(luò)輸入層到隱含層以及隱含層到輸出層的激活函數(shù)為sigmoid函數(shù),學(xué)習(xí)因子按經(jīng)驗(yàn)取0.1,最大步長(zhǎng)為300。
遺傳算法編碼方式選擇浮點(diǎn)數(shù)編碼,將神經(jīng)網(wǎng)絡(luò)權(quán)值偏置按順序組合,染色體長(zhǎng)度為266;子代種群的選擇采用隨機(jī)競(jìng)爭(zhēng)的方法;種群適應(yīng)度函數(shù)選為誤差的倒數(shù);種群的交叉變異操作按文獻(xiàn)[14]執(zhí)行;交叉系數(shù)按文獻(xiàn)[14]自適應(yīng)。神經(jīng)網(wǎng)絡(luò)的初始權(quán)值根據(jù)遺傳算法搜索的最優(yōu)子代反編碼得到,用約簡(jiǎn)過(guò)的訓(xùn)練數(shù)據(jù)集(約簡(jiǎn)后留下的311條數(shù)據(jù))訓(xùn)練優(yōu)化過(guò)的神經(jīng)網(wǎng)絡(luò),固定神經(jīng)網(wǎng)絡(luò)權(quán)值得到所需神經(jīng)網(wǎng)絡(luò)估計(jì)模型。
同時(shí)建立經(jīng)典反向傳播神經(jīng)網(wǎng)絡(luò)(BP)以及遺傳神經(jīng)網(wǎng)絡(luò)(GA-BP),使用上述未經(jīng)約簡(jiǎn)的訓(xùn)練數(shù)據(jù)集(原始數(shù)據(jù)集第1~4267號(hào))訓(xùn)練兩種網(wǎng)絡(luò),用以與本文粗糙集神經(jīng)網(wǎng)絡(luò)(RS-GA-BP)進(jìn)行對(duì)比。三種算法的均方誤差(Mean Squared Error,MSE)曲線如圖3所示。
將測(cè)試數(shù)據(jù)集數(shù)據(jù)按聚類分析方法刪去多余屬性后用以驗(yàn)證RS-GA-BP的識(shí)別正確率,同時(shí)用測(cè)試數(shù)據(jù)集驗(yàn)證BP以及GA-BP的識(shí)別率,記錄三種算法的訓(xùn)練時(shí)間與識(shí)別率(見(jiàn)表5)。
圖3 遺傳神經(jīng)網(wǎng)絡(luò)誤差曲線
表5 結(jié)果對(duì)比
通過(guò)對(duì)比三種方法的訓(xùn)練時(shí)間以及識(shí)別率,可知由于GA-BP引入遺傳算法,在遺傳算法全局搜索尋找近似最優(yōu)解的基礎(chǔ)上進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,可有效提高神經(jīng)網(wǎng)絡(luò)的識(shí)別率,減少神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間。RS-GA-BP由于簡(jiǎn)化了訓(xùn)練數(shù)據(jù)集,刪減了冗余信息,其識(shí)別率相對(duì)于其他兩種方法有較大提高,訓(xùn)練時(shí)間大幅度減少。為檢驗(yàn)風(fēng)場(chǎng)估計(jì)模型的泛化能力,本次實(shí)驗(yàn)的測(cè)試數(shù)據(jù)集與訓(xùn)練數(shù)據(jù)集沒(méi)有交叉,最終正確識(shí)別率為96.50%,表明本模型的泛化性較好,相比其他兩種方法識(shí)別率分別提高了10.60%和8.04%。訓(xùn)練時(shí)間為49.7 s,相較于其他兩種方法分別下降了97.57%和89.57%。
本文提出了一種基于粗糙集的遺傳神經(jīng)網(wǎng)絡(luò)無(wú)人機(jī)受風(fēng)狀態(tài)估計(jì)辦法。該方法利用神經(jīng)網(wǎng)絡(luò)非線性擬合能力強(qiáng)的特點(diǎn),利用無(wú)人機(jī)姿態(tài)數(shù)據(jù)估計(jì)無(wú)人機(jī)受風(fēng)狀態(tài),為無(wú)人機(jī)風(fēng)場(chǎng)估計(jì)提供了一條新思路。利用粗糙集理論優(yōu)化訓(xùn)練數(shù)據(jù)集,大幅減小了數(shù)據(jù)空間規(guī)模,提高了網(wǎng)絡(luò)效率;利用遺傳算法進(jìn)行全局搜索,以克服傳統(tǒng)神經(jīng)網(wǎng)絡(luò)方法易陷入局部極值的不足。仿真實(shí)驗(yàn)結(jié)果表明,本文所述方法能夠有效估計(jì)無(wú)人機(jī)受風(fēng)狀態(tài),模型泛化能力較強(qiáng),且相較于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)方法,經(jīng)粗糙集以及遺傳算法優(yōu)化后的網(wǎng)絡(luò)性能有較大改善。