0% found this document useful (0 votes)
24 views11 pages

Composite Laminate Properties Analysis

The document outlines the properties and calculations for composite materials, specifically focusing on fiber and matrix properties, ply properties using rule of mixtures and Halpin-Tsai methods, and the ABD matrix for laminates. It includes beam stress analysis for a laminate structure under loading, detailing the calculation of stresses and deflections. Various plots are generated to visualize stress distributions across the beam's cross-section.

Uploaded by

Niranjan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views11 pages

Composite Laminate Properties Analysis

The document outlines the properties and calculations for composite materials, specifically focusing on fiber and matrix properties, ply properties using rule of mixtures and Halpin-Tsai methods, and the ABD matrix for laminates. It includes beam stress analysis for a laminate structure under loading, detailing the calculation of stresses and deflections. Various plots are generated to visualize stress distributions across the beam's cross-section.

Uploaded by

Niranjan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

% micro.

% fiber properties

EfL = 30.e6 ;
EfT = 2.e6 ;
nufLT = 0.22 ;
GfLT = 1.e6 ;
afL = -1.e-6 ;
afT = 6.e-6 ;
rhof = 0.065 ;

% matrix properties

Em = 0.5e6 ;
num = 0.35 ;
Gm = Em / (2 * (1 + num)) ;
am = 40.e-6 ;
rhom = 0.045 ;

% volume fractions

vf = 0.6 ; % fiber
vm = 1 - vf; % matrix

% ply properties calculated using rule of mixtures

E1 = EfL * vf + Em * vm
nu12 = nufLT * vf + num * vm
E2 = EfT * Em / (Em * vf + EfT * vm)
G12 = GfLT * Gm / (Gm * vf + GfLT * vm)

a1 = (EfL * afL * vf + Em * am * vm ) / E1
a2 = afT * vf + am * vm

% ply properties calculated using Halpin-Tsai

E1 = ( EfL * vf + Em * vm * 1) / (vf + vm * 1)
nu12 = ( nufLT * vf + num * vm * 1) / (vf + vm * 1)
E2 = (((1/EfT) * vf + (1/Em) * vm * 1/2) / (vf + vm * 1/2))^(-1)
G12 = (((1/GfLT) * vf + (1/Gm) * vm * 1/2) / (vf + vm * 1/2))^(-1)
format loose;

% Ply engineering properties

E1 = 20.e6 ;
nu12 = 0.27 ;
E2 = 1.1e6 ;
G12 = 0.5e6 ;
nu21 = nu12 * E2 / E1 ;

a1 = -0.55e-6 ;
a2 = 19.60e-6 ;

% Q matrix (material coordinates)

denom = 1 - nu12 * nu21 ;


Q11 = E1 / denom ;
Q12 = nu12 * E2 / denom ;
Q22 = E2 / denom ;
Q66 = G12 ;

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

% Qbar matrix

thetad = 15 ; % ply angle in degrees


theta = thetad * pi / 180; % ply angle in radians
m = cos(theta) ;
n = sin(theta) ;
T = [ m^2 n^2 2*m*n; n^2 m^2 -2*m*n; -m*n m*n (m^2 - n^2)];

Qbar = inv(T) * Q * (inv(T))'

Sbar = inv(Qbar)

format compact;
Ex = 1/Sbar(1,1)
nuxy = -Sbar(1,2) * Ex
Ey = 1/Sbar(2,2)
Gxy = 1/Sbar(3,3)

nuxg = -Sbar(1, 3)/Sbar(1, 1)


nuyg = -Sbar(2, 3)/Sbar(2, 2)
% ABD.m

clear; format;
format short g;

% Laminate definition (plies of equal thickness)

Nplies = 6;
thetadt = [-60 60 0 0 60 -60]; % ply angles in degrees, from top
thetadb = fliplr(thetadt); % ply angles in degrees, from bottom
h_ply = 0.0001; % SI units, meters
h = Nplies * h_ply ;

for i = 1:Nplies;
zbar(i) = - (h + h_ply)/2 + i*h_ply;
end;

