Too many output arguments. Requested 3 output(s), but only 1 output(s) available.
Show older comments
function cost_value=cost_func(k,plotfig)
ke=k(1,1);
kce=k(1,2);
ku=k(1,3);
X=k(1,4);
z_a=abs(k(1,5));
v_a=abs(k(1,6));
% negative big
NB=-X;
% negative medium
NM=-X/2;
% positive medium
PM=X/2;
% positive big
PB=X;
Z=0;
% Compute function value
opt = simset('solver','ode23tb','SrcWorkspace','Current');
[tout,xout,yout] = sim('ACO_TS.slx',[0 0.5],opt);
% compute the fitness value
z1=sqrt(mean(rmse)); % rms error
z2=(mean(iae)); % integral absolute error
z3=(mean(itae)); % integral time multiplied absolute error
z4=(mean(ise));
cost_value=z1+z2+z3+z4+mean(thd1);
Error using cost_func
Too many output arguments. Requested 3 output(s), but only 1 output(s) available.
Error in ACO (line 58)
cost(A)=cost_func(tour_selected_param,0); - Show complete stack trace

5 Comments
Sam Chak
on 7 Jan 2024
The block diagram looks like a Fuzzy PD plus fixed Integral controller. Are you trying find the gain values of ke, kce and ku using Ant Colony Optimizer (or any other optimization algorithm) that minimizes the overkill cost function of combined vectored square error (incorrectly labelled as rmse), ISE, IAE, and ITAE?
Is the system (plant) linear or nonlinear?
Sahithi Kandhukuri
on 7 Jan 2024
Sam Chak
on 7 Jan 2024
Have you resolved the issue? Can you find the optimal gain values?
Sahithi Kandhukuri
on 7 Jan 2024
Sam Chak
on 7 Jan 2024
Can you count the number of output(s) available in your Simulink model? Perhaps you requested these three outputs (in individual vectored data form) from the Simulink model in the cost_func() function, but it's possible that you consolidated all the data into a single simulation output object named 'out', as pointed out by @Walter Roberson.

If you are unfamiliar with the object-oriented programming (the dot notation stuff), then better configure the Simulink model to log the requested data as tout, xout, yout, rmse (incorrect!), ise, iae, and itae.

Accepted Answer
More Answers (1)
Walter Roberson
on 7 Jan 2024
0 votes
I suspect that your model has been configured to return a single output;
Categories
Find more on Fuzzy Logic in Simulink 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!



