李海嘯,于 東,胡 毅,3,于皓宇
1(中國科學院大學,北京100049)
2(中國科學院沈陽計算技術研究所,沈陽110168)
3(沈陽高精數控智能技術股份有限公司,沈陽110168)
無線傳感器網絡(Wireless Sensor Network,WSN)由大量體積小、耗能少、價格低且具有計算、通信、存儲甚至移動功能的傳感器組成,這些傳感器能夠自發地感知環境、獲取并處理數據,最終將數據傳遞到觀察者[1].WSN 的這種動態感知、處理和傳遞消息的能力使得WSN 被大量應用在需要反映現實世界某種特征的應用中[2],例如:智慧工廠、環境監測、智能家居、軍事偵察等領域.在這些應用中,無論是尋找數據源位置,還是對移動目標進行跟蹤,WSN 節點定位技術都是非常重要的.但為WSN 的所有節點都安裝GPS 以獲得自身精確位置的方法是不現實的.目前常用的解決辦法是給一部分節點安裝GPS 或在初始階段將這些節點設置在固定位置,其余節點利用這些特殊節點(稱為錨節點)進行定位[3].WSN 定位算法根據節點間是否需要測距可以分為兩類[4]:基于測距(Range-based)和基于非測距(Range-free)的定位算法.基于測距的定位算法主要有:信號傳輸時間算法(Time Of Arrival,TOA)、信號到達時間差算法(Time Difference Of Arrival,TDOA)、信號到達角度算法(Angle Of Arrival,AOA)和接收信號強度指示算法(Received Signal Strength Indicator,RSSI).基于非測距的定位算法主要有:近似三角形內點測試法(Approximate PIT Test,APIT)、距離矢量跳數算法(DistanceVector Hop,DV-Hop)和質心算法(Centroid).上述各定位算法的主要優缺點如表1 所示.
由于目前大多數無線通信模塊都支持RSSI 的測距功能,所以基于RSSI 的定位算法是一種低成本、易實現的定位方法.但其缺點是RSSI 信號傳輸容易受到外界因素(例如:障礙物、多徑效應、噪聲等)影響,導致RSSI算法存在較大定位誤差[5],因此通常采用相應的優化或修正算法來提高定位精度.本文在研究大量RSSI 三邊定位算法的基礎上,對傳統的基于RSSI 的三邊質心定位算法進行改進,通過采用模糊C均值聚類算法對錨節點發射到未知節點的多組RSSI 信號進行聚類,消除小概率大干擾的RSSI 信號,計算相對準確的未知節點和錨節點之間的距離,并且為彌補傳統三邊質心定位算法的不足,提出參考點加權質心定位算法,通過尋找合適的參考點對未知節點進行精確定位.

