一種基于時間源的團(tuán)隊(duì)仿真時間同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于分布式時間同步技術(shù)領(lǐng)域,具體涉及一種基于時間源的團(tuán)隊(duì)仿真時間同步方法。
【背景技術(shù)】
[0002]在團(tuán)隊(duì)仿真訓(xùn)練系統(tǒng)中,需要時間同步功能保證每個實(shí)體都按照同一個時鐘推進(jìn)時間,否則會導(dǎo)致實(shí)體之間對時間和空間的觀測和理解上的不一致。同時,團(tuán)隊(duì)仿真訓(xùn)練系統(tǒng)要求在時間同步時可以更改時間步長,這主要是因?yàn)閰⒂?xùn)人員往往只對仿真中的某幾個部分感興趣,但是那幾個部分僅持續(xù)短暫的時間,并且在它們之間是乏味漫長的等待,這就要求在等待時盡快推進(jìn)仿真時間。
[0003]同步點(diǎn)本身是為分布式應(yīng)用程序之間的同步操作而設(shè)置的,但同步點(diǎn)技術(shù)的用途比較廣泛,HLA提供了有關(guān)同步點(diǎn)的相關(guān)功能,因此,可以應(yīng)用同步點(diǎn)的方法進(jìn)行時間同步。具體方式是某一個仿真實(shí)體加入聯(lián)邦后或準(zhǔn)備更改步長時登記一個同步點(diǎn),其它仿真實(shí)體在加入聯(lián)邦后或者在完成了所需要的更改步長操作后到達(dá)此同步點(diǎn),當(dāng)所有仿真實(shí)體都到達(dá)同步點(diǎn)以后,時間同步過程完成。
[0004]然而,對于團(tuán)隊(duì)仿真訓(xùn)練系統(tǒng),基于同步點(diǎn)的時間同步方法還有以下兩個問題無法解決:
[0005]第一,基于同步點(diǎn)的時間同步方法要在所有仿真實(shí)體都到達(dá)同步點(diǎn)以后才完成同步,因此要求仿真實(shí)體的總數(shù)目是固定的。所以基于同步點(diǎn)的時間同步方法無法完成仿真實(shí)體自由加入和退出聯(lián)邦的需求。在仿真程序運(yùn)行的過程中,如果有實(shí)體發(fā)生掉線等情況也會影響聯(lián)邦的同步,基于同步點(diǎn)的時間同步方法也無法避免這個問題。
[0006]第二,改變時間推進(jìn)步長時,如果是由較大的時間推進(jìn)步長調(diào)整為較小的時間推進(jìn)步長,采用基于同步點(diǎn)的時間同步方法效率則會較低。如果推進(jìn)步長相差太大,等待的時間則會將是難以忍受的。
[0007]綜上所述,現(xiàn)有的團(tuán)隊(duì)仿真訓(xùn)練系統(tǒng)的時間同步方法,顯然存在不便和缺陷,所以有必要加以改進(jìn)。
【發(fā)明內(nèi)容】
[0008]針對現(xiàn)有技術(shù)的缺陷,本發(fā)明提供一種基于時間源的團(tuán)隊(duì)仿真時間同步方法,普通仿真實(shí)體可以在任何時刻加入與退出聯(lián)邦,并且不影響時間推進(jìn),更加靈活;所需要的同步時間消耗較少,受網(wǎng)絡(luò)延遲的影響較少,時間同步的誤差較小,比較精確。
[0009]一種團(tuán)隊(duì)仿真時間同步方法,具體為:
[0010]管理者實(shí)體加入聯(lián)邦,其首先初始化仿真起始時間、時間推進(jìn)步長和仿真起始步數(shù),然后開始推進(jìn)時間;
[0011]普通仿真實(shí)體加入聯(lián)邦,其從管理者實(shí)體接收時間同步參數(shù),時間同步參數(shù)包括仿真起始時間、時間推進(jìn)步長和仿真起始步數(shù),依據(jù)時間同步參數(shù)計(jì)算自己的當(dāng)前仿真時間,然后開始推進(jìn)時間;
[0012]管理者實(shí)體更改時間推進(jìn)步長,按照更改后的時間推進(jìn)步長進(jìn)行時間推進(jìn),更新時間同步參數(shù)即將仿真起始步數(shù)更新為更改時間推進(jìn)步長時對應(yīng)的仿真步數(shù),以及將仿真起始時間更新為管理者實(shí)體的當(dāng)前仿真時間;同時,將更新后的時間同步參數(shù)群發(fā)給普通仿真實(shí)體,普通仿真實(shí)體依據(jù)時間同步參數(shù)進(jìn)行當(dāng)前時間計(jì)算和時間推進(jìn)。
[0013]進(jìn)一步地,所述普通仿真實(shí)體可在任何時候退出聯(lián)邦,管理者實(shí)體在聯(lián)邦內(nèi)不再存在普通仿真實(shí)體時才能退出聯(lián)邦。
[0014]進(jìn)一步地,所述管理者實(shí)體加入聯(lián)邦的具體實(shí)現(xiàn)過程為:
[0015]11)判斷聯(lián)邦是否已經(jīng)建立,如果是,則說明此時已經(jīng)存在管理者實(shí)體,結(jié)束,否貝IJ,由管理者實(shí)體建立聯(lián)邦;
[0016]12)管理者實(shí)體初始化時間同步參數(shù),時間同步參數(shù)包括仿真起始時間、推進(jìn)步長和仿真起始步數(shù);
[0017]13)管理者實(shí)體啟動監(jiān)視其它實(shí)體的加入情況;
[0018]14) 一旦有普通仿真實(shí)體加入聯(lián)邦,則依據(jù)時間同步參數(shù)進(jìn)行當(dāng)前仿真時間的計(jì)算以及啟動定時器推進(jìn)時間,并將時間同步參數(shù)傳送給普通仿真實(shí)體。
[0019]進(jìn)一步地,所述普通仿真實(shí)體加入聯(lián)邦的具體實(shí)現(xiàn)過程為:
[0020]21)判斷聯(lián)邦是否已經(jīng)建立,如果聯(lián)邦沒有建立,結(jié)束,否則,進(jìn)入步驟22);
[0021]22)普通仿真實(shí)體加入聯(lián)邦,其從管理者實(shí)體接收時間同步參數(shù);
[0022]23)普通仿真實(shí)體依據(jù)時間同步參數(shù)計(jì)算自己的當(dāng)前仿真時間以及啟動定時器推進(jìn)時間。
[0023]本發(fā)明的技術(shù)效果體現(xiàn)在:
[0024]本發(fā)明在管理者實(shí)體加入聯(lián)邦之后就開始推進(jìn)時間,這時其它實(shí)體的加入和退出聯(lián)邦完全不影響這個時間的推進(jìn),因此更加靈活。本發(fā)明采用交互的方式進(jìn)行時間同步而不是同步點(diǎn)的方式,并且每個實(shí)體的當(dāng)前仿真時間是根據(jù)時間參數(shù)直接計(jì)算得來,因此所需要的同步時間消耗較少,受網(wǎng)絡(luò)延遲的影響較少,而且時間同步的誤差較小,比較精確。
【附圖說明】
[0025]圖1是本發(fā)明時間同步方法流程圖;
[0026]圖2是本發(fā)明的管理者實(shí)體初始化狀態(tài)圖;
[0027]圖3是本發(fā)明的普通仿真實(shí)體登陸狀態(tài)圖;
[0028]圖4為調(diào)節(jié)仿真時間步長后的同步流程。
【具體實(shí)施方式】
[0029]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅是用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0030]本發(fā)明提供了一種基于時間源的團(tuán)隊(duì)仿真時間同步方法,將團(tuán)隊(duì)仿真訓(xùn)練的仿真實(shí)體分為管理者實(shí)體和普通仿真實(shí)體。
[0031]管理者實(shí)體:每個團(tuán)隊(duì)仿真訓(xùn)練中應(yīng)當(dāng)有并且只有一個管理者實(shí)體,主要負(fù)責(zé)聯(lián)邦管理的一些操作,同時還是整個仿真中的時間源實(shí)體,需要在仿真中第一個加入聯(lián)邦,通過群發(fā)時間管理消息使整個聯(lián)邦的時間同步,以及調(diào)節(jié)整個仿真系統(tǒng)中的推進(jìn)時間步長。
[0032]普通仿真實(shí)體:團(tuán)隊(duì)仿真訓(xùn)練系統(tǒng)中的普通參訓(xùn)實(shí)體都屬于普通仿真實(shí)體,完成團(tuán)隊(duì)訓(xùn)練功能。
[0033]圖1是本發(fā)明的實(shí)體關(guān)系圖,本發(fā)明基于時間源的時間同步方法的是以管理者實(shí)體為標(biāo)準(zhǔn)的時間源進(jìn)行時間同步,管理者實(shí)體通過發(fā)送時間同步參數(shù)的方法來控制普通仿真實(shí)體的時間。
[0034]圖2為本發(fā)明時間同步流程圖,具體過程如下:
[0035]管理者實(shí)體加入聯(lián)邦,初始化仿真起始時間、時間推進(jìn)步長和仿真起始步數(shù),然后開始推進(jìn)時間;
[0036]普通仿真實(shí)體加入聯(lián)邦,其從管理者實(shí)體接收時間同步參數(shù),時間同步參數(shù)包括仿真起始時間、時間推進(jìn)步長和仿真起始步數(shù),依據(jù)時間同步參數(shù)計(jì)算自己的當(dāng)前仿真時間,然后開始推進(jìn)時間;
[0037]管理者實(shí)體更改時間推進(jìn)步長,按照更改后的時間推進(jìn)步長進(jìn)行時間推進(jìn),更新時間同步參數(shù)即將仿真起始步數(shù)更新為更改時間推進(jìn)步長時對應(yīng)的仿真步數(shù),以及將仿真起始時間更新為管理者實(shí)體的當(dāng)前仿真時間;同時,將更新后的時間同步參數(shù)群發(fā)給其它普通仿真實(shí)體,其它普通仿真實(shí)體依據(jù)時間同步參數(shù)進(jìn)行當(dāng)前時間計(jì)算和時間推進(jìn);
[0038]普通仿真實(shí)體可在任何時候退出聯(lián)邦,管理者實(shí)體在聯(lián)邦內(nèi)不再存在普通仿真實(shí)體時才能退出聯(lián)邦。
[0039]圖2為管理者實(shí)體加入聯(lián)邦流程圖,在本發(fā)明中,管理者實(shí)體負(fù)責(zé)建立聯(lián)邦,并且要保證每個聯(lián)邦只有一個管理者實(shí)體。具體步驟如下:
[0040]11)判斷聯(lián)邦是否已經(jīng)建立,如果是,則說明此時已經(jīng)存在管理者實(shí)體,結(jié)束,否貝IJ,由管理者實(shí)體建立聯(lián)邦;
[0041]12)管理者實(shí)體初始化時間同步參數(shù),時間同步參數(shù)包括仿真起始時間、推進(jìn)步長和仿真起始步數(shù);推進(jìn)步長可以設(shè)置為時、分、秒中的一個,對應(yīng)數(shù)值為3600,60,1,仿真起始時間根據(jù)仿真的需要設(shè)置為一個具體的時間