一種通用仿真組件的執(zhí)行方法
【專利摘要】本發(fā)明是一種通用仿真組件的執(zhí)行方法,應(yīng)用于系統(tǒng)仿真領(lǐng)域。仿真應(yīng)用構(gòu)建者能夠利用這種執(zhí)行方法,執(zhí)行已經(jīng)開發(fā)和積累的可重用的仿真組件。這種通用仿真組件的執(zhí)行方法能使可重用的仿真組件運(yùn)行在同仿真組件運(yùn)行引擎上,對(duì)仿真組件的加載、仿真組件之間的數(shù)據(jù)交互、運(yùn)行調(diào)度進(jìn)行統(tǒng)一管理。用戶根據(jù)不同的應(yīng)用需求在不編寫代碼的情況下組裝這些仿真組件,使用此種執(zhí)行方法對(duì)組件進(jìn)行執(zhí)行,能夠快速搭建滿足需求的仿真應(yīng)用系統(tǒng)。因?yàn)槭褂媒y(tǒng)一的數(shù)據(jù)與調(diào)度方式,仿真應(yīng)用系統(tǒng)開發(fā)者不必關(guān)心不同類型底層技術(shù),僅把精力放在開發(fā)可重用的組件上。
【專利說明】一種通用仿真組件的執(zhí)行方法
[0001]術(shù)語(yǔ):
[0002]仿真組件:建立仿真系統(tǒng)的基本單元。
[0003]原子組件:需要編碼實(shí)現(xiàn)的帶有可執(zhí)行庫(kù)的仿真組件。
[0004]復(fù)合組件:有其他組件復(fù)合而成的組件,不需要編碼實(shí)現(xiàn),本身沒有可執(zhí)行庫(kù)。
[0005]仿真實(shí)體:仿真中作為一個(gè)單獨(dú)的仿真單元,參與仿真環(huán)境中的交互,并被仿真環(huán)境感知。組件運(yùn)行引擎:管理并運(yùn)行仿真組件的程序
1.【技術(shù)領(lǐng)域】
[0006]應(yīng)用于系統(tǒng)仿真領(lǐng)域的通用組件執(zhí)行方法。
2.【背景技術(shù)】
[0007]現(xiàn)階段使用廣泛的仿真系統(tǒng)應(yīng)用執(zhí)行方式是直接使用基于特定協(xié)議的應(yīng)用程序,程序無法一旦綁定了某種協(xié)議執(zhí)行,就無法方便的切換到另一種協(xié)議,即仿真應(yīng)用無法重用或重用程度很低。
[0008]使用本技術(shù)方案介紹的仿真組件執(zhí)行方法開發(fā)的組件運(yùn)行引擎,能夠加載并運(yùn)行與通信協(xié)議無關(guān)的仿真組件,組件運(yùn)行引擎負(fù)責(zé)管理運(yùn)行時(shí)仿真組件之間的數(shù)據(jù)通信、仿真成員間的特定協(xié)議的數(shù)據(jù)交互和仿真時(shí)間推進(jìn)。這樣,就將仿真應(yīng)用組件與協(xié)議分離,最終達(dá)到組件可重用的目標(biāo)。
3.
【發(fā)明內(nèi)容】
[0009]3.1總體方案
[0010]本發(fā)明技術(shù)方案使用的仿真組件執(zhí)行方法能夠使仿真成員驅(qū)動(dòng)各組件化的仿真應(yīng)用,根據(jù)組件之間數(shù)據(jù)關(guān)系的描述,組織各仿真組件的運(yùn)行與數(shù)據(jù)交互,各并根據(jù)用戶指定的仿真協(xié)議分布式執(zhí)行,各仿真成員間依照用戶定義的仿真成員間數(shù)據(jù)交換協(xié)議進(jìn)行數(shù)據(jù)交互。
[0011]仿真運(yùn)行引擎負(fù)責(zé)加載和執(zhí)行仿真組件,并傳遞仿真組件間的數(shù)據(jù),通過使用不同的底層插件,是組件能夠在不同通信協(xié)議的平臺(tái)上運(yùn)行。仿真組件以及仿真組件運(yùn)行引擎的架構(gòu)圖見附圖-1仿真組件運(yùn)行引擎層次框架圖
[0012]3.2仿真組件的執(zhí)行方法
[0013]仿真組件的執(zhí)行有三個(gè)功能點(diǎn):仿真組件在初始化時(shí)的加載、仿真組件在運(yùn)行過程中的數(shù)據(jù)交互和仿真組件運(yùn)行的仿真時(shí)間推進(jìn)方式。
[0014]下面對(duì)每個(gè)功能點(diǎn)的原理做詳細(xì)描述:
[0015]仿真組件的加載
[0016]組件運(yùn)行引擎在初始化時(shí)首先讀取仿真組件包中的仿真組件描述文件,將仿真組件動(dòng)態(tài)鏈接庫(kù)動(dòng)態(tài)加載,并調(diào)用組件庫(kù)中的組件實(shí)例化接口將組件實(shí)例化為組件對(duì)象。對(duì)于復(fù)合組件,同級(jí)組件之間、父子組件之間都存在數(shù)據(jù)交互,組件運(yùn)行引擎解析仿真組件描述文件中的組件數(shù)據(jù)交互關(guān)系,將數(shù)據(jù)交互關(guān)系作為數(shù)據(jù)連線對(duì)象存儲(chǔ)在對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。
[0017]仿真組件間的數(shù)據(jù)交互
[0018]在仿真運(yùn)行時(shí),仿真組件每個(gè)仿真周期運(yùn)行一次,組件接口的調(diào)用順序依次為:執(zhí)行、發(fā)送事件、輸出接口。執(zhí)行一個(gè)仿真周期的邏輯是這樣的,由組件運(yùn)行引擎調(diào)用仿真組件執(zhí)行函數(shù),完成一個(gè)周期內(nèi)部的仿真邏輯解算,仿真組件將運(yùn)行過程中產(chǎn)生的事件和數(shù)據(jù)存入內(nèi)部的變量中,通過組件發(fā)送事件和輸出接口的返回參數(shù)將發(fā)送的事件和數(shù)據(jù)交給組件運(yùn)行引擎。組件運(yùn)行引擎通過調(diào)用組件的發(fā)送事件和輸出接口取得組件向外發(fā)送的事件和數(shù)據(jù),通過事先保存的數(shù)據(jù)連線關(guān)系,找到對(duì)應(yīng)的組件,將發(fā)送方的事件和數(shù)據(jù)打包傳遞給接收組件,然后運(yùn)行下一個(gè)組件。
[0019]仿真組件之間的數(shù)據(jù)交互流程見附圖2-仿真組件加載流程圖。
[0020]仿真組件的時(shí)間推進(jìn)
[0021]組件運(yùn)行引擎的仿真運(yùn)行步長(zhǎng)是根據(jù)仿真實(shí)體運(yùn)行時(shí)設(shè)置的仿真步長(zhǎng)自動(dòng)計(jì)算的。組件運(yùn)行引擎在初始化時(shí)根據(jù)取得加載所有仿真實(shí)體的步長(zhǎng)值,并計(jì)算這些步長(zhǎng)值的最大公約數(shù),組件運(yùn)行引擎以此作為仿真運(yùn)行步長(zhǎng)對(duì)仿真組件進(jìn)時(shí)間推進(jìn),組件運(yùn)行引擎在推進(jìn)過程中遍歷并判斷仿真實(shí)體是否應(yīng)該到運(yùn)行時(shí)間,如果已經(jīng)到運(yùn)行時(shí)間,則將該仿真實(shí)體下的所有組件運(yùn)行一遍。
[0022]仿真組件的時(shí)間推進(jìn)流程見圖1-仿真時(shí)間推進(jìn)流程圖
4.【專利附圖】
【附圖說明】
[0023]圖1-仿真組件運(yùn)行引擎層次框架圖
[0024]圖2-仿真組件加載流程圖
[0025]圖3-仿真組件數(shù)據(jù)交互流程圖
[0026]圖4-仿真時(shí)間推進(jìn)流程圖
5.【具體實(shí)施方式】
[0027]本發(fā)明技術(shù)方案使用動(dòng)態(tài)加載組件技術(shù),面向?qū)ο蠊S的模式創(chuàng)建并管理組件實(shí)例;使用讀取組件描述文件,實(shí)例化組件之間的數(shù)據(jù)關(guān)系,在運(yùn)行時(shí)根據(jù)這些數(shù)據(jù)關(guān)系組織組件間數(shù)據(jù)交互;使用所有仿真實(shí)體步長(zhǎng)最大公約數(shù)推進(jìn)仿真時(shí)間,組件運(yùn)行引擎對(duì)不到仿真運(yùn)行時(shí)間的仿真組件不進(jìn)行運(yùn)行調(diào)用。
[0028]本發(fā)明技術(shù)方案介紹的通用仿真組件執(zhí)行方法使仿真應(yīng)用構(gòu)建者能夠利用它執(zhí)行可重用的仿真組件,從而快速搭建滿足需求的仿真應(yīng)用系統(tǒng)。
【權(quán)利要求】
1.一種通用仿真組件的執(zhí)行方法,其特征在于: 具有:用于加載并執(zhí)行通用仿真組件的執(zhí)行引擎,能夠讀取通用組件的描述信息,將組件按照描述信息中配置的結(jié)構(gòu)和組件交互方式,將組件實(shí)例化為內(nèi)存中的組件運(yùn)行實(shí)例、信息交互關(guān)系實(shí)例、仿真實(shí)體實(shí)例。仿真組件運(yùn)行引擎加載完畢組件后,能夠根據(jù)用戶對(duì)仿真實(shí)體設(shè)定的仿真步長(zhǎng)對(duì)所有仿真組件進(jìn)行仿真推進(jìn)。在仿真推進(jìn)過程中,仿真組件運(yùn)行引擎對(duì)各個(gè)仿真組件按照運(yùn)行、取得輸出數(shù)據(jù)和發(fā)送事件、根據(jù)數(shù)據(jù)交互關(guān)系直接推送數(shù)據(jù)和事件到指定組件的過程進(jìn)行執(zhí)行。
【文檔編號(hào)】G06F9/445GK103455339SQ201210169670
【公開日】2013年12月18日 申請(qǐng)日期:2012年5月29日 優(yōu)先權(quán)日:2012年5月29日
【發(fā)明者】耿新階, 張海兵, 陳洪博, 劉思偉 申請(qǐng)人:北京神州普惠科技股份有限公司