Annemari Auvinen Milla Törönen Kuulasimulaaori TIE374 Fysiaalise malli ieooneanimaaioissa Harjoiusyörapori 8.4.13 Jyväsylän yliopiso Tieoeniian laios
Sisälö 1 KUULAT JA LIIKEYHTÄLÖT... 1 1.1 KUULA... 1 1. VOIMAT... 1 1.3 LIIKEYHTÄLÖT... 1 1.4 DIFFERENTIAALIYHTÄLÖRATKAISIJAT... TÖRMÄYKSET... 3.1 TÖRMÄYSTARKASTELU... 3. TÖRMÄYSIMPULSSIT... 4.3 KONTAKTIVOIMAT... 4.4 KEINOTEKOINEN KITKA... 5 3 TOTEUTUS... 6 3.1 OPENGL FOR JAVA... 6 3. LUOKKAJAKO... 6 3.3 TOIMINTA... 7 4 AIKA-ASKELEEN SUORITUSAJAT ERI KUULAMÄÄRILLÄ JA DIFFERENTIAALIYHTÄLÖRATKAISIJOILLA... 8 LÄHTEET... 1 I
1 Kuula ja liieyälö Harjoiusyön aieena oli oeuaa uulasimulaaori jossa voidaan simuloida uulien äyäyymisä niiden pudoessa asoon ja örmäessä oisiinsa. Tässä luvussa uvaaan jäyän appaleen liieyälö sovelleuna simulaaorissa äyeyiin uuliin. 1.1 Kuula Kuulana äyeään r-säeisä palloa jona massa on asaisesi jaauunu ja massaesipise on pallon esipise. Tällaisen uulan iausensori loaalissa 1 mr oordinaaisossa on ysineraisesi I body 1 missä m on uulan massa 5 1 ja r säde [4]. 1. Voima Kuulaan vaiuavana voimana simulaaorissa äyeään painovoimaa g 9.865. 1.3 Liieyälö Kuulan ilaveori on q Y P L missä on uulan massaesipiseen sijaini q vaernioveori P oonaisliiemäärä. ja L ulmaliiemäärä. Lasennallisesi näisä saadaan nopeus 1 ulmanopeus I L. P T v iausensori I R IbodyR ja m 1
Tilaveorin muuos saadaan lasemalla *.5* F q v L P q d d Y d d missä F on uloinen oonaisvoima ja on uloisen voiman aieuama väänömomeni. 1.4 Differeniaaliyälöraaisija Simulaaorissa on äyeävissä olme differeniaaliyälöiden raaisemiseen aroieua meneelmää: Eulerin meneelmä esipisemeneelmä ja 4. eraluvun Runge-Kua meneelmä [8]. Meneelmissä uusi ila laseaan edellisen ilan avulla alla esieyillä aavoilla. Kaavoissa on aselpiuus ja funio f = Y d d. Eulerin meneelmä: f. Kesipisemeneelmä: f f. 4. eraluvun Runge-Kua: 6 3 3 6 4 3 1 3 4 3 1 1 f f f f
Törmäyse Tässä luvussa esieään pääpiiree simulaaorissa äyeysä örmäysien araselusa ja voiminen lasemisesa. Läeenä on äyey Baraffin maeriaalia [] jossa esieyjä meneelmiä on muoau uulasimulaaoriin soveluvisi..1 Törmäysaraselu Kuulasimulaaorissa uula voiva örmää oisiinsa seä asoon. Tason sijaini määriellään z-aselille jolloin örmäysaraselu siien elpouva. Törmäysaraselussa ason anssa äydään joainen uula läpi ja araseaan ono uulan esipiseen z- oordinaai pienempi uin uulan säde määriellyn örmäysepsilonin sisällä jolloin yseessä on örmäys. Törmäyspiseen - ja y-oordinaai saadaan elposi suoraan uulan esipiseesä ja z-oordinaai on nolla. Kuulien esinäinen örmääminen araseaan vasaavalla avalla ny vain ason ilalla on oinen uula. Kuula äydään pareiain läpi ja araseaan ono uulien esipiseiden eäisyys pienempi uin uulien säeiden summa örmäysepsilonin rajoissa. Kuulien välinen örmäyspise määriellään uulien esipiseiden puoliväliin. Miäli örmäys apauu laseaan sueellinen nopeus örmäyspiseessä. Jos nopeus on läellä nollaa on yseessä onai jolloin piää lasea appaleisiin vaiuava onaivoima. Nopeuden ollessa negaiivinen appalee ova menossa oisensa sisään ja niille laseaan örmäysimpulssi. Taran örmäyseen löyämiseen äyeään reursiivisa aliojelmaa joa puoliaa aiaaseleen ajaa simulaaion uudelleen aia-aseleen puoleen väliin ja asoo ono örmäys apaunu ennen puolaväliä. Jos on jaeaan usumalla aliojelmaa uudelleen ensimmäisellä puoliaalla jos ei jälimmäisellä puoliaalla. Tää jaeaan unnes aiaaselen piuus on uisunu riiävälle aruudelle. Tämän jäleen suorieaan örmäysen vaaima oimenpiee örmäyseellä jona jäleen jaeaan esimällä seuraava örmäysei. 3
. Törmäysimpulssi Törmäysen aieuamien impulssien määriäminen on oeueu suoraan Baraffin [ s. 4-49] maeriaalin muaan. Kuulan örmäessä asoon ason massan oleeaan olevan ääreömän suuri ja iausensorin ääneismariisin olevan nollamariisi. Tällöin uulaan lisäään ason normaalin suunainen impulssi joa vaiuaa suoraan uulan liiemäärään ja ulmaliiemäärään seä niiden aua iiyvyyeen ja ulmaiiyvyyeen. Kaden uulan örmäessä oisiinsa lisäään siien uulaan joon normaali osoiaa normaalin suunainen impulssi ja siien uulaan joon normaali on määriely impulssi vasaaiseen suunaan..3 Konaivoima Konaiilaneessa uula eivä ole menossa oisensa sisään eivää eraanumassa oisisaan vaan niiden sueellinen nopeus örmäyspiseessä on läellä nollaa. Konaivoimia lasiessa aroiusena on löyää sellaise voima joa esävä uulien vajoamisen oisensa sisään esävä uulia eroamasa ja aoava uulien eraanuessa oisisaan [7]. Konaivoimien lasemisessa raaisava ongelma on muooa : Af b f f T Af 1 b missä mariisi A nn R ja veori n b R ova unneuja ja n f R unemaon onaivoimaveori joa piäisi raaisa un avaiuja onaeja on n appalea. Ongelmassa oleva mariisi A ja veori b laseaan simulaaorissa Baraffin [ s.49-54 61-67] maeriaalien peruseella. Kuen örmäysessä myös onaissa ason massan asoaan olevan ääreömän suuri ja iausensorin ääneismariisin olevan nollamariisi. Ise ongelma 1 raaisaan äyämällä Danzigin algorimia [3 s.6] LU-ajoelman anssa [5 s.37]. 4
.4 Keinoeoinen ia Kuulien örmäysiin on lisäy einoeoinen ia pyörimisliieen aiaansaamisesi. Tason anssa ia muodosuu suoraan iiyvyydesä. Sen projeio asolle saalaaan esiyllä oeilujen aua sopivasi avaiulla vaiolla jona jäleen vaiuus aseeaan uulan ulmaliiemäärään ja sen myöä ulmaiiyvyyeen. Kaden uulan välillä äyeään uulan iiyvyyden projeioa uulien angeniasolle. Ongelmasi muodosuu ulmaliiemäärien suuri asvu. Kulmaliiemäärän asvaessa myös ia asvaa ja sen mennessä ääreömään uula vain ysineraisesi äviävä. Tää ongelmaa ei sen ummemmin podiu vaan ypiseiin ia ieyyn miaan sen asvaessa suuresi. Kuulien välillä piäisi oaa uomioon myös örmäyspiseen iiyvyyden vaiuus oiseen uulaan odisuvaan iaan. Tää ei uienaan saau onnisumaan. 5
3 Toeuus Kuulasimulaaori oeueiin Javalla ja yöaluna äyeiin Nebeans IDE 3.6 seä grafiian piirrossa OpenGL for Java irjasoa [6]. 3.1 OpenGL for Java OpenGL for Javasa löyyvä läes aii OpenGL:n funio Javalle sovelleuna. Tässä sovellusessa äyimme piirämiseen GLCanvas-luoasa periyä MarbleCanvasluoaa jossa display-meodi on oodau uudelleen. Kosa MarbleCanvas-luoalla on viiaus aii uula sisälävään MarbleConainer-luoaan se voi pyyää silä uulien iedo yden errallaan. Kuulan sijaini ja aseno aseeaan OpenGL funioilla gltranslaed ja glmulmarid joisa gltranslaed määriää uulan sijainnin sen esipiseen avulla ja glmulmarid uulan ierron vaerniosa q muodoseulla ieromariisilla joa viedään funiolle 1-uloeisena auluona. Ise uulan piiro apauu funiolla gluwirespere. 3. Luoajao Luoajao pääpiireiäin on esiey uvassa 1. Kuva 1: Kuulasimulaaorin luoaaavio. 6
3.3 Toimina Sovellus äynniseään JFrameMarbleMain-luoan main-meodisa. Kuulien muodosaman uuion sivun piuus uulien määrä sivulla on määrieävissä JFrameMarbleMain-luoan onsruorissa samoin uulien säde massa ja uuion eäisyys asosa. Sar animaion äynnisää animaaion. Move & Zoom ominaisuua voi äyää ennen animaaion äynnisämisä. Animaaion aiana zoomausen yriys aappaa uvan allinnan animaaioa pyöriävälä säieelä jolloin uvan päiviys pysäyy. Kuvassa on esiey uulasimulaaorin äyöliiymä läöilaneessa ja uvassa 3 animaaion äynnisämisen jäleen un uula ova alanee pudoa. Kuva : Läöilanne. Kuva 3: Kuula esen animaaion ajon pudousen jäleen. 7
4 Aia-aseleen suoriusaja eri uulamäärillä ja differeniaaliyälöraaisijoilla Kuulasimulaaorin suoriusaioja miaiin ilman onaien lasemisia osa niiä ei saau vireeömäsi oimimaan. Simulaaorissa miaiin yden aia-aseleen suoriamiseen uluvaa aiaa erilaisilla uulien luumäärillä. Kusain ajosa laseiin esiarvo siinä saaduisa suoriusajoisa. Tesiajo suorieiin asi eraa aiilla luvussa 1.4 mainiuilla differeniaaliyälöraaisijoilla jolloin voiiin verraa esenään eri raaisijoilla saauja suoriusaioja. Koo meneelmän suoriusajasi on laseu aden esiajon ulosen esiarvo. Suoriusaja ova auluoissa milliseuneina. Aia-asel oli aiissa eseissä 3333 milliseunia. Tauluossa 1 on oou yeen eri meneelmien suoriusaja. Ydellä uulalla paraan ulosen anaa esipisemeneelmä mua uulien luumäärän asvaessa Eulerin meneelmä anaa paraimma suoriusaja. Tauluosa voidaan avaia myös eä eseissä uulien luumäärän asvaessa alava eri meneelmien välise suoriusaiaero pienenyä. Esimerisi 7 uulalla esipisemeneelmän suoriusaia on noin viisinerainen ja 4. eraluvun Runge-Kuan yli seisenerainen verrauna Eulerin meneelmään mua 16 uulalla suoriusaja ova alle asineraise Eulerin meneelmään verrauna. Kuvan 4 uvaajassa on avainnolliseu uulien luumäärän vaiuusa suoriusajan asvuun. Kuuion sivu Kuulien lm Kesipise Euler 4. l Runge-Kua 1 1 3364583 5 531 8 1 4995117 8153499 3 7 7679 141171 1676596 4 64 1889171 15861759 38688 5 15 5531675 37354471 87918 6 16 145868 93951787 1795435387 Tauluo 1: Eri meneelmien suoriusaja. 8
ms/aia-asel Aia-aseleen lasemiseen ulunu aia sueessa uulien luumäärään 15 1 5 Kesipisemeneelmä Euler 4.l Runge-Kua 1 8 7 64 15 16 Kuulien luumäärä Kuva 4: Aia-aseleen suoriusaia sueessa uulien luumäärän asvuun eri differeniaaliraaisumeneelmillä. 9
Läee [1] Baraff David An Inroducion o Pysically Based Modeling: Rigid Body Simulaion 1 Unconsrained Rigid Body Dynamics Siggrap '97 Course noes 1997. [] Baraff David An Inroducion o Pysically Based Modeling: Rigid Body Simulaion Nonpeneraion Consrains Siggrap '97 Course noes 1997. [3] Baraff David Fas Conac Force Compuaion for Nonpeneraing Rigid Bodies In Proceedings of e 1s annual conference on Compuer grapics and ineracive ecniques p. 3-34 1994. [4] Lander Jeff Pysics on e Bac of a Cocail Napin saaavilla WWW-muodossa <URL: p://www.gamasura.com/feaures/516/lander_pfv.m> viiau 17.11.4. [5] Mäinen Raino A. E. Numeerise meneelmä Luenomonise 1 Tieoeniian laios Jyväsylän yliopiso 1999. [6] OpenGL for Java saaavilla WWW-muodossa <URL: p://www.jausof.com/producs/gl4java/gl4java_main.ml> viiau 17.11.4. [7] Vire Maru Tieoonepelien fysiian maemaainen mallinaminen Pro Gradu - uielma Jyväsylän yliopiso 3. [8] Wiin A. Baraff D. Pysically Based Modeling: Principles and Pracice Differenial Equaion Basics Siggrap '97 Course noes 1997. 1