1. 討論項目

    • modelica 討論

    • Jmodelica vs Openmodelica

-modelica討論

研究許多相關研究以及官網所提供的範例程式,大致上理解了 modelica 程式語言所代表的意義,如同之前所提及到的,這種語言的特性就是將物理上的物件加入數學公式,類似腳本語言但是在分類上被歸類於程式語言,和C相同需要進行編譯才能執行的程式碼,都會被歸類於程式語言。

這幾天看了許多 modelica 的程式語言(應該被稱之為數學物件) 支援的函式庫,在嘗試了許多方法來和 modelica 進行 solve plot 等動作,發現難度在於編譯 modelica 程式語言,在 github 上的許多使用者都是使用 compiler 來編譯 modelica 再經由不一樣的 solver 進行解題畫圖,在 python 中解題基本上都是使用 numpy or scipy 運算數學工具,然後再這兩套工具底下都是使用 cython 進行快速的運算,如線性化、常微分方程、等數學方法,透過 modelica 進行建立模型,就可以知道整個系統的各種狀態。

-Jmodelica vs Openmodelica

搜索資料意外的發現幾個人使用 python 進行開發 modelica 相關的研究,從以前的 pysimluator(2.6) pymola(3) Modelicares(2.7) 等諸如此類的開發紀錄,目前只有 pymola 較平凡更新資料,這些 code 可能都沒有完整的技術可以轉移,目前考慮使用由 Jmodelica 進行開發,相關的技術資料較完整,而且有 swig 支援 python 端口,不過目前卡在編譯問題,由於作者群使用 python27 進行開發,這部分的編譯可能需要老師幫忙看一下編譯流程。

Jmodelica 使用上是先得到畫好的 mo 檔,透過 PyModelica 進行編譯成 FMUs (Functional Mock-up Units) 經過轉換就可以使用 PyFMI 使用上述轉好的檔案進行模擬、參數操作、繪圖等結果,這兩個函式都是官方自行撰寫的方法,相關API完整,只是卡在編譯問題(python27)。

Jmodelica 看起來官網已經許久沒有更新資料,可能是屬於舊技術,相關的 license 不知道有沒有訂定。 相較於 Jmodelica,OpenModelica 是目前更新相對快速的開源團隊,但是在接到 python 上面的方法真的不多,有一個模組是 OMpython ,就技術資料來看是支援由外部進行 OpenModelica 的參數調整,無法獨立進行運算相關資料,就會像是 V-rep 一樣的操作方式進行,寫一個外部端口進行內部軟體控制,OpenModelica 大小為 2G 多,非常的大。目前我偏向使用 Jmodelica 進行開發,主要有幾個問題點,第一個是編譯問題,這部分還不知道要怎麼更改成 python3 ,另一個問題點為,Jmodelica 主要進行的工作是,將已知的模型進行控制、模擬…等問題,最重要的建模問題,還是回歸到原本的 Modelica 身上,建模部分可能採用的作法,拉方塊的方式進行設計,像是 Labview 一樣的方式進行,產生出 .mo,後面再進行模擬的部分,PID 控制器等問題,在 Jmodelica 的 API 有提到相關技術,這部分還需要詳讀資料。


Comments

comments powered by Disqus