Immagina questo: Stai facendo una presentazione della tua tesi di dottorato sulla stabilità in uno dei seminari. Tutto va liscio, e, infine, è il momento delle interrogazioni! E qualcuno di punto in bianco chiede: “qual è la differenza tra approccio implicito ed esplicito?”! E dal momento che stai facendo la stabilità statica those non hai mai nemmeno sentito quei termini! Gia ‘been l’ho gia’ fatto!, Ora, sono un po ‘ più saggio, quindi diamo un’occhiata più da vicino alle differenze tra analisi implicita ed esplicita
L’analisi implicita ed esplicita differiscono nell’approccio all’incremento del tempo. Nell’analisi implicita ogni incremento di tempo deve convergere, ma è possibile impostare incrementi di tempo piuttosto lunghi. Esplicito d’altra parte non deve convergere ogni incremento, ma affinché la soluzione sia accurata gli incrementi di tempo devono essere super piccoli.
Questo suona piuttosto semplice, giusto?, A meno che tu non inizi a pensare a cose come “quale dovrei usare” o “quanto piccolo dovrebbe essere l’incremento temporale esplicito”, e cose del genere. Non preoccuparti, ti ho coperto!
Tuffiamoci!
Dinamica al suo meglio – Implicita / Esplicita!
Utilizzerai risolutori impliciti ed espliciti per risolvere problemi dinamici. Ciò significa che non è necessario conoscere questa roba se si sta facendo analisi statica., Se non siete sicuri circa la differenza tra l’analisi statica e dinamica, si prega di leggere questo post prima-renderà le cose più facili da capire!
Analisi dinamica in poche parole:
L’analisi dinamica risolve i problemi che coinvolgono effetti di inerzia. Quelli appaiono, quando le cose cambiano velocemente nel tuo modello (carichi, impatti, ecc.). Gli ingegneri di solito si riferiscono a questo come “dinamico non lineare”.
Va notato che spesso gli ingegneri chiamano anche altre analisi “dinamiche”., Cose come l’analisi modale o l’analisi della risposta forzata che si occupano delle vibrazioni. A volte quelli sono chiamati “linear dynamic”, ma di solito è una buona idea per assicurarsi che cosa qualcuno significa quando usano una frase del genere. Mentre i problemi “dinamici lineari” sono davvero interessanti, non ne discuterò qui. Puoi saperne di più su di loro leggendo questo post!
La prima cosa che sento di dover sottolineare è che i risolutori impliciti ed espliciti risolvono GLI STESSI problemi!, Pensalo non come “diversi risolutori” ma piuttosto come due modi diversi di risolvere lo stesso problema.
In molti casi, è possibile utilizzare sia il risolutore implicito che esplicito e produrranno lo stesso risultato. E penso che questo è dove dobbiamo iniziare!
Come funziona l’analisi dinamica?
Entrambe le analisi stanno risolvendo un problema in cui la velocità delle cose è importante. Ciò significa principalmente che il carico viene applicato molto velocemente. In questi casi, “itererai” sempre il tuo carico nel tempo., Fondamentalmente, userai il tempo per dire al risolutore “cosa sta succedendo” e come sta cambiando il carico.
In primo luogo, è necessario definire come il carico sta cambiando nel tempo. Di solito lo fai usando i grafici, come quello qui sotto:
Nell’analisi dinamica non lineare, il tempo ha 2 ruoli. In primo luogo, ti permette di dire al risolutore, quando quanto carico dovrebbe essere applicato. Devi semplicemente implementare ogni carico con un grafico dipendente dal tempo. In secondo luogo time il tempo è tempo! Dice al risolutore quanto velocemente stanno andando le cose!,
Immagina di voler avere una tale sequenza di carico:
In statico questa sarebbe un’analisi a 3 “passi” (quelli sono chiamati sottocasi in NX Nastran, ma penso che Abaqus abbia effettivamente usato “step” come nome, non riesco a ricordarlo di sicuro!). L’idea sarebbe semplice, devi applicare 100kN di carico nel passaggio 1, quindi rimuovere 50kN del carico nel passaggio 2 e rimuovere 50kN nel passaggio 3. Non c’è modo di includere il “plateau” del carico dopo il passaggio 2 nell’analisi e verrà omesso., La logica è semplice: nessun cambiamento nel carico = nulla cambia in statico!
Incrementi di carico in statica
Se il problema sarebbe altamente non lineare, il carico sarebbe “incrementato”. È raro essere in grado di applicare “pieno carico” in analisi non lineare a “one go”! Di solito, il risolutore applicherebbe cioè 1kN ogni “incremento”. Ciò significa che dopo 100 incrementi, verrà applicato un carico completo del passaggio 1. Questo rende più facile per il risolutore convergere una risposta corretta.,
Come utente, si arriva a definire come grandi incrementi solver dovrebbe usare. Ci sono anche alcuni algoritmi per modificare l’incremento del carico durante l’analisi. Diversi risolutori vogliono che tu lo imposti in modi diversi. Di solito i pacchetti FEA usano moltiplicatori di carico per questo. Ciò significa che puoi dire qualcosa del tipo:”in ogni incremento applica 0,01 aggiuntivo di tutto il carico”.
Impressionante… ma andiamo alla dinamica, che ne dici?, Nell’analisi dinamica è possibile ottenere la distribuzione del carico come sopra con una tale definizione di carico:
Istantaneamente, ci sono alcune cose che puoi notare:
- Non ci sono passaggi! Questo perché nell’analisi dinamica non incrementerai il carico. Si incrementerà il tempo! E poiché il tempo passa ” costantemente “da zero al valore prescritto, puoi incrementarlo in”un passo”.
- Il tempo è essenziale! Quando si tratta dei valori del carico, i grafici sopra sono gli stessi., Ma questo non è lo stesso caso dinamico! Il grafico a destra applica il carico 1000x più veloce! Questo non è qualcosa che puoi semplicemente ignorare nell’analisi dinamica!
In generale, quando vuoi risolvere un problema dinamico, stai chiedendo al tuo risolutore di fare una cosa. Gli chiedi di calcolare la serie di incrementi temporali, per vedere cosa sta succedendo nel modello. In ciascuno di questi incrementi, il tempo aumenta leggermente. Questo ovviamente cambia anche il carico nel modello. Questo è il motivo per cui è necessario disporre di un grafico dipendente dal tempo per il carico., Quindi il risolutore ” sa ” quale carico dovrebbe essere applicato in quale momento incremento. In questa misura, funziona come l’incremento del carico nell’analisi statica. Il bonus è, che dal momento che si sta incrementando il tempo, effetti di inerzia possono essere presi in considerazione quando le cose stanno accadendo abbastanza velocemente.
In questa misura, sia l’analisi implicita che quella esplicita fanno più o meno la stessa cosa. Dividono il “tempo di analisi” in piccoli incrementi e quindi analizzano cosa sta succedendo nel modello un incremento di tempo dopo l’altro. Ma qui è dove finiscono le somiglianze!, Vedete, ci sono approcci distinti all’incremento del tempo che potresti avere!
Implicito vs esplicito-Quando il tempo conta davvero!
Hai appena appreso che per calcolare il problema dinamico non lineare, dovrai aumentare in modo incrementale il “tempo di analisi”. Come ho già detto, questo può essere fatto in due modi.
Inizierò con l’approccio implicito. Penso che sia più facile da capire poiché funziona più o meno allo stesso modo dell’incremento del carico nell’analisi statica non lineare!,
Come funziona l’analisi implicita:
Prima di tutto, implicita sembra essere una soluzione più “di base”. In sostanza funziona proprio come si potrebbe pensare che dovrebbe!
- In primo luogo, in ogni incremento di tempo viene stabilito l ‘ “equilibrio globale” nel modello. Ciò significa che ogni incremento deve convergere (questo sta accadendo nelle iterazioni).
- Dopo che l’equilibrio globale è ok, il risolutore calcola tutte le variabili locali agli elementi finiti (stress ecc.) per questo incremento.,
- Vantaggi: Poiché l’equilibrio globale viene verificato ad ogni incremento di tempo, tali incrementi possono essere GRANDI!
- Svantaggi: Ogni volta che l’incremento calcola lentamente, poiché sono necessarie iterazioni per raggiungere l’equilibrio globale.
Se hai familiarità con l’analisi statica non lineare ti sentirai “a casa” con il risolutore implicito. Come utente, di solito si arriva a dire quanto è grande l’incremento di tempo che si desidera avere. Questo è un enorme vantaggio easy che è facile perdere., Perché Risolutore esplicito non offre una tale possibilità!
Diamo un’occhiata all’incremento esplicito successivo!
Come funziona l’analisi esplicita:
Questo è funky. Funziona in un modo, che non c’è bisogno di convergere ogni passo! Non ci sono criteri di convergenza da verificare e no nessuna iterazione! Invece di verificare l ‘ “equilibrio globale” il risolutore presuppone che l’equilibrio “esista semplicemente”. Ciò significa che il risolutore va direttamente nel calcolo delle variabili locali agli elementi finiti!, Come tale procedura ha un solo passaggio:
- Calcola tutte le variabili agli elementi finiti locali per un determinato incremento e passa a quello successivo!
- Vantaggi: Ogni incremento calcola estremamente veloce!
- Svantaggi: perché questo funzioni, il passo temporale deve essere ESTREMAMENTE piccolo. Altrimenti, è impossibile mantenere questo equilibrio che si presume “semplicemente esistere”. Per raggiungere questo obiettivo, l’utente non ha il controllo diretto su quanto grande tempo incrementi risolutore esplicito avrà., Risolutore stesso calcola come piccoli timesteps sono ancora ok. E quegli incrementi di tempo accettabili sono SUPER PICCOLI! Questo è il motivo per cui i problemi espliciti dovrebbero durare frazioni del secondo! Se durassero secondi would avresti bisogno di milioni di incrementi!
Per riassumere rapidamente: sia i risolutori impliciti che quelli espliciti risolvono le stesse cose. L’unica differenza è come questi metodi incrementano il tempo.
Tecnicamente, entrambi dovrebbero produrre lo stesso risultato per tutti i casi., Dopo tutto, puoi analizzare lo stesso problema con entrambi gli approcci. Ovviamente, la risposta non può dipendere dal metodo utilizzato per risolvere il problema! Ma naturalmente, sceglierai solo uno degli approcci per il tuo prossimo problema, quindi quale? Scopriamolo!
Cosa è meglio per te: implicito o esplicito?
Abbiamo già concordato che è possibile utilizzare sia risolutori impliciti che espliciti per risolvere lo stesso tipo di problemi. L’unica differenza è nell’approccio all’incremento del tempo. Ma non è una cosa banale!, Se la differenza fosse piccola, nessuno si preoccuperebbe di implementare entrambi! Quindi diamo un’occhiata a come questa volta l’incremento influenza le cose!
Sia i risolutori impliciti che quelli espliciti hanno alcune aree in cui brillano. E c’è una sovrapposizione nel loro uso:
- L’analisi implicita consente di selezionare quanto dovrebbe essere grande l’incremento di tempo! Questo incremento richiederà del tempo per il calcolo poiché deve prima iterare per l’equilibrio globale. Ma puoi renderlo “ragionevolmente grande” per la tua analisi.,
- Gli incrementi di tempo espliciti calcolano molto velocemente! Semplicemente perché non iterano per l’equilibrio globale… ma l’incremento del tempo non è la tua scelta! Il risolutore presuppone semplicemente che l’incremento di tempo” accettabile “sia” X” e vada con esso. Nota, che questa ” X ” può facilmente essere qualcosa come 5e-7s… Questo è super piccolo! Per risolvere un problema che si verifica su 1s, avresti bisogno di 2 000 000 incrementi!
- E questo è tutto! La velocità di calcolo è esattamente la differenza tra implicito ed esplicito., Naturalmente, la dimensione del passo esplicito dipende dal modello e i tempi di calcolo dipendono dall’hardware. Ci sono tuttavia semplici osservazioni che possiamo facilmente fare:
Usa implicito per “analisi lenta”!
Se la cosa che calcoli avviene per diversi secondi, non ha senso usare il risolutore esplicito. Ci vorrà sempre per scavare attraverso i milioni di incrementi di tempo necessari per questo per calcolare!, Invece, imposta un passo temporale “ragionevole” per l’analisi implicita (diciamo 100 incrementi di tempo uguali per l’analisi). Certo, ognuno di questi incrementi di tempo impliciti calcolerà molto più a lungo di un singolo incremento esplicito. Ma non più di centinaia di migliaia di loro!
Usa explicit per “analisi veloce”!
Questo è ovvio, giusto? Se ciò che calcoli accade nella piccola frazione di secondo esplicito è tuo amico., In un’analisi implicita, il tuo incremento di tempo sarebbe super piccolo-forse anche piccolo come l’incremento nell’analisi esplicita. In tal caso l’analisi esplicita verrà eseguita MOLTO più velocemente poiché non richiede iterazioni di “equilibrio globale”. L’analisi implicita richiede tali iterazioni (indipendentemente dal passaggio temporale!).
Tra le cose!
Naturalmente, ci sono problemi che si verificano nel mezzo (come un impatto con velocità 5m/s)., Di solito è possibile risolvere un problema del genere con entrambi i risolutori, ma può essere fastidioso.
Spero che questo ti aiuti a selezionare un approccio corretto ai tuoi problemi dinamici. Naturalmente, alla fine, l’esperienza è la migliore guida! Se sei in dubbio, esegui alcuni dei tuoi problemi tipici sia impliciti che espliciti. In questo modo, sarete in grado di confrontare i risultati (dovrebbero essere gli stessi). Ma ciò che è più importante, si sarà in grado di confrontare i tempi di calcolo! Questo vi darà l’opportunità di verificare, che cosa è un approccio migliore per voi!,
Come si indovina esplicitamente la dimensione del passo temporale?
Bene, è tutto bello e dandy finora, ma penso che sarebbe bello affrontare un grosso problema. E cioè if se non stai selezionando il passo temporale nella tua analisi esplicita who allora chi lo fa?
La spiegazione matematica richiederebbe una discussione sulla frequenza naturale massima. Questo perché l’incremento temporale massimo “ancora accettabile” è inversamente proporzionale alla frequenza naturale massima. Tali calcoli possono essere fatti, ovviamente., I risultati dipendono dalla mesh del modello (quanti elementi ci sono, ecc.). Ma non ci andremo, e ci sono 2 motivi per cui: in primo luogo, non mi piace la matematica (!). In secondo luogo, questo non è il modo in cui i risolutori lo fanno alla fine, anche se questo è il “modo corretto”.
Il risolutore può calcolare la frequenza naturale massima, ovviamente, ma questo richiede un po ‘ di tempo. E dal momento che dovrebbe essere fatto in ogni incremento temporale esplicito (ce ne possono essere molti!) y accidenti!, Fortunatamente, c’è un modo per stimare bene questo valore, analizzando separatamente ogni elemento finito nel sistema! L’interpretazione fisica di questa stima (comunemente usata nei risolutori) è:
Incremento temporale massimo nell’analisi esplicita:
L’incremento temporale nell’analisi esplicita è molto breve. È il momento in cui un’onda elastica (cioè un’onda d’impatto) può viaggiare attraverso un singolo elemento finito del modello. Naturalmente, questo è verificato per tutti gli elementi finiti nel modello e viene selezionato il tempo più piccolo.,
Come puoi vedere, ci sono 2 componenti per il componente tempo esplicito:
- Velocità dell’onda elastica (aka velocità del suono nel tuo materiale)! Questo dipende solo dal materiale che hai nel tuo modello (ed è diverso per i diversi materiali, ovviamente!). Avrete bisogno del modulo giovane E, della densità del materiale e della razione di Poisson (in problemi 2D e 3D). È facile trovare tabelle che elencano le velocità delle onde elastiche in vari materiali. Solo per riferimento in acciaio, questo è di circa 5200 m/s (molti metalli sono di circa 4500-5500 m / s).,
- Dimensione elemento (e qualità)! Hai la velocità dell’onda, ma non è abbastanza! Per conoscere il tempo necessario per viaggiare attraverso l’elemento, è necessario conoscere l’elemento “lunghezza”. Mentre questo è super semplice negli elementi 1D (hanno semplicemente lunghezza) diventa complicato in 2D e 3D. Questa lunghezza non è “semplicemente” il più breve dei bordi dell’elemento poiché gli elementi possono avere una geometria piuttosto scarsa. Ci sono cose che il risolutore fa per calcolare questo. In 2D potrebbe essere un’area dell’elemento divisa per la lunghezza massima del bordo., In 3D l ‘ può significare che il volume dell’elemento è diviso per l’area laterale massima. Questo è il motivo per cui non solo la dimensione degli elementi, ma anche la qualità degli elementi è così importante nell’analisi esplicita! Dopotutto… tutto ciò di cui hai bisogno è un elemento povero per ferire davvero il tuo tempo di calcolo!
Ho letto da qualche parte, che mentre quanto sopra è la soluzione “precisa”, i risolutori spesso usano “fattori di sicurezza” su questo. Se si ottiene un incremento di tempo superiore all’onda elastica” limite di velocità ” si verificano errori matematici. Poiché vengono utilizzate le stime, i risolutori spesso riducono il passaggio temporale “per ogni evenienza”., Di solito, il fattore di riduzione è di circa 0,9, ma questo può variare da risolutore a risolutore, naturalmente.
Scala di massa!
Alla fine, voglio menzionare qualcosa rapidamente.
Molto probabilmente hai notato che il passo temporale in explicit dipende solo dalla mesh, dal Modulo Young e dalla densità. Ridurre il modulo Young potrebbe non essere l’ideale, ovviamente, e spesso è necessaria una piccola mesh per analizzare i dettagli. Ma nei problemi “a bassa dinamica” puoi provare ad aumentare il passo temporale esplicito aumentando la densità del materiale.,
Questo è chiamato “ridimensionamento di massa”. I pacchetti FEA offrono anche soluzioni in cui la densità è aumentata solo negli elementi che “decidono” sull’incremento temporale. Ciò significa che a volte solo piccole porzioni del tuo modello diventano più pesanti! In alcune analisi, puoi” scappare ” aumentando la massa del tuo modello. Se questo è il caso, questa potrebbe essere una soluzione per te. Basta essere consapevoli, che questo cambia come si comporta il tuo modello! Quando sono coinvolte alte accelerazioni, è meglio stare attenti!
Sommario
Bello!, Sei arrivato qui, grazie per aver letto! Concludiamo questo, quindi è più facile da ricordare!
- L’analisi dinamica richiede tempo! Quando si applicano carichi, questi devono essere definiti in una funzione temporale. Spesso questa è una relazione lineare. Ma questo non cambia, che il tempo in cui viene applicato il carico gioca un ruolo significativo (specialmente se questo tempo è breve!).
- 2 sapori di analisi dinamica! È possibile risolvere i problemi dinamici “reali” con algoritmi impliciti ed espliciti. Entrambi stanno bene, e nessuno di loro è “migliore”., Ma dovrei dire che il risolutore esplicito fa parte di un minor numero di pacchetti FEA. Poiché non tutti i pacchetti FEA ne hanno nemmeno uno, il risolutore esplicito è visto come una cosa “più avanzata”.
- Il risolutore implicito è davvero buono se le cose nella tua analisi accadono relativamente lentamente. Diciamo che l’analisi è più lunga di 1s senza che accadano cose improvvise durante quel periodo. Il vantaggio è che puoi scegliere quanto è grande l’incremento di tempo che desideri. Anche se il singolo incremento richiede più tempo per il calcolo, ce ne sono molti meno!,
- Il risolutore esplicito è ottimo per cose che accadono velocemente (diciamo più velocemente di 0.1 s). Non puoi scegliere l’incremento di tempo qui-il risolutore lo imposterà automaticamente. Mentre di solito sono super piccoli, almeno calcolano molto più velocemente di quelli “impliciti”. Risolutore esplicito calcola quanto grande dovrebbe essere l’incremento di tempo. Questo dipende dalla velocità del suono nel materiale, dalla dimensione minima degli elementi finiti (e dalla qualità degli elementi!). In alcuni casi, è possibile modificare la densità (anche automaticamente solo in “elementi decisivi”!) per regolare questo incremento di tempo., Questo funziona, perché la velocità del suono nel tuo materiale dipende dalla sua densità! Questo è chiamato “ridimensionamento di massa”.