% Ply engineering properties (AS/3501)

E1 = 138.e9 ; % Pa
nu12 = 0.30 ;
E2 = 9.0e9 ; % Pa
G12 = 6.9e9 ; % Pa
nu21 = nu12 * E2 / E1 ;

% Q matrix (material coordinates)

denom = 1 - nu12 * nu21 ;


Q11 = E1 / denom ;
Q12 = nu12 * E2 / denom ;
Q22 = E2 / denom ;
Q66 = G12 ;

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

% Qbar matrices (laminate coordinates) and contributions to


% ABD matrices

A = zeros(3,3);
B = zeros(3,3);
D = zeros(3,3);

for i = 1:Nplies;
theta = thetadb(i) * pi / 180; % ply i angle in radians, from bottom
m = cos(theta) ;
n = sin(theta) ;
T = [ m^2 n^2 2*m*n; n^2 m^2 -2*m*n; -m*n m*n (m^2 - n^2)];
Qbar = inv(T) * Q * (inv(T))' ;

A = A + Qbar * h_ply;
B = B + Qbar * h_ply * zbar(i);
D = D + Qbar * (h_ply * zbar(i)^2 + h_ply^3 / 12);
end;

A
B
D
% beam_stress.m

clear;
format compact;

% Beam geometry and loading

L = 0.30 ; % length, m
b = 0.01 ; % width, m
p0 = 1.0 ; % load / length, N/m

% Laminate definition (plies of equal thickness)

Nplies = 8;
thetadt = [90 30 -30 90 90 -30 30 90]; % ply angles in degrees, from top
thetadb = fliplr(thetadt); % ply angles in degrees, from bottom
h_ply = 0.0001;
h = Nplies * h_ply ;

for i = 1:Nplies;
zbar(i) = - (h + h_ply)/2 + i*h_ply; % z coord of ply center
end;

% Ply engineering properties (AS/3501)

E1 = 138.e9 ; % Pa
nu12 = 0.30 ;
E2 = 9.0e9 ; % Pa
G12 = 6.9e9 ; % Pa
nu21 = nu12 * E2 / E1 ;

% Q matrix (material coordinates)

denom = 1 - nu12 * nu21 ;


Q11 = E1 / denom ;
Q12 = nu12 * E2 / denom ;
Q22 = E2 / denom ;
Q66 = G12 ;

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

% Qbar matrices (laminate coordinates) and contributions to


% ABD matrices

A = zeros(3,3);
B = zeros(3,3);
D = zeros(3,3);

for i = 1:Nplies;
theta = thetadb(i) * pi / 180; % ply angles in radians, from bottom
m = cos(theta) ;
n = sin(theta) ;
T = [ m^2 n^2 2*m*n; n^2 m^2 -2*m*n; -m*n m*n (m^2 - n^2)];
Qbar = inv(T) * Q * (inv(T))' ;

A = A + Qbar * h_ply;
B = B + Qbar * h_ply * zbar(i);
D = D + Qbar * (h_ply * zbar(i)^2 + h_ply^3 / 12);
end;

% Beam deflections and stresses

Dstar = inv(D);
Exb = 12 / (h^3 * Dstar(1,1)); % bending modulus
I = b * h^3 / 12 ; % second moment of area

wc = -5/384 * p0 * L^4 / (Exb * I) % center deflection

% center stresses

M = - p0 * L^2 / 8 ;
zc = zeros(2*Nplies, 1);
sigx = zeros(2*Nplies, 1);
sigy = zeros(2*Nplies, 1);
sigxy = zeros(2*Nplies, 1);

for i = 1:Nplies;
theta = thetadb(i) * pi / 180; % ply angles in radians
m = cos(theta) ;
n = sin(theta) ;
T = [ m^2 n^2 2*m*n; n^2 m^2 -2*m*n; -m*n m*n (m^2 - n^2)];
Qbar = inv(T) * Q * (inv(T))' ;

z(2*i-1) = zbar(i) - h_ply/2 ;


