Sei sulla pagina 1di 9

ESEMPIO DI ANALISI STATICA FEM

Elto A: HEA 6 5


Elto B: IPE 4
6
H=45  4
L=3897  2
Q=8 kN/ 1
3
E= MPa
2

x
1

y
φ
φ

x
13 10
Calola lo stato  solltazo utlzzao φ
l too agl lt ft 11 8

x
12 9
y

   


Posso  asslaggo

L’obiettivo di questa prima parte è il calcolo degli spostamenti globali e delle reazioni vincolari della struttura
considerata. A tal fine occorre, innanzitutto, calcolare le matrici di rigidezza, di rotazione e il vettore dei cari hi
per ciascun elemento, espressi nel sistema di riferimento locale di ognuno.

cosα senα 0 0 0 0
EA 0 0 EA 0 0
− -senα cosα 0 0 0 0
l l
0 0 1 0 0 0
R(i) = 0 0 0 cosα senα 0
0 12EI 6EI 0 12EI 6EI
− − −
l³ l² l³ l² 0 0 0 -senα cosα 0
0 0 0 0 0 1

0 6EI 4EI 0 6EI 2EI



l² l l² l qx ∗ l
K(i) = 2
EA 0 0 EA 0 0 qz ∗ l

l l 2
q z ∗ l2
12EI 6EI 12EI 6EI −
12
0 −
l³ l²
0
l³ l²
lv(i) =
qx ∗ l
2
0 6EI 2EI 0 6EI 4EI qz ∗ l

l² l l² l 2
q z ∗ l2
12

   


Posso  osazo stata

La matrice di rigidezza globale ed il vettore dei carichi globale sono stati ottenuti attraverso le seguenti
formule:
3 3
𝑖 𝑇 𝑖 𝑇 𝑖 𝑖 𝑖 Fglobale = ෍ 𝐴 𝑖 𝑇 ∗𝑅 𝑖 𝑇 ∗𝑓 𝑖
K globale = ෍ 𝐴 ∗𝑅 ∗𝐾 ∗𝑅 ∗𝐴
𝑖=1 𝑖=1

Il calcolo degli spostamenti della struttura prevede la risoluzione del seguente sistema:
K ff K fc Uf
= Fglobale + R
K cf K cc Uc

Poiché la matrice Kglobale è una matrice simmetrica e, pertanto, non invertibile in quanto singolare, si è
proceduto alla parzializzazione della stessa e all’individuazione della Kff, associata agli spostamenti liberi e,
pertanto, invertibile. Gli spostamenti liberi della struttura sono stati, pertanto, calcolati con la seguente formula:

Uf = Kff-1Ff

Il vettore degli spostamenti totale nel sistema di riferimento globale è ottenuto aggiungendo ad Uf la
componente nulla in corrispondenza dei cinque spostamenti vincolati. Si è proceduto, infine, al calcolo delle
reazioni vincolari.
R = Kglobale*Uglobale - Fglobale

   


clc
clear all
%--topology matrix--%
Edof=[1,11,12,13,1,2,3;
2,1,2,4,5,6,7;
3,5,6,7,8,9,10];
dof=13;

%--Input Data--%
E=21000; %kN/cm^2
H=450; %cm
B=389.7; %cm

A(1)=38.77; %cm^2
I(1)=1673; %cm^4
A(2)=16.43; %cm^2
I(2)=541.2; %cm^4
A(3)=38.77; %cm^2
I(3)=1673; %cm^4
beta=atand(H/(2*B));

%--Load element--%
eq(1,:)=[0,0];
eq(2,:)=[0,0.08]; %kN/cm
eq(3,:)=[0,0];

%--Nodal coordinates--%
ex(1,:)=[0,0];
ex(2,:)=[0,B];
ex(3,:)=[B,B];

ey(1,:)=[0,H];
ey(2,:)=[H,3*H/2];
ey(3,:)=[3*H/2,0];

%--Lunghezza degli elementi--%


