Output argument is not assigned on some execution paths.

10 visualizaciones (últimos 30 días)
Hello, I'm trying to code a controller block on simulink using matlab script, but everytime it runs an error that reads "Output argument 'WT2' is not assigned on some execution paths." pops up. Here is my code..
function [WT2, WT3, WT4] = Controller(wt1p, WTC, PV, Demand, Pbattery, SOC)
imbalance = abs(Demand) - PV - WTC;
if imbalance > 0 % SHORTAGE, battery starts supplying to bridge imbalance gap
if 2*wt1p > imbalance >= wt1p
WT2 = 1;
WT3 = 0;
WT4 = 0;
elseif 3*wt1p > imbalance >= 2*wt1p
WT2 = 1;
WT3 = 1;
WT4 = 0;
elseif imbalance >= 3*wt1p
WT2 = 1;
WT3 = 1;
WT4 = 1;
else %When imbalance < wt1p
WT2 = 0; %battery should start supplying in this situation
WT3 = 0; %and also when all the wind turbines are on but imbalance >0
WT4 = 0;
end
elseif imbalance <= 0 %%SURPLUS%%
if SOC >= 0.75
if 0 > imbalance >= -wt1p && WTC == 4*wt1p
WT2 = 1;
WT3 = 1;
WT4 = 0;
elseif 0 > imbalance >= -wt1p && WTC == 3*wt1p
WT2 = 1;
WT3 = 0;
WT4 = 0;
elseif 0 > imbalance >= -wt1p && WTC == 2*wt1p
WT2 = 0;
WT3 = 0;
WT4 = 0;
elseif -wt1p > imbalance >= -2*wt1p && WTC == 4*wt1p %%FINISH THIS YO!!!
WT2 = 1;
WT3 = 1;
WT4 = 0;
elseif -wt1p > imbalance >= -2*wt1p && WTC == 3*wt1p
WT2 = 1;
WT3 = 0;
WT4 = 0;
elseif -wt1p > imbalance >= -2*wt1p && WTC == 2*wt1p
WT2 = 0;
WT3 = 0;
WT4 = 0;
elseif -2*wt1p > imbalance >= -3*wt1p && WTC == 4*wt1p
WT2 = 1;
WT3 = 1;
WT4 = 0;
elseif -2*wt1p > imbalance >= -3*wt1p && WTC == 3*wt1p
WT2 = 1;
WT3 = 0;
WT4 = 0;
elseif -2*wt1p > imbalance >= -3*wt1p && WTC == 2*wt1p
WT2 = 0;
WT3 = 0;
WT4 = 0;
elseif -3*wt1p > imbalance && WTC == 4*wt1p
WT2 = 1;
WT3 = 1;
WT4 = 0;
elseif -3*wt1p > imbalance && WTC == 3*wt1p
WT2 = 1;
WT3 = 0;
WT4 = 0;
elseif -3*wt1p > imbalance && WTC == 2*wt1p
WT2 = 0;
WT3 = 0;
WT4 = 0;
else %if imbalance == 0
WT2 = 1; %%%
WT3 = 0; %%%
WT4 = 0; %%%
end
else %if SOC < 75, battery charges (takes adv. of imbalance)
WT2 = 1;
WT3 = 1;
WT4 = 1;
end
end
I'm pretty sure that every possible execution path has already been included. Which part am I missing?

Respuesta aceptada

James Tursa
James Tursa el 17 de En. de 2020
What happens if you change this
elseif imbalance <= 0
to this
else

Más respuestas (0)

Categorías

Más información sobre Multicore Processor Targets en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by