e06 Rod Matlab
description
Transcript of e06 Rod Matlab
-
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
Scrittura e applicazione
di un programma MATLAB
per lanalisi FEM
di travature reticolari piane
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
2
Contenuto dellesercitazione
Lesercitazione si divide in due fasi:
1. scrittura di un programma in ambiente MATLAB per lanalisi statica di
travature reticolari piane secondo il metodo degli elementi finiti;
2. applicazione di tale programma allo studio di una travatura reticolare assegnata.
Scopo dellesercitazione
Gli scopi fondamentali dellesercitazione sono:
lapplicazione del metodo degli elementi finiti secondo i suoi passi fondamentali;
lapprendimento dei fondamenti della programmazione FEM.
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
3
Premessa
I programmi agli elementi finiti normalmente operano secondo tre fasi (qui descritte
per il caso di analisi statica):
1. pre-processing; raccolta dei dati su materiali, geometria e mesh, vincoli e carichi;
2. processing; calcolo vero e proprio (si tratta di calcolare la matrice di rigidezza ed
il vettore delle forze dellintera struttura e, quindi, di determinare i gradi di libert
non vincolati e le reazioni vincolari);
3. post-processing; a partire dai risultati precedenti, si calcolano alcuni risultati
secondari (le deformazioni e le tensioni in ogni elemento).
Non esiste una regola precisa secondo la quale queste tre fasi debbano essere
risolte da uno o pi programmi; tipicamente, per, un programma svolge il pre-
ed il post-processing, un secondo programma effettua il processing.
Nel nostro caso seguiremo uno schema leggermente diverso; un primo programma (ROD_FEM.m) svolge in successione pre-processing e processing, salvando poi i
risultati statici in un file, un secondo programma (OUT_ROD_FEM.m) effettua il
post-processing a partire dai risultati gi salvati.
Per ogni fase della scrittura dei due programmi, sono ora fornite delle indicazioni di
massima e qualche suggerimento sulla codifica in ambiente MATLAB.
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
4
Inserimento dei dati per lanalisi
Calcoli preliminari
Calcolo della matrice [KG] e del
vettore {FG} per lintera struttura
Risoluzione
Salvataggio dei risultati
Elaborazione dei risultati
Pre-processing
Processing
Post-processing
ROD_FEM.m
OUT_ROD_FEM.m
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
5
Inserimento dei dati per lanalisi:
dati sui materiali (E);
dati sulla geometria e sulla mesh (sezioni, coordinate dei nodi, connectivities);
dati sui vincoli (gradi di libert bloccati);
dati sui carichi (carichi concentrati nei nodi).
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
6
Inserimento dei dati per lanalisi:
dati sui materiali (E)
Bisogna considerare la possibilit che la struttura sia realizzata in diversi materiali; allora necessario inserire il numero di materiali (nmat) e i valori di E per ognuno di
essi (attraverso il vettore colonna, di dimensioni nmat x 1, {E}).
nmat=input(' scrivi il numero di materiali diversi presenti nella struttura: ');
for m=1:nmat
disp([' materiale n ',num2str(m),':']);
E(m,1)=input(' modulo elastico del materiale: ');
end
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
7
Inserimento dei dati per lanalisi:
dati sui materiali (E)
Scrittura dei programmi
Per linserimento di questi dati, cosi come per quelli discussi nelle slides successive, possibile usare una modalit alternativa a quella del comando input; elencarli
tutti in un file .m che viene richiamato allinizio dellesecuzione del programma di analisi ROD_FEM.m.
nmat=3;
E=[100 10 1];
...
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
8
Inserimento dei dati per lanalisi:
dati sulla geometria e sulla mesh (sezioni)
Le varie aste possono avere sezioni trasversali con aree diverse; bisogna inserire il numero di sezioni diverse (nsez) e larea di ognuna (vettore colonna nsez x 1
{A}).
nsez=input???
for s=1:nsez
disp???
???
end
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
9
Inserimento dei dati per lanalisi:
dati sulla geometria e sulla mesh (coordinate dei nodi, connectivities)
E necessario a questo punto inserire la matrice [Pn] delle coordinate globali dei
nodi (nn x 2, cio il numero delle righe di [Pn] anche il numero dei nodi nn).
Inoltre va inserita la matrice [Cne] di connectivity dei nodi per elemento (ne x 2,
cio il numero delle righe di [Cne] anche il numero di elementi ne).
Infine dobbiamo indicare, per ogni elemento, qual la sua sezione trasversale e di quale materiale fatto (la matrice [Cpe] ne x 2 contiene per ogni riga, cio per
ogni elemento, lindice della sua sezione trasversale e lindice del suo materiale).
Pn=input???
Cne=input???
Cpe=input???
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
10
Inserimento dei dati per lanalisi:
dati sui vincoli (gradi di libert bloccati)
Bisogna indicare quali sono gli indici dei gradi di libert nulli per effetto dei vincoli (contenuti nel vettore riga {ib}).
Vedere la slide 13 per la numerazione dei gradi di libert.
ib=input???
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
11
Inserimento dei dati per lanalisi:
dati sui carichi (carichi concentrati nei nodi)
Trattandosi di una travatura reticolare, gli unici carichi esterni ammessi sono forze
concentrate nelle cerniere (che sono anche nodi degli elementi finiti).
Linformazione sui carichi pu, dunque, essere fornita indicando lintensit della
forza associata allindice del relativo grado di libert. In pratica va inserita la matrice Fn, con due colonne: per ogni riga, in prima colonna c lindice del grado di libert
a cui associata la forza esterna, in seconda colonna lintensit della forza stessa.
Vedere la slide 13 per la numerazione dei gradi di libert.
Fn=input???
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
12
Calcoli preliminari:
matrice di connectivity dei gradi di libert per elemento;
numero di nodi, di elementi e di gradi di libert;
lunghezza, cos() e sen() per ogni elemento.
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
13
Calcoli preliminari:
matrice di connectivity dei gradi di libert per elemento
for e=1:size(Cne,1)
Cse(e,:)=[2*Cne(e,1)-1 ???];
end
Per effettuare in maniera rapida lassemblaggio, bisogna passare dalla matrice di connectivity dei nodi per elemento [Cne] (ne x 2, per ogni riga gli indici del primo
e del secondo nodo dellelemento) a quella dei gradi di libert per elemento [Cse]
(ne x 4, per ogni riga gli indici dei 4 gradi di libert globali di quellelemento). Il
passaggio si pu fare in modo automatico, notando che, per esempio
5
8
3
qG9
qG10 qG15
qG16 ]85[:),3(Cne
]1615109[:),3(Cse
]8*218*25*215*2[:),3(Cse
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
14
Calcoli preliminari:
numero di nodi, di elementi e di gradi di libert
Il numero di nodi (nn) si trova facilmente ( il numero di righe di [Pn]).
Il numero di elementi (ne) altrettanto facile da calcolare (le righe di [Cne]).
Il numero di gradi di libert o incognite (ni) il massimo indice presente in [Cse].
nn=size(Pn,1);
ne=???
ni=max(max(Cse));
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
15
Calcoli preliminari:
lunghezza, cos() e sen() per ogni elemento
La lunghezza e le funzioni trigonometriche dellangolo per ogni elemento si ricavano sapendo due cose: (1) quali sono i due nodi di quellelemento ([Cne]) e
(2) quali sono le coordinate di quei due nodi ([Pn]). Per esempio
5
8
3
1
2
(3)
2 2
(3) G(3) G(3) G(3) G(3)
2L 1L 2L 1LL = x -x + y -y
2 2
(3) G G G G
8 5 8 5L = x -x + y -y
G(3) G(3)
(3) 2L 1L
(3)
x -xcos = ...
L
G(3) G(3)(3) 2L 1L
(3)
y -ysin = ...
L
for e=1:ne
L(e,1)=sqrt((Pn(Cne(e,2),1)-Pn(Cne(e,1),1))^2+???);
ca(e,1)=(???)/L(e);
sa(e,1)=(???)/L(e);
end
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
16
Calcolo della matrice [KG] e del vettore {FG} per lintera struttura:
calcolo, per ogni elemento, di [KG(e)];
assemblaggio per ottenere [KG];
calcolo diretto di {FG};
calcolo delle matrici e dei vettori ridotti.
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
17
Calcolo della matrice [KG] e del vettore {FG} per lintera struttura:
calcolo, per ogni elemento, di [KG(e)]
La matrice di rigidezza (globale) di ciascun elemento finito si pu calcolare in una
apposita function (da scrivere a parte). I dati di input che servono sono:
[Ke]=nomefunction(lunghezza,cos(),sin(),area,modulo di Young)
Nella function bisogna prima calcolare la matrice nel sistema locale dellelemento, poi determinare la matrice [] di rotazione e, quindi, la matrice nel sistema globale.
for e=1:ne
Ke=nomefunction_1(L(e),ca(e),sa(e),A(Cpe(e,1)),E(Cpe(e,2)));
*vedere slide successiva*
end
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
18
Calcolo della matrice [KG] e del vettore {FG} per lintera struttura:
assemblaggio per ottenere [KG]
Ora che per lelemento e abbiamo la matrice [Ke] nel sistema globale, dobbiamo
assemblarla a quelle degli altri elementi per ottenere [K], matrice globale dellintera
struttura. Per fare questo bisogna avere inizializzato [K] a matrice nulla prima del
ciclo sugli elementi e poi effettuare, elemento per elemento, lassemblaggio vero e
proprio. Si noti che lassemblaggio si risolve in MATLAB in un semplice gioco di
indici di righe e colonne!
K=zeros(ni);
for e=1:ne
*vedere slide precedente*
I=Cse(e,:);
K(I,I)=K(I,I)+Ke;
end
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
19
Calcolo della matrice [KG] e del vettore {FG} per lintera struttura:
calcolo diretto di {FG}
Il vettore delle forze nel sistema globale {F} si pu calcolare al di fuori del ciclo
sugli elementi. Si parte dalla matrice di carichi [Fn] che ha, in ogni riga, lindice
del grado si libert e lintensit del relativo carico esterno.
???
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
20
Calcolo della matrice [KG] e del vettore {FG} per lintera struttura:
calcolo delle matrici e dei vettori ridotti
Per fare il calcolo statico ci servono le sottomatrici di [K] ed {F}. In primo luogo
bisogna creare il vettore dei gradi di libert non vincolati {il} noti tutti i gradi di
libert [1:1:ni]T e quelli vincolati {ib} (si noti che {il} contiene i gradi di
libert non contenuti in {ib}). Poi bisogna calcolare i vari blocchi con dimensioni e
indici pari a quelli indicati da {il} e {ib}.
ib=sort(ib);
il=???
Kff=K(il,il);
Kfv=K(il,ib);
Kvf=K(ib,il);
Kvv=K(ib,ib);
Fef=???
Fev=???
...
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
21
Risoluzione:
calcolo statico (spostamenti nodali e reazioni vincolari).
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
22
Risoluzione:
calcolo statico (spostamenti nodali e reazioni vincolari)
Il calcolo statico consiste nelluso delle sottomatrici di [K] ed {F} per calcolare i
gradi di libert non vincolati {Qf} e le reazioni vincolari {Rv}. Si tratta poi di
ricostruire il vettore completo dei gradi di libert {Q} e quello completo delle
reazioni vincolari {Cv} (si noti che in questo caso {Fev}={0}).
Qf=Kff\Fef;
Rv=Kvf*Qf-Fev;
Q(il,:)=Qf;
Q(ib,:)=zeros(length(ib),1);
Cv(il,:)=zeros(length(il),1);
Cv(ib,:)=Rv;
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
23
Salvataggio dei risultati:
salvataggio dei risultati statici.
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
24
Salvataggio dei risultati:
salvataggio dei risultati statici
Prima di tutto bisogna inserire il nome del file nel quale si vogliono salvare i dati.
Poi bisogna salvare tutte le informazioni necessarie al post-processing statico.
nomesave=input([' scrivi il nome (tra apici) del file nel quale salvare i risultati: ']);
str=['save ',nomesave,' A E Pn Cne Cpe Cse ib Fn nn ne ni L ca sa K F Q Cv;'];
eval(str);
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
25
Elaborazione dei risultati (statici):
richiamo dei risultati;
assegnazione dei gradi di libert ai vari elementi;
realizzazione del grafico della deformata statica;
calcolo della deformazione, della tensione e dello sforzo normale in ogni elemento.
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
26
Elaborazione dei risultati (statici):
richiamo dei risultati
Inserendo il nome del file nel quale sono stati salvati i dati di una precedente analisi,
possibile aprirlo e richiamare i risultati.
nomefile=input([' scrivi il nome (tra apici) del file di risultati da usare: ']);
str=['load ',nomefile,';'];
???
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
27
Elaborazione dei risultati (statici):
assegnazione dei gradi di libert ai vari elementi
Per meglio operare nel seguito, opportuno creare una matrice [q] (4 x ne) che ha
nella colonna e i valori dei 4 gradi di libert (globali) dellelemento e. Lordine
in cui tali 4 gradi di libert sono scritti in ogni colonna deve essere quello contenuto nella matrice di connectivity [Cse].
Attenzione! [q] contiene i valori dei gradi di libert globali mentre [Cse]
contiene gli indici degli stessi gradi di libert. Evidentemente sono collegati tra loro
ma non sono la stessa cosa.
for e=1:ne
q(:,e)=???;
end
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
28
Elaborazione dei risultati (statici):
realizzazione del grafico della deformata statica
Il grafico va fatto elemento per elemento (si tratter quindi di un ciclo su tutti gli elementi dopo un hold on iniziale che serve ad accumulare i vari contributi). Il
comando axis equal serve a far si che venga usata la stessa scala secondo i due
assi. Per ogni elemento bisogna semplicemente individuare la posizione dei due nodi dopo la deformazione; tale posizione data da quella iniziale ([Pn]) pi gli
spostamenti nodali ([q]).
figure(1);
hold on;
axis equal;
grid on;
for e=1:ne
plot([Pn(Cne(e,1),1)+q(1,e) Pn(Cne(e,2),1)+q(3,e)],???);
end
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
29
Elaborazione dei risultati (statici):
calcolo della deformazione, della tensione e dello sforzo normale in ogni elemento
Si pu creare la matrice [D] (ne x 4) contenente, in ogni riga, il numero
dellelemento, la deformazione, la tensione e lo sforzo normale in quellelemento.
Per il calcolo della deformazione si ricordino le espressioni
Per il calcolo della tensione e dello sforzo normale, bisogna utilizzare i valori di A e
di E relativi allelemento in questione.
L(e)
(e) 1
(e) L(e)
2
q1 1 1
L q
(e) (e) G(e)(e)
1 = -1 1 q
L
D=zeros(ne,4);
D(:,1)=[1:1:ne]';
for e=1:ne
Lambdae=???;
D(e,2)=(1/L(e))*[-1 1]*Lambdae*q(:,e);
D(e,3)=???;
D(e,4)=???;
end
Scrittura dei programmi
-
Strutture Aeronautiche 6 Scrittura e applicazione di un programma MATLAB per lanalisi FEM di travature reticolari piane
Politecnico di Torino Dipartimento di Ingegneria Meccanica e Aerospaziale
Marco Gherlone
30
Applicazione
Si determinino:
spostamenti dei nodi;
reazioni vincolari;
deformazioni delle aste;
tensioni nelle aste;
sforzi normali nelle aste.
Materiali*:
1. Acciaio (E=210e9, =0.3, =7.96e3);
2. Titanio (E=105e9, =0.3, =4.50e3);
3. Alluminio (E=73e9, =0.3, =2.70e3).
Sezioni* (circolari cave di raggio R e spessore s):
a. R=5e-2, s=5e-3;
b. R=3e-2, s=5e-3.
1.5 1.5 1.5 1.5 1.5 1.5
1
1
1
3e6
2e6
1e6
b1 b1
b1
b1
b1
b1 b1
b1 b1
b1 a2
a2 a2
a2
a2
b3 b3 b3 b3 b3 b3
* Unit di misura nel S.I.
A 2Rs