本發(fā)明涉及一種分布式網(wǎng)絡(luò)實現(xiàn)高精度時鐘同步的基于ATS協(xié)議的分層網(wǎng)絡(luò)時鐘同步方法。
背景技術(shù):
分布式無線網(wǎng)絡(luò)是由一系列地位完全平等的移動節(jié)點組成的多跳、臨時性的自組織系統(tǒng),并且不依賴于任何固定基礎(chǔ)設(shè)施,各個節(jié)點通過無線鏈路直接通信來實現(xiàn)節(jié)點間信息的共享。智能家局、物聯(lián)網(wǎng)等技術(shù)都是基于分布式網(wǎng)絡(luò),而在分布式網(wǎng)絡(luò)中的時鐘同步技術(shù)為重要研究內(nèi)容。時鐘同步是無線傳感器網(wǎng)絡(luò)的一項關(guān)鍵技術(shù)支撐,它在數(shù)據(jù)融合,目標(biāo)追蹤,事件監(jiān)測等應(yīng)用中發(fā)揮重要作用。
時鐘同步方式主要有3種:第一種方式利用全球定位系統(tǒng)GPS實現(xiàn)同步;第二種方式為編碼同步;第三種方式為報文同步。無線傳感器網(wǎng)絡(luò)拓撲結(jié)構(gòu)有集中式和分布式,現(xiàn)已有的時鐘同步協(xié)議有基于參考節(jié)點的時鐘同步協(xié)議和分布式時鐘同步協(xié)議兩種,Reference Broadcast Synchronization(RBS)時鐘同步協(xié)議、Flooding Time Synchronization Protocol(FTSP)時鐘同步協(xié)議以及由Ganeriwal等提出的Time-synchronization Protocol for Sensor Networks(TPSN)時鐘同步協(xié)議是基于參考節(jié)點的時鐘同步協(xié)議的代表?;趨⒖脊?jié)點的時鐘同步協(xié)議具有算法簡單,計算量小,收斂速度快等優(yōu)點,但這些算法需要參考節(jié)點具有較高精度,其向子節(jié)點傳送的數(shù)據(jù)包信息的準(zhǔn)確度也有較高要求。同時它對網(wǎng)絡(luò)拓撲結(jié)構(gòu)的變化非常靈敏,節(jié)點的增加或丟失都會使整個網(wǎng)絡(luò)重新開始工作,并可能導(dǎo)致更差的同步精度。為了提高網(wǎng)絡(luò)的穩(wěn)定性和可擴展性,眾多學(xué)者提出了分布式時鐘同步協(xié)議。Solis等提出的Distributed Time Synchronization Protocol(DTSP)時鐘同步協(xié)議、Average Time Synchronization(ATS)時鐘同步協(xié)議均為分布式時鐘同步協(xié)議的代表。分布式時鐘同步協(xié)議不依賴于任何的特定節(jié)點,網(wǎng)絡(luò)不局限于特定的拓撲結(jié)構(gòu)。因而分布式時鐘同步具有更好的魯棒性和可擴展性。同時,一致性同步協(xié)議可以同時補償時鐘的斜率和偏移,提高網(wǎng)絡(luò)中鄰居節(jié)點之間的同步精度?,F(xiàn)有的一致性同步協(xié)議大都是基于平均一致性理論,這些算法都是漸進收斂,不能保證有限時間收斂,網(wǎng)絡(luò)實現(xiàn)時鐘同步的能耗較大,從而限制了算法的使用。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供了一種解決目前分布式網(wǎng)絡(luò)實現(xiàn)同步的精度低、收斂速度慢、能耗大等問題的基于ATS協(xié)議的分層網(wǎng)絡(luò)時鐘同步方法。
本發(fā)明的目的是這樣實現(xiàn)的:
(1)提供一個主時鐘和P個同步節(jié)點時鐘;
(2)通過改進Bootstrap統(tǒng)計方法對收集到的節(jié)點時間信息進行濾波處理;
(3)對網(wǎng)絡(luò)進行分Z層,并收集層內(nèi)節(jié)點的時間對信息;在層內(nèi)通過自然選擇粒子群算法對濾波后的節(jié)點信息進行數(shù)據(jù)融合,產(chǎn)生虛擬主時鐘;
(4)將得到的虛擬主時鐘加入到分層網(wǎng)絡(luò)中,則每層含有n+1個節(jié)點,n=P/Z;
(5)每層網(wǎng)絡(luò)內(nèi)的節(jié)點根據(jù)ATS協(xié)議和收集到的時間對信息實現(xiàn)組內(nèi)時鐘同步,同時得到Z個獨立的邏輯時鐘;
(6)將這Z個獨立的邏輯時鐘視為Z個獨立的邏輯節(jié)點,同時其以自身的本地邏輯時鐘為基準(zhǔn),周期性地向其邏輯節(jié)點廣播自身的時間信息;
(7)網(wǎng)絡(luò)再一次根據(jù)ATS協(xié)議和收集到的邏輯節(jié)點的時間對信息實現(xiàn)全網(wǎng)絡(luò)的時鐘同步。
本發(fā)明的有益效果在于:本發(fā)明在小樣本條件下對無線網(wǎng)絡(luò)的節(jié)點晶振的時偏和頻偏進行濾波處理,在保證頻偏和時偏的修正精度的條件下縮短了采樣時間。現(xiàn)有的分層網(wǎng)絡(luò)及其改進方法都是基于集中式同步協(xié)議,基于參考節(jié)點的時鐘同步協(xié)議對網(wǎng)絡(luò)拓撲結(jié)構(gòu)的變化非常靈敏,節(jié)點的增加或丟失都會使整個網(wǎng)絡(luò)重新開始工作,并可能導(dǎo)致更差的同步精度。而本發(fā)明提出在分布式網(wǎng)絡(luò)中實現(xiàn)分層同步的方法避免了上述問題,在保持原ATS協(xié)議優(yōu)點的同時提高了網(wǎng)絡(luò)的收斂速度,使網(wǎng)絡(luò)實現(xiàn)同步的時間縮短。且將由自然選擇粒子群算法形成的虛擬主時鐘納入層內(nèi),使之與層內(nèi)節(jié)點實現(xiàn)一致性同步,該方法提高了網(wǎng)絡(luò)的同步精度。
附圖說明
圖1是主從時鐘之間交互過程;
圖2是線性時鐘模型;
圖3是本發(fā)明方法的流程圖;
圖4是分層網(wǎng)絡(luò)的拓撲結(jié)構(gòu)圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步描述。
本發(fā)明首先提供一個主時鐘和P個同步節(jié)點時鐘;通過改進Bootstrap統(tǒng)計方法對收集到的節(jié)點時間信息進行濾波處理,提高節(jié)點時間信息的可靠性;對網(wǎng)絡(luò)進行分層(假定分為Z組),并收集層內(nèi)節(jié)點的時間對信息。在層內(nèi)通過自然選擇粒子群算法對濾波后的節(jié)點信息進行數(shù)據(jù)融合,產(chǎn)生虛擬主時鐘;將得到的虛擬主時鐘加入到分層網(wǎng)絡(luò)中,則每層含有n+1個節(jié)點(n=P/Z);每層網(wǎng)絡(luò)內(nèi)的節(jié)點根據(jù)ATS協(xié)議和收集到的時間對信息實現(xiàn)組內(nèi)時鐘同步,同時得到Z個獨立的邏輯時鐘;將這Z個獨立的邏輯時鐘視為Z個獨立的邏輯節(jié)點,同時其以自己的本地邏輯時鐘為基準(zhǔn),周期性地向其邏輯節(jié)點廣播自己的時間信息;網(wǎng)絡(luò)再一次根據(jù)ATS協(xié)議和收集到的邏輯節(jié)點的時間對信息實現(xiàn)全網(wǎng)絡(luò)的時鐘同步。
本發(fā)明包括:
步驟1:提供一個主時鐘和P個同步節(jié)點時鐘;
步驟2:對Bootstrap統(tǒng)計算法進行改進。Bootstrap算法的再生樣本由原始樣本直接生成,當(dāng)原始樣本數(shù)據(jù)小時,再生樣本會非常相似于原樣本,將會導(dǎo)致計算結(jié)果遠遠偏離真實情況;并且當(dāng)真實分布為連續(xù)分布時,未在樣本觀測點處的分布特性無法獲取,從而不能估計出更加接近于真實分布的分布函數(shù)。改進后的Bootstrap算法將原始樣本進行排序并做出其相應(yīng)的鄰域,根據(jù)鄰域指標(biāo)抽取再生子樣本。改進后的Bootstrap方法擴展了觀測數(shù)據(jù),避免只抽取原始數(shù)據(jù)這一情況,使估計分布盡可能的接近真實分布,提高了估計的準(zhǔn)確性。
步驟3:卡爾曼濾波算法對若干個節(jié)點晶振的時偏和頻偏進行校正,在晶振實現(xiàn)快速穩(wěn)定的同時,提高節(jié)點晶振的穩(wěn)定度和精確度。
圖1為主從時鐘之間的交互過程原理圖,假設(shè)往返路徑對稱,即數(shù)據(jù)包在傳播過程中的時延相等,則在傳播過程中的時延相等,則:
其中offset為主從時鐘之間的時偏;TTrans1和TTrans2分別為從時鐘接收到主時鐘發(fā)送Sync數(shù)據(jù)包的傳播時延和主時鐘接收從時鐘發(fā)送Delay-Req數(shù)據(jù)包的傳播時延;tm1為主時鐘發(fā)送Sync數(shù)據(jù)包的時間;ts2為從時鐘接發(fā)送Delay-Req數(shù)據(jù)包的時間;ts1為從時鐘接收到主時鐘發(fā)送的Sync數(shù)據(jù)包的時間;tm2為主時鐘接收到從時鐘發(fā)送的Delay-Req數(shù)據(jù)包的時間。
將上述公式離散化,且認為時間偏差的測量誤差大小為0,則對從時鐘其時間偏差和頻率偏差有以下關(guān)系式:
θ(k+1)=θ(k)-uθ(k)+[s(k)-us(k)]*τ+wθ(k) (3)
s(k+1)=s(k)-us(k)+ws(k) (4)
其中θ(k)和s(k)為k時刻時鐘的時偏和頻偏;uθ(k)和us(k)是主從時鐘實現(xiàn)時鐘同步時,時偏和頻偏第k次的修正值;τ為第k個采樣樣本的采樣時間,因采樣頻率一定,則采樣周期恒定。在小樣本(即節(jié)點的時偏和頻偏采樣點少于10)的條件下,采用改進的Bootstrap方法對原始樣本進行重采樣,獲取新的Bootstrap樣本,其為新的觀測數(shù)據(jù),在IEEE1588協(xié)議下,將新的觀測數(shù)據(jù)送入卡爾曼濾波器,對節(jié)點晶振進行濾波校正,提高晶振的準(zhǔn)確度。
步驟4:層次發(fā)現(xiàn)及節(jié)點收集:通過節(jié)點晶振時鐘斜率的大小排序?qū)崿F(xiàn)分層,本發(fā)明采用均分的形式將網(wǎng)絡(luò)實現(xiàn)分層。假設(shè)網(wǎng)絡(luò)中共有節(jié)點數(shù)P,節(jié)點被分為Z組,組與組之間相互獨立,每組含節(jié)點n個。其中n=P/Z。
步驟5:每層網(wǎng)絡(luò)均采用自然選擇粒子群算法對層內(nèi)的節(jié)點晶振進行融合,產(chǎn)生Z個虛擬主時鐘。
設(shè)置粒子群的搜索維數(shù)和空間的粒子總數(shù),對粒子的速度與位置進行初始化。在已知的時偏和頻偏的估計精度范圍內(nèi)分別地隨機抽取L個數(shù)作為粒子的初始位置,它被命名為Xs、Xo,節(jié)點個數(shù)作為空間搜索維數(shù)。粒子的適應(yīng)度函數(shù)是影響節(jié)點的融合精度的重要因素,本發(fā)明假定適應(yīng)度函數(shù)為自適應(yīng)加權(quán)函數(shù),自適應(yīng)函數(shù)的加權(quán)因子如式(5)所示:
其中σd為將每個節(jié)點濾波后的數(shù)據(jù)作為有效數(shù)據(jù)后求取的估計標(biāo)準(zhǔn)差,D為節(jié)點的個數(shù),
在蒙特卡羅模擬條件下,隨機抽取各個節(jié)點穩(wěn)定后的時偏和頻偏估計值N組,每組L個,則自適應(yīng)函數(shù)的加權(quán)因子為:
自適應(yīng)函數(shù)被定義為:
將粒子的位置和適應(yīng)值存儲于粒子的個體極值pbest中,將所有的個體極值排序并比較,最優(yōu)的個體極值被記為全局極值gbest,gbest則為最優(yōu)搜索結(jié)果。在搜索過程中用群體中適應(yīng)值最好的一半粒子去替換最差的一半粒子,將其作為新的位移,且保留原來每個個體的所記憶的歷史最優(yōu)值。同時不斷更新粒子的位移、速度和gbest,使所有的粒子向最新找到的全局最優(yōu)解靠近,當(dāng)該過程達到最大搜索次數(shù)M時停止搜索并輸出結(jié)果。粒子的位移和速度更新關(guān)系式如下:
xd,l(t+1)=xd,l(t)+vd,l(t+1) (8)
vd,l(t+1)=ω·vd,l(t)+c1·r1·[pd,l-xd,l(t)]+c2·r2·[pg,l-xd,l(t)] (9)
其中i=1,2,...,N;j=1,2,...,Dω為慣性權(quán)重值;c1,c2為學(xué)習(xí)因子,通常取c1=c2。r1和r2為[0,1]范圍內(nèi)的隨機數(shù),t為迭代周期。在最大迭代次數(shù)內(nèi),每一層網(wǎng)絡(luò)通過上述過程將節(jié)點進行有效融合,形成具有較高精度的虛擬主時鐘。
步驟6:由上述步驟可知每層網(wǎng)絡(luò)共有n+1個節(jié)點。每層的各個節(jié)點以自己的本地時鐘為基準(zhǔn),周期性的向其鄰居節(jié)點廣播自己的節(jié)點信息,周期為T,鄰居節(jié)點接收數(shù)據(jù)包信息并記錄自己當(dāng)前時刻的時鐘讀數(shù)。通過廣播的數(shù)據(jù)包信息實現(xiàn)層次內(nèi)節(jié)點的時間對信息的收集。
步驟7:每層網(wǎng)絡(luò)內(nèi)的節(jié)點根據(jù)ATS協(xié)議和收集到的時間對信息實現(xiàn)組內(nèi)時鐘同步過程。節(jié)點j在t0時刻將其包含硬件時鐘讀數(shù)Hj(t0)的數(shù)據(jù)包發(fā)送給它的鄰居節(jié)點i,節(jié)點i在收到節(jié)點j發(fā)送的數(shù)據(jù)包的同時記錄自己的本地時間Hi(t0),在理想情況下,節(jié)點j發(fā)送的數(shù)據(jù)包被瞬時接收。節(jié)點i和節(jié)點j的絕對參考時間相同,則節(jié)點i記錄的時間對信息為:(Hi(t0),Hj(t0)),當(dāng)一個新的同步數(shù)據(jù)包由節(jié)點j發(fā)送給節(jié)點i時,節(jié)點i記錄新的時間對信息對(Hi(t1),Hj(t1))。根據(jù)圖1可計算aij:
aji表示節(jié)點j和節(jié)點i的相對時鐘斜率。任意的節(jié)點i以T為周期,周期性的向自己的鄰居節(jié)點j廣播自己的節(jié)點信息,其鄰居節(jié)點j收到節(jié)點i的發(fā)送的數(shù)據(jù)包信息,記錄當(dāng)前的時鐘讀數(shù),同時記錄節(jié)點i的發(fā)送的數(shù)據(jù)包信息,若該節(jié)點已經(jīng)存儲了一組節(jié)點i發(fā)送的數(shù)據(jù)包信息,則更新相對斜率aij,邏輯時鐘斜率和邏輯時鐘偏差
其中ρη,ρv,ρo為初始給定的權(quán)重,其變化范圍為(0,1)。
節(jié)點與其鄰居節(jié)點之間的邏輯時鐘斜率的最大差值和邏輯時鐘偏差的最大差值被定義為ds和do:
當(dāng)且僅當(dāng)do(t)=ds(t)=0時,則節(jié)點i與節(jié)點j之間實現(xiàn)同步。
步驟8:根據(jù)步驟7得到Z個獨立的邏輯時鐘,將這Z個獨立的邏輯時鐘視為Z個獨立的邏輯節(jié)點,通過線性回歸模型構(gòu)建網(wǎng)絡(luò)邏輯節(jié)點的線性時鐘模型,其表達式為:
Sz(t)=szt+oz 1≤z≤Z(16)
其中,sz為z個邏輯節(jié)點時鐘的斜率,oz代表第z個邏輯節(jié)點時鐘偏差。同理,邏輯節(jié)點以自己的本地邏輯時鐘為基準(zhǔn),周期性的向其鄰居邏輯節(jié)點廣播自己的時間信息,收集的步驟假設(shè)每組節(jié)點于t時刻達到組內(nèi)同步,邏輯時鐘同樣以T為周期廣播自己的邏輯時鐘信息,周期為T,鄰居邏輯節(jié)點接收數(shù)據(jù)包信息并記錄自己當(dāng)前時刻的時鐘讀數(shù)。采用ATS協(xié)議和邏輯節(jié)點之間的時間對信息實現(xiàn)邏輯節(jié)點之間的時鐘同步,最終實現(xiàn)網(wǎng)絡(luò)的時鐘同步過程。
本發(fā)明在小樣本條件下對無線網(wǎng)絡(luò)的節(jié)點晶振的時偏和頻偏進行濾波處理,在保證頻偏和時偏的修正精度的條件下縮短了采樣時間。現(xiàn)有的分層網(wǎng)絡(luò)及其改進方法都是基于集中式同步協(xié)議,基于參考節(jié)點的時鐘同步協(xié)議對網(wǎng)絡(luò)拓撲結(jié)構(gòu)的變化非常靈敏,節(jié)點的增加或丟失都會使整個網(wǎng)絡(luò)重新開始工作,并可能導(dǎo)致更差的同步精度。而本發(fā)明提出在分布式網(wǎng)絡(luò)中實現(xiàn)分層同步的方法避免了上述問題,在保持原ATS協(xié)議優(yōu)點的同時提高了網(wǎng)絡(luò)的收斂速度,使網(wǎng)絡(luò)實現(xiàn)同步的時間縮短。且將由自然選擇粒子群算法形成的虛擬主時鐘納入層內(nèi),使之與層內(nèi)節(jié)點實現(xiàn)一致性同步,該方法提高了網(wǎng)絡(luò)的同步精度。