表1 WSN 定位算法比較Table 1 Comparison of localization algorithms for WSN
目前,很多學者對WSN 基于RSSI 的三邊定位算法進行研究并提出改進方法:文獻[6]通過擬合區域的環境參數,對RSSI 值進行排序,找出可信度最高的前三個錨節點用于定位計算,采用加權質心定位的權重因子來反映錨節點對質心坐標決定權的大小和對質心位置的影響,提高了定位精度.但沒有考慮三個錨節點接近于同一條直線而導致定位誤差大甚至定位錯誤的情形.文獻[7]提出一種基于RSSI 的三邊定位聚類改進算法,該算法利用KMC+聚類優化方法對基于 RSSI向量的三邊定位結果進行聚類,對每個聚類中心求平均值作為定位結果,減小了三邊定位誤差.但在基于RSSI 源數據預處理和聚類定位計算過程中并沒有徹底消除RSSI 測距誤差帶來的影響.文獻[8]提出了在使用高斯濾波算法對RSSI 信號進行濾波的基礎上,為進一步提高三邊定位算法精度和魯棒性,提出了增加一個錨節點的四邊形加權質心算法,并提出了直線方程法判斷以兩個錨節點為圓心的定位圓的交點是否為定位所需的內側交點.雖然四邊形定位算法在一定程度上提高了定位精度和魯棒性,但所需計算時間和算法復雜度卻隨著錨節點數目的增加而大幅提高.文獻[9]利用約束條件將目標區域內的錨節點進行篩選,選出與未知節點相關系數較大的錨節點,在相關系數較大的區域內對未知節點進行定位.文獻[10]分析了基于RSSI 定位算法誤差的兩個主要來源:一是來自根據RSSI 信號衰減強度計算節點間距的理論模型或經驗模型;二是來自RSSI 傳輸路徑上障礙物的影響.提出了基于RSSI 的線上更新定位方法:首先利用距離未知節點最近的2 個錨節點得到未知節點的2 個可能位置,再利用較近的第3 個錨節點選擇其中1 個位置作為定位結果,可以有效減小障礙物的影響并提高定位精度.文獻[11]討論了GPS技術在室內WSN 定位中面臨的挑戰以及三邊定位算法在室內WSN 定位中的優點,在集成開發環境下利用智能手機和相應操作平臺實現了室內三邊定位技術的實驗,最后驗證了三邊定位技術的合理性和延展性.
目前,基于RSSI 的三邊定位算法由于無需額外的傳輸硬件、所需錨節點較少、耗能和成本低等優點被廣泛應用于WSN 定位,尤其在室內、地下場所等GPS 信號很難到達的區域.但RSSI 定位算法容易受到周圍環境或發射模塊噪聲脈沖等影響,定位誤差較大[12].因此如何提高基于RSSI 的三邊定位算法的精度,是重點研究和解決的方向.
WSN 基于測距的定位算法通過測量節點之間的距離或角度根據空間幾何原理來實現對節點的定位,可以分為三邊定位法、三角定位法、最小最大法、極大似然法等.三邊定位法由于算法時間復雜度小、功耗少、成本低而被廣泛應用.
基于RSSI 測距的定位過程包括3 個階段[13]:測距階段、定位階段、修正階段.
階段1:測距階段.根據發射信號到達未知節點的強度計算錨節點和未知節點之間的距離.目前常用的測距理論模型為Shadowing 模型[14](也稱對數—正態分布模型):

公式(1)中,PI(di)為距離信號發射端di處的信號強度,PI(d0)為距離信號發射端d0處(d0為參考距離,一般為1m)的信號強度,n 為路徑衰減指數,Gδ為均值為0,方差為 δ 的高斯隨機變量.經過化簡并用RSSI(單位:dBm)表示di處的信號強度:

公式(2)中,A 是節點間距1m 時接收節點接收到的RSSI信號強度.公式(2)給出了RSSI 和di的函數關系,所以根據接收到的RSSI 就可以計算出兩個節點的間距.環境參數A和n 都是經驗值,和具體硬件、周圍環境因素相關.RSSI 隨著距離di的增加而減小,在短距離中衰減速度非常快,10m 以后開始逐漸趨于平緩[15],所以短距離內利用RSSI 信號衰減強度測距的誤差更小.
階段2:定位階段.在節點定位階段,未知節點通過階段1中計算的與錨節點之間的距離,根據基于測距的定位算法計算自己的位置,例如:極大似然法、三邊質心法和最小最大法等.
階段3:修正階段.對定位階段估計的未知節點坐標進行優化或修正,減小定位誤差,進一步提高節點定位精度.由于本文只研究如何利用測距信息進行精確定位,只涉及前兩階段,故未對修正階段展開討論.
三邊定位算法簡單,容易實現,但誤差較大.雖然極大似然定位法可以利用三個以上錨節點的測距信息并通過最小二乘法在RSSI 測距誤差平方和最小值的條件下得到未知節點的估計坐標,但由于距離越遠的RSSI 測距誤差越大,距離越近的RSSI 測距越接近真實值[16],極大似然定位法沒有對錨節點及測距距離進行有效區分,當距離過遠的錨節點被選中參與定位時,很可能會增加定位誤差.本文采用距離未知節點最近且非接近一條直線的三個錨節點參與定位,可以有效提高定位精度.三邊定位算法基本原理如下:
假設未知節點U(x,y)通過接收三個錨節點M1(x1,y1)、M2(x2,y2)和M3(x3,y3)發送的RSSI 信號計算錨節點到未知節點 U(x,y)的對應距離 d1、d2和 d3.以 M1、M2和 M3為圓心,距離d1、d2和d3為半徑畫圓,得到三個定位圓之間的交點,定位原理如圖1 所示.

