本發(fā)明屬于復雜機電系統(tǒng)故障仿真領域,具體涉及一種基于Modelica模型的運行時故障注入系統(tǒng)及方法,用于對復雜機電系統(tǒng)故障仿真。
背景技術(shù):
隨著科學技術(shù)的不斷發(fā)展,復雜機電產(chǎn)品的結(jié)構(gòu)越來越復雜,各分系統(tǒng)縱橫交錯相互耦合。例如在航天、航空、汽車、船舶等系統(tǒng)中,系統(tǒng)耦合度很高,某個零件的失效可能會引起巨大的損失,因此,對這樣的復雜機電系統(tǒng)提出了高可靠性、高容錯性和高安全性的要求。提高可靠性是各個復雜機電系統(tǒng)的重要問題,故障仿真是一種提高可靠性設計的重要方法。
在復雜機電系統(tǒng)的系統(tǒng)仿真過程中,由于系統(tǒng)結(jié)構(gòu)極其復雜,一個系統(tǒng)可能包含若成千上萬個元器件,而且涉及機、電、液、控等多領域的系統(tǒng)知識,使得模型也自身非常復雜。而復雜機電系統(tǒng)的故障也是多種多樣的,每個元器件可能就對應許多個故障模式,整個系統(tǒng)也可能包含成千上萬個故障模式。針對每個故障模式進行故障仿真,采集故障數(shù)據(jù),成為一項耗時長,出錯率高、工作量大的任務。
如果要在復雜的機電系統(tǒng)中去仿真不同的故障模式,傳統(tǒng)的做法是,為了仿真不同的故障模式需要不斷的修改系統(tǒng)模型,形成多套的故障模型。這樣就為模型的維護帶來了巨大的挑戰(zhàn),難以保持模型一致性,難以修改和擴展模型行為,而且效率十分低下。
技術(shù)實現(xiàn)要素:
為了解決上述現(xiàn)有技術(shù)中存在的問題,本發(fā)明旨在提供一種基于Modelica模型的運行時故障注入系統(tǒng)及方法,專門針對復雜機電系統(tǒng),該方法可以根據(jù)不同的故障模式,動態(tài)地將需要仿真的故障在系統(tǒng)仿真已經(jīng)開始之后,注入到模型中。本發(fā)明的方法不僅能夠保持系統(tǒng)模型的一致性、重用性和易維護性,而且針對仿真耗時長的大型系統(tǒng)、模擬運行中系統(tǒng)均具有顯著優(yōu)勢。
為實現(xiàn)上述技術(shù)目的,達到上述技術(shù)效果,本發(fā)明通過以下技術(shù)方案實現(xiàn):
一種基于Modelica模型的運行時故障注入系統(tǒng),主要由基于Modelica的系統(tǒng)模型庫、模型管理模塊、故障模式庫、故障模式管理模塊、故障參數(shù)編輯模塊、仿真求解模塊以及故障注入模塊組成。
所述系統(tǒng)模型庫用于存儲系統(tǒng)模型,所述系統(tǒng)模型基于多領域統(tǒng)一建模語言Modelica建立,支持機電液控多領域的系統(tǒng)仿真;所述系統(tǒng)模型依據(jù)對象的物理拓撲結(jié)構(gòu)可拆分為分系統(tǒng)、組件和元器件的層次化結(jié)構(gòu),每個所述組件或所述元器件中均包含有能夠描述該組件或元器件行為的參數(shù)、變量和數(shù)學方程。
所述模型管理模塊用于管理所述系統(tǒng)模型,其功能主要包括加載所述系統(tǒng)模型文件到內(nèi)存中以及編譯和掃描內(nèi)存中的所述系統(tǒng)模型。
所述故障模式管理模塊包含在所述故障模式庫中,用于新建或編輯故障模式,所述故障模式庫則用于存儲故障模式;每條所述故障模式的記錄中均包含有標準的故障模式信息和與描述故障模式與模型映射關(guān)系的信息;所述標準的故障模式信息包括故障模式名、故障原因、故障后果、故障影響性分析、故障嚴酷度和故障發(fā)生概率;所述與描述故障模式與模型映射關(guān)系的信息主要包括故障參數(shù)名和故障模式觸發(fā)條件。
所述故障參數(shù)編輯模塊用于編輯故障參數(shù)的取值和注入條件。例如針對某閥門的故障參數(shù)-開度,可以設定閥門開度的取值。
所述求解仿真模塊用于對搭建的系統(tǒng)模型進行編譯仿真,仿真結(jié)束后,系統(tǒng)中不同故障參數(shù)會產(chǎn)生各種的仿真結(jié)果,這些仿真結(jié)果成為查找故障原因的重要依據(jù)。
所述故障注入模塊負責將故障模式中的故障參數(shù)值寫入到所述系統(tǒng)模型中,其功能為提取故障模式的故障參數(shù),并且找到所述系統(tǒng)模型中對應的故障參數(shù),在運行過程中將故障參數(shù)的值寫入到正在仿真的求解器中,完成故障注入。
一種利用上述系統(tǒng)的運行時故障注入方法,包括如下步驟:
步驟0、首先利用基于Modelica的系統(tǒng)模型庫,構(gòu)建系統(tǒng)模型,并在建模過程中對故障參數(shù)進行注釋標記;
步驟1、通過模型管理模塊,加載系統(tǒng)模型到內(nèi)存中,通過解析系統(tǒng)模型,生成系統(tǒng)模型中的系統(tǒng)模型對象,同時提取在步驟0中被標記過的故障參數(shù);
步驟2、在故障模式庫中,以故障模式管理模塊為支撐,新建或編輯故障模式,寫入故障模式的基本信息,包括故障模式名、故障原因、故障影響、故障嚴酷度和故障發(fā)生概率等,系統(tǒng)模型庫與故障模式庫隨即建立映射關(guān)系;
步驟3、由于系統(tǒng)模型庫與故障模式庫已經(jīng)建立起映射關(guān)系,在搭建的系統(tǒng)模型中選擇一個關(guān)聯(lián)的故障參數(shù)與新建的故障模式關(guān)聯(lián)起來,完成一條故障模式;
步驟4、通過求解仿真模塊對當前的系統(tǒng)模型進行求解仿真;
步驟5、暫停仿真,在故障模式庫中,選擇故障模式,并利用故障參數(shù)編輯模塊修改所選故障模式的故障參數(shù)的取值;
步驟6、故障注入模塊根據(jù)所選故障模式中故障參數(shù)的全名,查找到運行中的求解器中對應的故障參數(shù)位置;
步驟7、通過求解仿真模塊,修改求解器中故障參數(shù)的取值,完成故障注入;
步驟8、恢復仿真。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
本發(fā)明通過Modelica中的可擴展語義annotation,將正常工況的系統(tǒng)模型參數(shù)標記為故障參數(shù),然后將故障參數(shù)保存在故障模式中,從而建立故障模式與模型間的映射關(guān)系。這種映射關(guān)系不影響正常模型的行為。本發(fā)明的這種故障注入的方式很好的解決了系統(tǒng)模型的一致性、可重用性和可維護性,大大的降低了故障仿真的復雜性;而且本發(fā)明這種在運行時故障注入方式針對仿真耗時長的大型系統(tǒng)、模擬運行中系統(tǒng)都有顯著優(yōu)勢。
針對仿真消耗時間長的系統(tǒng),若仿真進行一半時想進行注入故障,在沒有運行時故障注入方法時,只能提前結(jié)束仿真。新建一個故障模式,在其中設定故障注入時間后,采取運行前注入故障方式,修改模型內(nèi)容,重新求解仿真,導致花費更多時間。若無本發(fā)明這種運行時故障輸入方法,針對模擬運行中的系統(tǒng)出現(xiàn)故障的仿真則無法實現(xiàn),因此本發(fā)明的運行時故障注入方法有它無法替代的作用和優(yōu)點。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,并可依照說明書的內(nèi)容予以實施,以下以本發(fā)明的較佳實施例并配合附圖詳細說明。本發(fā)明的具體實施方式由以下實施例及其附圖詳細給出。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
圖1為本發(fā)明系統(tǒng)的結(jié)構(gòu)及工作原理圖;
圖2為本發(fā)明方法的步驟流程圖。
具體實施方式
下面將參考附圖并結(jié)合實施例,來詳細說明本發(fā)明。
參見圖1所示,一種基于Modelica模型的運行時故障注入系統(tǒng),主要由基于Modelica的系統(tǒng)模型庫、模型管理模塊、故障模式庫、故障模式管理模塊、故障參數(shù)編輯模塊、仿真求解模塊以及故障注入模塊組成。
所述系統(tǒng)模型庫用于存儲系統(tǒng)模型,所述系統(tǒng)模型基于多領域統(tǒng)一建模語言Modelica建立,支持機電液控多領域的系統(tǒng)仿真;所述系統(tǒng)模型依據(jù)對象的物理拓撲結(jié)構(gòu)可拆分為分系統(tǒng)、組件和元器件的層次化結(jié)構(gòu),每個所述組件或所述元器件中均包含有能夠描述該組件或元器件行為的參數(shù)、變量和數(shù)學方程。
所述模型管理模塊用于管理所述系統(tǒng)模型,其功能主要包括加載所述系統(tǒng)模型文件到內(nèi)存中以及編譯和掃描內(nèi)存中的所述系統(tǒng)模型。
所述故障模式管理模塊包含在所述故障模式庫中,用于新建或編輯故障模式,所述故障模式庫則用于存儲故障模式;每條所述故障模式的記錄中均包含有標準的故障模式信息和與描述故障模式與模型映射關(guān)系的信息;所述標準的故障模式信息包括故障模式名、故障原因、故障后果、故障影響性分析、故障嚴酷度和故障發(fā)生概率;所述與描述故障模式與模型映射關(guān)系的信息主要包括故障參數(shù)名和故障模式觸發(fā)條件。
所述故障參數(shù)編輯模塊用于編輯故障參數(shù)的取值和注入條件。例如針對某閥門的故障參數(shù)-開度,可以設定閥門開度的取值。
所述求解仿真模塊用于對搭建的系統(tǒng)模型進行編譯仿真,仿真結(jié)束后,系統(tǒng)中不同故障參數(shù)會產(chǎn)生各種的仿真結(jié)果,這些仿真結(jié)果成為查找故障原因的重要依據(jù)。
所述故障注入模塊負責將故障模式中的故障參數(shù)值寫入到所述系統(tǒng)模型中,其功能為提取故障模式的故障參數(shù),并且找到所述系統(tǒng)模型中對應的故障參數(shù),在運行過程中將故障參數(shù)的值寫入到正在仿真的求解器中,完成故障注入。
參見圖1、圖2所示,一種利用上述系統(tǒng)的運行時故障注入方法,包括如下步驟:
步驟0、首先利用基于Modelica的系統(tǒng)模型庫,構(gòu)建系統(tǒng)模型,該系統(tǒng)模型是正常的工況模型,可以仿真模擬某系統(tǒng)的在正常工況下的行為表現(xiàn);并且為系統(tǒng)模型中的參數(shù)添加annotation注解,標注為故障參數(shù);
步驟1、通過模型管理模塊,加載系統(tǒng)模型到內(nèi)存中,通過解析系統(tǒng)模型,生成系統(tǒng)模型中的系統(tǒng)模型對象,同時提取在步驟0中被標記過的故障參數(shù);
步驟2、在故障模式庫中,以故障模式管理模塊為支撐,新建或編輯故障模式,寫入故障模式的基本信息,包括故障模式名、故障原因、故障影響、故障嚴酷度和故障發(fā)生概率等,系統(tǒng)模型庫與故障模式庫隨即建立映射關(guān)系;
步驟3、由于系統(tǒng)模型庫與故障模式庫已經(jīng)建立起映射關(guān)系,在搭建的系統(tǒng)模型中選擇一個關(guān)聯(lián)的故障參數(shù)與新建的故障模式關(guān)聯(lián)起來,完成一條故障模式;
步驟4、通過求解仿真模塊對當前的系統(tǒng)模型進行求解仿真;
步驟5、暫停仿真,在故障模式庫中,選擇故障模式,并利用故障參數(shù)編輯模塊修改所選故障模式的故障參數(shù)的取值;
步驟6、故障注入模塊根據(jù)所選故障模式中故障參數(shù)的全名,查找到運行中的求解器中對應的故障參數(shù)位置;
步驟7、通過求解仿真模塊,修改求解器中故障參數(shù)的取值,完成故障注入;
步驟8、恢復仿真。
上述實施例只是為了說明本發(fā)明的技術(shù)構(gòu)思及特點,其目的是在于讓本領域內(nèi)的普通技術(shù)人員能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,并不能以此限制本發(fā)明的保護范圍。凡是根據(jù)本發(fā)明內(nèi)容的實質(zhì)所作出的等效的變化或修飾,都應涵蓋在本發(fā)明的保護范圍內(nèi)。