本發(fā)明涉及一種基于優(yōu)化的差分進(jìn)化算法的井下無(wú)線傳感網(wǎng)絡(luò)的定位方法,適用于無(wú)線傳感器網(wǎng)絡(luò)定位技術(shù)領(lǐng)域。
背景技術(shù):
近年來(lái),我國(guó)的礦井安全事故發(fā)生頻繁,各種惡性事故不斷發(fā)生,造成了巨大的經(jīng)濟(jì)損失和人員傷亡。現(xiàn)有的井下定位系統(tǒng)大多是采用基于RFID(Radio Frequency Identification)射頻識(shí)別技術(shù)的定位系統(tǒng),這種系統(tǒng)大都存在定位精度不夠、精度受成本限制等問(wèn)題。在國(guó)外,一般是利用紅外等無(wú)線方式經(jīng)過(guò)泄漏電纜傳輸?shù)降孛妫ㄟ^(guò)地面計(jì)算機(jī)對(duì)接受的數(shù)據(jù)處理,對(duì)井下人員進(jìn)行定位。煤炭科學(xué)研究總院研制過(guò)失蹤人員尋找儀,主要是尋找事故發(fā)生后的人員位置,搜尋范圍在十幾米以內(nèi),尚無(wú)法對(duì)下井人員的井下全方位跟蹤定位。
文獻(xiàn):一種基于自適應(yīng)RSSI測(cè)距模型的無(wú)線傳感器網(wǎng)絡(luò)定位方法(傳感技術(shù)學(xué)報(bào):2015Vol.28No.1:138-141)提出基于自適應(yīng)RSSI測(cè)距模型的定位方法,對(duì)不同環(huán)境具有一定自適應(yīng)性,但是基于RSSI定位方法在井下使用時(shí)更容易受到墻壁、地面等一些障礙物影響,導(dǎo)致測(cè)量結(jié)果不準(zhǔn)確。文獻(xiàn):基于遺傳算法的WSN節(jié)點(diǎn)定位技術(shù)(計(jì)算機(jī)工程:2010Vol.36No.10:85-87)提出通過(guò)遺傳算法對(duì)初始位置進(jìn)行優(yōu)化,然而這種算法隨著測(cè)距誤差累積定位精度將變差。無(wú)線傳感網(wǎng)節(jié)點(diǎn)在移動(dòng)時(shí)需執(zhí)行相關(guān)的通信、計(jì)算和位置移動(dòng),是一個(gè)非常消耗能量的過(guò)程,并且每個(gè)節(jié)點(diǎn)的能量有限,部署算法在設(shè)計(jì)時(shí)應(yīng)當(dāng)盡量讓節(jié)點(diǎn)在部署過(guò)程中的能耗最小。針對(duì)無(wú)線傳感器網(wǎng)絡(luò)能量受限在配置問(wèn)題帶來(lái)的問(wèn)題和挑戰(zhàn),對(duì)具有移動(dòng)能力的傳感器節(jié)點(diǎn)組成的移動(dòng)無(wú)線傳感器網(wǎng)絡(luò)引入概率移動(dòng)機(jī)制,應(yīng)用能量有效的虛擬力算法(ME-VFA,movement efficient-virtual force algorithm),以在保證網(wǎng)絡(luò)的有效覆蓋性和連通性上,節(jié)省節(jié)點(diǎn)的能量,延長(zhǎng)網(wǎng)絡(luò)的生命周期。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是:為了解決因井下環(huán)境突變導(dǎo)致定位精度差的問(wèn)題,提供一種能夠針對(duì)礦井環(huán)境下節(jié)能的高精度無(wú)線傳感網(wǎng)定位方法。本發(fā)明先利用ME-VFA算法對(duì)井下無(wú)線傳感網(wǎng)節(jié)點(diǎn)進(jìn)行合理的布置,達(dá)到節(jié)點(diǎn)的最優(yōu)布置,最大程度的利用各節(jié)點(diǎn)資源;然后再采用AOA技術(shù)進(jìn)行初步定位;最后利用優(yōu)化的差分進(jìn)化算法進(jìn)行精確定位。
為了達(dá)到上述目的,本發(fā)明采用以下技術(shù)方案:
本系統(tǒng)由井下傳感網(wǎng)系統(tǒng)、工人攜帶移動(dòng)節(jié)點(diǎn)模塊、上位機(jī)監(jiān)控系統(tǒng)三大板塊組成,其中井下傳感網(wǎng)由已知坐標(biāo)信息的一定數(shù)量的固定傳感器模塊和ZigBee模塊組成,構(gòu)成無(wú)線傳感網(wǎng)信標(biāo)節(jié)點(diǎn)(錨節(jié)點(diǎn));本定位測(cè)試方法為:通過(guò)移動(dòng)節(jié)點(diǎn)模塊(未知節(jié)點(diǎn))傳送的喚醒信號(hào)使處于通信范圍內(nèi)的錨節(jié)點(diǎn)由休眠狀態(tài)置于喚醒狀態(tài),隨之,錨節(jié)點(diǎn)接收到未知節(jié)點(diǎn)傳來(lái)的方位信號(hào),對(duì)移動(dòng)未知節(jié)點(diǎn)進(jìn)行坐標(biāo)計(jì)算,并由錨節(jié)點(diǎn)中的中央處理器進(jìn)行處理后通過(guò)ZigBee無(wú)線通信技術(shù)傳入上位機(jī)中進(jìn)行未知移動(dòng)坐標(biāo)的位置顯示,上位機(jī)可實(shí)現(xiàn)雙向數(shù)據(jù)傳輸,實(shí)現(xiàn)整個(gè)無(wú)線網(wǎng)絡(luò)與上位機(jī)監(jiān)控軟件交互。該定位方法的具體步驟為:
1、利用ME-VHA算法對(duì)井下節(jié)點(diǎn)進(jìn)行最大效率化的錨節(jié)點(diǎn)布置,先根據(jù)井下環(huán)境進(jìn)行等間距錨節(jié)點(diǎn)布置,間距值取決于錨節(jié)點(diǎn)的最佳通訊距離,完成等間距布置后,再計(jì)算各個(gè)傳感器節(jié)點(diǎn)之間的歐式距離dij、節(jié)點(diǎn)到障礙物之間的距離dio;然后根據(jù)dij、dio確定某節(jié)點(diǎn)i所受其他單一節(jié)點(diǎn)的力
ωA為系數(shù),根據(jù)不同障礙物、節(jié)點(diǎn)系數(shù)有差異,由查表可得;dth為傳感器工作距離的1.7倍值;aij為節(jié)點(diǎn)i與節(jié)點(diǎn)j的夾角值;所受合力由各節(jié)點(diǎn)所受合力的不同,首先對(duì)節(jié)點(diǎn)位置進(jìn)行移動(dòng),通過(guò)計(jì)算各點(diǎn)合力相等,確定出各節(jié)點(diǎn)的移動(dòng)距離與移動(dòng)角度Ln、θn;然后由于各節(jié)點(diǎn)的能量存在差異,通過(guò)節(jié)點(diǎn)能量值與平均能量值相比較,得到該節(jié)點(diǎn)的移動(dòng)概率pi,即根據(jù)各節(jié)點(diǎn)的能量值Ei確定出移動(dòng)概率其中根據(jù)求得,最終移動(dòng)距離L=pi×Ln求得;接著對(duì)每個(gè)傳感器節(jié)點(diǎn)的感知概率進(jìn)行計(jì)算,Si(pj)根據(jù)所選概率模型Si(pj)確定,例如0~1模型:
式中λ、β為衰減系數(shù);最后為保證所求移動(dòng)值的準(zhǔn)確性,再對(duì)所求值進(jìn)行檢驗(yàn)驗(yàn)證,判斷感知覆蓋率與門(mén)限值C(th)的大小,若則符合要求,否則從計(jì)算節(jié)點(diǎn)合力開(kāi)始重新進(jìn)行節(jié)點(diǎn)移動(dòng)值計(jì)算;
2、第二步再采用AOA技術(shù)進(jìn)行初步定位:先由節(jié)點(diǎn)布置方法確定各已知節(jié)點(diǎn)坐標(biāo)(xi,yi),且每個(gè)已知節(jié)點(diǎn)可被隨機(jī)喚醒,用于未知節(jié)點(diǎn)的監(jiān)測(cè);隨后,井下人員攜帶移動(dòng)節(jié)點(diǎn)在井下移動(dòng)并發(fā)送喚醒指令,錨節(jié)點(diǎn)接收到喚醒信號(hào)就被喚醒,由傳感器模塊測(cè)出角度信息,根據(jù)未知節(jié)點(diǎn)到達(dá)各錨節(jié)點(diǎn)的角度信息,若未知節(jié)點(diǎn)出現(xiàn),當(dāng)前喚醒節(jié)點(diǎn)m(xm,ym)可計(jì)算出未知節(jié)點(diǎn)發(fā)出信號(hào)到達(dá)的相應(yīng)于x軸方向的角度,記為α,并將本數(shù)據(jù)保存為(xm,ym,α);然后所有布置節(jié)點(diǎn)依次被喚醒,并保存自身位置坐標(biāo)及角度信息,同第一個(gè)被喚醒節(jié)點(diǎn)格式;再根據(jù)相鄰兩個(gè)錨節(jié)點(diǎn)m(xm,ym,α),n(xn,yn,β),根據(jù)夾角射線原理有:再將其他多個(gè)未知節(jié)點(diǎn)的相鄰兩錨節(jié)點(diǎn)進(jìn)行組合,可得到未知節(jié)點(diǎn)的初始估計(jì)值(xx,yx):最后將多個(gè)錨節(jié)點(diǎn)兩兩一組進(jìn)行組合,重復(fù)以上步驟即可測(cè)得多組數(shù)據(jù),記為(xx,yy)=Hi(xxi,yyi);3、第三步,以第二步得到的多組估計(jì)值作為初步定位值,完成初始化;再利用未知節(jié)點(diǎn)與錨節(jié)點(diǎn)的距離得到變量界限A和B,對(duì)初始解加入標(biāo)準(zhǔn)正態(tài)分布N(0,l)來(lái)實(shí)現(xiàn)種群的初始化(D=2):
X1i,0=rand[0,N(0,1)(B-A)](B-A)+Hixxi
X2i,0=rand[0,N(0,1)(B-A)](B-A)+Hiyyi
X1i,0,X2i,0是種群變量,再在初始化產(chǎn)生差變量的基礎(chǔ)上,產(chǎn)生一擾動(dòng)量去獲得最佳解:
F∈[0,2]為一個(gè)縮放因子,作用是對(duì)差向量產(chǎn)生擾動(dòng),vi,G+1為第G代種群中的第r1個(gè)個(gè)體,i≠r1≠r2≠r3,G為進(jìn)化代數(shù);然后利用差分進(jìn)化法進(jìn)行精確定位,先對(duì)目標(biāo)函數(shù)最佳值搜尋,采用交叉機(jī)制來(lái)進(jìn)行每一代的演進(jìn),嘗試向量ui,G+1如下:
ui,G+1=(u1i,G+1,u2i,G+1,……uDi,G+1)
當(dāng)rand(j)≤CR時(shí),uji,G+1=v1i,G+1;
當(dāng)rand(j)>CR時(shí),xji,G+1=v1i,G+1;
(i=l,2…,NP;j=l,2,…D)
上式中rand(j)生成O至l之間隨機(jī)數(shù)發(fā)生器的第j個(gè)估計(jì)值,CR為交叉算子,CR∈[O,l],經(jīng)過(guò)G步迭代可求得未知節(jié)點(diǎn)的最優(yōu)解;最后將最優(yōu)解對(duì)應(yīng)的坐標(biāo)信息作為目標(biāo)未知節(jié)點(diǎn)的定位坐標(biāo),然后升級(jí)該節(jié)點(diǎn)為已定位節(jié)點(diǎn),廣播該節(jié)點(diǎn)的坐標(biāo),以實(shí)現(xiàn)迭代循環(huán)來(lái)協(xié)助定位其他未知節(jié)點(diǎn),本方法中每個(gè)節(jié)點(diǎn)設(shè)置了泛洪控制變量,當(dāng)達(dá)到泛洪控制條件時(shí)所有節(jié)點(diǎn)不再?gòu)V播消息,方法結(jié)束,獲得最終未知節(jié)點(diǎn)坐標(biāo)信息(xx,yx)。
本發(fā)明的有益效果是:(1)通過(guò)基于能量有效的虛擬力算法優(yōu)化定位錨節(jié)點(diǎn)布置,避免了節(jié)點(diǎn)的盲目布置;(2)本發(fā)明改善了網(wǎng)絡(luò)的有效覆蓋性和連通性,節(jié)省了節(jié)點(diǎn)的能量,延長(zhǎng)了網(wǎng)絡(luò)的生命周期,發(fā)揮了網(wǎng)絡(luò)的作用;(3)本發(fā)明也提高了井下定位覆蓋度和定位精度,增加了節(jié)點(diǎn)布置的科學(xué)性與合理性。
附圖說(shuō)明:
圖1是本發(fā)明具體實(shí)施井下無(wú)線傳感器網(wǎng)絡(luò)定位系統(tǒng)的工作原理總示意圖;
圖2是實(shí)施基于節(jié)點(diǎn)最優(yōu)布置位置選擇方法的流程圖;
圖3是本發(fā)明節(jié)點(diǎn)定位坐標(biāo)過(guò)程的流程圖;
圖4是本發(fā)明測(cè)試數(shù)據(jù)初始坐標(biāo)和優(yōu)化后坐標(biāo)的對(duì)比圖。
具體實(shí)施方式:
下面結(jié)合附圖1、2、3、4對(duì)本發(fā)明所述定位方法做進(jìn)一步說(shuō)明。
1、結(jié)合附圖1,該定位方法的總體步驟為:首先,在節(jié)點(diǎn)布置固定前,預(yù)先對(duì)各節(jié)點(diǎn)的位置進(jìn)行調(diào)試。先將各節(jié)點(diǎn)按照隨機(jī)原則進(jìn)行布置,再根據(jù)此位置算出各節(jié)點(diǎn)所受的合力來(lái)確定傳感器移動(dòng)以及礦工所攜帶移動(dòng)節(jié)點(diǎn)的最大化感知區(qū)域覆蓋度,然后將算法迭代執(zhí)行使覆蓋度達(dá)到門(mén)限值,再借助虛擬移動(dòng)傳感器,確定最終位置,最后利用移動(dòng)傳感器,完成節(jié)點(diǎn)布置;然后利用角度(AOA)進(jìn)行初步定位,根據(jù)未知節(jié)點(diǎn)到達(dá)各錨節(jié)點(diǎn)的角度信息,若未知節(jié)點(diǎn)出現(xiàn),當(dāng)前喚醒節(jié)點(diǎn)m(xm,ym)可計(jì)算出未知節(jié)點(diǎn)發(fā)出信號(hào)到達(dá)的相對(duì)于X軸方向的角度,所有布置節(jié)點(diǎn)依次被喚醒,并保存自身位置坐標(biāo)及角度信息,最后采用AOA定位方法,取相鄰兩個(gè)錨節(jié)點(diǎn)m(xm,ym,α),n(xn,yn,β),再由夾角射線原理聯(lián)立解得未知節(jié)點(diǎn)的初始估計(jì)值(xx,yx),并將多個(gè)錨節(jié)點(diǎn)兩兩一組進(jìn)行組合,重復(fù)以上步驟即可測(cè)得多組數(shù)據(jù),從而求得未知節(jié)點(diǎn)的估計(jì)坐標(biāo)值(xx,yy);最后將初始位置(xx,yy)作為改進(jìn)差分進(jìn)化算法的初始解來(lái)初始化種群,經(jīng)歷變異、交叉、選擇等過(guò)程,解得未知節(jié)點(diǎn)坐標(biāo)。
2、結(jié)合附圖2,說(shuō)明了本發(fā)明實(shí)例提供的基于節(jié)點(diǎn)最優(yōu)布置方法中,位置選擇的實(shí)現(xiàn)過(guò)程為:首先計(jì)算各個(gè)錨節(jié)點(diǎn)之間和與障礙最近點(diǎn)、目標(biāo)最近點(diǎn)的距離,并在實(shí)際環(huán)境中測(cè)得所需距離值,再根據(jù)求得的歐式距離求得節(jié)點(diǎn)所受的合力(向量)同時(shí)獲取節(jié)點(diǎn)的移動(dòng)距離和移動(dòng)角度,接著根據(jù)當(dāng)前錨節(jié)點(diǎn)的能量值計(jì)算移動(dòng)概率并對(duì)節(jié)點(diǎn)進(jìn)行移動(dòng)處理以保證定位覆蓋率盡量高,最終移動(dòng)值采用下述方法測(cè)得:每個(gè)錨節(jié)點(diǎn)依據(jù)自身能量取不同移動(dòng)概率:其對(duì)應(yīng)的移動(dòng)距離為:X=X1+Xd*Pi,Y=Y(jié)1+Yd*Pi;計(jì)算每個(gè)傳感器的感應(yīng)概率C(Pj),確定出錨節(jié)點(diǎn)傳感器的感應(yīng)模型為概率模型,將其進(jìn)行概率角度的描述為以下三種情況:
(1)移動(dòng)節(jié)點(diǎn)與錨節(jié)點(diǎn)之間間距大于移動(dòng)節(jié)點(diǎn)信號(hào)發(fā)射半徑r1與錨節(jié)點(diǎn)感應(yīng)半徑r2之和時(shí),感應(yīng)概率為0;
(2)移動(dòng)節(jié)點(diǎn)與錨節(jié)點(diǎn)之間間距小于移動(dòng)節(jié)點(diǎn)信號(hào)發(fā)射半徑r1與錨節(jié)點(diǎn)感應(yīng)半徑r2之差的絕對(duì)值時(shí),感應(yīng)概率為1;
(3)移動(dòng)節(jié)點(diǎn)與錨節(jié)點(diǎn)之間間距大于移動(dòng)節(jié)點(diǎn)信號(hào)發(fā)射半徑r1與錨節(jié)點(diǎn)感應(yīng)半徑r2之差的絕對(duì)值且小于r1與r2之和時(shí),感應(yīng)概率為
整個(gè)網(wǎng)絡(luò)感知到的概率為:式中α=d(si,pj)-r-rc,β與λ為傳感器感應(yīng)的衰減系數(shù);當(dāng)傳感器檢測(cè)到的感知概率高于傳感器概率門(mén)限值Cth時(shí),認(rèn)為已經(jīng)達(dá)到覆蓋需求,優(yōu)化布置方法終止。
3、結(jié)合附圖3對(duì)本發(fā)明方法做進(jìn)一步說(shuō)明,基于三角定位法進(jìn)行改進(jìn),定位坐標(biāo)確定方法如下:先確定出各個(gè)錨節(jié)點(diǎn)自身坐標(biāo)(xi,yi),其中每個(gè)節(jié)點(diǎn)可被隨機(jī)喚醒,用于未知節(jié)點(diǎn)的監(jiān)測(cè);若未知節(jié)點(diǎn)出現(xiàn),未知節(jié)點(diǎn)接收信標(biāo)信息,當(dāng)前喚醒節(jié)點(diǎn)m(xm,ym)可計(jì)算出未知節(jié)點(diǎn)發(fā)出信號(hào)到達(dá)的相對(duì)于X軸方向的角度,記為α,并將本地?cái)?shù)據(jù)保存為(xm,ym,α);所有布置節(jié)點(diǎn)依次被喚醒,并保存自身位置坐標(biāo)及角度信息,依次進(jìn)行,再采用AOA定位方法,取臨近未知節(jié)點(diǎn)的兩個(gè)相鄰錨節(jié)點(diǎn)m(xm,ym,α),n(xn,yn,β),如果兩錨節(jié)點(diǎn)與未知節(jié)點(diǎn)共線則放棄此組數(shù)據(jù)重新確定兩個(gè)相鄰錨節(jié)點(diǎn)開(kāi)始定位。根據(jù)夾角射線原理有:
聯(lián)解兩方程可得到未知節(jié)點(diǎn)的初始估計(jì)值(xx,yx):
最后將多個(gè)錨節(jié)點(diǎn)兩兩一組進(jìn)行組合,重復(fù)以上步驟即可測(cè)得多組數(shù)據(jù),記為(xx,yy)=Hi(xxi,yyi),i=1,2……,n(n為錨節(jié)點(diǎn)總數(shù));
對(duì)節(jié)點(diǎn)坐標(biāo)進(jìn)行優(yōu)化處理,設(shè)置算法中的參數(shù)維數(shù)NP=20,縮放因子F=1,交叉算子CR=0.9,迭代次數(shù)G=40,通訊距離設(shè)為100m,錨節(jié)點(diǎn)比例為30%,噪音因子為0.8;為了減少計(jì)算量,在選擇時(shí)使用目標(biāo)函數(shù):F=(xm-xx)+(ym-yy)-d,其中,(xm,ym)為距未知節(jié)點(diǎn)最近的錨節(jié)點(diǎn)坐標(biāo),(xx,yx)為未知節(jié)點(diǎn)坐標(biāo)即優(yōu)化的差分進(jìn)化算法中的每代目標(biāo)向量或?qū)嶒?yàn)向量,d為錨節(jié)點(diǎn)與未知節(jié)點(diǎn)的測(cè)距,首先,在節(jié)點(diǎn)坐標(biāo)優(yōu)化處理中,先將錨節(jié)點(diǎn)前三點(diǎn)人為布置并移至預(yù)定坐標(biāo)點(diǎn):第一點(diǎn)(3.00,3.00);第二點(diǎn):(-3.00,3.00);第三點(diǎn):(0.00,3.00),工作人員攜帶定位模塊作為未知節(jié)點(diǎn)移動(dòng)到設(shè)定坐標(biāo),并假定未知節(jié)點(diǎn)第4點(diǎn)到第10點(diǎn)的坐標(biāo)值:(1.20,1.42);(2.40,2.67);(-1.60,-1.43);(-2.40,-2.37);(1.60,1.91);(-3.20,-3.34);(0.25,0.10);先定位第四點(diǎn)坐標(biāo),此時(shí)的目標(biāo)函數(shù)中距未知節(jié)點(diǎn)最近的錨節(jié)點(diǎn)坐標(biāo)(xm,ym)即為已確定的第三點(diǎn)坐標(biāo)(0.00,3.00),錨節(jié)點(diǎn)與未知節(jié)點(diǎn)的測(cè)距d即為設(shè)定的第四點(diǎn)(1.20,1.42)到確定的第三點(diǎn)(0.00,3.00)的距離,在定位模塊的軟件設(shè)計(jì)時(shí)用d=sqrt((data(i,1)-data(i-1,1))^2+(data(i,2)-data(i-1,2))^2)表示;利用差分進(jìn)化法對(duì)目標(biāo)函數(shù)最佳值的搜尋,通過(guò)定位模塊中差分進(jìn)化算法的變異、雜交、競(jìng)爭(zhēng)操作,靠著交叉的機(jī)制來(lái)進(jìn)行每一代的演進(jìn),生成O至l之間隨機(jī)數(shù)發(fā)生器的第j個(gè)估計(jì)值;CR為交叉算子,CR屬于[O,l];最后經(jīng)過(guò)G步迭代可求得未知節(jié)點(diǎn)的最優(yōu)坐標(biāo);最終找到第四點(diǎn)的最優(yōu)解(xx,yx),升級(jí)該節(jié)點(diǎn)用于協(xié)助定位剩余未知節(jié)點(diǎn),然后由喚醒節(jié)點(diǎn)決定求第五點(diǎn)坐標(biāo)時(shí)距未知節(jié)點(diǎn)最近的錨節(jié)點(diǎn)坐標(biāo)(xm,ym),同理按照之前方法一步步將各個(gè)坐標(biāo)的最優(yōu)解得到;圖4為優(yōu)化后坐標(biāo)和初始坐標(biāo)的對(duì)比圖。
所以該算法可以使節(jié)點(diǎn)布置成本更低,增加了節(jié)點(diǎn)布置的科學(xué)性與合理性,也提高了定位覆蓋度和定位精度。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)做的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。