袁 剛,許文騰
(92941部隊,遼寧葫蘆島125000)
平臺級武器系統(主要指艦艇、飛機和戰車等)仿真通常含有載體運動模型、目標感知、信息處理、傳感器、武器系統、威脅目標及環境等眾多實體,這些實體仿真時間推進的幀速率各不相同[1]。通常含積分環節的動力學模型等實體幀速率快,而含離散采樣環節的信息處理、武器控制等實體幀速率慢。不同幀速率實體混合在一起進行交互仿真將帶來仿真時間協調推進問題,尤其是當幀速率快實體輸出驅動幀速率慢實體或幀速率慢實體輸出驅動幀速率快實體時,必須增加必要的采樣和狀態保持環節并進行仿真時間同步控制,否則會引起不可預知的仿真結果[2]。本文基于仿真實體的有限狀態機模型,提出一種平臺級武器系統仿真中多幀速率實體混合的時間推進方法。本方法首先建立實體的有限狀態機模型,通過協調系統時間和本地時間之間的關系,在有限狀態機運行時控制仿真實體交互信息的時機,增加實體交互信息的采樣和狀態保持環節,實現了多幀速率混合仿真系統的時間同步推進。
本文涉及的平臺級武器系統仿真由調度和具有不同幀速率的仿真實體組成。調度負責向各仿真實體周期性發布時間推進事件和當前新的系統時間(SystemTime),各仿真實體負責向調度回復狀態反饋事件并負責推進自身的本地時間(LocalTime)。仿真實體在受調度的周期性時間驅動過程中具有兩種狀態:仿真計算狀態和時間推進狀態,用一個布爾變量 TimeState來表示[3]。TimeState為 0,表明實體處于仿真計算狀態;TimeState為1,表明實體處于時間推進狀態。通過周期性更改和查詢該布爾變量,調度和各實體間就可以協調有序地推進系統時間和本地時間以及控制各實體間仿真數據的交互(即信息的讀、寫或輸入、輸出),實現快幀速率實體與慢幀速率實體間有序的信息交互。建立的實體有限狀態機模型如圖1所示。

圖1 仿真實體有限狀態機模型Fig.1 Finite state machine of simulation entities
調度以基本幀速率發布時間推進指令并廣播SystemTime,基本幀速率定義為系統最快幀速率,通常以動力學積分步長的倒數為基本幀速率。當仿真實體完成當前系統時間相關的仿真計算,將TimeState置為1,并將LocalTime按自身的幀周期推進到新的本地時間點,表明其做好了時間推進的準備,該仿真實體處于時間推進狀態。當調度查詢到所有仿真實體均處于時間推進狀態時,發出推進指令并公布新的SystemTime。當仿真實體收到調度推進指令和新的SystemTime,如果 LocalTime 大于 SystemTime,維持TimeState為1狀態;如果 LocalTime等于SystemTime,仿真實體將TimeState置為0,并開始在當前系統時間進行仿真計算,該仿真實體處于仿真計算狀態。
對于實時仿真,系統由外部時鐘按照基本幀速率進行實時同步控制,外部時鐘每隔一個基本周期就發出一次硬實時中斷(中斷可以由硬件產生,也可以由系統最高優先級的定時器產生)。系統的時間同步控制是分層實現的:周期性的外部中斷首先觸發調度的單幀調度過程,然后調度再啟動上述對各仿真實體的調度方法。對于超實時仿真,不需要由外部時鐘來同步調度,系統仿真時間直接由調度確定何時推進[4]。
仿真實體之間交互信息主要分兩種情形,一種是由快幀速率實體輸出驅動慢幀速率實體的輸入,另一種是由慢幀速率實體輸出驅動快幀速率實體的輸入。對于第一種情形,在快幀速率實體輸出和慢幀速率實體輸入中間加入采樣環節,實現方法是控制慢幀速率實體輸入信息的時機,即慢幀速率實體收到調度的時間推進指令且滿足開始新一幀仿真計算條件時接收其他實體的輸出,在本幀其他時間不接收輸入,這樣就避免了快幀速率實體頻繁更新輸出而影響慢幀速率實體輸入的問題。對于第二種情形,在慢幀速率實體輸出和快幀速率實體輸入中間加入狀態保持環節,實現方法是控制慢幀速率實體輸出信息的時機,即慢幀速率實體完成當前幀仿真計算后并不馬上輸出新狀態值,要保持新值到LocalTime-SystemTime≤T條件滿足時輸出(T為系統基本幀速率的倒數,即系統中最短幀周期),這樣就避免了慢幀速率實體輸出時機不確定而影響快幀速率實體輸入的問題。仿真實體單幀輸入輸出信息過程如圖2所示[5]。

