1.一種能量采集無線傳感器網(wǎng)絡(luò)的APIT節(jié)點(diǎn)定位方法,其特征在于,包括下述步驟:
S1、初始化網(wǎng)絡(luò);
S2、待定節(jié)點(diǎn)廣播信息,節(jié)點(diǎn)間進(jìn)行信息交換,一個待定節(jié)點(diǎn)的廣播范圍內(nèi)的所有節(jié)點(diǎn)都會收到一個信息包,通過節(jié)點(diǎn)之間的信息交換,得到接收信號強(qiáng)度RSSI的信息;
S3、判斷待定節(jié)點(diǎn)的鄰居錨節(jié)點(diǎn)數(shù)量是否大于等于三個,少于的話則標(biāo)記為次級待定節(jié)點(diǎn);
S4、利用三角形面積法,判斷待定節(jié)點(diǎn)是否位于任何一個由鄰居錨節(jié)點(diǎn)所組成的三角形的內(nèi)部,若待定節(jié)點(diǎn)不位于任何一個三角形的內(nèi)部,則同樣將該節(jié)點(diǎn)標(biāo)記為次級待定節(jié)點(diǎn),記錄每一個包圍了待定節(jié)點(diǎn)的三角形;
S5、對每一個三角形,使用三角形加權(quán)質(zhì)心算法求出它質(zhì)心的坐標(biāo),窮盡所有被記錄的三角形,對所有質(zhì)心的坐標(biāo)取平均值,該平均值就是待定節(jié)點(diǎn)坐標(biāo)的估算值,第一次定位結(jié)束;
S6、查看次級待定節(jié)點(diǎn)的鄰居表,若有鄰居待定節(jié)點(diǎn)已被定位,則將已經(jīng)定位的鄰居節(jié)點(diǎn)升級為錨節(jié)點(diǎn),重復(fù)步驟S3-S5,進(jìn)行第二次定位;
S7、在第二次定位中,如果仍出現(xiàn)鄰居錨節(jié)點(diǎn)少于三或不在任何一個三角形內(nèi)的待定節(jié)點(diǎn),則將其標(biāo)記為未定位節(jié)點(diǎn)。
2.根據(jù)權(quán)利要求1所述的能量采集無線傳感器網(wǎng)絡(luò)的APIT節(jié)點(diǎn)定位方法,其特征在于,步驟S6之前還包括下述步驟S0:
建立待定節(jié)點(diǎn)升級機(jī)制,該機(jī)制在網(wǎng)絡(luò)的第一次定位結(jié)束之后,通過將已定位節(jié)點(diǎn)升級成錨節(jié)點(diǎn)來進(jìn)行第二次的定位,提升網(wǎng)絡(luò)的節(jié)點(diǎn)覆蓋率。
3.根據(jù)權(quán)利要求2所述的能量采集無線傳感器網(wǎng)絡(luò)的APIT節(jié)點(diǎn)定位方法,其特征在于,步驟S0中,所述待定節(jié)點(diǎn)升級機(jī)制的實(shí)現(xiàn)方法如下:
S01、初始化網(wǎng)絡(luò);
S02、對網(wǎng)絡(luò)進(jìn)行第一次定位,將已定位的節(jié)點(diǎn)標(biāo)記位設(shè)置為1,將鄰居錨節(jié)點(diǎn)少于3個或沒被任何三角形所包圍的節(jié)點(diǎn)標(biāo)記位設(shè)置為0;
S03、對待定節(jié)點(diǎn)進(jìn)行逐個檢查,若節(jié)點(diǎn)的標(biāo)記位為1,則在原有錨節(jié)點(diǎn)儲存空間的底部開辟新的空間,并將自身信息賦予給相應(yīng)的錨節(jié)點(diǎn)ID;
S04、得到一組全新的錨節(jié)點(diǎn)信息后,標(biāo)記位為0的待定節(jié)點(diǎn)更新鄰居錨節(jié)點(diǎn)信息;
S05、對網(wǎng)絡(luò)進(jìn)行第二次定位,同樣將已定位的節(jié)點(diǎn)標(biāo)記位設(shè)置為1,將鄰居錨節(jié)點(diǎn)少于3個或沒被任何三角形所包圍的節(jié)點(diǎn)標(biāo)記位設(shè)置為0;
S06、定位結(jié)束。
4.根據(jù)權(quán)利要求3所述的能量采集無線傳感器網(wǎng)絡(luò)的APIT節(jié)點(diǎn)定位方法,其特征在于,所述標(biāo)記位作用是記錄待定節(jié)點(diǎn)是否已被定位,已定位則為1,未定位則為0,在第一次定位結(jié)束后,標(biāo)記位為0的待定節(jié)點(diǎn)成為次級節(jié)點(diǎn),進(jìn)入第二次定位中。
5.根據(jù)權(quán)利要求1所述的能量采集無線傳感器網(wǎng)絡(luò)的APIT節(jié)點(diǎn)定位方法,其特征在于,步驟S1中,系統(tǒng)初始化時應(yīng)保證所有待定節(jié)點(diǎn)的初始狀態(tài)與錨節(jié)點(diǎn)一樣,再額外增加一個標(biāo)志位判斷自己是否已被定位,在之后的應(yīng)用中進(jìn)行再次定位時,可選擇標(biāo)記位是已定位的節(jié)點(diǎn)作為錨節(jié)點(diǎn)使用。
6.根據(jù)權(quán)利要求1所述的能量采集無線傳感器網(wǎng)絡(luò)的APIT節(jié)點(diǎn)定位方法,其特征在于,步驟S2中,所述信息包中包含節(jié)點(diǎn)ID、節(jié)點(diǎn)坐標(biāo)、節(jié)點(diǎn)剩余能量和節(jié)點(diǎn)標(biāo)記位信息。
7.根據(jù)權(quán)利要求1所述的能量采集無線傳感器網(wǎng)絡(luò)的APIT節(jié)點(diǎn)定位方法,其特征在于,步驟S4中,利用三角形面積法,判斷待定節(jié)點(diǎn)是否位于任何一個由鄰居錨節(jié)點(diǎn)所組成的三角形的內(nèi)部的具體方法是:
假設(shè)A1、A2、A3為錨節(jié)點(diǎn),U為待定節(jié)點(diǎn),ΔA1A2A3的面積為SA1A2A3,當(dāng)待定節(jié)點(diǎn)位于三角形的內(nèi)部時,易知SA1UA3+SA1UA2+SA2UA3=SA1A2A3,而當(dāng)待定節(jié)點(diǎn)位于三角形的外部時,也有SA1UA3+SA1UA2+SA2UA3>SA1A2A3,因此可以直接判斷待定節(jié)點(diǎn)的是否位于一個三角形的內(nèi)部;
由于待定節(jié)點(diǎn)的坐標(biāo)是不知道的,所以無法直接計算待定節(jié)點(diǎn)與三個錨節(jié)點(diǎn)之間的距離,在網(wǎng)絡(luò)中引入RSSI即接收信號強(qiáng)度,那么節(jié)點(diǎn)在得到一個RSSI之后就可以通過下述公式(1)反推出距離:
其中pr(l0)是參考距離為l0時接收到的信號強(qiáng)度,pr(l)是當(dāng)距離為l時接收點(diǎn)處的信號強(qiáng)度,n為路徑損耗指數(shù);
在已知三邊長度的情況下,根據(jù)海倫公式(2)計算出該三角形的面積,
其中S為三角形面積,a、b、c為三角形的三邊長,p為三角形周長的一半。
8.根據(jù)權(quán)利要求7所述的能量采集無線傳感器網(wǎng)絡(luò)的APIT節(jié)點(diǎn)定位方法,其特征在于,使用三角形加權(quán)質(zhì)心算法求它質(zhì)心的坐標(biāo)的具體方法為:
設(shè)組成三角形的錨節(jié)點(diǎn)A1、A2、A3的坐標(biāo)分別為(x1,y1),(x2,y2),(x3,y3),待定節(jié)點(diǎn)U到這三個錨節(jié)點(diǎn)的距離分別為d1、d2、d3,所述d1、d2、d3通過公式(1)計算出來,當(dāng)待定節(jié)點(diǎn)位于一個三角形的內(nèi)部時,則有下面的加權(quán)質(zhì)心公式:
所得到x、y值就是該三角形的質(zhì)心加權(quán)坐標(biāo),對所有符合條件的三角形求各自的質(zhì)心加權(quán)坐標(biāo),再取它們的平均值,那么這個就是待定節(jié)點(diǎn)的估算坐標(biāo),設(shè)共有m個三角形符合條件,則估算坐標(biāo)為:
9.根據(jù)權(quán)利要求8所述的能量采集無線傳感器網(wǎng)絡(luò)的APIT節(jié)點(diǎn)定位方法,其特征在于,步驟S5中,使用三角形加權(quán)質(zhì)心算法求出它質(zhì)心的坐標(biāo)的步驟是:
S51、對一個待定節(jié)點(diǎn)D,使用三角形面積測試判斷其是否位于鄰居錨節(jié)點(diǎn)所組成的△ABC內(nèi)部,在內(nèi)部,轉(zhuǎn)到步驟S52,不在則轉(zhuǎn)到步驟S56;
S52、計算△ABC的重心Q,同時加權(quán)質(zhì)心公式求出一個新的點(diǎn)P_1;
S53、計數(shù)器加1,判斷計數(shù)器是否大于10,若大于則放棄Q的數(shù)據(jù)只保留位置P_1的坐標(biāo),并轉(zhuǎn)到步驟S56;
S54、點(diǎn)Q與點(diǎn)ABC分別組成三個小三角形,判斷待定節(jié)點(diǎn)D位于哪一個小三角形中;
S56、對待定節(jié)點(diǎn)D所在的小三角形使用加權(quán)質(zhì)心公式求出一個新的點(diǎn)P_2;轉(zhuǎn)到下一個三角形,回到步驟S51,直至取盡所有三角形;
S57、計數(shù)器大于10,計算P_1的平均值;少于等于10但不等于0,計算P_2的平均值;計數(shù)器等于0,則標(biāo)記待定節(jié)點(diǎn);該平均值作為待定節(jié)點(diǎn)D的估算坐標(biāo)。
10.根據(jù)權(quán)利要求9所述的能量采集無線傳感器網(wǎng)絡(luò)的APIT節(jié)點(diǎn)定位方法,其特征在于,步驟S5中,使用三角形加權(quán)質(zhì)心算法求出質(zhì)心的坐標(biāo)的具體方法為:
設(shè)錨節(jié)點(diǎn)A、B、C的坐標(biāo)分別為(x1,y1),(x2,y2),(x3,y3),待定節(jié)點(diǎn)D的坐標(biāo)為(x,y),點(diǎn)O(x4,y4)為ΔABC的重心,待定節(jié)點(diǎn)D到重心O的距離為d4,點(diǎn)O的坐標(biāo)通過公式(5)得到:
ΔABC被分成了三個小三角形ΔABO、ΔACO、ΔBCO,通過面積的比較來要判斷待定節(jié)點(diǎn)D位于哪一個小三角形當(dāng)中,在判斷待定節(jié)點(diǎn)是否位于三角形內(nèi)所用的面積判斷法時已經(jīng)求出了SABD、SACD和SBCD,接下來求SABD、SACD和SBCD三者中數(shù)值最小者,對面積值最小的三角形使用加權(quán)質(zhì)心公式估算更高精度的坐標(biāo)。