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=ys1e3=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 endend %%%%%
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 endend %%%%%%%%%%%%%%%%%%%%
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 endend%%%%%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 endend %%%%%%%%%%%%%%
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.
Best Answer