Manual för ett litet FEM-program i Matlab

Relevanta dokument
Matrismetod för analys av stångbärverk

Umeå universitet Tillämpad fysik och elektronik Annika Moström Fackverk. Projektuppgift 1 Hållfasthetslärans grunder Våren 2012

Umeå universitet Tillämpad fysik och elektronik Annika Moström Rambärverk. Projektuppgift 2 Hållfasthetslärans grunder Våren 2012

Övning 3 FEM för Ingenjörstillämpningar Rickard Shen Balkproblem och Ramverk

Hemuppgift 2, SF1861 Optimeringslära för T, VT-10

4.6 Stelkroppsrörelse i balk

8 Teknisk balkteori. 8.1 Snittstorheter. 8.2 Jämviktsekvationerna för en balk. Teknisk balkteori 12. En balk utsätts för transversella belastningar:

1.6 Castiglianos 2:a Sats och Minsta Arbetets Princip

Tentamen i Hållfasthetslära AK2 för M Torsdag , kl

Belastningsanalys, 5 poäng Balkteori Deformationer och spänningar

Tekniska Högskolan i Linköping, IKP Tore Dahlberg TENTAMEN i Hållfasthetslära grk, TMHL07, kl 8-12 DEL 1 - (Teoridel utan hjälpmedel) LÖSNINGAR

= 1 E {σ ν(σ +σ z x y. )} + α T. ε y. ε z. = τ yz G och γ = τ zx. = τ xy G. γ xy. γ yz

Lösning: ε= δ eller ε=du

6.2 Transitionselement

Övning 1 FEM för Ingenjörstillämpningar Rickard Shen

LÖSNINGAR. TENTAMEN i Hållfasthetslära grk, TMHL07, kl DEL 1 - (Teoridel utan hjälpmedel)

Hållfasthetslära. VT2 7,5 p halvfart Janne Färm

Tentamen i kursen Balkteori, VSM-091, , kl

Reducering av analystid vid svetssimulering

Stångbärverk. Laboration. Umeå universitet Tillämpad fysik och elektronik Staffan Grundberg. 14 mars 2014

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Hållfasthetslära. VT2 7,5 p halvfart Janne Färm

Hållfasthetslära. VT2 7,5 p halvfart Janne Carlsson

Konstruktionsuppgifter för kursen Strukturmekanik grunder för V3. Jim Brouzoulis Tillämpad Mekanik Chalmers

Formelblad, lastfall och tvärsnittsdata

Tentamen i kursen Balkteori, VSM-091, , kl

Belastningsanalys, 5 poäng Töjning Materialegenskaper - Hookes lag

FEM M2 & Bio3 ht06 lp2 Projekt P 3

En kort introduktion till. FEM-analys

Hållfasthetslära. VT2 7,5 p halvfart Janne Färm

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

MMA132: Laboration 2 Matriser i MATLAB

Belastningsanalys, 5 poäng Balkteori Moment och tvärkrafter. Balkböjning Teknisk balkteori Stresses in Beams

Tentamen i Hållfasthetslära gkmpt, gkbd, gkbi, gkipi (4C1010, 4C1012, 4C1035, 4C1020) den 13 december 2006

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Programutveckling för Tekniska Tillämpningar Arbetsblad 5

FEM1: Randvärdesproblem och finita elementmetoden i en variabel.

Lösning: B/a = 2,5 och r/a = 0,1 ger (enl diagram) K t = 2,8 (ca), vilket ger σ max = 2,8 (100/92) 100 = 304 MPa. a B. K t 3,2 3,0 2,8 2,6 2,5 2,25

Tentamen TEN1 HI

Datorbaserade beräkningsmetoder

SF1624 Algebra och geometri

Föreläsning 5. Approximationsteori

VSMA01 - Mekanik ERIK SERRANO

5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA

Lösningar/svar till tentamen i MTM113 Kontinuumsmekanik Datum:

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

u av funktionen u = u(x, y, z) = xyz i punkten M o = (x o, y o, z o ) = (1, 1, 1) i riktningen mot punkten M 1 = (x 1, y 1, z 1 ) = (2, 3, 1)

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

FEM M2 & Bio3 ht07 lp2 Projekt P 3 Grupp D

Hållfasthetslära. HT1 7,5 hp halvfart Janne Carlsson

Angående skjuvbuckling

Tentamen i Hållfasthetslära AK

Belastningsanalys, 5 poäng Fiberarmering - Laminat

TENTAMEN i Hållfasthetslära; grundkurs, TMMI kl 08-12

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Lösningsförslag, Inlämningsuppgift 2, PPU203 VT16.

Moment Viktiga exempel Övningsuppgifter

TENTAMEN I KURSEN DIMENSIONERING AV BYGGNADSKONSTRUKTIONER

