劉 雄,張 繩,康鳳舉,張亞雄,鄭卉凌
(1.武漢第二船舶設(shè)計研究所,湖北 武漢 430064;2.西北工業(yè)大學(xué) 航海學(xué)院,陜西 西安 710072)
魚雷武器仿真系統(tǒng)涉及聲學(xué)、光學(xué)、工程數(shù)學(xué)、計算機、電子工程、機械等多學(xué)科和領(lǐng)域。若用高級仿真語言開發(fā)魚雷武器系統(tǒng)一體化仿真軟件包[2]往往需要較長的時間,其側(cè)重點在于仿真試驗,建模缺乏規(guī)范化和重用性。而且整個系統(tǒng)中的各個子系統(tǒng)之間存在著密不可分的聯(lián)系,因而當(dāng)對其中的1個或多個子系統(tǒng)進(jìn)行擴展或修改時,其他的子系統(tǒng)也必受到影響而需做出較大的變化,這就會使開發(fā)、設(shè)計和測試工作變得相當(dāng)繁瑣。所以需要尋找新的設(shè)計方法,使搭建的系統(tǒng)具有良好的可復(fù)用性和擴展性,組件技術(shù)為此提供了一個很好的解決方案。
組件技術(shù)的出現(xiàn)主要源于程序設(shè)計技術(shù),是繼OOP(面向?qū)ο缶幊?之后的一項優(yōu)秀的編程模型[4]。與傳統(tǒng)的軟件開發(fā)不同,在基于組件對象的軟件工程中更注重組件的規(guī)劃、設(shè)計與開發(fā),可以使復(fù)雜領(lǐng)域內(nèi)的建模工作變得規(guī)范化和具有良好的重用性。
COSIM(協(xié)同仿真平臺)是典型的面向組件/服務(wù)的建模技術(shù)[5],支持異地建模、分布仿真,支持不同仿真工具之間的互操作,解決復(fù)雜系統(tǒng)的建模與仿真問題。
本文研究了典型的基于組件的建模技術(shù)COSIM中的魚雷武器系統(tǒng)的建模,完成了魚雷武器系統(tǒng)可重用模塊化模型設(shè)計,建立了不同層次上可重用的魚雷武器系統(tǒng)模型,給出了典型仿真實例,所構(gòu)建的仿真系統(tǒng)已得到應(yīng)用驗證。
COSIM主要支持分布、異構(gòu)模型之間的分布/協(xié)同仿真,同時提供一個開放的、可擴展的、基于標(biāo)準(zhǔn)的(WEB、CORBA、HLA/RTI)仿真集成框架和幾個可靈活組裝的、支持復(fù)雜系統(tǒng)建模與仿真運行的COSIM仿真部件[4]。其主要特點在于:集開發(fā)環(huán)境和運行環(huán)境于一體,集成了各類已有的仿真工具,可方便快捷地開發(fā)各類模型,系統(tǒng)具有開放性、可擴展性和靈活性。
COSIM將開發(fā)環(huán)境、資源庫和運行環(huán)境進(jìn)行了分離,使平臺易于擴展。建模環(huán)境基于統(tǒng)一的對象模型接口定義支持復(fù)雜系統(tǒng)異構(gòu)層次化建模方法。通過對復(fù)雜系統(tǒng)的分析,建立復(fù)雜系統(tǒng)的組成模型,對其不同子模型分別采用其各自領(lǐng)域的當(dāng)前流行工具來開發(fā),構(gòu)造出復(fù)雜系統(tǒng)的混合異構(gòu)層次化模型。資源庫支持運行支撐平臺對數(shù)據(jù)、模型、文檔的存儲和查詢;支持對標(biāo)準(zhǔn)組件模型的管理和組裝,使用戶可以輕松的構(gòu)造復(fù)雜仿真系統(tǒng)。運行環(huán)境提供仿真運行管理、仿真時間管理和仿真數(shù)據(jù)管理,是HLA的聯(lián)邦管理服務(wù)的應(yīng)用。主要用來實現(xiàn)分布交互仿真系統(tǒng)運行過程及狀態(tài)的監(jiān)控,包括凍結(jié)/解凍、同步、暫停、單步運行、斷點運行、仿真速度管理、運行進(jìn)程管理等。
COSIM下的高層建模指在復(fù)雜系統(tǒng)的系統(tǒng)層次上描述系統(tǒng)的行為和結(jié)構(gòu),或?qū)崿F(xiàn)系統(tǒng)行為的各子系統(tǒng)的接口、行為及子系統(tǒng)間相互依賴關(guān)系的建模技術(shù)。平臺采用了可視化圖形建模技術(shù),從仿真系統(tǒng)的組成結(jié)構(gòu)和動態(tài)行為2個方面描述仿真系統(tǒng)。按照建模粒度的大小,將靜態(tài)結(jié)構(gòu)模型分為3類:元素模型、組件模型和成員模型,動態(tài)行為模型主要是指狀態(tài)機模型。
高層建模把靜態(tài)結(jié)構(gòu)與動態(tài)行為的設(shè)計分開,靜態(tài)結(jié)構(gòu)的建模主要包括元素、組件、成員以及他們相互連接關(guān)系。元素是最小的單位,組件是元素的組合,同時也能包含子組件,即支持組件本身的復(fù)合。成員由組件和元素組成,并通過COSIM的映射機制與RTI通訊。元素和組件有SOM支持,以增強它們的重用性。
按照魚雷武器的特點,將魚雷武器成員劃分為若干元素和組件。其一級組件有4個:界面顯示模塊、接口模塊、實體解算模塊1和實體解算模塊2。界面顯示模塊主要實時顯示魚雷狀態(tài),含三方面的實體曲線顯示:水平面曲線顯示、垂直面曲線顯示和魚雷姿態(tài)角顯示,同時顯示各實體的位置信息、魚雷的行為特性、魚雷的預(yù)設(shè)定信息,若為線導(dǎo)魚雷,還實時顯示武器發(fā)控仿真臺發(fā)送的線導(dǎo)遙控指令數(shù)據(jù)。接口模塊含2個元素子模塊:成員接口模塊和數(shù)據(jù)庫接口模塊,成員接口模塊接收魚雷載體的配置信息,當(dāng)實體解算模塊接收到武器發(fā)控仿真臺發(fā)來的出管信息后,根據(jù)配置信息,從數(shù)據(jù)庫模塊中讀取相應(yīng)的性能參數(shù),啟動第k個實體解算模塊進(jìn)行解算。因為1個魚雷聯(lián)邦成員需要模擬多條魚雷,所以成員中含多個結(jié)構(gòu)相同的魚雷實體解算模塊。魚雷實體解算模塊中的功能模塊的劃分充分考慮了模型的重用性和擴展性,含動力系統(tǒng)模塊、自導(dǎo)系統(tǒng)模塊、彈道解算模塊等。其中的彈道解算模塊為組件,含入水管制彈道模塊、初始彈道模塊等,對于后期開發(fā)者或維護(hù)者來說,如果想用新的模塊代替原有的模塊,只需要對新模塊進(jìn)行開發(fā)和測試即可,而不需去了解其他模塊的實現(xiàn)細(xì)節(jié),從而大大的提高了效率。
動態(tài)行為建模的任務(wù)就是定義并描述系統(tǒng)結(jié)構(gòu)元素的動態(tài)特性及行為。換句話說,要在時間域描述交互信息的發(fā)生過程,描述各結(jié)構(gòu)元素對各交互信息的反應(yīng)。高層建模采用活動圖或狀態(tài)圖加相應(yīng)的引擎調(diào)度機制來反映時間域交互信息的發(fā)生過程和對象系統(tǒng)的行為。高層建模中的動態(tài)行為建模主要包括狀態(tài)圖建模和活動圖建模2個視圖。在動態(tài)行為建模中,將對象或交互在響應(yīng)事件過程中所經(jīng)歷的一系列活動定義為狀態(tài)機。動態(tài)行為模型由系統(tǒng)功能子模塊來完成,它強調(diào)的是子模塊之間的協(xié)作。在模塊工作時,模塊外部環(huán)境在不斷地變化,每個子模塊都在運行,不斷改變著自己的狀態(tài),表現(xiàn)出自己的行為,總體上則構(gòu)成系統(tǒng)或模塊的行為。在仿真運行中,通過狀態(tài)機對功能子模塊進(jìn)行調(diào)度,由“狀態(tài)”或者“轉(zhuǎn)換”來觸發(fā)對相應(yīng)模型行為的調(diào)度。
魚雷成員的狀態(tài)圖含多層結(jié)構(gòu),狀態(tài)圖中的某一狀態(tài)可含有子狀態(tài),其第一層狀態(tài)機稱為聯(lián)邦管理狀態(tài)機,如圖1所示。
該狀態(tài)機中含有4個狀態(tài)。非聯(lián)邦狀態(tài)時魚雷成員啟動,但是尚未加入聯(lián)邦。聯(lián)邦狀態(tài)時魚雷成員接收到轉(zhuǎn)換事件后加入聯(lián)邦。待命狀態(tài)時魚雷成員加入聯(lián)邦后,等待其他聯(lián)邦成員加入聯(lián)邦。仿真任務(wù)狀態(tài)時收到魚雷出管指令,魚雷實體開始解算。在仿真任務(wù)子狀態(tài)機中,魚雷成員的工作過程為:在1個仿真步長內(nèi),HLAPort接收外部成員公布的數(shù)據(jù),通過接口模塊(IM)處理后發(fā)給相應(yīng)的模塊,各內(nèi)部模塊進(jìn)行獨立解算,所有模塊解算完畢后,將解算結(jié)果傳給HLAPort,由HLAPort負(fù)責(zé)向外公布,同時向運行管理器提出時間推進(jìn)請求。
圖1 聯(lián)邦管理狀態(tài)機Fig.1 State machine of federation management
基于組件技術(shù)的概念模型推演方法,從全生命周期的觀點看待概念模型,將概念模型分為面向領(lǐng)域的概念模型和面向設(shè)計的概念模型,基于組件技術(shù)的概念模型規(guī)范主要應(yīng)用于面向設(shè)計的概念模型[4]。COSIM概念推演器應(yīng)用行為建模技術(shù)建立了“基于組件技術(shù)的模型規(guī)范”。該規(guī)范的形式化表達(dá)為:
在魚雷武器系統(tǒng)中,根據(jù)高層建模生成各個模塊的EED文件。該文件含模塊的輸入輸出端口的描述,并生成反映模塊調(diào)度邏輯關(guān)系的CED文件。使用COSIM的概念推演器可對目標(biāo)系統(tǒng)進(jìn)行概念推演,推演時需要引擎視圖、引擎控制窗口和系統(tǒng)運行信息窗口三者配合完成,在推演時,系統(tǒng)用不同的顏色來標(biāo)識驗證中的模塊。在開發(fā)過程中,當(dāng)實現(xiàn)了1個功能模塊后,用該模塊替換概念模型中的相應(yīng)模塊,可以實現(xiàn)魚雷武器系統(tǒng)的概念模型“無縫”的過渡到真實模型,從而減少開發(fā)的工作量。
COSIM環(huán)境中,封裝了1套工具來實現(xiàn)功能模塊代碼的快速自動生成,如成員自動生成工具、元素自動生成工具等。元素自動生成基于COM組件技術(shù),將元素封裝成1個COM組件,提供1個統(tǒng)一的對外接口,根據(jù)用戶確定組件的端口(Ports)個數(shù)和內(nèi)容、實現(xiàn)元素功能體需要的各類參數(shù)和初始化參數(shù)自動生成元素的框架,元素框架含元素運行時需要的各支撐類。元素框架自動生成后,用戶可根據(jù)該元素要實現(xiàn)的功能和算法結(jié)構(gòu),在相應(yīng)位置編寫實現(xiàn)代碼。元素有1個主要的功能函數(shù),該函數(shù)也是COM組件對外的接口。
端口用于建立與其他元素、組件等的接口連接關(guān)系。功能實現(xiàn)體由元素的功能主函數(shù)和1個或多個其他自定義函數(shù)實現(xiàn),用戶可以在主函數(shù)之外根據(jù)需要封裝各種類,由于功能主函數(shù)是元素對外統(tǒng)一的接口,即所有的元素對外提供服務(wù)的API函數(shù)名稱和參數(shù)都是一樣的,這樣給用戶調(diào)用帶來極大的方便。元素完成的具體功能由用戶在VC集成開發(fā)環(huán)境中指定的位置手工添加元素的功能、行為實現(xiàn)體并完成調(diào)試。
端口的數(shù)據(jù)服務(wù)類型有初始化參數(shù)、輸入?yún)?shù)和輸出參數(shù)3類,每一類服務(wù)類型含數(shù)據(jù)和事件2種服務(wù)方式。元素的端口含有多個端口項,每個端口項對應(yīng)1種簡單的數(shù)據(jù)類型,在元素之間進(jìn)行數(shù)據(jù)傳送時,可以將1個端口的端口項對應(yīng)于另1個元素中的相應(yīng)端口的端口項,使整個開發(fā)過程變的更為直觀。如魚雷實體解算模塊1中的紅方魚雷的位置信息端口有如下端口項:時間代碼、實體代號、魚雷型號、橫坐標(biāo)、縱坐標(biāo)、深度、航速和航向。由于位置信息要實時在界面中顯示,所以界面顯示模塊中也同樣含有該端口,且端口項一一對應(yīng)。在連接2個元素的對應(yīng)端口時,可以實現(xiàn)同端口項的連接,在界面顯示模塊中,可以直接取自己端口項對應(yīng)的變量進(jìn)行解算,而不需要另做處理。
當(dāng)目標(biāo)系統(tǒng)通過概念推演后,用代碼的自動生成工具實現(xiàn)各個模塊的功能,然后用真實的模型代替概念模型,可以較快的實現(xiàn)過渡。在魚雷武器系統(tǒng)中,紅方艇在航行過程中發(fā)現(xiàn)水面目標(biāo),目標(biāo)決策仿真臺決策出攻擊方案,用線導(dǎo)+尾流魚雷攻擊目標(biāo)。在仿真過程中,魚雷仿真臺接收到武器控制仿真臺發(fā)送的出管指令后,向?qū)а菖_發(fā)送出管的行為特性,同時根據(jù)接收到的魚雷配置信息,在數(shù)據(jù)庫中讀取相應(yīng)的參數(shù)。魚雷出管后,每當(dāng)仿真推進(jìn)一步,就接收1次控制臺發(fā)送的線導(dǎo)指令,同時反饋魚雷的遙測信息。當(dāng)接收到尾流開機指令后,啟動尾流解算模塊進(jìn)行解算。整個仿真過程的實體航跡如圖2所示,最后魚雷擊中目標(biāo),該次仿真結(jié)束。
圖2 實體航跡圖Fig.2 Entity tracking map
COSIM是典型的面向組件/服務(wù)的建模技術(shù),它提供了圖形化、模塊化的建模功能,模塊的功能實現(xiàn)具有統(tǒng)一的對外接口,模塊重用方便。本文研究了魚雷武器系統(tǒng)在該平臺下的建模過程——靜態(tài)建模,動態(tài)建模,然后對所建模型進(jìn)行概念推演,最后用真實模型去代替概念模型,實現(xiàn)了模型的“無縫”過渡。
整個建模過程直觀快捷,所建的魚雷武器系統(tǒng)模型具有易擴展和重用性好的優(yōu)點。通過仿真應(yīng)用實例,驗證了所建魚雷武器系統(tǒng)模型的正確性。
[1]康鳳舉.現(xiàn)代仿真技術(shù)與應(yīng)用[M].北京:國防工業(yè)出版社,2006.
[2]李皓,康鳳舉,潘勇軍.水下航行器仿真軟件包設(shè)計[J].系統(tǒng)仿真學(xué)報,2002,14(8):1003 -1005.LI Hao,KANG Feng-ju,PAN Yong-jun.Design of the simulation software for underwater vehicle[J].Journal of System Simulation,2002,14(8):1003 -1005.
[3]徐德民.魚雷自動控制系統(tǒng)(第二版)[M].西安:西北工業(yè)大學(xué)出版社,2001.
[4]邱彥強,柴旭東,李伯虎,等.面向復(fù)雜產(chǎn)品設(shè)計的基于組件的概念模型技術(shù)研究[A].全球化制造高級論壇暨21世紀(jì)仿真技術(shù)研討會論文集[C],2004.170-175.QIU Yan-qiang,CHAI Xu-dong,LI Bo-hu,et al.Study on complex product design oriented concept model technology based on component technology[A].Proceedings of the SymposiumonGlobalManufacturing&Simulation Technology of the 21stCentury[C],2004.170 -175.
[5]李伯虎,柴旭東,朱文海,等.現(xiàn)代建模與仿真技術(shù)發(fā)展中的幾個焦點[A].全球化制造高級論壇暨21世紀(jì)仿真技術(shù)研討會論文集[C],2004.1-8.LI Bo-hu,CHAI Xu-dong,ZHU Wen-hai,et al.Some focusing points in development of modern modeling and simulation technology[A].Proceedings of the Symposium on Global Manufacturing and Simulation Technology of the 21stCentury[C],2004.1 -8.
[6]王江云,王行仁,柴旭東.協(xié)同仿真運行管理平臺研究與實現(xiàn)[J].系統(tǒng)仿真學(xué)報,2002,14(5):584 -587.WANG Jiang-yun,WANG Xing-ren,CHAIXu-dong.Research and implementation of COSIM run-time management platform[J].Journal of System Simulation,2002,14(5):584 -587.
[7]KOBRYN C.Modeling components and frameworks with UML[J].Communication of the ACM,2000,43(10):31-38.