Variable 'ep3' is undefined on some execution paths.
Show older comments
Hello dears,
I'm using the block named Embedded MATLAB (that link the simulink to matlab) and when I try to run the code above, return the message errors: "Variable 'ep3' is undefined on some execution paths", "Variable 'edotp3' is undefined on some execution paths". However, I define these parameters in the embedded matlab function. In below code I identified the line of error.
function y_3 = fcn3_2star_Edit_01(ys1,ys2)
de3=ys1
e3=ys2
x0nb_up=-0.9; x0z_up=-0.1; x0pb_up=0.9;
x0nb=-1; x0z=0; x0pb=1;
x0nb_bot=-1.1; x0z_bot=0.1; x0pb_bot=1.1;
%% x0z1=0; x0p=1; x0n=-1;
%%%% Mu&SigmaForMF %%%%
muP=1; muZ=0; muN=-1; sigma=0.0598957;
if e3<=x0pb && e3>0
ep3=1*max(0,exp(-(e3-x0pb)^2/0.16))
else
if e3 <=0
ep3=0;
else
if e3 >x0pb
ep3=1*max(0,1)
end
end
end
%%%%%
if e3<=x0z && e3>x0nb
ez3=1*max(0,exp(-(e3-x0z)^2/0.16));
else
if e3>=x0z && e3<x0pb
ez3=1*max(0,exp(-(e3-x0z)^2/0.16));
else
if e3<=x0nb
ez3=0 ;
else
if e3>=x0pb
ez3=0;
end
end
end
end
%%%%%
if e3<x0nb
en3=1*max(0,1);
else
if e3>=x0nb && e3<0
en3=1*max(0,exp(-(e3-x0nb)^2/0.16));
else
if e3>=0
en3=0;
end
end
end
%%%%%%%%%%%%%%%%%%%%
if de3<=x0p && de3>0
edotp3=1*max(0,exp(-(de3-x0p)^2/0.16));
else
if de3 <=0
edotp3=0;
else
if de3>x0p
edotp3=1*max(0,1);
end
end
end
%%%%%
if de3<=x0z && de3>x0nb
edotz3=1*max(0,exp(-(de3-x0z)^2/0.16));
else
if de3>=x0z && de3<x0pb
edotz3=1*max(0,exp(-(de3-x0z)^2/0.16));
else
if de3<=x0nb
edotz3=0 ;
else
if de3>=x0pb
edotz3=0;
end
end
end
end
%%%%%
if de3<x0n
edotn3=1*max(0,1);
else
if de3>=x0n && de3<0
edotn3=1*max(0,exp(-(de3-x0n)^2/0.16));
else
if de3>=0
edotn3=0;
end
end
end
%%%%%%%%%%%%%%
if 0< ep3 && ep3 <1 %%% The ERROR is in this line
p_ep3=(1/((2*sqrt(2*pi))*ep3*sigma))*sqrt(-0.16/(log(ep3)))*(exp(-(sqrt(-0.16*log(ep3))+e3-muP)^2/(2*sigma^2))+exp(-(-sqrt(-0.16*log(ep3))+e3-muP)^2/(2*sigma^2)));
PP_ep3=1-((erf((sqrt(-0.08*log(ep3))+(muP/(2^0.5))-(e3/(2^0.5)))/sigma)+erf((sqrt(2)*sqrt(-0.08*log(ep3))-muP+e3)/(sqrt(2)*sigma)))/(sqrt(2)))
else
p_ep3=0;
PP_ep3 =0;
end
%%%%%%%%%%%%%%
if 0< edotp3 && edotp3 <1 %%% The ERROR is in this line
p_edotp3=(1/((2*sqrt(2*pi))*edotp3*sigma))*sqrt(-0.16/(log(edotp3)))*(exp(-(sqrt(-0.16*log(edotp3))+de3-muP)^2/(2*sigma^2))+exp(-(-sqrt(-0.16*log(edotp3))+de3-muP)^2/(2*sigma^2)));
PP_edotp3=1-((erf((sqrt(-0.08*log(edotp3))+(muP/(2^0.5))-(de3/(2^0.5)))/sigma)+erf((sqrt(2)*sqrt(-0.08*log(edotp3))-muP+de3)/(sqrt(2)*sigma)))/(sqrt(2)))
else
p_edotp3=0;
PP_edotp3=0;
end
%%%%%%
........ the code is continuded
My code is too longe, so I only put the beginig of it up to where there is problem.
Accepted Answer
More Answers (0)
Categories
Find more on Electrical Block Libraries 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!