sigx(2*i-1) = z(2*i-1) * h^3/12 * M/I * ...
(Qbar(1,1)*Dstar(1,1) + Qbar(1,2)*Dstar(1,2) + Qbar(1,3)*Dstar(1,3));
sigy(2*i-1) = z(2*i-1) * h^3/12 * M/I * ...
(Qbar(1,2)*Dstar(1,1) + Qbar(2,2)*Dstar(1,2) + Qbar(2,3)*Dstar(1,3));
sigxy(2*i-1) = z(2*i-1) * h^3/12 * M/I * ...
(Qbar(1,3)*Dstar(1,1) + Qbar(2,3)*Dstar(1,2) + Qbar(3,3)*Dstar(1,3));

z(2*i ) = zbar(i) + h_ply/2 ;


sigx(2*i ) = z(2*i ) * h^3/12 * M/I * ...
(Qbar(1,1)*Dstar(1,1) + Qbar(1,2)*Dstar(1,2) + Qbar(1,3)*Dstar(1,3));
sigy(2*i ) = z(2*i ) * h^3/12 * M/I * ...
(Qbar(1,2)*Dstar(1,1) + Qbar(2,2)*Dstar(1,2) + Qbar(2,3)*Dstar(1,3));
sigxy(2*i ) = z(2*i ) * h^3/12 * M/I * ...
(Qbar(1,3)*Dstar(1,1) + Qbar(2,3)*Dstar(1,2) + Qbar(3,3)*Dstar(1,3));

end;

figure(1); plot(sigx, z, '-') ; grid; xlabel('sigma x (Pa)');


ylabel('z coordinate (m)');
title(['Inplane normal x stress at center of beam ' mat2str(thetadt)]);
text(0.5*max(sigx), 0, ['wc = ' num2str(wc)]);

figure(2); plot(sigy, z, '-') ; grid; xlabel('sigma y (Pa)');


ylabel('z coordinate (m)');
title(['Inplane normal y stress at center of beam ' mat2str(thetadt)]);
text(0.5*max(sigy), 0, ['wc = ' num2str(wc)]);

figure(3); plot(sigxy, z, '-') ; grid; xlabel('sigma xy (Pa)');


ylabel('z coordinate (m)');
title(['Inplane shear stress xy at center of beam ' mat2str(thetadt)]);
text(0.5*max(sigxy), 0, ['wc = ' num2str(wc)]);

% transverse shear stress at end

dMdX = - p0 * L / 2 ;
Nhpts = 10 ; % plotting divisions per ply
ze = zeros(Nhpts*Nplies+1, 1);
sigxz = zeros(Nhpts*Nplies+1, 1);

for i = 1:Nplies;
theta = thetadb(i) * pi / 180; % ply angles in radians
m = cos(theta) ;
n = sin(theta) ;
T = [ m^2 n^2 2*m*n; n^2 m^2 -2*m*n; -m*n m*n (m^2 - n^2)];
Qbar = inv(T) * Q * (inv(T))' ;

ze(1) = -h/2 ; % boundary condition


sigxz(1) = 0;

for j = 1:Nhpts;
if (j == 1),
sigt = -ze((i-1)*Nhpts+1)^2 / 2 * h^3/12 * dMdX/I * ...
(Qbar(1,1)*Dstar(1,1) + Qbar(1,2)*Dstar(1,2) + Qbar(1,3)*Dstar(1,3));
c_s = sigxz((i-1)*Nhpts+1) - sigt; % constant of integration
end;
ze((i-1)*Nhpts+1 + j) = zbar(i) - h_ply/2 + h_ply*(j)/(Nhpts);
sigxz((i-1)*Nhpts+1 + j) = -ze((i-1)*Nhpts+1 + j)^2 / 2 * h^3/12 * dMdX/I
* ...
(Qbar(1,1)*Dstar(1,1) + Qbar(1,2)*Dstar(1,2) + Qbar(1,3)*Dstar(1,3)) +
c_s;
end;
end;
ze(Nhpts*Nplies+1) = h/2;

