一種分布式礦震監測系統的時間同步方法與流程
2023-06-04 21:37:56

本發明涉及一種時間同步方法,尤其涉及一種分布式礦震檢測系統的時間同步方法。
背景技術:
一般煤炭企業都是採用分布式礦震檢測系統進行監測預警,而分布式礦震監測系統中時間同步是一項重要支撐技術。統一的時鐘標準是分布式礦震監測系統中的數據傳輸調控和數據分析應用的必要條件。硬體平臺和作業系統有所不同,導致各節點時鐘的硬體實現和編程接口標準各異,另外各個節點的石英晶體振蕩器和時鐘中斷更加影響時鐘源的統一性。由於製造工藝的不同,即使是同一型號的晶振,頻率也不盡相同,同時,由於節點所處的環境不同,溫度、溼度、壓強、磁場強度都會影響晶振的穩定性。因此定期調整無線傳感網絡中的時鐘是非常有必要的。
現有的多種時間同步協議,適用於多種條件和場景,然而分布式微震監測系統節點數量大、能量受限、硬體性能弱、拓撲結構多變。另外,已有的時間同步協議在應用在煤礦井下時都會受到一定的限制,如結構式時間同步協議無法適應大規模無線網絡,而分布式時間同步協議無法快速有效地完成時間同步操作。因此,設計井下無線傳感器網絡的時間同步協議仍然面臨諸多挑戰,如同步精度與通信延時的關係、收斂速度與低功耗的平衡等。在設計一個傳感器網絡時,有許多重要因素需要考慮,容錯率、時效性、可擴展性、網絡拓撲約束、硬體約束條件、成本、功耗等。
技術實現要素:
本發明要解決的問題是提供一種針對分層簇型同步方法中的兩個過程提出的兩種時間同步算法之間的相互配合以完成分布式礦震監測系統網絡的時間同步工作,具有較高的魯棒性、可擴展性以及較高的時間同步精度的分布式礦震監測系統的時間同步方法。為此,現提出如下技術方案:
一種分布式礦震監測系統的時間同步方法,包括如下步驟:
(1)設置在地面上的授時器通過與gps系統中各個衛星的原子鐘進行時鐘同步,獲得高精度的時間信號;井下環網中的時間同步交換機通過ieee1588時間同步協議與井上授時器進行同步;錨節點同樣通過有線方式與時間同步交換機相連,通過有線時間同步方式完成時間同步;
(2)礦震監測系統中的簇內節點通過簇內斜率一致性時間同步算法使所有節點的時鐘同步至一個全網統一的虛擬邏輯時鐘;
(3)礦震監測系統中簇首節點與錨節點通過簇間的簡化時鐘相偏頻偏聯合估計算法進行時間同步,進而實現簇首節點之間的同步操作,簇首節點通過簇間的簡化時鐘相偏頻偏聯合估計算法估算全網虛擬時鐘與錨節點時鐘之間的相偏估計與頻偏估計,估算出這兩個參數後,進行一次廣播,簇內節點更新自己的邏輯時鐘。
對上述方案的進一步改進,所述簇內斜率一致性時間同步算法包括如下步驟:
(1)每一個礦震監測系統中的監測節點在t0時刻都有一個狀態量ci(t0),同時定義網絡中所有節點在時刻t的狀態向量為:c(t)=[c1(t),c2(t),...,cl(t)]t;則節點的一致性時鐘模型可以表述成:
(2)令則上述方程可表述成矩陣動態方程:c(t+1)=a(t)c(t),式中,a(t)為非負矩陣,其由ωij(t),i,j∈u組成;
(3)則全網統一邏輯虛擬時鐘可以表示為:lu(t)=ωut+φu。
對上述方案的進一步改進,所述簇內斜率一致性時間同步算法的具體執行過程如下:
(1)對於節點i,(i∈u),設定同時為每個節點設置相同的計數周期t;
(2)當節點本身的硬體計數值為t的整數倍時,節點將本身的時鐘讀數ci(t)、廣播給其鄰居節點;
(3)節點j,(j∈u),在t1時刻收到了其鄰居節點i的同步數據包,則記錄本地時鐘讀數cj(t1),並將接收到的數據存儲為
(4)如果節點i的本地存儲裡面有數據[ci(t0),cj(t0)],則通過公式與計算出ωij,qij;
(5)當qij>1時:
(6)當qij=1時:不做改變;
(7)當qij<1時:執行與qij>1時的相反操作;
(8)刪除存儲[ci(t0),cj(t0)],替換為[ci(t1),cj(t1)]。
對上述方案的進一步改進,所述簇間的簡化時鐘相偏頻偏聯合估計算法包括系統構建、相偏估計和頻偏估計三個步驟。
對上述方案的進一步改進,所述簇間的簡化時鐘相偏頻偏聯合估計算法具體包括如下步驟:
(1)系統構建:
節點一、二通過雙向交換的機制進行時鐘同步操作,其中t1,k至t4,k均為節點一或者節點二的本地時刻,以作為參考點,則節點二的第k次上下行信息的時間戳為:其中式中d是固定時延,xi、yi為可變時延,φ節點的時鐘偏移。相互獨立的隨機變量且服從均值為0,方差為σ2的高斯分布;
(2)相偏估計:
因為在n次同步中,與是均值為μ,方差為σ2相互獨立且同為高斯分布的隨機變量,基於觀測量的似然函數為:將上述公式取對數然後求導得:因此,時鐘相位偏移的估計為:其中,式中分別代表的樣本均值;
(3)頻偏估計:
根據節點二的第k次上下行信息的時間戳的計算公式可以得到可以得到定義時間戳差值為其中式中,xn,x1,yn,y1都服從高斯分布,方差為σ2,所以p和r是服從均值為零,方差為2σ2的高斯分布,因此p和r的概率密度為:因此,簡化觀測模型的似然函數形式為:其中式中將對數似然函數對ω′求導後可得高斯延遲模型下的最大似然估計式為將兩個節點之間的延遲觀測量集合改寫成:所以相偏估計為:
對上述方案的進一步改進,估算出相偏估計與頻偏估計後,簇內節點更新自己的邏輯時鐘為:
相比現有技術,本發明的有益效果在於:
(1)礦震監測節點的布置地點為煤礦井下的煤層及地層中,所處的環境極其惡劣,節點極易出現故障導致失效,工作人員很難對其進行更換或維修。本發明採用簇內斜率一致性時間同步算法,礦震監測系統中的每個節點都根據本地晶振設定的計數周期向鄰居節點廣播本地的時鐘參數,當某一節點從鄰居節點收到同步消息時,比較其時鐘斜率和本地的斜率,當鄰居節點的斜率更加接近於1時,則該節點選擇這個鄰居節點的邏輯時鐘作為參考進行相位和頻率的補償,每一個節點只需要知道其鄰居節點的時鐘信息便可實現時鐘同步,當有些節點出現故障時,時鐘顯示依然能夠同步,具有很強的魯棒性及可擴展性。
(2)本發明提出簇間的簡化時鐘相偏頻偏聯合估計算法更適合礦震監測系統的實際需求。此算法以增大均方差為代價減少了計算量,並且獨立於實際時延的分布,因為節點的時鐘是一個線性模型,由此可以得出,同步周期的開始階段和結束階段之間的時間差異最大,利用這個特性,可以通過交換開始階段和結束階段的時間戳來簡化最大似然函數,從而簡化了原有的時間同步算法,減短了反應時間。
附圖說明
圖1分布式礦震監測系統的節點分布圖。
圖2監測節點的發送程序流程圖。
圖3監測節點接收程序流程圖。
圖4監測節點斜率收斂效果圖。
圖5監測節點正常工作狀態圖。
圖6監測節點死亡或加入狀態圖。
圖7同步過程量化分析圖。
圖8簡化算法前後精度對比圖。
圖9簡化前高斯時延模型下的均方誤差圖。
圖10簡化後高斯時延模型下的均方誤差圖。
圖11礦震監測系統同步精度分析圖。
具體實施方式
為使本發明實現的技術手段、創作特徵、達成目的與功效易於明白了解,下面結合具體實施方式,進一步闡述本發明。
一種分布式礦震監測系統的時間同步方法,包括如下步驟:
(1)設置在地面上的授時器通過與gps系統中各個衛星的原子鐘進行時鐘同步,獲得高精度的時間信號;井下環網中的時間同步交換機通過ieee1588時間同步協議與井上授時器進行同步;錨節點同樣通過有線方式與時間同步交換機相連,通過有線時間同步方式完成時間同步;
(2)礦震監測系統中的簇內節點通過簇內斜率一致性時間同步算法(sts算法)使所有節點的時鐘同步至一個全網統一的虛擬邏輯時鐘,其中sts算法包括如下步驟:
1、每一個礦震監測系統中的監測節點在t0時刻都有一個狀態量ci(t0),同時定義網絡中所有節點在時刻t的狀態向量為:c(t)=[c1(t),c2(t),...,cl(t)]t;則節點的一致性時鐘模型可以表述成:
2、令則上述方程可表述成矩陣動態方程:c(t+1)=a(t)c(t),式中,a(t)為非負矩陣,其由ωij(t),i,j∈u組成;
3、則全網統一邏輯虛擬時鐘可以表示為:lu(t)=ωut+φu。
sts算法具體的執行過程為
對於節點i,(i∈u),設定同時為每個節點設置相同的計數周期t;
當節點本身的硬體計數值為t的整數倍時,節點將本身的時鐘讀數ci(t)、廣播給其鄰居節點;
節點j,(j∈u),在t1時刻收到了其鄰居節點i的同步數據包,則記錄本地時鐘讀數cj(t1),並將接收到的數據存儲為
如果節點i的本地存儲裡面有數據[ci(t0),cj(t0)],則通過公式與計算出ωij,qij;
當qij>1時:
當qij=1時:不做改變;
當qij<1時:執行與qij>1時的相反操作;
刪除存儲[ci(t0),cj(t0)],替換為[ci(t1),cj(t1)]。
為了直觀的驗證sts算法的有效性及可行性,以及其在分布式礦震監測系統中實際性能,現採用實際礦震監測節點對該算法進行了實驗驗證。因礦震採集節點數量有限,本次實驗共採用了9個節點,具體分布如圖1所示,採用節點1充當簇首節點,其餘8個節點作為單個簇內採集節點,9號節點作為基站,與計算機相連,用以收集所有節點的時鐘信息。礦震監控節點採用32khz的外部晶振,所以實驗中1tick的精度為1s/32k=30.5us。
在硬體實驗過程中,每個節點都運行sts同步算法,節點中運行的程序可以分為接收和發送兩部分。普通節點的發送與接收軟體流程如圖2與圖3所示。
9號節點每200ms會廣播一個命令報文,所有節點收到報文後立即匯報本地邏輯時鐘。9號節點收集到數據後上傳到計算機上存儲起來,最後通過matlab對數據進行分析。從節點時鐘斜率、同步效果、算法的可擴展性與魯棒性、同步誤差等幾方面分別對sts算法的性能進行分析。
其中節點斜率收斂效果如圖4所示,從圖4中可以看出,節點的初始斜率誤差較大,且分散不均勻。實驗前期斜率誤差收斂速度較快,80次迭代後期放緩,但是在經過150次迭代左右就將自身斜率誤差調整至0附近,且隨著迭代周期的增長,斜率誤差愈加趨近於0,節點時鐘斜率非常穩定且接近於真實時間斜率,可以看出sts算法可以有效地對時鐘斜率進行調整。
圖5為sts算法的同步狀態圖,節點1充當簇首節點,簇首節點時鐘調整的目標對象為錨節點,所以時鐘參數在sts算法中保持不變。節點2~8為簇內節點。為了更加貼近礦震監測系統的真實使用情況,所有節點不可能完全同時啟動。節點是依次順序啟動的。從圖5中可以看出,節點2~5則是在全局邏輯時鐘建立完成後快速建立了全局虛擬邏輯時鐘,並與簇首節點1完成了同步。節點6~8由於啟動稍晚,所以在啟動之前,網絡的邏輯時鐘已經建立,所以節點可以迅速將時鐘調整至全局虛擬邏輯時鐘。網絡從啟動到首次建立全局虛擬邏輯時鐘大約需要60個周期,而邏輯時鐘建立之後新加入的節點只需要5次周期即可同步至全局邏輯時鐘。
圖6為節點死亡或加入狀態圖,可表示sts算法的魯棒性和可擴展性,礦震節點在實際使用時,被布置在環境惡劣的煤礦井下、煤層以及地層中,硬體節點損壞的情況時有發生,在所有節點完成同步之後,手動將節點3、節點4的電源關閉一段時間後重啟,以模擬節點的死亡與新節點的加入。如圖6所示,網絡完成時間同步操作之後,局部節點的故障並不能影響整個網絡的同步效果,並且節點在重新開啟後能夠迅速地同步至全局統一邏輯時鐘。另外,當簇首節點的時鐘失效的情況,手動將節點1的電源關閉,由結果可以看出,簇內節點的同步情況在簇首節點失效後仍能繼續保持全網時間同步。
圖7為同步過程量化分析圖,可表示sts算法的精度,通過多次記錄各節點的時鐘參數,對礦震監測系統網絡中的所有節點的同步誤差取平均值,平均誤差為0.505ticks,最大誤差為1.1429ticks,誤差基本控制在1tick以內。在晶振為32khz,1ticks=1s/32k=30.5us的精度下,平均誤差為15.4025us。網絡在120個周期左右時,完成同步的節點的百分比達到了百分之百,全局平均時間穩定增長平順,基本不存在邏輯時鐘的抖動問題,增強了節點時鐘的長期穩定性,延長了同步周期,對存在丟包率的井下同步網絡具有較強的魯棒性。
(3)礦震監測系統中簇首節點與錨節點通過簇間的簡化時鐘相偏頻偏聯合估計算法(sjme算法)進行時間同步,進而實現簇首節點之間的同步操作,簇首節點通過簇間的簡化時鐘相偏頻偏聯合估計算法估算全網虛擬時鐘與錨節點時鐘之間的相偏估計與頻偏估計,估算出這兩個參數後,進行一次廣播,簇內節點更新自己的邏輯時鐘。其sjmle算法包括具體如下步驟:
1、系統構建:
節點一、二通過雙向交換的機制進行時鐘同步操作,其中t1,k至t4,k均為節點一或者節點二的本地時刻,以作為參考點,則節點二的第k次上下行信息的時間戳為:其中式中d是固定時延,xi、yi為可變時延,φ節點的時鐘偏移。相互獨立的隨機變量且服從均值為0,方差為σ2的高斯分布;
2、相偏估計:
因為在n次同步中,與是均值為μ,方差為σ2相互獨立且同為高斯分布的隨機變量,基於觀測量的似然函數為:將上述公式取對數然後求導得:因此,時鐘相位偏移的估計為:其中,式中分別代表的樣本均值;
3、頻偏估計:
根據節點二的第k次上下行信息的時間戳的計算公式可以得到可以得到定義時間戳差值為其中式中,xn,x1,yn,y1都服從高斯分布,方差為σ2,所以p和r是服從均值為零,方差為2σ2的高斯分布,因此p和r的概率密度為:因此,簡化觀測模型的似然函數形式為:其中式中將對數似然函數對ω′求導後可得高斯延遲模型下的最大似然估計式為將兩個節點之間的延遲觀測量集合改寫成:所以相偏估計為:
也是由sts算法中搭建的硬體平臺來分析sjmle算法的算法計算複雜度、同步精度、估計量的均方誤差。一般的時間同步方法中所用的方法為jmle算法。
表1為stmle算法與jmle算法的計算複雜度對比,如表1所示,簡化前後,算法的計算複雜度相差巨大,不過需要說明的是,表中給出的是最壞情況的操作次數,大多數情況下操作次數會少於表中的數目。並且處理器在進行數字運算時,除法是最難實現的運算,所以要儘量減少除法的應用。根據表中操作數,即使觀測數目較少的情況下,如的時候,未簡化的算法jmle的除法次數就達到了2200次,乘法200次;而簡化算法sjmle僅僅需要2次除法,20次乘法。所以簡化算法sjmle可以明顯降低算法複雜度,減少能量消耗,且隨著n的數目增大,這一優點也會體現的更加明顯。
表1簡化前後算法的複雜度對比
圖8表示sjmle算法的同步時間精度,從圖中可以看出,將簡化前後以及沒有聯合估計的原始tpsn算法在同樣的參數下進行了同步精度對比,簡化算法的同步精度保持在正負2us之內,雖然簡化前的同步精度更加優異,精度保持在正負1us之內,但是相較於簡化後的精度提升並不明顯,與其所消耗的計算能量與時間相比,弊大於利。而沒有頻偏估計的原始tpsn算法的同步誤差明顯大於有頻偏估計的聯合估計算法。
圖9和圖10分別表示jmle算法和sjmle算法估計量的均方誤差,從圖中可以看出,簡化前後的估計算法都可以使得系統聯合估計量的均方誤差持續漸進有效的趨近於零。但是簡化後sjmle估計算法相較於簡化前的jmle估計算法,收斂速度與均方誤差都稍顯不足,但是簡化後的算法在固定時延未知的情況下仍然能穩定工作。雖然犧牲了部分同步精度,但是同步精度能很好的滿足礦震監測系統的需求,並且大大節約了節點能量,基本達到了設計要求。
因為簇內與簇間的同步工作相對獨立,相關性不大,所以分布式礦震監測系統全網的同步誤差為sts與sjmle兩者之和。如圖11所示,系統在達到穩定之前,同步誤差較大,但在系統穩定工作以後,同步誤差最大在正負17us,正常保持在15us以內,約等於sts算法與sjmle算法的誤差之和,同步精度可以滿足礦震監測系統的要求。
本技術領域中的普通技術人員應當認識到,以上的實施例僅是用來說明本發明,而並非用作為對本發明的限定,只要在本發明的實質精神範圍內,對以上所述實施例的變化、變型都將落在本發明的權利要求範圍內。