Úvod do simulace dynamiky sypkých hmot Lukáš Pospíšil Katedra aplikované matematiky, VŠB - Technická Univerzita Ostrava Seminář aplikované matematiky, 1. 4. 2014
Osnova formulace problému transformace lokálních souřadnic Eulerovy úhly jednotkové kvaterninony rotace od pozice k rychlosti kontaktní úlohy bez tření, reformulace na QP krátce o Coulombovském tření Přednáška obsahuje 4 videa, jeden příklad a jeden důkaz.
Formulace problému 2 1 0 5 1 2 2 0 2 2 1 0 1 2 4 3 2 2 1 1 0 1 0 2 2 0 2 2 2 1 0 1 2 1 2 2 1 0 0 1 2 2 0 2 2 1 0 1 2 2 4 2 0 2 4
Formulace problému Vztah mezi lokálním a globálním systémem T := [T x, T y, T z] T - poloha těžiště v globálním souřadnicovém systému, φ, θ, ψ - Eulerovy úhly rotace. r glob = T + Rr lok r lok R 3 souřadnice bodu v lokálním systému, r glob R 3 souřadnice bodu v globálním systému. R R 3,3 matice rotace (z φ, θ, ψ).
Eulerovy úhly rotace 2 1 0 1 2 r lok R 3 2 0 2 2 1 0 1 2
Eulerovy úhly rotace 2 1 0 1 2 2 R 1 = cos φ sin φ 0 sin φ cos φ 0 0 0 1 R 1r lok 0 2 2 1 0 1 2
Eulerovy úhly rotace 2 1 0 1 2 2 R 2 = 1 0 0 0 cos θ sin θ 0 sin θ cos θ R 2R 1r lok 0 2 2 1 0 1 2
Eulerovy úhly rotace 2 1 0 1 2 2 R 1 = cos ψ sin ψ 0 sin ψ cos ψ 0 0 0 1 R 3R 2R 1r lok 0 2 2 1 0 1 2
Eulerovy úhly rotace R = r glob = T + R } 3R {{ 2R } 1 =:R cos ψ cos φ cos θ sin φ sin ψ sin ψ cos φ cos θ sin φ cos ψ sin θ sin φ cos ψ cos φ + cos θ cos φ sin ψ sin ψ sin φ + cos θ cos φ cos ψ sin θ sin φ sin θ sin ψ sin θ cos φ cos θ Úloha se mění v čase (T x(t), T y (t), T z(t), φ(t), θ(t), ψ(t)), tj. okamžitá poloha bodu v čase t R + r glob(t) = T (t) + R(t)r lok r lok
Rychlost r glob (t) = T (t) + R(t)r lok Okamžitá rychlost Okamžitou rychlost získáme derivací dle t ṙ glob = Ṫ + Ṙr lok Ṙ =?
Rychlost R je ortogonální, tj. derivací Úpravou R T R = I, ṘR T + RṘ T = 0. ṘR T = RṘT ṘR T = (ṘRT ) matice ṘRT je antisymetrická. Je to matice vektorového součinu.
Matice vektorového součinu Mějme u = [u 1, u 2, u 3] T R 3, v = [v 1, v 2, v 3] T R 3. Pak i j k u v = u 1 u 2 u 3 v 1 v 2 v 3 = (u 2v 3 v 2 u 3 )i+(u 3 v 1 u 1 v 3 )j+(u 1 v 2 u 2 v 1 )k = u 2v 3 v 2 u 3 u 3 v 1 u 1 v 3 u 1 v 2 u 2 v 1 Lze však také maticově u v = ũv = u 2v 3 v 2u 3 u 3v 1 u 1v 3 u 1v 2 u 2v 1 kde ũ R 3,3 je matice vektorového součinu 0 u 3 u 2 ũ := u 3 0 u 1. u 2 u 1 0 Tato matice je antisymetrická, tj. ũ = ũ T
Rychlost Označme Pak úpravou Dosazením ω := R T Ṙ. ω = R T Ṙ R ω = RR T Ṙ R ω = Ṙ ṙ glob = Ṫ + Ṙr lok ṙ glob = Ṫ + R ωr lok ṙ glob = Ṫ + R( ω r lok) kde ω = [ φ, θ, ψ] T R 3 je úhlová rychlost.
Motivace r glob = T + Rr lok ṙ glob = Ṫ + R( ω r lok) Vyčíslit R znamená vyčíslit goniometrické funkce. Jednotkový kvaternion rotace R 3 [φ, θ, ψ] := ω e := [e 0, e 1, e 2, e 3] R 4, e = 1 Díky této reprezentaci nebude nutno vyčíslovat goniometrické funkce.
Kvaternion rotace - motivace [φ] [e 0, e 1] Polární souřadnice e1 e0 e 0 = cos φ e 1 = sin φ
Kvaternion rotace - motivace Sférické souřadnice [φ, θ] [e 0, e 1, e 2] e2 e0 e 0 = sin φ cos θ e 1 = sin φ sin θ e 2 = cos φ e 1
Kvaternion rotace - motivace Kvaternion rotace [φ, θ, ψ] [e 0, e 1, e 2, e 3] e 0 = cos ( 1 2 (φ + θ)) cos ( 1 2 ψ) e 1 = cos ( 1 2 (φ θ)) sin ( 1 2 ψ) e 2 = sin ( 1 2 (φ θ)) sin ( 1 2 ψ) e 3 = sin ( 1 2 (φ + θ)) cos ( 1 2 ψ)
Kvateriony místo Eulerových úhlů Zaved me matice kde E := G := e 1 e 0 e 3 e 2 e 2 e 3 e 0 e 1 e 3 e 2 e 1 e 0 e 1 e 0 e 3 e 2 e 2 e 3 e 0 e 1 e 3 e 2 e 1 e 0 e 123 = [e 1, e 2, e 3] T, = [ e 123, ẽ 123 + e 0I ] = [ e 123, ẽ 123 + e 0I ] e = [e 0, e 1, e 2, e 3] T = [e 0, e T 123] T
Kvateriony místo Eulerových úhlů Platí Ee = Ge = e 1 e 0 e 3 e 2 e 2 e 3 e 0 e 1 e 3 e 2 e 1 e 0 e 1 e 0 e 3 e 2 e 2 e 3 e 0 e 1 e 3 e 2 e 1 e 0 e 0 e 1 e 2 e 3 e 0 e 1 e 2 e 3 = 0 = 0
Kvateriony místo Eulerových úhlů Platí EE T = e 1 e 0 e 3 e 2 e 2 e 3 e 0 e 1 e 3 e 2 e 1 e 0 e 1 e 2 e 3 e 0 e 3 e 2 e 3 e 0 e 1 e 2 e 1 e 0 = I R3 (Matice E má ortonormální řádky) e 1 e 2 e 3 E T E = e 0 e 3 e 2 e 1 e 0 e 3 e 2 e 3 e 0 e 1 e 2 e 3 e 0 e 1 e e 2 e 1 e 3 e 2 e 1 e 0 0 = I ee T R 4 Obdobně GG T = I, G T G = I ee T
Kvateriony místo Eulerových úhlů Platí (!) EG T = e 1 e 0 e 3 e 2 e 2 e 3 e 0 e 1 e 3 e 2 e 1 e 0 e 1 e 2 e 3 e 0 e 3 e 2 e 3 e 0 e 1 e 2 e 1 e 0 e0 2 e1 2 e2 2 e3 2 2e 1e 2 2e 0e 3 2e 1e 3 + 2e 0e 2 = 2e 1e 2 + 2e 0e 3 e0 2 e1 2 + e2 2 e3 2 2e 2e 3 2e 1e 0 2e 1e 3 2e 0e 2 2e 2e 3 + 2e 1e 0 e0 2 e1 2 e2 2 e3 2 = = R Obdobně se dá ukázat Pak EĠT = ĖGT Ṙ = ĖG T + EĠ T = 2EĠ T
Kvateriony místo Eulerových úhlů Pro derivaci kvaterninů platí (dá se ukázat z vlastností vektorového součinu) ė = 1 2 E T ω Proto dále budeme popisovat polohu lokálních souřanic v globálním systému pomocí zobecněného vektoru pozice a zobecněného vektoru rychlostí T x Ṫ T y x T z Ṫ y q i := e 0 R 7 Ṫ z, v i := R 6 e 1 φ e 2 θ e 3 ψ
Od rychlosti k poloze Časové schéma Aproximace derivace diferencí q(t) := lim h 0 q(t + h) q(t) h q(t) = q(t + h) q(t) h. Časové schéma má pak tvar q(t + h) = q(t) + h q(t), kde h R + je dostatečně malý časový krok. S kvaternionem rotace pak [ ] I 0 q(t + h) = q(t) + h 1 0 E T v(t). 2 }{{} =:Q
Algoritmus Dáno q(0) R 7nb, v(0) R 6nb. Zvol časový krok h > 0 t := 0 dokud t < t max q(t + h) := q(t) + hqv(t) spočti v(t + h) t := t + h konec dokud
První test pust animaci.
Výpočet rychlosti Úkolem je tedy nalézt vektor aktuální rychlosti v(t), jehož přírůstek oproti v(t h) je závislý na hmotnosti jednotlivých těles, působících vnějších silách F (t, q, v), kontaktech a omezujících podmínkách. M v = F C + F ext M(v(t + h) v(t)) = h(f ext + F C ), kde M je zobecněná matice hmotnosti (diagonální), F C je vektor sil vyvolaných omezením, F ext je vektor vnějších sil. Úpravou v(t + h) = v(t) + hm 1 (F ext + F C )
Vektor vnějších sil - gravitace F g = m.g, m = ρ.v Dáno q(0) R 7nb, v(0) R 6nb. Zvol časový krok h > 0 t := 0 dokud t < t max F ext = [0, 0, F g, 0, 0, 0] T q(t + h) := q(t) + hqv(t) v(t + h) := v(t) + M 1 (F ext + F C ) t := t + h konec dokud
Druhý test pust další skvělou animaci.
Kontakt a omezení Uvažujme kontakt mezi tělesy T A a T B. T A F A C F B T B
Kontakt a omezení Označme n A (C) jako vnější jednotkovou normálu tělesa T A v bodě kontaktu C v globálním souřadnicovém systému. Změna pozice těžiště Těleso T A působí na těleso T B silou F B := γn A (C), kde γ 0 je neznámá velikost působící síly. Tato síla ovlyvní změnu polohy tělesa T B (složky rychlosti tělesa odpovídající poloze těžiště). Změna rotace tělesa Změnu rotace tělesa T B ovlyvňuje kroutící moment M B := C B F B, kde C B jsou souřadnice bodu C v lokálním souřadnicovém systému tělesa T B.
Kontakt a omezení Úpravou M B = C B F B = γ(c B n A (C)) = γ C B n A (C). Naopak na těleso T A působí opačná síla F A := γn A (C), a kroutící moment M A := C A F A = γ C A n A (C).
Kontakt a omezení Připomeňme kde F C := F A M A F B M B D := = γn A (C) γ C A n A (C) γn A (C) γ C B n A (C) n A (C) C A n A (C) n A (C) C B n A (C). = γd,
Kontakt a omezení Pokud se nám podaří určit velikost působící síly γ, pak výslednou změnu rychlosti lze spočítat z rovnice kde γ := h γ. M(v(t + h) v(t)) = hf ext + Dγ,
Kontakt a omezení Příklad Uvažujme systém tří těles T (1), T (2), T (3). T (1) C (1,2) C (1,3) C (2,3) T (3) T (2)
Kontakt a omezení vektor zobecněné polohy q = [q(1), T q(2), T q(3)] T T R 3 7 vektor zobecněné rychlosti v = [v(1), T v(2), T v(3)] T T R 3 6. Hledáme velikosti šesti neznámých sil: síla, kterou působí těleso T (1) na těleso T (2), síla, kterou působí těleso T (2) na těleso T (1), síla, kterou působí těleso T (2) na těleso T (3), síla, kterou působí těleso T (3) na těleso T (2), síla, kterou působí těleso T (1) na těleso T (3), síla, kterou působí těleso T (3) na těleso T (1), čili hledáme γ = [γ (1,2), γ (2,1), γ (2,3), γ (3,2), γ (1,3), γ (3,1) ] T R 6.
Kontakt a omezení Matice D R 3 6,6 má blokovou strukturu D = n (1) (C (1,2) ) n (2) (C (1,2) ) 0 C (1) (1,2) n (1) (C (1,2) ) C(1) (1,2) n (2) (C (1,2) ) 0 n (1) (C (1,2) ) n (2) (C (1,2) ) n (2) (C (2,3) ) C (2) (1,2) n (1) (C (1,2) ) (2) C (1,2) n (2) (C (1,2) ) (2) C (2,3) n (2) (C (2,3) ) 0 0 n (2) (C (2,3) ) 0 0 C(3) (2,3) n (2) (C (2,3) ) 0 n (1) (C (1,3) ) n (3) (C (1,3) ) 0 C (1) (1,3) n (1) (C (1,3) ) C(1) (1,3) n (3) (C (1,3) ) n (3) (C (2,3) ) 0 0 C (2) (2,3) n (3) (C (2,3) ) 0 0 n (3) (C (2,3) ) n (1) (C (1,3) ) n (3) (C (1,3) ) C (3) (2,3) n (3) (C (2,3) ) C(3) (1,3) n (1) (C (3) (1,3) ) C (1,3) n (3) (C (1,3) )
Kontakt a omezení Podmínku nepronikání těles T A a T B popisuje tzv. gap funkce Φ : R 7+7 R vzdálenost těles (nejmenší vzdálenost bodů jednoho a druhého tělesa). Platí Φ([q A, q B ]) = 0 pokud jsou tělesa v kontaktu, Φ([q A, q B ]) > 0 pokud tělesa nejsou v kontaktu, Φ([q A, q B ]) < 0 pokud tělesa pronikla do sebe. Pro normálové napětí v bodě kontaktu platí pokud jsou tělesa v kontaktu, normálové napětí existuje, pokud tělesa nejsou v kontaktu, normálové napětí neexistuje. Získáme podmínku komplementarity a tedy užitím gap funkce lze definovat podmínky pro výpočet velikosti působících sil (numericky stabilnější) 0 Φ(q) γ 0. 0 1 h Φ(q) + DT v(t + h) γ 0.
Linear complementarity problem Úkolem je tedy řešit následující problém. Linear complementarity problem (LCP) M(v(t + h) v(t)) = hf ext + Dγ 1 h Φ(q) + DT v(t + h) 0 1 h Φ(q) + DT v(t + h) γ γ 0 (1a) (1b) (1c) (1d) Ne.
QP s lineárním omezením Theorem Řešení optimalizační úlohy 1 min γ 0 2 γt Nγ + r T γ, (2) kde N := D T M 1 D r := 1 h Φ + DT M 1 k k := Mv(t) + h.f ext (3a) (3b) (3c) je ekvivalentní s řešením původní úlohy (LCP).
QP s lineárním omezením Důkaz Lagrangeova funkce má tvar a odpovídající KKT podmínky L(γ, λ) = 1 2 γt Nγ + r T γ λ T γ Nγ + r λ = 0 γ 0 λ 0 γ T λ = 0 Podmínky (4b) a (1d) jsou stejné. Z podmínky (4a) přímo plyne a spolu s (3a),(3b),(3c) a dosazením do (4d) získáme (4a) (4b) (4c) (4d) λ = Nγ + r (5) 0 = γ T λ = γ T (Nγ + r) = = γ T (D T M 1 Dγ + 1 Φ + h DT M 1 k) γ T (D T M 1 Dγ + 1 Φ + h DT M 1 (Mv(t) + h.f ext)) = γ T ( 1 Φ + h DT (v(t) + M 1 Dγ + h.m 1 F ext))
QP s lineárním omezením Následně užitím (1a) získáme 0 = γ T ( 1 h Φ + DT (v(t) + M 1 Dγ + h.m 1 F ext)) což je podmínka (1c). Nakonec dosazením podmínky (5) do (4c) lze získat což je podmínka (1b). 0 λ = Nγ + r = 1 h Φ + DT v(t + h),
Algoritmus Dáno q(0) R 7nb, v(0) R 6nb. Zvol časový krok h > 0 t := 0 dokud t < t max q(t + h) := q(t) + hqv(t) Nalezeni kontakty. Pokud neexistují kontakty, polož γ := 0 Pokud existují kontakty, sestav N, r a vyřeš optimalizační problém v(t + h) := v(t) + M 1 (hf ext + Dγ) t := t + h konec dokud
Třetí test Neflákej se a pust další animaci.
Tření Uvažujme (opět) kontakt mezi tělesy T A a T B. Označme n R 3 jednotkový normálový vektor kontaktu v globálních souřadnicích, u, w R 3 jednotkové směrové vektory kontaktní roviny v globálních souřadnicích. Očividně {n, u, w} je množina ortonormálních vektorů (a tvoří bázi tečného prostoru). Třecí sílu působící v bodě kontaktu na těleso A pak můžeme vyjádřit jako kde F = F n + F T = γ nn + γ uu + γ w w, F n = γ nn R 3 je normálová složka třecí síly, F T = γ uu + γ w w R 3 je tečná složka třecí síly, γ n > 0 je velikost normálové složky třecí síly F, γ u, γ w R jsou velikosti tečných složek třecí síly F.
Tření Vztah mezi jednotlivými složkami třecí síly popisuje například Coulombův model tření. Coulombův model tření γ n 0, Φ(q) 0, Φ(q)γ n = 0, (6a) γ 2 u + γw 2 µγ n, (6b) ( v T µγ n ) γu 2 + γw 2 = 0, (6c) F T, v T = F T. v T. (6d) Objasněme význam jednotlivých rovnic.
Tření γ n 0, Φ(q) 0, Φ(q)γ n = 0 podmínka komplementarity gap funkce Φ a velikosti normálové složky γ n normálová složka třecí síly je vždy nezáporná (pokud uvažujeme kontakt, pak těleso A nemůže působit na těleso B silou, která směřuje od tělesa B), hodnota gap funkce je vždy nezáporná (vzdálenost těles A a B je nezáporná), pokud je normálová složka nenulová, pak je nulová vzdálenost těles, pokud je vzdálenost těles nenulová, pak je normálová složka třecí síly nulová, může nastat situace, že vzdálenost těles je nulová i normálová složka třecí síly je nulová (tělesa jsou v klidu v kontaktu).
Tření γ 2 u + γ 2 w µγ n rovnice vztahu mezi velikostí normálové složky třecí síly a tečné složky třecí síly, tj. F T µ F N, kde µ 0, 1 je koeficient tření takový, že pokud µ = 1, pak velikost tečné složky třecí síly může být maximálně rovna velikosti normálové síly, pokud µ = 0, pak velikost tečné složky třecí síly je vždy nulová, čili síla působí pouze ve směru normály kontaktu a tedy nedochází ke tření.
Tření ( v T µγ n ) γu 2 + γw 2 = 0 podmínka komplementarity mezi velikostí rychlosti pohybu tělesa v tečném směru a dosažení maximální možné velikosti třecí síly vzhledem k omezení předchozí rovnicí pokud nedojde k maximální možné velikosti třecí síly vzhledem k µ, tj. F T < µ F N, pak velikost tečné rychlosti tělesa je nulová. pokud naopak dojde k maximální možné velikosti tečné síly, pak dochází k přesmyku a velikost tečné rychlosti může být jakákoliv.
Tření F T, v T = F T. v T podmínka směru třecí síly a tečné rychlosti, konkrétně pro úhel mezi těmito vektory platí cos ϕ = F T, v T = 1, tj. ϕ = π. F T. v T Čili tečná složka třecí síly má opačný směr jako vektor rychlosti přesmyku (kluzná rychlost).
Tření Obdobně jako v úloze bez tření F A := γ nn γ uu γ w w = Sγ, F B := γ nn + γ uu + γ w w = Sγ, kde γ := [γ n, γ u, γ w ] T R 3 S := [n, u, w] R 3,3
Tření Pak kde M A := C A F A = C A (Sγ) = C A Sγ, M B := C B F B = C B (Sγ) = C B Sγ, F C := F A M A F B M B D := = Sγ C A Sγ Sγ C B Sγ S C A S S C B S. = Dγ,
Quadratic Cone Complementarity problem Theorem Řešení optimalizační úlohy kde 1 min γ Ω 2 γt Nγ + r T γ, N := D T M 1 D r := [ 1 h Φ, 0, 0]T + D T M 1 k k := Mv(t) + h.f ext Ω := Ω 1 Ω nc (7a) (7b) (7c) (7d) (7e) Ω i := {[x, y, z] T R 3 : y 2 + z 2 µ i x} (7f) je ekvivalentní s řešením původní úlohy.
Quadratic Cone Complementarity problem Důkaz Příště.
Otevřené problémy h =? efektivní implementace (GPU) detekce kontaktů domain decomposition (?) QP řešič
Děkuji za pozornost Dostál, Z.: Optimal Quadratic Programming Algorithms, with Applications to Variational Inequalities, SOIA, first ed., vol. 23, Springer, US, New York, 2009. Heyn T.: On the Modeling, Simulation, and Visualization of Many-Body Dynamics Problems with Friction and Contact. Ph.D. Thesis, 2013. online Heyn T., Anitescu M., Tasora A., Negrut D.: Using Krylov Subspace and Spectral Methods for Solving Complementarity Problems in Many-Body Contact Dynamics Simulation. Int. J. Numer. Meth. Engng, 2012. Shabana, A.: Computational Dynamics, John Wiley & Sons, Inc., New York, Third Edition, 2010. Haug, E. J.: Computer-Aided Kinematics and Dynamics of Mechanical Systems, Volume-I. Prentice-Hall, Englewood Cliffs, New Jersey, 1989.