圖1 三邊定位算法原理Fig.1 Trilateration Localization Algorithm principle
根據兩點間距離公式聯立方程組:

方程組經變形和轉換為矩陣形式:


得到未知節點的估計坐標為:

由于RSSI 容易受到噪聲或環境等因素干擾,三個定位圓心有時并非相交于一點,而是兩兩相交,形成三個交點:D1(x1,y1),D2(x2,y2),D3(x3,y3).可以采用三邊質心定位算法或三邊加權質心定位算法估計未知節點的位置[17],未知節點U(x,y)的估計坐標為:

其中,wi為權值系數,大小一般與接收到的RSSI 信號強度正相關或與未知節點和錨節點的距離di負相關.當wi≡1時,公式(6)為三邊質心定位算法定位結果,當wi=gi(d1,d2,d3)時,為三邊加權質心定位算法定位結果.
由于RSSI 信號容易受到環境、障礙物和噪聲信號的干擾,隨機產生小概率大干擾的RSSI 信號,影響未知節點根據RSSI 強度計算與錨節點的距離,影響定位精度.本文通過對三個錨節點向未知節點發射多組RSSI 信號并利用模糊C 均值聚類方法進行聚類,消除小概率大干擾信號,得到準確RSSI 信號值計算未知節點和錨節點的距離,再通過參考點加權質心算法計算未知節點的位置.
根據文獻[18],未知節點接收到的RSSI 值越大表明信號衰減越小,與發射信號的錨節點間距越小,所受環境和障礙物的影響也將越小,并且當3 個錨節點的位置近似成等邊三角形時,定位更準確.距離越近、RSSI 值越大的錨節點在計算未知節點的位置時應有更大的決定權[19].所以,三個錨節點的選擇條件是發射到未知節點的RSSI 信號應盡量大,且三個錨節點的位置不接近一條直線.本文提出雙集合組合法挑選符合條件的錨節點,具體步驟如圖2 所示.

圖2 雙集合組合法尋找符合定位條件的錨節點Fig.2 Double-Set combination method to select localization-qualified anchor nodes
WSN 中所有錨節點向未知節點發送RSSI 信號,未知節點按信號強度對 RSSI 從大到小排序,例如:{RSSI1,RSSI2,…,RSSIN},N 為未知節點接收到 RSSI 信號的個數,即通信范圍內所有錨節點的個數.未知節點選中其中最大的三個 RSSI:RSSI1,RSSI2,RSSI3,由于對應錨節點的位置是已知的,例如:(x1,y1),(x2,y2),(x3,y3),可以計算任意兩個錨節點連接直線方程的斜率:

模糊C 均值聚類算法(Fuzzy C-Means Clustering Algorithm,FCMA)是用隸屬度表示每個樣本屬于某個聚類程度的一種模糊聚類方法.該算法通過迭代的方式尋找使目標函數不斷趨向更小值時的中心向量及隸屬度,由于該算法容易陷入局部極小值,所以對隸屬度初始值的選取依賴程度很高.而量子粒子群優化算法(Quantum Particle Swarm Optimization,QPSO)具有全局空間搜索能力,可以在全局空間尋找最優解,不易陷入局部極值,因此本文利用量子粒子群優化算法的全局搜索代替模糊 C 均值聚類算法的迭代過程計算最優解[20,21].
三個錨節點向未知節點發射三組RSSI 信號,假設每組信號數量為M,可以組成M 個RSSI 觀測值三元組,也稱樣本三元組.RSSI 信號矩陣如下所示:

