本發(fā)明涉及一種面向多學科異構(gòu)模型的仿真試驗系統(tǒng),屬于航天產(chǎn)品系統(tǒng)仿真技術領域。
背景技術:
運載火箭飛行過程通常要經(jīng)歷一些較為復雜的物理過程,如尾罩分離、助推分離、級間分離、星箭分離等分離過程以及液體火箭的縱向耦合振動等等。這些過程常常伴隨持續(xù)時間較短、多學科耦合較強等特點,是當前型號研制的重點關注環(huán)節(jié),是影響運載火箭可靠性的重要因素,因此需要利用多專業(yè)綜合分析的手段開展相關過程的仿真復現(xiàn)與機理研究工作,充分提升型號研制的可靠性。
國內(nèi)在航天產(chǎn)品研制中開展了大量仿真工作,形成了許多研究成果,并且構(gòu)建了一些仿真應用系統(tǒng)。這些仿真成果或系統(tǒng)未充分考慮流體、結(jié)構(gòu)、動力學、控制等不同領域模型的異構(gòu)特點,導致在模型集成能力、流程配置能力、聯(lián)合仿真能力等方面明顯存在不足,無法直接應用于相關領域的耦合仿真應用。目前,通過利用fluent、abaqus、adams、matlab、ls‐dyna等商業(yè)軟件二次開發(fā)和自研等途徑,已經(jīng)研制了一些異構(gòu)模型(由不同商業(yè)軟件不同建模語言構(gòu)建),如流體、控制、動力學和載荷等學科專業(yè)軟件模型,用于運載火箭地面或飛行試驗的機理分析。但是,這些異構(gòu)模型均是針對特定專業(yè)從某一角度開展的仿真分析工作,建模工具與方式均存在較大差異,格式不統(tǒng)一,運行配置接口多樣,不利于多專業(yè)多因素綜合分析。同時在仿真試驗的運行過程,涉及到高性能集群計算機、圖形工作站等各類硬件資源的訪問與調(diào)度。目前,針對不同的仿真試驗,通常會選用特定的硬件應用環(huán)境,開發(fā)不同的接口與工具,這樣會導致人力、經(jīng)費等資源的浪費。
另外,每個模型均是針對特定問題研制的,模型運行流程也隨之固化。當面臨新的仿真需求時,固化的運行流程會致使仿真試驗模型利用率低,這樣會帶來重復建設,存在復用性差等問題,不利于各類異構(gòu)模型的仿真試驗集成與配置,不能實現(xiàn)多專業(yè)交互耦合仿真。
技術實現(xiàn)要素:
本發(fā)明的技術解決問題是:克服現(xiàn)有技術的不足,提供一種面向多學科異構(gòu)模型的仿真試驗系統(tǒng),統(tǒng)一了各個異構(gòu)模型的接口,能夠根據(jù)仿真目的設置仿真流程,并能統(tǒng)一管理和配置仿真試驗資源,實現(xiàn)了多專業(yè)交互耦合仿真,并提升了仿真試驗運行效率。
本發(fā)明的技術解決方案是:一種面向多學科異構(gòu)模型的仿真試驗系統(tǒng),包括異構(gòu)模型建模子系統(tǒng)、異構(gòu)模型封裝子系統(tǒng)、仿真試驗流程設計子系統(tǒng)、仿真試驗資源配置子系統(tǒng)以及仿真試驗控制子系統(tǒng);
異構(gòu)模型建模子系統(tǒng):接收各個領域的模型,根據(jù)多專業(yè)耦合仿真目的,定義各個模型的運行流程、各個模型仿真計算前后與仿真試驗控制子系統(tǒng)的接口以及交互參數(shù);所述接口包括控制接口和參數(shù)接口;
異構(gòu)模型封裝子系統(tǒng):配置每個模型的基本信息以及運行所需的資源信息;根據(jù)異構(gòu)模型建模子系統(tǒng)定義的交互參數(shù)生成每個模型的模型參數(shù)文件;將每個模型的基本信息和模型參數(shù)文件輸出給仿真試驗流程設計子系統(tǒng);將每個模型運行所需的資源信息輸出給仿真試驗資源配置子系統(tǒng);
仿真試驗流程設計子系統(tǒng):根據(jù)多專業(yè)聯(lián)合仿真目的,配置仿真試驗流程,將配置好的仿真試驗流程輸出給仿真試驗資源配置子系統(tǒng)和仿真試驗控制子系統(tǒng);根據(jù)每個模型的基本信息和模型參數(shù)文件,設置仿真試驗流程中各個交互模型的參數(shù)匹配關系,并輸出給仿真試驗控制子系統(tǒng);
仿真試驗資源配置子系統(tǒng):根據(jù)各個模型運行所需要的資源信息以及仿真試驗系統(tǒng)當前可用的資源信息,在仿真試驗流程中為每個模型配置計算節(jié)點和運行目錄;所述資源信息指計算節(jié)點信息;
仿真試驗控制子系統(tǒng):根據(jù)異構(gòu)模型建模子系統(tǒng)定義的交互參數(shù),為每種仿真試驗流程定義不同試驗工況,在每種工況下,利用異構(gòu)模型建模子系統(tǒng)定義的接口,按照仿真試驗流程、每個模型的模型參數(shù)文件以及各個交互模型的參數(shù)匹配關系,向相應的模型發(fā)送控制指令、輸入?yún)?shù),并接收響應信號和輸出參數(shù),根據(jù)各個模型的輸出參數(shù)獲取每次聯(lián)合仿真試驗獲得的樣本數(shù)據(jù)。
還包括異構(gòu)模型交互子系統(tǒng),所述異構(gòu)模型交互子系統(tǒng)用于配置各個模型的運行方式為單步運行,并定義各個模型每一計算步驟下與仿真試驗控制子系統(tǒng)的接口和交互參數(shù);
異構(gòu)模型封裝子系統(tǒng)根據(jù)異構(gòu)模型交互子系統(tǒng)定義的交互參數(shù)生成每個模型的過程參數(shù)文件;
當多專業(yè)聯(lián)合仿真為耦合仿真時,仿真試驗控制子系統(tǒng)按照仿真試驗流程、每個模型的過程參數(shù)文件,通過與每個模型每一計算步驟下的接口控制每個模型單步運行,實現(xiàn)各個異構(gòu)模型運行過程的協(xié)同控制,并根據(jù)每個模型的模型參數(shù)文件以及各個交互模型的參數(shù)匹配關系,完成聯(lián)合仿真,獲取樣本數(shù)據(jù)。
所述模型參數(shù)文件和過程參數(shù)文件均包括參數(shù)變量名、數(shù)據(jù)類型、屬性、缺省值、參數(shù)單位、參數(shù)含義、參數(shù)類型、維度類型,所述屬性是指輸入或輸出,參數(shù)類型是指仿真計算前、仿真計算過程中、仿真計算后。
所述仿真試驗資源配置子系統(tǒng)為每個模型配置計算節(jié)點的方法為:
(4.1)獲取仿真試驗系統(tǒng)當前可用的計算節(jié)點信息,將當前可用的計算節(jié)點及節(jié)點組合按照核數(shù)總數(shù)從小到大排序,得到計算節(jié)點序列;
(4.2)根據(jù)當前待運行模型所需要的計算核數(shù)x,從計算節(jié)點序列中提取核數(shù)總數(shù)不小于x的部分序列作為備選序列;
(4.3)從備選序列中提取核數(shù)總數(shù)最小的計算節(jié)點及節(jié)點組合,如果存在核數(shù)總數(shù)最小的計算節(jié)點,則直接將該模型分配給核數(shù)總數(shù)最小的計算節(jié)點;否則,選擇計算節(jié)點數(shù)最少的節(jié)點組合,將該模型分配給所述計算節(jié)點數(shù)最少的節(jié)點組合。
與現(xiàn)有技術相比,本發(fā)明具有如下有益效果:
(1)本發(fā)明通過異構(gòu)模型建模子系統(tǒng)和異構(gòu)模型交互子系統(tǒng)建立各個異構(gòu)模型與仿真試驗控制子系統(tǒng)的接口,實現(xiàn)了各個異構(gòu)模型接口的統(tǒng)一,能夠根據(jù)仿真目的設置仿真流程,實現(xiàn)了多專業(yè)交互耦合仿真。同時根據(jù)仿真目的設置仿真流程,能夠?qū)崿F(xiàn)各個異構(gòu)模型的仿真試驗集成與配置,避免重復建設,提高模型復用性。
(2)本發(fā)明通過異構(gòu)模型交互子系統(tǒng)配置每個模型為單步運行,保證了耦合仿真時模型間嚴格同步,實現(xiàn)各類異構(gòu)模型的協(xié)同運行。
(3)仿真試驗控制子系統(tǒng)根據(jù)模型參數(shù)文件和過程參數(shù)文件中參數(shù)含義、屬性和參數(shù)類型等信息,實現(xiàn)交互模型間不同變量名的參數(shù)匹配,為實現(xiàn)聯(lián)合仿真提供基本條件。
(4)本發(fā)明仿真試驗資源配置子系統(tǒng)根據(jù)各個模型運行所需要的資源信息、仿真試驗系統(tǒng)當前可用的資源信息,根據(jù)仿真試驗流程為每個模型配置計算節(jié)點,實現(xiàn)了計算資源的統(tǒng)一管理和靈活配置,提升仿真試驗運行效率。
附圖說明
圖1為本發(fā)明組成框圖;
圖2為本發(fā)明異構(gòu)模型單步運行流程圖;
圖3為考慮了事件驅(qū)動的仿真試驗運行流程圖。
具體實施方式
本發(fā)明提供一種面向多學科異構(gòu)模型的仿真試驗系統(tǒng),如圖1所示,包括異構(gòu)模型建模子系統(tǒng)、異構(gòu)模型交互子系統(tǒng)、異構(gòu)模型封裝子系統(tǒng)、仿真試驗流程設計子系統(tǒng)、仿真試驗資源配置子系統(tǒng)以及仿真試驗控制子系統(tǒng)。多學科模型包括流體計算模型、結(jié)構(gòu)計算模型、控制計算模型、載荷計算模型等等。
(一)、異構(gòu)模型建模子系統(tǒng)
接收各個學科的模型,根據(jù)多專業(yè)耦合仿真目的,定義各個模型的運行流程、各個模型仿真計算前后與仿真試驗控制子系統(tǒng)的接口(包括控制接口和參數(shù)接口)以及交互參數(shù)。
(二)、異構(gòu)模型交互子系統(tǒng)
異構(gòu)模型交互子系統(tǒng)用于配置各個模型的運行方式為單步運行,并定義各個模型每一計算步驟下與仿真試驗控制子系統(tǒng)的接口和交互參數(shù)。異構(gòu)模型封裝子系統(tǒng)根據(jù)異構(gòu)模型交互子系統(tǒng)定義的交互參數(shù)生成每個模型的過程參數(shù)文件。
當多專業(yè)聯(lián)合仿真為耦合仿真時,仿真試驗控制子系統(tǒng)按照仿真試驗流程、每個模型的過程參數(shù)文件,通過與每個模型每一計算步驟下的接口控制每個模型單步運行,實現(xiàn)各個異構(gòu)模型運行過程的協(xié)同控制,并根據(jù)每個模型的模型參數(shù)文件以及各個交互模型的參數(shù)匹配關系,完成聯(lián)合仿真,獲取樣本數(shù)據(jù)。
異構(gòu)模型交互子系統(tǒng)主要分為模型初始化、接受模型輸入?yún)?shù)、模型單步計算、發(fā)送模型輸出參數(shù)、模型暫停等步驟。
其中,模型初始化的具體操作過程如下:接受初始化參數(shù),進行模型的初始化計算與配置,生成初始的計算模型,發(fā)送模型初始化完成命令。
模型單步計算的具體操作過程如下:接受仿真試驗控制子系統(tǒng)中的模型運行命令,接受模型輸入?yún)?shù),模型啟動進行下一步計算求解與配置,發(fā)送模型輸出參數(shù),之后發(fā)送模型單步計算結(jié)束命令。
(三)、異構(gòu)模型封裝子系統(tǒng)
配置每個模型的基本信息以及運行所需的資源信息;根據(jù)異構(gòu)模型建模子系統(tǒng)定義的交互參數(shù)生成每個模型的模型參數(shù)文件,根據(jù)異構(gòu)模型交互子系統(tǒng)定義的交互參數(shù)生成每個模型的過程參數(shù)文件;將每個模型的基本信息和模型參數(shù)文件、過程參數(shù)文件輸出給仿真試驗流程設計子系統(tǒng);將每個模型運行所需的資源信息輸出給仿真試驗資源配置子系統(tǒng)。
模型參數(shù)文件和過程參數(shù)文件均包括參數(shù)變量名、數(shù)據(jù)類型、屬性、缺省值、參數(shù)單位、參數(shù)含義、參數(shù)類型、維度類型,所述屬性是指輸入或輸出,參數(shù)類型是指仿真計算前、仿真計算過程中、仿真計算后。
如:參數(shù)變量名:flow_time;數(shù)據(jù)類型:double;屬性:output;缺省值:0;參數(shù)單位:m/s;參數(shù)含義:速度;參數(shù)類型:仿真計算前;維度類型:三維。
(四)、仿真試驗流程設計子系統(tǒng)
根據(jù)多專業(yè)聯(lián)合仿真目的,為仿真試驗控制子系統(tǒng)配置仿真試驗流程,將配置好的仿真試驗流程輸出給仿真試驗資源配置子系統(tǒng)和仿真試驗控制子系統(tǒng);根據(jù)每個模型的基本信息和模型參數(shù)文件,設置仿真試驗流程中各個交互模型的參數(shù)匹配關系,并輸出給仿真試驗控制子系統(tǒng)。
仿真試驗流程設計子系統(tǒng)配置仿真試驗流程具體包括進行仿真流程編輯和異構(gòu)模型關聯(lián)、仿真運行設置,其中:
仿真流程編輯和異構(gòu)模型關聯(lián)的具體操作過程如下:按照設定的仿真內(nèi)容明確各異構(gòu)模型,并確定每個異構(gòu)模型的運行次序與參數(shù)傳遞關系,并根據(jù)異構(gòu)模型的運行次序關系進行關聯(lián)。
仿真運行設置的具體操作過程如下:依據(jù)仿真試驗運行的時序關系,細化設置每個異構(gòu)模型,明確起止時間、仿真步長、數(shù)據(jù)同步點等。按照多專業(yè)聯(lián)合仿真目的,仿真試驗流程包括串行流程、并行流程和同步運行配置。
(五)、仿真試驗資源配置子系統(tǒng)
仿真試驗資源配置子系統(tǒng)根據(jù)各個模型運行所需要的資源信息以及仿真試驗系統(tǒng)當前可用的資源信息,在仿真試驗流程中為每個模型配置計算節(jié)點和運行目錄。
仿真試驗資源配置子系統(tǒng)為每個模型配置計算節(jié)點的方法為:
(4.1)獲取仿真試驗系統(tǒng)當前可用的計算節(jié)點信息,將當前可用的計算節(jié)點及節(jié)點組合按照核數(shù)總數(shù)從小到大排序,得到計算節(jié)點序列;
(4.2)根據(jù)當前待運行模型所需要的計算核數(shù)x,從計算節(jié)點序列中提取核數(shù)總數(shù)不小于x的部分序列作為備選序列;
(4.3)從備選序列中提取核數(shù)總數(shù)最小的計算節(jié)點及節(jié)點組合,如果存在核數(shù)總數(shù)最小的計算節(jié)點,則直接將該模型分配給核數(shù)總數(shù)最小的計算節(jié)點;否則,選擇計算節(jié)點數(shù)最少的節(jié)點組合,將該模型分配給所述計算節(jié)點數(shù)最少的節(jié)點組合。
對上述方法舉例說明如下:
本次耦合仿真試驗共有兩個模型,分別為模型a與模型b;模型a和模型b所需要的資源信息均為32核。
當仿真試驗控制子系統(tǒng)啟動模型a時,仿真試驗資源配置子系統(tǒng)檢查確認系統(tǒng)當前可用的計算節(jié)點資源,假設仿真試驗系統(tǒng)當前共有三類計算節(jié)點資源可用,分別為一個64核的節(jié)點、一個32核節(jié)點和兩個16核的節(jié)點,則計算節(jié)點序列為:一個64核的節(jié)點、一個32核節(jié)點、兩個16核的節(jié)點構(gòu)成的32核節(jié)點以及兩個16核節(jié)點。按照上述方法提取的備選序列為:一個64核的節(jié)點、一個32核節(jié)點、兩個16核的節(jié)點構(gòu)成的32核節(jié)點。將模型a分配給一個32核節(jié)點。
當仿真試驗控制子系統(tǒng)啟動模型b時,如果模型a已運行結(jié)束,仿真試驗資源配置子系統(tǒng)重新檢查確認系統(tǒng)當前可用的計算節(jié)點資源,假設仿真試驗系統(tǒng)當前共有三類計算節(jié)點資源可用,分別為一個64核的節(jié)點、兩個16核節(jié)點和四個8核的節(jié)點,則計算節(jié)點序列為:一個64核的節(jié)點、兩個16核的節(jié)點夠構(gòu)成的32核節(jié)點、一個16核的節(jié)點和兩個8核的節(jié)點構(gòu)成的32核節(jié)點、四個8核的節(jié)點構(gòu)成的32核節(jié)點、兩個16核節(jié)點、四個8核節(jié)點。按照上述方法提取的備選序列為:一個64核的節(jié)點、兩個16核的節(jié)點構(gòu)成的32核節(jié)點、四個8核的節(jié)點構(gòu)成的32核節(jié)點。將模型b分配給兩個16核節(jié)點構(gòu)成的32核節(jié)點組合上。
(六)、仿真試驗控制子系統(tǒng)
仿真試驗控制子系統(tǒng)根據(jù)仿真試驗目的,將每個異構(gòu)模型的模型參數(shù)文件統(tǒng)一起來,生成仿真試驗參數(shù),進行仿真試驗變量設置,具體操作過程如下:根據(jù)仿真試驗目的,從仿真試驗參數(shù)中,選定試驗工況參數(shù)變量,設置參數(shù)變量的取值空間,選取生成變量值數(shù)列的方法,生成仿真試驗參數(shù)的輸入樣本,完成仿真試驗變量配置。
根據(jù)異構(gòu)模型建模子系統(tǒng)定義的交互參數(shù),為每種仿真試驗流程定義不同的試驗工況,多工況設置的具體操作過程如下:按照仿真試驗工況條件,利用所配置的仿真試驗變量,選擇全因子法、正交法或均勻設計等方法其中之一的方法,生成仿真試驗的各種工況組合,完成試驗的多工況設置。
在每種工況下,利用異構(gòu)模型建模子系統(tǒng)定義的接口和異構(gòu)模型交互子系統(tǒng)定義的接口,按照仿真試驗流程、每個模型的過程參數(shù)文件、每個模型的模型參數(shù)文件以及各個交互模型的參數(shù)匹配關系,向相應的模型發(fā)送控制指令、輸入?yún)?shù),實現(xiàn)各個異構(gòu)模型運行過程的協(xié)同控制,并接收響應信號和輸出參數(shù),根據(jù)各個模型的輸出參數(shù)獲取每次聯(lián)合仿真試驗獲得的樣本數(shù)據(jù)。
如圖2所示,為本發(fā)明異構(gòu)模型單步運行流程圖,以模型m為例,首先要進行仿真初始化,完成接口和交互參數(shù)設置,然后該模型在仿真試驗控制子系統(tǒng)控制下進行單步迭代計算,如果計算步結(jié)束,則進行仿真后處理,否則判斷是否調(diào)用其他模型,如果是,則將該模型輸出參數(shù)發(fā)送給要調(diào)用模型n,進行調(diào)用模型n計算,將調(diào)用模型n的輸出參數(shù)輸出給模型m,繼續(xù)重復上述步驟。直到模型m運行結(jié)束。
實際上,仿真試驗控制子系統(tǒng)也能實現(xiàn)基于事件驅(qū)動的仿真,在預先定義的觸發(fā)事件到來時,即中斷當前運行,啟動相應模型。圖3為以計算模型為出發(fā)點,考慮了事件驅(qū)動的仿真試驗運行流程圖。首先是計算模型a進行計算,獲得計算結(jié)果,然后執(zhí)行下面步驟:
如果本時間步?jīng)]有下游計算模型,則判斷當前事件仿真是否結(jié)束,如果沒有,則進入下一個時間步的仿真計算,如果結(jié)束,則判斷是否有下一個仿真事件,沒有,則仿真結(jié)束,如果有下一個仿真事件,則激發(fā)下一個仿真事件,執(zhí)行新的仿真時間步;
如果本時間步有下游計算模型,則下游計算模型開始計算,獲得計算結(jié)果。不斷重復執(zhí)行上面步驟,直到完成整個聯(lián)合仿真。
本發(fā)明說明書中未作詳細描述的內(nèi)容屬于本領域?qū)I(yè)技術人員的公知技術。