figure(4); plot(sigxz, ze, '-') ; grid; xlabel('sigma xz (Pa)');


ylabel('z coordinate (m)');
title(['Transverse shear xz stress at end of beam ' mat2str(thetadt)]);
text(0.2*min(sigxz), 0, ['wc = ' num2str(wc)]);

% summary plot

figure(5);

subplot(221); plot(sigx, z, '-') ; grid; xlabel('sigma x (Pa)');


ylabel('z coordinate (m)');
title('Normal x stress, beam center');
text(0.3*max(sigx), h_ply, mat2str(thetadt));
text(0.3*max(sigx), 0, ['wc = ' num2str(wc)]);

subplot(222); plot(sigy, z, '-') ; grid; xlabel('sigma y (Pa)');


ylabel('z coordinate (m)');
title('Normal y stress, center');

subplot(223); plot(sigxy, z, '-') ; grid; xlabel('sigma xy (Pa)');


ylabel('z coordinate (m)');
title('Inplane shear stress, center');

subplot(224); ; plot(sigxz, ze, '-') ; grid; xlabel('sigma xz (Pa)');


ylabel('z coordinate (m)');
title('Transverse shear stress, end');

% ABD.m

clear; format;
format short g;

% Laminate definition (plies of equal thickness)

Nplies = 2;
thetadt = [-8.564 +8.564]; % ply angles in degrees, from top
thetadb = fliplr(thetadt); % ply angles in degrees, from bottom
h_ply = 0.000125; % SI units, meters
h = Nplies * h_ply ;

for i = 1:Nplies;
zbar(i) = - (h + h_ply)/2 + i*h_ply;
end;

% Ply engineering properties (AS/3501)

E1 = 138.e9 ; % Pa
nu12 = 0.30 ;
E2 = 8.96e9 ; % Pa
G12 = 7.1e9 ; % Pa
nu21 = nu12 * E2 / E1 ;

a1 = -0.3e-6 ; % coefficients of thermal expansion


a2 = 28.1e-6 ;

deltaT = 1 ;

% Q matrix (material coordinates)

denom = 1 - nu12 * nu21 ;


Q11 = E1 / denom ;
Q12 = nu12 * E2 / denom ;
Q22 = E2 / denom ;
Q66 = G12 ;

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

a = [a1 a2 0]' ;

% Qbar matrices (laminate coordinates) and contributions to


% ABD matrices

A = zeros(3,3);
B = zeros(3,3);
D = zeros(3,3);

NT = zeros(3,1);
MT = zeros(3,1);

for i = 1:Nplies;
theta = thetadb(i) * pi / 180; % ply i angle in radians, from bottom
m = cos(theta) ;
n = sin(theta) ;
T = [ m^2 n^2 2*m*n; n^2 m^2 -2*m*n; -m*n m*n (m^2 - n^2)];
Qbar = inv(T) * Q * (inv(T))' ;

abar = T' * a ;

A = A + Qbar * h_ply;
B = B + Qbar * h_ply * zbar(i);
D = D + Qbar * (h_ply * zbar(i)^2 + h_ply^3 / 12);

NT = NT + Qbar * abar * h_ply * deltaT ;


MT = MT + Qbar * abar * h_ply * zbar(i) * deltaT ;
end;

A
B
D

ABD = [A B; B D] ;
ABDinv = inv(ABD) ;

e0k = ABDinv * [NT' MT']'


ax = e0k(1:3,1) / deltaT

% Navier.m

clear;
format short g;

% Laminate definition (plies of equal thickness)


% Use balanced, symmetric for Navier method, with D16=D26=0

Nplies = 5;
thetadt = [90 90 90 90 90]; % ply angles in degrees, from top
thetadb = fliplr(thetadt); % ply angles in degrees, from bottom

h_ply = 0.0001;
h = Nplies * h_ply ;

for i = 1:Nplies;
zbar(i) = - (h + h_ply)/2 + i*h_ply;
end;

% Ply engineering properties (AS/3501)

