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*Hend function surface= area_surf(x) L=x(1); W=x(2); H=x(3);surface = 2*L*H + 2*L*W + 2*W*H;endfunction obj =objective(x)obj=-calcvolume(x)endfunction [c, ceq]= contraints(x)c=area_surf(x)-10ceq=[];end
Best Answer