2013-04-29 40 views
0

我想知道是否有人使用過Dymola中的優化庫,能夠使用RealtimeOptimization函數而沒有顯式的植物本構方程來輸入criteriaFunction?具體來說,我試圖使用我的模型的一些狀態作爲標準函數,但是當我輸入y[1] := mymodel.state;在狀態周圍或不帶引號時,Dymola拒絕該函數。任何想法都會非常有幫助。謝謝。Dymola中的實時優化

回答

0

無法訪問函數中的模型變量。您必須通過函數的輸入來提供變量的值。 RealtimeOptimization任務旨在在模擬Modelica模型期間調用。標準函數具有定義的輸入nTuners,nCriteria,調諧器[nTuners]。您可以添加其他輸入變量,請參閱示例Optimization.Tasks.RealtimeOptimization.Examples.Example02.RunSampled和函數Optimization.Tasks.RealtimeOptimization.Examples.Example02.criteriaFunc02中的記錄UserData。通過這些額外的變量,您可以將一些狀態變量轉換爲critiera函數。

也許我們可以幫助您,如果您提供有關您的設置的更多信息。我是Dymola中優化庫的主要開發人員。

+0

謝謝安德烈亞斯。我正在嘗試使用優化實時功能爲我的建模系統形成一個閉環控制。我有三個系統狀態,我想在最小/最大限制內控制,還有兩個輸入,也有限制。績效標準是其中一個輸入的目標。系統還有一個額外的輸入是外部參考(不可控)。你的想法將不勝感激。 – 2013-04-30 15:45:44

+0

嘗試在優化窗口(GUI)中輸入我的標準函數後,我收到一個錯誤,指出我定義的函數是非法的。標準函數是否必須將標準定義爲調諧器的顯式函數?我無法將我的模型狀態定義爲我正在使用的調諧器的清晰功能。有沒有辦法只使用C [1]:= myinput1; ? – 2013-05-01 01:01:10

0

您可以嘗試將輸出(Modelica.Blocks.Interfaces.RealOutputs)添加到模型的頂層,然後使用Modelica.Blocks.Sources.RealExpression塊將這些輸出鏈接到狀態。

然後,當使用優化功能轉到條件頁面並使用選擇按鈕並選擇這些輸出以將它們添加爲條件。

+0

標準頁面爲解算器創建優化標準,但不爲標準函數創建。該功能本身無法訪問模型,除非Andreas指出。 – 2013-04-30 14:35:40