Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ESERCITAZIONE N.2
RISOLUZIONE DI UN TELAIO PIANO TRAMITE
ELEMENTI FINITI TRUSS, CONFRONTO TRA MATLAB
E CALFEM
ANALISI MODALE CON CALFEM
Sommario
1. TESTO DELL’ESERCITAZIONE ....................................................................................................... 3
2. RISOLUZIONE STRUTTURA IN MATLAB ..................................................................................... 4
3. RISOLUZIONE STRUTTURA IN CALFEM ...................................................................................... 8
4. ANALISI MODALE CON CALFEM ................................................................................................. 12
1. TESTO DELL’ESERCITAZIONE
2. RISOLUZIONE STRUTTURA IN MATLAB
Per l’analisi del telaio piano con elementi truss tramite MATLAB si è proceduto come di seguito.
Definendo i sistema di riferimento locali e globale, numerando i singoli elementi truss, si è identificata la
Matrice Topologica (Edof) in cui si individuano i gradi di libertà della struttura
clear all
%--topology matrix--%
Edof=[1,1,2,3,19,20,21;
2,4,5,6,22,23,24;
3,7,8,9,25,26,27;
4,10,11,12,13,14,15;
5,16,17,18,13,14,15;
6,4,5,6,16,17,18;
7,1,2,3,4,5,6;
8,4,5,6,7,8,9;
9,7,8,9,10,11,12];
dof=27;
%--Input Data--%
E=210000; %kN/cm^2
H=400; %cm
B=500; %cm
%---travi=IPE200, pilastri=HEA240---%
A(1)=76.84; %cm^2
I(1)=7763; %cm^4
A(2)=76.84; %cm^2
I(2)=7763; %cm^4
A(3)=76.84; %cm^2
I(3)=7763; %cm^4
A(4)=76.84; %cm^2
I(4)=7763; %cm^4
A(5)=28.48; %cm^2
I(5)=1943; %cm^4
A(6)=76.84; %cm^2
I(6)=7763; %cm^4
A(7)=28.48; %cm^2
I(7)=1943; %cm^4
A(8)=28.48; %cm^2
I(8)=1943; %cm^4
A(9)=28.48; %cm^2
I(9)=1943; %cm^4
%--Elements length--%
for i=1:9
b(i,:)=[ex(i,2)-ex(i,1),ey(i,2)-ey(i,1)];
L(i,:)=sqrt((b(i,:))*b(i,:)');
end
%--Rotation matrix and global stiffness matrix for each element (orario negativo-
antiorario positivo)--%
alpha=[90,90,90,-90,0,-90,0,0,0];
for i=1:9
R(:,:,i)=ltogrotationmatrix(alpha(i));
end
for i=1:9
t(i,:)=Edof(i,2:n)
end;
for i=1:9
Ktot(t(i,:),t(i,:))=Ktot(t(i,:),t(i,:))+Kglob(:,:,i)
end
%--Load vector--%
for i=1:9
lv(:,i)=loadvector(eq(i,:),R(:,:,i),L(i,:));
end
for i=1:9
Ftot(t(i,:),1)=Ftot(t(i,:),1)+lv(:,i);
end
U=zeros(dof,1);
Reaz=zeros(dof,1);
bc=[19,0;
20,0;
21,0;
22,0;
23,0;
24,0;
25,0;
26,0;
27,0;] %boundery conditions
fdof=[1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18]
Uf=inv(Ktot(fdof,fdof))*Ftot(fdof,1);
U(fdof)=Uf;
U(cdof)=cd
Reaz=(Ktot*U)-Ftot %Kn
%--verify equilibrium--%
SumX=Reaz(19)+Reaz(22)+Reaz(25)
SumY=Reaz(20)+Reaz(23)+Reaz(26)+(q1*(5/2)*B)+(q2*(3/2)*B)
%---rot con polo nell'asta 1 nodo(19-20-21) ---%
Rot=((Reaz(23)*B)+(Reaz(26)*2*B))+((Reaz(21))+(Reaz(24))+(Reaz(27))+(q1*(5/2)*B*(5/4)*B
)+(q2*(3/2)*B*(3/4)*B))
Analogamente per quanto fatto su MATLAB in CALFEM si procede allo stesso modo a differenza del
vantaggio di CALFEM che presenta già delle funzioni pre-impostate per il calcolo.
%--Load element--%
q1=-0.16; %KN/cm
q2=0.11; %KN/cm
eq(1,:)=[0,0];
eq(2,:)=[0,0];
eq(3,:)=[0,0];
eq(4,:)=[0,0];
eq(5,:)=[0,q2];
eq(6,:)=[0,0];
eq(7,:)=[0,q1];
eq(8,:)=[0,q1];
eq(9,:)=[0,q1];
sfac=scalfact2(ex(1,:),ey(1,:),Ed(1,:),0.02);
plotpar2=[1 2 1];
for i=1:9
eldisp2(ex(i,:),ey(i,:),Ed(i,:),plotpar2,sfac);
end
Per la risoluzione dell’analisi modale con CALFEM una volta definiti i dati dei materiali, la matrice topologica
(Edof), coordinate dei nodi e gradi di libertà di ogni nodo si è potuto estrarre i dati delle coordinate nodali
dalla matrice delle coordinate globali tramite la funzione di CALFEM ‘’coordxtr’’.
Inizializzando la matrice delle masse globale-totale M e delle rigidezze globale-totale K e calcolando tramite
‘’beam2d’’ la matrice delle rigidezze (k), delle masse (m) e di smorzamento (c) e con ‘’assem’’ (in cui
avviene sia assemblaggio sia rotazione da sistema locale a globale) si è proceduto all’assemblaggio
particolareggiando per travi e pilastri .
Dopo di che si è proceduto al plot del primo modo di vibrare della struttura come di seguito:
%----Material Data-----%
E=210000; rho=7800; %N/m^2 %kg/m^3
Ap=0.007684; Ip=0.00007763; %m^2 %pilastro
At=0.002848; It=0.00001943; %m^4 %trave
%----Topology----%
Edof=[1,1,2,3,19,20,21;
2,4,5,6,22,23,24;
3,7,8,9,25,26,27;
4,10,11,12,13,14,15;
5,13,14,15,16,17,18;
6,4,5,6,16,17,18;
7,1,2,3,4,5,6;
8,4,5,6,7,8,9;
9,7,8,9,10,11,12];
%pilastri
for i=[1,2,3,4,6]
[k,m,c]=beam2d(Ex(i,:),Ey(i,:),epp);
K=assem(Edof(i,:),K,k);
M=assem(Edof(i,:),M,m);
end
%travi
for i=[5,7,8,9]
[k,m,c]=beam2d(Ex(i,:),Ey(i,:),ept);
K=assem(Edof(i,:),K,k);
M=assem(Edof(i,:),M,m);
end
%----Eigenvalue analysis----%
bc=[19,20,21,22,23,24,25,26,27]';
[L,Egv]=eigen(K,M,bc);
Freq=sqrt(L)/(2*pi);
Eyt=Ey-12;
for i=5:8
Edb=extract(Edof,Egv(:,i));
Ext=Ex+(i-5)*15;
eldraw2(Ext,Eyt,[3,2,1]);
eldisp2(Ext,Eyt,Edb,[1,4,2],15);
Freqtext=num2str(Freq(i));
text(15*(i-5)+0.5,-2,Freqtext);
end