本發(fā)明涉及網(wǎng)絡(luò)技術(shù),尤其涉及一種基于多維系統(tǒng)的無線傳感器網(wǎng)絡(luò)移動(dòng)節(jié)點(diǎn)定位算法。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,簡(jiǎn)稱WSN)是由部署在特定的監(jiān)測(cè)區(qū)域內(nèi)大量廉價(jià)、微型的、具有通信能力和計(jì)算能力的感器節(jié)點(diǎn)構(gòu)成的自組織分布式網(wǎng)絡(luò)系統(tǒng),它具有快速展開、高健壯性和抗毀性等特點(diǎn),能夠廣泛應(yīng)用于軍事、環(huán)境檢測(cè)和預(yù)報(bào)、智能家居等諸多領(lǐng)域,已經(jīng)引起了世界許多國(guó)家軍界、學(xué)術(shù)界和工業(yè)界的高度重視。
節(jié)點(diǎn)定位(Node Localization,NL)作為WSN中重要的一部分,是國(guó)內(nèi)外學(xué)者們研究的熱點(diǎn)。NL是指通過特定的技術(shù)、方法和手段,再結(jié)合給定區(qū)域中的錨節(jié)點(diǎn)信息計(jì)算出網(wǎng)絡(luò)中的未知節(jié)點(diǎn)的相對(duì)位置或者絕對(duì)位置的過程。在常見的WSN中,一般有兩種節(jié)點(diǎn),一種是信標(biāo)節(jié)點(diǎn)(Beacon Node,BN)或稱錨節(jié)點(diǎn)(Anchor Node,AN),其相置信息是給定或者已知的;另一種是未知節(jié)點(diǎn)(Unknown Node,UN),其不知道自己的物理位置信息,需要通過NL得到位置信息。
移動(dòng)傳感器網(wǎng)絡(luò)的定位技術(shù)可以按照節(jié)點(diǎn)間是否測(cè)距來劃分,可以將節(jié)點(diǎn)定位分為基于測(cè)距(range-based)和非測(cè)距(range-free)的方式進(jìn)行。本發(fā)明基于多維系統(tǒng)的Fornasini-Marchesini模型,使用多維標(biāo)度(Multidimentional Scaling,MDS)來定位未知節(jié)點(diǎn),MDS算法是一種多重變量分析的算法,它比與其他多變量分析方法比較起來在測(cè)量誤差上更具備穩(wěn)定性,已被用于傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位。
基于MDS方法也存在一些問題,例如計(jì)算量比較大,隨著記錄錨節(jié)點(diǎn)坐標(biāo)的矩陣A不斷擴(kuò)充,對(duì)A的矩陣分解的計(jì)算量也會(huì)越來越大,而傳感器的電池容量、內(nèi)存又比較小,本發(fā)明針對(duì)這樣的問題,利用一種新型的奇異值分解方法,直接獲得分解結(jié)果,避開部分計(jì)算,并用這些結(jié)果進(jìn)行定位。本發(fā)明提出一種基于多維系統(tǒng)的移動(dòng)傳感器算法(Multidimentional Scaling based singular values decomposition advanced,MDSA),通過與傳統(tǒng)算法比較,本算法在一定程度上節(jié)約了能量與內(nèi)存。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于針對(duì)現(xiàn)有技術(shù)中的缺陷,提供一種基于多維系統(tǒng)的無線傳感器網(wǎng)絡(luò)移動(dòng)錨節(jié)點(diǎn)定位算法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:基于多維系統(tǒng)的無線傳感器網(wǎng)絡(luò)移動(dòng)節(jié)點(diǎn)定位算法,包括以下步驟:
1)將基站的坐標(biāo)記為B0(0,0),同時(shí)定義第一個(gè)錨節(jié)點(diǎn)的坐標(biāo),記為B1(1,0),設(shè)錨節(jié)點(diǎn)總個(gè)數(shù)為m,m≥3;
3)將待測(cè)節(jié)點(diǎn)坐標(biāo)記為N(x,y),錨節(jié)點(diǎn)坐標(biāo)記為Bi(xi,yi),N和Bi之間的距離記為ri,則他們的歐式距離為(x-xi)2+(y-yi)2=ri2(i=2,...,m);
4)定義B1到Bi之間的距離,記為d1i,則記
5)獲得b1i的表達(dá)式:
(x-x1)(x2-x1)+(y-y1)(y2-y1)=b12
(x-x1)(x3-x1)+(y-y1)(y3-y1)=b13
(x-x1)(x4-x1)+(y-y1)(y4-y1)=b14.
……
(x-x1)(xm-x1)+(y-y1)(ym-y1)=b1m,
這樣的式子有m-1個(gè),m是錨節(jié)點(diǎn)的個(gè)數(shù),未知值為測(cè)節(jié)點(diǎn)坐標(biāo)N(x,y);
6)設(shè)Ax=b,其中:
將上式寫成矩陣方程的形式,可以看出,A中包含了所有錨節(jié)點(diǎn)的坐標(biāo)信息;
7)將A1的初始分解寫作:此時(shí)在A中更新一個(gè)錨節(jié)點(diǎn)坐標(biāo)信息,變?yōu)椋浩渲腥缓驛的新分解可以更新為此形式:經(jīng)過驗(yàn)算,此形式可以不斷往上更新擴(kuò)充成
8)根據(jù)上式中Am的新奇異值分解,定位待測(cè)節(jié)點(diǎn)N(x,y),或繼續(xù)通過獲得的錨節(jié)點(diǎn)坐標(biāo)Bj來更新得到矩陣Aj,而步驟1)中的
本發(fā)明產(chǎn)生的有益效果是:本發(fā)明針對(duì)基于MDS的移動(dòng)傳感器定位方法中存在的一些問題,比如內(nèi)存不夠用,耗能比較大等問題,提出了一種新的奇異值分解定位算法,該算法首先確定了基站和首個(gè)錨節(jié)點(diǎn)的坐標(biāo),然后利用新奇異值分解簡(jiǎn)化定位步驟,簡(jiǎn)化了一部分計(jì)算,并利用計(jì)算結(jié)果進(jìn)行節(jié)點(diǎn)定位,通過與已有算法比較,本算法在計(jì)算時(shí)間上有了一定的提高。
附圖說明
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中:
圖1是本發(fā)明實(shí)施例的方法流程圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,本發(fā)明提供了一種基于新奇異值分解的無線傳感器網(wǎng)絡(luò)移動(dòng)節(jié)點(diǎn)定位算法,算法分為兩個(gè)階段,初始化階段,新奇異值分解階段。首先,對(duì)基站和首個(gè)錨節(jié)點(diǎn)進(jìn)行初始化,給它們初始坐標(biāo),然后用新奇異值分解算法來完善MDS算法,使其能耗降低,內(nèi)存占用降低,運(yùn)行速度變快。
該算法從根源上降低了計(jì)算復(fù)雜度,有效的提高了定位效率,緩解了傳統(tǒng)算法中內(nèi)存不足與計(jì)算速度較慢的問題。
實(shí)現(xiàn)本發(fā)明目的技術(shù)方案:
一種基于新奇異值分解的移動(dòng)傳感器算法,
1)將基站的坐標(biāo)記為B0(0,0),同時(shí)定義第一個(gè)錨節(jié)點(diǎn)的坐標(biāo),記為B1(1,0),設(shè)錨節(jié)點(diǎn)總個(gè)數(shù)為m,m≥3;
3)將待測(cè)節(jié)點(diǎn)坐標(biāo)記為N(x,y),錨節(jié)點(diǎn)坐標(biāo)記為Bi(xi,yi),N和Bi之間的距離記為ri,則他們的歐式距離為(x-xi)2+(y-yi)2=ri2(i=2,...,m);
4)定義B1到Bi之間的距離,記為d1i,則記
5)獲得b1i的表達(dá)式:
(x-x1)(x0-x1)+(y-y1)(y0-y1)=b10
(x-x1)(x1-x1)+(y-y1)(y1-y1)=b11
(x-x1)(x2-x1)+(y-y1)(y2-y1)=b12
(x-x1)(x3-x1)+(y-y1)(y3-y1)=b13
(x-x1)(x4-x1)+(y-y1)(y4-y1)=b14
……
(x-x1)(xm-x1)+(y-y1)(ym-y1)=b1m,
這樣的式子有m+1個(gè),m是錨節(jié)點(diǎn)的個(gè)數(shù),未知值為測(cè)節(jié)點(diǎn)坐標(biāo)N(x,y);
6)設(shè)Ax=b,其中:
將上式寫成矩陣方程的形式,可以看出,A中包含了所有錨節(jié)點(diǎn)的坐標(biāo)信息;
7)將A1的初始分解寫作:此時(shí)在A中更新一個(gè)錨節(jié)點(diǎn)坐標(biāo)信息,變?yōu)椋浩渲腥缓驛的新分解可以更新為此形式:經(jīng)過驗(yàn)算,此形式可以不斷往上更新擴(kuò)充成
8)根據(jù)上式中Am的新奇異值分解,定位待測(cè)節(jié)點(diǎn)N(x,y),或繼續(xù)通過獲得的錨節(jié)點(diǎn)坐標(biāo)Bj來更新得到矩陣Aj,而步驟1)中的
為了驗(yàn)證本發(fā)明實(shí)施例的定位算法有效性,本發(fā)明采用MATLAB軟件在Windows操作系統(tǒng)、i5處理器下進(jìn)行仿真,并與傳統(tǒng)MDS算法進(jìn)行比較,來驗(yàn)證本算法在計(jì)算方面的速度優(yōu)勢(shì)。仿真場(chǎng)景設(shè)置如下:100m*100m的區(qū)域里隨機(jī)分布121個(gè)傳感器節(jié)點(diǎn),傳感器節(jié)點(diǎn)的通信半徑為200m,其中24個(gè)錨節(jié)點(diǎn),對(duì)數(shù)據(jù)仿真50次求平均值。
表1.仿真參數(shù)表。
表2.仿真結(jié)果表。
本發(fā)明針對(duì)基于MDS的定位算法中因矩陣復(fù)雜導(dǎo)致的計(jì)算時(shí)間稍長(zhǎng),利用一種新的奇異值分解算法對(duì)距離矩陣A進(jìn)行分析,可以從表2看出,通過與傳統(tǒng)MDS算法比較,本發(fā)明在計(jì)算時(shí)間上大約降低了5%,并在定位誤差、網(wǎng)絡(luò)平均連接度等方面并未造成明顯的不良影響。
應(yīng)當(dāng)理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。