Output argument is not assigned on some execution paths.

10 次查看(过去 30 天)
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?

采纳的回答

James Tursa
James Tursa 2020-1-17
What happens if you change this
elseif imbalance <= 0
to this
else

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Multicore Processor Targets 的更多信息

产品


版本

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by