Hi everyone,
This is very wierd.
I entered this code to plot a (epscmv, cdivd) graph and there are two problems:
1) sometimes it works and draws the graph but most of the time it errors:
Error using plotVectors must be the same length.Error in Untitled (line 30)plot(epscmv, cdivd
2) the graph has to finish at epsAtMmax which is 2.7671 but it stoppes at 3.5 instead..
Thank you for your help.
b=300; %mm
d=400; %mmfc=40; %Mpa
Ecm=22*(fc/10)^0.3*10^3; %MpaEs=200000; %MpaAs=2400; %mm^2
fy=400; %Mpaepsc1=min(2.8/1000,0.7*fc^0.31/1000);epscu=3.5/1000;k=1.05*Ecm*epsc1/fc;epscmv = linspace(0.05, 3.5, 500)*1E-3;for i=1:numel(epscmv); epscm = epscmv(i); 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(i)=fsolve(@(c) compression(c)-tension(c),1); 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; phi(i)=epscm/c(i); cdivd(i)=c(i)/d; if (i > 1) & (M(i)<M(i-1)) break; endend[Mmax,idx]=max(M) %[kNm]
phiAtMmax=phi(idx) %[1/mm]
epsAtMmax=epscmv(idx)*1000 %[promil]
plot(epscmv, cdivd)grid onxlabel('epsilon cm')ylabel('c/d')
Best Answer