Sei sulla pagina 1di 10

Introduzione al software CALFEM

CALFEM (Computer Aided Learning of the Finite Element Method)è un codice


di calcolo interattivo per il metodo agli elementi finiti, sviluppato in
Svezia a partire dagli anni ‘70. CALFEM raggruppa una serie di script,
scritti in linguaggio MATLAB, al fine di agevolare la risoluzione e
spiegazione di differenti problemi strutturali.

Si distinguono:
• Funzioni di carattere generale, per gestire variabili ed output;
• Funzioni matriciali, per manipolare matrici e vettori;
• Funzioni per modelli costitutivi dei vari elementi;
• Funzioni di elemento, per la computazione di matrici di rigidezza e
vettori forza per elementi spring,bar,solid,beam e plate;
• Funzioni di sistema, per la risoluzione di sistemi di equazioni,
statici e dinamici;
• Funzioni operative, per la definizione di algoritmi di programmazione;
• Funzioni grafiche, per il plottaggio di deformate, stati tensionali e
deformativi.

enerd  diere 


Esepio di analisi FEM in CALFEM

Elemento A: HEA 160


5
Elemento B: IPE 140
6
H=4500 mm 4
L=3897 mm
Q=8 kN/m 1
3
E=210000 MPa
2

y
φ
φ

x
13 10
Calcolare lo stato di sollecitazione
utilizzando il software CALFEM. 11 8

12 9

enerd  diere 


Esepio di analisi FEM in CALFEM

1) Definizione input matrice di rigidezza: ex,ey,ep,eq

2) Calcolo matrici di rigidezza: beam2e

3) Assemblaggio: assem

4) Risoluzione sistema di equazioni: solveq

5) Definizione input tensioni e deformazioni: extract

6) Stato tensionale e deformativo: beam2s

7) Plottaggio configurazione non deformata: eldraw2

8) Plottaggio configurazione deformata: eldisp2

enerd  diere 


Configurazione deforata

enerd  diere 


Caratteristihe di solleitazione

enerd  diere 


Caratteristihe di solleitazione

enerd  diere 


Caratteristihe di solleitazione

enerd  diere 


clc
clear all

%----- Topology -------------------------------------------------

Edof=[1 11 12 13 1 2 3;
2 1 2 4 5 6 7;
3 5 6 7 8 9 10];

%----- Stiffness matrix K and load vector f ---------------------


dof=13;
K=zeros(13,13); f=zeros(13,1);

%----- Element stiffness and element load matrices -------------

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

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

for i=1:3
ep(i,:)=[E A(i) I(i)];
end

%--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];

%Local stiffness matrices


for i=1:3
[Ke(:,:,i),fe(:,i)]=beam2e(ex(i,:),ey(i,:),ep(i,:),eq(i,:));
end

%----- Assemble Ke into K ---------------------------------------

for i=1:3

1
[K,f]=assem(Edof(i,:),K,Ke(:,:,i),f,fe(:,i));
end

%----- Solve the system of equations and compute reactions ------

bc=[9 0; 10 0; 11 0; 12 0; 13 0];
[a,r]=solveq(K,f,bc);

%----- Section forces -------------------------------------------

Ed=extract(Edof,a);

for i=1:3
es(:,:,i)=beam2s(ex(i,:),ey(i,:),ep(i,:),Ed(i,:),eq(i,:),21);
end

%----- Draw deformed frame ---------------------------------------

figure(1)
plotpar=[2 1 0];
for i=1:3
eldraw2(ex(i,:),ey(i,:),plotpar);
end

sfac=scalfact2(ex(1,:),ey(1,:),Ed(1,:),0.2);
plotpar2=[1 2 1];
for i=1:3
eldisp2(ex(i,:),ey(i,:),Ed(i,:),plotpar2,sfac);
end

axis([-50 700 -50 700]);


pltscalb2(sfac,[5 100 0]); %cm
axis([-50 700 -50 700]);
title('displacements')

%----- Draw normal force diagram --------------------------------

figure(2)
plotpar=[2 1];
sfac=scalfact2(ex(1,:),ey(1,:),es(1,1,1),0.1);

for i=1:3
eldia2(ex(i,:),ey(i,:),es(:,1,i),plotpar,sfac);
end

axis([-100 700 -50 700]);


pltscalb2(sfac,[10 100 0]); %kN
title('normal force')

%----- Draw shear force diagram ---------------------------------

figure(3)
plotpar=[2 1];
% sfac=scalfact2(ex3,ey3,es3(:,2),10);

2
for i=1:3
eldia2(ex(i,:),ey(i,:),es(:,2,i),plotpar,sfac);
end

axis([-150 700 -50 700]);


pltscalb2(sfac,[10 100 0]); %kN
title('shear force')

%----- Draw moment diagram --------------------------------------

figure(4)
plotpar=[2 1];
sfac=scalfact2(ex(3,:),ey(3,:),es(1,3,3),0.05);
for i=1:3
eldia2(ex(i,:),ey(i,:),es(:,3,i),plotpar,sfac);
end

axis([-500 700 -50 800]);


pltscalb2(sfac,[1000 100 0]); %kN*cm
title('moment')

%------------------------ end -----------------------------------

Published with MATLAB® R2020a

Potrebbero piacerti anche