Laboration 3. Funktioner, vektorer, integraler och felskattning

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Laboration 3. Funktioner, vektorer, integraler och felskattning

Programkonstruktion och Datastrukturer

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

TAIU07 Matematiska beräkningar med Matlab

Användarhandledning Version 1.2

Livens inverkan på styvheten

Tekniska Högskolan i Linköping, IKP Tore Dahlberg TENTAMEN i Hållfasthetslära; grk, TMMI17, kl DEL 1 - (Teoridel utan hjälpmedel)

Kompositberä kning i Solidworks

TANA17 Matematiska beräkningar med Matlab

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

Gradientbaserad strukturoptimering

Tekniska Högskolan i Linköping, IKP Tore Dahlberg TENTAMEN i Hållfasthetslära; grk, TMMI17, kl DEL 1 - (Teoridel utan hjälpmedel)

1. För vilka värden på konstanterna a och b är de tre vektorerna (a,b,b), (b,a,b) och (b,b,a) linjärt beroende.

Biomekanik Belastningsanalys

Bromallar Eurocode. Bromall: Omlottskarvning. Innehåll. Minimimått vid omlottskarvning av armeringsstänger samt beräkning av skarvlängd.

Lösningsskisser till Tentamen 0i Hållfasthetslära 1 för 0 Z2 (TME017), verkar 8 (enbart) skjuvspänningen xy =1.5MPa. med, i detta fall,

HI1024 Programmering, grundkurs TEN

Projekt Finit Element-lösare

6.8 b) Konsistenta Nodlaster med Vanlig Integrering

VSMA01 - Mekanik ERIK SERRANO

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Lunds Tekniska Högskola, LTH

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

Material, form och kraft, F11

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

Uppgift 1a (Aktiekurser utan poster)

B3) x y. q 1. q 2 x=3.0 m. x=1.0 m

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Tentamen TEN1 HI

HÅLLFASTHETSLÄRA Hållfasthetslärans grundläggande uppgift är att hjälpa oss att beräkna dimension och form hos en konstruktion så att den vid

Föreläsning 10. Grafer, Dijkstra och Prim

Uppgift 1 ( Betyg 3 uppgift )

Föreläsning 10. Grafer, Dijkstra och Prim

Två gränsfall en fallstudie

Tekniska Högskolan i Linköping, IKP Tore Dahlberg TENTAMEN i Hållfasthetslära; grk, TMMI17, kl DEL 1 - (Teoridel utan hjälpmedel)

Deformationer i träbjälklag och trägolv på grund av fuktvariationer

CHALMERS Finit Elementmetod M3 Institutionen för tillämpad mekanik. Teorifrågor

1. Ett material har dragprovkurva enligt figuren.

Transkript:

KTH HÅLLFASTHETSLÄRA Manual för ett litet FEM-program i Matlab Programmet består av en m-fil med namn SMALL_FE_PROG.m och en hjälp-fil för att plotta resultat som heter PLOT_DEF.m. Input För att köra programmet behöver man anropa det med information om problemet man vill lösa givet på en specifik form som programmet kan förstå. Förslagsvis skriver man ett eget Matlab-script (se bifogat exempel RunFEprog.m) som etablerar input och anropar SMALL_FE_PROG.m. Följande input behövs: Nodes, Elements, ElemType, MtrlProp, CrossSection, PrescribedU, PointLoads, och VolumeLoads angivna i den ordningen. Strukturen på de olika input kommer att förklaras i relation till exemplet som illustreras i Figur 1 nedan. y L 1 e2 3 e6 5 e1 e3 e5 e7 0.134L 2 e4 0.5L L 1.5L 2L 2.5L 4 x Figur 1: Enkelt exempel med 5 noder och 7 element. Nodes Problemet har numnodes noder, då blir x 1 y 1 x 2 y 2 Nodes =.. x numn y numn (numn 2) där x i, y i är koordinaterna för nod nummer i. För vårt exempel i Figur 1 så blir 0.5 1.0 1.0 0.134 Nodes = 1.5 1.0 2.0 0.134 2.5 1.0 där L = 1[längdenhet] har antagits. Carl Dahlberg, Feb 2015 1

