ERROR : "Input arguments must be convertible to floating-point numbers"
    6 views (last 30 days)
  
       Show older comments
    
    Shimon Katzman
 on 22 Nov 2019
  
    
    
    
    
    Commented: Star Strider
      
      
 on 23 Nov 2019
            Hi everyone, im getting this error:
Error using sym/min (line 98)
Input arguments must be convertible to floating-point numbers.
Error in advencedconcrete32a (line 16)
tension= min(Es*(d-c)/c*epscm*As/1000,fy*As/1000);
i guess the problem is that i use "c" before i solved it, how else can i find "c" from the equation compression= tension?
please help.
thank you very much.
b=300;  %mm
d=400;  %mm
fc=40;  %Mpa
Ecm=22*(fc/10)^0.3*10^3;  %Mpa
Es=200000;  %Mpa
As=2400;  %mm^2
fy=400;  %Mpa
epsc1=min(2.8/1000,0.7*fc^0.31/1000);
epscu=3.5/1000;
k=1.05*Ecm*epsc1/fc;
epscm=1.5/1000;
syms c
funC=@(epsc) (k*epsc/epsc1-(epsc/epsc1).^2)./(1+(k-2)*epsc/epsc1);
compression= b*fc*c./epscm*integral(funC,0,epscm)/1000;
tension= min(Es*(d-c)/c*epscm*As/1000,fy*As/1000);
solc= compression==tension;
c=solve(solc,c)
Accepted Answer
  Walter Roberson
      
      
 on 23 Nov 2019
        Replace
tension= min(Es*(d-c)/c*epscm*As/1000,fy*As/1000);
with
tension = piecewise(Es*(d-c)/c*epscm*As/1000<=fy*As/1000,Es*(d-c)/c*epscm*As/1000,fy*As/1000)
Replace
funM=@(epsc)(k*epsc/epsc1-(epsc/epsc1).^2)./(1+(k-2)*epsc/epsc1)*(d-c+(c/epscm)*epsc);
with
funM=@(epsc)(k*epsc./epsc1-(epsc./epsc1).^2)./(1+(k-2)*epsc./epsc1).*(d-c+(c./epscm).*epsc);
3 Comments
  Walter Roberson
      
      
 on 23 Nov 2019
				Change
    funM=@(epsc)(k*epsc./epsc1-(epsc./epsc1).^2)./(1+(k-2)*epsc./epsc1).*(d-c+(c./epscm).*epsc); 
    M(i)=b*fc*c/epscm*integral(funM,0,epscm)/1000000;
to
    funM=@(epsc)(k*epsc./epsc1-(epsc./epsc1).^2)./(1+(k-2)*epsc./epsc1).*(d-c(i)+(c(i)./epscm).*epsc); 
    M(i)=b*fc*c(i)/epscm*integral(funM,0,epscm)/1000000;
More Answers (1)
  Star Strider
      
      
 on 22 Nov 2019
        The min function is not compatible with symbolic objects, for obvious reasons.  
Try this instead: 
b=300;  %mm
d=400;  %mm
fc=40;  %Mpa
Ecm=22*(fc/10)^0.3*10^3;  %Mpa
Es=200000;  %Mpa
As=2400;  %mm^2
fy=400;  %Mpa
epsc1=min(2.8/1000,0.7*fc^0.31/1000);
epscu=3.5/1000;
k=1.05*Ecm*epsc1/fc;
epscm=1.5/1000;
funC=@(epsc) (k*epsc/epsc1-(epsc/epsc1).^2)./(1+(k-2)*epsc/epsc1);
compression = @(c) b*fc*c./epscm*integral(funC,0,epscm)/1000;
tension = @(c) min(Es*(d-c)/c*epscm*As/1000,fy*As/1000);
c=fsolve(@(c) compression(c)-tension(c), 1 )
producing (with this initial parameter estimate): 
c =
   154.2368
6 Comments
See Also
Categories
				Find more on Calculus 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!

