Dynamisk simulering - Dynamical simulation
Dynamisk simulering , i beregningsfysikk , er simulering av systemer med objekter som er frie til å bevege seg, vanligvis i tre dimensjoner i henhold til Newtons dynamikklover, eller tilnærminger derav. Dynamisk simulering brukes i datamaskinanimasjon for å hjelpe animatører med å produsere realistisk bevegelse, i industriell design (for eksempel for å simulere krasj som et tidlig skritt i krasjtesting ), og i videospill . Kroppsbevegelse beregnes ved hjelp av tidsintegreringsmetoder .
innhold
Fysikkmotorer
I informatikk brukes et program som kalles en fysikkmotor for å modellere atferden til objekter i rommet. Disse motorene tillater simulering av hvordan kroppene av mange typer påvirkes av en rekke fysiske stimuli. De brukes også til å lage dynamiske simuleringer uten å måtte vite noe om fysikk. Fysikkmotorer brukes i hele videospill- og filmindustrien, men ikke alle fysikkmotorer er like; De er vanligvis inndelt i sanntid og med høy presisjon, men dette er ikke de eneste alternativene. De fleste fysikkmotorer i sanntid er unøyaktige og gir bare den bareste tilnærmingen av den virkelige verden, mens de fleste motorer med høy presisjon er altfor trege til bruk i daglig bruk. For å forstå hvordan disse fysikkmotorene er bygd, kreves det en grunnleggende forståelse av fysikk. Fysikkmotorer er basert på den faktiske atferden i verden som beskrevet av klassisk mekanikk . Motorer står vanligvis ikke for Modern Mechanics (se relativitetsteori og kvantemekanikk ) fordi de fleste visualiseringer omhandler store kropper som beveger seg relativt sakte, men de mest kompliserte motorene utfører beregninger for Modern Mechanics så vel som Classical. Modellene som brukes i dynamiske simuleringer bestemmer hvor nøyaktige disse simuleringene er.
Partikkelmodell
Den første modellen som kan brukes i fysikkmotorer styrer bevegelsen til uendelig store objekter med endelig masse som kalles "partikler." Denne ligningen, kalt Newtons andre lov (se Newtons lover ) eller definisjonen av makt, er den grunnleggende oppførselen som styrer all bevegelse:
Denne ligningen vil tillate oss å modellere oppførselen til partikler fullt ut, men dette er ikke tilstrekkelig for de fleste simuleringer fordi det ikke står for rotasjonsbevegelsen til stive legemer . Dette er den enkleste modellen som kan brukes i en fysikkmotor og ble mye brukt i tidlige videospill.
Treghetsmodell
Kropper i den virkelige verden deformeres etter hvert som krefter blir brukt på dem, så vi kaller dem "myke", men ofte er deformasjonen ubetydelig liten sammenlignet med bevegelsen, og det er veldig komplisert å modellere, så de fleste fysikkmotorer ignorerer deformasjon. Et legeme som antas å være ikke-deformerbart kalles et stivt legeme . Stiv kroppsdynamikk omhandler bevegelse av objekter som ikke kan endre form, størrelse eller masse, men som kan endre retning og posisjon.
For å redegjøre for rotasjonsenergi og momentum, må vi beskrive hvordan kraft påføres objektet ved hjelp av et øyeblikk , og redegjøre for massefordelingen av objektet ved hjelp av en treghets tensor . Vi beskriver disse komplekse interaksjonene med en ligning som likner definisjonen av kraft ovenfor:
hvor er den sentrale treghetstensoren , er vinkelhastighetsvektoren og er øyeblikket for den j utvendige kraften rundt massesenteret .
Den treghet tensor beskriver plasseringen av hver partikkel av massen i et gitt objekt i forhold til gjenstandens sentrum av masse. Dette lar oss bestemme hvordan et objekt vil rotere avhengig av kreftene som påføres den. Denne vinkelbevegelsen blir kvantifisert med vinkelhastighetsvektoren.
Så lenge vi holder oss under relativistiske hastigheter (se Relativistisk dynamikk ), vil denne modellen simulere all relevant atferd. Denne metoden krever at fysikkmotoren løser seks ordinære differensialligninger på hvert øyeblikk vi ønsker å gjengi, noe som er en enkel oppgave for moderne datamaskiner.
Euler-modell
Inertialmodellen er mye mer kompleks enn vi vanligvis trenger, men den er den mest enkle å bruke. I denne modellen trenger vi ikke å endre kreftene eller begrense vårt system. Imidlertid, hvis vi gjør noen få intelligente endringer i systemet vårt, vil simulering bli mye enklere, og beregningstiden vår vil avta. Den første begrensningen vil være å sette hvert dreiemoment når det gjelder hovedaksene. Dette gjør hvert dreiemoment mye vanskeligere å programmere, men det forenkler likningene våre betydelig. Når vi bruker denne begrensningen, diagonaliserer vi momentet av treghets tensor, som forenkler våre tre ligninger til et spesielt sett med ligninger kalt Eulers ligninger . Disse ligningene beskriver all rotasjonsmoment når det gjelder hovedaksene:
- De N- uttrykkene er brukt dreiemomenter om hovedaksene
- De I form er hovedtreghetsmomenter
- De betingelser er vinkelhastigheter om hovedaksene
Ulempen med denne modellen er at all beregningen er i frontenden, så den er fortsatt tregere enn vi ønsker. Den virkelige nytten er ikke åpenbar fordi den fortsatt er avhengig av et system med ikke-lineære differensialligninger. For å lindre dette problemet, må vi finne en metode som kan fjerne den andre termen fra ligningen. Dette vil tillate oss å integrere mye lettere. Den enkleste måten å gjøre dette på er å anta en viss symmetri.
Symmetrisk / dreiemomentmodell
De to typene symmetriske objekter som vil forenkle Eulers ligninger er "symmetriske topper" og "symmetriske sfærer." Den første antar en grad av symmetri, dette gjør at to av I-begrepene er like. Disse gjenstandene, som sylindere og topper, kan uttrykkes med en veldig enkel ligning og to litt enklere ligninger. Dette gjør oss ikke så mye bra, for med enda en symmetri kan vi få et stort hopp i hastighet med nesten ingen endring i utseendet. Den symmetriske sfæren gjør alle I- begrepene like ( Momentet av treghetsskala ), noe som gjør alle disse ligningene enkle:
- De N- uttrykkene er brukt dreiemomenter om hovedaksene
- De betingelser er vinkelhastigheter om hovedaksene
- Det jeg begrepet er skalar Treghetsmoment :
- hvor
- V er volumregionen til objektet,
- r er avstanden fra rotasjonsaksen,
- m er masse,
- v er volum,
- ρ er objektets tetthetsfunksjon ,
- x , y , z er de kartesiske koordinatene.
Disse ligningene lar oss simulere oppførselen til et objekt som kan spinne på en måte som er veldig nærmet til metoden simulere bevegelse uten spinn. Dette er en enkel modell, men den er nøyaktig nok til å gi realistisk effekt i dynamiske simuleringer i sanntid . Det gjør det også mulig for en fysikkmotor å fokusere på skiftende krefter og dreiemomenter i stedet for varierende treghet.