專利名稱:一種液體火箭發(fā)動(dòng)機(jī)通用化仿真方法
技術(shù)領(lǐng)域:
本發(fā)明主要用于液體火箭發(fā)動(dòng)機(jī)性能仿真技術(shù)領(lǐng)城。
背景技術(shù):
液體火箭發(fā)動(dòng)機(jī)仿真主要是用來(lái)進(jìn)行發(fā)動(dòng)機(jī)工作過(guò)程仿真,預(yù)測(cè)發(fā)動(dòng)機(jī)性能,為發(fā)動(dòng)機(jī)的設(shè)計(jì)和優(yōu)化提供理論依據(jù)?,F(xiàn)在為了提高研制液體火箭發(fā)動(dòng)機(jī)部件和系統(tǒng)仿真的工作效率,降低研制工作的難度,將研究人員從繁雜的計(jì)算機(jī)編程和代碼調(diào)試中解放出來(lái),開發(fā)出許多通用性好的仿真軟件。國(guó)內(nèi)目前在工程應(yīng)用較多的模塊化仿真是由國(guó)防科技大學(xué)劉昆開發(fā)的發(fā)動(dòng)機(jī)瞬變過(guò)程模塊化建模與仿真軟件(LRETMMSS),該軟件采用C++語(yǔ)言編寫而成,擁有可視化界 面,該軟件充分考慮到液體火箭發(fā)動(dòng)機(jī)起動(dòng)、關(guān)機(jī)過(guò)程中各種復(fù)雜動(dòng)態(tài)變化過(guò)程模型組合的需要,同時(shí)分割的模塊應(yīng)具有簡(jiǎn)單性和連接組裝的靈活方便性,采用管道一體積模塊劃分方法將液體火箭發(fā)動(dòng)機(jī)系統(tǒng)劃分為三大類共計(jì)21種模塊。但是,LRETMMSS軟件由于缺少模型動(dòng)態(tài)生成部分,因此該軟件在針對(duì)不同類型液體火箭發(fā)動(dòng)機(jī)進(jìn)行仿真時(shí)需要重新改進(jìn)其模型庫(kù),雖然實(shí)現(xiàn)了模型的封裝,但是通用性方面有待改善。北京航空航天大學(xué)的張黎輝依據(jù)此思想開發(fā)出了通用程度比較高的仿真軟件(RoD)。在此軟件中,為了解決仿真的通用性問(wèn)題,他開發(fā)出代碼生成工具。代碼生成指的是從模塊中的數(shù)學(xué)模型,即代碼文本,經(jīng)過(guò)附加算法,詞法分析和語(yǔ)法檢查,到生成令牌列表這一過(guò)程。但其求解器極為復(fù)雜,其工作量不亞于另行開發(fā)一個(gè)編譯環(huán)境,令牌分析能力有限。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種液體火箭發(fā)動(dòng)機(jī)通用化仿真方法,具有良好通用性和可行性,能夠給用戶提供更加靈活的、通用的、易操作的服務(wù),比如自由添加元件,定義元件的接口,物性參數(shù),乃至數(shù)學(xué)模型等。該液體火箭發(fā)動(dòng)機(jī)通用化仿真方法,包括以下步驟第一步構(gòu)建部件模型;將發(fā)動(dòng)機(jī)仿真計(jì)算的部件模型分為模型類和模型實(shí)例,首先通過(guò)可視化界面設(shè)置模型類的圖片、名稱、描述;設(shè)置模型類接口參數(shù)、物性參數(shù)、全局參數(shù)和仿真程序,構(gòu)建不同部件的模型即構(gòu)成模型類庫(kù);其中,模型類有多個(gè)數(shù)學(xué)模型,數(shù)學(xué)模型使用物性參數(shù)和接口參數(shù)進(jìn)行仿真計(jì)算,從接口參數(shù)讀取數(shù)據(jù)或向接口參數(shù)寫入數(shù)據(jù);第二步搭建系統(tǒng)仿真模型;將第一步中建立的模型類添加到仿真系統(tǒng)中,實(shí)現(xiàn)模型類的實(shí)例化,生成模型實(shí)例;確定好待仿真系統(tǒng)里的各個(gè)模型實(shí)例后,再根據(jù)系統(tǒng)中各部件之間的連接關(guān)系確定各模型實(shí)例之間的連接關(guān)系,將各模型實(shí)例的接口按實(shí)際系統(tǒng)的結(jié)構(gòu)連接起來(lái),最后設(shè)置仿真計(jì)算相關(guān)的參數(shù);第三步將模型文本生成可執(zhí)行代碼;根據(jù)搭建好的系統(tǒng)仿真模型,從模型實(shí)例中讀取數(shù)學(xué)模型、接口參數(shù)、物性參數(shù),通過(guò)分析處理生成中間代碼文件;然后,調(diào)用VDL編譯器對(duì)中間代碼文件進(jìn)行編譯、鏈接,生成可運(yùn)行的代碼,存儲(chǔ)于動(dòng)態(tài)鏈接庫(kù)(DLL)文件中;第四步系統(tǒng)仿真計(jì)算;首先,載入第三步中由模型文本生成的存有可執(zhí)行代碼的DLL文件,再進(jìn)行模型中相應(yīng)算法邏輯的仿真計(jì)算,并在計(jì)算開始時(shí)從數(shù)據(jù)交換區(qū)讀取數(shù)據(jù)傳遞給可運(yùn)行的代碼,在計(jì)算結(jié)束后將仿真結(jié)果存入數(shù)據(jù)交換區(qū)。如此循環(huán),直到仿真計(jì)算結(jié)束。
其中,在仿真計(jì)算開始時(shí),數(shù)據(jù)處理單元負(fù)責(zé)將模型實(shí)例中各參數(shù)字符串形式的數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù),并用這些數(shù)值型數(shù)據(jù)對(duì)數(shù)據(jù)交換區(qū)進(jìn)行初始化;仿真計(jì)算的過(guò)程中,將計(jì)算結(jié)果存儲(chǔ)到數(shù)據(jù)緩沖文件中,以方便圖形顯示單元的使用;仿真計(jì)算結(jié)束后,將數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符串形式的數(shù)據(jù),方便數(shù)據(jù)的顯示、查看。其中,仿真計(jì)算結(jié)束后,圖形顯示單元從數(shù)據(jù)緩沖文件中讀取計(jì)算結(jié)果數(shù)據(jù),對(duì)其進(jìn)行分析,并按照用戶的要求將計(jì)算結(jié)果以曲線的形式顯示出來(lái)。本發(fā)明的有益效果本發(fā)明的仿真模型構(gòu)建方式采用了 VDL文本編輯,可以實(shí)現(xiàn)模型的可視化編輯,其可執(zhí)行代碼由VDL編譯器動(dòng)態(tài)生成,保證仿真軟件通用性、允許用戶添加模型類的同時(shí),借助于第三方編譯器生成的代碼運(yùn)行效率更高,穩(wěn)定性和健壯性更好。同時(shí),本發(fā)明數(shù)據(jù)處理模塊采用了數(shù)據(jù)池技術(shù),加快了仿真模型的運(yùn)行速度。
圖I為本發(fā)明的液體火箭發(fā)動(dòng)機(jī)通用化仿真方法流程示意圖;圖2本發(fā)明模型類的結(jié)構(gòu)示意圖;圖3為本發(fā)明的液體火箭發(fā)動(dòng)機(jī)通用化仿真軟件結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明是一種液體火箭發(fā)動(dòng)機(jī)通用化仿真方法,實(shí)現(xiàn)該方法的軟件結(jié)構(gòu)示意圖見(jiàn)圖3,由模型構(gòu)建單元、系統(tǒng)搭建單元、代碼生成單元、計(jì)算單元、數(shù)據(jù)處理單元、圖形顯示單元六部分組成,各個(gè)部分相互獨(dú)立而又緊密聯(lián)系,共同構(gòu)成了一個(gè)不可分割的整體。其中,模型構(gòu)建單元和代碼生成單元是本軟件的核心部分,也是軟件通用性賴以實(shí)現(xiàn)的基礎(chǔ)。所述模型構(gòu)建單元的具體實(shí)施步驟是首先,設(shè)計(jì)模型類的身份識(shí)別碼(ID),此ID在模型類創(chuàng)建時(shí)就被確定下來(lái),并且是唯一的。用戶無(wú)論如何編輯模型類,都不會(huì)改變它的ID,除非將模型類從模型類庫(kù)中刪除。在用戶構(gòu)建好模型類,將其添加到模型類庫(kù)之前,軟件會(huì)檢查用戶輸入的模型類的計(jì)算程序部分是否存在邏輯和語(yǔ)法的錯(cuò)誤,以保證仿真計(jì)算時(shí)的正確性。其次,用戶可以通過(guò)可視化界面自定義模型類的圖片(圖片只要滿足*. Bmp形式要求,可隨意添加)、名稱、描述;再其次,通過(guò)點(diǎn)擊圖片的不同位置設(shè)置部件模型的接口,接口的名稱默認(rèn)為“PortO 1”,“Port02”,……,定義每個(gè)接口的接口參數(shù)、物性參數(shù)、全局參數(shù),最后通過(guò)可視化VDL文本界面添加發(fā)動(dòng)機(jī)部件的數(shù)學(xué)模型。其中,圖片是圖形化界面的一個(gè)重要組成部分,此圖片會(huì)在搭建系統(tǒng)的時(shí)候用來(lái)表示這種模型的實(shí)例。其中,接口變量是模型實(shí)例之間進(jìn)行數(shù)據(jù)通信的通道。物性參數(shù)是模型類自身的參數(shù),也可稱為局部參數(shù)。它代表的是模型本身的一些特征,比如管路的長(zhǎng)度,管路的直徑等。全局參數(shù)是多個(gè)模型類所共用的一些參數(shù),它是模型實(shí)例之間進(jìn)行數(shù)據(jù)通信的另一種通道示。這些參數(shù)由于為多個(gè)模型類共用,所以無(wú)法以接口參數(shù)的形式實(shí)現(xiàn)傳遞,采用全局參數(shù)的形式比較快捷、直觀。比如,貯箱、液體管路、離心泵中都需要使用推進(jìn)劑密度,這時(shí),就可以將推進(jìn)劑密度設(shè)置為全局參數(shù)。全局參數(shù)并不是所有模型類都可以使用的,只有那些處于同一類庫(kù)中的模型類才能使用,換言之,全局參數(shù)是和模型類庫(kù)緊密聯(lián)系的,一個(gè)模型類庫(kù)中的模型類只能使用所在類庫(kù)的全局參數(shù),而不能使用其它類庫(kù)的全局參數(shù)。模型添加單元實(shí)際上也可用于編輯模型類,當(dāng)用戶需要修改某個(gè)模型類的某些參數(shù)時(shí),也是通過(guò)此界面進(jìn)行的。所述系統(tǒng)搭建單元的具體實(shí)施步驟是確定仿真系統(tǒng)的每一個(gè)模型實(shí)例,并確定相互間的連接關(guān)系,再設(shè)置好仿真計(jì)算相關(guān)的參數(shù)(計(jì)算步長(zhǎng),起止時(shí)刻等),就搭建好了一個(gè)完整的仿真系統(tǒng)。其中,模型實(shí)例化指的是將模型類添加到仿真系統(tǒng)中,通過(guò)模型實(shí)例右鍵菜單調(diào)出參數(shù)設(shè)置對(duì)話框,并根據(jù)實(shí)際情況設(shè)置其各項(xiàng)參數(shù);接口、全局各項(xiàng)參數(shù),都可以在此對(duì)話框中進(jìn)行設(shè)置。設(shè)置好各項(xiàng)參數(shù)后,就確定了一個(gè)模型實(shí)例。其中,確定相互間的連接關(guān)系,是在確定好待仿真系統(tǒng)里的各個(gè)模型實(shí)例以后,根據(jù)系統(tǒng)中各部件之間的 連接關(guān)系確定各模型實(shí)例之間的連接關(guān)系,將各模型實(shí)例的接口按實(shí)際系統(tǒng)的結(jié)構(gòu)連接起來(lái)。所述代碼生成單元的具體實(shí)施步驟是將用戶以文本形式存儲(chǔ)的仿真程序轉(zhuǎn)換成可以被計(jì)算機(jī)能夠識(shí)別的形式,根據(jù)搭建好的系統(tǒng),從模型實(shí)例中讀取數(shù)學(xué)模型、接口參數(shù)、物性參數(shù),通過(guò)分析處理,生成中間代碼文件,對(duì)程序中所有的變量進(jìn)行相應(yīng)的變換,調(diào)用第三方編譯器(即通過(guò)VDL編譯器),對(duì)中間代碼文件進(jìn)行編譯、鏈接,生成可運(yùn)行的代碼,存儲(chǔ)于一個(gè)動(dòng)態(tài)鏈接庫(kù)(DLL)文件中。所述計(jì)算單元的具體實(shí)施步驟是計(jì)算單元對(duì)仿真系統(tǒng)進(jìn)行仿真時(shí),需要調(diào)用可運(yùn)行的代碼。它先將代碼生成單元生成的DLL文件載入,再按照和代碼生成單元一樣的規(guī)則調(diào)用相應(yīng)模型實(shí)例的仿真程序,進(jìn)行相應(yīng)的仿真計(jì)算,并在計(jì)算開始時(shí)從數(shù)據(jù)交換區(qū)讀取數(shù)據(jù)傳遞給可運(yùn)行的代碼,在計(jì)算結(jié)束后將仿真結(jié)果存入數(shù)據(jù)交換區(qū)。如此循環(huán),直到仿
真計(jì)算結(jié)束。所述數(shù)據(jù)處理單元的具體實(shí)施步驟是在仿真計(jì)算開始時(shí),數(shù)據(jù)處理單元負(fù)責(zé)將模型實(shí)例中各參數(shù)字符串形式的數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù),并用這些數(shù)值型數(shù)據(jù)對(duì)數(shù)據(jù)交換區(qū)進(jìn)行初始化;仿真計(jì)算的過(guò)程中,將計(jì)算結(jié)果存儲(chǔ)到數(shù)據(jù)緩沖文件中,以方便圖形顯示單元的使用;仿真計(jì)算結(jié)束后,可以將數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符串形式的數(shù)據(jù),方便數(shù)據(jù)的顯
示、查看等。所述圖形顯示單元的具體實(shí)施步驟是仿真計(jì)算結(jié)束后,圖形顯示單元可以從數(shù)據(jù)緩沖文件中讀取計(jì)算結(jié)果數(shù)據(jù),對(duì)其進(jìn)行分析,并按照用戶的要求將計(jì)算結(jié)果以曲線的形式顯不出來(lái)。
權(quán)利要求
1.一種液體火箭發(fā)動(dòng)機(jī)通用化仿真方法,其特征在于,包括以下步驟 第一步構(gòu)建部件模型;將發(fā)動(dòng)機(jī)仿真計(jì)算的部件模型分為模型類和模型實(shí)例,首先通過(guò)可視化界面設(shè)置模型類的圖片、名稱、描述;設(shè)置模型類接口參數(shù)、物性參數(shù)、全局參數(shù)和仿真程序,構(gòu)建不同部件的模型即構(gòu)成模型類庫(kù);其中,模型類有多個(gè)數(shù)學(xué)模型,數(shù)學(xué)模型使用物性參數(shù)和接口參數(shù)進(jìn)行仿真計(jì)算,從接口參數(shù)讀取數(shù)據(jù)或向接口參數(shù)寫入數(shù)據(jù);第二步搭建系統(tǒng)仿真模型;將第一步中建立的模型類添加到仿真系統(tǒng)中,實(shí)現(xiàn)模型類的實(shí)例化,生成模型實(shí)例;確定好待仿真系統(tǒng)里的各個(gè)模型實(shí)例后,再根據(jù)系統(tǒng)中各部件之間的連接關(guān)系確定各模型實(shí)例之間的連接關(guān)系,將各模型實(shí)例的接口按實(shí)際系統(tǒng)的結(jié)構(gòu)連接起來(lái),最后設(shè)置仿真計(jì)算相關(guān)的參數(shù); 第三步將模型文本生成可執(zhí)行代碼;根據(jù)搭建好的系統(tǒng)仿真模型,從模型實(shí)例中讀取數(shù)學(xué)模型、接口參數(shù)、物性參數(shù),通過(guò)分析處理生成中間代碼文件;然后,調(diào)用VDL編譯器對(duì)中間代碼文件進(jìn)行編譯、鏈接,生成可運(yùn)行的代碼,存儲(chǔ)于動(dòng)態(tài)鏈接庫(kù)(DLL)文件中;第四步系統(tǒng)仿真計(jì)算;首先,載入第三步中由模型文本生成的存有可執(zhí)行代碼的DLL文件,再進(jìn)行模型中相應(yīng)算法邏輯的仿真計(jì)算,并在計(jì)算開始時(shí)從數(shù)據(jù)交換區(qū)讀取數(shù)據(jù)傳遞給可運(yùn)行的代碼,在計(jì)算結(jié)束后將仿真結(jié)果存入數(shù)據(jù)交換區(qū);如此循環(huán),直到仿真計(jì)算結(jié)束。
2.如權(quán)利要求I所述的一種液體火箭發(fā)動(dòng)機(jī)通用化仿真方法,其特征在于,其中,在仿真計(jì)算開始時(shí),數(shù)據(jù)處理單元負(fù)責(zé)將模型實(shí)例中各參數(shù)字符串形式的數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù),并用這些數(shù)值型數(shù)據(jù)對(duì)數(shù)據(jù)交換區(qū)進(jìn)行初始化;仿真計(jì)算的過(guò)程中,將計(jì)算結(jié)果存儲(chǔ)到數(shù)據(jù)緩沖文件中,以方便圖形顯示單元的使用;仿真計(jì)算結(jié)束后,將數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符串形式的數(shù)據(jù),方便數(shù)據(jù)的顯示、查看。
3.如權(quán)利要求2所述的一種液體火箭發(fā)動(dòng)機(jī)通用化仿真方法,其特征在于,其中,仿真計(jì)算結(jié)束后,圖形顯示單元從數(shù)據(jù)緩沖文件中讀取計(jì)算結(jié)果數(shù)據(jù),對(duì)其進(jìn)行分析,并按照用戶的要求將計(jì)算結(jié)果以曲線的形式顯示出來(lái)。
全文摘要
本發(fā)明提出一種液體火箭發(fā)動(dòng)機(jī)通用化仿真方法,能夠給用戶提供更加靈活的、通用的、易操作的服務(wù)。包括以下步驟第一步構(gòu)建部件模型;將發(fā)動(dòng)機(jī)仿真計(jì)算的部件模型分為模型類和模型實(shí)例;第二步搭建系統(tǒng)仿真模型;將第一步中建立的模型類添加到仿真系統(tǒng)中,實(shí)現(xiàn)模型類的實(shí)例化,生成模型實(shí)例;第三步將模型文本生成可執(zhí)行代碼;第四步系統(tǒng)仿真計(jì)算;首先,載入第三步中由模型文本生成的存有可執(zhí)行代碼的DLL文件,再進(jìn)行模型中相應(yīng)算法邏輯的仿真計(jì)算,并在計(jì)算開始時(shí)從數(shù)據(jù)交換區(qū)讀取數(shù)據(jù)傳遞給可運(yùn)行的代碼,在計(jì)算結(jié)束后將仿真結(jié)果存入數(shù)據(jù)交換區(qū)。如此循環(huán),直到仿真計(jì)算結(jié)束。
文檔編號(hào)G06F17/50GK102968533SQ20121048913
公開日2013年3月13日 申請(qǐng)日期2012年11月26日 優(yōu)先權(quán)日2012年11月26日
發(fā)明者段娜, 朱子環(huán), 周磊, 耿衛(wèi)國(guó), 管理, 陳鋒, 張偉, 周文怡, 尚宇, 宋緒勇, 方俊雅, 李琪琪, 馮斌, 李山峰, 楊懿 申請(qǐng)人:北京航天試驗(yàn)技術(shù)研究所