imaginați-Vă: sunteți de a face o prezentare a tezei de doctorat privind stabilitatea la unul dintre seminarii. Totul merge bine și, în sfârșit, este timpul pentru întrebări! Și cineva din senin întreabă: „care este diferența dintre abordarea implicită și cea explicită?”! Și din moment ce faci stabilitate statică… nici măcar nu ai auzit acești Termeni! Da … a fost acolo făcut asta!, Acum, eu sunt un pic mai înțelept, așa că să aruncăm o privire mai atentă la diferențele dintre analiza implicită și explicită
analiza implicită și explicită diferă în abordarea incrementării timpului. În analiza implicită, fiecare creștere de timp trebuie să converge, dar puteți seta creșteri de timp destul de lungi. Explicit, pe de altă parte, nu trebuie să converge fiecare creștere, dar pentru ca soluția să fie exactă, creșterile de timp trebuie să fie foarte mici.acest lucru sună destul de simplu, nu?, Cu excepția cazului în care începeți să vă gândiți la lucruri precum „care ar trebui să folosesc” sau „cât de mic ar trebui să fie incrementul explicit al timpului” și lucruri de genul acesta. Nu-ți face griji, te-am acoperit!
să ne scufundăm!
dinamica la maxim – implicită / explicită!
va utiliza Implicite și Explicite rezolvarea pentru a rezolva problemele dinamice. Aceasta înseamnă că nu va trebui să știți aceste lucruri dacă faceți analize statice., Dacă nu sunteți sigur de diferența dintre analiza statică și cea dinamică, Vă rugăm să citiți mai întâi acest post – va face lucrurile mai ușor de înțeles!
analiză Dinamică într-un cuvânt:
analiza Dinamică rezolvă probleme care implică efecte inerțiale. Acestea apar atunci când lucrurile se schimbă rapid în modelul dvs. (sarcini aplicate rapid, impacturi etc.).). Inginerii se referă de obicei la acest lucru ca”dinamică neliniară”.
trebuie remarcat, că de multe ori inginerii numesc alte analize „dinamic”, precum și., Lucruri cum ar fi analiza modală sau analiza răspunsului forțat care se ocupă de vibrații. Uneori, acestea sunt numite „dinamice liniare”, dar de obicei este o idee bună să vă asigurați ce înseamnă cineva atunci când folosesc o astfel de frază. În timp ce problemele” dinamice liniare ” sunt cu adevărat interesante, nu le voi discuta aici. Puteți afla mai multe despre ei citind acest post!
primul lucru Pe care mă simt într-adevăr trebuie să subliniez este că implicite și explicite rezolvarea rezolva ACELEAȘI probleme!, Gândiți-vă la aceasta nu ca la „rezolvatori diferiți”, ci mai degrabă ca la două moduri diferite de a rezolva aceeași problemă.în multe cazuri, puteți utiliza atât solver implicit și explicit, și ei vor produce același rezultat. Și cred că de aici trebuie să începem!
cum funcționează analiza dinamică?
ambele analize rezolvă o problemă în care viteza lucrurilor este importantă. Aceasta înseamnă în mare parte că sarcina este aplicată foarte rapid. În astfel de cazuri, veți „repeta” întotdeauna sarcina în timp., Practic, veți folosi timpul pentru a spune solverului „ce se întâmplă” și cum se schimbă sarcina.
În primul rând, trebuie să definiți modul în care sarcina se schimbă în timp. De obicei face acest lucru, folosind diagrame, ca cea de mai jos:
În analiza dinamică neliniară, timpul are 2 roluri. În primul rând, vă permite să spuneți solverului, când trebuie aplicată cantitatea de sarcină. Pur și simplu trebuie să implementați fiecare încărcare cu o diagramă dependentă de timp. În al doilea rând … timpul este timpul! Acesta spune solver cât de repede lucrurile merg!,
Imaginați-vă că doriți să aveți o astfel de sarcină secvența:
În statică aceasta ar fi o 3 „pasi” de analiză (acestea sunt numite subcases în NX Nastran, dar cred că Abaqus folosit de fapt „pas”, ca un nume, nu-mi amintesc acest lucru pentru că, deși!). Ideea ar fi simplă, trebuie să aplicați 100KN de încărcare la Pasul 1, apoi să eliminați 50KN din sarcină la Pasul 2 și să eliminați 50KN la Pasul 3. Nu există nicio modalitate de a include „platoul” încărcăturii după pasul 2 în analiză și va fi omisă., Logica este simplă: nici o schimbare în sarcină = nimic nu se schimbă în statică!
Încărcare în trepte statice
Dacă problema ar fi extrem de neliniare, sarcina ar fi „crește”. Este rar să poți aplica” încărcare completă „în analiza neliniară la”One go”! De obicei, solver ar aplica adică 1KN fiecare „creștere”. Aceasta înseamnă că, după 100 de trepte, se va aplica o încărcare completă a etapei 1. Acest lucru face mai ușor pentru solver să converge un răspuns corect.,
ca utilizator, veți obține pentru a defini cât de mari incremente solver ar trebui să utilizeze. Există, de asemenea, unele algoritmi pentru a modifica incrementarea sarcinii în timpul analizei. Diferite solvers doriți să setați acest lucru în moduri differnet. De obicei, pachetele FEA folosesc multiplicatori de sarcină pentru acest lucru. Acest lucru înseamnă, că puteți spune ceva de genul: „în fiecare creștere se aplică 0,01 suplimentare din toate sarcina”.
minunat … dar să trecem la dinamică,nu?, În analiza dinamică puteți obține de distribuție de sarcină, ca mai sus cu o astfel de sarcină definiție:
Imediat, există câteva lucruri pe care le puteți observa:
- nu Există pași! Acest lucru se datorează faptului că în analiza dinamică nu veți crește sarcina. Vei incrementa timpul! Și din moment ce timpul trece „constant” de la zero la valoarea prescrisă, îl puteți crește în „un pas”.
- timpul este esențial! Când vine vorba de valorile sarcinii, graficele de mai sus sunt aceleași., Dar acest lucru nu este același caz dinamic! Graficul din dreapta aplică sarcina 1000x mai repede! Acest lucru nu este ceva ce se poate ignora doar în analiza dinamică!
în general, atunci când doriți să rezolvați o problemă dinamică, cereți solverului dvs. să facă un singur lucru. Îi cereți să calculeze seria de creșteri de timp, pentru a vedea ce se întâmplă în model. În fiecare dintre aceste creșteri, timpul crește ușor. Acest lucru, desigur, schimbă și sarcina din model. Acesta este motivul pentru care trebuie să aveți o diagramă dependentă de timp pentru încărcare., Deci, solverul „știe” ce sarcină ar trebui aplicată la ce creștere de timp. În această măsură, funcționează la fel ca incrementarea sarcinii în analiza statică. Bonusul este, că, din moment ce sunt incrementarea timp, efecte de inerție pot fi luate în considerare atunci când lucrurile se întâmplă destul de repede.
în această măsură, analiza implicită și explicită face mai mult sau mai puțin același lucru. Ei împart „timpul de analiză” în creșteri mici și apoi analizează ce se întâmplă în modelul dvs. o creștere de timp după alta. Dar aici se termină asemănările!, Vedeți, există abordări distincte pentru incrementarea timpului pe care o puteți avea!
Implicit vs Explicit – când timpul contează cu adevărat –
doar Ai învățat, că, în scopul de a calcula dinamic neliniar problemă, va trebui pentru a crește treptat „analiza”. După cum am menționat deja, acest lucru se poate face în două moduri.
voi începe cu abordarea implicită. Cred că este mai ușor de înțeles, deoarece funcționează mai mult sau mai puțin la fel ca incrementarea sarcinii în analiza statică neliniară!,
cum funcționează analiza implicită:
în primul rând, implicit pare a fi o soluție mai „de bază”. În esență, funcționează exact așa cum ați crede că ar trebui!
- în primul rând, în fiecare creștere de timp se stabilește „echilibrul global” din model. Aceasta înseamnă că fiecare creștere trebuie să convergă (acest lucru se întâmplă în iterații).
- după echilibru global este ok, solver calculează toate variabilele locale element finit (subliniază etc.) pentru această creștere.,
- beneficii: deoarece echilibrul global este verificat la fiecare incremente de timp, aceste incremente pot fi mari!
- dezavantaje: de fiecare dată increment calculează încet, deoarece iterații sunt necesare pentru a ajunge la echilibrul global.
Dacă sunteți familiarizat cu analiză statică neliniară vă veți simți „acasă”, cu rezolvitor. Ca utilizator, de obicei, veți spune cât de mari sunt creșterile de timp pe care doriți să le aveți. Acesta este un avantaj imens… care este ușor de ratat., Deoarece Solver Explicit nu oferă o astfel de posibilitate!
Să aruncăm o privire la incrementarea explicită următoare!
cum funcționează analiza explicită:
acesta este funky. Funcționează într-un fel, că nu trebuie să converge fiecare pas! Nu există criterii de convergență de verificat și … nu există iterații! În loc să verifice solverul ” global equilibrium „presupune că echilibrul”există pur și simplu”. Acest lucru înseamnă că solver merge direct în calculul variabilelor locale element finit!, Deoarece această procedură are doar un singur pas:
- calculați toate variabilele locale de element finit pentru o creștere dată și treceți la următoarea!
- beneficii: fiecare creștere calculează extrem de rapid!
- dezavantaje: pentru ca acest lucru să funcționeze, pasul de timp trebuie să fie extrem de mic. În caz contrar, este imposibil să menținem acest echilibru care se presupune că „există pur și simplu”. Pentru a realiza acest lucru, utilizatorul nu au control direct asupra cât de mare de timp incremente explicite solver va lua., Solver se calculează cât de mici timesteps sunt încă ok. Iar aceste creșteri de timp acceptabile sunt foarte mici! Acesta este motivul pentru care problemele explicite ar trebui să dureze fracțiuni ale celui de-al doilea! Dacă ar dura câteva secunde … ai avea nevoie de milioane de incremente!
rapid a rezuma: ambele implicite și explicite rezolvarea rezolva aceleasi lucruri. Singura diferență este, modul în care aceste metode incrementa timp.
tehnic, ambele ar trebui să producă același rezultat pentru toate cazurile., La urma urmei, puteți analiza aceeași problemă cu ambele abordări. Evident, răspunsul nu poate depinde de metoda utilizată pentru a rezolva problema! Dar, desigur, veți alege doar una dintre abordările pentru următoarea problemă, deci care dintre ele? Să aflăm!
ce este mai bine pentru tine: Implicit sau Explicit?
Am fost deja de acord că puteți folosi atât implicite și explicite rezolvarea să rezolve același tip de probleme. Singura diferență este în abordarea incrementării timpului. Dar nu este un lucru banal!, Dacă diferența ar fi mică, nimeni nu ar avea grijă să pună în aplicare ambele! Deci, să aruncăm o privire la modul în care acest timp incrementarea influențează lucrurile!
atât rezolvatorii implicite și explicite au unele zone în care acestea strălucesc. Și există o suprapunere în utilizarea lor:
- analiza implicită vă permite să selectați cât de mare ar trebui să fie creșterea timpului! Această creștere va dura ceva timp pentru a calcula, deoarece trebuie să itereze mai întâi echilibrul global. Dar îl puteți face „rezonabil de mare” pentru analiza dvs.,
- Explicite intervale de timp calcula foarte repede! Pur și simplu pentru că nu itera pentru echilibru global… dar incrementul de timp nu este alegerea ta! Solver presupune pur și simplu, că” acceptabil „incrementul de timp este” X ” și merge cu ea. Rețineți că acest ” X ” poate fi cu ușurință ceva de genul 5e-7s… acest lucru este foarte mic! Pentru a rezolva o problemă care se întâmplă peste 1s, ai avea nevoie de 2 000 000 incremente!
- și asta este! Viteza de calcul este exact diferența dintre implicit și explicit., Desigur, dimensiunea pasului explicit depinde de modelul dvs., iar timpii de calcul depind de hardware-ul dvs. Cu toate acestea, există observații simple care ne pot face cu ușurință:
Utilizare implicită pentru „lent analiza”!
dacă lucrul pe care îl calculați se întâmplă în câteva secunde… nu are sens să folosiți Solver explicit. Va dura pentru totdeauna să sape prin milioanele de creșteri de timp necesare pentru acest lucru pentru a calcula!, În schimb, setați un pas de timp „rezonabil” pentru analiza implicită (să zicem 100 de creșteri de timp egale pentru analiza dvs.). Sigur, fiecare dintre aceste incremente de timp implicite va calcula mult mai mult decât o singură creștere explicită. Dar nu mai mult de sute de mii dintre ei!
Utilizare explicit pentru „fast analiza”!
Acest lucru este evident, nu? Dacă ceea ce calculați se întâmplă în mica fracțiune de secundă explicită este prietenul tău., Într-o analiză implicită, creșterea timpului ar fi foarte mică… poate chiar la fel de mică ca creșterea în analiza explicită. Într-un astfel de caz, analiza explicită va rula mult mai rapid, deoarece nu necesită iterații „global equilibrium”. Analiza implicită necesită acele iterații (indiferent de pasul de timp!).
intermediară potrivită lucruri! desigur, există probleme care se întâmplă la mijloc (cum ar fi un impact cu viteza de 5m/s)., De obicei, puteți rezolva o astfel de problemă cu ambii rezolvatori, dar poate fi enervant.
sper că acest lucru vă ajută să selectați o abordare adecvată la problemele dinamice. Desigur, în cele din urmă, experiența este cel mai bun ghid! Dacă aveți îndoieli, executați câteva dintre problemele dvs. tipice atât implicite, cât și explicite. În acest fel, veți putea compara rezultatele (acestea ar trebui să fie la fel). Dar ceea ce este mai important, va fi capabil de a compara ori de calcul! Acest lucru vă va oferi o oportunitate de a verifica, ceea ce este o abordare mai bună pentru tine!,
cum ghicește explicit dimensiunea pasului de timp?
ei Bine, totul e frumos și frumoase până acum, dar cred că ar fi frumos pentru a aborda o problemă mare. Și asta este … dacă nu selectați etapa de timp în analiza dvs. explicită… atunci cine o face?
explicația matematică ar necesita o discuție despre frecvența naturală maximă. Acest lucru se datorează faptului că creșterea maximă a timpului „încă acceptabilă” este invers proporțională cu frecvența naturală maximă. Astfel de calcule se pot face, desigur., Rezultatele depind de plasa modelului (câte elemente există etc.). Dar nu vom merge acolo și există 2 motive pentru care: în primul rând, nu-mi place matematica (!). În al doilea rând, acest lucru nu este modul în care rezolvatorii o fac în cele din urmă, chiar dacă acesta este „modul corect”.
solverul poate calcula frecvența naturală maximă, desigur, dar acest lucru durează destul timp. Și din moment ce ar trebui să se facă în fiecare increment de timp explicit (pot exista o multime de cei!) … yikes!, Din fericire, există o modalitate de a estima frumos această valoare, analizând fiecare element finit din sistem separat! Interpretarea fizică a această estimare (utilizate în mod obișnuit în rezolvarea) este:
Maximă timp de creștere explicit în analiză:
increment de Timp în explicită de analiză este foarte scurt. Este timpul în care o undă elastică (adică unda de impact) poate călători printr-un singur element finit al modelului dvs. Desigur, acest lucru este verificat pentru toate elementele finite din modelul dvs. și este selectat cel mai mic timp.,
după Cum puteți vedea, există 2 componente explicit componentă de timp:
- Elastic val de viteză (aka viteza sunetului în material)! Acest lucru depinde numai de materialul pe care îl aveți în modelul dvs. (și este diferit pentru diferite materiale, desigur!). Veți avea nevoie de modulul tânăr E, densitatea materialului și rația Poisson (în probleme 2D și 3D). Este ușor să găsiți tabele care enumeră vitezele valurilor elastice în diverse materiale. Doar pentru referință în oțel, aceasta este în jur de 5200m/s (multe metale sunt în jur de 4500-5500m / s).,
- dimensiunea elementului (și calitatea)! Aveți viteza valurilor, dar nu este suficient! Pentru a cunoaște timpul necesar pentru a călători prin element, trebuie să cunoașteți elementul „lungime”. În timp ce acest lucru este foarte simplu în elementele 1D (au pur și simplu lungime) devine dificil în 2D și 3D. această lungime nu este „pur și simplu” cea mai scurtă dintre marginile elementului, deoarece elementele pot avea o geometrie destul de slabă. Există lucruri solver face pentru a calcula acest lucru. În 2D ar putea fi o zonă de element împărțită la lungimea maximă a marginii., În 3D poate însemna că volumul elementului este împărțit la zona laterală maximă. Acesta este motivul pentru care nu numai dimensiunea elementelor, ci și calitatea elementelor este atât de importantă în analiza explicită! La urma urmei… tot ce ai nevoie este un element sărac pentru a-ți răni cu adevărat timpul de calcul!
am citit undeva, că în timp ce cele de mai sus este „precis” soluția, rezolvarea folosesc adesea „factori de siguranță” pe asta. Dacă obțineți o creștere de timp mai mare decât valul elastic „limita de viteză” apar erori matematice. Deoarece sunt utilizate estimări, rezolvatorii reduc adesea pasul de timp”doar în caz”., De obicei, factorul de reducere este în jur de 0,9, dar acest lucru poate varia de la solver la solver, desigur.
scalarea în masă!
În final, vreau să menționez ceva rapid.
cel mai probabil ați observat, că etapa de timp în explicită depinde numai de plasă, modul tânăr, și densitatea. Reducerea modulului tânăr poate să nu fie ideală, desigur, și de multe ori aveți nevoie de o plasă mică pentru a analiza detaliile. Dar în problemele „dinamice scăzute” puteți încerca să măriți pasul explicit de timp prin creșterea densității materialului.,
aceasta se numește”scalare în masă”. Pachetele FEA oferă chiar și soluții în care densitatea este crescută doar în elementele care „decid” despre creșterea timpului. Aceasta înseamnă că, uneori, doar porțiuni mici din modelul dvs. devin mai grele! În unele analize, puteți „scăpa” odată cu creșterea masei modelului dvs. Dacă acesta este cazul, aceasta poate fi o soluție pentru dvs. Doar fiți conștienți că acest lucru schimbă modul în care se comportă modelul dvs.! Când sunt implicate accelerații mari, cel mai bine este să fii atent!
Sumar
Frumos!, Ai ajuns aici, mulțumesc că ai citit! Să încheiem acest lucru, astfel încât este mai ușor să vă amintiți!
- analiza dinamică implică timp! Când aplicați sarcini, acestea trebuie definite într-o funcție de timp. Adesea, aceasta este o relație liniară. Dar acest lucru nu se schimbă, că timpul în care se aplică sarcina joacă un rol semnificativ (mai ales dacă acest timp este scurt!).
- 2 arome de analiză dinamică! Puteți rezolva problemele dinamice „reale” cu algoritmi implicite și explicite. Ambele sunt bine, și nici unul dintre ele nu este „mai bun”., Dar ar trebui să spun că solver explicit este o parte din mai puține pachete FEA. Deoarece nu fiecare pachet FEA are chiar unul, solverul explicit este văzut ca un lucru „mai avansat”.
- solverul implicit este foarte bun dacă lucrurile din analiza dvs. se întâmplă relativ lent. Să presupunem că analiza este mai lungă decât 1s fără să se întâmple lucruri abrupte în acea perioadă. Avantajul este că puteți alege cât de mare este creșterea timpului pe care doriți. Chiar dacă creșterea unică durează mai mult pentru a calcula, există mult mai puține dintre ele!,
- solverul explicit este excelent pentru lucrurile care se întâmplă rapid (să spunem mai repede decât 0.1 s). Nu puteți alege incrementul de timp aici-solver îl va seta automat. În timp ce sunt de obicei super mici, cel puțin se calculează mult mai repede decât „cele implicite”. Solver Explicit calculează cât de mare ar trebui să fie incrementul de timp. Acest lucru depinde de viteza sunetului din materialul dvs., dimensiunea minimă a elementului finit (și calitatea elementului!). În unele cazuri, puteți schimba densitatea (chiar și automat numai în „elemente decisive”!) pentru a ajusta această creștere de timp., Acest lucru funcționează, deoarece viteza sunetului din materialul dvs. depinde de densitatea acestuia! Aceasta se numește „scalare în masă”.