Teknillinen korkeakoulu Mat-5.87 Epälineaarisen elementtimenetelmän perusteet (Mikkola/Ärölä) 2. harjoituksen ratkaisut Teht. Kirjan esimerkissä on kaikissa matriiseissa diagonaalin ulkopuolisilla termeillä virheelliset etumerkit. Tämä malliratkaisu on laskettu käyttäen oikeita etumerkkejä. Materiaalinopeus on (E7..8) [ ] sin θ cos θ v = ω X. () cos θ sin θ Konvektionopeus on (E7..2) c = (ω ω 2 ) Yhteydestä (7.2.5) c = v ˆv saadaan verkkonopeudeksi [ ] sin θ cos θ X. (2) cos θ sin θ [ ] sin θ cos θ ˆv = v c = ω 2 X = ω 2 v. (3) cos θ sin θ ω Saatua verkkonopeuden ja materiaalinopeuden välistä yhteyttä käyttäen saadaan konvektionopeudeksi c materiaalinopeuden avulla lausuttuna c = v ˆv = v( ω 2 ω ). (4) Teht. 2 Käytetään hyväksi Nansonin kaavaa ndγ = JF T n dγ. Lähdetään liikkelle kaavasta t = σ n p n pn, (5) josta seuraa f ext = N tdγ pn ndγ. (6) Γ Γ Solveltamalla Nansonin kaavaa kuvaukseen kantaelementistä nykytilaan saadaan ndγ = J F T n dγ, (7) jossa dγ = ddη ja n = e ζ (e ζ = e e η ). Tällöin yhdelle elementille f ext Derivoimalla tämä ajan suhteen saadaan ḟ ext pn J F T e ζ ddη. (8) N (ṗj F T Tarkastellaan kahden jälkimmäisen termin osuutta ḟ ext e ζ + pj F T e ζ + pj (F T ) ) e ζ ddη. (9) N ( p J F T e ζ + pj (F T ) ) e ζ ddη. () Muodonmuutosgradientti kantaelementistä nykytilaan on x, x,η x,ζ [F ] = y, y,η y,ζ. () z, z,η z,ζ
Tämän käänteismatriisi on [F ] = J cof x, cof y, cof z, cof x,η cof y,η cof z,η cof x,ζ cof y,ζ cof z,ζ, (2) cof x i,j = 2 e ikle jmn x k,m x l,n, x i = x, y, z ; j =, η, ζ. (3) Nähdään, että käänteismatriisin aikaderivaatta on Näin ollen Muokataan lauseketta ḟ ext Komponenttien aikaderivaatat ovat ([F ] ) J J [F ] + J [ d dt cof x j,i] (4) [ d dt cof x i,j] pn [ d dt cof x i,j] ddη. (5) = { d dt cof x i,ζ} (6) d dt cof x i,3 = 2 e ikle 3mn (v k,m x l,n + x k,m v l,n ). (7) Sijoitetaan approksimaatio v k = N J v kj, jolloin saadaan d dt cof x i,3 = 2 e ikle 3mn (N J,m x l,n v kj + N J,n x k,m v lj ) = 2 e ikle 3mn (N J,m x l,n N J,n x l,m )v kj = e ikl (N J, x l,η N J,η x l, )v kj Viimeisessä kohdassa on käytetty oppikirjan merkintöjä (6.4.3) Näin on saatu tulos ḟ ext i = (N J, H η ik N J,ηH ik )v kj. (8) H η ik = e iklx l,η, H ik = e iklx l,. (9) pn (N J, H η ik N J,ηH ik ) ddη v kj, (2) eli K ext ikj pn (N J, H η ik N J,ηH ik ) ddη. (2) Kirjoitetaan vielä koko matriisi K ext J pn (N J, z,η y,η z,η x,η y,η x,η N J,η z, y, z, x, y, x, ) ddη. (22) 2
Teht. 3 Tasapainotehtävän implisiittinen ratkaisu voidaan kirjoitaa seuraavan kaavion mukaiseen muotoon.. Taulukoiden ja muuttujien alustus Tasapainotilaratkaisun vuokaavio 2. Ulkoisen kuorman inkrementti fn+ ext = fn ext + f ext 3. Newtonin iteraatio kuormainkrementille n + (a) lasketaan sisäiset voimat f int ja tangentiaalijäykkyys K = K mat + K geo aliohjelmassa tangen (b) poistetaan kiinnitettyjä vapausasteita vastaavat termit tangenttijäykkyydestä K ja residuaalista r (c) lasketaan residuaali r = f int f ext (d) ratkaistaan linearisoitu yhtälöryhmä d K r (e) päivitetään siirtymä d = d + d (f) tarkastetaan konvergenssikriteeri. Jos se ei täyty palataan kohtaan 3(a) 4. Päivitetään aika-askellaskuri ja aika: n n +, t t + t 5. Lopetus, jos t < t max palataan kohtaan 3. Tämän tehtävän ratkaisussa voidaan käyttää apuna kierroksen tehtävässä 4 tehtyjä ohjelmanpätkiä. Tangentiaalijäykkyyksien laskennassa tarvittava funktio laadittiin jo viime harjoituksessa. Tähän lisätään vain sisäisten solmuvoimien f int laskenta. Elementin sisäiset voimat saadaan laskettua lausekkeesta (B4.3.2) (f int ) T = B T σ dω [ fx int Ω f int y ] = [ ] [ ] σ N,x N xx σ xy,y aj σ yx σ d dη, yy (23) missä a on elementin paksuus. Suoritettasessa laskut yksikköpaksuutta kohti, asetetaan a =. Suorittamalla integrointi Gaussin kavalla saadaan (f int ) T = n Q n Q2 Q = Q 2 = w Q w Q2 B( Q, η Q2 ) T σ( Q, η Q2 )aj ( Q, η Q2 ). (24) Lisäksi laaditaan pääohjelma, jossa hoidetaan voiman inkrementointi aika-askeleille ja Newton- Rhapson iterointi jokaisen aika-askelen sisällä. Tangentiaalijäykkyys ja sisäiset voimat lasketaan kaikille elementin vapausasteille ja näin saaduista matriiseista poistetaan kiinnitettyjä vapausasteita vastaavat rivit ja sarakkeet pääohjelmassa. Rakenteen aktiiviset vapausasteet ja niiden numerointi on esitetty kuvassa (). 3
y d 4 d 3 d 2 4 3 2 d Kuva : Aktiivisten vapausasteiden numerointi. Kuvassa (2a) on esitetty elementtin muodon muuttuminen laskennan edetessä. Kuvan tapauksessa on laskenta suoritettu käyttäen kahdeksaa aika-askelta. Kuvassa (2b) on esitetty solmun 3 voima-siirtymä käyrä. Laskenta on suoritettu käyttäen yhtä, kahta ja kahdeksaa aika-askelta (kuorma inkerementtiä). Koska materiaali on elastista, on lopullinen tasapainotila polusta riippumaton ja kaikissa tapauksissa päädytään samaan siirtymän loppuarvoon. Kuten kuvasta (2b) voidaan havaita, edellyttää voima-siirtymäkäyrän tarkempi laskeminen kuitenkin useamman aika-askelen ottamista. 2.5 25 2 2 n = n = 2 n = 8.5 5 F.5 5.5.5 2 2.5 x.2.4.6.8.2.4.6.8 2 u Kuva 2: (a) Elementin muodonmuutos kuorman kasvaessa. (b) Solmun 3 voima-siirtymäkäyrä laskettuna yhtä, kahta ja kahdeksaa aika-askelta käyttäen. Newton-Rhapson iteraation konvergenssin mittarina käytettiin suuretta e = r f ext (25) teraation katsottiin supenneen, kun e < tol, missä tol on jokin ennalta määrätty toleranssi. Kuvassa (3) on esitetty ratkaisun konvergenssiä piirtämällä virhemitta e Newton-Rhapson iteraatiokierroksen n funktiona. Kuvassa (3a) on tilanne yhden kuormainkrementin tapauksessa ja kuvassa (3b) puolestaan kahdeksan inkrementin tapauksessa. Kummassakin tapauksessa asetettiin toleranssi niin tiukaksi, etta se oli mahdotonta saavuttaa ja ratkaisut ajettiin tietokoneen lasketatarkkuuteen. Tämä näkyy virhemitan vakiintumisena tasolle e 5. Laskennassa käytettiin MATLAB ohjelmistoa ja tiedostoja h2t.m, tangen.m ja muoto4.m. Näistä viimeinen on sama, jota käytettiin jo edellisellä harjoituskierroksella. Tiedosto tangen.m on miltei sama kuin harjoituksessa Esim: tol = 5 64-bittisellä aritmetiikalla ja tol = 3 32-bittisellä aritmetiikalla. R.Cook, D.Malkus, M.Plesha, Concepts and Applications of Finite Element Analysis, 3rd edition, J.Wiley & Sons, 989. s.59 4
2 2 4 4 6 6 8 r / f ext 8 r / f ext 2 4 2 6 4 8 6 5 5 2 25 3 35 4 N R iteraatiokierros 2 5 5 2 25 3 N R iteraatiokierros Kuva 3: Virhemitan e = r / f ext kehittyminen Newtonin iteraation edetessä käytettäessä (a) yhtä ja (b) kahdeksaa aika-askelta. käytetty. Siihen on lisätty ainoastaan sisäisten voimien laskenta. Käytetyt tiedostot on esitetty alla. h2t.m nstep = ; tmax = 4.; dt = tmax/nstep; F = 5.*[; ; ; ]; X = [,,,;,,,]; df = F/nstep; %Taulukoiden alustus D = [;;;]; fext = [;;;]; CN = zeros(,); U = zeros(,nstep); F = zeros(,nstep); cn = ; %Askelten lukumäärä ja loppuaika %Aika-askel %Ulkoinen voima %Alkutilan solmukoordinaatit %Voimainkrementti %Siirtymät %Ulkoinen voima aika-askeleella %Konvergenssin tarkkailuun r / fext %Solmun 3 kokonaissiirtymä %Solmuun 3 vaikuttava voima %Silmukka yli aika-askelten t = ; mstep = ; while(t < tmax) fext = fext + df; %N-R iteraatio nmax = 39; tol = e-2; jatka = ; n = ; while(jatka) n = n + ; U = [,D(),D(2),;,,D(3),D(4)]; x = X + U; [K,fint] = tangen(x,x); ij = [3,5,6,8]; K = K(ij,ij); fint = fint(ij); %Solmusiirtymät %Nykytilan solmukoordinaatit %Tangentiaalijäykkyys %Reunaehtojen huomionti 5
r = fint - fext; dd = -inv(k)*r; D = D + dd; %Residuaali %Siirtymäinkrementti %Siirtymän päivitys fnorm = norm(r)/norm(fext); CN(cn) = fnorm; cn = cn + ; if(fnorm < tol n > nmax) n,fnorm jatka = ; %Voimien virhenormi %Konvergenssikriteerin tarkastus U(mstep) = sqrt(d(2)^2 + D(3)^2); F(mstep) = sqrt(fext(2)^2 + fext(3)^2); %Solmun 3 siirtymän tallennus %Solmun 3 voiman tallennus mstep = mstep + ; t = t + dt %Aika-askel laskurin päivitys %Ajan päivitys tangen.m function[k,fint] = tangstif(x,x) lam =.; mu =.; %Materiaalivakiot X =./sqrt(3.)*[-.,.]; %ntegrointipisteiden koordinaatit W = [.,.]; %Painokertoimet a =.; %Elementin paksuus Kmat = zeros(8,8); Kgeo = zeros(8,8); %Taulukoiden alustus HH = zeros(4,4); Fint = zeros(8,); fint=zeros(8,); U = x - X; %Siirtymät %ntegrointi for ipx = :2 %suunta xi for ipy = :2 %suunta eta eta = X(ipx); xi = X(ipy); %integrointipisteen koordinaatit w = W(ipx)*W(ipy); %painokerroin [N,J] = muotof4(x,xi,eta); %Muotofunktiot ja derivaatat X:n ja Y:n suhteen H = zeros(2); %Siirtymägradientti for = :4 H = H + [U(,)*N(2,), U(,)*N(3,); U(2,)*N(2,), U(2,)*N(3,)]; F = H + eye(2); B = F*F'; %Muodonmuutosgradientti %Vasemmanpuoleinen C-G def.tensori JF = det(f); %Muodonmuutosgradientin deteminatti if(jf <= ) 'Virhe: Jacobin determinantti nolla tai negatiivinen' pause [N,J] = muotof4(x,xi,eta); %Muotofunktiot ja derivaatat x:n ja y:n suhteen 6
lam2 = lam/jf; mu2 = (mu - lam*log(jf))/jf; apu = lam2 + 2.*mu2; C = [apu, lam2,; lam2, apu, ;,, 2.*mu2]; %Konstitutiivinen matriisi Sig = mu/jf*(b-eye(2)) + lam/jf*log(jf)*eye(2); %Jännitystensori B = [N(2,), ;, N(3,); N(3,), N(2,)]; B2 = [N(2,2), ;, N(3,2); N(3,2), N(2,2)]; B3 = [N(2,3), ;, N(3,3); N(3,3), N(2,3)]; B4 = [N(2,4), ;, N(3,4); N(3,4), N(2,4)]; B = [B,B2,B3,B4]; BB = N((2:3),:); for = :4 fint((2*-:2*)) = BB(:,)'*Sig; %Sisäiset voimat Kmat = Kmat + B'*C*B*a*J*w; HH = HH + BB'*Sig*BB*a*J*w; Fint = Fint + fint*a*j*w; for i = :4 for j = :4 Kgeo(2*i-,2*j-) = HH(i,j); Kgeo(2*i,2*j) = HH(i,j); K = Kmat + Kgeo; 7