非線形モデル予測制御にカスタム評価関数の与え方

9 ビュー (過去 30 日間)
Taisuke Hattori
Taisuke Hattori 2020 年 1 月 31 日
コメント済み: Taisuke Hattori 2020 年 5 月 22 日
非線形モデル予測制御を用いてモータの制御を行っています。
評価関数について質問があります。
標準の評価関数を用いずに以下の式を与えたい場合はどのように設定すれば良いのでしょうか?
評価関数.PNG
教えていただけると幸いです。
よろしくお願いいたします。

採用された回答

Kohei Iwamoto
Kohei Iwamoto 2020 年 5 月 20 日
非線形MPCのカスタム評価関数の機能をご利用するのが良いかと思います。
カスタム評価関数は関数m-file、関数ハンドル、無名関数によって、以下のようにnlmpcオブジェクトに指定して与えることが出来ます。
nlobj.Optimization.CustomCostFcn = "myCostFunction";
評価関数の書き方の詳細については、以下のヘルプをご確認頂くと良いかと思いますが、プログラム上で状態量と入力を抽出し、終端を除く予測ステップ間はステージコストLの総和(sum)を計算し、終端コストphiは終端での状態量から計算し、両者を合算した値Jを戻り値とするという方法で実装できると考えられます。
  3 件のコメント
Kohei Iwamoto
Kohei Iwamoto 2020 年 5 月 21 日
引数として重みなどのパラメーターを与えたいということかと思います。
それは可能です。ご紹介したヘルプにあるようにユーザー独自のパラメーターをカスタム関数に追加することが出来ます。
その場合には、以下の説明に従い、各関数やnlmpcオブジェクトに追加パラメーターを指定することになります。
Optional parameters, specified as a comma-separated list (for example p1,p2,p3). The same parameters are passed to the prediction model, custom cost function, and custom constraint functions of the controller. For example, if the state function uses only parameter p1, the constraint functions use only parameter p2, and the cost function uses only parameter p3, then all three parameters are passed to all of these functions.
If your model uses optional parameters, you must specify the number of parameters using the Model.NumberOfParameters property of the controller.
追加パラメーターをnlmpcオブジェクトに含める例として、以下になります。(追加パラメーターが一つの場合)
nlobj.Model.NumberOfParameters = 1;
Taisuke Hattori
Taisuke Hattori 2020 年 5 月 22 日
ありがとうございます。
参考にさせていただきます。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeModel Predictive Control Toolbox についてさらに検索

製品


リリース

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!