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