孟偉峰,呂瑞騰,孔 雨,楊子祥
(山東省天安礦業(yè)有限公司,山東 曲阜 273155)
本文選用三種現(xiàn)行的定位算法進(jìn)行仿真比較。
假設(shè)n個錨節(jié)點的坐標(biāo)分別為b1(x1,y1),b2(x2,y2),b3(x3,y3)…bn(xn,yn),各錨節(jié)點到未知節(jié)點的 a的距離分別為 d1,d2,d3…dn,假設(shè)節(jié)點 a 的坐標(biāo)為 。
節(jié)點間的定位測距是通過接收信號強(qiáng)度指示(RSSI)來計算的,首先選定無線電傳播路徑損耗,在此基礎(chǔ)上獲得相對精確的測量距離。本文選用自由空間傳播模型和對數(shù)-正態(tài)分布模型來進(jìn)行分析。自由空間傳播模型為:
式中:d為節(jié)點距離(km);f為頻率(MHz);k為路徑衰減因子,其范圍在2~5之間。信號衰減采用對數(shù)距離衰減模型:
式中:PL(d)為經(jīng)過距離d后的路徑損耗(dB);PL(d0)是參考距離d0的接收信號強(qiáng)度;Xσ為平均值為0的正態(tài)分布隨機(jī)變數(shù),標(biāo)準(zhǔn)差范圍為2~5;
即可解得D的坐標(biāo)為:
解線性方程得:AX=b,其中 X=[x,y]T且:
解得節(jié)點D的坐標(biāo)為:
圖1 最大似然估計定位算法原理圖
該算法假設(shè)b0(x0,y0)為距離目標(biāo)節(jié)點最近的錨節(jié)點,設(shè)其為差分參考節(jié)點。b0到各錨節(jié)點的實際距離分別為 d01,d02,…,don;a 到各錨節(jié)點的差分測量距離分別為 d1,d2,…,dn。
定義1參考節(jié)點RSSI個體差異修正系數(shù)為:
定義2目標(biāo)節(jié)點到第i個錨節(jié)點的距離差分系數(shù)為:
式中:λ為比例調(diào)整因子;ρi表示當(dāng)前環(huán)境下依RSSI進(jìn)行測距偏差程度的映射關(guān)系。
定義3目標(biāo)節(jié)點到第i個錨節(jié)點的距離差分方程為
式中:di為目標(biāo)節(jié)點到第i錨節(jié)點的修正距離;參考節(jié)點測量距離誤差為e0i=d'0i-d0i;將式(10)代入式(7),即可求得目標(biāo)節(jié)點的差分修正最大似然估計坐標(biāo)。
2.1.1 仿真假設(shè)
本文利用MATLAB對以上算法進(jìn)行數(shù)學(xué)仿真,以便系統(tǒng)分析各算法定位效果。為方便仿真的進(jìn)行,現(xiàn)假設(shè)如下:
1)所有節(jié)點的發(fā)射功率P、天線增益G都相同;
2)所有節(jié)點的信號頻率均為2.4GHz,信號覆蓋半徑均為200m;
3)只考慮信號單跳傳播方式;
4)的標(biāo)準(zhǔn)差為 5,且 k=3.2;
5)在100m×100m的二維區(qū)域內(nèi)隨機(jī)分布著3個未知節(jié)點和5個錨節(jié)點;
6)比例調(diào)節(jié)因子λ取0.1。
2.1.2 建立節(jié)點分布模型
通過MATLAB建立一個100×100的區(qū)域,并隨機(jī)分布節(jié)點。
程序1①
a=100*rand(3,2)
b=100*rand(5,2)
global a,b;
2.1.3 距離與損耗的仿真
仿真出路徑與損耗的關(guān)系模型。假設(shè)d0=lm,根據(jù)公式(1)可求出Loss即PL(d0)的值,代入公式(2)可得到傳輸距離d與功率損耗p的關(guān)系方程及曲線。
程序2
可得到傳輸距離d與路徑損耗p的關(guān)系曲線。
這里的距離d即為信號傳輸?shù)膶嶋H距離,路徑損耗越小RSSI越大。因此,可以得到傳輸距離與RSSI的關(guān)系。
2.1.4 測量距離的仿真
節(jié)點的測距是由對RSSI的分析得出的。我們可以通過對路徑損耗的計算分析得出實際距離對應(yīng)的測量距離。
首先,根據(jù)程序1產(chǎn)生的節(jié)點實際坐標(biāo)求出各節(jié)點間的實際距離。
程序3
x1=a(2,1);
y1=a(2,2);
d1=sqrt((x1-b(1,1))^2+(y1-b(1,2))^2)
以目標(biāo)節(jié)點a2(60.6843,76.2097)為例,可求出α2到各錨節(jié)點的實際距離。
為實現(xiàn)對節(jié)點測距的仿真,我們做出以下分析:各個節(jié)點內(nèi)都存有大量的RSSI值及相應(yīng)的路徑距離的數(shù)據(jù)庫,我們試圖通過將實際距離d經(jīng)過處理得到測量距離。
將d代入公式(1)可以得到路徑損耗值PL(d),將d=1代入公式(1)可以得到PL(d0),將二者代入公式(2)即可求得節(jié)點間定位的測量距離。
程序4
d=d1;
l=32.4+10*3.2*log10 (1/1000)+10*3.2*log10(2.4*1000);
p=32.4+10*3.2*log10 (d/1000)+10*3.2*log10(2.4*1000);
dd1=10^((p-2*randn-l)/(10*3.2))
即可求出目標(biāo)節(jié)點到各錨節(jié)點的測量距離。
2.1.5 三邊算法仿真
在此次定位中共有5個錨節(jié)點參與,隨機(jī)抽取三個錨節(jié)點組成三邊定位模型來計算目標(biāo)節(jié)點坐標(biāo)。
程序5
改變參與定位的錨節(jié)點即可得到十組三邊定位結(jié)果,將結(jié)果放入名為BL的矩陣中備用。2.1.6 最大似然估計仿真
最大似然估計涉及到公式(7),使用標(biāo)準(zhǔn)的最小均方差估計方法可得到較為精確的定位結(jié)果。
程序6
進(jìn)行五次仿真計算,將定位結(jié)果存入矩陣BM中。
2.1.7 基于RSSI的最大似然估計算法仿真
該算法的實現(xiàn)主要分為以下幾步:
(1)根據(jù)目標(biāo)節(jié)點到各錨節(jié)點的測量距離選出差分參考節(jié)點。
根據(jù)程序4可以看出錨節(jié)點b2到目標(biāo)節(jié)點a2的測量距離最小,故選定錨節(jié)點b2為差分參考節(jié)點。
首先,通過程序3求出b2到各錨節(jié)點的實際距離。
其次,通過程序4求出b2到各錨節(jié)點的測量距離。
(2)基于公式(8)和(9)建立距離差分模型。并根據(jù)公式(10)對目標(biāo)節(jié)點到各錨節(jié)點的距離進(jìn)行差分修正。
程序7
a1=(D01-d01)/D01;
a0=(a1+a3+a4+a5)/4;
r=0.1;
p1=r*exp(1-(D1/(D01*(1-a0))));
E1=D01-d01;
dc1=D1-p1*E1
dc2=dd2
global dc1 dc2
運行上述程序,可以得到目標(biāo)節(jié)點到各錨節(jié)點的差分修正距離。
(3)將差分修正距離代入最大似然估計算法模型即程序6可得差分似然估計坐標(biāo)。
將多次仿真得到的五組定位結(jié)果存入矩陣BN中。
為了對定位結(jié)果進(jìn)行全面的分析,我們選取定位精度、穩(wěn)定度及兩個方面來比較。對定位結(jié)果的橫縱坐標(biāo)分別求取平均值和方差。平均值距目標(biāo)節(jié)點的距離即為定位偏差。
程序8
bm=[(BM(1,1)+BM(2,1)+BM(3,1)+BM(4,1)+BM(5,1))/5,...
(BM(1,2)+BM(2,2)+BM(3,2)+BM(4,2)+BM(5,2))/5];
Rbm=sqrt((60.6843-bm(1,1))^2+(76.2097-bm(1,2))^2);
經(jīng)過仿真計算我們可以得到以下結(jié)果:
表1 三種定位算法仿真結(jié)果分析(單位:米,保留兩位小數(shù))
從表1中,我們不難看出第三種計算法由于在計算的過程中考慮了對測量誤差的修正,因而在仿真中展示了優(yōu)良的定位精確性。
在下面的圖形中這種誤差對比將更為明顯。
程序9
c=0:pi/20:2*pi;
r=1.8;
x=a(2,1)+r*cos(c);
y=a(2,2)+r*sin(c);
圖2 定位誤差分析圖
我們發(fā)現(xiàn)第三種算法的定位方差比第二種算法稍大,這也就表明RSSI算法的引入有可能會增大定位結(jié)果的離散程度,但即便如此定位精度仍然得到了很大提高。
現(xiàn)在我們從數(shù)學(xué)算法上進(jìn)行分析:
三邊定位算法中公式(1.4)的矩陣必需為方矩陣,這種算法在應(yīng)用中會遇到很多限制,某些情況下會出現(xiàn)較大誤差。多次運算求平均也會帶來許多額外的開銷。
最大似然估計算法則無需考慮矩陣的維數(shù)??梢岳帽M可能多的錨節(jié)點來進(jìn)行運算。并且簡化了多次運算求平均的步驟,減小了計算開銷。由于算法未引入過多模型,故定位穩(wěn)定性較好。
基于RSSI的最大似然估計算法中,我們可以從程序上清晰的看到定位計算的整個過程。這種算法得出的結(jié)果精度更高,并未犧牲過多穩(wěn)定性,而且運算開銷較低。
本文針對現(xiàn)行定位算法,利用MATLAB進(jìn)行建模仿真,從精確性及穩(wěn)定性對定位結(jié)果進(jìn)行了分析,得出了直觀的定位效果圖。最后又從數(shù)學(xué)角度,分析了各種算法的優(yōu)缺點,進(jìn)而預(yù)測了各種算法帶來的節(jié)點運算開銷大小。希望對開發(fā)人員有所幫助。