Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ന
𝐾 ന (𝑗)
𝐾
𝑗=1
Assemblaggio matrice di rigidezza: Condizioni MEF
Condizioni che nel MEF governano il processo di assemblaggio:
➢ Equilibrio dei singoli elementi:
La condizione di equilibrio deve essere soddisfatta per ciascun elemento:
𝐸 𝐸
𝐹ത (𝑒) = ന (𝑒)
𝐾 𝛥ҧ(𝑒) 𝜕Π = 𝜕 Π = 𝜕Π𝑒 = 0
𝑒=1
𝑒
𝑒=1
I lezione
➢ Compatibilità spostamenti nei nodi:
Gli spostamenti in un determinato nodo sono gli stessi per tutti gli elementi che
concorrono in quel nodo:
(𝑗) (𝑗+1)
𝑢𝑖 = 𝑢𝑖 = 𝑢𝑖
➢ Equilibrio: 𝟒 𝟑
Applicando l’equilibrio delle forze ai singoli nodi:
𝟏 𝟐
(1) (2) (1) (2) (1) (1) (1) (2) (1) (2) (2) (2)
𝐾11 + 𝐾11 𝐾12 + 𝐾12 𝐾13 𝐾14 𝐾15 + 𝐾13 𝐾16 + 𝐾14 𝐾15 𝐾16
𝐹𝑥1 (1)
𝐾21 + 𝐾22
(2) (1)
𝐾22 + 𝐾22
(2) (1)
𝐾23
(1)
𝐾24
(1)
𝐾25 + 𝐾23
(2) (1)
𝐾26 + 𝐾24
(2) (2)
𝐾25
(2)
𝐾26 𝑢𝑥 1
𝐹𝑦1 (1) (1) (1) (1) (1) (1)
𝑢𝑦
1
𝐹𝑥2 𝐾31 𝐾32 𝐾33 𝐾34 𝐾35 𝐾36 0 0 𝑢𝑥 2
(1) (1) (1) (1) (1) (1) 𝑢𝑦
𝐹𝑦2 𝐾41 𝐾42 𝐾43 𝐾44 𝐾45 𝐾46 0 0 2
= (1) 𝑢𝑥 3
𝐹𝑥3 𝐾51 + 𝐾31
(2) (1)
𝐾52 + 𝐾31
(2) (1)
𝐾53
(1)
𝐾54
(1)
𝐾55 + 𝐾33
(2) (1)
𝐾56 + 𝐾34
(2) (2)
𝐾35
(2)
𝐾36
𝐹𝑦3 𝑢𝑦
(1) (2) (1) (2) (1) (1) (1) (2) (1) (2) (2) (2) 3
𝐹𝑥4 𝐾61 + 𝐾 41 𝐾62 + 𝐾42 𝐾63 𝐾64 𝐾65 + 𝐾43 𝐾66 + 𝐾44 𝐾45 𝐾46 𝑢𝑥 4
(2) (2) (2) (2) (2) (2) 𝑢𝑦
𝐹𝑦4 𝐾51 𝐾52 0 0 𝐾53 𝐾54 𝐾55 𝐾56 4
(2) (2) (2) (2) (2) (2)
𝐾61 𝐾62 0 0 𝐾63 𝐾64 𝐾65 𝐾66
I Nodo II Nodo
𝑛𝑒 × 𝑛𝑛𝑜𝑑𝑒 = 𝑛𝑒 × 𝑛𝑔𝑑𝑙𝑒 /2
Considerando che i gdl per ciascun nodo (nella matrice di rigidezza) sono 2: 𝑢 & 𝑣; 𝐹𝑥 & 𝐹𝑦
(𝑛 ) (𝑛 ) (𝑛 )
𝑇𝑁𝐸2 𝑛𝑒 = 𝑁𝑜𝑑𝐼(𝑛𝑒 ) × 2 − 1 𝑁𝑜𝑑𝐼(𝑛𝑒 ) × 2 (𝑛𝑒 )
𝑁𝑜𝑑𝐼𝐼 𝑒 × 2 − 1 𝑁𝑜𝑑𝐼𝐼 ×2 ⋯
𝑒
𝑁𝑜𝑑𝑛°𝑛𝑜𝑑 𝑒
𝑒
× 2 − 1 𝑁𝑜𝑑𝑛°𝑛𝑜𝑑 𝑒
×2
Creazione automatica matrice di rigidezza singoli elementi
➢ In maniera simile si può costruire il vettore delle coordinate nodali per ciascun elemento
ഥ (𝒆) e quindi ottenere la relativa matrice di rigidezza 𝑲
𝑿 ന (𝒆)
𝐹𝑜𝑟: 𝑒 = 1, … , 𝑛𝑒
𝐹𝑜𝑟: 𝑖 = 1, … , 𝑛𝑛𝑜𝑑𝑒
𝐧 = 𝑻𝑵𝑬 𝒆, 𝒊 , 𝒙𝟏 𝒚𝟏
𝑿(𝒆) 𝒊×𝟐−𝟏 = 𝐗𝐍𝐎𝐃 𝐧, 𝟏 𝒙𝟐 𝒚𝟐
𝑐𝑜𝑛: 𝑿𝑵𝑶𝑫 = ⋮ ⋮ ;
𝑿(𝒆) 𝒊×𝟐 = 𝐗𝐍𝐎𝐃 𝐧, 𝟐
𝒙𝒏°𝒈𝒅𝒍 𝒚𝒏°𝒈𝒅𝒍
𝐸𝑛𝑑
𝑲ന (𝒆) 𝑿
ഥ (𝒆)
𝟒 𝟑 1 2 3 1 2 3 4 5 6
𝑇𝑁𝐸 = 𝑇𝑁𝐸2 =
1 3 4 1 2 5 6 7 8
0 −𝐿
ന
𝑲
𝑋𝑁𝑂𝐷 = 𝐵 −𝐿 𝑋ത (𝑒) ന (1) 𝑒 𝐾
𝐾 ന (2)
𝐵 0
0 0
𝟏 𝟐
INPUT OUTPUT
Creazione automatica matrice di rigidezza: Codice
• Codice: ➢ Input:
XNOD = TNE =
% Costruzione matrice K 0 -10 1 2 3
𝟒 𝟑
[nnod,c]=size(XNOD); ngdl=nnod*2; 10 -10 1 3 4
10 0
[ne,nnode]=size(TNE); ngdle=nnode*2; 0 0
K=zeros(ngdl);
Xe=zeros(ngdle,1); ➢ Output
TNE2=zeros(ne,ngdle); TNE2 =
1 2 5 6 7 8
𝟏 𝟐
for e=1:ne 0 0 0 0 0 0
% Costruzione matrice Ke Ke = 𝟐 𝟐
for i=1:nnode 1.0e+04 *
3.8462 0 -3.8462 1.1538 0 -1.1538
n=TNE(e,i); 0 1.3462 1.3462 -1.3462 -1.3462 0
Xe(i*2-1,1)=XNOD(n,1); -3.8462 1.3462 5.1923 -2.5000 -1.3462 1.1538
Xe(i*2,1)=XNOD(n,2); 1.1538 -1.3462 -2.5000 5.1923 1.3462 -3.8462
0 -1.3462 -1.3462 1.3462 1.3462 0
TNE2(1,i*2-1)=n*2-1; -1.1538 0 1.1538 -3.8462 0 3.8462
TNE2(1,i*2)=n*2;
Ke =
end 1.0e+04 *
[Ne,D,Be,Ke]=TL1(E,ni,h,Xe); 1.3462 0 0 -1.3462 -1.3462 1.3462
% Assemblaggio matrice K 0 3.8462 -1.1538 0 1.1538 -3.8462
0 -1.1538 3.8462 0 -3.8462 1.1538
for i=1:ngdle -1.3462 0 0 1.3462 1.3462 -1.3462
for j=1:ngdle -1.3462 1.1538 -3.8462 1.3462 5.1923 -2.5000
p=TNE2(1,i); 1.3462 -3.8462 1.1538 -1.3462 -2.5000 5.1923
q=TNE2(1,j);
K=
K(p,q)=K(p,q)+Ke(i,j); 1.0e+04 *
end 5.1923 0 -3.8462 1.1538 0 -2.5000 -1.3462 1.3462
end 0 5.1923 1.3462 -1.3462 -2.5000 0 1.1538 -3.8462
-3.8462 1.3462 5.1923 -2.5000 -1.3462 1.1538 0 0
end 1.1538 -1.3462 -2.5000 5.1923 1.3462 -3.8462 0 0
0 -2.5000 -1.3462 1.3462 5.1923 0 -3.8462 1.1538
-2.5000 0 1.1538 -3.8462 0 5.1923 1.3462 -1.3462
-1.3462 1.1538 0 0 -3.8462 1.3462 5.1923 -2.5000
1.3462 -3.8462 0 0 1.1538 -1.3462 -2.5000 5.1923
Applicazione Vincoli e soluzione
Condizioni al contorno:
𝟒 𝟑
• Vincoli: 𝑢𝑥 3 = 𝑢𝑦 3 = 𝑢𝑦 4 = 0
𝑃
• Carichi imposti: 𝐹𝑦1 = 𝐹𝑦2 = 𝐹𝑥2 = 𝐹𝑥1 = 𝐹𝑥4 = 0
2
➢ Soluzione del sistema lineare:
𝟏
(1)
𝐾11 + 𝐾11
(2) (1)
𝐾12 + 𝐾12
(2) (1)
𝐾13
(1)
𝐾14
(1)
𝐾15 + 𝐾13
(2) (1)
𝐾16 + 𝐾14
(2) (2)
𝐾15
(2)
𝐾16
𝑢𝑥 1 0 𝟐
(1)
𝐾21 + 𝐾22
(2) (1)
𝐾22 + 𝐾22
(2) (1)
𝐾23
(1)
𝐾24
(1)
𝐾25 + 𝐾23
(2) (1)
𝐾26 + 𝐾24
(2) (2)
𝐾25
(2)
𝐾26 𝑢𝑦 1 𝑃 Τ2 𝟐 𝟐
𝐾31
(1)
𝐾32
(1) (1)
𝐾33
(1)
𝐾34 𝐾35
(1)
𝐾36
(1)
0 0 𝑢𝑥 2 0
OSS: Fino ad ora risolto
𝑢𝑦 2 = 𝑃/2
(1) (1) (1) (1) (1) (1)
𝐾41 𝐾42 𝐾43 𝐾44 𝐾45 𝐾46 0 0
utilizzando la funzione solve
(1)
𝐾51 + 𝐾31
(2) (1)
𝐾52 + 𝐾31
(2) (1)
𝐾53
(1)
𝐾54
(1)
𝐾55 + 𝐾33
(2) (1)
𝐾56 + 𝐾34
(2) (2)
𝐾35
(2)
𝐾36 𝐹𝑥3 in Matlab.
(1)
𝐾61 + 𝐾41
(2) (1)
𝐾62 + 𝐾42
(2) (1)
𝐾63
(1)
𝐾64
(1)
𝐾65 + 𝐾43
(2) (1)
𝐾66 + 𝐾44
(2) (2)
𝐾45
(2)
𝐾46
0 𝐹𝑦3
(2)
𝐾51
(2)
𝐾52 0 0
(2)
𝐾53
(2)
𝐾54
(2)
𝐾55
(2)
𝐾56
0 0
(2)
𝐾61
(2)
𝐾62 0 0
(2)
𝐾63
(2)
𝐾64
(2)
𝐾65
(2)
𝐾66 𝑢𝑥 4 𝐹𝑦4
0
➢ PROBLEMA: Incognite presenti su entrambi i membri dell’equazioni che compongono il sistema (vettori
∆ത e 𝐹)
ത -> le equazioni vanno manipolate -> computazionalmente oneroso perché vanno riallocate in
memoria.
➢ SOLUZIONE: Trasferire tutte le incognite su un solo membro. Tecniche:
• Metodo della riduzione della matrice di rigidezza (adatto a calcolo manuale)
• Metodo delle penalità (adatto a calcolo automatico)
Soluzione con metodo di riduzione della matrice di rigidezza
Riduzione della matrice di rigidezza (per calcolo manuale): si eliminano le righe e le colonne
che corrispondono agli spostamenti nulli:
(1)
𝐾11 + 𝐾11
(2) (1)
𝐾12 + 𝐾12
(2) (1)
𝐾13
(1)
𝐾14
(1)
𝐾15 + 𝐾13
(2) (1)
𝐾16 + 𝐾14
(2) (2)
𝐾15
(2)
𝐾16 𝑢𝑥 1 0
(1)
𝐾21 + 𝐾22
(2) (1)
𝐾22 + 𝐾22
(2) (1)
𝐾23
(1)
𝐾24
(1)
𝐾25 + 𝐾23
(2) (1)
𝐾26 + 𝐾24
(2) (2)
𝐾25
(2)
𝐾26 𝑢𝑦 𝑃 Τ2
1
𝐾31
(1) (1)
𝐾32
(1)
𝐾33
(1)
𝐾34 𝐾35
(1)
𝐾36
(1)
0 0 𝑢𝑥 2 0
(1)
𝐾41
(1)
𝐾42
(1)
𝐾43
(1)
𝐾44
(1)
𝐾45
(1)
𝐾46 0 0 𝑢𝑦 𝑃/2
2 =
(1)
𝐾51 + 𝐾31
(2) (1)
𝐾52 + 𝐾31
(2) (1)
𝐾53
(1)
𝐾54
(1)
𝐾55 + 𝐾33
(2) (1)
𝐾56 + 𝐾34
(2) (2)
𝐾35
(2)
𝐾36 0 𝐹𝑥3
(1)
𝐾61 + 𝐾41
(2) (1)
𝐾62 + 𝐾42
(2) (1)
𝐾63
(1)
𝐾64
(1)
𝐾65 + 𝐾43
(2) (1)
𝐾66 + 𝐾44
(2) (2)
𝐾45
(2)
𝐾46 0 𝐹𝑦3
(2)
𝐾51
(2)
𝐾52 0 0
(2)
𝐾53
(2)
𝐾54
(2)
𝐾55
(2)
𝐾56 𝑢𝑥 4 0
(2) (2) (2) (2) (2)
𝐾61 𝐾62 0 0
(2)
𝐾63 𝐾64 𝐾65 𝐾66 0 𝐹𝑦4
MATRICE DI RIGIDEZZA RIDOTTA
(1) (2) (1) (2)
Risolvendo il sistema
(1) (1) (2)
𝐾11 + 𝐾11 𝐾12 + 𝐾12 𝐾13 𝐾14 𝐾15 lineare così ridotto 𝑢1
(1) (2) (1) (2) (1) (1) (2) 𝑢𝑥 1 0
𝑣1
𝐾21 + 𝐾22 𝐾22 + 𝐾22
(1) (1)
𝐾23 𝐾24 𝐾25
𝑢𝑦
1
𝑃/2 ∆ = 𝐹
𝐾 ∆=
𝐾31 𝐾32 (1)
𝐾33
(1)
𝐾34 0 𝑢𝑥 2 = 0 𝑣2
(1) (1) 0 𝑢𝑥 4 𝑃/2
𝐾41
(2)
𝐾42
(2)
(1)
𝐾43
(1)
𝐾44 (2)
𝐾55
0 𝑢4
𝐾51 𝐾52 0 0
➢ Si sostituiscono quindi gli spostamenti incogniti così ottenuti nel vettore completo:
𝑢𝑥 1 0 ➢ PRO: Conveniente per calcolo manuale perché scindendo gli
𝑢𝑦 1 𝑃Τ2 spostamenti incogniti dalla forze incognite, riduce il numero di
𝑢𝑥 2 0
𝑢𝑦 2 𝑃/2 equazioni da risolvere.
ത ന 𝛥ҧ =
𝐹ത = 𝐾
∆=
0
𝐹𝑥3 ➢ CONTRO: Per il calcolatore è più oneroso manipolare gli elementi
𝐹𝑦3
0
0
della matrice K per ridurla (-> riallocarla in memoria) che compiere
𝑢𝑥 4 OSS: Semplice delle operazioni. Inoltre si perturba la banda della matrice K ->
𝐹𝑦4
0 Prodotto
inficia su risolutori che sfruttano proprio questa proprietà per
ridurre il suo peso in memoria (Sparse solver).
Soluzione con metodo delle penalità
Metodo delle penalità (per calcolo automatico): Consiste nel simulare il vincolo imposto 𝑢𝑖 = 𝑑
con una molla a rigidezza 𝛼 elevata (𝛼 ≫ 𝐾𝑖𝑖 ) ed una forza di pari entità, sostituendo a:
• 𝑢𝑖 = d → 𝑢𝑖 (incognita)
• 𝐾𝑖𝑖 → 𝛼
• 𝐹𝑖 → 𝛼 ∗ 𝑑
(1) (2) (1) (2) (1) (1) (1) (2) (1) (2) (2) (2) 𝑢𝑥 1
𝐾11 + 𝐾11 𝐾12 + 𝐾12 𝐾13 𝐾14 𝐾15 + 𝐾13 𝐾16 + 𝐾14 𝐾15 𝐾16
(1) (2) (1) (2) (1) (1) (1) (2) (1) (2) (2) (2) 𝑢𝑦 0 OSS: 𝛼 → ∞-> solu. esatta
𝐾21 + 𝐾22 𝐾22 + 𝐾22 𝐾23 𝐾24 𝐾25 + 𝐾23 𝐾26 + 𝐾24 𝐾25 𝐾26 1
(1) (1) (1) (1) (1) (1) 𝑢𝑥 2 𝑃 Τ2
𝐾31 𝐾32 𝐾33 𝐾34 𝐾35 𝐾36 0 0 OSS: Adesso si può risolvere
(1) (1) (1) (1) (1) (1) 𝑢𝑦 0
𝐾41 𝐾42 𝐾43 𝐾44 𝐾45 𝐾46 0 0 2 𝑃/2 il sistema lineare 𝐹ത = 𝐾 ന 𝛥ҧ
(1)
𝐾51 + 𝐾31
(2) (1)
𝐾52 + 𝐾31
(2) (1)
𝐾53
(1)
𝐾54 𝜶
(1)
𝐾56 + 𝐾34
(2) (2)
𝐾35 𝐾36
(2) 𝒖𝒙 𝟑 = nelle vettore delle incognite
𝜶∗𝟎
(1)
𝐾61 + 𝐾41
(2) (1)
𝐾62 + 𝐾42
(2) (1)
𝐾63
(1) (1)
𝐾64 𝐾65 + 𝐾43
(2)
𝜶
(2)
𝐾45 𝐾46
(2) 𝒖𝒚 𝜶∗𝟎 tutte contenute in 𝛥ҧ
𝟑
(2)
𝐾51
(2)
𝐾52 0 0
(2)
𝐾53 𝐾54
(2) (2)
𝐾55 𝐾56
(2)
𝑢𝑥 4 0 utilizzando la funzione
(2) (2) (2) (2) (2)
𝒖𝒚 Matlab: ∆= 𝐾\F (-> molto
𝐾61 𝐾62 0 0 𝐾63 𝐾64 𝐾65 𝜶
𝟒 𝜶∗𝟎
più veloce rispetto a solu)
Risolvendo il sistema lineare si ottengono gli spostamenti incogniti (𝑢𝑖 ) e quelli delle
molle che simulano il vincolo (𝒖𝒊 ), per cui le reazioni vincolari sono date da: 𝐹𝑖 = 𝜶 𝒖𝒊
➢ PRO: Le incognite nel sistema lineare da risolvere sono state tutte ‘’trasferite’’, con questo artificio, al
primo membro -> non è necessario manipolare gli elementi della matrice K (computazionalmente
oneroso a causa della necessità di riallocare in memoria)
➢ CONTRO: Scelta di un valore di 𝛼 non troppo piccolo per avere una buona approssimazione del
vincolo, ma nemmeno troppo grande per non rendere mal condizionata la matrice K. Generalmente è
consigliato un valore pari a 103 del massimo del modulo degli elementi della matrice K.
Proprietà della matrice di rigidezza globale
La matrice di rigidezza globale della struttura, se determinata in maniera corretta,
soddisfa una serie di importanti proprietà:
• Matrice simmetrica:
Per il principio di reciprocità di Betti: il lavoro compiuto da un sistema di forze A + B è uguale se
ottenuto applicando prima A e poi B oppure applicando prima B e poi A.
𝐾𝐴𝐵 = 𝐾𝐵𝐴
• Matrice invertibile:
Quando la struttura è ben vincolata il sistema di equazioni deve ammettere soluzione. Ciò equivale
alla condizione di invertibilità della matrice 𝐾ത (dopo che i vincoli siano stati imposti tramite il metodo di
riduzione o delle penalità), ovvero:
ന >0
det(𝐾)
ധ > 0 -> K invertibile
➢ Struttura ben vincolata ->det(𝐾)
➢ Struttura sotto vincolata ->det 𝐾ധ = 0 (singolare)-> K non invertibile
𝒆(𝟐)
in senso integrale.
• Le condizioni essenziali (spostamenti imposti) sono automaticamente
soddisfatte.
• Le condizioni naturali (carichi imposti ) non sono soddisfatte.
OSS: Nelle soluzioni informa chiusa (esatte) della meccanica del continuo occorre che le
condizioni appena elencate siano tutte soddisfatte.
Es5: 2 Elementi TL1
Dati:
Fornite le seguenti strutture, discretizzate con 2 elementi TL1: E=70000 Mpa h=1mm
ν=0.3 H=10mm
P=70000N L=10mm
𝟒 𝟑 𝟒 𝟑
𝟏 𝟐 𝟏 𝟐
𝟐 𝟐 𝟐 𝟐
• Determinare le deformate
• Determinare l’andamento delle tensioni in x e y
• Osservare se vi siano dei comportamenti anomali e motivarne la causa
Bibliografia
Bibliografia:
• Francesco Cesari. Introduzione al metodo degli elementi finiti vol. 1. Pitagora editrice
Bologna (1996).
• Francesco Cesari. Calcolo matriciale delle strutture vol. 2. Pitagora editrice Bologna
(1997).
• Carlos A. Felippa. Introduction to Finite Element Methods. Lecture notes for the
course at the Aerospace Engineering Sciences Department of the University of
Colorado (since 1986). http://www.colorado.edu/engineering/CAS/courses.d/IFEM.d/ .