Error using fmincon MATLAB function in simulink
Show older comments
Hallo everyone,
I have this optimisation code which is simply maximize the volume of a cube within a surface are does not exceel 10 cm. but I have to run it in Simulink using MATLAB function block (as in the fig). there are two errors:
1- if i run the code as shown below: FMINCON requires 10 input arguments. Must set option Algorithm to 'sqp' and pass to solver.
2-if add coder.extrinsic('fmincon') below function y = fcn(x): Function handles cannot be passed to extrinsic functions.
Thanks in adevance

function y = fcn(x)
% L_G=1;
% W_G=1;
% H_G=1;
% X0=[ L_G W_G H_G 5 6 ]
X0=[x];
xopt=fmincon(@objective,X0,[],[],[],[],[],[],@contraints)
v=calcvolume(xopt)
a=area_surf(xopt)
function volume= calcvolume(x)
L=x(1);
W=x(2);
H=x(3);
volume= L*W*H
end
function surface= area_surf(x)
L=x(1);
W=x(2);
H=x(3);
surface = 2*L*H + 2*L*W + 2*W*H;
end
function obj =objective(x)
obj=-calcvolume(x)
end
function [c, ceq]= contraints(x)
c=area_surf(x)-10
ceq=[];
end
Accepted Answer
More Answers (0)
Categories
Find more on General Applications in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!