E1 = 138.e9 ; % Pa
nu12 = 0.30 ;
E2 = 9.0e9 ; % Pa
G12 = 6.9e9 ; % Pa
nu21 = nu12 * E2 / E1 ;
rho = 1530 ; % kg/m^3, material density

% Q matrix (material coordinates)

denom = 1 - nu12 * nu21 ;


Q11 = E1 / denom ;
Q12 = nu12 * E2 / denom ;
Q22 = E2 / denom ;
Q66 = G12 ;

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

% Qbar matrices (laminate coordinates) and contributions to


% ABD matrices

A = zeros(3,3);
B = zeros(3,3);
D = zeros(3,3);

for i = 1:Nplies;
theta = thetadb(i) * pi / 180; % ply i angle in radians, from bottom
m = cos(theta) ;
n = sin(theta) ;
T = [ m^2 n^2 2*m*n; n^2 m^2 -2*m*n; -m*n m*n (m^2 - n^2)];
Qbar = inv(T) * Q * (inv(T))' ;

A = A + Qbar * h_ply;
B = B + Qbar * h_ply * zbar(i);
D = D + Qbar * (h_ply * zbar(i)^2 + h_ply^3 / 12);
end;

% Navier

% rectangular plate; simply-supported


% symmetric layup so [B]=0
% D16 = D26 = 0 also assumed

% Plate definition

a = .4 ; % m
b = .2 ; % m
R = a/b ; % aspect ratio

Nm = 5; % maximum number of half sine waves in x direction


Nn = 5; % maximum number of half sine waves in y direction

% Static
% uniform lateral pressure load, p0

p0 = 100; % SI units, Pa

A = zeros(m,n); % deflection Fourier coefficients


B = A; % force Fourier coefficients
% NOTE: A & B redefined here
for m = 1:Nm;
for n = 1:Nn; % NOTE: m & n redefined here
if (mod(m,2)~=0 & mod(n,2)~=0) % both m & n are ODD
B(m,n) = 16 * p0 / (pi^2 * m * n); % for UNIFORM load
else
B(m,n) = 0;
end
A(m,n) = B(m,n) * a^4 / ...
(pi^4 * (D(1,1)*m^4 + 2*(D(1,2)+2*D(3,3))*(m*n*R)^2 +
D(2,2)*(n*R)^4));
end; % j
end; % i

Nc = 12 ; % number of plotting points per half wave


Nx = Nm * Nc ; % number of plotting points in x direction
Ny = Nn * Nc ; % number of plotting points in y direction

x = (0:Nx)' * (a/Nx) ; % vector of x coords


y = (0:Ny) * (b/Ny) ; % vector of y coords
w = zeros(Nx+1, Ny+1);
for m = 1:Nm;
for n = 1:Nn;
w = w + A(m,n)*sin(m*pi/a .*x) * sin(n*pi/b .*y); % matrix of z disps
end; % n
end; % m
wmax = 0.1 * max(a,b);
w = wmax * w / max(max(w));

xx = x * ones(size(y)) ; % matrix of x coords


yy = ones(size(x)) * y ; % matrix of y coords
surf(xx,yy,w) % initial plot, max disp
axis equal % axis scaling
axis([0 a 0 b -wmax wmax]); % axis scaling
colormap(bone)
%[cmin, cmax] = caxis;
%caxis([-cmax, cmax])
shading interp

% Buckling

% Vibration

rhoH_str = rho * h ; % structural mass per unit area


nsmass = 1.0 ; % kg, non-structural mass
rhoH_nstr = nsmass / (a * b) ;
rhoH = rhoH_str + rhoH_nstr ; % mass per unit area

M = 3 ;
N = 3 ;
omg2 = zeros(M,N);
for m = 1:M,
for n = 1:N,
omg2(m,n) = pi^4 / (a^4 * rhoH) ...
* ( D(1,1)*m^4 + 2*(D(1,2)+2*D(3,3))*(m*n*R)^2 +
D(2,2)*(n*R)^4 );
end;
end;
freqHz = omg2.^(1/2) / (2*pi)

You might also like