摘 要:研究解決實(shí)時(shí)分布式仿真中仿真數(shù)據(jù)的時(shí)間基準(zhǔn)配準(zhǔn)問題、時(shí)鐘同步問題。基于分布式仿真環(huán)境與自研仿真系統(tǒng)對主流時(shí)間配準(zhǔn)算法進(jìn)行驗(yàn)證。分析驗(yàn)證SNTP時(shí)鐘同步協(xié)議在實(shí)時(shí)分布式仿真中的應(yīng)用效果。
關(guān)鍵詞:實(shí)時(shí)分布式仿真;時(shí)間配準(zhǔn);時(shí)鐘同步
中圖分類號:TP391.9 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-7712 (2014) 16-0000-01
在實(shí)時(shí)分布式仿真系統(tǒng)中,必須保證各個(gè)仿真單元的時(shí)鐘同步,即保證實(shí)時(shí)分布式仿真系統(tǒng)中各個(gè)單元的時(shí)鐘達(dá)到一定精度的一致。TCP/IP協(xié)議中的Daytime子協(xié)議,Time子協(xié)議,ICMP子協(xié)議的時(shí)間戳報(bào)文都可以用來記錄和發(fā)送時(shí)間,參考以上這些協(xié)議,以時(shí)間戳機(jī)制為基礎(chǔ)的NTP協(xié)議能夠提供更加專業(yè)和精確的時(shí)鐘同步服務(wù)。
時(shí)間配準(zhǔn)是指將同一目標(biāo)在各個(gè)仿真單元上不同步的測量數(shù)據(jù)同步到同一時(shí)間基準(zhǔn)之上。對于大多數(shù)實(shí)時(shí)仿真系統(tǒng),各個(gè)仿真源的測量數(shù)據(jù)之間是相互獨(dú)立的。對于主流的各種實(shí)時(shí)處理算法只能處理同步數(shù)據(jù),只有在各個(gè)仿真源的測量數(shù)據(jù)處于同一時(shí)刻,才能計(jì)算出準(zhǔn)確的結(jié)果。
一、實(shí)時(shí)分布式仿真系統(tǒng)的時(shí)鐘同步問題
時(shí)鐘同步一般采用分層混合同步模式,即一個(gè)局域網(wǎng)內(nèi)有一個(gè)單元作為時(shí)間服務(wù)器,該局域網(wǎng)內(nèi)的其他單元都與時(shí)間服務(wù)器取得時(shí)鐘同步。只需要一個(gè)單元作為該系統(tǒng)的時(shí)間服務(wù)器,其他單元都與時(shí)間服務(wù)器的時(shí)鐘取得同步。SNTP在實(shí)時(shí)分布式仿真系統(tǒng)中的應(yīng)用效果基于如下實(shí)驗(yàn)環(huán)境:六臺Dell Power Edge 800計(jì)算機(jī)構(gòu)成,安裝Microsoft Windows Server 2003系統(tǒng)。六臺計(jì)算機(jī)由100M交換機(jī)進(jìn)行連接,其中一臺計(jì)算機(jī)作為時(shí)間服務(wù)器,其他五臺計(jì)算機(jī)作為客戶端與時(shí)間服務(wù)器進(jìn)行時(shí)鐘同步。在自研實(shí)時(shí)分布式仿真系統(tǒng)中進(jìn)行仿真實(shí)驗(yàn),SNTP可以使本文這種形式的實(shí)時(shí)分布式系統(tǒng)的各個(gè)單元,達(dá)到1/4毫秒級別的時(shí)鐘同步精度。
二、實(shí)時(shí)分布式仿真系統(tǒng)的時(shí)間配準(zhǔn)問題
時(shí)間配準(zhǔn)是指將同一目標(biāo)各個(gè)觀測點(diǎn)不同步的觀測數(shù)據(jù)同步到同一時(shí)間基準(zhǔn)之上。作為測量目標(biāo)原始觀測數(shù)據(jù)的數(shù)據(jù)源,它們之間是相互獨(dú)立的,它們的觀測自然也是相互獨(dú)立的,因此在對觀測目標(biāo)進(jìn)行觀測時(shí),各個(gè)數(shù)據(jù)源不能保證向服務(wù)器提供同一時(shí)刻的觀測數(shù)據(jù)。我們了解到最小二乘法只適用于數(shù)據(jù)源觀測周期互為倍數(shù)關(guān)系的情況之下,應(yīng)用范圍較窄;內(nèi)插外推法以及加入自適應(yīng)因子的線性插值法,只有當(dāng)配準(zhǔn)時(shí)刻處在插值區(qū)域中部時(shí),才能保證較高的配準(zhǔn)精度;曲線擬合法在實(shí)時(shí)時(shí)間配準(zhǔn)中的應(yīng)用不可行。
為了解決這一問題,本文利用卡爾曼(Kalman)濾波器對觀測數(shù)據(jù)在下一個(gè)周期觀測點(diǎn)的預(yù)測值和本周期觀測點(diǎn)的估計(jì)值進(jìn)行插值計(jì)算,完成對將來時(shí)刻的時(shí)間配準(zhǔn)。數(shù)據(jù)源A首先利用卡爾曼濾波器進(jìn)行預(yù)測,得到在TA4時(shí)刻的預(yù)測值,再利用TA3時(shí)刻的卡爾曼估計(jì)值,向TB3時(shí)刻進(jìn)行基于各種插值算法的時(shí)間配準(zhǔn)。卡爾曼濾波算法將狀態(tài)空間模型引入濾波理論,給出一套遞歸估計(jì)算法。它的基本思想是:在狀態(tài)空間模型的基礎(chǔ)上,利用上一時(shí)刻的估計(jì)值和當(dāng)前時(shí)刻的觀測值來更新對狀態(tài)變量的估計(jì)。
為了對各個(gè)數(shù)據(jù)源的觀測數(shù)據(jù)進(jìn)行時(shí)間配準(zhǔn),我們首先對數(shù)據(jù)源在每個(gè)周期觀測點(diǎn)上的觀測值進(jìn)行卡爾曼濾波,得到它們的估計(jì)值,當(dāng)某個(gè)數(shù)據(jù)源需要向?qū)頃r(shí)刻進(jìn)行時(shí)間配準(zhǔn)時(shí),利用卡爾曼濾波預(yù)測得到它在下一周期觀測點(diǎn)上的預(yù)測值,這時(shí)根據(jù)該預(yù)測值和本周期觀測點(diǎn)的卡爾曼估計(jì)值就可以向一個(gè)將來時(shí)刻進(jìn)行線性插值時(shí)間配準(zhǔn)。這樣在利用卡爾曼濾波對原始觀測數(shù)據(jù)進(jìn)行了濾波平滑的同時(shí),又方便的完成了對將來時(shí)刻的時(shí)間配準(zhǔn)。利用卡爾曼濾波對數(shù)據(jù)源的觀測值進(jìn)行估計(jì),隨著濾波次數(shù)的增加,估計(jì)值與真值的誤差逐漸減小,最后控制在0.08以內(nèi)。通過驗(yàn)證該算法對于向?qū)頃r(shí)刻的時(shí)間配準(zhǔn)有著很好的配準(zhǔn)效果。
三、實(shí)時(shí)分布式仿真系統(tǒng)的時(shí)間配準(zhǔn)策略
本系統(tǒng)數(shù)據(jù)源每20ms向服務(wù)器發(fā)送一組原始觀測數(shù)據(jù),即各個(gè)數(shù)據(jù)源的觀測周期相等且都為20ms,在對本系統(tǒng)各個(gè)數(shù)據(jù)源的觀測數(shù)據(jù)進(jìn)行時(shí)間配準(zhǔn)時(shí),不存在由高觀測頻率向低觀測頻率配準(zhǔn)的情況,我們一般這樣選擇作為時(shí)間配準(zhǔn)目標(biāo)的數(shù)據(jù)源:首先為了便于時(shí)間配準(zhǔn)計(jì)算,我們對各個(gè)數(shù)據(jù)源傳輸?shù)椒?wù)器的原始觀測數(shù)據(jù)的時(shí)間信息進(jìn)行歸一化處理,之后在一個(gè)同步周期內(nèi)求得一個(gè)時(shí)刻值tμ,其中Ti為第i個(gè)數(shù)據(jù)源本周期觀測時(shí)刻的歸一化值,N為參加仿真實(shí)驗(yàn)的數(shù)據(jù)源個(gè)數(shù),然后找出距離tμ最近的Tj,將數(shù)據(jù)源j的周期觀測時(shí)刻作為其他數(shù)據(jù)源時(shí)間配準(zhǔn)的基準(zhǔn)時(shí)間。通過計(jì)算推導(dǎo)我們可以求出tμ實(shí)際上是各個(gè)數(shù)據(jù)源本周期觀測時(shí)刻歸一化值的均值。
首先在第一個(gè)數(shù)據(jù)源到齊的觀測周期內(nèi)確定作為時(shí)間配準(zhǔn)基準(zhǔn)的數(shù)據(jù)源并為其他數(shù)據(jù)源分類,在接下來的觀測周期內(nèi)對I類數(shù)據(jù)源的觀測數(shù)據(jù)利用線性插值法進(jìn)行時(shí)間配準(zhǔn),對II類數(shù)據(jù)源的觀測數(shù)據(jù)利用基于卡爾曼濾波預(yù)測的線性插值法進(jìn)行時(shí)間配準(zhǔn),最后利用經(jīng)過時(shí)間配準(zhǔn)后得到的同一觀測時(shí)刻下的觀測數(shù)據(jù)進(jìn)行實(shí)時(shí)計(jì)算。
在實(shí)時(shí)計(jì)算開始之前,確定時(shí)間配準(zhǔn)的基準(zhǔn)數(shù)據(jù)源和對數(shù)據(jù)源進(jìn)行分類時(shí),如果在一個(gè)給定時(shí)間段內(nèi)服務(wù)器不能接收到所有數(shù)據(jù)源的原始觀測數(shù)據(jù)(Clock1>Tflag,Tflag根據(jù)具體實(shí)驗(yàn)的時(shí)長確定),即表明在該規(guī)定時(shí)間內(nèi),有某個(gè)或某幾個(gè)數(shù)據(jù)源的數(shù)據(jù)傳輸出現(xiàn)了滯后,我們認(rèn)為實(shí)驗(yàn)過程出現(xiàn)了錯(cuò)誤,終止實(shí)驗(yàn)。當(dāng)確定時(shí)間配準(zhǔn)基準(zhǔn)數(shù)據(jù)源和數(shù)據(jù)源分類正確完成后,開始對各個(gè)數(shù)據(jù)源的原始觀測數(shù)據(jù)進(jìn)行時(shí)間配準(zhǔn)和實(shí)時(shí)處理。
四、結(jié)束語
本文討論實(shí)時(shí)分布式仿真中的時(shí)鐘問題。探討了對實(shí)時(shí)分布式系統(tǒng)的觀測數(shù)據(jù)進(jìn)行時(shí)間配準(zhǔn)。仿真實(shí)驗(yàn)的結(jié)果表明,該算法可以很好地解決向?qū)頃r(shí)刻進(jìn)行時(shí)間配準(zhǔn)的問題。
參考文獻(xiàn):
[1]孫娜,熊偉,丁宇征.時(shí)鐘同步的研究與應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2003(27):177-179+185.
[2]敬喜.卡爾曼濾波器及其應(yīng)用基礎(chǔ)[M].北京:國防工業(yè)出版社,1973.
[作者簡介]丁輝(1980.10-),男,回族,陜西人,中級實(shí)驗(yàn)師,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)。