R 是由三個錨節點到未知節點的所有RSSI 信號觀測值組成的矩陣.需要根據基于量子粒子群算法的FCMA 對R 進行聚類,消除小概率大干擾的RSSI 元組.
在量子粒子群優化算法中,設定粒子數為N,維數為d,粒子向量為Xi=(xi1,xi2,…,xid),粒子每次計算兩個最優位置進行移動:一個是粒子截止目前自己的最優位置,又稱個體最優位置Pi=(pi1,pi2,…,pid),另一個是粒子群截止目前的最優位置,又稱全局最優位置 Pg=(pg1,pg2,…,pgd).為提高全局搜索能力,引入平均個體最優位置:

公式(9)中,MBP 是所有粒子個體最優位置的平均值.
所有粒子結合目標函數根據公式(10)和公式(11)在全局空間向最優位置移動.

公式(11)中,0.5≤u<1 時取減號,0<u<0.5 取加號.α是QPSO 的收縮擴張系數,本文采用α=((1-0.5)×(maxgeneration-generation))/(maxgeneration+0.5),α 在算法收斂過程中線性減小.粒子在全局空間搜索的位置Xi由個體最優位置和種群最優位置計算得到.
模糊C 均值聚類算法就是將M 個觀察值劃分為C 類,記V=(v1,v2,…,vc)為C 個聚類的中心.每個觀測值不是嚴格地劃分為某一聚類,而是以隸屬度劃分,這里0≤uik≤1,且定義目標函數:

其中,m 一般取值為2.樣本與聚類中心的距離公式:

U=( uik)C×M為隸屬度矩陣:

設定初始隸屬度矩陣時,可以采用[0,1]上的隨機數并做歸一化處理作為每個隸屬度的初值.計算得到樣本集合的隸屬度矩陣后,可以利用公式(15)得到新的聚類中心:

每個粒子的位置可以用向量 Xi=[vi1,vi2,…,vij,…,viC]表示,其中維數C 為設定的模糊聚類個數,vij表示第i 個粒子包含的第j 個聚類中心.在本文中,聚類中心為3 維向量,代表RSSI 三元組.每個粒子代表所有樣本的一個候選聚類中心集合,最終得到的最優位置就是模糊C 均值聚類的最優全體聚類中心.基于量子粒子群優化的模糊C 均值聚類算法的聚類過程如下:
Step 1.設定粒子數N、粒子維數C、最大循環次數maxgeneration 和目標函數終止容限εJ,從樣本集合隨機抽取C個樣本為每個粒子賦初值.
Step 2.初始化每個粒子的個體最優位置和粒子群的全局最優位置.
Step 3.根據公式(13)和公式(14)計算所有樣本與粒子包含的每個聚類中心的距離和隸屬度,按照隸屬度最大值原則對樣本進行模糊聚類.
Step 4.根據公式(15)計算新的聚類中心作為粒子的位置,并根據公式(12)計算粒子的適應度值.
Step 5.更新粒子的個體最優位置Pi和粒子群全局最優位置Pg,并利用公式(9)計算MBP 值.
Step 6.每個粒子依據公式(10)和公式(11)進行優化和移動自己的位置.
Step 7.循環Step 3 到Step 6,直到滿足循環終止條件(循環次數=maxgeneration 或.得到最優聚類中心及相應模糊聚類結果.
由于聚類數C 值的選擇對模糊C 均值聚類的效果影響很大,所以本文采用文獻[22]的方法通過將模糊C 均值優化算法嵌入到遺傳算法中迭代優化得到最優C 值及其對應的模糊聚類結果.具體步驟如下:
Step 4.利用公式(16)和公式(17)計算Cki的適應度值:


Step 6.判斷是否達到遺傳算法結束條件(達到最大進化代數或最優適應度值變化小于閾值):是,則結束,否,則到Step 7.
遺傳算法收斂后,可以得到聚類數C 的最優值和最終的依據C 值得到的模糊C 均值聚類的分類結果.下一步將根據分類結果計算RSSI 的精確值.
設定水平置信λ,將模糊C 均值聚類相似矩陣轉換為λ-Cut矩陣,將隸屬度矩陣轉化為布爾矩陣,根據布爾矩陣對RSSI 觀測值三元組進行分類.由于RSSI 信號干擾是隨機的小概率事件,所以選擇元素最多的聚類作為標準聚類來計算RSSI 的精確值.但有時受環境或噪聲影響,RSSI 信號分布比較分散,需要進一步判斷所選擇的標準聚類是否滿足計算RSSI 精確值的條件.
本文采用假設檢驗的方法對標準聚類進行檢驗和判斷,具體步驟如下:
假設Ai為標準聚類,為Ai的元素個數,分三種情況進行判斷:

a0是整體RSSI 元組的平均值,ξ-是聚類Ai中RSSI 元組的平均值,根據假設檢驗原理,我們建立原假設H0:-ξ=a0和備選假設H1:ξ-≠a0.拒絕域如公式(19)所示:

定義α 為顯著水平概率,我們得到公式(20):

其中,δ0為標準聚類的均方差,)是期望為0,均方差為1 的標準正態分布函數,于是我們得到公式(21)和公式(22):