Elements Alla elementtyper har två noder (en nod i varje ände), förutom Bar3 som har en tredje nod i mitten. Matrisen Elements har en rad för varje element där de noder som definierar elementet listas i ordning. För vårt exempel i Figur 1 så blir ElemType Elements = 1 2 1 3 2 3 2 4 4 3 3 5 4 5 e1 står på rad 1 e2 står på rad 2 osv...... till och med e7 på rad 7 Det här är en text-sträng som anger vilken elementtyp som ska användas. Det finns 4 olika element implementerade: Bar2, Bar3, Beam2 och Frame2. Element Antal noder Lokala DOF Globala DOF Teori Bar2 2 u U x, U y Stång Bar3 3 u U x, U y Stång Beam2 2 w, θ U x, U y, Θ z Balk Frame2 2 u, w, θ U x, U y, Θ z Stång & balk Tabell 1: Elementtyper. Elementtyp Bar2 är ett linjärt stångelement där den lokala koordinaten 0 ξ 1, för övriga element gäller 1 ξ 1. Den kvadratiska stången Bar3 är definierat så att nod 1 och nod 2 har ξ 1 = 1 och ξ 2 = 1 och nod 3 befinner sig mellan dessa så att ξ 3 = 0. Element Bar3 bör brukas med viss försiktighet då det kan vara lite knepigt att föreskriva tillräckligt många randvillkor för att undvika att elementet beskriver en mekanisk led. MtrlProp och CrossSection Två kolumn-vektorer med längd numelem (antal element). I MtrlProp står E- modulen för materialet i varje element. I CrossSection är stången/balkens tvärsnitt beskrivet via sidlängden h av den kvadrat som antas beskriva tvärsnittet. Antagandet om kvadratiskt tvärsnitt kan någorlunda enkelt ändras genom att man gör några mindre ändringar i koden mer om detta senare. Carl Dahlberg, Feb 2015 2

KTH HÅLLFASTHETSLÄRA PrescribedU Betrakta Figur 2 där exempelproblemet har beskrivits med randvillkor och laster och kommer att användas för att exemplifiera de följande input till programmet. Låt oss börja med föreskrivna frihetsgrader (DOF). P P 1 3 5 P 2 4 Figur 2: Exempelproblemet med laster och randvillkor. Matrisen PrescribedU ska innehålla en rad för varje föreskriven DOF och har tre kolumner. Den första kolumnen anger vid vilken nod man föreskriver en DOF, den andra anger i vilken riktning 1 och den sista kolumnen anger vad det föreskrivna värdet är (ofta 0). Från Figur 2 ser man att vid nod 2 så är både U 2x = U 2y = 0 och vid nod 4 tillåts ingen förskjutning i y-led, dvs U 4y = 0, vilket ger PointLoads PrescribedU = 2 1 0 2 2 0 4 2 0 Nod 2, U x, = 0 Nod 2, U y, = 0 Nod 4, U y, = 0 Punktlaster som beskrivs enligt samma metod som för PrescribedU, dvs först listas noden, sedan riktningen 2 och sist kraft/moment-värdet. Krafterna i Figur 2 ger PrescribedU = där P = 1[kraftenhet] har antagits. 1 1 0.707 1 2 0.707 3 2 1.000 5 1 1.000 1 Riktningen anges med en siffra, 1-3, där 1 betyder U x, 2 motsvarar U y och 3 indikerar rotationsfrihetsgraden, dvs Θ z (om den finns med i problemet). 2 Riktningen anges med en siffra, 1-3, där 1 : F x, 2 : F y och 3 : M z (om den finns med i problemet). Carl Dahlberg, Feb 2015 3

VolumeLoads Slutligen finns möjligheten att föreskriva konstanta volymslaster, dvs en kraft/volymsenhet i varje element. De anges i VolumeLoads som två kolumner, där varje rad representerar [K x K y ] för varje element. Om vi t.ex. tänker oss att elementen i vårt exempelproblem har densiteten ρ och påverkas av en tyngdkraftsacceleration g i y-led så kan vi ange detta som VolumeLoads = 0.0 1.0 0.0 1.0.. 0.0 1.0 där ρg = 1[kraftenhet/volym] har antagits. Output element 1 element 2. element 5 Programmet returnerar i sin nuvarande version fyra saker: U, F, Sigma och numnodaldof. De tre första beskriver lösningen där U är frihetsgraderna, F är nodkrafterna och Sigma är spänningen i varje element. Den sista output numnodaldof är antingen 2 eller 3 och anger antalet frihetsgrader per nod och används endast av hjälprutinen PLOT_DEF.m för att visa deformationen. Man kan givetvis returnera fler saker ur programmet om så skulle behövas, t.ex. om man vill ha tillgång till styvhetsmatrisen. Då spänningen i ett element inte behöver vara konstant kan det tyckas något märkligt att programmet endast returnerar ett spänningsvärde per element. Det är designat så för att underlätta och göra programmet så enkelt som möjligt och man kan givetvis tänka sig mer komplicerade varianter. Därför krävs dock en genomgång om vad spänningsvärdet faktiskt representerar för de olika elementen. Sigma för element Bar2 Eftersom detta element är linjärt i sin beskrivning av förskjutningen u så kommer töjningen ε att vara konstant. Således blir även spänningen σ = Eε en konstant och det finns inget problem med att återge endast ett värde för varje element. Spänningen beräknas som σ = EBd e. Sigma för element Bar3 Eftersom detta element är kvadratiskt i sin beskrivning av förskjutningen u så kan töjningen ε variera linjärt. Spänningen utvärderas för ett antal punkter, ξ i, längs med elementet: σ i = EB i d e. Det spänningsvärde som har störst magnitud, dvs som är max σ i väljs och returneras sedan med sitt tecken. Utvärderingspunkterna är valda till ξ 1,2 = ±1/ 3, men kan givetvis ändras. Carl Dahlberg, Feb 2015 4

