You are on page 1of 7

%Parameters

% user must input these parameters


%%

% P = P =
% || ||
% \/ \/
% ========================================
% --L1--
% ---- z1 ----
% --------------- z2 -----
% ------------------ L -------------------
% z1=(L-2*L1)/2 z2=(z1+2*L1)
clc
clear all
H=300; % Overall depth mm
B=150; % Width of Beam mm
D=270; % Depth to tesile reinforcement mm
L=3.4; % Length of beam (m)
L1=1; % Loads disdance from mid span m
d=0; %Depth to compression reinforcement mm
As1=241; % Tesion reinforcement mm2
As2=0; % Compression reinforcement mm2
Es=193; %Steel modulous of elasticity Gpa
Ec=28.5; %Concrete modulous of elasticity Gpa
fck=29; % Cyliderical compressive strength Mpa
fctm=2.8; %Concrete mean tensile strength
fctm=round(0.3*fck^(2/3),1); Mpa

%% ---------------------------------------------------------------
P=30; %Applied concentrated load KN

% Mesh size in (mm) (square eg. 50x50)


% Mesh=10;
%% ---------------------------------------------------------------
%Number of horizontal and longitudenal segments required calaulated follows

N=100;% N=(L*1000)/Mesh; %Number of longitudenal segments


n=250;% n=H/Mesh; %Number of horizontal segments
NL=50; %Number of Load Steps
%%
T=H/n;
Ts1=As1/B;
Ts2=As2/B;
%
dia1=16;n1=As1/(pi()/4*dia1^2);Is1=n1*pi()/64*dia1^4;
dia2=12;n2=As2/(pi()/4*dia2^2);Is2=n2*pi()/64*dia2^4;
%
eps_com=fck/(Ec*1000);
eps_cr=fctm/(Ec*1000);
z1=(L-2*L1)/2;
z2=(z1+2*L1);
%%
% processing parameters 2 repeated procedure for x segment it calculates
% the moment,curvature,angle and deflection
Load=0:P/NL:P;

X=0:L/N:L;
Xf=0:L/N:L;
%---------------------------------------------------------------------
Mid_Delta=zeros(1,length(Load));
Mid_Moment=zeros(1,length(Load));
mid_curv=zeros(1,length(Load));

Sm=zeros(1,length(X));
Angle=zeros(1,length(X));
Delta=zeros(1,length(X));

M=zeros(1,length(X));
Zeta=zeros(1,length(X));
C1=zeros(1,length(X));
C2=zeros(1,length(X));
S1=zeros(1,length(X));
S2=zeros(1,length(X));
Delta_Corr=zeros(1,length(X));
%%
for j=1:length(Load);

for i=1:length(X);

% M(i)=((Load(j)*X(i))/2)*(L-X(i));

if X(i)<=z1
M(i)=Load(j)*X(i);
elseif X(i)>=z1 && X(i)<=z2
M(i)=Load(j)*X(i)-Load(j)*(X(i)-z1);
elseif i==length(X);
M(i)=0;
else
M(i)=(Load(j)*X(i)-Load(j)*(X(i)-z1)-Load(j)*(X(i)-z2));

end
%%
AE=0;
SE=0;
EI=0;

y=0:T:H;
for u=1:length(y);
E=Ec;
if u==1
AE=AE+As1*Es+As2*Es;
SE=SE+((As1*D)+(As2*d))*Es;
Yrc1=SE./AE;
EI=EI+((B*T.^3)/12+B*T*((y(u)-(T/2))-Yrc1).^2)*E+((Is1+As1*(D-Yrc1)^2)+
(Is2+As2*(d-Yrc1)^2))*Es;
else
AE=AE+B*T*E;
SE=SE+B*T*abs(y(u)-(T/2))*E;
Yrc1=SE./AE;
EI=EI+((B*T.^3)/12+B*T*((y(u)-(T/2))-Yrc1).^2)*E;
end
I1=EI./Ec;

K_un=(M(i)*10^6)./(EI*1000);
eps_un=K_un*Yrc1*(1-(y/Yrc1));
end
%%
% Cracking moment
ys=H-Yrc1;
Z=I1/ys;
Mcr=(Z*fctm)/10^6;
%------------------------------------------------------------------
%%
AE=0;
SE=0;
EI=0;

