一種連續(xù)系統(tǒng)模型的分布式交互方法
【專利摘要】本發(fā)明屬于連續(xù)系統(tǒng)的分布式仿真領域,提出一種連續(xù)系統(tǒng)模型的分布式交互方法,具體包括以下幾個步驟:步驟一:將連續(xù)系統(tǒng)模型分割為若干子模型;步驟二:確定仿真引擎的時間推進步長;步驟三:對每個子模型作適當?shù)男拚?;步驟四:對所有子模型進行初始化;步驟五:對修正后的子模型進行并行解算;步驟六:判斷是否滿足仿真結束條件。本發(fā)明的分布式交互方法,切實有效地解決了連續(xù)系統(tǒng)模型在并行仿真中存在的嚴重偏差問題,可以充分利用分布式仿真環(huán)境的優(yōu)勢,提高仿真的效率。本發(fā)明提出一種連續(xù)系統(tǒng)模型的分布式交互方法,能夠有效利用分布式仿真環(huán)境進行并行解算,提高仿真效率。
【專利說明】一種連續(xù)系統(tǒng)模型的分布式交互方法
【技術領域】
[0001]本發(fā)明屬于連續(xù)系統(tǒng)模型的分布式仿真領域,具體涉及一種連續(xù)系統(tǒng)模型的分布式交互方法。
【背景技術】
[0002]分布式仿真是系統(tǒng)仿真的一個新方向,在軍事領域得到了廣泛地應用,其深遠的工程應用價值,已引起世界各國的廣泛重視。它一般采用協(xié)調(diào)一致的結構、標準和協(xié)議,通過網(wǎng)絡將分散在各地的仿真設備進行互聯(lián),其特點主要表現(xiàn)為分布性、交互性、異構性、時空一致性和開放性。分布式交互仿真技術使大規(guī)模復雜系統(tǒng)的仿真成為可能,并有效降低了仿真成本。
[0003]然而,對于連續(xù)系統(tǒng)模型,為了保證仿真結果的正確性,通常各個子系統(tǒng)的解算需要依照一定的解算次序,這種依序串行的解算方式在分布式仿真中顯然不能有效地提高仿真效率。為了充分地利用分布式仿真的資源,需要將各個子模型并行解算,但是單純的并行解算可能導致仿真結果出現(xiàn)較大的偏差。由此可見,無論是依序串行解算還是單純并行解算,都不能充分發(fā)揮分布式仿真的優(yōu)勢,有必要探索分布式仿真的并行式解算以解決現(xiàn)有方法的不足。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是為了解決上述問題,提出一種連續(xù)系統(tǒng)模型的分布式交互方法,在科學理論研究和實際工程應用中,可有效提高連續(xù)系統(tǒng)模型在分布式仿真環(huán)境下的解算效率。
[0005]本發(fā)明提出一種連續(xù)系統(tǒng)模型的分布式交互方法,具體包括以下幾個過程:
[0006]步驟一:將連續(xù)系統(tǒng)模型分割為若干子模型。
[0007]步驟二:確定仿真引擎的時間推進步長。
[0008]步驟三:對子模型作修正。
[0009]步驟四:對子模型進行初始化。
[0010]步驟五:對修正后的子模型進行并行解算。
[0011]步驟六:判斷是否滿足仿真結束條件。
[0012]本發(fā)明具有以下優(yōu)點:
[0013](I)本發(fā)明提出一種連續(xù)系統(tǒng)模型的分布式交互方法,能夠有效利用分布式仿真環(huán)境進行并行解算,提聞仿真效率;
[0014](2)本發(fā)明提出一種連續(xù)系統(tǒng)模型的分布式交互方法,能夠有效降低仿真系統(tǒng)對通信延遲的不利影響和對外部資源的依賴程度;
[0015](3)本發(fā)明提出一種連續(xù)系統(tǒng)模型的分布式交互方法支持與其他模型及平臺進行聯(lián)合分布交互仿真。
【專利附圖】
【附圖說明】
[0016]圖1是本發(fā)明提出的一種連續(xù)系統(tǒng)模型的分布式交互方法流程圖;
[0017]圖2是實施例中集中式仿真的控制系統(tǒng);
[0018]圖3是實施例中控制系統(tǒng)子模型I ;
[0019]圖4是實施例中控制系統(tǒng)子模型2 ;
[0020]圖5是實施例中經(jīng)過修正后的子模型I ;
[0021]圖6是實施例用三種仿真方式的結果。
【具體實施方式】
[0022]下面將結合附圖和實例對本發(fā)明作進一步的詳細說明。
[0023]本發(fā)明基于連續(xù)系統(tǒng)的頻域分析建模,將連續(xù)系統(tǒng)分割為若干個子模型,且子模型之間存在著因果關系,通過比較并行式解算與串行依次解算的流程,可以發(fā)現(xiàn),并行式解算在仿真過程中對連續(xù)系統(tǒng)模型做了修改,相當于引入了滯后環(huán)節(jié),因而可通過對滯后環(huán)節(jié)進行補償,以減小仿真結果的偏差。
[0024]本發(fā)明提出一種連續(xù)系統(tǒng)模型的分布式交互方法,如圖1所示,具體包括以下幾個過程:
[0025]步驟一:將連續(xù)系統(tǒng)模型分割為若干子模型。
[0026]在分布式仿真環(huán)境中,一個連續(xù)系統(tǒng)將被分割為若干個子模型,且子模型之間存在著數(shù)據(jù)交互關系,并分別部署在不同的計算機上。這種分割可以按照各個子模型的功能劃分,也可單純的按數(shù)值計算復雜性劃分。子模型按照輸出與輸入的關系,可以分為兩類:第一類子模型在tn時刻的輸出Yn依賴于該時刻的輸入Xn,即Yn = g(Xn),第二類子模型在tn時刻的輸出Yn只依賴于V1時刻的輸入Xlri,即Yn = g (Xn^1),因此,第一類子模型必須要先更新輸入,然后才能進行內(nèi)部解算,再更新輸出;而第二類子模型卻可以先更新輸出,再更新輸入值并進行內(nèi)部解算。
[0027]步驟二:確定仿真引擎的時間推進步長。
[0028]計算各個子模型的解算周期的最大公約數(shù)作為仿真引擎的時間推進步長。
[0029]步驟三:對子模型作修正。
[0030]單純的并行式仿真相當于在子模型的輸入與輸出之間加入了一個滯后環(huán)節(jié) ,因而可以通過在子模型中適當添加一個超前環(huán)節(jié)進行補償。需要注意的是,如果子
/、t I
模型為一階系統(tǒng),則添加一個超前環(huán)節(jié)將改變子模型的類型,使得子模型從第二類子模型轉變?yōu)榈谝活愖幽P汀?br>
[0031]對于一階模型F = J7Z,等價于f y v例如仿真時采用Euler法,則有
5 + 1Y=A-Y ,
[0032]Yn+1-Yn = h (Xn-Yn),
[0033]可見,它是第二類子模型。但添加一個超前環(huán)節(jié)Ts+Ι后,變?yōu)閅~—~= TX +---X ,顯然,在tn時刻的輸出Yn依賴于當前時刻的輸入Xn,屬第一類子
S + IΛ' + I模型。
[0034]特別地,若子模型階次低于1,則添加一個超前環(huán)節(jié)后,物理模型將不可實現(xiàn)。因此,不能采用上述方法對該子模型進行修正,但可通過對與之因果相關的子模型作進一步修正,以減小整個系統(tǒng)的仿真偏差。
[0035]步驟四:對各子模型進行初始化。
[0036]依次調(diào)用各子模型的初始化函數(shù)接口,完成子模型的初始化。還需將其輸出傳遞到相應的其他子模型的輸入接口。
[0037]步驟五:對修正后的子模型進行并行解算。
[0038]在每一個離散時間點上,每個子模型首先更新自己的輸入值,然后調(diào)用該子模型的內(nèi)部解算函數(shù)接口進行內(nèi)部解算,然后更新自己的輸出值,并將輸出傳遞到相應的子模型的輸入接口。
[0039]步驟六:判斷是否滿足仿真結束條件。
[0040]若滿足結束條件,則仿真結束;否則繼續(xù)推進一個時間步長。
[0041]本發(fā)明基于連續(xù)系統(tǒng)的頻域分析建模。將連續(xù)系統(tǒng)分割為若干個子模型,且子模型之間存在著因果關系。通過比較并行式解算與串行依次解算的流程,可以發(fā)現(xiàn),并行式解算在仿真過程中對連續(xù)系統(tǒng)模型做了修改,相當于引入了滯后環(huán)節(jié),因而可通過對滯后環(huán)節(jié)進行補償,以減小仿真結果的偏差。
[0042]實施例:
[0043]下面針對某連續(xù)系統(tǒng)模型在分布式仿真環(huán)境中的并行解算實施例說明本發(fā)明。如圖2所示的連續(xù)系統(tǒng),利用MATLAB軟件的仿真模塊實現(xiàn)該連續(xù)系統(tǒng)的分布式交互仿真,包括以下幾個步驟:
[0044]步驟一:將該連續(xù)系統(tǒng)模型分解成兩個子模型。
[0045]該實施例中,按模塊功能不同將連續(xù)系統(tǒng)分為前向傳遞函數(shù)子模型I和反饋函數(shù)子模型2,分別如圖3、圖4所示。子模型I中當前時刻的輸出作為下一時刻的輸入,當前輸入均為前一時刻的輸出反饋,屬于第二類子模型;子模型2中存在小于I階的通道,該通道輸出必須依賴于當前時刻的輸入,因此屬于第一類子模型。并且子模型2中三個輸出端口分別對應于子模型I中的輸入端口。
[0046]步驟二:確定仿真引擎的時間推進步長。
[0047]計算各個子模型的解算周期的最大公約數(shù)作為仿真引擎的時間推進步長。本例中所有子模型都采用固定時間步長0.0ls推進,故仿真引擎的時間推進步長為0.0ls.
[0048]步驟三:對子模型作適當?shù)男拚?br>
[0049]單純的并行式仿真相當于在子模型的輸出與輸入之間加入了一個滯后環(huán)節(jié) ,這里的T = 0.01,因而可以通過在子模型中適當添加一個超前環(huán)節(jié)Ts+Ι進行補償。
Ts+ I
10
對子模型I釆用模型修正,具體是在其一階環(huán)節(jié)中添加一個超前環(huán)節(jié)。同樣也需要對
55 + 1
子模型2采用模型修正,但是在子模型2中的輸入與輸出之間存在著小于I階的通道,這種情況是無法采用模型修正方式的。此時可以將這種修正添加到子模型I中以實現(xiàn)整個系統(tǒng)
10
對滯后的補償,即在子模型I中再添加一個超前環(huán)節(jié)Ts+1,最終子模型I中的環(huán)節(jié)變
5s+ \成α?Λ \10 (由于T = 0.01,故略去T2S2項),如圖5所示。
3‘v +1
[0050]步驟四:對子模型進行初始化。
[0051]依次調(diào)用子模型的初始化函數(shù)接口,在完成一個子模型的初始化后,還需將其輸出傳遞到相應的其他子模型的輸入接口。
[0052]該例中兩個子模型的所有狀態(tài)變量和輸出值均初始化為0,仿真采用固定時間步長 0.01s。
[0053]步驟五:對所有子模型并行解算。
[0054]在每一個離散時間點上,兩個子模型首先更新自己的輸入值,然后調(diào)用該子模型的內(nèi)部解算函數(shù)接口進行內(nèi)部解算,然后更新自己的輸出值,并將輸出值傳遞到相應的子模型的輸入接口。
[0055]步驟六:判斷是否滿足仿真結束條件。
[0056]若滿足結束條件,則仿真結束;否則繼續(xù)推進一個時間步長。
[0057]該實施例中,系統(tǒng)輸出隨時間變化的曲線如圖6所示,其中實線表示集中式仿真曲線,虛線表示單純并行式仿真曲線,圓圈表示模型修正后的仿真曲線。該實施例中,單純并行式仿真將導致系統(tǒng)發(fā)散,而修正后由于忽略了高階項,與真實系統(tǒng)存在較小誤差,但在允許誤差范圍內(nèi)。
[0058]可見,在一定情況下,采用該方法可以切實有效解決子模型并行仿真的問題,從而充分利用分布式仿真環(huán)境的優(yōu)勢,提高仿真的效率。但是該方法對子模型進行修正時,無法將建模過程與仿真過程分開,增加了建模過程的復雜性。
【權利要求】
1.一種連續(xù)系統(tǒng)模型的分布式交互方法,具體包括以下幾個過程: 步驟一:將連續(xù)系統(tǒng)模型分割為若干子模型; 在分布式仿真環(huán)境中,將連續(xù)系統(tǒng)模型分割為若干個子模型,子模型之間存在著數(shù)據(jù)交互關系,分別部署在不同的計算機上; 步驟二:確定仿真引擎的時間推進步長; 計算各個子模型的解算周期的最大公約數(shù)作為仿真引擎的時間推進步長; 步驟三:對子模型作修正; 在子模型中添加超前環(huán)節(jié),進行補償,當子模型為一階系統(tǒng)時,添加超前環(huán)節(jié)后,子模型從第二類子模型轉變?yōu)榈谝活愖幽P?,當子模型階次低于I時,不對子模型進行修正; 步驟四:對各子模型進行初始化; 依次調(diào)用各子模型的初始化函數(shù)接口,完成子模型的初始化,將子模型輸出傳遞到相應的其他子模型的輸入接口; 步驟五:對修正后的子模型進行并行解算; 在每一個離散時間點上,每個子模型首先更新自己的輸入值,然后調(diào)用該子模型的內(nèi)部解算函數(shù)接口進行內(nèi)部解算,然后更新自己的輸出值,并將輸出傳遞到相應的子模型的輸入接口 ; 步驟六:判斷是否滿足仿真結束條件; 若滿足結束條件,則仿真結束;否則繼續(xù)推進一個時間步長,繼續(xù)仿真。
2.根據(jù)權利要求1所述的一種連續(xù)系統(tǒng)模型的分布式交互方法,其特征在于:子模型按照輸出與輸入數(shù)據(jù)關系,分為兩類:第一類子模型在tn時刻的輸出Yn依賴于該時刻的輸入Xn,第二類子模型在tn時刻的輸出Yn只依賴于V1時刻的輸入XlrlO
3.根據(jù)權利要求1所述的一種連續(xù)系統(tǒng)模型的分布式交互方法,其特征在于:所述的步驟三中,當子模型階次低于I時,不對子模型進行修正,修正與之因果相關的子模型。
【文檔編號】G06F17/50GK104200022SQ201410433132
【公開日】2014年12月10日 申請日期:2014年8月28日 優(yōu)先權日:2014年8月28日
【發(fā)明者】王江云, 王永勝 申請人:北京航空航天大學