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