根據實際需要設定合適的顯著水平概率 α(一般在0.05 ~0.1 之間),然后計算標準聚類 Ai的 RSSI 三元組平均值.如果落在拒絕域χ0中,那么Ai將被放棄并要求錨節點重新發送RSSI 信號.如果 沒有落在拒絕域χ0中,則標準聚類Ai可以用于計算RSSI 的精確值.確定使用標準聚類Ai后,根據模糊C 均值聚類算法得到的聚類中心,對RSSI 三元組進行加權計算.假設標準聚類Ai的聚類中心為vi:

Ai的RSSI 三元組所對應的矩陣為:

計算權值矩陣為:

得到未知節點接收的RSSI 信號三元組為:

4.3.1 參考點加權質心算法原理
利用得到的RSSI 三元組可以計算三個錨節點到未知節點的距離,再根據三個距離計算得到三個參考點,并利用加權質心定位算法計算未知節點的坐標.參考點加權質心定位算法分為兩步:
第1 步.計算三個參考點.
計算以錨節點M1為圓心,半徑為d1的定位圓上的參考點 D1(xr1,yr1),因為 D1(xr1,yr1)在以 M1為圓心且 d1為半徑的圓周上,即:

D1(xr1,yr1)到其他兩個錨節點M2,M3的距離:

D1(xr1,yr1)需要滿足的參考點條件見公式(31):

因為D1(xr1,yr1)應位于ΔM1M2M3內部,所以當參考點條件公式有多個解時,只保留位于ΔM1M2M3內部的解.可以通過兩個錨節點確定一條直線方程,參考點和另一個錨節點位于該直線同側的判定方法來得到符合條件的參考點.可以證明,在ΔM1M2M3內,滿足條件的參考點D1(xr1,yr1)有且只有一個.
利用同樣的方法,可以分別計算出M2為圓心d2為半徑,M3為圓心 d3為半徑上的參考點 D2(xr2,yr2)和 D3(xr3,yr3).
第2 步.加權質心定位.
根據加權質心定位算法計算未知節點的坐標:

4.3.2 參考點加權質心定位算法的優點
優點1.傳統的三邊質心定位算法或加權質心定位算法需要以錨節點為圓心的三個定位圓兩兩相交,形成內側3 個交點.但實際RSSI 測距過程中,由于信號脈沖噪聲干擾、測距誤差等原因,導致三個圓中只有兩個圓相交甚至三個圓都不相交的情況,這個時候將無法利用定位圓的內側交點對未知節點進行定位.如果此時利用三個錨節點的位置通過質心算法粗略計算未知節點的位置,將導致定位誤差很大.本文提出的參考點加權質心定位算法則無論三個定位圓是否兩兩相交,即無論三個定位圓的位置如何,都能夠計算出三個參考節點來對未知節點進行準確定位.
優點2.當三個定位圓兩兩相交時,計算的三個參考點在三個圓重疊部分的弧上,所組成的面積比傳統三邊質心定位算法使用的內側交點形成的定位范圍更小,因此對未知節點定位更準確,而且每個參考點在ΔM1M2M3內唯一.也可用同樣的方法證明三個定位圓非兩兩相交時,三個參考點均在ΔM1M2M3內且唯一(證法同下).
證明三個參考點在三個定位圓重疊區域的弧上且唯一的過程:
如圖3 所示,假設以M1為圓心d1為半徑的定位圓周上的參考點A,經計算有:

