下記の図のようにエクセルでソルバー機能を使って目的関数が最小値となるようなλを計算しています。
各列は以下の通りです。x, yと, B列λ[t]とC列のλ[t-1]はそれぞれ下記の通りです。
A: サンプリング時間
B: λ[t]はソルバー機能で求めたF列のλがそのまま入力される
エクセルでは$B$n = $F$n (nは行数) ただし、初期値は1
C: λ[t-1]はBのλの1サンプリング前の値
エクセルでは$C$n = $B$(n-1) 初期値は0
D: x = λ[t] - 0.7
エクセルでは$D$n = $B$n - 0.7
E: y = 0.2 * λ[t-1]
エクセルでは0.2 * $C$n
F: ソルバーの変数セル
G: 目的セル ($E$n - $D$n)^2
これと同等のことをMATLAB/Simulinkを使ってやりたいのですが、やり方がわかりません。
Optimization toolboxのfminsearch関数を使えばできそうな気がするのですが、引数にλの関数を入れなくてはいけないようですが、エクセルソルバーのようにλの陰関数としてx, yのみを使って指定したいです。今回の場合(x - y)^2
fminsearchをSimulinkで使うにはMATLAB Functionブロックでないといけないかと思います。
上記のようなやり方をお手数ですが、教えていただけませんでしょうか。
誠におそれいりますが、よろしくお願いいたします。
あなたの回答
tips
プレビュー