一種基于溫度感知的無線傳感器網(wǎng)絡(luò)時間同步方法
【專利摘要】本發(fā)明公開了一種基于溫度感知的無線傳感器網(wǎng)絡(luò)時間同步方法,該方法包括的步驟有:敏感度因子確定、敏感度因子間隔確定、本地時間更新。本算法在頻偏估計時考慮到了節(jié)點(diǎn)當(dāng)前環(huán)境溫度變化對節(jié)點(diǎn)頻偏造成的影響,提高了頻偏估計的精度。同時,由于該算法在時間同步的過程中主要依賴本地信息,大大減少了信息傳輸次數(shù),從而很大程度上降低了能耗,并且減少了由信息逐層傳輸帶來的誤差累積。最后,由于該算法對信息傳輸?shù)囊蕾囕^低,從而解決了野外環(huán)境下由于惡劣天氣以及節(jié)點(diǎn)位置動態(tài)變化等造成的通信不穩(wěn)定的問題。
【專利說明】一種基于溫度感知的無線傳感器網(wǎng)絡(luò)時間同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及無線網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,具體涉及一種基于溫度感知的無線傳感器網(wǎng)絡(luò)的時間同步方法,該方法適用于野生動物監(jiān)測、土遺址監(jiān)測等大規(guī)模區(qū)域監(jiān)測無線傳感器網(wǎng)絡(luò)應(yīng)用。
【背景技術(shù)】
[0002]作為無線傳感器網(wǎng)絡(luò)的一項重要支撐技術(shù),時間同步得到了廣泛的應(yīng)用,如數(shù)據(jù)融合技術(shù)、休眠調(diào)度技術(shù)、基于TOA的定位技術(shù)以及目標(biāo)追蹤等都需要全網(wǎng)節(jié)點(diǎn)保持時間同步。在大規(guī)模的傳感器網(wǎng)絡(luò)中,網(wǎng)絡(luò)節(jié)點(diǎn)眾多,且節(jié)點(diǎn)的能量,處理能力,帶寬等相對有限,網(wǎng)絡(luò)環(huán)境相對惡劣,因此,這就要求傳感器網(wǎng)絡(luò)時間同步算法具有低通信開銷、低計算復(fù)雜度、良好的擴(kuò)展性和魯棒性等特點(diǎn)。
[0003]在進(jìn)行大規(guī)模監(jiān)測(如野生動物,土遺址等)過程中,來自不同傳感器的不同數(shù)據(jù)(文字?jǐn)?shù)據(jù),聲音數(shù)據(jù),視頻數(shù)據(jù)等)需要被組合起來,并通過一系列的統(tǒng)計以及分析,最終得到有效的環(huán)境信息并且推測出有可能發(fā)生的事件。在對多種數(shù)據(jù)進(jìn)行融合的過程中,需要采集數(shù)據(jù)的各個節(jié)點(diǎn)的時間同步,否則會得到錯誤的時間信息,最終導(dǎo)致錯誤的分析結(jié)果。除此之外,由于傳感器網(wǎng)絡(luò)能量受限的特點(diǎn),節(jié)點(diǎn)需要進(jìn)行周期性的休眠來降低能耗。這就需要全網(wǎng)的節(jié)點(diǎn)按照一個特定的規(guī)律來調(diào)節(jié)自己的休眠周期,從而保證數(shù)據(jù)的正確傳輸。然而,節(jié)點(diǎn)間時間的不同步將會導(dǎo)致節(jié)點(diǎn)在錯誤的時間進(jìn)行休眠,從而影響數(shù)據(jù)傳輸成功率?,F(xiàn)有技術(shù)中,為了保證全網(wǎng)節(jié)點(diǎn)之間的時間同步,在無線傳感器網(wǎng)絡(luò)中已經(jīng)有許多時間同步策略:
[0004]第一類:基于數(shù)據(jù)包交換的時間同步方法
[0005]該方法首先通過節(jié)點(diǎn)間時間戳的交換來進(jìn)行一對節(jié)點(diǎn)間的時間同步,再通過網(wǎng)絡(luò)分層的方法進(jìn)行逐層同步,最終達(dá)到全網(wǎng)的時間同步。該方法存在三方面缺陷:1)由于該方法是利用頻繁的時間戳交換來進(jìn)行時間同步的,因此會引入大量的通信開銷。在無線傳感器網(wǎng)絡(luò)中,通信開銷在總開銷中所占比例遠(yuǎn)高于計算開銷和數(shù)據(jù)采集帶來的開銷,因此該方法會造成節(jié)點(diǎn)能量的大量流失。2)由于時間戳在網(wǎng)絡(luò)中是逐層傳輸?shù)?,因此會造成誤差累積,從而影響時間同步精度。3)由于傳感器網(wǎng)絡(luò)中使用的是廉價晶振,該晶振易受到溫度、電壓、震動等工作環(huán)境的影響,而該方法并沒有考慮到這一點(diǎn)。
[0006]第二類:基于外部周期性信號的時間同步方法
[0007]在這種方法中,全網(wǎng)所有節(jié)點(diǎn)都根據(jù)一個統(tǒng)一的周期性信號來調(diào)整自己的時鐘頻率。這種周期性信號包括:wifi信號,廣播信號,日光的發(fā)出的光信號等等。該方法在同步過程中主要依賴于本地信息,很大程度上減少了時間戳的交換,降低了能耗,減少了誤差累積。該方法存在的缺陷有:1)對環(huán)境有一定的限制,該類方法不適用與各種信號無法到達(dá)的野外環(huán)境。而且根據(jù)日光燈進(jìn)行同步的方法要求傳感器網(wǎng)絡(luò)必須工作在室內(nèi)環(huán)境。2)WIFI信號和廣播信號需要額外的硬件設(shè)備進(jìn)行接收,這種設(shè)備不僅提高了經(jīng)濟(jì)開銷,而且需要高能耗支撐,不適用于大規(guī)模部署。3)這種方法同樣沒有考慮到工作環(huán)境對廉價晶振的影響。
【發(fā)明內(nèi)容】
[0008]工作在大規(guī)模野外環(huán)境下的傳感器網(wǎng)絡(luò)時間同步方法與通常環(huán)境下的方法有著顯著的不同,針對現(xiàn)有同步方法不能適用于大規(guī)模網(wǎng)絡(luò)的現(xiàn)狀,本發(fā)明提出一種基于溫度感知的無線傳感器網(wǎng)絡(luò)時間同步方法,使得同步過程在野外大規(guī)模環(huán)境下依然能夠達(dá)到高精度以及低能耗的要求。
[0009]為了實(shí)現(xiàn)上述任務(wù),本發(fā)明采用的技術(shù)方案是:
[0010]一種基于溫度感知的無線傳感器網(wǎng)絡(luò)時間同步方法,包括以下步驟:
[0011]記R為無線傳感器網(wǎng)絡(luò)中的參考節(jié)點(diǎn),N為除參考節(jié)點(diǎn)之外的任意一個傳感器節(jié)點(diǎn),網(wǎng)絡(luò)初始化后,節(jié)點(diǎn)N重復(fù)執(zhí)行以下周期,該周期包括步驟一至步驟三:
[0012]步驟一,敏感度因子確定
[0013]步驟S10,節(jié)點(diǎn)N向參考節(jié)點(diǎn)R發(fā)送時間同步請求數(shù)據(jù)包;
[0014]步驟S11,節(jié)點(diǎn)R在收到時間同步請求數(shù)據(jù)包后,向節(jié)點(diǎn)N依次返回四個應(yīng)答數(shù)據(jù)包眞,M1, M2, M3,每個數(shù)據(jù)包中記錄發(fā)送該數(shù)據(jù)包時時刻節(jié)點(diǎn)R的本地時間,分別為time (R)。?time (R)3 ;M0與M” M2與M3間隔時間均為Is 與M2間隔時間為1min ;
[0015]步驟S12,節(jié)點(diǎn)N在接收到數(shù)據(jù)包Mtl?M3的同時,記錄自己的本地時間time。?time3以及節(jié)點(diǎn)N當(dāng)前所處的環(huán)境溫度temp。?temp3 ;
[0016]步驟S13,節(jié)點(diǎn)N對其在Ume1以及time3的頻偏Skew1以及skew3進(jìn)行計算:
J skew\ = (time' -timeiR)^) — Uime0 —time(R)0)
[0017]= —timeiR)x) — {time2 —time{R)2)(么式丄)
[0018]步驟S14,節(jié)點(diǎn)N根據(jù)頻偏及溫度信息對當(dāng)前敏感度因子TSF值進(jìn)行計算:
^ ^skew, - skew,
[0019]TSF = ~^-r一~-τ一~^(公式 2)
(ICmpii — Iemp) -(Iemph — Icmp)
τIemp^ + temp, ^temp, + (emp,,
[0020]公式2中,丁穩(wěn)!\丨=~—2-^= ~Temp為標(biāo)準(zhǔn)溫度,取值為 25 0C ;
[0021]步驟二,敏感度因子間隔確定
[0022]步驟S20,節(jié)點(diǎn)N獲取此刻所處環(huán)境溫度T1,節(jié)點(diǎn)N上一周期該時刻所處環(huán)境溫度為Tp,e,則節(jié)點(diǎn)N的溫度變化率DT為:
[0023]DT = 7' Tpn'(公式 3)
(I
pre
[0024]公式3中,dpre為上一周期步驟S22獲得的敏感度因子間隔d的值;
[0025]步驟S21,節(jié)點(diǎn)N計算當(dāng)前累積誤差值error:
[0026]error = (^-Ume(R),) +(time,-Ume(R)2)(公式幻
2
[0027]步驟S22,節(jié)點(diǎn)N對敏感度因子間隔d進(jìn)行設(shè)定,方法為:
[0028]d =(公式 5)
error IJl
[0029]公式5 中,μ = 150 ?900 μ S,λ = 0.6 ?1.4°C,dstd = 20min ;
[0030]步驟S23,節(jié)點(diǎn)N設(shè)置當(dāng)前頻偏值skew為skew3,Λ t時長后轉(zhuǎn)入步驟S31,100s< At < 10000s ;
[0031]步驟三,本地時間更新
[0032]步驟S30,節(jié)點(diǎn)N獲取其此刻所處環(huán)境溫度T2,根據(jù)步驟S14計算的敏感度因子TSF對節(jié)點(diǎn)當(dāng)前頻偏進(jìn)行計算:
[0033]skew = TSF.(T-Temp)2(公式 6)
[0034]步驟S31,節(jié)點(diǎn)N計算當(dāng)前的相偏:.v/ccnt' +.v/fevv,
[0035]offset = ofjsetpn, + At.---—(公式 7)
[0036]公式7中,Skewltte為上一周期步驟S23或步驟S30獲得的當(dāng)前頻偏值,Offsetpre為上一周期步驟S31計算出的當(dāng)前相偏值;
[0037]步驟S32,若節(jié)點(diǎn)N的當(dāng)前相偏滿足:
[0038]offset > I(公式 8)
[0039]則節(jié)點(diǎn)N對自身本地時間進(jìn)行更新,更新后的本地時間clock為:
[0040]clock = clockpre+offset(公式 9)
[0041]在公式8和公式9中,ε為本地時鐘周期,clockpre為更新前的本地時間;更新完畢后,節(jié)點(diǎn)N將Offsetltte清零;
[0042]步驟S33,節(jié)點(diǎn)N查看計時器,若時長d未到時,則休眠At時長后轉(zhuǎn)至步驟S30 ;否則,完成本周期,轉(zhuǎn)入步驟SlO開始執(zhí)行下一周期。
[0043]本發(fā)明與現(xiàn)有技術(shù)相比有以下的技術(shù)優(yōu)點(diǎn):
[0044]1.降低了能耗;
[0045]首先,由于節(jié)點(diǎn)在進(jìn)行同步的過程中主要依賴于本地信息進(jìn)行時鐘頻偏的估計以及本地時鐘的更新,很大程度上減少了通信開銷。
[0046]其次,由于節(jié)點(diǎn)是根據(jù)其環(huán)境溫度信息來進(jìn)行時間同步的,而溫度的獲取不需要借助額外的硬件設(shè)備,僅需要溫度傳感器,因此,減少了信號接收能耗。
[0047]2.提聞了同步精度;
[0048]首先,節(jié)點(diǎn)在進(jìn)行同步的過程中考慮到了工作環(huán)境(溫度)對節(jié)點(diǎn)晶振的影響,并對此影響進(jìn)行了補(bǔ)償,因此能夠避免由于溫度造成的頻偏變化,從而降低了時鐘相偏的累積。
[0049]其次,由于該時間同步方法基本不需要時間戳的逐層傳遞,因此降低了同步誤差的累積。
[0050]3.提高了魯棒性
[0051]同樣,由于節(jié)點(diǎn)在進(jìn)行時間同步的過程中主要依賴本地信息,而不是時間戳的交換,因此,該方法對通信條件的要求較低。當(dāng)節(jié)點(diǎn)的通信設(shè)備出現(xiàn)異常無法工作,或是在網(wǎng)絡(luò)節(jié)點(diǎn)位置動態(tài)變化,無法與參考節(jié)點(diǎn)保持通信的情況下,節(jié)點(diǎn)能夠根據(jù)本地的電壓信息進(jìn)行時間同步,因此提高了魯棒性。
【專利附圖】
【附圖說明】
[0052]圖1是本發(fā)明方法的流程圖;
[0053]圖2是“溫度_頻偏”關(guān)系不意圖;
[0054]圖3是頻偏相偏估計過程以及溫度敏感度因子TSF估計過程周期關(guān)系示意圖;
[0055]圖4是仿真實(shí)驗?zāi)M溫度變化示意圖;
[0056]圖5是精度控制參數(shù)μ對再λ同步間隔和時間戳交換次數(shù)的影響以及μ的最優(yōu)值確定實(shí)驗結(jié)果圖;
[0057]圖6是溫度調(diào)節(jié)因子λ對TSF估計間隔和時間戳交換次數(shù)的影響以及λ的最優(yōu)值確定實(shí)驗結(jié)果圖;
[0058]圖7是動態(tài)周期TSFB算法、固定周期TSFB算法以及EACS算法頻偏估計精度對比實(shí)驗結(jié)果圖;
[0059]圖8 (a)是不同精度控制參數(shù)μ取值下TSFB算法與FTSP算法能耗對比實(shí)驗結(jié)果圖;
[0060]圖8 (b)是不同溫度調(diào)節(jié)因子λ取值下TSFB算法與FTSP算法能耗對比實(shí)驗結(jié)果圖;
[0061]圖9是TSFB算法與FTSP算法魯棒性對比實(shí)驗結(jié)果圖;
【具體實(shí)施方式】
[0062] 申請人:在野生動物監(jiān)測、土遺址監(jiān)測等大規(guī)模監(jiān)測中,為了保證休眠調(diào)度過程的順利進(jìn)行,以及保證數(shù)據(jù)融合階段數(shù)據(jù)處理結(jié)果的正確性,需要建立高精度且低能耗的時間同步策略。而大規(guī)模野外環(huán)境與普通網(wǎng)絡(luò)環(huán)境相比存在兩個問題:1)網(wǎng)絡(luò)規(guī)模大,導(dǎo)致節(jié)點(diǎn)通信能耗以及時間同步累積誤差迅速增大;2)環(huán)境動態(tài)變化,導(dǎo)致節(jié)點(diǎn)之間的通信情況不穩(wěn)定,不能保持持續(xù)的正常通信。
[0063]針對現(xiàn)有時間同步方法不適用于大規(guī)模野外環(huán)境的現(xiàn)狀,本發(fā)明提出一種基于溫度感知的傳感器網(wǎng)絡(luò)的時間同步方法,利用節(jié)點(diǎn)時鐘頻偏與溫度的高度相關(guān)性(如圖2所示)進(jìn)行時間同步,使得時間同步算法在這種特殊的網(wǎng)絡(luò)條件下仍然能夠做到高精度、低能耗以及聞魯棒性。
[0064]本發(fā)明需要在傳感器節(jié)點(diǎn)進(jìn)行時間同步的過程中周期性的對其敏感度因子TSF進(jìn)行估計以及更新。這里的敏感度因子TSF表示節(jié)點(diǎn)對其所處環(huán)境溫度變化的敏感程度。在每兩次TSF估計的間隔時段,節(jié)點(diǎn)根據(jù)其所處環(huán)境溫度值以及當(dāng)前TSF估計值進(jìn)行頻偏的估計及補(bǔ)償。這里的頻偏指的每一個節(jié)點(diǎn)相對于同一個參考節(jié)點(diǎn)的頻偏。同時,節(jié)點(diǎn)根據(jù)估計誤差的累積以及溫度變化情況,可對節(jié)點(diǎn)執(zhí)行TSF估計間隔的調(diào)節(jié),以此達(dá)到能量消耗與估計精度的平衡。
[0065]一、本發(fā)明方法詳細(xì)步驟
[0066]本發(fā)明提出一種基于溫度感知的無線傳感器網(wǎng)絡(luò)的時間同步方法,該方法在同步過程中根據(jù)本地溫度值以及敏感度因子TSF不斷修正節(jié)點(diǎn)的時鐘頻偏,以及對時鐘相偏進(jìn)行補(bǔ)償,同時,根據(jù)誤差的累積狀況以及溫度變化狀況周期性的進(jìn)行敏感度因子TSF估計及更新。如圖1所示,該方法包括以下步驟:
[0067]一種基于溫度感知的無線傳感器網(wǎng)絡(luò)時間同步方法,該方利用無線傳感器的溫度與頻偏之間的關(guān)系進(jìn)行時間同步,包括以下步驟:
[0068]記R為無線傳感器網(wǎng)絡(luò)中的參考節(jié)點(diǎn),N為除參考節(jié)點(diǎn)之外的任意一個傳感器節(jié)點(diǎn),網(wǎng)絡(luò)初始化后,節(jié)點(diǎn)N重復(fù)執(zhí)行以下周期,即所有節(jié)點(diǎn)均不斷重復(fù)按照周期執(zhí)行;時間同步過程是伴隨著整個網(wǎng)絡(luò)的運(yùn)行而進(jìn)行的,只要網(wǎng)絡(luò)生命周期沒有結(jié)束,時間同步過程就會不停的周期性的進(jìn)行下去;周期循環(huán)過程如圖3所示,該周期包括步驟一至步驟三:
[0069]步驟一,敏感度因子確定
[0070]為了使節(jié)點(diǎn)在同步過程中能夠及時地根據(jù)當(dāng)前溫度對時間頻偏進(jìn)行補(bǔ)償,在在無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行時間同步的過程中需要周期性的對其敏感度因子TSF進(jìn)行估計以及更新。TSF的估計主要依賴于在估計過程中節(jié)點(diǎn)溫度的變化量以及相應(yīng)的頻偏變化量。節(jié)點(diǎn)為了獲取其頻偏信息,需要通過與參考節(jié)點(diǎn)R進(jìn)行時間戳交換;這里的參考節(jié)點(diǎn)為一個標(biāo)準(zhǔn)節(jié)點(diǎn),在部署前確定,可以為一個普通節(jié)點(diǎn),也可以為一個基站;全網(wǎng)節(jié)點(diǎn)以參考節(jié)點(diǎn)的時間為標(biāo)注進(jìn)行時間同步:這里以傳感器網(wǎng)絡(luò)中除了標(biāo)準(zhǔn)節(jié)點(diǎn)之外的任意一個節(jié)點(diǎn)N為例:
[0071]步驟S10,節(jié)點(diǎn)N向參考節(jié)點(diǎn)R發(fā)送時間同步請求數(shù)據(jù)包,告知參考節(jié)點(diǎn)需要進(jìn)行同步過程;
[0072]步驟S11,節(jié)點(diǎn)R在收到時間同步請求數(shù)據(jù)包后,向節(jié)點(diǎn)N依次返回四個應(yīng)答數(shù)據(jù)包眞,M1, M2, M3,每個數(shù)據(jù)包中記錄發(fā)送該數(shù)據(jù)包時時刻節(jié)點(diǎn)R的本地時間,分別為t ime (R)。?t ime (R) 3 ;(例如,Mtl中包含節(jié)點(diǎn)R發(fā)送Mtl的時間:time (R) 0) M。與M1、M2與M3間隔時間均為Is -M1與M2間隔時間為1min ;
[0073]步驟S12,為獲得節(jié)點(diǎn)自身時間與參考節(jié)點(diǎn)R之間的時間差,節(jié)點(diǎn)N在接收到數(shù)據(jù)包Mtl?M3的同時,記錄自己的本地時間time。?time3以及節(jié)點(diǎn)N當(dāng)前所處的環(huán)境溫度temp0?temp3(即一個數(shù)據(jù)包對應(yīng)一個時間值和一個溫度值,如接收到數(shù)據(jù)包Mtl時,記錄此時的本地時間Umetl和環(huán)境溫度temp);這里的溫度信息由溫度傳感器獲得,主要用于敏感度因子估計周期內(nèi)溫度變化量的測量;
[0074]步驟S13,節(jié)點(diǎn)N根據(jù)數(shù)據(jù)包M0?M3中的信息以及自己的本地時間信息time。?time3對其在Ume1以及time3的頻偏Skew1以及skew3進(jìn)行計算,計算方法為:
Iskew] = (time.-1ime(R)i)~(time{)-time(R){))
5 j skew, - (time, -,) - (time2 - time{R)2)么工
[0076]步驟S14,節(jié)點(diǎn)N根據(jù)頻偏及溫度信息對其當(dāng)前敏感度因子TSF值進(jìn)行計算,計算公式為:
skcn\ - skew,.
[0077]^ — (Tempa - Temp)2 -(Temph-Temp)2(公式 2)
[0078]公式2中,由于temp。和temp^ temp2和temp3的采集時間較為接近(間隔Is),因此用這段時間內(nèi)的平均溫度Tempa和Tempb進(jìn)行敏感度因子TSF的估計,即τ Iempn + temp, ^temp, + lemp..7emP,, =-^-- Tcmlh =--^- Temp 為標(biāo)準(zhǔn)溫度,取值為 25°C ;
J,
[0079]步驟二,敏感度因子間隔確定
[0080]由于節(jié)點(diǎn)頻偏的變化情況會隨著溫度的變化速率而不同,在溫度變化較明顯的時候,節(jié)點(diǎn)的頻偏變化也會較為明顯,此時為了保證同步的精度,需要縮短敏感度因子TSF的估計周期,從而能夠保證較高的同步精度。而在溫度較為平穩(wěn)的時候,節(jié)點(diǎn)的頻偏幾乎不變,此時為了降低通信開銷,需要延長敏感度因子TSF的估計周期。因此,敏感度因子間隔的確定需要依賴于溫度的變化速率以及誤差的累積情況:
[0081]步驟S20,計算溫度變化率DT:節(jié)點(diǎn)N獲得其當(dāng)前所處環(huán)境溫度T1,節(jié)點(diǎn)N上一周期該時刻所處環(huán)境溫度為TPM,則節(jié)點(diǎn)N的溫度變化率DT為:
[0082]DT ='(公式 3)
dP,;
[0083]公式3中,dpre為上一周期步驟S22獲得的敏感度因子間隔d的值;注:由于本方案在網(wǎng)絡(luò)初始化后是不斷循環(huán)重復(fù)執(zhí)行的,而一個周期的參數(shù)計算要依賴于上一個周期的參數(shù)值,如公式3中計算溫度變化率DT時,就需要上一個周期的環(huán)境溫度和敏感度因子間隔。即,如本周期當(dāng)前所處環(huán)境溫度為T1,則T1就作為下一個周期計算DT參數(shù)時的TPM,本周期的敏感度因子間隔d作為下一個周期的dpM,其他參數(shù)以此類推;而網(wǎng)絡(luò)初始化后第一次計算參數(shù),需要上一個周期的參數(shù)值時,隨機(jī)設(shè)置一個上周期參數(shù)值,用于當(dāng)前參數(shù)計算,而在以后的周期可不斷對前面周期的參數(shù)進(jìn)行修正。
[0084]步驟S21,節(jié)點(diǎn)N計算當(dāng)前累積誤差值error:
(time, -time(R),) + (time-,-time(R),)
[0085]ti I (Ji =-:---=-—(公式 4)
2
[0086]在公式4中,節(jié)點(diǎn)N根據(jù)最后兩次與參考節(jié)點(diǎn)的時間戳交換結(jié)果time3與time (R) 3之差以及time2與time (R)2之差的均值對當(dāng)前誤差進(jìn)行估計;
[0087]步驟S22,節(jié)點(diǎn)N根據(jù)步驟S21以及步驟S20的結(jié)果對敏感度因子間隔d進(jìn)行設(shè)定,并從此刻開始計時,d的計算公式如下:
" λ
[0088]d = min?ft/--, (1、,,, ~)(公式 5)
error Dl
[0089]公式5中,μ和λ分別為誤差控制因子以及溫度調(diào)節(jié)因子,取值為:μ = 150?900 μ s, λ = 0.6?L 4°C ;根據(jù)實(shí)驗一、實(shí)驗二的結(jié)果,當(dāng)μ = 300us, λ =1°C時,本方法性能最優(yōu);dstd為標(biāo)準(zhǔn)間隔,通常取dstd = 20min ;
[0090]從公式5可以看出,當(dāng)節(jié)點(diǎn)周圍環(huán)境溫度變化量增大或節(jié)點(diǎn)同步誤差升高時,TSF估計間隔會相應(yīng)的縮短來保證同步精度,反之,間隔會增大來降低通信開銷;
[0091]步驟23,為方便之后的相偏估計過程,節(jié)點(diǎn)N設(shè)置當(dāng)前頻偏值skew為skew3, At時長后轉(zhuǎn)入步驟S31,這里At為時間估計間隔;At滿足10s < At < 10000s,即網(wǎng)絡(luò)設(shè)置時,只要在此范圍內(nèi)選擇一個At均滿足本方案要求;
[0092]步驟三,本地時間更新
[0093]節(jié)點(diǎn)N在對其溫度敏感因子TSF以及敏感度因子間隔d進(jìn)行更新之后,轉(zhuǎn)入本地時間更新過程,該過程中的時鐘頻偏估計主要依賴于步驟一中獲得的溫度敏感度因子TSF以及節(jié)點(diǎn)當(dāng)前環(huán)境溫度,時間更新過程的時長為d。
[0094]步驟S30,為了對時鐘頻偏skew(由于時刻不同,該步驟的skew與步驟S23的skew不是同一個值,而是處于不同情況下的兩個值)進(jìn)行估計,節(jié)點(diǎn)N首先獲取其此刻環(huán)境溫度T2,其次根據(jù)本周期步驟S14計算的敏感度因子TSF對節(jié)點(diǎn)當(dāng)前頻偏進(jìn)行估計:
[0095]skew = TSF.(T-Temp)2(公式 6)
[0096]步驟S31,節(jié)點(diǎn)N計算當(dāng)前的相偏:
「.skew + ske\vnr,, M ? 、
[0097]offset = offsetprc + At.----—(公式 7)
[0098]公式7中,skeWp,e為上一周期步驟S23或步驟S30獲得的當(dāng)前頻偏值,即如果從步驟S23跳至步驟S31,則Skewlffe的值為上一周期步驟S23中的頻偏值skew ;如果從步驟S30執(zhí)行至步驟S31,則Skewpra的值為上一周期步驟S30中的頻偏值skew ;offsetpre為上一周期步驟S31計算出的當(dāng)前相偏值;
[0099]步驟S32,若節(jié)點(diǎn)N的當(dāng)前相偏offset滿足公式8,則認(rèn)為節(jié)點(diǎn)N的相偏過大且會對網(wǎng)絡(luò)應(yīng)用造成影響,此時,節(jié)點(diǎn)N需要對自己本地時間進(jìn)行更新,否則不進(jìn)行更新:
[0100]offset > ~(公式 8)
[0101]公式8中ε為本地時鐘周期,對同步精度要求不嚴(yán)格的情況下也可以適當(dāng)增大ε的值;更新后的本地時間clock為:
[0102]clock = clockpre+offset(公式 9)
[0103]公式9中,clockpre為更新前的本地時間;更新完畢后,節(jié)點(diǎn)N將Offsetrffe清零;頻偏與相偏周期關(guān)系如圖3所;
[0104]步驟S33,節(jié)點(diǎn)N查看計時器,若從步驟S22計時開始,時長d未到時,則休眠At時長后轉(zhuǎn)至步驟S30 ;否則,完成本周期,轉(zhuǎn)入步驟SlO開始執(zhí)行下一周期。
[0105]二、本發(fā)明方法中各相關(guān)參數(shù)的確定:
[0106]實(shí)驗一:誤差控制因子μ對數(shù)據(jù)包交換間隔和數(shù)據(jù)包交換次數(shù)的影響以及μ的最優(yōu)值確定:
[0107]步驟一:仿真實(shí)驗場景初始化
[0108] 申請人:根據(jù)真實(shí)野外場景下的溫度變化情況模擬出了 12000條溫度數(shù)據(jù),代表了200分鐘內(nèi)每一秒的溫度值,根據(jù)該數(shù)據(jù)得到的溫度壓變化曲線如圖4所示。為了證明本方法在溫度變化情況下的同步性能,該軌跡主要在兩種溫度狀況之間交替:溫度平緩以及溫度爬升狀態(tài)。溫度變化范圍為25°C?43°C,根據(jù)溫度與頻偏的關(guān)系,其相應(yīng)的12000條頻偏數(shù)據(jù)的變化范圍為20ppm?60ppm。
[0109]步驟二:取精度控制參數(shù)μ = 150,300,450,750,900(單位:μ S)。在每種控制參數(shù)μ的取值下,根據(jù)之前所述的時間同步步驟對該12000條頻偏數(shù)據(jù)進(jìn)行同步,總共進(jìn)行五次實(shí)驗。每次實(shí)驗記錄在同步過程中時間戳的交換次數(shù),以及每兩次時間戳交換的間隔時間,觀察μ對這兩項參數(shù)的影響。
[0110]步驟三:分析與處理實(shí)驗數(shù)據(jù)
[0111]圖5示出了溫度敏感度因子TSF估計間隔和時間戳交換次數(shù)隨著精度控制參數(shù)μ的變化趨勢??梢钥闯觯?dāng)參數(shù)μ從150 μ S變化到300 μ S時,時間戳的交換次數(shù)明顯減少,同時,平均TSF估計間隔明顯增大。而在參數(shù)μ變化到300 μ s之后,這兩項參數(shù)的變化趨于平緩。因此為了在減小能耗的同時保證時間同步的精度,本方法在精度控制參數(shù)μ = 300 μ S時的性能最佳。
[0112]實(shí)驗二:溫度協(xié)調(diào)因子λ對數(shù)據(jù)包交換間隔和數(shù)據(jù)包交換次數(shù)的影響以及λ的最優(yōu)值確定:
[0113]步驟一:仿真實(shí)驗場景初始化
[0114] 申請人:根據(jù)真實(shí)野外場景下的溫度變化情況模擬出了 12000條溫度數(shù)據(jù),代表了200分鐘內(nèi)每一秒的溫度值。根據(jù)該數(shù)據(jù)得到的溫度壓變化曲線如圖4所示。為了證明本方法在溫度變化情況下的同步性能,該軌跡主要在兩種溫度狀況之間交替:溫度平緩以及溫度爬升狀態(tài)。溫度變化范圍為25°C?43°C,根據(jù)溫度與頻偏的關(guān)系,其相應(yīng)的12000條頻偏數(shù)據(jù)的變化范圍為20ppm?60ppm。
[0115]步驟二:取溫度協(xié)調(diào)因子λ = 0.6, 0.8,1.0, 1.2,1.4(單位:V )。在每種協(xié)調(diào)因子λ的取值下,根據(jù)之前所述的時間同步步驟對該12000條頻偏數(shù)據(jù)進(jìn)行同步,總共進(jìn)行五次實(shí)驗。每次實(shí)驗記錄在同步過程中時間戳的交換次數(shù),以及每兩次時間戳交換的間隔時間,觀察λ對這兩項參數(shù)的影響;
[0116]步驟三:分析與處理實(shí)驗數(shù)據(jù)
[0117]圖6示出了溫度敏感度因子TSF估計間隔和時間戳交換次數(shù)隨著精度控制參數(shù)μ的變化趨勢??梢钥闯?,當(dāng)參數(shù)λ從0.8°C變化到1.(TC時,時間戳的交換次數(shù)明顯減少,同時,平均TSF估計間隔明顯增大;而在參數(shù)λ變化到1.(TC之后,這兩項參數(shù)的變化趨于平緩。因此為了在減小能耗的同時保證時間同步的精度,本方法在精度控制參數(shù)λ = 1.0oC時的性能最佳。
[0118]三、本發(fā)明方法性能試驗以及與其他算法的對比實(shí)驗
[0119]下面我們通過一組實(shí)驗來驗證本發(fā)明同步方法的性能以及相對于其他方法的優(yōu)勢,實(shí)驗主要對以下四種算法的性能進(jìn)行比較:
[0120](I)本發(fā)明方法(記做TSFB方法);
[0121](2)本方法在使用固定周期時的情況(記做固定周期TSFB);
[0122](3)FTSP算法:該算法是基于時間戳交換的時間同步算法。該方法首先通過節(jié)點(diǎn)間時間戳的交換來進(jìn)行一對節(jié)點(diǎn)間的時間同步,再通過網(wǎng)絡(luò)分層的方法進(jìn)行逐層同步,最終達(dá)到全網(wǎng)的時間同步。且該方法并不考慮節(jié)點(diǎn)的工作環(huán)境對其頻偏的影響。
[0123](4)EACS算法:該算法同樣是利用溫度進(jìn)行時間同步的算法,但是該方法是在節(jié)點(diǎn)部署前獲得節(jié)點(diǎn)頻偏與溫度之間的關(guān)系,并將該關(guān)系以表格的形式存儲在節(jié)點(diǎn)內(nèi)。在同步的過程中,該方法假設(shè)頻偏與溫度之間的關(guān)系不會隨著時間以及溫度的變化而變化,這不符合實(shí)際的頻偏變化模式,因此會帶來同步誤差。
[0124]實(shí)驗主要從以下幾方面來證明本發(fā)明的優(yōu)勢:
[0125]①頻偏估計精度;②能耗(即再同步間隔);③算法魯棒性;
[0126]仿真網(wǎng)絡(luò)初始化:
[0127] 申請人:根據(jù)真實(shí)野外場景下的溫度變化情況模擬出了 12000條溫度數(shù)據(jù),代表了200分鐘內(nèi)每一秒的溫度值。根據(jù)該數(shù)據(jù)得到的溫度壓變化曲線如圖4所示。為了證明本方法在溫度變化情況下的同步性能,該軌跡主要在兩種溫度狀況之間交替:溫度平緩以及溫度爬升狀態(tài)。溫度變化范圍為225°C?43°C,根據(jù)溫度與頻偏的關(guān)系,其相應(yīng)的12000條頻偏數(shù)據(jù)的變化范圍為20ppm?60ppm。
[0128]a.算法頻偏估計精度評估
[0129]仿真實(shí)驗過程:
[0130]該實(shí)驗主要對比動態(tài)周期TSFB算法、固定周期TSFB算法以及EACS算法的頻偏估計精度。在該實(shí)驗中,首先對動態(tài)周期的TSFB算法進(jìn)行仿真,為了驗證不同周期下的算法性能,在試驗初始時我們?nèi)?biāo)準(zhǔn)TSF估計周期長度dstd分別為1500s,1800s, 2000s, 2300s以及2500s,實(shí)驗結(jié)束后得到平均包交換間隔分別為:1050s,1190s, 1380s, 1450s以及1950s。然后,根據(jù)得到的平均包交換間隔來設(shè)置EACS算法的溫度敏感度因子TSF估計間隔以及固定周期TSFB算法的TSF估計間隔,重復(fù)實(shí)驗。最后,將三種方法的頻偏估計結(jié)果與初始化過程中生成的真實(shí)頻偏數(shù)據(jù)進(jìn)行對比,統(tǒng)計出三種頻偏估計誤差的最大值以及平均值。
[0131]實(shí)驗結(jié)果:
[0132]如圖7所示,很明顯的,通過固定以及動態(tài)間隔的TSFB算法與EACS算法的對比可以看出,由于TSFB算法能夠動態(tài)估計溫度與頻偏之間的敏感程度TSF,因此能夠避免由于環(huán)境帶來的當(dāng)前“溫度-頻偏”對應(yīng)關(guān)系與先驗知識不符所帶來的頻偏估計誤差,從而提高了同步精度。除此之外,通過對比動態(tài)以及固定TSFB算法,可以看出,動態(tài)周期調(diào)節(jié)機(jī)制的弓I入使得動態(tài)周期TSFB算法能夠在節(jié)點(diǎn)環(huán)境溫度變化的情況下及時修正TSF值,相比于固定周期的TSFB算法能夠一定程度上降低頻偏估計誤差。
[0133]b.算法能耗評估
[0134]仿真實(shí)驗過程:
[0135]該實(shí)驗主要對比TSFB算法以及FTSP算法的算法能耗。
[0136]首先取精度控制參數(shù)μ = 150,300,450,750,900(單位:μ S)。對于TSFB算法在每種控制參數(shù)μ的取值下,根據(jù)之前所述的時間同步步驟對該12000條頻偏數(shù)據(jù)進(jìn)行同步,總共進(jìn)行五次實(shí)驗。每次實(shí)驗記錄在同步過程中每兩次時間戳交換的間隔時間。而對于FTSP算法,該算法的再同步周期是固定的(150s)。
[0137]其次取溫度協(xié)調(diào)因子λ = 0.6, 0.8,1.0, 1.2,1.4(單位:V )。對于TSFB算法在每種協(xié)調(diào)因子λ的取值下,根據(jù)之前所述的時間同步步驟對該12000條頻偏數(shù)據(jù)進(jìn)行同步,總共進(jìn)行五次實(shí)驗。每次實(shí)驗記錄在同步過程中每兩次時間戳交換的間隔時間。而對于FTSP算法,該算法的再同步周期是固定的(150s)。
[0138]實(shí)驗結(jié)果:
[0139]在圖8(a)以及圖8(b)中,很明顯地,對于TSFB算法,每兩次時間戳交換的間隔時間隨著精度控制參數(shù)μ以及度協(xié)調(diào)因子λ的增大而增大。然而,即使在誤差控制因子μ以及溫度協(xié)調(diào)因子λ取值均非常低(μ = 150 μ S,λ = 0.6°C )的情況下,節(jié)點(diǎn)依然能夠保持兩次時間戳交換的平均間隔時間大于900s,這遠(yuǎn)遠(yuǎn)高于FTSP的150s。而時間戳的交換會帶來巨大的通信開銷,且通信開銷在傳感器網(wǎng)絡(luò)總能耗占很大比例。因此,證明了 TSFB算法能夠在保證精度的前提下降低能耗。十分適用于能量有限的無線傳感器網(wǎng)絡(luò)。
[0140]c.算法魯棒性評估
[0141]仿真實(shí)驗過程:
[0142]該實(shí)驗過程模擬了在野外惡劣環(huán)境下造成節(jié)點(diǎn)信息傳遞無法進(jìn)行的情況。對于TSFB算法,仍然根據(jù)之前所述的同步步驟對12000條頻偏數(shù)據(jù)進(jìn)行同步,但是從第100s開始,不進(jìn)行之前所述的步驟一,即TSF估計過程(由于該過程依賴于時間戳交換)。FTSP算法同樣不能進(jìn)行時間戳的交換。
[0143]實(shí)驗結(jié)果:
[0144]如圖9所示,在實(shí)驗的開始階段(即O?1000s),TSFB算法和FTSP算法的差距并不十分明顯。然而,隨著環(huán)境溫度開始變化,頻偏也隨著溫度不斷的變化。此時FTSP算法只能依賴最初始的頻偏估計值對時間相偏進(jìn)行估計和補(bǔ)償,因此誤差不斷累積。且從圖9還可以看出,節(jié)點(diǎn)環(huán)境溫度值從3000s開始不斷上升,這使得節(jié)點(diǎn)的頻偏變化速率升高,而此時FTSP算法無法捕捉該變化。因此FTSP不斷增長的頻偏估計誤差最終導(dǎo)致了其同步誤差的不斷累積。相比于FTSP算法,TSFB算法在通信失效的情況下仍然能夠保持相對較低的同步誤差。這是因為通信失效僅僅造成了 TSF無法正常更新,而節(jié)點(diǎn)可以根據(jù)最近一次TSF估計結(jié)果以及傳感器節(jié)點(diǎn)采集到的溫度信息來對頻偏進(jìn)行更新,很大程度上降低了由電壓變化造成的頻偏估計誤差。因此,相比于FTSP算法,TSFB算法具有較高的魯棒性。
【權(quán)利要求】
1.一種基于溫度感知的無線傳感器網(wǎng)絡(luò)時間同步方法,其特征在于: 記R為無線傳感器網(wǎng)絡(luò)中的參考節(jié)點(diǎn),N為除參考節(jié)點(diǎn)之外的任意一個傳感器節(jié)點(diǎn),網(wǎng)絡(luò)初始化后,節(jié)點(diǎn)N重復(fù)執(zhí)行以下周期,該周期包括步驟一至步驟三: 步驟一,敏感度因子確定 步驟S10,節(jié)點(diǎn)N向參考節(jié)點(diǎn)R發(fā)送時間同步請求數(shù)據(jù)包; 步驟S11,節(jié)點(diǎn)R在收到時間同步請求數(shù)據(jù)包后,向節(jié)點(diǎn)N依次返回四個應(yīng)答數(shù)據(jù)包:M0, M1, M2, M3,每個數(shù)據(jù)包中記錄發(fā)送該數(shù)據(jù)包時時刻節(jié)點(diǎn)R的本地時間,分別為time (R)tl?time (R)3 ;M0與M” M2與M3間隔時間均為Is 與M2間隔時間為1min ; 步驟S12,節(jié)點(diǎn)N在接收到數(shù)據(jù)包Mtl?M3的同時,記錄自己的本地時間time。?time3以及節(jié)點(diǎn)N當(dāng)前所處的環(huán)境溫度tempd?temp3 ; 步驟S13,節(jié)點(diǎn)N對其在Ume1以及time3的頻偏Skew1以及skew3進(jìn)行計算:
? v/ieir, = (time、-1ime(R)i)~(time{) -time(R)0)八
Iskew\ = {time' — time{ R)^)~ {time2 — time( Η)?)厶工 步驟S14,節(jié)點(diǎn)N根據(jù)頻偏及溫度信息對當(dāng)前敏感度因子TSF值進(jìn)行計算:
ske\v\ -Skewi TSF =-;-!-τ-(公式 2)
[Tempa - TempY -(Temph -Tempy
^ ?βηψ? + temp, ^ temp, + Iempn 公式2中,Tempu^ TemPh =~-- Temp為標(biāo)準(zhǔn)溫度,取值為.25 °C ; 步驟二,敏感度因子間隔確定 步驟S20,節(jié)點(diǎn)N獲取此刻所處環(huán)境溫度T1,節(jié)點(diǎn)N上一周期該時刻所處環(huán)境溫度為Tpre,則節(jié)點(diǎn)N的溫度變化率DT為:
T-T DT = ^-^(公式 3)
pre 公式3中,CU為上一周期步驟S22獲得的敏感度因子間隔d的值; 步驟S21,節(jié)點(diǎn)N計算當(dāng)前累積誤差值error:
{time, -time(R),) + (time,-time(R),),.error =-:-—:-=-二(公式 4)
2 步驟S22,節(jié)點(diǎn)N對敏感度因子間隔d進(jìn)行設(shè)定,方法為: i/ = min(i/w , d、?,(公式 5)
error Dl
公式 5 中,μ = 150 ?900 μ s, λ = 0.6 ?1.4°C,dstd = 20min ; 步驟S23,節(jié)點(diǎn)N設(shè)置當(dāng)前頻偏值skew為skew3,Δ t時長后轉(zhuǎn)入步驟S31,10s < At<10000s ; 步驟三,本地時間更新 步驟S30,節(jié)點(diǎn)N獲取其此刻所處環(huán)境溫度T2,根據(jù)步驟S14計算的敏感度因子TSF對節(jié)點(diǎn)當(dāng)前頻偏進(jìn)行計算: skew = TSF.(T-Temp)2(公式 6) 步驟S31,節(jié)點(diǎn)N計算當(dāng)前的相偏:
skew + skew, offset = Offsetpie + At.----—(公式 7) 公式7中,Skewpre為上一周期步驟S23或步驟S30獲得的當(dāng)前頻偏值,Offsetpre為上一周期步驟S31計算出的當(dāng)前相偏值; 步驟S32,若節(jié)點(diǎn)N的當(dāng)前相偏滿足: ?t ^ ^(公式 8) 則節(jié)點(diǎn)N對自身本地時間進(jìn)行更新,更新后的本地時間clock為: clock = clockpre+offset(公式 9) 在公式8和公式9中,ε為本地時鐘周期,clockpMS更新前的本地時間;更新完畢后,節(jié)點(diǎn)N將Offsetpra清零; 步驟S33,節(jié)點(diǎn)N查看計時器,若時長d未到時,則休眠Λ t時長后轉(zhuǎn)至步驟S30 ;否則,完成本周期,轉(zhuǎn)入步驟SlO開始執(zhí)行下一周期。
【文檔編號】H04W56/00GK104168641SQ201410341165
【公開日】2014年11月26日 申請日期:2014年7月17日 優(yōu)先權(quán)日:2014年7月17日
【發(fā)明者】金夢, 房鼎益, 陳曉江, 劉晨, 徐丹, 郭軍 申請人:西北大學(xué)