假設A 點移動到D2時:

假設A 點移動到D3時:

由于圓周外一點Q 與圓周中心M 的連線及延長線與該圓相交于兩點N1,N2,其中為Q 到圓周的距離最小值點,為距離最大值點,且Q 與圓上其它點N 的連線距離隨著N 沿著圓周軌跡運行過程中是單調遞增或遞減的(可以利用三角形三邊法則或函數極值算法證明).所以P21為 A 到 M2的距離的最小值點,從P21順時針移動到P31過程中,單調遞增.P31為A到M3距離的最小值點,從P21順時針移動到P31過程中,單調減小.所以弧D2D3(圓周上短弧,下同)上必有唯一一點A*滿足:

當A 從D3順時針移動到P31過程中,繼續單調遞增,繼續單調減小.此時:

同理,當A 從D2逆時針向P21移動時:

所以在P21順時針到P31這段弧上,滿足參考點條件公式的A 點有且只有一個,且位于弧D2D3上.A 就是我們所求的以M1為圓心d1為半徑定位圓上的參考點.同理可求得另外兩個參考點,且這兩個參考點位于弧D1D2和弧D1D3上.至此,ΔM1M2M3內唯一的三個參考點(xr1,yr1),(xr2,yr2),(xr3,yr3)已求得,且均位于區域SD1D2D3的三段弧上.證明畢.

圖3 參考點位置及唯一性證明Fig.3 Proof of reference node's position and uniqueness
仿真實驗采用5 個CC2530 ZigBee 無線傳輸模塊,其中一個作為未知節點,三個作為錨節點,一個作為網關通過RS232 串口線與上位機相連.未知節點、錨節點和網關節點采用TinyOS2 開發環境和Keil 編譯器編寫應用程序實現功能.三個錨節點向未知節點發送RSSI 信號,未知節點接收RSSI信號并存儲在寄存器中,再通過網關傳輸到上位機中利用定位算法對未知節點進行定位.RSSI 信號的噪聲模擬采用信噪比為-5,標準峰值為1 的隨機信號以一定概率γ 加載在RSSI 信號上生成噪聲信號.計算結果采用100 次測試數據的平均值.
采用定位誤差率判斷定位算法性能,即定位結果的絕對誤差與節點通信半徑的比值:

RSSI 測距誤差率由公式(40)計算,其中 dm為 RSSI 測距,d^ 為未知節點與錨節點的真實距離:

如圖4 所示,當未知節點和三個錨節點的距離相同的情況下(設置均為10m),每個錨節點每次向未知節點發射500個RSSI 信號,可組成500 個RSSI 信號觀測三元組.為驗證遺傳算法是否得到了模糊聚類最優C 值,仿真對最優C 值及鄰近值對應的模糊聚類計算的RSSI 測距平均誤差率進行了對比和分析.模糊C 均值聚類的C 值取值不同,對應的聚類結果及RSSI 測距誤差也不一樣.當C 值小于最優值時,無法對RSSI 的干擾信號進行有效排除,所以導致測距誤差率較大.當C 值在最優值附近時,RSSI 測距誤差率相差不大,但超過這個范圍,誤差率顯著增加.當C 值過大時,RSSI 測距誤差率產生了波動.這是因為當聚類數較多時,由于標準聚類的RSSI 樣本數量較少導致聚類中心偏移而使得測距誤差率增大并產生波動.所以本文采用遺傳優化算法可以得到模糊C 均值聚類數的最優值.

