0

Dymola の最適化ライブラリを使用したことがある人は、明示的なプラント構成方程式を CriteriaFunction に入力しなくても RealtimeOptimization 関数を利用できたのでしょうか? 具体的には、モデルの状態の一部を基準関数として使用しようとしていますがy[1] := mymodel.state;、状態を引用符で囲んでも付けずに入力しても、Dymola は関数を拒否します。どんな考えでも非常に役に立ちます。ありがとうございました。

4

2 に答える 2

0

関数内でモデル変数にアクセスすることはできません。関数への入力を介して変数の値を提供する必要があります。RealtimeOptimization タスクは、Modelica モデルのシミュレーション中に呼び出されることを目的としています。基準関数には、定義された入力 nTuners、nCriteria、tuners[nTuners] があります。追加の入力変数を追加できます。例 Optimization.Tasks.RealtimeOptimization.Examples.Example02.RunSampled および関数 Optimization.Tasks.RealtimeOptimization.Examples.Example02.criteriaFunc02 のレコード UserData を参照してください。これらの追加変数により、いくつかの状態変数を基準関数に転送できます。

設定に関する詳細情報を提供していただければ、お手伝いできるかもしれません。私は Dymola の最適化ライブラリの主な開発者です。

于 2013-04-30T09:58:58.453 に答える
0

出力 (Modelica.Blocks.Interfaces.RealOutputs) をモデルのトップ レベルに追加し、Modelica.Blocks.Sources.RealExpression ブロックを使用してこれらを状態にリンクしてみてください。

次に、最適化機能を使用する場合は、基準ページに移動し、[選択] ボタンを使用してこれらの出力を選択し、基準として追加します。

于 2013-04-30T08:57:29.747 に答える