Baneberegninger og interpolering

I dette innlegget skal vi ta dere med p? hvordan vi g?r frem for ? bestemme oss for hvilken bane vi skal ta til destinasjonen v?r. Det er flere ting som p?virker valget v?rt, og vi skal forklare dere hvilke.

Vi starter med ? se p? hvilke krefter som kommer til ? virke p? romskipet v?rt n?r vi befinner oss et gitt sted i rommet. Vi har krafta fra stjerna og fra alle planetene. For enkelhets skyld neglisjerer vi kreftene fra m?nene i systemet v?rt. Som dere kanskje ogs? husker, s? er stjerna v?r veldig stor i forhold til sola. Krafta fra den vil v?re voldsomt mye st?rre enn for eksempel en m?ne fra den ytterste planeten. 

Krafta fra stjerna p? romskipet vil v?re

\(\vec{F}_*=-\gamma\frac{mM_*}{r^3}\vec{r}\)

hvor \(\gamma,m,M_*,r\) er hhv. gravitasjonskonstanten, massen til romskipet, massen til stjerna og lengden eller normen til \(\vec{r}\), som igjen er vektoren fra stjerna til romskipet v?rt. Minustegnet gj?r at retningen blir riktig, alts? at krafta trekker oss mot stjerna.

N?r det gjelder kreftene fra de andre planetene, starter vi med ? se p? én planet.

Figur 1. Vektorer som peker fra stjerna p? romskipet og en planet, og en som peker fra planeten p? romskipet.

Vi ser at vi kan bruke vektoraddisjon for ? finne vektoren \(\vec{R}_1\), som er den vektoren tyngdekraften vil virke langs. Vi f?r at krafta fra planeten p? romskipet blir

\(\vec{F}_1=-\gamma\frac{mM_1}{R_1^3}\vec{R}_1\)

Vi finner et utrykk for \(\vec{R}_1\) slik:

\(\begin{align} \vec{r}&=\vec{r}_1+\vec{R}_1\\ \Rightarrow\vec{R}_1&=\vec{r}-\vec{r}_1 \end{align}\)

For planet nummer 2 blir det tilsvarende.

Figur 2. Vektorer som peker som i Figur 1, men med en planet til.

Vi f?r at krafta fra planet 2 p? romskipet blir

\(\vec{F}_2=-\gamma\frac{mM_2}{R_2^3}\vec{R}_2\)

Det vil ogs? virke krefter fra de 6 andre planetene, s? vi kan skrive en generell formel for kraftsummen som virker p? romskipet fra stjerna og alle de 8 planetene p? f?lgende m?te:

\(\begin{align} \vec{F}_\text{tot}=-\gamma\frac{mM_*}{r^3}\vec{r}-\sum_{i=1}^8\frac{\gamma mM_i}{R_i^3}\vec{R}_i \end{align}\)

hvor \(i\) l?per over alle planetene, og \(\vec{R}_i=\vec{r}-\vec{r}_i\). Som du kanskje ser, s? er dette uttrykket kraftsummen, som betyr at dette m? v?re lik massen til romskipet ganger akselerasjonen. Vi f?r, for akselerasjonen:

\(\begin{align} \vec{F}_\text{tot}&=m\vec{a}\\ \vec{a}&=\frac{\vec{F}_\text{tot}}{m}\\ &=-\gamma\frac{M_*}{r^3}\vec{r}-\sum_{i=1}^8\frac{\gamma M_i}{R_i^3}\vec{R}_i \end{align}\)

Dette bruker vi til ? l?se bevegelseslikningene med Euler-Cromer. 

Det neste vi m? bestemme oss for er n?r vi vil dra. Alts?, n?r er det gunstig ? launche fra planeten v?r for ? komme fram til destinasjonen v?r. Vi ?nsker at planetene er s? n?rme hverandre som mulig, slik at reisetiden blir kortest mulig. Det er egentlig ikke noen spesifikk grunn for at dette er det beste, siden vi kan bruke andre himmellegemer til ? slynge oss videre p? v?r reise. Men, vi kommer til ? pr?ve ? finne ut av n?r planetene er n?rmest hverandre. 

Husk tilbake til da vi modellerte planetbanene numerisk. Vi kan lete etter den minste avstanden til to av planetene og plotte disse mot hverandre. Det gir dette plottet:

Figur 3. Plott av de tre n?rmeste planetene til stjerna, og posisjonen deres ved tidspunktet hjemplaneten v?r og destinasjonsplaneten er n?rmest hverandre.

