非線形モデル予測制御にカスタム評価関数の与え方
7 次查看(过去 30 天)
显示 更早的评论
非線形モデル予測制御を用いてモータの制御を行っています。
評価関数について質問があります。
標準の評価関数を用いずに以下の式を与えたい場合はどのように設定すれば良いのでしょうか?
![評価関数.PNG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/269272/%E8%A9%95%E4%BE%A1%E9%96%A2%E6%95%B0.png)
教えていただけると幸いです。
よろしくお願いいたします。
0 个评论
采纳的回答
Kohei Iwamoto
2020-5-20
非線形MPCのカスタム評価関数の機能をご利用するのが良いかと思います。
カスタム評価関数は関数m-file、関数ハンドル、無名関数によって、以下のようにnlmpcオブジェクトに指定して与えることが出来ます。
nlobj.Optimization.CustomCostFcn = "myCostFunction";
評価関数の書き方の詳細については、以下のヘルプをご確認頂くと良いかと思いますが、プログラム上で状態量と入力を抽出し、終端を除く予測ステップ間はステージコストLの総和(sum)を計算し、終端コストphiは終端での状態量から計算し、両者を合算した値Jを戻り値とするという方法で実装できると考えられます。
3 个评论
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;
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear Plant Specification 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!