eps0=0.0005;
Yrc0=0.5*H;

Ns=0;
eps=zeros(1,length(y));
Err_K=1;
Err_eps=1;
Err_Yrc=1;
while ( Err_K > 1e-7) && (Err_eps> 1e-7);
K=(eps0/Yrc0);
while Err_Yrc > 1e-1;
for a=1:length(y);

eps(a)=-eps0+K*(y(a)-(T/2));

if eps(a) < 0;
E=Ec;
else
E=0;
end

if a==1
AE=AE+As1*Es+As2*Es;
SE=SE+((As1*D)+(As2*d))*Es;
Yrc=SE./AE;

else
AE=AE+B*T*E;
SE=SE+B*T*abs(y(a)-(T/2))*E;
Yrc=SE./AE;

end
end

EI=0;
for a=1:length(y);

eps(a)=-eps0+K*(y(a)-(T/2));

if eps(a) < 0;
E=Ec;
else
E=0;
end

if a==1

EI=EI+((B*T.^3)/12+B*T*((y(a)-(T/2))-Yrc).^2)*E+((Is1+As1*(D-Yrc)^2)+
(Is2+As2*(d-Yrc)^2))*Es;
else

EI=EI+((B*T.^3)/12+B*T*((y(a)-(T/2))-Yrc).^2)*E;
end

end

Kc=(M(i)*10^6)./(EI*1000);
eps0c=Kc*Yrc;

Err_K=abs(Kc-K);
Err_eps=abs(eps0c-eps0);
Err_Yrc=abs(Yrc-Yrc0);

K=Kc;
eps0=eps0c;
Yrc0=Yrc;

Ns=Ns+1;
I2=EI./Ec;

end
end
%%
Zeta(i)=1-(Mcr/M(i))^2;
if Zeta(i)<=0
Zeta(i)=0;
end
Zeta(isinf(Zeta(i)))=0;
%-------------------------------------------------------------------------
% Calculate curvature
% Uncracked section
C1(i)=(M(i)*10^6)/(Ec*1000*I1);
% Fully cracked section
C2(i)=(M(i)*10^6)/(Ec*1000*I2);

% Uncracked section curvature


S1(i)=(1-Zeta(i))*C1(i);
% Fully cracked section curvature
S2(i)=Zeta(i)*C2(i);
% Mean curvature
Sm(i)=S1(i)+S2(i);

%------------------------------------------

% Strain at any layer


eps_mesh=-1*eps;
eps_av=(1-Zeta(i)).*eps_un+Zeta(i).*eps_mesh;
eps_f(i,:)=eps_av;

%-------------------------------------------------------------------------
if i==1
Angle(i)=0;
Delta(i)=0;
else
Angle(i)=Angle(i-1)+(L/N)*0.5.*(Sm(i)+Sm(i-1))*1000;

Delta(i)=Delta(i-1)+(L/N)*0.5.*(Angle(i)+Angle(i-1))*1000;
end

end
Delta_Corr=Delta(length(X))*(X/L)-Delta;
%-------------------------------------------------------------------------

Mid_Delta(j)=max(Delta_Corr);
Mid_Moment(j)=max(M);
mid_curv(j)=Sm(round(length(X)/2));
disp(Load(j));

X_Mesh=X*1000;

