一種通用仿真組件的描述及建模方法
【專利摘要】本發(fā)明是一種通用仿真組件描述及建模方法,應(yīng)用于系統(tǒng)仿真領(lǐng)域。這種通用仿真組件的描述及建模方法能使仿真應(yīng)用構(gòu)建者能夠利用它開發(fā)和積累可重用的仿真組件,然后根據(jù)不同的應(yīng)用需求在不編碼的情況下組裝這些仿真組件,從而快速搭建滿足需求的仿真應(yīng)用系統(tǒng)。因為使用了可重用的組件,仿真系統(tǒng)與不使用重用組件建模方式構(gòu)建的系統(tǒng)相比,質(zhì)量與開發(fā)效率能夠得到提高。
【專利說明】一種通用仿真組件的描述及建模方法
1.【技術(shù)領(lǐng)域】
[0001]應(yīng)用于系統(tǒng)仿真領(lǐng)域的通用組件建模方法。
2.【背景技術(shù)】
[0002]現(xiàn)階段使用廣泛的仿真系統(tǒng)應(yīng)用建模方式是使用基于HLA協(xié)議或其他特定協(xié)議的建模方式。仿真模塊的開發(fā)過程中,需要開發(fā)者詳細(xì)了解特定仿真協(xié)議的定義,這對不具備仿真知識的特定業(yè)務(wù)領(lǐng)域?qū)<沂欠浅@щy的。仿真系統(tǒng)開發(fā)好后,仿真系統(tǒng)中用到的仿真模型的劃分規(guī)則沒有統(tǒng)一的標(biāo)準(zhǔn),不利于對仿真模型進(jìn)行重用,開發(fā)的仿真系統(tǒng)質(zhì)量不容易控制。
[0003]本技術(shù)專利闡述的通用組件描述及建模方法,能夠解決仿真模型劃分標(biāo)準(zhǔn)不統(tǒng)一,仿真模型不利于重用的問題。
3.
【發(fā)明內(nèi)容】
[0004]3.1總體方案
[0005]本技術(shù)方案由通用仿真組件的描述方法與仿真組件的建模方法組成。通過使用XML格式的帶有仿真組件語義的文件對組件自身屬性、接口、事件與組件之間的關(guān)系進(jìn)行了描述。使用規(guī)范化的組件建模流程對仿真組件建模過程進(jìn)行定義。
[0006]3.2仿真組件描述方法
[0007]Component是仿真原子功能模型(基層的組織單元),封裝了實際的仿真業(yè)務(wù)邏輯。Component可以采用運行環(huán)境支持的任何編程語言實現(xiàn)。同時,仿真支撐框架支持創(chuàng)建新的組件類型。組件的實現(xiàn)獨立于Input與Output接口的綁定類型。
[0008]組件根據(jù)用途不同分為:算法組件、流程控制組件、狀態(tài)組件、界面組件。
[0009]組件的基本要素組成見圖1-組件概念示意圖。
[0010]屬性(Property)
[0011]屬性是組件的初始化屬性,作為組件的運行前的初始數(shù)據(jù)。
[0012]輸入(Input)接口
[0013]輸入接口是其他組件為提供輸入的組件輸入數(shù)據(jù)使用。Input的使用方式對組件是透明的。同一組件的輸入接口之間不能重復(fù)。
[0014]輸出(Output)接口
[0015]輸出是組件為其他組件提供輸出數(shù)據(jù)使用。Output的使用方式對組件是透明的。同一組件的輸出接口之間不能重復(fù)。
[0016]接收事件(ReceiveEvent)
[0017]接收事件是其他組件為提供接收的組件事件數(shù)據(jù)使用。接收事件與輸入接口的不同在于,組件在一個運行周期中可以接收相同名稱的事件多次,而輸入接口僅能接收一次。同一組件的接收事件之間不能重復(fù)。
[0018]發(fā)送事件(SendEvent)[0019]發(fā)送事件為其他組件提供發(fā)送的時間數(shù)據(jù)使用。發(fā)送時間與輸出接口的不同在于,組件在一個運行周期中可以發(fā)送相同名稱的事件多次,而輸出接口僅能產(chǎn)生一次。同一組件的發(fā)送事件之間不能重復(fù)。
[0020]復(fù)合組件(Composite)
[0021]圖2-復(fù)合組件概念示意圖中的兩個Component,A和B,被組裝在一個更大Composite范圍內(nèi),被稱作Composite。SimSCA的Composite描述了 一個由互相連接的Component 所構(gòu)成的集合。Composite 也聲明了 Property、Input、Output、Receive Event和 Send Event,它們被暴露至Ij Composite 外部。Composite 的 Property、Input、Output、Receive Event> Send Event 是 Composite 內(nèi)部的 Component 的 Property、Input、Output、Receive Event和Send Event的映射。復(fù)合組件負(fù)責(zé)組織在其內(nèi)部的組件和復(fù)合組件運行邏輯,并通過映射Input和Output接口與其他組件進(jìn)行交互。一個Composite內(nèi)部的Component彼此連接就如同創(chuàng)建一個緊稱合的應(yīng)用程序。將Composite通過Input和Output連接在一起,則形成了一個更加松耦合的系統(tǒng);組件接插的數(shù)據(jù)類型必須一致;系統(tǒng)中的每一個Composite都運行在一個單獨的進(jìn)程或處理器中,Composite通過仿真實體(Entity)的接口映射。
[0022]連線(Wire)
[0023]Wire 是連接 Input 和 Output、Receive Event 和 Send Event 的連線。Wire 兩端的接口或事件數(shù)據(jù)類型一定是相同的。
[0024]映射(Map)
[0025]Map 是 wire 的特殊表現(xiàn)形式,是把 Component 級別 Property、lnput、0utput 或者Receive Event> Send Event 提升為 Composite 級別或 Entity 級別的連線。
[0026]仿真實體(Entity)
[0027]圖3-仿真實體概念示意圖中,組件或復(fù)合組件可以提升成為一個實體,實體作為仿真中的一個獨立單元存在,只能在單一計算節(jié)點上運行。
[0028]算法組件(Algorithmcomponent)
[0029]算法組件作為封裝與仿真相關(guān)算法使用。
[0030]流程控制組件(Flowcontrol component)
[0031]流程控制組件負(fù)責(zé)根據(jù)仿真組件返回條件,調(diào)度管理算法組件的調(diào)用順序。
[0032]狀態(tài)組件(Statuscomponent)
[0033]狀態(tài)組件負(fù)責(zé)根據(jù)仿真組件的返回條件,向運行環(huán)境返回當(dāng)前的組件狀態(tài)。
[0034]圖形用戶接口組件(⑶I component)
[0035]圖形用戶接口組件是通用的仿真圖形界面顯示元素,其接口標(biāo)準(zhǔn)與組件相同。在組裝組件階段和仿真模型組件結(jié)合,并可以多次組裝成為復(fù)合組件。
[0036]3.3仿真組件建模方法
[0037]仿真組件建模方法包括:定義組件、生成模型組件代碼框架、開發(fā)模型組件算法、編譯生成院子組件模型庫包、發(fā)布組件模型包、組裝模型、組件的二次定義、定義仿真實體幾個關(guān)鍵步驟組成的,具體過程與關(guān)系見圖4-仿真組件建模方法數(shù)據(jù)流圖和以下描述。
[0038]定義組件
[0039]用戶通過仿真建模工具配置組件生成的關(guān)鍵信息,由工具生成組件描述文件文件,該文件格式為XML格式,統(tǒng)一描述了復(fù)合組件與原子組件的定義。組件描述文件內(nèi)容如下:
[0040]引用的數(shù)據(jù)類型(DataType)文件(支持命名空間)
[0041]組件工程名稱
[0042]組件
[0043]組件⑶ID或唯一標(biāo)識
[0044]組件描述
[0045]中文名稱
[0046]英文名稱
[0047]創(chuàng)建者
[0048]開發(fā)單位
[0049]開發(fā)日期
[0050]版本號
[0051]支持自定義屬性
[0052]組件類型(算法組件/仿真控制組件/流程控制組件/界面組件/決策組件)
[0053]本組件繼承于哪個組件(組件二次定義使用)
[0054]屬性(名稱、中文名稱、類型、取值范圍、缺省值)
[0055]輸入接口(屬性:名稱、類型)
[0056]輸出接口(屬性:名稱、類型、映射原子組件的接口)
[0057]監(jiān)聽事件(屬性:名稱、類型)
[0058]產(chǎn)生事件(屬性:名稱、類型、映射原子組件的接口)
[0059]復(fù)合組件集合(復(fù)合組件使用)
[0060]組件(GUID、類名、類型(算法組件/仿真控制組件/流程控制組件/界面組件/決策組件)、使用的輸入接口、使用的輸出接口)
[0061 ] 連接集合(復(fù)合組件使用)
[0062]連接(屬性:輸出組件、輸入組件、輸入端口、輸出端口、數(shù)據(jù)類型)
[0063]映射集合
[0064]映射的組件接口(屬性:輸入接口或輸出接口名稱、映射組件名稱、映射接口)
[0065]模型庫資源
[0066]運行庫(屬性:名稱、運行平臺類型、路徑)
[0067]資源文件(屬性:名稱、類型、路徑)
[0068]生成模型組件代碼框架
[0069]生成模型代碼框架時,代碼生成工具依據(jù)組件描述文件的描述生成代碼框架
[0070]#一個模型定義頭文件(ModelName.h)文件
[0071]#一個模型實現(xiàn) CPP 文件(Mode IName Imp 1.cpp)
[0072].VC8.0的項目工程文件(ModelName.vcproj)(可以支持不同的平臺)
[0073]# Linux平臺轉(zhuǎn)換批處理文件(ModleName.bat)
[0074]?組件描述的ReadMe文本文件
[0075]?生成單元測試代碼框架[0076]開發(fā)模型組件算法
[0077]用戶根據(jù)自己的需求在模型實現(xiàn)CPP文件(Mode IName Imp 1.cpp)中實現(xiàn)算法。用戶在開發(fā)模型算法階段可以利用面向?qū)ο笳Z言與自己已有的模型代碼進(jìn)行繼承。仿真組件僅提供組件組裝重用方式,不提供面向?qū)ο蟮睦^承重用方式。
[0078]編譯生成原子組件模型庫包
[0079]用戶使用當(dāng)前所在編譯環(huán)境編譯并鏈接生成原子組件模型的組件模型包。模型包將以下內(nèi)容打入一個壓縮包內(nèi):
[0080]?一個組件模型描述文件
[0081]#一個組件模型動態(tài)庫文件(ModelName.dll或ModelName.so文件)
[0082]?若干用戶自定義組件模型依賴的資源文件
[0083]發(fā)布組件模型包
[0084]用戶將組件模型包存入組件庫中。組件模型包中的組件模型描述文件在入庫時需要與模型包放在一起單獨存儲以便于外部應(yīng)用讀取組件內(nèi)容。
[0085]組裝模型
[0086]用戶可以使用原子組件模型組裝復(fù)合組件模型,在組裝時,組裝工具引用當(dāng)前模型庫存在的其他原子組件模型描述文件(組件模型描述文件)。模型生成工具依據(jù)原子組件模型間的接口生成可選項,讓用戶選擇哪些接口互相連接,這些連接關(guān)系最終保存到組件的描述文件中。
[0087]組件的二次定義
[0088]已經(jīng)入庫的組件模型可以具有一組默認(rèn)的屬性,用戶也可以對這些組件的屬性進(jìn)行定制。如用戶可以基于一個通用固定翼飛行器的模型,修改了通用飛機(jī)的最大速度、轉(zhuǎn)彎半徑、翼展等屬性后,組件被二次定義為F22飛機(jī)的模型。組件二次定義后的信息需要保存為組件描述文件,該文件在可以作為二次組件存入組件模型庫。
[0089]組件模型在被部署時,需要根據(jù)二次定義組件的SMC文件中描繪的該組件繼承自哪個組件信息,找到對應(yīng)的包含具體運行庫的組件模型包。
[0090]定義仿真實體
[0091]用戶使用仿真實體設(shè)計工具,在模型庫中選擇對應(yīng)仿真實體的組件(一個仿真實體僅包含一個組件),并編輯該仿真實體的相應(yīng)信息。仿真實體在定義時,需要由用戶編輯仿真實體與FOM中對象類或交互類的關(guān)系,實體中包含組件的輸入與輸出接口對應(yīng)到對象類參數(shù),事件接口對應(yīng)到交互類參數(shù)。對象類、交互類的參數(shù)對應(yīng)的仿真實體中組件接口的數(shù)據(jù)類型必須一致,邏輯的一致性必須由用戶自己確認(rèn),仿真實體設(shè)計工具僅起到數(shù)據(jù)類型一致性輔助檢查作用。
[0092]最后,一個仿真實體的信息被存入仿真實體描述文件,該文件內(nèi)容如下:
[0093]仿真實體⑶ID(由系統(tǒng)自動生成,作為實體的唯一標(biāo)識)
[0094]仿真實體標(biāo)簽集合
[0095]標(biāo)簽
[0096]仿真實體名稱
[0097]仿真實體描述
[0098]組件(組件⑶ID)[0099]仿真實體包含組件的接口與FOM映射關(guān)系
[0100]組件接口(屬性:接口類型(輸入或輸出))
[0101]FOM中的對象類和參數(shù)名稱
[0102]仿真實體包含組件的事件接口與FOM的映射關(guān)系
[0103]組件事件(屬性:事件類型(監(jiān)聽或發(fā)送))
[0104]FOM中的交互類和參數(shù)名稱
[0105]仿真實體包包含:
[0106]?—個仿真實體描述文件
[0107]?一個網(wǎng)絡(luò)接口運行庫
[0108]為方便系統(tǒng)進(jìn)行仿真實體的管理,需要保存一個全部實體的元數(shù)據(jù)文件,內(nèi)容如下:
[0109]實體集合
[0110]仿真實體⑶ID
[0111]仿真實體包名稱
4.【專利附圖】
【附圖說明】
[0112]圖1是組件概念示意圖;
[0113]圖2是復(fù)合組件概念示意圖;
[0114]圖3是仿真實體概念示意圖;
[0115]圖4是仿真組件建模方法數(shù)據(jù)流圖。
5.【具體實施方式】
[0116]本發(fā)明將仿真組件劃分為算法組件、流程控制組件、狀態(tài)組件、界面組件四種不同用途的類型,經(jīng)過屬性、接口、事件的連接和映射,能夠滿足不同類型、不同學(xué)科仿真組件建模的要求,是一種通用的仿真組件建模方法。
[0117]通過本說明書
【發(fā)明內(nèi)容】
中描述的通用仿真組件描述及建模方法,使仿真應(yīng)用構(gòu)建者能夠利用它開發(fā)和積累可重用的仿真組件,然后根據(jù)不同的應(yīng)用需求組裝這些仿真組件,從而快速搭建滿足需求的仿真應(yīng)用系統(tǒng)。因為使用了可重用的組件,仿真系統(tǒng)與不使用重用組件建模方式構(gòu)建的系統(tǒng)相比,質(zhì)量能夠得到充分的保證。
【權(quán)利要求】
1.一種通用仿真組件的描述方法,其特征在于: 具有:用于描述組件組成要素的描述文件,將組件的屬性、接口、事件、連接關(guān)系、映射關(guān)系描述為可讀形式,從而使仿真組件可以在不進(jìn)行編碼的情況下進(jìn)行組裝;符合本發(fā)明仿真組件描述方法的組件,可以進(jìn)行復(fù)合。
2.一種通用仿真組件的建模方法,其特征在于: 具有:用于流程化開發(fā)組件的建模方法,將仿真組件的建模過程從組件定義、開發(fā)到發(fā)布進(jìn)行了規(guī)范化,從而使組件開發(fā)過程的具備流水線開發(fā)生產(chǎn)的能力。
【文檔編號】G06F17/50GK103455643SQ201210169692
【公開日】2013年12月18日 申請日期:2012年5月29日 優(yōu)先權(quán)日:2012年5月29日
【發(fā)明者】耿新階, 陳洪博, 張海兵, 劉思偉 申請人:北京神州普惠科技股份有限公司