Det vi ?nsker ? oppn? er ? launche fra planeten v?r, orientere oss og s? sette kursen mot planeten vi skal til. Det eneste som kommer til ? bestemme selve banene v?r er initialhastigheten vi f?r med oss fra planetens oml?pshastighet. Husker dere eksemplet fra karusellen? Dette er tilsvarende. Systemet sett fra referansesystemet hvor stjerna st?r i ro og alle planetene beveger seg, gj?r at vi kommer til ? ha en hastighet og retning lik hastigheten til planeten v?r pluss hastigheten vi har n?r vi har n?dd unnslippingshastighet. 

Ta en titt p? Figur 3. Ser dere at dersom vi skyter opp raketten i x-retning, vil vi motvirke den initialhastigheten vi f?r med oss fra planeten (anta at planetene beveger seg mot klokka)? Vi vil alts? utnytte begge hastighetene s? godt som mulig. Vi har pr?vd ? simulere banen v?r p? v?r datamaskin for ? unders?ke om vi har gjort riktige beregninger. Dette har vist seg ? v?re vanskelig, s? vi har kontakt med forskerne fra IPA som har hjulpet oss med ? beregne banene v?re, ut fra v?re egne parametere.

Vi vet at n?r avstanden v?r fra planeten er 

\(l=|\vec{r}|\sqrt{\frac{M_p}{10M_*}}\)

kan vi utf?re en orbital injection maneuver (OIM), hvor \(l,\,|\vec{r}|\) er avstanden fra planeten vi skal lande p? og avstanden fra stjerna. For ? utf?re en OIM har vi at 

\(\begin{align} (\Delta \vec{v})_{\text{inj}}&=\vec{v}_{\pm}-\vec{v}_0\\ \vec{v}_\pm&=\pm\,\hat{u}_t v_{\text{stable}} \end{align}\)

hvor \(\hat{u}_t\) er enhetsvektor tangentielt p? planeten og \(\pm\) angir om romskipet g?r i bane mot klokken (\(+\)) eller med klokken (\(-\)). Videre er \(\vec{v}_0\) hastigheten romskipet har, og \(v_\text{stable}\) er gitt ved

\(v_\text{stable}=\sqrt{\frac{\gamma M_p}{r}}\)

hvor \(r\) er avstanden fra romskipet til planetens sentrum. Vi har med oss m?lingsutstyr som gir oss disse st?rrelsene. 

 

Interpolering

N? skal vi se p? hvordan vi pr?vde ? f? til dette p? egenh?nd. Da vi regnet ut de numeriske banene, gjorde vi dette med et visst tidssteg (11 000 per ?r). Dette kan virke bra nok, men vi ?nsker ? kunne finne en hvilken som helst posisjon til en hvilken som helst tid. F?rst litt om interpolering.

Store norske leksikon har f?lgende definisjon av interpolering:

Interpolasjon er i matematikk det ? beregne eller ansl? verdier av en funksjon mellom verdier som allerede er kjent.

La oss se p? et eksempel. Vi har en funksjon \(f(x)=\frac{1}{x}\). Videre har vi datapunktene \(1,2,\dots, 10\). Dette gir oss denne tabellen:

\(x\) \(1\) \(2\) \(3\) \(4\) \(5\) \(6\) \(7\) \(8\) \(9\) \(10\)
\(f(x)\) \(1\) \(0.50\) \(0.33\) \(0.25\) \(0.20\) \(0.17\) \(0.14\) \(0.13\) \(0.11\) \(0.10\)

I et plott ser det slik ut:

Figur 4. Plott av punktene fra tabellen over.

I Figur 4 kan vi se at datapunktene utgj?r en slags form. Dette er vel og bra, men vi ?nsker st?rre n?yaktighet. Vi kan interpolere funksjonen evaluert i de dataene vi har og med dette ?ke graden av presisjon. Vi interpolerer line?rt, som betyr at vi ?nsker ? finne den linjen mellom dataintervallet som passer best. Formelen for line?r interpolasjon er gitt ved 

\(f(x)\approx f(x_1)+\frac{x-x_1}{x_2-x_1}\Big(f(x_2)-f(x_1)\Big)\)

hvor \(f(x_1),f(x_2)\) er funksjonsverdien for punktene \(x_1,x_2\), for \(x_2>x_1\). Merk dere at dette kan skrives som 