Sigma för element Beam2 I balkteori kan töjningen givetvis variera längs med elementet (i lokal x- riktning) men det även finns ett implicit linjärt beroende på den lokala z- riktningen, dvs genom tjockleken. Utböjningen är en funktion av x, w = w(x), men enligt kinematik för balkar får man att töjningen även är en funktion av z enligt ε = ε(x,z) = E d2 w dx z. I programmet har det antagits 2 att balken har ett symmetriskt tvärsnitt och därför kommer spänningen vara lika stor på över och undersidan, men med olika tecken. För enkelhetens skull presenteras det positiva värdet, men man ska alltså vara medveten om att balken upplever en lika stor tryckspänning på andra sidan. Spänningen beräknas som σ = E Bd e h 2 Sigma för element Frame2 Här gäller att den totala spänningen är en kombination av spänningen från normaldeformationen och böjdeformationen, σ(x,z) = σ n (x)+σ b (x,z). Eftersom σ n kommer vara en konstant överlagrad (superponerad) spänning ovanpå bidraget från σ b så kommer inte σ(x,z) att nödvändigtvis vara symmetrisk i z-led. Dvs, det är inte givet att det blir lika mycket tryck på ena sidan som det blir drag på den andra. Därför beräknas bägge värdena och den med störst magnitud väljs och returneras med tecken för att kunns skilja på drag/tryck. Koden Koden består av en huvudfunktion, SMALL_FE_PROG, på rad 8 till 112. Merparten av dessa rader är kommentarer för att göra koden mer förståelig. Några av kommentarerna saknas 3 då de ingår som frågor i inlämningsuppgift 3. Huvudfunktionen beskriver flödet genom en FE-lösare och anropar ett antal hjälpfunktioner som förhoppningsvis har fått beskrivande namn. Nedan följer några korta kommentarer angående en del av funktionerna ELEMENT STIFFNESS MATRIX Funktionen på rad 147-182 returnerar matrisen k e. Lite slarvigt kan man säga att operationen k e = B T CB J dv redan är genomförd analytiskt för varje elementtyp i förväg (detta är möjligt eftersom de inte är isoparametriska element). VOLUME FORCE Funktion på rad 186-202 där volymslaster hanteras. Information från transformationsmatrisen T används för att dela upp vektorn K = [K x K y ] T i 3 Jag kommer lägga upp en version med alla kommentarer efter deadline för HU3. Carl Dahlberg, Feb 2015 5

komponenter som verkar längs och tvärs elementet. Detta därför att stänger bara kan hantera krafter längs sin utsträckning och balkar endast tvärs. Elementet FRAME2 kan hantera bägge. AREA och AREA MOMENT OF INERTIA Två väldigt korta funktioner på raderna 236-247 som returnerar tvärsnittsegenskaper. Som det är kodat nu så antas ett kvadratiskt tvärsnitt, men detta kan enkelt ändras till något annat om man vill. För spänningsutvärdering har det antagits att tvärsnittet är symmetriskt så om man vill koda in t.ex. ett trekantigt tvärsnitt så bör man också ta höjd för detta i funktionen EVALUATE_STRESS vid elementen BEAM2 och FRAME2. SHAPEFNC AND BMTRX Funktion på rad 329-375 som returnerar N och B för ett givet värde på den lokala koordinaten ξ. Eftersom de element som är implemeterade inte behöver B för att etablera k e så används denna funktion endast vid beräkning av spänning (egentligen töjning), enligt ε = Bd e i en stång och ε = Bd e z i en balk, och sedan givetvis σ = Eε. Se kommentarer i funktionen EVALUATE_STRESS för detaljer. Så som programmet är skrivet just nu så används inte N någonstans. CHECK INPUT Den sista funktionen i filen (men som faktiskt anropas först av alla). Den returnerar antal frihetsgrader per nod och antalet noder per element. Dessutom gör den en sanity check på input som bör fånga upp och varna för några av de vanligaste misstagen man kan tänkas göra i input. Det finns dock fortfarande oändligt med möjligheter kvar att göra fel på... Carl Dahlberg, Feb 2015 6