国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      Modelica外部函數(shù)圖形化編輯系統(tǒng)及其實現(xiàn)方法與流程

      文檔序號:11917579閱讀:918來源:國知局

      技術領域

      本發(fā)明屬于機械仿真技術領域,具體而言涉及一種基于Modelica的建模仿真工具軟件。



      背景技術:

      Modelica是國際仿真界于1997年提出的一種開放的全新多領域統(tǒng)一建模語言,它歸納和統(tǒng)一了先前多種建模語言,且融合了鍵合圖的非因果建模思想、Java語言的面向對象技術和Matlab的數(shù)值與矩陣機制,因而具備極其強大的建模功能。面向對象性和非因果性是Modelica 語言最大的優(yōu)點。面向對象的建模方法具有數(shù)據封裝、分層、連接和繼承等特征,易于減少錯誤的發(fā)生并容易實現(xiàn)模型的重用。所謂非因果性建模,就是以一種中性、自然的形式表達模型方程,從而不必更多的考慮計算順序,避免了對模型方程的繁瑣推導,從而提高了建模效率,并使部件模型易于被重復使用。Modelica語言采用陳述式、基于方程的非因果建模方法建立模型,通過定義接口,使模型接口的標準化,因此采用Modelica建??梢允刮锢硐到y(tǒng)各子系統(tǒng)之間既能完全獨立又可互相統(tǒng)一。

      基于擴展性的考慮,Modelica支持以外部函數(shù)的方式調用C/C++、Python等多種編程語言函數(shù),在傳統(tǒng)的Modelica語言建模工具軟件中,僅支持以文本編輯的方式引入外部函數(shù),需要以Modelica語言編碼制定外部函數(shù)的來源、參數(shù)和描述信息等,若能以圖形化的方式進行外部函數(shù)編輯,不僅能夠提高界面友好性,使軟件易于上手,對于不熟悉Modelica語法的使用者來說,還能自動根據用戶圖形化操作生成Modelica代碼,減少工作量。



      技術實現(xiàn)要素:

      為克服現(xiàn)有技術中的不足,本發(fā)明的目的在于提供一種Modelica外部函數(shù)圖形化編輯系統(tǒng),該系統(tǒng)可供用戶通過圖形化用戶界面,將外部函數(shù)封裝為Modelica函數(shù),并將Modelica函數(shù)與模型組件進行關聯(lián),從而實現(xiàn)組件調用外部函數(shù)。

      本發(fā)明的另一目的在于提供一種Modelica外部函數(shù)圖形化編輯系統(tǒng)的實現(xiàn)方法。

      為實現(xiàn)上述技術目的,達到上述技術效果,本發(fā)明通過以下技術方案實現(xiàn):

      一種Modelica外部函數(shù)圖形化編輯系統(tǒng),其包括一輸入參數(shù)模塊、一函數(shù)編輯模塊、一輸出變量模塊和一代碼生成模塊;

      所述輸入參數(shù)模塊對應于可視化的輸入參數(shù)配置面板,采集用戶配置的兩個外部函數(shù)配置項,并傳遞給所述代碼生成模塊,所述的兩個外部函數(shù)配置項分別為輸入參數(shù)類型和輸入參數(shù)名稱;

      所述輸出變量模塊對應于可視化的輸出變量配置面板,采集用戶配置的另外兩個外部函數(shù)配置項,并傳遞給所述代碼生成模塊,所述的另外兩個外部函數(shù)配置項分別為輸出變量類型和輸出變量名稱;

      所述函數(shù)編輯模塊對應于可視化的外部函數(shù)編輯面板,所述外部函數(shù)編輯模塊可以直接輸入函數(shù)代碼或者指定函數(shù)鏈接庫位置,所述函數(shù)編輯模塊采集所述函數(shù)代碼的信息或者所述函數(shù)鏈接庫位置的信息傳遞給所述代碼生成模塊;

      所述代碼生成模塊采集所述輸入參數(shù)模塊、所述輸出變量模塊和所述函數(shù)編輯模塊的數(shù)據,分別通過語法解析,信息有效性和完整性鑒別,最后生成符合Modelica語法的,已被封裝為Modelica外部函數(shù)的Modelica function組件,該組件可以直接被其他模型使用,實現(xiàn)一次編輯,重復利用。

      本系統(tǒng)的工作邏輯如下:

      所述輸入參數(shù)模塊、所述函數(shù)編輯模塊和所述輸出變量模塊開放給用戶用來設置輸入參數(shù)信息、輸出參數(shù)信息以及編輯外部函數(shù)內容,這些信息向下傳遞給代碼生成模塊,根據用戶的配置自動生成基于Modelica語法的模型組件,實現(xiàn)以可視化操作的方式將其他程序語言的函數(shù)封裝為Modelica外部函數(shù)。

      一種Modelica外部函數(shù)圖形化編輯系統(tǒng)的實現(xiàn)方法,其包括以下制備步驟:

      步驟0:用戶在輸入參數(shù)配置面板配置每個輸入參數(shù)的類型、名稱、注釋以及初始值信息,在輸出變量配置面板配置輸出變量的類型和名稱,在函數(shù)編輯面板配置函數(shù)體內容或函數(shù)動態(tài)庫路徑,這些配置信息傳遞到底層代碼生成模塊;

      步驟1:代碼生成模塊獲取上層輸入后解析輸入參數(shù);

      步驟2:檢查輸入參數(shù)類型、名稱和注釋是否一一對應,其中,每個輸入參數(shù)必須具有類型和名稱,注釋可以為空,若一一對應,則跳轉到步驟3,否則邏輯結束,輸出錯誤信息;

      步驟3:檢查輸入參數(shù)信息是否符合Modelica語義,若均符合語義規(guī)定則跳轉到步驟4,否則邏輯結束,輸出錯誤信息;

      步驟4:檢查輸出參數(shù)類型、名稱、注釋是否一一對應,輸出參數(shù)必須具有類型和名稱,注釋可以為空,若一一對應,則跳轉到步驟5,否則邏輯結束,輸出錯誤信息;

      步驟5:檢查輸出參數(shù)信息是否符合Modelica語義,若均符合語義規(guī)定則跳轉到步驟6,否則邏輯結束,輸出錯誤信息;

      步驟6:生成輸入參數(shù)信息,每個輸入參數(shù)均與Modelica語義中的input對應,對于每個輸入參數(shù)信息,生成如下Modelica代碼:

      input 輸入參數(shù)類型 輸入參數(shù)名稱;“輸入參數(shù)注釋”

      步驟7:生成輸出變量信息,每個輸出變量均與Modelica語義中的output對應,對于每個輸出變量信息,生成如下Modelica代碼:

      out 輸出變量類型 輸出變量名稱;“輸出變量注釋”;

      步驟8:校驗函數(shù)配置信息,判斷函數(shù)配置類型,跳轉到步驟9;

      步驟9:解析函數(shù)文本是否符合語法規(guī)則,或解析配置函數(shù)庫是否存在及可用,若是則跳轉到步驟10;

      步驟10:對于符合規(guī)范的函數(shù)文本生成Modelica代碼,或根據配置的函數(shù)庫路徑生成Modelica代碼;

      步驟11:將生成的Modelica代碼進行組合,插入組件名稱,外部函數(shù)編輯器將生成一個Modelica function組件,完成從其他語言函數(shù)到Modelica function外部函數(shù)的自動封裝。

      與現(xiàn)有技術相比,本發(fā)明具有以下有益效果:

      1)Modelica引用外部函數(shù)的相關語法復雜難懂,通過圖形化的方式自動根據用戶配置將外部函數(shù)進行封裝,降低了建模門檻;

      2)圖形化可讀性好,封裝為Modelica外部函數(shù)的Modelica function組件可以直接被其他模型使用,實現(xiàn)一次編輯,重復利用,方便后期修改與維護。

      上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,并可依照說明書的內容予以實施,以下以本發(fā)明的較佳實施例并配合附圖詳細說明如后。本發(fā)明的具體實施方式由以下實施例及其附圖詳細給出。

      附圖說明

      此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:

      圖1示出了本發(fā)明的Modelica外部函數(shù)圖形化編輯系統(tǒng)的系統(tǒng)架構圖。

      具體實施方式

      下面將參考附圖并結合實施例,來詳細說明本發(fā)明。

      參見圖1所示,一種Modelica外部函數(shù)圖形化編輯系統(tǒng),其包括一輸入參數(shù)模塊1、一函數(shù)編輯模塊2、一輸出變量模塊3和一代碼生成模塊4;

      所述輸入參數(shù)模塊1對應于可視化的輸入參數(shù)配置面板,采集用戶配置的兩個外部函數(shù)配置項,并傳遞給所述代碼生成模塊4,所述的兩個外部函數(shù)配置項分別為輸入參數(shù)類型和輸入參數(shù)名稱;

      所述輸出變量模塊3對應于可視化的輸出變量配置面板,采集用戶配置的另外兩個外部函數(shù)配置項,并傳遞給所述代碼生成模塊4,所述的另外兩個外部函數(shù)配置項分別為輸出變量類型和輸出變量名稱;

      所述函數(shù)編輯模塊2對應于可視化的外部函數(shù)編輯面板,所述外部函數(shù)編輯模塊可以直接輸入函數(shù)代碼或者指定函數(shù)鏈接庫位置,所述函數(shù)編輯模塊2采集所述函數(shù)代碼的信息或者所述函數(shù)鏈接庫位置的信息傳遞給所述代碼生成模塊4;

      所述代碼生成模塊4采集所述輸入參數(shù)模塊1、所述輸出變量模塊2和所述函數(shù)編輯模塊3的數(shù)據,分別通過語法解析,信息有效性和完整性鑒別,最后生成符合Modelica語法的,已被封裝為Modelica外部函數(shù)的Modelica function組件,該組件可以直接被其他模型使用,實現(xiàn)一次編輯,重復利用。

      本系統(tǒng)的工作邏輯如下:

      所述輸入參數(shù)模塊1、所述函數(shù)編輯模塊2和所述輸出變量模3塊開放給用戶用來設置輸入參數(shù)信息、輸出參數(shù)信息以及編輯外部函數(shù)內容,這些信息向下傳遞給代碼生成模塊4,根據用戶的配置自動生成基于Modelica語法的模型組件,實現(xiàn)以可視化操作的方式將其他程序語言的函數(shù)封裝為Modelica外部函數(shù)。

      一種Modelica外部函數(shù)圖形化編輯系統(tǒng)的實現(xiàn)方法,其包括以下制備步驟:

      步驟0:用戶在輸入參數(shù)配置面板配置每個輸入參數(shù)的類型、名稱、注釋以及初始值信息,在輸出變量配置面板配置輸出變量的類型和名稱,在函數(shù)編輯面板配置函數(shù)體內容或函數(shù)動態(tài)庫路徑,這些配置信息傳遞到底層代碼生成模塊;

      步驟1:代碼生成模塊獲取上層輸入后解析輸入參數(shù);

      步驟2:檢查輸入參數(shù)類型、名稱和注釋是否一一對應,其中,每個輸入參數(shù)必須具有類型和名稱,注釋可以為空,若一一對應,則跳轉到步驟3,否則邏輯結束,輸出錯誤信息;

      步驟3:檢查輸入參數(shù)信息是否符合Modelica語義,若均符合語義規(guī)定則跳轉到步驟4,否則邏輯結束,輸出錯誤信息;

      步驟4:檢查輸出參數(shù)類型、名稱、注釋是否一一對應,輸出參數(shù)必須具有類型和名稱,注釋可以為空,若一一對應,則跳轉到步驟5,否則邏輯結束,輸出錯誤信息;

      步驟5:檢查輸出參數(shù)信息是否符合Modelica語義,若均符合語義規(guī)定則跳轉到步驟6,否則邏輯結束,輸出錯誤信息;

      步驟6:生成輸入參數(shù)信息,每個輸入參數(shù)均與Modelica語義中的input對應,對于每個輸入參數(shù)信息,生成如下Modelica代碼:

      input 輸入參數(shù)類型 輸入參數(shù)名稱;“輸入參數(shù)注釋”;

      步驟7:生成輸出變量信息,每個輸出變量均與Modelica語義中的output對應,對于每個輸出變量信息,生成如下Modelica代碼:

      out 輸出變量類型 輸出變量名稱;“輸出變量注釋”;

      步驟8:校驗函數(shù)配置信息,判斷函數(shù)配置類型,跳轉到步驟9;

      步驟9:解析函數(shù)文本是否符合語法規(guī)則,或解析配置函數(shù)庫是否存在及可用,若是則跳轉到步驟10;

      步驟10:對于符合規(guī)范的函數(shù)文本生成如下Modelica代碼:

      external "C" data = getIntServer(輸入變量1名稱, 輸入變量1名稱, ……)annotation

      (Include="函數(shù)文本")

      ,或根據配置的函數(shù)庫路徑生成如下Modelica代碼:

      external "C" data = getIntServer(輸入變量1名稱, 輸入變量1名稱, ……)annotation (Include = "#include \"頭文件名稱\"",

      IncludeDirectory = "頭文件尋址目錄",

      Library = "庫文件名稱",

      LibraryDirectory = "庫文件尋址目錄");

      步驟11:將生成的Modelica代碼進行組合,插入組件名稱,外部函數(shù)編輯器將生成一個Modelica function組件,完成從其他語言函數(shù)到Modelica function外部函數(shù)的自動封裝。

      以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。

      當前第1頁1 2 3 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1