Documente Academic
Documente Profesional
Documente Cultură
1. INTRODUCERE
Obiectul MEF este înlocuirea sistemului cu număr infinit de grade de libertate întâlnit
în aplicaţiile referitoare la continuum printr-un sistem finit care posedă aceeaşi bază într-o
analiză discretă.
Scopul este găsirea unei soluţii aproximative la o problemă cu condiţii la limită
bilocale sau cu parametri inţiali prin împărţirea domeniului sistemului în mai multe
subdomenii de dimensiuni finite, interconectate între ele, având dimensiuni şi forme diferite,
şi prin definirea variabilelor de stare necunoscute, printr-o combinaţie liniară de funcţii de
aproximare.
Subdomeniile se numesc elemente finite, totalitatea elementelor finite formează o
reţea (mesh) iar funcţiile de aproximare se numesc funcţii de interpolare. Impunând
compatibilitatea funcţiilor definite individual pe fiecare subdomeniu în anumite puncte numite
noduri, funcţia necunoscută este aproximată pe întregul domeniu.
Principala diferenţă între MEF şi alte metode aproximative pentru rezolvarea
problemelor cu condiţii la limită (diferenţe finite, reziduuri ponderate, Rayleigh-Ritz, Galerkin)
constă în faptul că în MEF aproximarea se face pe subdomenii relativ mici.
MEF este o versiune localizată a metodei Rayleigh-Ritz. În loc să se găsească o
funcţie admisibilă care să satisfacă condiţiile la limită pe întregul domeniu, ceea ce adesea
este dificil, dacă nu imposibil, în MEF funcţiile admisibile (numite funcţii de formă) se
definesc pe domeniul unor elemente cu geometrie simplă şi nu ţin cont de complicaţiile de la Page | 2
frontiere.
Deoarece întregul domeniu este divizat în mai multe elemente şi funcţia este
aproximată prin (în funcţie de) valorile ei la nodurile elementelor, evaluarea unei astfel de
funcţii necesită rezolvarea unor ecuaţii algebrice simultane. Acest lucru este posibil doar cu
ajutorul calculatoarelor. Dezvoltarea metodei elementelor finite s-a făcut în paralel cu cea a
calculatoarelor numerice de mare capacitate, ceea ce a condus la automatizare.
Calculatoarele sunt capabile nu numai să rezolve ecuaţiile de echilibru discretizate, ci şi să
ajute la formularea ecuaţiilor, prin decizii privind rafinarea reţelei de discretizare, şi la
asamblarea matricilor de rigiditate.
Cel mai important este că metoda elementelor finite poate fi aplicată unor sisteme cu
geometrie complexă şi distribuţii complicate ale parametrilor.
Larga utilizare a metodei clasice Rayleigh-Ritz a fost limitată de imposibilitatea
generării unor funcţii admisibile adecvate pentru un mare număr de probleme practice.
Într-adevăr, sistemele cu condiţii la limită complexe sau cu geometrie complicată nu
pot fi descrise adecvat prin funcţii admisibile globale, definite pe întregul domeniu, care tind
să aibă expresii complicate, dificil de utilizat în mod sistematic. În schimb, în MEF se
construieşte o soluţie aproximativă pe baza unor funcţii admisibile locale, definite pe
subdomenii mici ale structurii.
Pentru a descrie un contur neregulat sau o distribuţie neuniformă a unor parametri,
MEF poate modifica nu numai dimensiunea elementelor finite ci şi forma acestora. Această
versatilitate extremă, combinată cu dezvoltarea unor programe de calculator performante
bazate pe această metodă, unele distribuite gratuit ca sursă deschisă (open source), ca
Z88Aurora, au făcut ca MEF să fie adoptată ca metoda preferată pentru analiza structurilor.
În MEF, ecuaţiile de echilibru se obţin din principii variaţionale care implică
staţionaritatea funcţionalei de energia potenţială totală definite. În timp ce rezolvarea
ecuaţiilor diferenţiale cu condiţii la limită complicate este dificilă, integrarea, chiar
aproximativă, a unor funcţii polinomiale este mai facilă. Din punct de vedere matematic, a
rezolva sistemul A x = b este echivalent cu a minimiza P (x)=1/2 xT A x - xT b.
1.2 Istoric
Ideea reprezentării unui domeniu dat prin elemente discrete a apărut înaintea
metodei elementelor finite. În antichitate, matematicienii au estimat valoarea numărului pi
aproximând circumferinţa unui cerc prin perimetrul unui poligon regulat înscris în cerc.
Recent, ideea a găsit aplicaţii în analiza structurii avioanelor, unde aripile şi fuselajele sunt
tratate ca ansambluri de longeroane, lise, panouri, nervuri şi elemente de rigidizare.
Aproximarea unei funcţii necunoscute printr-o funcţie continuă definită diferit pe
subdomenii a fost utilizată încă din 1943 de Courant în studiul problemei torsiunii (Saint-
Venant), împărţind secţiunea unei bare în elemente triunghiulare mici şi folosind principiul
minimului energiei potenţiale totale. Motivul pentru care articolul lui Courant nu a atras
atenţia poate fi atribuit apariţiei acestuia într-un moment nepotrivit. La începutul anilor 1940
nu existau calculatoare capabile să rezolve sisteme mari de ecuaţii, astfel că metoda a
apărut a fi nepractică. Page | 3
Baza teoretică a MEF o reprezintă metodele energetice din Mecanica structurilor şi
metodele aproximative de calcul. Primele teoreme energetice au fost formulate de Maxwell
(1864) şi Castigliano (1875). Metodele aproximative au fost dezvoltate de Rayleigh (1877),
Ritz (1908) şi Galerkin (1915). Prima carte despre metoda deformaţiilor a fost publicată de
Ostenfeld (1926).
După cel de-al doilea război mondial, Metoda forţelor (metoda flexibilităţii) a fost
promovată de Levy (1947) şi Garvey (1951), iar Metoda matricială a deplasărilor (metoda
rigidităţii) a fost utilizată de Levy (1953) în analiza aripii săgeată a avioanelor. Turner a
formulat şi perfecţionat Metoda directă a rigidităţii la Boeing (1959). Dezvoltarea Metodei
forţelor a încetat în 1969.
Dezvoltarea aripilor delta ale avioanelor a revigorat interesul pentru metoda
rigidităţilor. Modelarea acestora necesită elemente de panou bidimensionale cu geometrie
arbitrară. După o primă încercare făcută de Levy (1953) cu elemente triunghiulare, într-o
serie de articole publicate de Argyris în patru numere ale revistei Aircraft Engineering (1954,
1955), colectate apoi într-o carte de Argyris şi Kelsey (1960), se prezintă dezvoltarea matricii
de rigiditate a unui panou dreptunghiular plan utilizând funcţii de interpolare biliniare ale
deplasărilor. S-a constatat însă că elementele dreptunghiulare nu sunt adecvate pentru
modelarea aripilor delta.
Prezentarea formală a metodei elementelor finite este atribuită lui Turner, Clough,
Martin şi Topp (1956), care în perioada 1952-1953 au reuşit să calculeze direct rigiditatea
unui panou triunghiular la Boeing. Termenul “element finit” a fost utilizat pentru prima dată
de Clough (1960).
Prima carte dedicată MEF a fost scrisă de Zienkiewicz şi Cheung (1967), urmată de
cărţile lui Przemieniecki (1968) şi Gallagher (1973). Articole importante au fost publicate de
Fraeijs de Veubeke (1964), Argyris (1965), Irons şi colaboratorii (1964, 1966, 1970).
Cercetări în domeniu s-au făcut cu deosebire la Civil Engineering Department,
Berkeley, conduse de Clough, la Washington University, conduse de Martin, şi la Swansea
University, sub conducerea lui Zienkiewicz. Începând din 1963, programele de calculator
bazate pe metoda elementelor finite au fost răspândite gratuit în afara comunităţii
aerospaţiale.
Contribuţii majore au adus:
• B. M. Irons, care a inventat elementele izoparametrice, funcţiile de formă, algoritmii
de rezolvare frontală a ecuaţiilor liniare şi testul “petecului” (1964-1980),
• R. J. Melosh, care a sistematizat calculul pe baze variaţionale al matricilor de
rigiditate şi a recunoscut că MEF este o metodă Rayleigh-Ritz aplicată pe elemente
de mici dimensiuni (1963),
• J. S. Archer, care a introdus conceptul de matrice de masă coerentă (1963)
• E. L. Wilson, care a studiat metode de asamblare a matricilor rare şi de rezolvare a
sistemelor liniare aferente (1963), a dezvoltat algoritmul de condensare statică
(1974) precum şi trei programe de calculator SAP (prima sursă gratuită de
software în MEF). Mai târziu i s-a alăturat K.-J. Bathe împreună cu care a dezvoltat
programele SAP4 (1973), SAP5 şi NONSAP.
• Începând din 1965 sistemul de analiză cu elemente finite NASTRAN a fost dezvoltat
de COSMIC, MacNeal Schwendler, Martin Baltimore şi Bell Aero Systems sub
contract cu NASA, completat în 1968 şi revizuit prima dată în 1972. Page | 4
Alte programe cu elemente finite sunt ANSYS, dezvoltat de Swanson Analysis
Systems (1970), STRUDL - de Civil Engineering Department la Massachusetts Institute of
Technology şi McDonnell Douglas Automation Company (1967), STARDYNE – de
Mechanics Research Inc, ADINA – dezvoltat de K.-J. Bathe la M.I.T. (1975), SESAM – de
către Det Norske Veritas, NISA – de Engineering Mechanics Research Corporation, MARC
– de Marc Analysis Research Corporation, ABAQUS – de Hibbitt, Karlsson & Sorensen, Inc.
(1978), COSMOS-M – de Structural Research & Analysis Corp. (1985), SAMCEF – de
SAMTECH (1965), IDEAS-MS, PATRAN, ALGOR etc.
Programele de uz general permit analize dinamice, incluzând calculul frecvenţelor
proprii, analiza răspunsului liniar şi neliniar, răspunsul la şoc, calculul stabilităţii statice şi
dinamice, precum şi calculul la solicitări termice.
După 1967, MEF a fost aplicată cu succes la rezolvarea problemelor de mecanica
fluidelor, câmpuri electromagnetice şi transfer de căldură.
Figura 1. Problema lui Arhimede (anul 250 î.e.n) tratată prin MEF.
Problemele care se pot rezolva cu ajutorul metodei elementelor finite se pot clasifica
în trei categorii:
a) probleme de echilibru, caz în care funcţiile necunoscute nu depind de timp. Acest
tip de probleme apare la determinarea comportării elastice, a corpurilor solid deformabile, în
regim static;
b) probleme de valori proprii, în care parametrii sunt independenţi de timp,
determinându-se anumite valori critice ale acestor parametri. Problemele de valori proprii
apar la determinarea forţelor critice de pierdere a stabilităţii unei structuri sau în problemele
de analiză modală a structurilor, când se determină frecvenţele proprii şi modurile proprii
asociate acestor frecvenţe;
c) probleme de propagare, sau probleme în care funcţiile necunoscute sunt
dependente de timp. Astfel de probleme apar la studiul răspunsului dinamic al unei structuri.
Page | 6
Figura 4. Reţeaua iniţială şi forma deformată a unui turn de răcire sub acţiunea vântului
Partea stângă a Figurii 5 prezintă reţeaua iniţială bidimensională pentru analiza unui
dinte de roată dinţată, constând din 1174 elemente triunghiulare cu 6 noduri. Partea
dreaptă arată reţeaua optimizată obţinută cu postprocesorul ESTEREF, constând din
numai 814 elemente şi care a condus la o eroare de discretizare globală de patru ori
mai mică.
1.7 Rezumat
Page | 9
Posibilități de alegere a structurii reale
Page | 10
2. NOŢIUNI DE REZISTENŢA MATERIALELOR
Grade de libertate sunt colectate într-un vector {d}, numit Vectorul DOF sau vectorul
de stare. În cazul sistemelor mecanice vectorul {d} este cunoscut sub numele de vectorul
deplasărilor nodale.
În Mecanica analitică, fiecărui grad de libertate îi corespunde o forţă generalizată.
Aceste forţe sunt colectate într-un vector numit vectorul forţelor nodale. Legătura dintre cei
doi vectori, grad de libertate şi al forţelor nodale este de natură liniară şi este cunoscută sub
numele universal de matrice de rigiditate:
K {d} = {F}.
In mecanica mediului continuu și structuri, vectorul {d} reprezintă deplasări, iar
vectorul {F} reprezintă forțe mecanice. Numele generic matrice de rigiditate se regăseşte
atât în problemele de modelare a comportării sistemelor mecanice cât şi nemecanice.
Clasificarea elementelor finite implicate într-o analiză structurală, este în strânsă
legătură cu funcţiunile pe care acestea le îndeplinesc în cadrul structurilor pe care le
modelează. Page | 7
A. Elemente structurale primitive – sunt elemente structurale de bază întâlnite în alcătuirea
structurilor de rezistenţă. Figura 7 arată corespondența dintre elementul structural,
modelul matematic și modelul discret cu elemente finite.
B. Elemente finite de mediu continuu, rezultate prin divizarea mediului continuu în ele-
mente cu geometrie simplă. Ele sunt mai bine înţelese prin raportarea la modelul
matematic pe care îl discretizează, anume plăci, diafragme, membrane, cupole etc.
(Figura 8).
C. Elemente finite speciale–sunt derivate din elementele finite de mediu continuu şi includ
caracteristici necesare modelării unor fenomene speciale: fisuri, mediu infinit, contact etc
(Figura 9).
D. Macroelemente – sunt obţinute prin asamblarea unor elemente finite cu funcţiuni
specifice, cu scopul de a obţine module structurale specializate utilizate la modelarea
structurilor complexe cu caracteristici repetative (Figura 10).
E. Substructuri – sunt unităţi structurale cu funcţiuni bine definite, obţinute prin ansamblarea
unor elemente finite specializate. Distincţia dintre macroelemente şi substructuri nu este
prea evidentă (Figura 11). Page | 8
Page | 9
Page | 10
în care Ni(x, y, z) sunt funcții de aproximare alese convenabil, iar ai sunt parametri
independenți.
În acest caz, funcționala E depinde numai de parametrii ai, iar condiția la
frontieră ia forma
Din sistemul (7) se pot calcula parametrii ai , deci se determină soluția problemei.
Acest procedeu de găsire a soluției este cunoscut sub denumirea de metoda Rayleigh-Ritz.
Dacă funcționala este cuadratică, adică funcțiile F și G de sub semnul integralei (3)
se exprimă sub formă de polinoame în u și derivate ale lui u până la ordinul 2, sistemul (7)
capătă forma unui sistem de ecuații algebrice liniare,
𝜕𝐸
= [𝐾]{𝑎} + {𝑅} = 0 (8)
𝜕𝑎
care are matricea coeficienților [K] simetrică.
În forma Rayleigh-Ritz funcțiile de aproximare Ni(x,y,z) se definesc și sunt continue
pe întregul domeniu, existând marele inconvenient privind găsirea unor funcții adecvate,
care să conducă la o soluție acceptabilă a problemei.
Metoda elementelor finite pornește tot de la formularea variațională a problemei.
Pentru a depăși inconvenientul legat de definirea funcțiilor de aproximare, domeniul de
studiu este divizat în mai multe subdomenii, denumite elemente finite. Conectarea acestora
se realizează printr-un număr finit de puncte pe granița elementelor.
Funcționala E, cu expresia integrală (3), se scrie ca o sumă de integrale pe domeniile
elementelor finite.
unde De este domeniul unui element, Γ𝑒 este frontiera
elementului, care coincide cu frontiera domeniului.
Ca urmare, funcțiile de aproximare Ni(x,y,z) se definesc
Page | 11
și au anumite proprietăți de continuitate numai pe
domeniul unui element, având de această dată forme
simple.
Parametrii independenți ai se aleg ca fiind valorile nodale ui. Funcționala se exprimă
la nivelul elementului în funcție de valorile nodale corespunzătoare nodurilor elementului, iar
prin sumarea (9) se obține funcționala E în funcție de valorile nodale din întregil domeniu.
În cazul funcționalelor cuadratice, cum sunt cele care intervin în problemele de
calculul structurilor, funcționala se poate pune sub forma simplă
E = 1/2{u}T[K] {u} + {u}T{R} (10)
care prin minimizare conduce la relația matriceală (8).
Definirea funcționalei ca o sumă a contribuțiilor elementelor conduce la exprimarea
în care [k] este matricea characteristică a unui element, iar [r] este vectorul asociat.
În relația (10), {u} semnifică vectorul valorilor nodale din întreg domeniul, iar în (11),
{u} semnifică vectorul valorilor din nodurile unui element.
Condiția de staționaritate se exprimă la fel ca și înainte, prin relațiile (7), rezultând și
de data aceasta un sistem de ecuații algebrice liniare
În Figura 12a sunt reprezentate grafic funcțiile de formă în cazul unui element finit cu
două noduri. Funcțiile de formă au proprietățile:
Exemplul 1. Fie nodurile
Page | 14
Figura 12. (a) Funcțiile de formă în cazul unui element finit cu două noduri
(b) Funcția de interpolare f(ξ) asociată
Figura 13. (a) Funcțiile de formă în cazul unui element finit cu trei noduri
(b) Funcția de interpolare f(ξ) asociată
unde i () sunt funcțiile de interpolare Lagrange de grad (r −1), iar xi punctele de bază sau
nodurile elementului.
Diferențiând relația (16) se obține
Page | 16
După cum rezultă din exemplele prezentate anteior, se deduce soluția û(x) cu
ajutorul funcțiilor de interpolare prin nodurile elementului Φi = Φi (x) având gradul (r-1), unde
r reprezintă numărul gradelor de libertate corespunzătoare numărului de noduri ale
elementului
Volumul elementar dv al unei structuri spațiale acumuleaza energia potentială de deformare dată
de relația
utilizează relația
Teorema energiei potențiale minime se poate enunța astfel: dintre toate câmpurile
deplasărilor geometric admisibile ale unei structuri stabile care respectă conditiile limită,
numai cele pentru care energia potentială are o valoare stationară (minimă) corespund
poziției de echilibru.
Pentru întreaga structură, energia potentială sau potentialul este suma potențialelor
elementelor finite. În cazul unei structuri divizate în n elemente finite
METODE NUMERICE PENTRU INTERPOLAREA FUNCȚIILOR
Fie f:[a, b] R o funcţie. Se pune problema determinării unei funcţii F care să aproximeze
funcţia f. O astfel de aproximaţie este necesară în următoarele situaţii:
Când nu se cunoaşte expresia analitică a lui f, ci doar valorile sale într- un număr finit de puncte
x0, x1, …, xn din intervalul [a, b].
Când expresia analitică a lui f este prea complicată şi calculele efectuate cu ajutorul acesteia ar fi
prea dificile.
F trebuie să fie o funcţie simplă, uşor de evaluat, de diferenţiat şi de integrat. În cele ce
urmează F va fi un polinom.
Definiţie. Fie x0, x1, …, xn (n+1) puncte distincte două câte două din intervalul [a, b] (numite
noduri), şi fie yi = f(xi) pentru orice i = 0,1,…n. Se numeşte polinom de interpolare asociat
nodurilor x0, x1, …, xn şi valorilor y0 = f(x0), y1 = f(x1), …, yn= f(xn) un polinom Pn care îndeplineşte
condiţiile:
grad(Pn) ≤ n și Pn(xi) = yi, i = 0, 1, …, n.
Polinomul determinat de condiţiile anterioare există şi este unic. Într-adevăr, deoarece
grad(Pn) ≤ n, există an, an-1, ...a0 R astfel încât
Pn(X) = anXn + an-1Xn-1 + … + a1X + a0.
Relaţiile Pn(xi) = yi, i = 0, 1, …, n conduc la sistemul:
Definiție. Fie f:[a, b] R o funcţie, x0, x1, …, xn (n+1) puncte distincte două câte două din
intervalul [a, b] (noduri), şi fie yi = f(xi) pentru orice i = 0,1,…n. Se numesc polinoame de
interpolare Lagrange cele (n+1) polinoame li, i = 0, 1, … , n cu proprietățile
Deoarece li are gradul n și admite drept rădăcini pe x0, x1, ..., xi-1, x i+1, ..., xn, rezultă că
li(X) = Ai(X – x0) (X – x1) …(X – xi-1) (X – xi+1) ... (X – xn).
Cum li(xi) = 1, rezultă
Aplicație
Sa se determine polinomul de interpolare Lagrange pentru functia care trece prin punctele A-
1,1)
4. MODELAREA SISTEMELOR MECANICE CU RESORTURI
4.1. Introducere
F = k𝜹,
unde, conform Figurii 0a de mai jos, F este forța aplicată care generează o extensie δ , în
cadrul unui arc cu rigiditatea k.
Din perspectiva analizelor statice, Figura 0b reprezintă diagrama deplasării arcului
extins cu forța de reacție FR.
Figura 0. (a) Un arc liniar încărcat cu forța F la capătul liber și (b) diagrama deplasării
arcului
Pentru un singur arc, legea lui Hooke este suficientă pentru a estima deplasarea
capătului liber. Cu toate acestea, în cazul unui sistem de arcuri interconectate, obţinerea
distribuţiei deplasărilor şi a forţelor de reacţie dezvoltate în cadrul sistemului într-o versiune
în formă închisă nu este atât de simplă. În în acest caz, soluțiile numerice bazate pe FEM
pot fi utilizate în acest scop.
Dezvoltarea elementului arc necesită diferite determinări în asemenea situatii.
Procedural, se pot formula expresiile pentru elementul arc bazându-se pe Figura 0, care Page | 2
prezintă un arc liniar izolat (care poate face inițial parte dintr-un sistem de arcuri) cu nodurile
i și j.
Dacă deplasările nodale (u1 și u2) și forțele nodale (f1 și f2) ale elementului arc liniar
sunt așa sunt simbolizate în Figura 3.2, atunci ecuațiile de echilibru pentru forțele nodale pot
fi scrise ca:
f1 = −f2 = k (u1 − u2 )
Fie forta Fjb, astfel încât să producă deplasarea nodului j egală cu uj . Rezultă relațiile Page | 3
Fib +Fjb = 0 ⇔ Fib = −Fjb, (7)
Fjb = k uj, (8)
Fib = − kuj. (9)
Cazul c. Se suprapun cele două cazuri precedente, astfel încât să se obțină situația
caracterizată prin forțele Fi ,Fj și deplasările ui ,uj (Figura 2c.).
și care reprezintă relația forțe-deplasări nodale. Aceasta se poate scrie sub forma
Pentru elemente mai avansate, vom deriva ecuațiile lor matriceale prin metoda mai
puternică, bazată pe principiului energiei potențiale minime. Acesta afirmă că
Pentru sistemele conservative, dintre toate câmpurile admisibile ale
deplasărilor cinematice, cele corespunzătoare echilibrului extremizează energia
potențială totală.
Există două ingrediente principale pentru utilizarea acestui principiu. Prima este
identificarea energiei potențiale totale Πsp , care matematic este dată de:
Πsp =U −W Page | 4
unde U este energia de deformare care se dezvoltă din deformarea sistemului, iar W este
lucrul mecanic efectuat de forțele externe (W).
Al doilea este minimizarea expresiei energiei potenţiale totale în raport cu
deformarea
Faza precomputationala
• Discretizarea sistemului in elemente finite individuale.
• Etichetarea nodurilor si elementelor. Etichetarea nodurilor și elementelor, fără a avea
două elemente același set de etichete nodale
Faza computationala
1. Identificați proprietățile elementelor și scrieți matricea elementelor finite pentru fiecare
folosind (11)
2. Determinaţi gradul global de libertate al sistemului de arce şi extindeți ecuația matriceală
pentru fiecare element (de la pasul 1) pentru a se conforma la marimea gradului global de
libertate.
3. Stabiliți ecuația matriceală globală din ansamblul matricilor expandate ale elementelor.
4. Identificați condiția (condițiile) esențiale la limită și aplicați condițiile la limita la ecuația
matriceală globală pentru a obține ecuatia matriceala redusă
A. Obțineti vectorul redus al fortelor.
B. Utilizați condiția la limită identificată pentru a obține valoarea matricea de rigiditate redusă
5. Determinați deplasările nodale necunoscute folosind ecuația matriceală redusa.
6. Obţineţi forţele elementului nodal folosind deplasarea nodala.
7. Obțineți forțele globale necunoscute
Aplicatie:
Se consideră un sistem mecanic simplu, format din resorturi coliniare, care se află Page | 5
sub influența unor forțe exterioare acționând pe direcția sistemului de resorturi. Utilizând
metoda elementelor finite, ne propunem să determinăm distribuția deplasărilor în sistemul de
resorturi și reacțiunile în pereți. Pentru exemplificarea acestei probleme se consideră că
sistemul este format din patru resorturi, de caracteristici ki , i = 1, ..., 4, și este sub acțiunea
forțelor externe F2 = P, F3 = Q și F4 = R (Figura 1a).
Elementul 2
Page | 6
adică
iar det(k) = 0 .
Condițiile la limită u1 = 0, u5 = 0 se implementează sub forma
Page | 7
Din acest sistem matriceal se determiă deplasarile u2, u3, u4 și valorile banale u1 = 0,
u5 = 0. Valorile u2, u3 și u4 s-ar putea determina considerând, în locul acestui sistem
matriceal, doar ecuațiile 2, 3 si 4 din sistemul algebric corespunzător.
Prin înlocuirea valorilor cunoscute u1 = 0, u5 = 0 și a forțelor P, Q si R cunoscute în
ecuația matriceală (13)
(16)
de unde se determină forțele F1 și F5 din reazemele sistemului. Aceste două forțe se pot
determina din sistemul algebric format din prima și a cincea ecuație a sistemului
corespunzător.
Caz particular. Să se simuleze un sistem de 4 resorturi în care se cunosc k1 = 1, k2
= 2, k3= 3, k4 = 4, P = 10, Q = −20 și R = 30.
Rezolvare numerica în MathCAD
ORIGIN =1
Datele inițiale:
k1 := 1 k2 := 2 k3 := 3 k4 := 4 P := 10 Q := -20 R := 30
Matricea proprietăților caracteristice este
Page | 8
Figura 5.1. Bare elastice drepte: (a) stare neîncărcată, (b) bare neîncărcate segmentate, (c)
încărcate segmentate, (d) un element izolat al barei.
Din equation 5.1, energia totală de deformare de-a lungul întregului element poate fi
obținută prin integrare
Pentru bare isotrope elastice încărcate axial, există o stare de stress uniaxial și are
loc relația:
Page | 2
unde A este aria secțiunii transversale, E este modulul de elasticitate (Young), x - este
deformația specifică, x - este efortul unitar.
Pe baza ecuației 5.3, ecuația 5.2 devine:
Lucrul mecanic (W) efectuat de forțele nodale f1x și f2x este dat de relația:
Ecuația 5.12 este similară cu ecuația matricei elementelor finite prezentată pentru
elementul arc, cu diferența fiind că matricea de rigiditate ke al elementului barei se
caracterizează prin termenul EA/L, care descrie rigiditatea axială a unei bare elastice.
unde f1x, f2x, f3x caracterizează forțele nodale, u1x, u2x, u3x sunt cle trei deplasări nodale care
însoțesc forțele nodale.
5.3 Implementare
Tabelele 5.1 și 5.2 descriu fiecare dintre funcțiile listate împreună cu parametrii pe
care aceste funcții îi acceptă.
Page | 7
5.4. EXEMPLE
5.4.1. Un ansamblu de bare este încărcat cum se arată în Figura 5.4. Să se stabilească
matricea globală de rigiditate și să se determine deplasările nodale necunoscute, știind că E
= 201×109N/m2, A = 1×10−4m2 și L = 1m.
k1=Bar_Element_Matrix(2,Axialstiffness1);k1
k2=Bar_Element_Matrix(2,Axialstiffness2);k2
k3=Bar_Element_Matrix(2,Axialstiffness3);k3
Pas 2. Se determină gradul global de libertate al ansamblului și matricea extinsă
pentru fiecare element de la Pasul 1. Bara cu două noduri are un grad de libertate pe nod.
Datorită faptului că există patru noduri pentru system, gradul total de libertate va fi 4.
Variabila Total_dof conține această valoare, care este unul dintre parametrii funcției
Bar_ExpandedElement_Matrix().
Page | 8
n_nodes=4;Total_dof=n_nodes*1;
K1=Bar_ExpandedElement_Matrix(Total_dof,k1,1,2);K1
K2=Bar_ExpandedElement_Matrix(Total_dof,k2,2,3);K2
K3=Bar_ExpandedElement_Matrix(Total_dof,k3,3,4);K3
Considerând ecuația (4.18), vectorul redus al forțelor poate fi stabilit folosind funcția
Bar_Element_ReducedForceVector().
vec_values_of_knownloads=c(0,10000)
ReducedForceVector=Bar_Element_ReducedForceVector(vec_values_of_knownloads);
ReducedForceVector
vec_rows_of_knownloads=c(2,3)
ReducedK=Bar_Element_ReducedStiffnessMatrix(GlobalK,vec_rows_of_knownloads);
ReducedK
UnknwonNodalDisp=Bar_Element_NodalDisplacement(ReducedK,ReducedForceVector);
UnknwonNodalDisp
5.4.2. Un ansamblu de bare cu patru elemente este încărcat așa cum se arată în
Figura 5.5 [7]. Dat E = 201 GPa și A = 3 × 10−4m2:
• Stabiliți matricea globală de rigiditate.
• Determinați deplasările nodale necunoscute.
• Determinați forțelele de reacțiune.
Page | 9
Axialstiffness=(210*(10^9)*(3*10^(-4)))/3;Axialstiffness
k1=Bar_Element_Matrix(2,Axialstiffness);k1
k2=Bar_Element_Matrix(2,Axialstiffness);k2
k3=Bar_Element_Matrix(2,Axialstiffness);k3
k4=Bar_Element_Matrix(2,Axialstiffness);k4
n_nodes=5;Total_dof=n_nodes*1;
K1=Bar_ExpandedElement_Matrix(Total_dof,k1,1,2);K1
K2=Bar_ExpandedElement_Matrix(Total_dof,k2,2,3);K2
K3=Bar_ExpandedElement_Matrix(Total_dof,k3,2,4);K3
K4=Bar_ExpandedElement_Matrix(Total_dof,k4,2,5);K4
vec_rows_of_knownloads=c(2);
ReducedK=Bar_Element_ReducedStiffnessMatrix(GlobalK,vec_rows_of_knownloads);
ReducedK
vec_values_of_knownloads=c(30000)
ReducedForceVector=Bar_Element_ReducedForceVector(vec_values_of_knownloads);
ReducedForceVector
UnknwonNodalDisp=Bar_Element_NodalDisplacement(ReducedK,ReducedForceVector);
UnknwonNodalDisp
globalforces=Bar_Global_Forces(GlobalK,allglobalNodalDisp);
globalforces
5.4.3. Structura de bare din Figura 5.6 arată un sistem longitudinal conectat cu cinci
noduri. Dacă bara are modulul lui Young E = 210 GPa și o arie a secțiunii A = 3 × 10−3m2,
folosiți cunoștințele legate de elementul de bară cu trei noduri pentru a stabili
• Matricea globală de rigiditate.
• Deplasările nodale necunoscute.
• Forțele nodale globale.
Axialstiffness=(0.003*210*10^9)/2;Axialstiffness
k1=QuadraticBar_Element_Matrix(3,Axialstiffness);k1
k2=QuadraticBar_Element_Matrix(3,Axialstiffness);k2
vec_rows_of_knownloads=c(2,3,4,5)
vec_values_of_knownloads=c(5000,-10000,-7000,10000)
ReducedK=QuadraticBar_Element_ReducedStiffnessMatrix(GlobalK,vec_rows_of_knownlo
ads); ReducedK
ReducedForceVector=QuadraticBar_Element_ReducedForceVector(vec_values_of_knownl
oads); ReducedForceVector
Pasul 5: Se determină deplasările nodale necunoscute. Din cele de mai sus rezultă
că deplasările nodale pot fi scrise compact ca:
UnknwonNodalDisp=QuadraticBar_Element_NodalDisplacement(ReducedK,ReducedForce
Vector);
UnknwonNodalDisp
Pasul 6: Folosind deplasările nodale găsite, vor rezulta forțele nodale globale.
allglobalNodalDisp=matrix(rep(0,Total_dof),byrow=T); Page | 12
allglobalNodalDisp[vec_rows_of_knownloads]=UnknwonNodalDisp
allglobalNodalDisp
globalforces=QuadraticBar_Global_Forces(GlobalK,allglobalNodalDisp);globalforces
5.5 Exerciții
1. Un ansamblu este format din bare conectate din cupru, cu E=101 GPa, ca în
Figura 5.7. Fiecare element al ansamblului are diametrul D = 30 mm și lingimea arătată în
figură.
a. Să se construiască matricea globală de rigiditate a sistemului.
b. Să se determine deplasarea nodului 3 (care suportă o forță totală de 100 kN).
c. Să se determine forțele de reacțiune în nodurile 1, 2, și 4.
Figura 6.1. (a) Sistemul local (x, y) și global (X,Y) de coordinate pentru elemental truss doi-
dimensional și (b) Elementul truss the nedeformat și deformat
sau
unde [H] este matricea coordonatelor, iar {A} este vectorul coeficienților necunoscuți.
Folosind ecuația (6.5), se poate scrie:
unde
unde funcțiile de formă [N] în coordonate locale pot fi extrase din ecuația (6.15) ca:
Având in vedere ecuația (6.1), se poate evalua ecuația (6.18), care dă:
Din ecuația (6.14), se știe forma lui A2, și atunci se poate rescrie (6.19) ca:
unde [D] se numește matricea proprietăților materialului. Pentru încărcare uniaxială a unei Page | 4
bare isotropice omogene, [D] = E (modulul lui Young). Atunci:
După cum s-a arătat în capitolul precedent (secțiunea 5.2), dacă se consideră o
porțiune mică de element, de lungime dx, se poate scrie energia deformare (U) și lucrul
mecanic efectuat de forțele externe (W):
Din definiția lui [B] - ecuația (6.21) - se obține matricea de rigiditate [ke ] a elementului:
6.2 Ecuațiile elementului finit pentru elemente spațiale de bare
articulate
Când o bară este orientată în mod arbitrar în spațiul tridimensional, este implicată ecuația
matriceală a elementului finit. Pentru deducerea aceastei ecuații pentru bara în spațiu, vom
pleca de la relațiile care descriu transformarea deplasărilor nodale locale în sistemul global
de coordonate. Aceasta este [5]:
unde ecuațiile (6.35) și (6.36) implică cosinurile unghiurile θX, θY, θZ și componentele
deplasărilor globale uX, uY, și uZ. Equațiile (6.35) și (6.36) se rescriu în formă matriceală ca:
Folosind noua ecuație a lui {ue }, din ecuația (6.6.), A=[H]-1{ue }, duce la:
sau
Ca urmare,
unde
PlaneTruss_LengthOrientation = function(vec_nodalcoordinates)
{
ysquared=(vec_nodalcoordinates[4]-vec_nodalcoordinates[2])^2
xsquared=(vec_nodalcoordinates[3]-vec_nodalcoordinates[1])^2
length_of_element=sqrt(ysquared+xsquared)
ydiff=(vec_nodalcoordinates[4]-vec_nodalcoordinates[2])
xdiff=(vec_nodalcoordinates[3]-vec_nodalcoordinates[1])
orientation_of_element=(180/pi)*atan(ydiff/xdiff)
return(round(c(length_of_element,orientation_of_element),3))
}
PlaneTruss_GeometricLengths =
function(num_ele,vec_xnodalcoordinates,vec_ynodalcoordinates)
{
length_of_nodalcoordinates=length(vec_xnodalcoordinates)
numberofelement=length_of_nodalcoordinates/2
length_of_element=vector(mode="numeric",length=numberofelement)
counter=1;
for (j in seq(1,length_of_nodalcoordinates-1,by=2))
{
ysquared=(vec_ynodalcoordinates[j+1]-vec_ynodalcoordinates[j])^2
xsquared=(vec_xnodalcoordinates[j+1]-vec_xnodalcoordinates[j])^2
length_of_element[counter]=sqrt(ysquared+xsquared)
counter=counter+1
} Page | 9
return(round(length_of_element))
}
PlaneTruss_Orientations=function(num_ele,vec_xnodalcoordinates,vec_ynodalcoordinates
)
{
length_of_nodalcoordinates=length(vec_xnodalcoordinates)
numberofelement=length_of_nodalcoordinates/2
orientation_of_element=vector(mode="numeric",length=numberofelement)
counter=1
for (j in seq(1,length_of_nodalcoordinates-1,by=2))
{
ydiff=(vec_ynodalcoordinates[j+1]-vec_ynodalcoordinates[j])
xdiff=(vec_xnodalcoordinates[j+1]-vec_xnodalcoordinates[j])
orientation_of_element[counter]=(180/pi)*atan(ydiff/xdiff)
counter=counter+1
}
return(round(orientation_of_element,0))
}
PlaneTruss_Element_Matrix = function(DOF = 4,stifftruss,theta)
{
m=cos(theta*pi/180);
n=sin(theta*pi/180);
stiffnesscoefficients=c(m^2,m*n,-m^2,-m*n,m*n,n^2,-m*n,-n^2,-m^2,-m*n,m^2,m*n,-m*n,-
n^2,m*n,n^2)
ematrix=stifftruss*matrix(stiffnesscoefficients,nrow=DOF,byrow=T)
}
PlaneTruss_ExpandedElement_Matrix = function(TDOF,eMatrix,i,j)
{
r1=(i-1)+i;r2=(i-1)+(i+1);r3=(j-2)+(j+1);r4=(j-2)+(j+2);
bigMatrix=matrix(vector(l=TDOF*TDOF),nrow=TDOF,byrow=T);
bigMatrix[c(r1,r2,r3,r4),c(r1,r2,r3,r4)]=eMatrix;
return (bigMatrix)
}
PlaneTruss_ReducedStiffnessMatrix = function(bigKmatrix,knownforcenodes)
{
reducedstiffnessmatrix = bigKmatrix[c(knownforcenodes),(knownforcenodes)]
return(reducedstiffnessmatrix)
}
PlaneTruss_ReducedForceVector = function(forcevector)
{
reducedforcevector = matrix(forcevector,ncol = 1)
return(reducedforcevector)
}
PlaneTruss_NodalDisplacement = function(reducedmatrix,vec_reducedforce)
{ Page | 10
return(solve(reducedmatrix,vec_reducedforce))
}
PlaneTruss_Global_Forces = function(bigKmatrix,vec_globalnodaldisp)
{
global_forces = bigKmatrix %*% vec_globalnodaldisp
return(round(global_forces))
}
PlaneTruss_Local_Forces = function(stifftruss,theta,vec_globalnodaldisp,i,j)
{
m=cos(theta*pi/180);
n=sin(theta*pi/180);
r1=(i-1)+i;r2=(i-1)+(i+1);r3=(j-2)+(j+1);r4=(j-2)+(j+2);
elementdisp=vec_globalnodaldisp[c(r1,r2,r3,r4)];
localstiffnessmatrix=matrix(c(1,-1,-1,1), byrow=T,nrow=2);
transformationmatrix=matrix(c(m,n,0,0,0,0,m,n),byrow=T,nrow=2);
local_forces = (stifftruss)*localstiffnessmatrix%*%transformationmatrix%*%elementdisp
return(round(local_forces))
}
PlaneTruss_AxialStress = function(YoungMod,elem_len,theta,vec_globalnodaldisp,i,j)
{
m=cos(theta*pi/180);
n=sin(theta*pi/180);
r1=(i-1)+i;r2=(i-1)+(i+1);r3=(j-2)+(j+1);r4=(j-2)+(j+2);
elementdisp=vec_globalnodaldisp[c(r1,r2,r3,r4)];
transformationmatrix=matrix(c(-m,-n,m,n),nrow=1,byrow=T);
local_stress=(YoungMod/elem_len)*transformationmatrix%*%elementdisp;
return(local_stress)
}
eMatrix[1:3,1:3]=submatrix;
eMatrix[4:6,1:3]=-submatrix;
eMatrix[1:3,4:6]=-submatrix;
eMatrix[4:6,4:6]=submatrix;
return(round(eMatrix,2))
}
SpaceTruss_ExpandedElement_Matrix = function(TDOF,eMatrix,i,j)
{
r1=2*(i-1)+i;
r2=2*(i-1)+(i+1);
r3=2*(i-1)+(i+2);
r4=(j-1)+(j+2)+(j-3);
r5=(j-1)+(j+3)+(j-3);
r6=(j-1)+(j+4)+(j-3);
bigMatrix=matrix(vector(l=TDOF*TDOF),nrow=TDOF,byrow=T);
bigMatrix[c(r1,r2,r3,r4,r5,r6),c(r1,r2,r3,r4,r5,r6)]=eMatrix;
return (bigMatrix)
}
SpaceTruss_ReducedStiffnessMatrix = function(bigKmatrix,knownforcenodes)
{
reducedstiffnessmatrix = bigKmatrix[c(knownforcenodes),(knownforcenodes)]
return(reducedstiffnessmatrix)
}
SpaceTruss_ReducedForceVector = function(forcevector)
{
reducedforcevector=matrix(forcevector,ncol = 1)
return(reducedforcevector) Page | 13
}
SpaceTruss_NodalDisplacement = function(reducedmatrix,vec_reducedforce)
{
return(solve(reducedmatrix,vec_reducedforce))
}
SpaceTruss_Global_Forces = function(bigKmatrix,vec_globalnodaldisp)
{
global_forces = bigKmatrix %*% vec_globalnodaldisp
return(round(global_forces))
}
SpaceTruss_Local_Forces = function(YoungMod,Area,thetas,vec_globalnodaldisp)
{
cx=cos(thetas[1]*pi/180);
cy=cos(thetas[2]*pi/180);
cz=cos(thetas[3]*pi/180);
localstiffnessmatrix=matrix(c(1,-1,-1,1), byrow=T,nrow=2);
transformationmatrix=matrix(c(cx,cy,cz,0,0,0,0,0,0,cx,cy,cz),byrow=T,nrow=2);
local_forces = (YoungMod/Area)*localstiffnessmatrix%*%transformationmatrix %*%
vec_globalnodaldisp
return(round(local_forces))
}
Spacetruss_AxialStress = function(YoungMod,elem_len,thetas,vec_globalnodaldisp)
{
cx=cos(thetas[1]*pi/180);
cy=cos(thetas[2]*pi/180);
cz=cos(thetas[3]*pi/180);
disp_vec=matrix(vec_globalnodaldisp,nrow=length(vec_globalnodaldisp),byrow=T,ncol = 1);
transformationmatrix=matrix(c(-cx,-cy,-cz,cx,cy,cz),nrow=1,byrow=T);
local_stress=(YoungMod/elem_len)*transformationmatrix%*%disp_vec;
return(local_stress)
}
Tabelul 6.4. Funcții pentru evaluarea proprietăților geometrice (element spatial truss)
Descrierea funcțiilor
SpaceTruss_LengthOrientation(vec_nodalcoordinates)
Această funcție returnează un vector al lungimilor geometrice (L) și orientările unghiulare
(θX,θY, θZ) ale unui anumit element. Acceptă parametrul vec_nodalcoordinates, care este
un vector al coordonatelor nodale ale elementului (în forma (xi , yi , zi, xj , yj, zj).
Tabelul 6.5. Funcții pentru formularea matricilor elementului și vectorilor (element spatial
truss)
Descrierea funcțiilor
SpaceTruss_Element_Matrix (DOF = 6,stifftruss, theta)
Această funcție generează și returnează matricea de rigiditate extinsă pentru un truss Page | 14
spațial. Ea acceptă ca și parametri: DOF, care reprezintă gradul de libertate al elementului
(predefinit ca 6); stifftruss, care reprezintă rigiditatea axială a unui membru (i.e., AE/L) și
theta, care reprezintă orientarea unghiulară (θX, θY, θZ) a unui membru.
SpaceTruss_ExpandedElement_Matrix(TDOF,eMatrix,i,j)
Această funcție formează matricea de rigiditate expandată. Ea acceptă aceiași parametri ca
și funcția PlaneTruss_ExpandedElement_Matrix(TDOF,eMatrix,i,j)
SpaceTruss_ReducedStiffnessMatrix(bigKmatrix,knownforcenodes)
Această funcție generează o matrice de rigiditate redusă pentru sistem. Parametrii săi sunt
aceiași ca ai funcției
SpaceTruss_ReducedForceVector(forcevector) generează vectorul redus al forțelor
nodale necesar pentru pentru determinarea deplasărilor nodale necunoscute. Aceaptă
parametrul forcevector (vectorul forțelor cunoscute) și transformă acest vector în matrice
coloană.
6.4 Exemple
Se consideră truss-ul din Figura 6.2 din oțel, cu aria transversală de 10×10−5m2. Să se
determine deplasările nodale și forțele în fiecare membru
Page | 15
Vom folosi pașii prezentați în cele două secțiuni precedente și funcțiile R furnizate
pentru a rezolva problema. Conectivitatea elementelor este arătată în Tabelul 6.7.
Modulul lui Young pentru un oțel A36 are modulul lui Young 200GPa.
Pas 1: Se specifică geometria și proprietățile de material pentru fiecare dintre
elemente.
Proprietățile geometrice include lungimea și orientarea unghiulară pentru fiecare
element. Trei funcții au fost implementate pentru a determina lungimea și orientările
unghiulare ale membrilor unui truss plan:
• PlaneTruss_LengthOrientation()
• PlaneTruss_GeometricLengths()
• PlaneTruss_Orientations()
Vom folosi ultimele două funcții pentru a obține lungimile și orientările pentru toate
elementele deodată, după cum se arată în următorul bloc:
YoungModulus=200*10^9;
A=1*10^(-4);
n_ele=7;
nodalxcoord=c(0,4,4,8,8,6,4,6,6,2,4,2,0,2)
nodalycoord=c(0,0,0,0,0,3.46,0,3.46,3.46,3.46,0,3.46,0,3.46)
lengths=PlaneTruss_GeometricLengths(n_ele,nodalxcoord,nodalycoord)
lengths
Axialstiffness=(YoungModulus*A)/lengths;Axialstiffness
orientations=PlaneTruss_Orientations(n_ele,nodalxcoord,nodalycoord) Page | 16
orientations
k1=PlaneTruss_Element_Matrix(4,Axialstiffness[1],orientations[1]);k1
k2=PlaneTruss_Element_Matrix(4,Axialstiffness[2],orientations[2]);k2
k3=PlaneTruss_Element_Matrix(4,Axialstiffness[3],orientations[3]);k3
k4=PlaneTruss_Element_Matrix(4,Axialstiffness[4],orientations[4]);k4
k5=PlaneTruss_Element_Matrix(4,Axialstiffness[5],orientations[5]);k5
k6=PlaneTruss_Element_Matrix(4,Axialstiffness[6],orientations[6]);k6
k7=PlaneTruss_Element_Matrix(4,Axialstiffness[7],orientations[7]);k7
n_nodes=5;Total_dof=n_nodes*2;
K1Expanded=PlaneTruss_ExpandedElement_Matrix(Total_dof,k1,1,2);
K2Expanded=PlaneTruss_ExpandedElement_Matrix(Total_dof,k2,2,3);
K3Expanded=PlaneTruss_ExpandedElement_Matrix(Total_dof,k3,3,4);
K4Expanded=PlaneTruss_ExpandedElement_Matrix(Total_dof,k4,2,4);
K5Expanded=PlaneTruss_ExpandedElement_Matrix(Total_dof,k5,4,5);
K6Expanded=PlaneTruss_ExpandedElement_Matrix(Total_dof,k6,2,5);
K7Expanded=PlaneTruss_ExpandedElement_Matrix(Total_dof,k7,1,5);
vec_rows_of_knownloads=c(3,4,5,7,8,9,10);
KglobalReduced=PlaneTruss_ReducedStiffnessMatrix(GlobalStiffnessMatrix,vec_rows_of_k
nownloads);
KglobalReduced
vec_values_of_knownloads=c(0,0,0,0,-40000,0,-20000);
ReducedForceVector=PlaneTruss_ReducedForceVector(vec_values_of_knownloads);
ReducedForceVector
UnknwonNodalDisp=PlaneTruss_NodalDisplacement(KglobalReduced,ReducedForceVector)
round(UnknwonNodalDisp,4)
allglobalNodalDisp=matrix(rep(0,Total_dof),byrow=T);
allglobalNodalDisp[vec_rows_of_knownloads]=UnknwonNodalDisp
round(allglobalNodalDisp,4)
Page | 18
Se obțin forțele elementale via PlaneTruss_Local_Forces(). După cum se explică în
Tabelul 6.3, această funcție acceptă cinci parametri: (1) rigiditatea axială, (2) orientare, (3)
vectorul deplasărilor nodale globale și (4) etichetele nodale.
Notăm că am stocat deja deplasarile nodale globale în variabla allglobalNodalDisp
in Pasul 5. Mai mult, etichetele nodale ale fiecărui membru pot fi identificate din tabelul de
conectivitate. Cu aceste variabile,se calculează forțele locale după cum este ilustrat în codul:
Element1_force=PlaneTruss_Local_Forces(Axialstiffness[1],orientations[1],allglobalNodalDisp,1,2);
Element1_force
Element2_force=PlaneTruss_Local_Forces(Axialstiffness[2],orientations[2],allglobalNodalDisp,2,3);
Element2_force
Element3_force=PlaneTruss_Local_Forces(Axialstiffness[3],orientations[3],allglobalNodalDisp,3,4);
Element3_force
Element4_force=PlaneTruss_Local_Forces(Axialstiffness[4],orientations[4],allglobalNodalDisp,2,4);
Element4_force
Element5_force=PlaneTruss_Local_Forces(Axialstiffness[5],orientations[5],allglobalNodalDisp,4,5);
Element5_force
Element6_force=PlaneTruss_Local_Forces(Axialstiffness[6],orientations[6],allglobalNodalDisp,2,5);
Element6_force
Element7_force=PlaneTruss_Local_Forces(Axialstiffness[7],orientations[7],allglobalNodalDisp,1,5);
Element7_force
Se consideră truss-ul din Figura 6.3, din material cu with E = 210 GPa. Presupunând ca
fiecare membru are secțiunea transversal de 300 mm2, să se determine deplasările nodale
și stresul axial al membrilor.
Figura 6.3.
6.4.2.1 Soluție
Conectivitatea elementelor pentru această problemă este arătată în Tabelul 6.8.
Tabelul 6.8. Tabelul de conectivitate din sistemul discretizat
Page | 19
n_ele=3;
nodalxcoord=c(0,4,4,0,0,0)
nodalycoord=c(0,3,3,6,0,6)
lengths=PlaneTruss_GeometricLengths(n_ele,nodalxcoord,nodalycoord);
orientations=PlaneTruss_Orientations(n_ele,nodalxcoord,nodalycoord);
lengths
orientations
YoungModulus=210*10^9; A=3*10^(-4);
Axialstiffness=(YoungModulus*A)/lengths; Axialstiffness
k1=PlaneTruss_Element_Matrix(4,Axialstiffness[1],orientations[1]); round(k1)
k2=PlaneTruss_Element_Matrix(4,Axialstiffness[2],orientations[2]); round(k2)
k3=PlaneTruss_Element_Matrix(4,Axialstiffness[3],orientations[3]); round(k3)
n_nodes=3;Total_dof=n_nodes*2;
K1Expanded=PlaneTruss_ExpandedElement_Matrix(Total_dof,k1,1,2);
K2Expanded=PlaneTruss_ExpandedElement_Matrix(Total_dof,k2,2,3);
K3Expanded=PlaneTruss_ExpandedElement_Matrix(Total_dof,k3,1,3);
vec_rows_of_knownloads=c(2,3,4);
KglobalReduced=PlaneTruss_ReducedStiffnessMatrix(GlobalStiffnessMatrix,vec_rows_of_k
nownloads);
KglobalReduced
vec_values_of_knownloads=c(0,0,-80000);
ReducedForceVector=PlaneTruss_ReducedForceVector(vec_values_of_knownloads);
ReducedForceVector
UnknwonNodalDisp=PlaneTruss_NodalDisplacement(KglobalReduced,ReducedForceVector)
UnknwonNodalDisp
allglobalNodalDisp=matrix(rep(0,Total_dof),byrow=T);
allglobalNodalDisp[vec_rows_of_knownloads]=UnknwonNodalDisp
round(allglobalNodalDisp,4)
Pentru truss-ul spațial din Figura 6.4, să se determine deplasările spațiale în nodul 1 și
forțele de reacțiune în nodurile 2, 3, and 4. Ariile elementelor 1, 2 și 3 sunt 10×10−4m2,
20×10−4m2, and 30×10−4m2, respectiv. Pentru toate elementele E = 210 GPa.
6.4.3.1 Soluție
Pentru această problemă, folosim funcțiile implementate în R pentru truss spațial (Sectiunea
6.3.3). Structura a fost discretizată și nodurile și elementele sunt etichetate. Conectivitatea
elementelor sunt arătate în Tabelul 6.9.
Figura 6.4.
L1=SpaceTruss_LengthOrientations(c(72,0,0,0,36,0))[1];L1 Page | 22
L2=SpaceTruss_LengthOrientations(c(72,0,0,0,36,72))[1];L2
L3=SpaceTruss_LengthOrientations(c(72,0,0,0,0,-48))[1];L3
thetas1=SpaceTruss_LengthOrientations(c(72,0,0,0,36,0))[2:4];thetas1
thetas2=SpaceTruss_LengthOrientations(c(72,0,0,0,36,72))[2:4];thetas2
thetas3=SpaceTruss_LengthOrientations(c(72,0,0,0,0,-48))[2:4];thetas3
In primele trei linii ale codului precedent, se calculează lungimea fiecărui element
prin utilizarea SpaceTruss_LengthOrientations() cu coordonatele nodale ale elementului.
Totuși, SpaceTruss_LengthOrientations() returnează patru numere când este acesta este
apelat: primul este lungimea, al doilea, al treilea și al patrulea reprezintă orientările
unghiulare. Atunci, lungimile și unghiurile trebuie să fie extrase folosind numere în
paranteze. Primul element returnat este lungimea, atunci când se folosește
SpaceTruss_LengthOrientations().
Odată găsită lungimea elementelor, se obține regiditatea axială (AE/L) pentru toate
elementele.
E1=210*10^9;A1=10*10^(-4);
E2=210*10^9;A2=20*10^(-4);
E3=210*10^9;A3=30*10^(-4);
stiffness1=E1*A1/L1;stiffness1
stiffness2=E2*A2/L2;stiffness2
stiffness3=E3*A3/L3;stiffness3
k1=SpaceTruss_Element_Matrix(6,stiffness1,thetas1);k1
k2=SpaceTruss_Element_Matrix(6,stiffness2,thetas2);k2
k3=SpaceTruss_Element_Matrix(6,stiffness3,thetas3);k3
n_nodes=4;Total_dof=n_nodes*3;
K1=SpaceTruss_ExpandedElement_Matrix(12,k1,1,2);
K2=SpaceTruss_ExpandedElement_Matrix(12,k2,1,3);
K3=SpaceTruss_ExpandedElement_Matrix(12,k3,1,4);
Kglobal=K1+K2+K3;
Kglobal
În consecință, ecuația matriceală globală a sistemului ia forma următoare:
Page | 23
vec_rows_of_knownloads=c(1,3);
KglobalReduced=SpaceTruss_ReducedStiffnessMatrix(Kglobal,
vec_rows_of_knownloads);
KglobalReduced
vec_values_of_knownloads=c(0,-10000);
ReducedForceVector=SpaceTruss_ReducedForceVector(vec_values_of_knownloads);
ReducedForceVector
UnknwonNodalDisp=SpaceTruss_NodalDisplacement(KglobalReduced,ReducedForceVecto
r)
UnknwonNodalDisp
Combinând matricea de rigiditate redusă și valorile cunoscute ale forțelor nodale, rezultă
ecuația matriceală redusă.
UnknwonNodalDisp=SpaceTruss_NodalDisplacement(KglobalRedu
ced,ReducedForceVector)
UnknwonNodalDisp
allglobalNodalDisp=matrix(rep(0,Total_dof),byrow=T);
allglobalNodalDisp[vec_rows_of_knownloads]=UnknwonNodalDisp
round(allglobalNodalDisp,4) Page | 24
Având determinate deplasările nodale, se pot determina forțele globale (și forțele de
reacțiune), utilizeazând funcția SpaceTruss_Global_Forces(). Reamintim că această
funcție necesită matricea de rigiditate globală (reprezentată de variabila Kglobal
determinate la Pasul 4) și vectorul global al deplasărilor nodale (conținut de variabila
allglobalNodalDisp).
NodalGlobalForces=SpaceTruss_Global_Forces(Kglobal,allglobalNodalDisp);
NodalGlobalForces
7.1 Introducere
Page | 1
În acest capitol vom prezenta formulările elementelor finite pentru grinzi Euler -
Bernoulli (EB) și Timoșenko (TB). Prima reprezintă un model de grindă care neglijează
deformările la forfecare (de unde și denumirea grindă rigidă la forfecare), în timp ce al doilea
este un model de grindă care ia în considerare și efectul deformării la forfecare.
Grinzile, la fel ca barele tratate în Capitolul 6, sunt componente structurale subțiri, ale căror
mișcări și deformări pot fi descrise în termenii unei singure variabile spațiale. Ele sunt
concepute în principal pentru a prelua sarcini transversale (care acționează perpendicular pe
axa principală a elementului) și pot rezista forței de forfecare și momentelor de încovoiere.
Fiind unul dintre cele mai familiare elemente structurale, grinzile funcționează ca elemente
de susținere în multe aplicații inginerești (de exemplu, ca elice pentru avioane și bărci, ca
modele pentru idealizarea palelor turbinei și a structurilor de susținere în automobile, poduri
și numeroase mașini). Principalul interes în studiul grinzilor este de a evalua forțele interne
(forțe de forfecare și momente de încovoiere), distribuția deformării și tensiunile apărute în
grindă sub acțiunea forțelor exterioare.
Figura 7.1 (a) O grindă cu sarcini transversale generice, (b) arie transversală, și (c) un segment de
grindă care este folosit ca element.
Să considerăm segmentul neîncărcat AB (în Figura 7.1a) ca o grindă EB cu două
noduri cu două grade de libertate pe nod cum se arată în Figura 7.1c. Mai mult, fie vi și θi
deplasarea verticală și panta în nodul i, în timp ce vj și θj sunt deplasarea verticală și panta
în nodul j. Pentru acest element, panta în fiecare punct de-a lungul grinzii este egală cu
prima derivată a curbei de deflecție. Pentru referință, în plus față de aceste grade de
libertate, Figure 7.1c arată convenția semnelor pozitive pentru momente (opus acelor de Page | 2
ceasornic) și forței de forfecare (în direcția pozitivă a lui y). Considerăm că grinda suportă o
deformație moderată sub efectul sarcinilor nodale (forță de forfecare și momente de
învoiere); atunci putem prescrie o funcție cubică pentru variația forței transversale de
deformare de-a lungul lungimii elementului, în forma:
Folosind ecuațiile (7.1) și (7.2), rezultă că panta (θ = dv/dx) în orice punct de-a lungul
axei neutre a grinzii
unde {ue} este vectorul deplasărior nodale și pantelor, [H] este matricea coordonatelor, și {A}
este vectorul coeficienților necunoscuți. Din ecuația (7.4), coeficienții necunoscuți sunt
determinați ca
unde
Odată găsite constantele necunoscute Ak, se rescriu ecuațiile (7.1) și (7.2) ca
Page | 3
sau
Page | 4
unde s-a folosit în ecuația (7.18) faptul că I = ∫ y2dA. Substituim (7.17) și (7.18) în (7.15) și
apoi minimizăm Pt în raport cu ue pentru a obține
Sau, rearanjând (7.20), obținem ecuația matriceală a elementului finit de grindă EB:
In formă completă, matricea de rigiditate [ke], care rezultă prin înmulțirea matricii [B]
și a transpusei sale este
După cum s-a arătat în Tabelul 7.1, în teoria TB, există două component nenule ale
tensorului deformare: εxx and γxy. Folosind vectorul funcțiilor de formă definite de (7.24) and
(7.25), se obține
Relațiile stress–deformare pentru TB, dacă se consideră E - modulul lui Young și G –
modulul de torsiune, sunt următoarele: Page | 6
unde am folosit parametrul k in ecuația (7.30) pentru a nota factorul de corecție la forfecare.
Urmând pașii din Secțiunea 7.2.3, scriem energia de deformare (U) și lucrul mecanic
efectuat de forțele externe (W) pe elementul TB ca:
Substituind ecuațiile (7.31) and (7.32) în ecuația (7.14) și apoi minimizând Pt în raport
cu {ue} pentru a obține
In consecință, sarcinile nodale echivalente care trebuie să fie adăugate fie la ecuația
(7.23) sau la ecuația (7.36) sunt obținute prin minimizarea ecuației (7.37) în raport cu {ue},
dând
Pentru o TDL, dacă înălțimea forței distribuite este q(x), atunci lucrul mecanic
efectuat pe un element de lungime Le este
Deci pentru TDL, sarcina nodală echivalentă care trebuie să fie adăugată fie la
ecuația (7.23) fie la ecuația (7.36) este obținută prin minimizarea ecuației (7.39) în raport cu
{ue }, obținându-se
6.5 Implementare computațională
Page | 11
Tabelul 7.4. Functions for the Computation Phase of Analysis of a System of Beam Elements
7.6 Example
7.6.1 Exemplu
Pentru segmentul de grindă din Figura 7.2 cu secțiune transversală variabilă și
puncte de încărcare, să se determine
(1) deplasările nodale transversale în punctele B și C, Page | 12
(2) reacțiunile la capetele suportului.
Se consideră: E = 200 GPa; IAB = 5×10-6m4, IBC = 2.5×10-6m4, ICD = 6.25×10-7 m4.
7.6.1.1 Soluție
Pentru această problemă, conectivitatea elementelor este arătată în Tabelul 6.5, în care se
notează AB, BC, și CD ca elementele 1, 2, and 3, respectiv.
Figura 7.2.
7.6.2 Exemplu
O grindă de lemn este încărcată ca în Figura 6.3. Materialul are E = 12 GPa și o secțiune
transversal cu inertia I =10.67 × 10− 4 Să se determine
1. Forma matricii globale de rigiditate pentru grindă
2. Deplasarea și panta în D
3. Forța de reacțiune și momentul de încovoiere în A.
Figura 7.3.
CAPITOLUL 8 – CADRE PLANE
8.1. Introducere
Elementele prezentate în capitolele 6 și 7 vor fi extinse în acest capitol pentru a
dezvolta elemente care îmbină gradele de libertate ale elementelor de bară și grindă,
rezultând elemente de cadru.
Elementele de cadru sunt potrivite pentru analizele statice ale structurilor de cadru
formate din elemente de grinzi conectate rigid sau prin articulații la îmbinări. Interesul pentru
analiza structurilor de cadru este analog cu ceea ce a fost discutat pentru grinzi. Adică se
dorește determinarea
(a) forțelor interne (forțe tăietoare și momentele încovoietoare);
(b) distribuției deformării, care include deplasări verticale și rotaționale în diferite puncte de-a
lungul lungimii elementelor structurilor;
(c) tensiunilor interne dezvoltate ca reacție la sarcinile aplicate.
Vom lua în considerare implementarea computațională a elementelor de cadre
plane și spațiale (folosind teoria rigidității la forfecare, în care se neglijează efectul deformării
prin forfecare).
În conformitate cu capitolele precedente, vom începe cu o scurtă prezentare a
ecuației elementelor finite pentru elementul cadru plan și apoi se trece la implementarea în
R atât pentru elementele cadrelor în plan cât și în spațiu.
Se consideră Figura 8.1, care prezintă un element de cadru orientat cu două noduri,
situat în sistemul global de coordonate X −Y și având lungimea Le, aria A (în stare
descărcată) și un modul E al lui Young. Elementului îi este atașat un sistem local de
coordonate x – y, unde x este îndreptată de-a lungul axei sale, iar θ este unghiul dintre axa
Ox și axa OX.
Având în vedere natura sarcinilor nodale, putem scrie următoarele funcții pentru
variația deplasărilor (axiale și rotaționale) de-a lungul elementului:
unde {ue} este vectorul deplasărilor nodale, [H] este matricea coordonatelor și {A} este
vectorul coeficienților necunoscuți. Din (8.4), coeficienții necunoscuți sunt determinați din
relația
(8.12)
(8.13)
Deci,
(8.14)
(8.17)
(8.18)
sau
(8.19)
(8.20)
unde cei doi termeni din membrul al doilea din ecuația (8.20) reprezintă tensiunea axială și
de încovoiere.
8.2.3. Minimizarea energiei potenţiale totale pentru elementul cadru
(8.21)
(8.22)
(8.23)
(8.24)
(8.25)
În formă completă, ecuația matriceală pentru elementul cadru (fără deformare prin
efect de forfecare) este
(8.26)
unde
(8.27)
Dacă se lucrează cu un element de cadru sub influența unei sarcini uniform
distribuite axial w1 și uniform distribuită transversal w2, următoarele sarcini nodale
echivalente trebuie să fie adăugate ecuației elementului de cadru.
(8.28)
(8.29)
COD
PlaneFrame_LengthOrientation = function(vec_nodalcoordinates)
# calculeaza lungimea elementului si unghiul care da orientarea (Le,𝛉)
{
xsquared=(vec_nodalcoordinates[3]-vec_nodalcoordinates[1])^2
ysquared=(vec_nodalcoordinates[4]-vec_nodalcoordinates[2])^2
length_of_element=sqrt(xsquared+ysquared)
ydiff=(vec_nodalcoordinates[4]-vec_nodalcoordinates[2])
xdiff=(vec_nodalcoordinates[3]-vec_nodalcoordinates[1])
orientation_of_element=(180/pi)*atan(ydiff/xdiff)
return(c(length_of_element,orientation_of_element))
}
PlaneFrame_Element_Matrix = function(DOF=6,YoungMod,Area,momentI,Length,theta)
# calculeaza matricea de rigiditate a elementului
{
cx=cos(theta*pi/180);sx=sin(theta*pi/180);
A=Area;I=momentI;B1=(12*momentI)/Length^2;B2=(6*momentI)/Length;
submatrix1=matrix(c( (A*cx^2+B1*sx^2),(A-B1)*cx*sx,(-B2*sx),-(A*cx^2+B1*sx^2),
-(A-B1)*cx*sx,(-B2*sx)),nrow=1,byrow=T);
submatrix2=matrix(c( submatrix1[,2],(A*sx^2+B1*cx^2),(B2*cx),-(A-B1)*cx*sx,-(A*sx^2+B1*
cx^2),(B2*cx)),nrow=1,byrow=T);
submatrix3=matrix(c( (-B2*sx),(B2*cx),(4*I),(B2*sx),(-B2*cx),(2*I)),nrow=1,byrow=T);
submatrix4=matrix(c( submatrix1[,4],submatrix2[,4], submatrix3[,4],
submatrix1[,1],submatrix1[,2],B2*sx),nrow=1,byrow=T);
submatrix5=matrix(c(submatrix1[,5],submatrix2[,5],
submatrix3[,5],
submatrix4[,5], submatrix2[,2],-B2*cx),nrow=1, byrow=T);
submatrix6=matrix(c(submatrix1[,6],submatrix2[,6],
submatrix3[,6],
submatrix4[,6],submatrix5[,6],4*I),nrow=1,byrow=T);
eMatrix=matrix(vector(l=DOF*DOF),nrow=DOF,ncol=DOF);
eMatrix[1,]=submatrix1;eMatrix[2,]=submatrix2;
eMatrix[3,]=submatrix3;eMatrix[4,]=submatrix4;
eMatrix[5,]=submatrix5;eMatrix[6,]=submatrix6;
return(round((YoungMod/Length)*eMatrix,3))
}
PlaneFrame_ExpandedElement_Matrix=function(TDOF,eMatrix,i,j)
#calculeaza matricea de rigiditate extinsa a elementului - bigMatrix
{
r1=2*(i-1)+i;r2=2*(i-1)+(i+1);
r3=2*(i-1)+(i+2);r4=(j-1)+(j+2)+(j-3);
r5=(j-1)+(j+3)+(j-3);r6=(j-1)+(j+4)+(j-3);
bigMatrix=matrix(vector(l=TDOF*TDOF),nrow=TDOF, byrow=T);
bigMatrix[c(r1,r2,r3,r4,r5,r6),c(r1,r2,r3,r4,r5,r6)]=eMatrix;
return (bigMatrix)
}
PlaneFrameUDL_Matrix=
function(DOF=6,AxialUDLMagnitude,TransUDLMagnitude,Length,theta)
# calculeaza matricea fortelor echivalente celor distribuite
{
L=Length;
cx=cos(theta*pi/180);sx=sin(theta*pi/180);
w1=AxialUDLMagnitude;w2=TransUDLMagnitude;
row1=0.5*L*(-cx*w1+sx*w2);row2=-0.5*L*(sx*w1+cx*w2)
row3=-(1/12)*(L^2)*w2;row4=0.5*L*(-cx*w1+sx*w2);
row5=-0.5*L*(sx*w1+cx*w2);row6=(1/12)*(L^2)*w2
equivalentload=matrix(c(row1,row2,row3,row4,row5,row6),nrow=DOF,byrow=T)
return (equivalentload)
}
PlaneFrameUDL_ExpandedMatirx = function(TDOF,LoadColumnMatrix,i,j)
#Calculeaza matricea expandata a fortelor echivalente celor distribuite
{
r1=2*(i-1)+i;r2=2*(i-1)+(i+1);
r3=2*(i-1)+(i+2);r4=(j-1)+(j+2)+(j-3);
r5=(j-1)+(j+3)+(j-3);r6=(j-1)+(j+4)+(j-3);
bigColumnMatrix=matrix(vector(l=TDOF),nrow=TDOF,byrow=T);
bigColumnMatrix[c(r1,r2,r3,r4)]=LoadColumnMatrix;
return (bigColumnMatrix)
}
PlaneFrame_ReducedStiffnessMatrix = function(bigKmatrix,knownloadnodes)
#calculeaza matricea de rigiditate redusa
{
reducedk = bigKmatrix[c(knownloadnodes),(knownloadnodes)]
return(reducedk)
}
PlaneFrame_ReducedLoadVector = function(loadvector)
#calculeaza vectorul redus al sarcinilor cunoscute
{
reducedf = matrix(loadvector,ncol = 1)
return(reducedf)
}
PlaneFrame_NodalDisplacement = function(reducedmatrix,vec_reducedforce)
#calculeaza vectorul redus al deplasarilor nodale
{
return(solve(reducedmatrix,vec_reducedforce))
}
PlaneFrame_GlobalForces = function(bigKmatrix,vec_globalnodaldisp)
#calculeaza vectorul global al fortelor nodale
{
columndof=matrix(vec_globalnodaldisp,byrow = T)
globalforces = bigKmatrix %*% vec_globalnodaldisp
return(round(globalforces))
}
PlaneFrame_LocalForces =
function(YoungMod,Area,momentI,Length,theta,vec_globalnodaldisp)
#calculeaza vectorul global al deplasarilor nodale
{
E1=YoungMod;A=Area;I=momentI;L=Length;
cx=cos(theta*pi/180);sx=sin(theta*pi/180);
row1=c(cx,sx,0,0,0,0);row2=c(-sx,cx,0,0,0,0);
row3=c(0,0,1,0,0,0);row4=c(0,0,0,cx,sx,0);
row5=c(0,0,0,-sx,cx,0);row6=c(0,0,0,0,0,1);
tmatrix=matrix(c(row1,row2,row3,row4,row5,row6),nrow=6,byrow=T)
localstiffness=tmatrix%*%PlaneFrame_Element_Matrix(6,E1,A,I,L,theta);
local_forces = localstiffness%*%vec_globalnodaldisp
return(round(local_forces))
}
Exemplu pag.146
Figure 8.2. arată o structură formată din două elemente cu un moment concentrat de 300
kNm. Să se determine
(1) Deplasările orizontale, verticale și rotaționale ale punctului B;
(2) Reacțiunile în A și C.
Se consideră: E = 210 GPa; IAB = IBC = 300 *10-6 m4, A= 2.1 m2.
Figura 8.2
Soluție
E1=E2=210e9;A1=A2=2.1;I1=I2=300e-6
L1T1=PlaneFrame_LengthOrientation(c(0,4,5,4)); L1T1
L2T2=PlaneFrame_LengthOrientation(c(5,4,5,0)); L2T2
k1=PlaneFrame_Element_Matrix(6,E1,A1,I1,L1T1[1],L1T1[2]);k1
k2=PlaneFrame_Element_Matrix(6,E2,A2,I2,L2T2[1],L2T2[2]);k2
# Nu exista sarcini distribuite, deci nu este nevoie sa determinam sarcini nodale echivalente
n_nodes=3;Total_dof=n_nodes*3;
#Se determina deplasarile necunoscute dupa ce se pun conditiile la frontiera, ca mai sus
UnknwonNodalDisp=PlaneFrame_NodalDisplacement(ReducedK,Reducedloadvector)
UnknwonNodalDisp
#Se determina matricea globala a deplasarilor necunoscute
allglobalNodalDisp=matrix(rep(0,Total_dof),byrow=T);
allglobalNodalDisp[vec_rows_of_knownloads]=UnknwonNodalDisp
allglobalNodalDisp
9.1. Introducere
Din studiul precedent rezultă că există o mulțime de elemente care ajută analiștii în
soluționarea problemelor practice cu elemente finite. Din cele studiate ar fi de observat că
fiecare dintre elementele finite analizate anterior au funcții de formă cu o singură variabilă
(funcție de coordonata x) și fiecare reprezintă o aproximare unidimensională a unei structuri
tridimensionale. În consecință, aceste elemente (bare, beam, truss, cadru) sunt de obicei
denumite elemente structurale unidimensionale.
Elementele structurale unidimensionale sunt conectate numai în puncte nodale, care
tind să apară în locații cu sarcini concentrate, modificarea secțiunii transversale,
îmbinări/suporturi și așa mai departe. În principiu, atunci când o structură cuprinde o serie de
elementele structurale unidimensionale, elementele menționate anterior pot fi folosite pentru
determinarea solicitării și deformării în diferite locuri.
Cu toate acestea, oricât de atractive sunt elementele structurale unidimensionale, ele
nu demonstrează destul de mult versatilitatea metodei elementelor finite în modelarea
structurilor cu forme si limite neregulate. În primul rând, punctele nodale menționate în
paragraful precedent nu apar în mod natural pentru structuri continue de ordin superior, cum
ar fi plăci plate și cupole (shells). În astfel de cazuri, trebuie să se discretizeze artificial
structurile continue în mai multe elemente plane înainte de a trece la o analiză. In acest
capitol, scopul nostru este să examinăm elementele continue bidimensionale (2D) care oferă
confort pentru analiza plană aproximativă a solidelor 3D supuse la sarcini plane exterioare.
În principal, ne vom uita la triunghiul de efort constant (CST) și examina apoi elementul
axisimetric. CST, deși nu este tocmai cel mai bun element plan 2D, are aplicații pentru
abordarea analizei tensiunilor plane (de exemplu, analiza plăcilor subțiri cu găuri, cârlige,
console, file) și probleme de deformare plană (de exemplu, arbori, țevi și altele).
Figura 9.1 (a) O placă subțire cu forțe plane generice, (b) un element în stare de efort plan și (c) un
element triunghiular izolat care prezintă forțe nodale și grade de libertate.
În Figura 9.1c, a fost izolat triunghiul central, care are o muchie comună cu celelalte
triunghiuri, pentru analiza ulterioară ca element triunghiular. La fiecare nod a elementului
izolat, indicăm
• Un sistem de coordonate dreptunghiular
• Deplasările nodale (ui ,vi ,uj ,vj ,uk ,vk )
• Forțele nodale (𝑓𝑖𝑥 , 𝑓𝑖𝑦 , 𝑓𝑗𝑥 , 𝑓𝑗𝑦 , 𝑓𝑘𝑥 , 𝑓𝑘𝑦 )
unde indicii i, j și k reprezintă numerele nodale, de exemplu, 1, 2 și 3.
Se evidențiază faptul că derivația prezentată aici este constrâns de anumite ipoteze.
• Structura care trebuie analizată este plană în stare nedeformată și de grosime
constantă t, unde t este mult mai mic decât dimensiunile plane a și b (similar cu
Figura 8.1).
• Forţele exterioare acţionează numai la limita paralelă cu planul sau sunt distribuite
uniform pe grosime.
• Considerând că elementul triunghiular este supus doar la deformare plană atunci
când este sub sarcini plane, se poate reprezenta variația deplasărilor în oricare dintre
punctele sale interioare în următoarea formă:
(9.1)
(9.2)
unde A1 − A6 sunt coeficienți necunoscuți.
După cum s-a explicat în capitolele precedente, am ales ca numărul total de
coeficienți Ai să fie egal cu totalul numărului de grade de libertate asociate elementului.
În continuare, rezolvăm coeficienții necunoscuți prin impunerea unor condiții la
limită, pe ecuațiile (9.1) și (9.2), după cum urmează:
(9.3)
unde {ue} este vectorul deplasărilor nodale, [H] este matricea coordonatelor, iar {A} este
vectorul coeficienților necunoscuți. Din ecuația (9.3), coeficienţii necunoscuţi rezultă
(9.4)
(9.5)
unde
Ca urmare, ecuațiile (9.1) și (9.2) se vor scrie:
(9.6)
(9.7)
(9.8)
(9.9)
(9.13)
Ecuația (9.13) prezice un set de deformații constante, deoarece toți termenii din
matricea [B] nu depind de x și y. Aceasta explică denumirea acestui element ca CST.
Pentru a lega tensiunea de stres, apelăm la legea constitutivă, care, pentru probleme
de elasticitate plană generală, este de forma
(9.14)/
⇔ (9.15)
(9.16)
(𝜈 − modulul lui Poisson) iar pentru probleme de deformare plană (εzz =𝛾 zx = 𝛾zy = 0),
(9.17)
Urmând pașii din capitolele precedente, scriem energia de deformare (U) a CST ca
(9.18)
Cu ecuațiile (9.13) și (9.15), relația (9.17) devine
(9.19)
Lucrul mecanic efectuat de forțele nodale externe concentrate aplicate (W) este:
(9.20)
(9.21)
(9.22)
(9.23)
(9.24)
unde
(9.25)
Fiind date coordonatele nodale ale unui element triunghiular, forma completă a
matricii de rigiditate din ecuația (9.25) se obține numeric imediat.
Modelul matriceal din ecuația (9.24) este potrivit pentru analiza CST sub influența
sarcinilor nodale concentrate. În prezența unei tracțiuni la suprafață p (N/m2), trebuie
evaluate sarcinile nodale echivalente, așa cum s-a făcut și pentru elementul de bară.
Sarcinile nodale echivalente derivate dintr-o tensiune de tracțiune uniformă pe suprafață, px
(N/m2), normală la planul z–y, și o tensiune uniformă de forfecare la tracțiune py (N/m2 ) care
acționează tangențial la planul z–y este
(9.26)
unde s-a presupus că forțele de tracțiune acționează pe latura 2-3 și acoperă suprafața de
de lățime t și lungimea laturii L.
#Date coordonatele nodurilor unui element, această funcție este folositaă pentru a obține
# lungimea și orinetarea acestuia
#Argument1: vec_nodalcoordinates=vectorul valorilor coordonatelor nodale,
# c(x1,y1,x2,y2,x3,y3)
#Returnează un vector con/inând lungimea și unghiul de orientare
CSTriangular_Area =function(vec_nodalcoordinates)
{
x1=vec_nodalcoordinates[1];x2=vec_nodalcoordinates[3]; x3=vec_nodalcoordinates[5];
y1=vec_nodalcoordinates[2];y2= vec_nodalcoordinates[4]; y3=vec_nodalcoordinates[6]
Area=abs(x3*(y1-y2)+x2*(y3-y1)+x1*(y2-y3))
return(Area/2)
}
B1=y2-y3;B2=y3-y1;B3=y1-y2;
G1=x3-x2;G2=x1-x3;G3=x2-x1;
row1=c(B1,0,B2,0,B3,0);
row2=c(0,G1,0,G2,0,G3)
row3=c(G1,B1,G2,B2,G3,B3)
p1=c(1,Nu,0,Nu,1,0,0,0,(1-Nu)/2)
p2=c(1-Nu,Nu,0,Nu,1-Nu,0,0,0,(1-2*Nu)/2)
BMatrix=(1/(2*A))*matrix(c(row1,row2,row3),nrow=3,byrow=T);
DPlaneStress=(YoungMod/(1-Nu^2))*matrix(p1,nrow=3,byrow=T);
DPlaneStrain=(YoungMod/((1+Nu)*(1-2*Nu)))*matrix(p2,nrow=3,byrow=T)
eMatrix=matrix(vector(l=DOF*DOF),nrow=DOF,ncol=DOF);
if(case==1){
eMatrix=(thickness*A)*t(BMatrix)%*%DPlaneStress%*%BMatrix
}
if(case==2){
eMatrix=(thickness*A)*t(BMatrix)%*%DPlaneStress%*%BMatrix
}else{eMatrix=(thickness*A)*t(BMatrix)%*%DPlaneStress%*%BMatrix}
return(eMatrix)
}
CSTriangular_Stresses = function(YoungMod,Nu,thickness,
vec_nodalcoord,case,vec_globalnodaldisp,i,j,k)
{
x1=vec_nodalcoord[1];x2=vec_nodalcoord[3];
x3=vec_nodalcoord[5];
y1=vec_nodalcoord[2];y2=vec_nodalcoord[4];
y3=vec_nodalcoord[6];
A=abs((x3*(y1-y2)+x2*(y3-y1)+x1*(y2-y3))/2);
B1=y2-y3;B2=y3-y1;B3=y1-y2;
G1=x3-x2;G2=x1-x3;G3=x2-x1;
row1=c(B1,0,B2,0,B3,0);
row2=c(0,G1,0,G2,0,G3)
row3=c(G1,B1,G2,B2,G3,B3)
p1=c(1,Nu,0,Nu,1,0,0,0,(1-Nu)/2)
p2=c(1-Nu,Nu,0,Nu,1-Nu,0,0,0,(1-2*Nu)/2)
BMatrix=(1/(2*A))*matrix(c(row1,row2,row3),nrow=3,byrow=T);
DPlaneStress=(YoungMod/(1-Nu^2))*matrix(p1,nrow=3,byrow=T);
DPlaneStrain=(YoungMod/((1+Nu)*(1-2*Nu)))*matrix(p2,nrow=3,byrow=T)
r1=2*i-1; r2=2*i
r3=2*j-1; r4=2*j
r5=2*k-1; r6=2*k
if(case==1){
localstresses=DPlaneStress%*%
BMatrix%*%vec_globalnodaldisp[c(r1,r2,r3,r4,r5,r6)]
}
if(case==2){
localstresses=DPlaneStrain%*%
BMatrix%*%vec_globalnodaldisp[c(r1,r2,r3,r4,r5,r6)]
}else{localstresses=DPlaneStress%*%
BMatrix%*%vec_globalnodaldisp[c(r1,r2,r3,r4,r5,r6)]
}
return(localstresses)
}
CAPITOLUL 10
ELEMENTE 2-DIMENSIONALE PENTRU PROBLEME DE CORPURI AXIALE
SIMETRICE
10.1. INTRODUCERE
Aproximații plane ale corpurilor elastice axial-simetrice (cu simetrie axială) având
geometrie, constrângere, și proprietăți ale materialului cu simetrie rotațională în jurul unei
axe de revoluţie apar în soluţiile multor probleme de importanţă practică. Prin urmare, având
în vedere aplicațiile lor, s-au dezvoltat câteva modele axial-simetrice cu elemente finite. Cu
toate acestea, focalizarea noastră în acest capitol este pe elementul triunghiular axisimetric
cu trei noduri.
Aplicațiile generale ale elementelor axial-simetrice pot fi găsite în analize ale
reactorului nuclear hiperboloid, tunelurilor circulare, volantelor, vaselor de presiune, tijelor
supapelor motoarelor, rezervoarelor de apă, capetelor de pistoane, discurilor de turbină,
turnurilor de răcire hiperbolice, articulațiilor sinoviale.
Similar celorlalte capitole, în secțiunile următoare se face o trecere în revistă a
ecuațiilor care descriu elementul triunghiular axisimetric vor fi prezentate împreună cu
funcțiile R dezvoltate pentru utilizarea acestui element în analizele corpurilor elastice axial-
simetrice din Secțiunile 10.2 și 10.3.
Exemple de probleme sunt date în Secțiunea 10.4, în timp ce exercițiile sunt date în
Secțiunea 10.5.
Figura 10.1. (a) Modelul unui toroid, (b) reprezentarea schematică a toroidului, care relevă secțiunea
triunghiulară, (c) un element triunghiul ar care arată gradele de libertate nodale
• Un sistem de coordonate 2D, parte a sistemului de coordinate cilindrice rθz
• Deplasările nodale
• Forțele nodale
unde indicii i, j și m reprezintă etichetele nodale ale elementului.
Urmând aceeași linie de gândire prezentată în capitolul precedent, presupunem că
elementul triunghiular suferă doar deformații plane și astfel reprezentăm variația deplasărilor
în punctele sale interioare cu funcțiile:
(10.1)
(10.2)
unde A1 − A6 sunt coeficienți necunoscuți, în timp ce u și w reprezintă deplasări radiale,
respectiv axiale. În continuare, rezolvăm sistemul obținut prin impunerea condițiilor la limită
asupra ecuațiilor (10.1) și (10.2), anume:
• În nodul i, r=ri, z=zi, u=ui
• În nodul i, r=ri, z=zi, w=wi
• În nodul j, r=rj, z=zj, u=uj
• În nodul j, r=rj, z=zj, w=wj
• În nodul m, r=rm, z=zm, u=um
• În nodul m, r=rm, z=zm, w=wm
Rezultă:
⇔ (10.3)
(10.4)
Inversa matricei [H] este
(10.5)
unde 2A = rm (zi − zj ) + ri (zj − zm ) + rj (−zi + zm). Ecuațiile (10.1) și (10.2) se pot scrie ca
(10.6)
(10.7)
Înmulțirea primelor două matrici în (10.6) și (10.7) conduce la
(10.8)
(10.9)
(10.10)
(10.11)
sau
(10.12)
În plus, legea constitutivă ajută la stabilirea relației stres-elongație pentru problemele axial-
simetrice
(10.13)
sau
(10.14)
unde [D] are forma
(10.15)
(10.16)
(10.17)
Lucrul mecanic efectuat de forțele nodale externe concentrate (W) are forma
(10.18)
(10.19)
(10.24)
(10.25)
unde funcțiile de formă din integrand au fost evaluate la r = rj = rm și suprafața sjm = (zm − zj).
Forțele nodale echivalente la nodurile i, j și m ale unui element sub efectul rotaţiei şi forţele
corporale induse de gravitaţie se pot obţine şi ele într-o manieră similară. O expresie
aproximativă pentru aceasta este dată ca
(10.26)
unde, în cazul unei structure cu densitatea de masă pe unitatea de volum (ρ) care se învârte cu viteză
unghiulară de rotație (ω) înjurul axei de simetrie, avem
(10.27)
și Zb este forța pe unitatea de volum (e.g., datoriă gravitației).
COD
#Date coordonatele nodurilor unui element, această funcție generează suprafața elementului
#Argument1:vec_nodalcoordinates=vectorul coordonatelor nodale, în forma c(r1,z1,r2,z2,r3,z3)
AxisymmetricT_Area =function(vec_nodalcoordinates)
{
r1=vec_nodalcoordinates[1];r2=vec_nodalcoordinates[3];
r3=vec_nodalcoordinates[5];
z1=vec_nodalcoordinates[2];z2= vec_nodalcoordinates[4];
z3=vec_nodalcoordinates[6]
Area=abs(r3*(z1-z2)+r2*(z3-z1)+r1*(z2-z3))
return(Area/2)
}
rbar=(1/3)*(r1+r2+r3);
zbar=(1/3)*(z1+z2+z3);
return(c(rbar,zbar))
}
Area=abs(r3*(z1-z2)+r2*(z3-z1)+r1*(z2-z3))*0.5;
rbar=(1/3)*(r1+r2+r3);zbar=(1/3)*(z1+z2+z3);
a1=r2*z3-z2*r3;
a2=r3*z1-z3*r1;
a3=r1*z2-z1*r2;
B1=z2-z3;B2=z3-z1;B3=z1-z2;
G1=r3-r2;G2=r1-r3;G3=r2-r1;
row1=c(B1,0,B2,0,B3,0);
row2=c(0,G1,0,G2,0,G3);
row3=c(((a1/rbar)+B1+(G1*zbar/rbar)),0,((a2/rbar)+B2+(G2*zbar/rbar)),0,((a3/rbar)+B3+(G3*zbar/rbar
)),0);
row4=c(G1,B1,G2,B2,G3,B3);
constitutiveprop=c(1-Nu,Nu,Nu,0,Nu,1-Nu,Nu,0,Nu,Nu,1-Nu,0,0,0,0,(1-2*Nu)/2)
BMatrix=(1/(2*Area))*matrix(c(row1,row2,row3,row4),nrow=4,byrow=T);
DMatrix=YoungMod/((1+Nu)*(1-2*Nu))*matrix(constitutiveprop,nrow=4,byrow=T);
eMatrix=(2*pi*rbar*Area)*t(BMatrix)%*%DMatrix%*%BMatrix
return(eMatrix)
}
equivalentbodyload=(2/3)*pi*rbar*Area*matrix(c(Rb,Zb,Rb,Zb,Rb,Zb),nrow=DOF,byrow=T)
return (equivalentbodyload)
}
AxisymmetricT_Stresses = function(YoungMod,Nu,vec_nodalcoord,vec_globalnodaldisp,i,j,k)
{
r1=vec_nodalcoord[1];
r2=vec_nodalcoord[3];
r3=vec_nodalcoord[5];
z1=vec_nodalcoord[2];
z2=vec_nodalcoord[4];
z3=vec_nodalcoord[6]
Area=abs(r3*(z1-z2)+r2*(z3-z1)+r1*(z2-z3))*0.5;
rbar=(1/3)*(r1+r2+r3);
zbar=(1/3)*(z1+z2+z3);
a1=r2*z3-z2*r3;
a2=r3*z1-z3*r1;
a3=r1*z2-z1*r2;
B1=z2-z3;B2=z3-z1;B3=z1-z2;
G1=r3-r2;G2=r1-r3;G3=r2-r1;
row1=c(B1,0,B2,0,B3,0);
row2=c(0,G1,0,G2,0,G3);
row3=c(((a1/rbar)+B1+(G1*zbar/rbar)),0,((a2/rbar)+B2+(G2*zbar/rbar)),0,((a3/rbar)+B3+(G3*zbar/rbar
)),0);
row4=c(G1,B1,G2,B2,G3,B3);
constitutiveprop=c(1-Nu,Nu,Nu,0,Nu,1-Nu,Nu,0,Nu,Nu,1-Nu,0,0,0,0,(1-2*Nu)/2)
BMatrix=(1/(2*Area))*matrix(c(row1,row2,row3,row4),nrow=4,byrow=T);
DPlaneStress=YoungMod/((1+Nu)*(1-2*Nu))*matrix(constitutiveprop,nrow=4,byrow=T);
r1=2*i-1; r2=2*i
r3=2*j-1; r4=2*j
r5=2*k-1; r6=2*k
localstresses=DPlaneStress%*%BMatrix%*%vec_globalnodaldisp[c(r1,r2,r3,r4,r5,r6)]
return(localstresses)
}