for i=1:3
b(i,:)=[ex(i,2)-ex(i,1),ey(i,2)-ey(i,1)];
L(i,:)=sqrt((b(i,:))*b(i,:)');
end

%--Local stiffness matrix--%


for i=1:3
K(:,:,i)=localstiffnessmatrix(E,A(i),I(i),L(i,:));
end

%--Rotation matrix and global stiffness matrix for each element--%


% alpha=[-90,beta,90]
% for i=1:3
% R(:,:,i)=ltogrotationmatrix(alpha(1,i));
% end

1
R(:,:,1)=ltogrotationmatrix(-90);
R(:,:,2)=ltogrotationmatrix(-beta);
R(:,:,3)=ltogrotationmatrix(90);

for i=1:3
Kglob(:,:,i)=((R(:,:,i))'*K(:,:,i)*R(:,:,i));
end;

%--Assembling Ki(globale) into K_tot--%


Ktot=zeros(dof);
[nie,n]=size(Edof)

for i=1:3
t(i,:)=Edof(i,2:n)
end;

for i=1:3
Ktot(t(i,:),t(i,:))=Ktot(t(i,:),t(i,:))+Kglob(:,:,i)
end

%--Load vector--%
for i=1:3
lv(:,i)=loadvector(eq(i,:),R(:,:,i),L(i,:));
end

%--Assembling lvi into Ftot--%


Ftot=zeros(dof,1);

for i=1:3
Ftot(t(i,:),1)=Ftot(t(i,:),1)+lv(:,i);
end

%--risoluzione dell'equilibrio e processo di condensazione statica--%


U=zeros(dof,1);
Reaz=zeros(dof,1);
bc=[9,0;
10,0;
11,0;
12,0;
13,0] %boundery conditions
fdof=[1;2;3;4;5;6;7;8]
cdof=bc(:,1) %constrained dof
cd=bc(:,2) %constrained displacements

Uf=inv(Ktot(fdof,fdof))*Ftot(fdof,1);
U(fdof)=Uf;
U(cdof)=cd

Reaz=(Ktot*U)-Ftot

%--verify equilibrium--%
SumX=Reaz(11)+Reaz(8)+(0.08*L(2,:)*sind(beta))
SumY=Reaz(12)+Reaz(9)+(0.08*L(2,:)*cosd(beta))

2
Rot=Reaz(13)+Reaz(10)-(Reaz(9)*B)-((0.08*L(2,:)*sind(beta))*5*H/4)-
((0.08*L(2,:)*cosd(beta))*B/2)

Published with MATLAB® R2020a

3
function [K] = localstiffnessmatrix(E,A,I,L)
%Fornisce la matrice di rigidezza di ciascun elemento espressa nel
sistema
%di riferimento locale
K=[E*A/L,0,0,-E*A/L,0,0;
0,(12*E*I)/(L^3),(-6*E*I)/(L^2),0,(-12*E*I)/(L^3),(-6*E*I)/(L^2);
0,(-6*E*I)/(L^2),(4*E*I)/L,0,(6*E*I)/(L^2),(2*E*I)/L;
-E*A/L,0,0,E*A/L,0,0;
0,(-12*E*I)/(L^3),(6*E*I)/(L^2),0,(12*E*I)/(L^3),(6*E*I)/(L^2);
0,(-6*E*I)/(L^2),(2*E*I)/L,0,(6*E*I)/(L^2),(4*E*I)/L];
end

Published with MATLAB® R2017a

1
function [R] = ltogrotationmatrix(alpha)
%Fornisce la matrice di rotazione per ogni elemento dal sistema di
%riferimento locale a quello globale
R = [cosd(alpha),sind(alpha),0,0,0,0;
-sind(alpha),cosd(alpha),0,0,0,0;
0,0,1,0,0,0;
0,0,0,cosd(alpha),sind(alpha),0;
0,0,0,-sind(alpha),cosd(alpha),0;
0,0,0,0,0,1];
end

Not enough input arguments.

Error in ltogrotationmatrix (line 4)


R = [cosd(alpha),sind(alpha),0,0,0,0;

Published with MATLAB® R2018b

1
function [lv] = loadvector(eq,R,L)
%Fornisce il vettore dei carichi nel sistema di riferimento globale
lv_aux = [eq(1)*L/2;
eq(2)*L/2;
-eq(2)*(L^2)/12;
eq(1)*L/2;
eq(2)*L/2;
eq(2)*(L^2)/12];

lv = R'*lv_aux;
end

Published with MATLAB® R2017a

Potrebbero piacerti anche