2016-04-25 42 views
2

我在Modelica語言(平臺:Dymola)中有一個模型。 Dymola在編譯/翻譯期間創建模型的二進制文件(dymosim.exe)。如果二進制代碼導出許可證可用,則創建獨立代表原始dymola模型的二進制文件。這可以在沒有Dymola許可證的任何計算機上運行。如何爲standalong二進制可執行文件創建gui(圖形用戶界面)

現在,我的問題是如何創建Gui用於執行以下需求的可執行文件: - 1.它應該能夠更改某些輸入參數值。 2.它應該能夠得到一些輸出參數值。

現在,作爲背景: - dymosim.exe取參數值作爲輸入,從文本文件(dsin.txt)並且如果一個在另一個文本文件(dsres.txt)寫入輸出

具體地說,具有這樣的二進制可執行文件,該文件從文本文件獲取輸入並以特定格式(其規則已知)將輸出寫入另一文本文件;那麼有什麼工具可以爲它創建gui?

+1

您可以考慮將您的模型從Dymola導出到協同仿真FMU。這可以從例如使用PyFMI的Python,你可以在Python代碼之上構建一個GUI。 –

+0

@ Rene Just Nielsen我會研究這一點。但最終可能會導致帶有gui的.exe文件。我這樣問是因爲,最終用戶方期望在運行時打開一個界面輸入一些輸入參數值;有一個運行按鈕或類似的運行實際模型與給定的輸入和呈現相應的輸出。 – user1768201

+1

你也可以看看PySimulator https://github.com/PySimulator/PySimulator – jrhodin

回答

1

研究Dymola的嵌入式服務器支持(DDE/OPC)。由於您使用的是dymosim.exe,因此我相信您正在使用Windows,因此Dymola對Visual Studio 32位嵌入式服務器代碼的限制將被接受。 (大多數的Modelica工具也有類似的嵌入式服務器,但我不認爲他們是兼容的。)

1

Dymola的dymosim.exe出口的時間序列結果*.mat文件,你應該能夠找到的工具/庫來處理*.mat格式在你的GUI中。

另外,dsin.txt有它自己的格式,你可以嘗試先理解它(試圖找到它的註釋)然後解析它,它不是一個帶有隨機字符串和數字列的文本文件。

+0

嗨,我知道disn.txt和dsres.mat結構。我實際上不知道的是如何創建一個gui,以便我可以操作dsin.txt中的參數值,然後運行帶有新參數的dymosim.exe並閱讀dsres.mat/dsres.txt。 – user1768201

+0

我認爲這更像是一個編碼問題。你應該看看你用於GUI的編程語言的文本/字符串解析。 –

1

使用FMI標準值得在協同模擬模式下考慮,這意味着包含解算器。 Dymola的允許模型導出爲FMU包(在Windows平臺它是單個DLL一些元數據,在Linux平臺是.so庫),並提供值得做你的步驟如下功能:

  • fmiSetReal()將設置一個參數值
  • fmiDoStep()
  • fmiGetReal()將獲得該變量的值

可以調用,這些F直接解壓縮,只需解壓縮FMU包並找到其中的DLL並將其直接鏈接到您的應用程序。 或推薦的方式(我們在我們的應用中完成):使用FMI Library提供通用C API與FMU包交互並按照您需要的方式控制時態結構。

相關問題