\(f(x)\approx f(x_1)+(x-x_1)\frac{\Delta f(x')}{\Delta x'}\)

hvor \(x'\) er funksjonsverdien for de kjente dataene. Ser dere at \(\frac{\Delta f(x')}{\Delta x'}\) blir stigningstallet til den rette linja mellom de to punktene? Vi starter alts? med den kjente funksjonsverdien \(f(x_1)\) og legger til differansen mellom det punktet vi har evaluert funksjonen i \(x_1\) og det punktet vi ?nsker ? evaluere funksjonen i \(x\). Deretter ganger vi denne differansen med stigningstallet til linja mellom de to kjente funksjonsverdiene. Med andre ord lager vi en linje som skal g? fra den f?rste funksjonsverdien til funksjonsverdien av det punktet vi vil evaluere i, med den samme stigningen som den linja fra de to kjente funksjonsverdiene. 

Vi hadde det f?rste intervallet v?rt \([1,2,\dots,10]\). Vi deler opp slik at det blir 10 nye punkter mellom hvert kjente punkt \([1.01,1.03,\dots,9.09,10]\). Ved ? bruke formelen p? hvert av disse punktene og trekke en linje mellom hvert punkt, f?r vi f?lgende plott:

Figur 5. Plottet viser den interpolerte linja i oransje og de kjente datapunktene i bl?tt.

Ettersom at dette er en line?r interpolasjon, f?r vi rette linjer mellom punktene. Jo flere punkter vi velger mellom hvert kjente datapunkt, jo "smoothere" blir linjen. 

Men hva skal vi bruke dette til? Se for dere f?lgende situasjon: person A sitter i bilen sin og person B sitter p? et tog. A skal kj?re over en bro som g?r over togskinnene og kaste en ball ut av vinduet sitt. P? taket av toget er det plassert en veldig stor kurv, som ballen fors?ksvis skal treffe. Kurven er plassert direkte over der B sitter.  Hvert tiende minutt sender B automatisk sin posisjon til A. A ser hele tiden sin egen posisjon og B sin posisjon som prikker p? et kart, men har ikke mulighet til ? stanse bilen, kun bremse. Dessuten kan ikke A se eller h?re toget p? noe tidspunkt. Kan A klare ? beregne posisjonen sin i forhold til posisjonen til B med tilstrekkelig presisjon til ? klare ? treffe kurven p? taket av toget?

Ser dere at s? lenge A og B er langt unna hverandre, s? kan A v?re trygg p? at han ikke er for tidlig eller for sent fremme p? broen. Problemet melder seg n?r de to n?rmer seg hverandre. Hvis A f?r et signal om B sin posisjon 5 minutter f?r B vil v?re n?yaktig under broen, vil han f? det neste signalet n?r B er 5 minutter forbi broen. Mellom her kan ikke A si noe om hvor B befinner seg. Han har for f? datapunkter!

Det er dette som kan skje n?r vi pr?ver ? treffe planeten vi skal reise til. Hvis vi leter etter en posisjon som befinner seg mellom to tidssteg m? vi gjette p? omtrent hvor planeten befinner seg. Husk at vi har formler for b?de hvilken avstand vi m? v?re fra planeten og hvor langt vi m? v?re unna planetens sentrum for ? kunne gjennomf?re OIM. 

Vi har utf?rt de fleste av beregningene selv, men dessverre f?r vi ikke riktige resultater. N?r vi endrer tidspunktet for launch, klarer vi ikke med stor nok n?yaktighet ? beregne hvor vi befinner oss p? planetoverflaten. N?r vi interpolerer p? en datamaskin er det mye som kan g? galt. Dette er et konsept som for oss er veldig enkelt, men det ? implementere det p? en datamaskin har vist seg ? v?re helt forskjellig fra v?r erfaring. Flaks at vi har kompetente folk p? v?rt lag!

Planen v?r er derfor ? sende over noen skjemaer til IPA med de verdiene vi ?nsker, for s? ? f? dem til ? beregne banen for oss slik at vi kommer oss i orbit rundt planeten. I neste innlegg skal vi se litt videre p? hvordan vi har tenkt, og det vil bli presentert noen teoretiske muligheter for ? komme i orbit. 

Forrige innlegg <<                                                                             Neste innlegg >>

Av Johan Carlsen
Publisert 31. okt. 2021 13:56 - Sist endret 17. des. 2021 01:55