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