技術(shù)領(lǐng)域
本發(fā)明屬于計算機(jī)仿真與建模領(lǐng)域,具體而言涉及一種基于Modelica的建模系統(tǒng)。
背景技術(shù):
Modelica是國際仿真界于1997年提出的一種開放的全新多領(lǐng)域統(tǒng)一建模語言,它歸納和統(tǒng)一了先前多種建模語言,且融合了鍵合圖的非因果建模思想、Java語言的面向?qū)ο蠹夹g(shù)和Matlab的數(shù)值與矩陣機(jī)制,因而具備極其強(qiáng)大的建模功能。面向?qū)ο笮院头且蚬允荕odelica 語言最大的優(yōu)點(diǎn)。面向?qū)ο蟮慕7椒ň哂袛?shù)據(jù)封裝、分層、連接和繼承等特征,易于減少錯誤的發(fā)生并容易實現(xiàn)模型的重用。所謂非因果性建模,就是以一種中性、自然的形式表達(dá)模型方程,從而不必更多的考慮計算順序,避免了對模型方程的繁瑣推導(dǎo),從而提高了建模效率,并使部件模型易于被重復(fù)使用。Modelica語言采用陳述式、基于方程的非因果建模方法建立模型,通過定義接口,使模型接口標(biāo)準(zhǔn)化,因此采用Modelica建模可以使物理系統(tǒng)各子系統(tǒng)之間既能完全獨(dú)立又可互相統(tǒng)一。
目前,Modelica已經(jīng)被奧迪、寶馬、戴姆勒、福特、豐田、大眾、德國宇航中心、法國空客、德國西門子、法國電力公司、ABB等不同行業(yè)公司所采用,廣泛應(yīng)用于汽車 、航空 、能源 、電力 、電子 、機(jī)械 、化學(xué) 、控制 、流體 等行業(yè)或領(lǐng)域以及嵌入式系統(tǒng)的建模與仿真。
現(xiàn)今,已有較多的軟件提供對Modelica 的支持,如DyMola 、MathModelica等,這些軟件工具都不同程度的支持可視化建模。可視化建模不但提高了界面友好性,使軟件易于上手,而且能夠自動生成代碼,減少了工作量。建模的主要工作集中于對反映組件行為的方程進(jìn)行編碼,但是,現(xiàn)有軟件對可視化建模的支持,基本都局限于組件的拖拽與連線,對組件內(nèi)部的復(fù)雜方程的可視化建模并不支持。
技術(shù)實現(xiàn)要素:
為克服現(xiàn)有技術(shù)中的不足,本發(fā)明的目的在于提供一種基于Modelica的復(fù)雜方程可視化建模系統(tǒng),該系統(tǒng)可供用戶通過圖形化用戶界面,以拖拽連線的方式編輯組件中的方程。
為實現(xiàn)上述技術(shù)目的,達(dá)到上述技術(shù)效果,本發(fā)明通過以下技術(shù)方案實現(xiàn):
一種基于Modelica的復(fù)雜方程可視化建模系統(tǒng),其包括一圖形視圖模塊、一文本視圖模塊、一框圖解析模塊、一代碼生成模塊、一模型管理模塊和一數(shù)據(jù)管理模塊;
所述圖形視圖模塊用于接受用戶的圖形輸入,提供了一個可接受圖塊拖拽的視圖,每個圖塊代表一代碼片段,用戶可以將圖塊拖拽到視圖并連線,以框圖的方式描述Modelica方程;
所述文本視圖模塊用于接受用戶的代碼文本輸入,提供了Modelica方程代碼的文本編輯界面,供用戶編輯圖塊代表的代碼片段;
所述框圖解析模塊用于解析代碼框圖,根據(jù)框圖分析出框圖代表的代碼片段的組織關(guān)系,可解析所述圖形視圖模塊中用戶搭建的框圖,分析框圖的拓?fù)浣Y(jié)構(gòu),為代碼生成模塊提供輸入;
所述代碼生成模塊用于結(jié)合所述框圖解析模塊得出的代碼組織關(guān)系與所述文本視圖模塊獲取的代碼片段,組合出完整的Modelica方程代碼;
所述模型管理模塊用于將Modelica方程代碼輸入到用戶指定的模型中,負(fù)責(zé)操作Modelica模型文件,對Modelica模型文件的內(nèi)容進(jìn)行增、刪、改、查的基本操作;
所述數(shù)據(jù)管理模塊用于管理系統(tǒng)運(yùn)行過程中的一切過程數(shù)據(jù)與結(jié)果數(shù)據(jù),并負(fù)責(zé)數(shù)據(jù)的持久化。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
1)本建模系統(tǒng)提供了圖形化的方程編輯界面,使Modelica編碼更容易上手,降低了Modelica編碼的門檻;
2)本建模系統(tǒng)提供的圖形化的方程代碼可讀性更好,各代碼段之間的關(guān)系一目了然,方便后期修改與維護(hù)。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,并可依照說明書的內(nèi)容予以實施,以下以本發(fā)明的較佳實施例并配合附圖詳細(xì)說明如后。本發(fā)明的具體實施方式由以下實施例及其附圖詳細(xì)給出。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1為本發(fā)明的基于Modelica的復(fù)雜方程可視化建模系統(tǒng)的系統(tǒng)原理圖。
圖2為本發(fā)明一實施例的Modelica的if方程的可視化建模過程示意圖。
具體實施方式
下面將參考附圖并結(jié)合實施例,來詳細(xì)說明本發(fā)明。
參見圖1所示,一種基于Modelica的復(fù)雜方程可視化建模系統(tǒng),其包括一圖形視圖模塊1、一文本視圖模塊2、一框圖解析模塊3、一代碼生成模塊4、一模型管理模塊5和一數(shù)據(jù)管理模塊6;
所述圖形視圖模塊1用于接受用戶的圖形輸入,提供了一個可接受圖塊拖拽的視圖,每個圖塊代表一代碼片段,用戶可以將圖塊拖拽到視圖并連線,以框圖的方式描述Modelica方程;
所述文本視圖模塊2用于接受用戶的代碼文本輸入,提供了Modelica方程代碼的文本編輯界面,供用戶編輯圖塊代表的代碼片段;
所述框圖解析模塊3用于解析代碼框圖,根據(jù)框圖分析出框圖代表的代碼片段的組織關(guān)系,可解析所述圖形視圖模塊1中用戶搭建的框圖,分析框圖的拓?fù)浣Y(jié)構(gòu),為代碼生成模塊4提供輸入;
所述代碼生成模塊4用于結(jié)合所述框圖解析模塊3得出的代碼組織關(guān)系與所述文本視圖模塊2獲取的代碼片段,組合出完整的Modelica方程代碼;
所述模型管理模塊5用于將Modelica方程代碼輸入到用戶指定的模型中,負(fù)責(zé)操作Modelica模型文件,對Modelica模型文件的內(nèi)容進(jìn)行增、刪、改、查的基本操作;
所述數(shù)據(jù)管理模塊6用于管理系統(tǒng)運(yùn)行過程中的一切過程數(shù)據(jù)與結(jié)果數(shù)據(jù),并負(fù)責(zé)數(shù)據(jù)的持久化。
實施例1:
進(jìn)一步的,參見圖2所示,本實施例描述了Modelica的條件方程,if方程的可視化建模過程示例。
在此過程中,用到了所述圖形視圖模塊1提供的圖塊,包括equation圖塊,if圖塊,else if圖塊和else圖塊。
所述equation圖塊是最基本的圖塊,表示一個Modelica方程代碼段,可以雙擊打開,以文本方式輸入方程或者通過可視化建模的方式輸入方程。
所述if圖塊,繼承了所述equation圖塊的所有功能,但是多了是否執(zhí)行的判斷條件,如果條件滿足則執(zhí)行,否則不執(zhí)行。
所述else if圖塊,繼承了所述equation圖塊的所有功能,只能與所述if圖塊并聯(lián),在所述if圖塊沒有觸發(fā)且滿足當(dāng)前else if圖塊條件時執(zhí)行。
所述else圖塊,繼承了所述equation圖塊的所有功能,只能與所述if圖塊并聯(lián),并且在同一分支中只能有一個,在其他if圖塊及else if圖塊分支都沒有觸發(fā)的情況下執(zhí)行。
以下是利用上述框圖體系進(jìn)行可視化建模的步驟:
步驟0:完成組件的前期編寫工作,如參數(shù)與變量的定義;
步驟1:拖拽需要的圖塊,equation圖塊、if圖塊、else if圖塊根據(jù)實際情況連接;
步驟2:對圖塊進(jìn)行屬性編輯,主要是分支圖塊的執(zhí)行條件;
步驟3:對每個圖塊分別雙擊打開,進(jìn)行執(zhí)行內(nèi)容編輯;此時將打開屬于被雙擊的代碼塊的編輯視圖,可選擇繼續(xù)用圖形化的方式編輯,或者直接切換至文本模式,輸入此代碼塊的方程。
步驟4,當(dāng)所有代碼塊都完成編輯,則完成建模。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。