Apertura della mesh e correzione della circuitazione
Per prima cosa dobbiamo scaricare il file di Marc tubo.mud, contenente la mesh del tubo ottenuta la lezione precedente. Apriamo il browser Mozilla Firefox ed entriamo nel sito cdm.ing.unimo.it. All'interno del link progetto_del_telaio apriamo la cartella 2015, dalla quale scarichiamo il file tubo.mud. Per poterlo aprire con Marc, spostiamolo dalla cartella Downloads nella nostra Home Folder, accessibile dalla voce Places nella barra superiore di Linux.
Nella sezione [Files]
di Marc, in basso, verifichiamo che la [Current Directory]
sia la nostra Home.
Dalla stessa sezione:
[Files] –> [Open]
e apriamo il file tubo.mud.
Se non visualizziamo il file caricato su Marc, con il comando [Reset View]
seguito da [Fill]
ci riportiamo alla visualizzazione ottimale.
Abbiamo visto dalla teoria che nella Matrice B, che lega gli spostamenti alle deformazioni, interviene l'area a denominatore. Pertanto si vuole l'area positiva e non troppo piccola (occorre evitare elementi aghiformi). Come prima cosa, verifichiamo la circuitazione; area positiva si avrà secondo circuitazione antioraria.
All'interno della sezione [Mesh Generation]
si trova la funzione [Check]
, che racchiude diversi controlli sulla bontà della meshatura.
Con la verifica [Upside Down]
ci si accorge che all'interno di tutti gli elementi (720 in tutto) si ha orientazione oraria, che come detto restituirebbe area negativa. Con [Flip Elements]
e, come selezione, [Exist.]
, ci riconduciamo a circuitazione antioraria. A un nuovo controllo [Upside Down]
verifichiamo che ora gli elementi non disposti come voluto sono 0.
Zoomando sugli elementi si può vedere che il bordino diagonale sul loro bordo ha cambiato orientazione.
Geometric Properties
Si tratta di definire la classe della matrice D, che lega tensioni e deformazioni. La si vuole in tensione piana.
Nella sezione [Geometric Properties]
:
[Geometric Properties]–>[New]–>[Structural]–>[Planar]–>[Plane Stress]
Imponiamo come nome “tensione_piana” e confermiamo con Invio. All'interno delle [Properties]
si verifica lo spessore. Noi lasciamo [Thickness]
1 e premiamo [OK]
.
Imponiamo le proprietà agli elementi della mesh con [Elements Add]
, [Exist.]
, verificando che gli elementi selezionati siano 720. Attivando la casella [ID Geometries]
, si colorano tutti gli elementi secondo la legenda “tensione_piana”.
Material Properties
Entriamo nella sezione [Material Properties]
. Nel nostro caso trattiamo un materiale isotropo, che non vede direzioni preferenziali, pertanto tralasciamo la sezione [Orientations]
, che useremo invece quando considereremo materiali compositi, con una ben precisa orientazione delle fibre.
Entriamo nel sottomenù [Material Properties]
:
[Material Properties]–>[New]–>[Standard]
Come [Name]
imponiamo “acciaio”.
Nella categoria [General]
è possibile inserire come dato la densità del materiale, ma noi non ce ne occupiamo in quanto nel nostro problema non sono previste accelerazioni.
Apriamo invece la categoria [Structural]
; consideriamo un materiale lineare-elastico, dunque in [Type]
lasciamo [Elastic-Plastic Isotropic]
. Abbiamo a che fare con un tubo in acciaio: come [Young's Modulus]
, per essere coerenti con le unità di misura, imponiamo 210000 (sono MPa), confermando con Invio. Come [Poisson's Ratio]
imponiamo 0.33.
Diamo l'[OK]
e applichiamo le proprietà: [Elements Add]
, e come selezione [Exist.]
, assicurandoci ancora una volta che gli elementi selezionati siano 720. Confermiamo con [End List]
. Attivando la casella [ID Materials]
vediamo colorarsi tutti gli elementi del tubo secondo la legenda “acciaio”.
Boundary conditions
Le più comuni Boundary Condition disponibili sono:
In questo caso si vuole applicare una pressione di 20 MPa al bordo interno:
[Boundary conditions]-[new]-[structural]-[edge load]
e nel campo “pressure” inseriamo il valore 20 (Marc utilizza come unità di misura di default i MPa)
Per selezionare gli elementi a cui applicare tale pressione tracciamo uno spezzata chiusa, tenendo premuto ctrl, che contenga tutti gli elementi a cui vogliamo applicare tale condizione.
Andiamo ora ad inserire i vincoli, che in questo caso saranno una cerniera ed un carrello. Poichè tale vincoli impongono uno spostamento dovremo utilizzare dei “fixed displacement”.
[boundary conditions]→[new]→[structural]→[fixed displacement]
Par quanto riguarda la cerniera imponiamo pari a 0 sia lo spostamento lungo x che quello lungo y
Infine dobbiamo selezionare il nodo a cui applicare tale vincolo
[Nodes]-[add]
e poi clicchiamo sopra il nodo vincolato e con il tasto destro del mouse confermiamo.
Per quanto riguarda il carrello il procedimento è analogo, ma questa volta dobbiamo vincolare solo lo spostamento lungo y
ed applicarlo al nodo che ci interessa.
Mettendo poi la spunta su “ID boundary conditions” possiamo visualizzare carichi e vincoli applicati
Possiamo quindi considerare terminata la fase di pre-processing e passare allo svolgimento del calcolo vero e proprio.
Una volta creato il modello con la relativa pressione interna vincolato nel modo suddetto occorre lanciare il calcolo, ovvero passare allo svolgimento.
Dal menù [JOBS]
:
[new] → [structural]
ed immettere nel campo [name]
: pressione_interna
Occorre a tal punto verificare che siano attive tutte le condizioni applicate in precedenza:
[properties] → [initial loads]
e verificare che pressione, cerniera e carrello siano effettivamente attivate. Tale passaggio è molto utile in quanto si può pensare di applicare condizioni differenti al modello preso in esame e quindi tramite l’initial loads applicare o meno determinate condizioni in modo da poter studiare il comportamento del modello senza dover necessariamente creare una nuova mesh. Normalmente il programma non seleziona automaticamente i vincoli o i carichi inseriti successivamente ad un Jobs precedentemente creato, per cui è bene controllare che questi siano selezionati ogni qual volta ne vengano aggiunti di nuovi.
Occorre adesso decidere quali tipi di risultati si vogliono ottenere dalla simulazione:
[properties] → [job result]
e spuntare le voci:
[Stress], [Total Strain], [Chauchy Stress] e [Equivalent Von Mises Stress] → [OK]
Tale scelta tra i molteplici risultati ottenibili è resa necessaria o comunque risulta conveniente in quanto si riduce la spesa di calcolo del processore.
Fra i vettori (Available Element Tensors):
Fra gli scalari (Available Element Scalars):
A questo punto si imposta una dimensione di analisi che nel nostro caso è una tensione piana:
[properties] → [analysis dimension] → [plane stress] → [OK]
Per lanciare quanto definito fino a questo momento:
[run] → [submit] → [monitor]
se viene restituito il numero [3004] nella voce [exit number] significa che non ci sono errori.
Postprocessing:
Il postprocessing è la fase successiva alla costruzione del modello; dopo l’esecuzione dell’analisi della struttura, il postprocessing ci consente di visualizzare i risultati ottenuti; dal menù precedente:
[jobs] → [jobs] → [run] → [Open Post Files (Results Menù)]
Possiamo accedere ai risultati anche dal Main Menù; andiamo nella sezione Postprocessing e selezioniamo Results. La deformata di un tubo pressurizzato internamente è un’espansione radiale; utilizzando il comando Deformed Shape otteniamo la deformata del nostro modello.
Entriamo nel sottomenù Deformed Shape:
[Settings]→ [Deformation Scaling]:[Automatic]
Accedendo al sottomenù Scalar Plot si può scegliere la modalità di rappresentazione dei risultati. Scegliendo Contour Bands otteniamo una rappresentazione a bande colorate delle tensioni principali e ad ogni colore è associato un campo degli spostamenti. Le tensioni principali di un tubo sono quella circonferenziale, radiale ed assiale; le tensioni principali risultano molto importanti perché ci permettono di capire, dove i componenti meccanici collassano: le linee di frattura sono ortogonali alle tensioni principali attrattive (per esempio un tubo si rompe, aprendosi, con delle rotture assiali poiché la tensione massima è circonferenziale attrattiva).
Selezionando Numerics ed usando lo zoom visualizziamo i risultati in forma di numeri, potendo così osservare il valore dello spostamento per ogni punto. In Deformed Shape:
[Style] → [Deformed & Original]
In questo modo possiamo visualizzare come si è deformata la nostra struttura rispetto alla configurazione iniziale (possiamo anche vedere la nostra struttura indeformata, o entrambe le situazioni). Nel menù Scalar Plot:
[Scalar] → [Equivalent von Mises Stress]
Visualizziamo in questo modo i risultati relativi alla Tensione Equivalente di Von Mises:
Nello stesso modo si possono selezionare altre grandezze da visualizzare: Spostamenti lungo X e Y; forze Esterne; Reazioni; valori Massimi, Intermedi e Minimi delle Tensioni Principali e delle Tensioni di Taglio; valori Massimi, Intermedi e Minimi delle deformazioni (ci accorgiamo che un modello è auto-equilibrato e fatto bene, se, applicandogli dei moti rigidi, i vincoli non risultano caricati).
Nel caso in cui si voglia visualizzare i risultati in un sistema a coordinate cilindriche o sferiche:
[Scalar Plot]: [Settings] → [Results Coordinate System] → [Cylindrical / Spherical] → [Active]
Si può anche ottenere un grafico delle grandezze in esame: ad esempio dei valori massimi, intermedi e minimi della Tensione Principale (questi grafici sono esportabili in Excel per poi utilizzarli, ad esempio, per eseguire un’analisi a fatica):
[Post Processing] : [Results] → [Pat Plot] → [Node Path] → selezioniamo i nodi di in-teresse → click destro per “end list” → [Add Curves] → [Add Curve] → [Arc Length] → [Maximum Value of Stress] → [Arc Length] → [Intermediate Value of Stress] → [Arc Length] → [Minimun Value of Stress] → [Fit]
Per tornare al nostro modello clicchiamo Show Model. Visualizzando i valori numerici relativi alla “Minimum Principal Value of Stress” (Numerics nel menù Scalar Plot) notiamo che questa, in prossimità della circonferenza interna è pari a 17,5[MPa], mentre avevamo inserito un valore di Pressione Intera pari a 20[Mpa].
Questo significa che la mesh non è convergente, ossia, non è sufficientemente piccola, quindi dobbiamo infittirla; dal Main Menù suddividiamo circonferenzialmente il tubo in 2 ed osserviamo se andiamo in convergenza (è come se avessi fatto un integrale su di un intervallo più piccolo):
[Mesh Generation] → [Subdivide] → [Divisions] : [2,1,1] → [Elements] → [All] : [Exist.]
Dal precedente Menù:
[Sweep] → [All]
Abbiamo così condensato dopo aver fatto la divisione; ora possiamo rilanciare il modello:
[Main] → [job]→ [run] → [ submit] → [monitor] → [open post file]
Selezioniamo Numerics per visualizzare il valore della pressione ed osserviamo che il nuovo valore è più vicino a 20[MPa], ciò significa che l’operazione di convergenza ha avuto successo.
Con questa esercitazione capito che aumentando il numero dei nodi, la mesh approssima le curve in maniera più precisa, quindi è necessario infittire la mesh, finchè il risultato dell’analisi FEM converge con i valori ottenibili tramite il calcolo analitico delle formule esatte per il tubo in pressione.
Abbiamo verificato anche che, nonostante la struttura sia autoequilibrata, è necessario vincolarla, poiché in caso contrario non sarebbe possibile la risoluzione della struttura (i moti rigidi del corpo sarebbero ancora possibili).
Grazie alla funzione Help di Marc possiamo vedere i tipi di elementi finiti presenti nel software. Nell’Help (che troviamo in basso a destra) è presente la sezione Element library: selezioniamo ad esempio il Tria 3 e ne possiamo vedere le caratteristiche.
Modellazione di un elemento Tria 3
Realizziamo un elemento Tria 3 per poter confrontare la matrice di rigidezza creata dal software con quella calcolabile a mano.
Creimamo un triangolo tramite le funzioni per assegnare i nodi viste in precedenza, i cateti del triangolo sono di lunghezza unitaria.
Da Geometric properties assegnamo un elemento Plane stress di spessore 1 ai punti che abbiamo creato in precedenza, ricordando di selezionare i punti in senso antiorario: tali punti sono i nodi dell’elemento Tria 3 creato. Il numero di nodi di un elemento determina la sua funzione di forma: più nodi sono presenti e più sarà complessa l’equazione che lega gli spostamenti (che nel piano sono u e v rispettivamnete lungo gli assi x e y) dei nodi dell’elemento.
[Plot]-[Elements]-[Solid]-[Regen]
Attivando questa funzione è possibile visualizzare gli elementi assegnati.
Assegnamo il materiale acciaio all’elemento e lo vincoliamo isostaticamente con cerniera e carrello, come abbiamo fatto per il tubo in pressione.
Carichiamo il triangolo con una forza concentrata di intensità 10 N, diretta come in figura e applicata al noto più in alto:
[Boundary conditions]-[New]-[Structural]-[Point load]-[Properties]-[Force X]-[10]
e applichiamo il carico al nodo.
Ricordiamo che i nodi fanno parte della mesh, mentre i punti non ne fanno parte, quindi è importante fare attenzione all’entità che si seleziona quando vogliamo applicare vincoli o carichi.
Ritorniamo al Main e selezioniamo
[Jobs]-[New]-[Structural]-[Properties]-[Job Results]-[Stress]-[Output File]-[Elements Matrices]
qui possiamo vedere la matrice di rigidezza associata al problema modellato. Il file di output creato si trova nella Home Folder e ha estensione .out.