%===================================================================== | % Calculation of adjustable constants of (1)(psi and zeta) | % Fei CHEN | % 25.12.2013 | %===================================================================== | %The needed information is the stress-strain curve data | %These points should be provided in a variable named | %“DATA_T_STRAINRATE” | %The variable “DATA_T_STRAINRATE” should be in format of (strain, | %stress) in 2 columns | %===================================================================== | clc; | clear all; | a=load(‘DATA_T_STRAINRATE’);% reading the experimental data | N=size(a); N=N(1);%Number of rows | s0=a(1,2);%Value of initial stress | sp=max(a);sp=sp(2);%Value of peak stress | Q=size(a); Q=Q(1);%Number of rows | for i=1:Q; | if(a(i,2)==sp) | ep=a(i,1);% Value of peak strain | M=i; | end | end | for i=1:M | b(i,1)=a(i,1); | b(i,2)=a(i,2); | end | x1=b(:,1); | y1=b(:,2); | for i=1:M | c(i,1)=a(i,1)/ep; | c(i,2)=a(i,2)/sp; | end | x2=c(:,1); | y2=c(:,2); | k0=[0.001,0.001]; | x=0:0.001:1; | f1=@(k,x) (1-exp(k(1)*(x). ∧k(2))); | for i=1:1000 | k=lsqcurvefit(f1,k0,x2,y2);%the method of least squares | k0=k; | end | y=1-exp(k(1)*(x). ∧k(2)); | for i=1:M | d(i,1)=b(i,1); | d(i,2)=sp*(1-exp(k(1)*c(i,1). ∧k(2))); | end | %psi=k(1) | %zeta=k(2) | %===================================================================== | %Following lines could be used to compare the predicted data with the | %experimental data | %===================================================================== | %x3=d(:,1); | %y3=d(:,2); | %subplot(1,2,1),plot(x2,y2,‘b:*’) | %hold on | %subplot(1,2,1),plot(x,y,‘g:+’); | %hold off | %subplot(1,2,2),plot(x1,y1,‘b:*’) | %hold on | %subplot(1,2,2),plot(x3,y3,‘g:+’) | %hold off |
|