fprintf(' X(m)\t M (kn.m) \t Zeta \t 1/r1 (mm)\t 1/r2 (mm)\t S1 \t S2 \t


Sm \t Theta \t Delta (mm) Delta-corr (mm) \n')

fprintf(' %2.1f \t %4.2f \t %6.5f \t %4.2e \t %4.2e \t %4.2e \t %4.2e \t %4.2e \


t %6.4f \t %6.5f \t %6.5f \n' ...
,[X;M;Zeta;C1;C2;S1;S2;Sm;Angle;Delta;Delta_Corr])

%% ----------------------------------------------------------------
%for proessing cracked zones

eps_f2=-eps_f;
num_rows=size(eps_f2,1);
num_cols=size(eps_f2,2);
for w=1:1:num_rows
for g=1:1:num_cols
if eps_f2(w,g) > eps_cr
eps_f2(w,g)=eps_cr;
elseif eps_f2(w,g) > eps_com
eps_f2(w,g)=eps_com;
else
eps_f2(w,g)=eps_f2(w,g);
end
end
end

eps_f3=transpose(eps_f2);
eps_f4(:,:,j)=eps_f3;

%-----------------------------------------------------------------------
%%
end
%-----------------------------------------------------------------------
% Strain_cr(X_Mesh,y,eps_f3);

close all

obj = VideoWriter('Experiment modelling.mp4');


obj.Quality = 100;
obj.FrameRate = 1;
open(obj);

% set(0,'defaultfigureposition',[400 300 1000 400]);


set(0,'defaultfigureposition',[200 250 1500 600]);
figure1 = figure;
figure1.Color =('white');

figure1.PaperSize =[14 11];


figure1.PaperOrientation=('landscape');
axes1 = axes('Parent',figure1,'BoxStyle','full','Layer','top','YDir','reverse',...
'Position',[0.107780612244897 0.498349834983498 0.771709183673467
0.191207127041825]);
box(axes1,'on');
hold(axes1,'on');

% 'CLim',[-0.0001 0.0001],
for j=1:length(Load);
% Create axes
caxis([-0.0001 0.0001]);
YDir=('reverse');
% CLim = [-0.0001 0.0001] ;
% Create contour

contourf(X_Mesh,y,eps_f4(:,:,j),100,'LineStyle','none',...
'LevelList',[-0.000238941116876091 -0.000232334759635289 -0.000225728402394487
-0.000219122045153685 -0.000212515687912883 -0.00020590933067208 -
0.000199302973431278 -0.000192696616190476 -0.000186090258949674 -
0.000179483901708871 -0.000172877544468069 -0.000166271187227267 -
0.000159664829986465 -0.000153058472745663 -0.00014645211550486 -
0.000139845758264058 -0.000133239401023256 -0.000126633043782454 -
0.000120026686541651 -0.000113420329300849 -0.000106813972060047 -
0.000100207614819245 -9.36012575784426e-05 -8.69949003376404e-05 -
8.03885430968381e-05 -7.37821858560359e-05 -6.71758286152337e-05 -
6.05694713744315e-05 -5.39631141336293e-05 -4.73567568928271e-05 -
4.07503996520248e-05 -3.41440424112226e-05 -2.75376851704204e-05 -
2.09313279296182e-05 -1.43249706888159e-05 -7.7186134480137e-06 -1.11225620721148e-
06 5.49410103359071e-06 1.2100458274393e-05 1.87068155151951e-05 2.53131727559974e-
05 3.19195299967996e-05 3.85258872376018e-05 4.51322444784041e-05
5.17386017192063e-05 5.83449589600085e-05 6.49513162008107e-05 7.15576734416129e-05
7.81640306824151e-05 8.47703879232173e-05 9.13767451640196e-05]);

colorbar('peer',axes1,'Position',...
[0.917287414965983 0.33993399339934 0.0116921768707519
0.563863474955091],'Direction','reverse' );
xlabel('Beam length');
ylabel('Section hight');
colormap('jet');

title(num2str(Load(j),'load (P) = %4.1f


(KN)'),'FontSize',14,'FontWeight','normal');

hold on;

% pause(1);
f = getframe(gcf);
writeVideo(obj,f);
end
% set(gca,'FontSize',10);
% set(gca,'FontWeight','normal');

% Create colorbar
obj.close();

Table=cat(1,Load,Mid_Moment,mid_curv,Mid_Delta);
Table2=transpose(Table);
% %Deflection
% plot(X,Delta_Corr);
% xlabel('Length m');
% ylabel('Deflection mm');
% grid on
%
% %Load deflection
% plot(Mid_Delta,Load);
% ylabel('Laod Kn/m');
% xlabel('Mid span Deflection mm');
% grid on
%
% %Moment curvature diagram
% plot(X,M);
% ylabel('Moment');
% xlabel('Curvature');
% grid on

% %Strain in section diagram


% plot(eps_mesh,y);
% ylabel('Hight of section');
% xlabel('Section Strain');
% grid on

You might also like