Vi må kunne vente! (del 5)

For å få den beste mulige sjangsen for å komme oss til en planet, trenger vi å kunne vente til den beste mulige tiden for oppskytning, og å kunne skyte opp hvor som helst på planeten, da det blir litt dumt å skyte oss selv bort fra den andre planeten! Derfor skal vi modifisere modellen vår, slik at vi kan simulere oppskytningen fra der vi vil skyte den opp i virkeligheten.

For å kunne simulere oppskytningen av raketten vår på et hvilkårlig tidspunkt, må vi først vite hvor planeten er til et vilkårlig tidspunkt. Du tenker jo kanskje at det har vi allerede løst ved forggie delen av bloggen, men ut ifra de simulasjonene har vi kun posisjonen til planeten ved tidspunkt som er delelig med \( \delta t\)-en som vi valgte. Dette er rett og slett fordi når vi simulerer planeten, "hopper" den fra punkt til punkt, som sett i figur 1. For at den skulle ha "glidd" fint gjennom rommet kreves det uendelig mange tidssteg, noe som ikke er mulig. Vi kan illustrere hvorfor dette ikke er mulig; tenk deg at du skal gli på tallinjen fra 0 til 1. Da starter du på 0, og så går videre til 0.0000000... og her er problemet! Du kan aldri plassere 1-tallet på slutten av denne raden av nuller, for det finnes alltid et mindre tall! Dermed får du at det finnes uendelig mange tall mellom 0 og 1 som forhindrer oss i å numerisk gli fra 0 til 1. Men hvordan kan vi komme oss til ett vilkårlig punkt mellom punkt 1 og punkt 2? Løsningen er å gjøre det på samme måten som vi simulerte resten, nemlig å "hoppe" fra nærmeste tidspunkt vi har data for, til det tidspunktet vi vil ende opp i ved å bruke definisjonen av posisjon, nemlig \vec{x_{t+\delta t}} = \vec{x} + \vec{v_p} \space \delta t  . Her er \( \vec{x} \) posisjonen til planeten, og \( \vec{v}\) hastigheten til planeten. Med denne formelen "hopper" vi fra ett tidpunkt med en kjent posisjon og hastighet, til et vilkårlig tidspunkt før neste kjente punkt. Dette er også vist i figur 1. Dermed kan vi finne hvor planeten vår skal være til enhvær tid!

Figur 1: her ser vi at vi kun har planetens posisjon og hastighet i spesifike tidspunkter som vi har simulert for. For å få planetens posisjon nøyaktig når vi har lyst å skyte opp raketten, bruker vi definisjonen av posisjon ut ifra dens hastighet ved forrgie kjente tidssteg og tiden. Dermed kan vi finne posisjonen og hastigheten til ett vilkårlig tidspunkt!

Neste ting vi må legge til i simulasjonen vår: vi vil kunne skyte opp raketten fra hvor som helst på planeten vår! Den gamle simulasjonen tar utgangspunkt i at raketten peker direkte i positiv x-retning, men tar allerede hensyn til å akselerere radielt utover. Dermed trenger vi bare å definere en stat-lokasjon, så kan vi skyte opp raketten fra hvor vi vil! For å gjøre det, starter vi med å definere posisjonen til raketten på planeten i polarkoordinater. Grunnen til at vi gjør det slik er at da kan vi lett bare endre vinkelen til startposisjonen og få nøyaktige koordinater, istedefor å trenge å manuelt endre posisjonen i både x og y-retning. Fra polarkoordinat-sidesporet vet vi at et punkt på en sirkel er gitt ved :

\( \vec{(launch-plattform)} = (radius, \space \theta) \)

For vår hjemplanet, blir det en radius på 5099 kilometer (sammenlignet med jordens 6300km). Hvis vi skal nå tilbake til khartesiske koordinater (x- og y-koordinater), bruker vi formelen vi fant i sidesporet, nemlig at i forhold til planeten:

\( \vec{L} = R \dot \space ( \cos(\theta), \sin(\theta) ) \)

Dette er den samme \( \vec{L} \) som vi ser nederst på figur 2, og R er radiusen til planeten vår. Siden \( \vec{L} \) er i khartesiske koordinater, kan vi se dette fra solens perspektiv ved å legge til avstanden til planeten fra solen, slik at vi får:

\( \vec{r_r} = \vec{L} + \vec{r_p} \)

Slik som i figur 2.

Figur 2: Her kan vi se at for å finne posisjonen til launch-plattformen, kan vi definere i vilke retning i forhold til resten av solsystemet den skal være, ved å gi den vinkelen \( \theta \) fra x-aksen. Deretter kan vi bruke overføreingen mellom polarkoordinater og khartesiske koordinater for å finne dens plattformens posisjon i forhold til solen.

En komponent vi også må legge til, er hastigeten til planeten og hastigheten raketten får av at planeten roterer, slik som i den gamle koden. Den gamle koden tar hensyn til en vilkårlig hastighet for planeten, men ikke en den tangentielle hastigheten for en vilkårlig vinkel. For å finne den, kan vi bruke polarkoordinater på samme måte vi gjorde over, bare at vi legger til 90 grader, da den er tangensiellt på. Visuelt har vi tenget systemet opp i figur 3. 90-grader endringen gjør da cosinus til sinus, og sinus til minus cosinus, da vi forskyver funksjonene. Dermed får vi:

\( \vec{v_{rot}} = R \space 2 \pi \omega \space (\sin(\theta), \space \cos(\theta))\)

der \( \omega \) er hele rotasjoner per sekund. Vi finner \( \omega \) ved å ta en delt på lengden av en siderisk dag i sekunder (sideriske dager er forklart i bloggposten "en bedre modell?"). For vår planet, blir det \( 1.02 \dot \space 10^{-5} \), sammenlignet med jordens \(1.16 \dot \space 10^{-5} \). Det som er intessant med størrelsen til den tangentielle hastigheten, er at sided planeten alltid roterer like fort, blir absolutt-verdien av denne konstant, uansett hvilken vinkel vi velger! Dermed kan vi skaffe mer bevis som sier at simulajsonen vår er nøyaktig som er å bekrefte at den er konstant for alle posisjoner. 

Figur 3: her ser vi den initial-rotasjonen som raketten vår har i forhold til resten av solsystemet. Siden bakken roterer med samme hastighet, ser det ut som at den står stille, men siden vi skal se dette fra solen, ser det ut som den beveger seg. Dermed må vi legge til en rotasjonshastighet \( \vec{v_{rot}}\).

Da sendte vi denne beskrivelsen til vårt kode-team, og fikk de til å implementere dette! De er ordentlig flinke :). Nå kan vi både skyte opp raketten vår ved et vilkårlig tidspunkt, og for en vilkårlig vinkel! Der kommer til å hjelpe oss veldig med å nå den planeten vi vil nå.

 

 

Publisert 1. nov. 2026 22:44 - Sist endret 1. nov. 2026 22:44