質問: 非線形モデル予測制御にカスタム評価関数の与え方 非線形モデル予測制御を用いてモータの制御を行っています。 評価関数について質問があります。 標準の評価関数を用いずに以下の式を与えたい場合はどのように設定すれば良いのでしょうか? 教えていただけると幸いです。 よろしくお願いいたします。
回答: 非線形mpcのカスタム評価関数の機能をご利用するのが良いかと思います。 カスタム評価関数は関数m-file、関数ハンドル、無名関数によって、以下のようにnlmpcオブジェクトに指定して与えることが出来ます。 nlobj.optimization.customcostfcn = "mycostfunction"; 評価関数の書き方の詳細については、以下のヘルプをご確認頂くと良いかと思いますが、プログラム上で状態量と入力を抽出し、終端を除く予測ステップ間はステージコストlの総和(sum)を計算し、終端コストphiは終端での状態量から計算し、両者を合算した値jを戻り値とするという方法で実装できると考えられます。 https://jp.mathworks.com/help/mpc/ug/specify-cost-function-for-nonlinear-mpc.html