2016-01-07 18 views
3

我又找到了你的想法。如何用以前的模擬解決方案初始化模型?

我敢肯定,雖然在我的生活中,我必須回答這個問題,但我找不到明確的描述。

場景:

你努力工作,得到了模型中的所有設置與初始估計值,等等,然後解決「真正的」穩態(SS)模型中所有參數的條件。從這個解決方案中,我想調查系統上的事件影響。

要執行SS分析的偏差,只需將SS解決方案.mat文件加載到已由Dymola生成的所有模型參數中即可。加載該解決方案消除了在執行SS調查偏差之前首先模擬該模型以實現SS解決方案的需要。我可以想象,發生這種情況的可能步驟是在模擬的'初始化'階段。由於這似乎是一個重要的概念,我想這個想法應該從Modelica/Dymola開發的早期階段開始考慮。鑑於這些模型的大小很快變得非常大,手動提取每個單獨的參數似乎不太合適。

問:

  1. 是否可以解決你的模型(.MAT文件)的狀態, 然後加載模擬所有變量的「初始」值? (這將覆蓋/取代 系統中的以前的初始猜測)
  2. 如果可能,這是如何實現的? (運行一些腳本,一些 隱藏菜單選項,在模型/模擬中添加某種導入命令?)

我非常感謝您的幫助。 我使用Dymola的2016

+0

相關:http://stackoverflow.com/questions/22335048/steady-state-initialization-in-modelica – matth

+1

這可以幫助你:http://www.claytex.com/blog/how-to-重新啓動模擬/ – matth

+0

感謝您的參考。我知道必須就這個問題進行一些現有的討論。 claytex鏈接很好,因爲它涉及到一些命令行初始化。 –

回答

2

我發現下面的答案上面貼我自己的問題。

編輯:matth還指出,關於這個問題下面提供有益的參考: http://claytex.com/blog/how-to-restart-a-simulation

這些是Dymola的指令。我無法驗證它們是否適用於其他基於Modelica的程序。我還在Dymola用戶手冊第1卷第5.3.3節模擬>繼續>導入​​初始/繼續中找到了一些文檔。

1)是的,可以從生成的.mat文件啓動模型。您也可以從dsfinal.txt文件繼續。

2)下面是使用GUI以下步驟:

  • 備份 'YOUR_MODEL.mat' 文件(例如YOUR_MODEL_orig.txt)。一旦你運行了模擬程序,一個新的.mat文件將被創建,你可能不想意外覆蓋它。
  • 翻譯你的模型。
  • 在功能區中,轉到模擬>繼續>導入​​初始。選擇您想要繼續仿真的.mat文件。
  • 將生成一個提示,要求提供給定範圍的時間輸入。這允許您在.mat仿真結果中的任何時間點繼續進行仿真。
  • 轉到模擬設置並選擇新的模擬參數。如果您希望解決方案註冊的開始時間爲0,而不是與初始SS模擬相關的一些大數字,則將「開始時間」更新爲0.這不會影響Model_Sim.mat文件中用於參數數據的初始時間。
  • 現在模擬模型。一個新的.mat文件將從您指定的位置開始生成。

替代方法:(奇數事情雖然用這種方法沒有.MAT文件似乎被生成或更新。)

  • 備份 'dsfinal.txt' 文件(例如dsfinal_orig.txt)。一旦你運行了模擬,一個新的dsfinal.txt文件將被創建,你可能不想意外覆蓋它。
  • 翻譯你的模型。
  • 在功能區中,轉到模擬>繼續>繼續。一旦按下該選項,模擬將開始使用任何dsfinal.txt文件在路徑上。
  • 模擬現在將繼續從生成dsfinal.txt文件的模擬的最終條件開始。
  • 如果希望從時間0開始,那麼可以修改dsfinal.txt文件(對我而言,第9,10和12行),它對應於模擬開始(9),停止(10)和時間步數(12)。這似乎是訣竅。