need help: optimization using fmincon in a simulink level-2 matlab s-function block
2 次查看(过去 30 天)
显示 更早的评论
Hi,
I would like to express the following objective function in a simulink level-2 matlab s-function block using fmincon as solver:
f(x,y) = x*tan(y(k+1)) + c*(y(k+1)-y(k))
where k is the step time.
My problem is in the variable y, I can't express it to be able to use it in fmincon and, all my attempts so far have been unsuccessful.
Your help will be very important to me!
Thank you...
0 个评论
回答(1 个)
Ameer Hamza
2020-3-11
编辑:Ameer Hamza
2020-3-11
To use fmincon, the objective function must accept a single input variable, which can be a vector. So for your function, you can pass it to fmincon as
sol = fmincon(@(x) f(x(1), x(2)), ..... )
Note that the initial point x0 also need to be 1x2. The returned value will also be 1x2.
5 个评论
Ameer Hamza
2020-3-11
I am not sure whether fmincon can help in such a case. You may need to reformulate the optimization problem such that the value of the objective function can be evaluated just by using input variables.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Manual Performance Optimization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!