You are on page 1of 4

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/283317844

Matlab Code to create the ABBD matrix for composite materials

Research · October 2015


DOI: 10.13140/RG.2.1.2994.8889

CITATIONS READS
0 3,813

2 authors:

Mohammad Al-Qaralleh Moath Alsafasfeh


Mu’tah University Al-Hussein Bin Talal University
3 PUBLICATIONS   0 CITATIONS    6 PUBLICATIONS   5 CITATIONS   

SEE PROFILE SEE PROFILE

All content following this page was uploaded by Mohammad Al-Qaralleh on 29 October 2015.

The user has requested enhancement of the downloaded file.


Matlab Code to Produce the ABD Matrix for Composite
Material Laminate

This code has been written as a homework for the Mechanics of


Composite Materials Class

The Code can be used with acknowledgement of the developers:

Mohammad A. Al-Qaralleh
Moath H. Al-Safasfeh

Key words: Fiber Reinforcement Polymers (FRP), Lamina, Constitutive relationship,


Stress tensor, Strain tensor,
%% input the material properties
%% E1,E2,V12,G12

fprintf('please insert the material properties \n');


promptE1 = 'please insert E1 ';
promptE2 = 'please insert E2 ';
promptV12 = 'please insert V12 ';
promptG12 = 'please insert G12 ';
E1=input(promptE1);E2=input(promptE2);V12=input(promptV12);G12=input(promptG1
2);V21=E2*V12/E1;
prompt_thickness='please insert the ply thickness ';
t=input(prompt_thickness);
promptK = 'please insert number of plies';
K=input(promptK);

orientation=zeros(1,K);

fprintf('please insert the plies orientation form bottom to top \n')


%%%%%%%Orientation Matrix
for i= 1:K

fprintf('please insert the material properties theta %i \n',i);


prompt_theta = '';
theta=input(prompt_theta);
orientation(1,i)=theta;

end
%disp(orientation);

%%%%%%%%%% Q matrix elements


Q11= E1/(1-V12*V21); Q22= E2/(1-V12*V21); Q12=(V12*E2)/(1-
V12*V21);Q21=(V12*E2)/(1-V12*V21);
Q66= G12;

Q=[Q11 Q12 0; Q21 Q22 0; 0 0 Q66];

R=[1 0 0;0 1 0; 0 0 2];


Rinv=[1 0 0;0 1 0; 0 0 0.5];
%%%%%%%%%% for looop starting for different layers
M = cell(K, 1) ;

for n= 1:K

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%Calculate the vlues of m & n
c=cosd(orientation(1,n));%% degree
s=sind(orientation(1,n));%% degree

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Transformation Matrix
a11=c.^2; a12=s.^2; a13=2*c*s;
a21=s.^2; a22=c.^2; a23=(-2*c*s);
a31=(-c*s); a32=c*s; a33=c.^2-s.^2;
T=[a11 a12 a13;a21 a22 a23;a31 a32 a33];
Q_bar=inv(T)*Q*R*T*Rinv;
%Q_bar=R*inv(T)*Rinv*Q*T;
%disp(Q_bar);
M{n}=Q_bar;
end

%%%%%%%%% Z loop
Z=zeros(1,(K+1));
h=K*t;
for j=1:K+1
Z(1,j)=h/2-t*(j-1);

end
%disp(Z);
%%%%%%%%%%%%% end of for layers
aa=0;
bb=0;
dd=0;
A=zeros(3,3);
B=zeros(3,3);
D=zeros(3,3);

for yy=1:3
for zz= 1:3

for xx= 1:n


aa= aa+(M{xx}(yy,zz))*(Z(1,(xx))-Z(1,xx+1));
bb=(bb+(M{xx}(yy,zz))*(Z(1,(xx+1))^2-(Z(1,xx))^2));
dd=(dd+(M{xx}(yy,zz))*(Z(1,(xx))^3-(Z(1,xx+1))^3));

end
A(zz,yy)=aa;
B(zz,yy)=0.5*bb;
D(zz,yy)=(1/3)*dd;
aa=0;
bb=0;
dd=0;
end%%% for zz
end%%%for yy

fprintf('Matrix A = \n'); disp (A);


fprintf('Matrix B = \n'); disp (B);
fprintf('Matrix D = \n'); disp (D);

ABBD=zeros(6,6);

ABBD=[A(1,1) A(1,2) A(1,3) B(1,1) B(1,2) B(1,3);


A(2,1) A(2,2) A(2,3) B(2,1) B(2,2) B(2,3);
A(3,1) A(3,2) A(3,3) B(3,1) B(3,2) B(3,3);
B(1,1) B(1,2) B(1,3) D(1,1) D(1,2) D(1,3);
B(2,1) B(2,2) B(2,3) D(2,1) D(2,2) D(2,3);
B(3,1) B(3,2) B(3,3) D(3,1) D(3,2) D(3,3)];
fprintf('Matrix ABBD = \n'); disp (ABBD);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View publication stats

You might also like