圖2 仿真實體間單幀交互信息過程Fig.2 Interactive process between entities in one frame
本文提出的多幀速率混合時間推進方法已應用于某型武器平臺分布式實時仿真系統。該系統由調度節點、兩個彈道解算節點、威脅目標節點、武器控制節點和數據錄取等節點組成,系統硬件采用PC+VMIPCI反射內存網卡、軟件采用Windows+RTX硬實時擴展架構[6]。其中彈道解算節點和數據錄取節點幀速率為200 Hz、幀周期為5 ms,威脅目標節點幀速率為100 Hz、幀周期為10 ms,武器控制節點幀速率為20 Hz、幀周期為50 ms。基本幀速率為系統最快幀速率200 Hz。該分布式實時仿真系統時間推進機理是:
(1)調度節點在GPS時鐘同步控制下,按基本幀速率每間隔5 ms向其他節點發布時間推進事件和當前新的系統時間.
(2)兩個彈道解算節點以最快幀速率200 Hz推進仿真時間,每收到調度節點發布的時間推進事件就開始5 ms的單幀處理過程:數據輸入(采樣)、模型計算和數據輸出.
(3)威脅目標節點幀速率為100 Hz,為慢幀速率節點,分別在 0 ms,10 ms,20 ms,…時刻開始數據輸入(即采樣),計算完成后并不馬上輸出數據(狀態保持),分別在 10 ms,20 ms,30 ms,…時刻之前輸出數據,這樣輸出數據可以保持10 ms.
(4)武器控制節點幀速率為20 Hz,為慢幀速率節點,分別在 0 ms,50 ms,100 ms,…時刻開始數據輸入(即采樣),計算完成后并不馬上輸出數據(狀態保持),分別在 50 ms,100 ms,150 ms,…時刻之前輸出數據,這樣輸出數據可以保持50 ms.
(5)數據錄取節點以最快幀速率200 Hz推進仿真時間,過程與彈道解算節點類似,只是沒有數據輸出環節。
該武器平臺級分布式實時仿真系統中不同幀速率實體在調度節點的同步控制下的時序圖如圖3所示。

圖3 某分布式實時仿真系統時序圖Fig.3 Sequence diagram of a distributed real-time simulation system
本文參考HLA的數據交互機制、時間推進機制并針對實時仿真的同步控制、“死線”控制要求,設計了適應多實體參與、多幀速率混合、強實時推進的復雜仿真系統時間推進方法。該方法已成功應用于某型武器平臺分布式實時仿真系統的時間同步和調度管理軟件設計中,該仿真系統已實現最小幀周期為1 ms的強實時推進。該方法也可以應用于集中式仿真運行環境,代表不同仿真實體幀速率的進程(或線程)應進行優先級設計,快幀速率實體進程(或線程)具有高優先級,慢幀速率實體進程(或線程)具有低優先級。如果調度進程(或線程)忽略外部時鐘中斷,系統可以按照邏輯時間推進,進行超實時仿真,因而該方法也可以應用于超實時仿真應用。
[1] 張朝陽,薛惠鋒.復雜實時仿真系統運行支撐環境研究[J].計算機仿真,2009(1):305-308.ZHANG Chaoyang,XUE Huifeng.Support environment of complex real-time simulation system [J].Computer Simulation,2009(1):305-308.
[2] 孫繼紅.RTX技術在半實物仿真中的應用及開發[J].計算機仿真,2010(8):83-86.SUN Jihong.Application and development of real-time extension technology for hardware in loop simulation[J].Computer Simulation,2010(8):83-86.
[3] (美)庫爾,韋瑟利,達曼.計算機仿真中的HLA技術[M].付正軍,王永紅譯.北京:國防工業出版社,2003.Kuhl F,Weatherly J,Dahmann J.An introduction to the high level architecture[M].Translated by FU Zhengjun,WANG Yonghong.Beijing:National Defense of Industry Press,2003.
[4] 曾煒,沈為群.基于RTAI-Linux的飛行仿真實時管理系統[J].計算機工程,2008(19):261-263.ZENG Wei,SHEN Weiqun.Real-time management system of flight simulation based on RTAI-Linux[J].Computer Engineering,2008(19):261-263.
[5] 黃柯棣.系統仿真技術[M].長沙:國防科技大學出版社,1998.HUANG Kedi.System simulation technology[M].Changsha:NUDT Press,1998.
[6] 王國玉,馮潤明.無邊界靶場[M].北京:國防工業出版社,2007.WANG Guoyu,FENG Runming.The logical range[M].Beijing:National Defense of Industry Press,2007.