Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Complex numbers for embedded matlab for simulink

Status
Not open for further replies.

charliec2uk

Electrical
May 31, 2005
2
have a significant problem with Simulink in that I need to evaluate a series of simple equations, the difficulty is that at point, the results gain an imaginary compnent.


a=complex(1,2);
b=complex(1,2);
c=complex(1,2);
d=complex(1,2);

Position = (Position/360)*2*pi; % Convert to Radians

[height, r_dash, capacitance] = definevariables(alpha,voltage,radius,height_sp,rel_perm);
beta = (alpha/360)*2*pi;
upper_limit = gamma2-Position;
lower_limit = gamma1-Position;

a = capacitance*((r_dash / (cos(upper_limit)^2))*log((r_dash/cos(upper_limit))-out_radius)+(out_radius/cos(upper_limit)));
b = capacitance*((r_dash / (cos(upper_limit)^2))*log((r_dash/cos(upper_limit))-in_radius)+(in_radius/cos(upper_limit)));
c = capacitance*((r_dash / (cos(lower_limit)^2))*log((r_dash/cos(lower_limit))-out_radius)+(out_radius/cos(lower_limit)));
d = capacitance*((r_dash / (cos(lower_limit)^2))*log((r_dash/cos(lower_limit))-in_radius)+(in_radius/cos(lower_limit)));

The value for Position is from a signal generator outside the block, scaling from 0 to 360(degrees). The difficulty is than one the term inside the log brackets goes negative, the function returns a negative value and apparently simulink can't resolve this, so return 'NaN'. A test, I even tried assigning sqrt(-1) to a variable, and got the same results. Please help! Deadline soon.

Btw, am using Simulink 6.0 with Matlab 7.0 (both R14)

Thanks

Charlie
 
Replies continue below

Recommended for you

try log( abs( stuff ) )
or find all of the non positive elements of stuff using find() and setting them to eps.



 
Status
Not open for further replies.

Part and Inventory Search

Sponsor