圖4 聚類個數對RSSI 測距的誤差的影響Fig.4 Influence of C value on RSSI ranging error
如圖5 所示,當未知節點和錨節點距離較小時(例如5m),基于RSSI 的平均值法和本文提出的模糊C 均值聚類法的測距誤差率相差不大.但隨著距離的增加,平均值法從10m開始誤差率就快速上升,而模糊C 均值聚類法的誤差率上升較慢,大約25m 起誤差率上升略有加快.說明模糊C 均值聚類法可以有效地消除小概率大干擾噪聲信號對RSSI 測距造成的影響.隨著距離的增加,兩種算法的誤差率差距逐漸增大,當距離為40m 時相差13 個百分點.如表2 所示,當三個錨節點在10m 處發射100 次RSSI進行定位,在可視距內設置相同障礙物的前提下,在不同噪聲概率γ 下,統計成功定位次數和定位誤差率.傳統三邊質心算法由于三個定位圓不滿足定位條件而出現無法對未知節點定位的情形,而且隨著噪聲概率γ 的增大,定位失敗的次數不斷增多.但改進的算法利用參考點加權質心算法成功地進行100 次定位,而且定位誤差率更低.這說明本文提出的改進算法的可靠性更好,定位精度更高.

圖5 兩種方法的RSSI 測距誤差率比較Fig.5 Comparison of RSSI ranging error rate

表2 定位性能比較Table 2 Comparison of localization performance

圖6 三種算法的定位誤差率比較Fig.6 Comparison of localization error rate of three algorithms
如圖6 所示,在噪聲和障礙物因素相同情況下,對傳統三邊質心算法、文獻[7]提出的聚類改進KMC+算法和本文提出的改進算法的定位誤差率進行了比較.三種算法定位誤差率都隨著未知節點和三個錨節點的距離增加而增大,但本文提出的改進算法的定位誤差率增加的最小.隨著距離的增加,RSSI 測距誤差也隨之增大,傳統三邊質心算法無法有效消除誤差而導致定位誤差率快速上升.而KMC+算法雖然對定位結果進行了聚類,但在基于RSSI 源數據處理和對每個聚類中心計算平均值進行定位過程中,無法有效消除小概率大干擾因素的影響,所以誤差率也隨距離的增加而較快上升.本文提出的基于量子粒子群優化的模糊C 均值聚類算法因為具有全局搜索能力,所以避免了局部極值解的出現,最終收斂于最優解.通過記錄歷史全局最優解,與最后得到的最優解進行比較來做出最終選擇,可以有效防止優化算法在最優解附近的抖動現象,進而可以計算得到RSSI 的準確值并提高定位精度.本文提出的改進算法與傳統三邊質心算法和KMC+算法在距離40m 內的定位誤差率平均相差10 個和4 個百分點,當間距為40m 時,分別相差17 個和7 個百分點.這說明改進算法通過得到相對準確的RSSI 值計算的未知節點和錨節點的距離更貼近真實值,再利用參考點加權質心算法減小定位區域,有效減小定位誤差率并提高定位精度.
節點定位技術是無線傳感器網絡的研究重點之一.本文針對傳統三邊質心定位算法定位精度較低的缺點,提出了基于模糊C 均值聚類的參考點加權質心算法.仿真結果表明,改進算法的RSSI 測距誤差更小,定位精度更高,彌補了傳統三邊質心定位算法的不足.此外,改進算法沒有更多硬件需求,只是在原有算法的基礎上增加了一些計算量,能較好地適應WSN 低成本與低功耗的要求,是一種較優的三邊定位方案.雖然三邊定位算法簡單,對硬件要求小,且易于部署和應用,但該算法對每一個錨節點的依賴度很高,如果其中一個錨節點失效,將對定位精度造成極大影響,所以如何識別失效錨節點并有效對定位結果進行修正和優化將是今后研究的重點.