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