M?let er alts? ? f? min simulerte rakett n?rme nok m?lplaneten min, Skrukkla?s, til ? kunne utf?re en s?kalt "orbital injection maneuver", og med det plante raketten min i en stabil bane rundt planeten. For ? gj?re dette m? jeg finne et sett med instruksjoner ? gi raketten som resulterer i ? om ikke 100% treffe, men i hvert fall komme veldig n?rme m?lplaneten. Jeg m? kalkulere hvor mange "boosts" som er n?dvendig ? gi raketten min underveis, og ikke minst n?r de m? utf?res.
Jeg simulerer banen til raketten p? samme m?te som for planetene, som jeg forklarte for noen innlegg siden. Jeg kan allikevel gi dere en kort oppfriskning; Det jeg gj?r er at jeg l?ser flere tilsvarende differensiallikninger, én for hver planet. Og en for Pjokknes, selvf?lgelig. Disse likningene ser veldig skumle ut, s? jeg skal ikke skremme dere for mye med de. Om du har glemt hva en slik likning inneb?rer, er en differensiallikning en likning der den (eller de) ukjente er en funksjon, ikke en verdi som vi kanskje ellers er vandt til, og den deriverte av funksjonen(e) er med i likningen. En slik difflikning beskriver en sammenheng mellom en funksjon og endringer i funksjonen. For ? l?se differensiallikningene bruker jeg min favorittintegrasjonsmetode - Euler-Cromers metode. Det heter alts? en integrasjonsmetode, fordi vi i en difflikning som sagt har den deriverte av funksjonen, men ikke funksjonen selv. Derfor m? vi alts? integrere likningen for ? finne den ?nskelige funksjonen.
I mitt tilfelle kjenner jeg, eller kan ved hjelp av Newtons 2. lov (F = ma), beregne akselerasjonen til raketten, med gitt startposisjon og -hastighet. B?de massen og avstanden til de forskjellige planetene er jo ulike, s? jeg beregner det samme uttrykket for akselerasjon med hensyn p? de forskjellige planetene og stjernen v?r. Etterp? plusser jeg rett og slett bare alle disse sammen, og da vil jeg f? det endelige uttrykket for akselerasjonen til raketten. Deretter integrerer jeg alts? dette uttrykket, ved hjelp av Euler-Cromer, og m? da f?rst via hastigheten, da dette er den f?rste antideriverte av akselerasjon, f?r jeg finner posisjonen til raketten til enhver tid, som er den andre antideriverte av akselerasjonen. Startposisjonen og -hastigheten jeg gir raketten er de jeg fikk ut av den f?rste delen av dette prosjektet, da jeg l?ftet raketten ut av Odraings tyngdefelt. S? jeg har begynnelsen av banen til raketten, men det er n?r den kommer ut i rommet og blir p?virket av tyngdefeltet fra Pjokknes og de andre planetene at det virkelig begynner ? bli vanskelig. Med Pjokknes i midten av v?rt stjernesystem-som-vi-n?-ser-p?-som-et-koordinatsystem, med posisjon [0 AU, 0 AU], er mine startverdier:
Posisjon
x-retning = 3.237983459 AU
y-retning = 4.98350311747 ? 10-5 AU
Hastighet
x-retning = 3.01471078894 AU/?r
y-retning = 5.1719086418 AU/?r
Det kan fort v?re at jeg ender opp med ? gj?re endringer i verdiene for startposisjonen n?r den virkelige oppskytningen n?rmer seg. Vi m? nemlig ta med i betraktning at alle planetene flytter p? seg til en hver tid, i tillegg til at v?r egen planet selvf?lgelig g?r rundt seg selv, og derfor vil ogs? oppskytningstidspunktet ha veldig mye ? si for hvor raketten tar veien. Etter ? ha implementert alt jeg n? har nevnt i programkoden min var det p? tide med en test. Jeg satte tiden til 3 ?r og lot koden kj?re. Hva skjedde spurte du? Dette skjedde:
Den bare suste av g?rde? Alts??? N? tenker du kanskje at "Men er ikke bare det greit, da? Er det ikke det du vil?". Svaret er for s? vidt ja, det er bare at det var absolutt ikke det jeg hadde forventa! Jeg hadde forventa at unnslipningshastigheten ikke kom til ? v?re nok til ? komme seg unna gravitasjonskreftene fra Odraing, og i hvert fall ikke fra sola! Derfor s? jeg for meg at raketten min kom til ? g? i en elliptisk bane rundt Odraing. Men dette skjedde alts? ikke. Og dette f?rte til en god del timer med det jeg liker ? kalle "kodestirring". Det har rett og slett blitt min nye hobby, det. Kodestirring. Men det resulterte egentlig ikke i noe som helst. Jeg fant ikke feilen. Jeg kunne ikke se noen feil. Hva skjer da?
Man m? jobbe med det man har. S? det bestemte jeg meg for ? gj?re. Jeg hadde egentlig lyst ? pr?ve meg p? det som heter en Hohmann transfer. Dette er en metode som overf?rer en satellitt eller et romfart?y fra én sirkul?r bane til en annen. Dette gj?res ved hjelp av en Hohmann transfer orbit, som er en elliptisk bane som da tar fart?yet fra en sirkul?r bane med en viss radius, til en ny sirkul?r bane med en st?rre radius. Alle disse banene m? da selvf?lgelig befinne seg i samme plan. Metoden er oppkalt etter den tyske forskeren Walter Hohmann, som i 1925 publiserte en beskrivelse av dette i en bok han ga ut. Hohmann transfer krever to slike "boosts" jeg nevnte tidligere, et for ? flytte fart?yet inn i den ellipstiske transfer orbiten, og et for ? bevege seg av denne banen igjen. Det vil se ut litt som dette:
N? har det seg jo slik at jeg ikke starter i en bane i det hele tatt, raketten min ser ut til ? bare suse av g?rde mot uendeligheten. S? da m?tte jeg tenke nytt. Det jeg kan gj?re, er ? legge inn en tester i koden min. Jeg kan teste for avstander mellom raketten og banen til Skrukkla?s!
I figuren over har jeg simulert banene for en periode p? 2 ?r. Her ser raketten ut til ? n?rme seg banen til Skrukkla?s (Planet #4 i r?dt), men med en dose uflaks ser vi at planeten befinner seg en helt annen plass p? tidspunktet da raketten n?r banen. Jeg trenger raketten n?rme nok Skrukkla?s for en stabil bane ? v?re mulig. Den minste avstanden som trengs for ? oppn? dette ligger som regel p? omtrent 0.01 AU = 1.5 ? 106 km.
Det vi da kan gj?re, er som sagt ? legge inn en test. Vi kan teste for avstanden mellom Pjokknes og st?rrelsen p? Skrukkla?s' st?rste halvakse, og s? fort raketten n?r denne avstanden, gir vi den et skikkelig boost i klokkeretning, og sender den dermed i kollisjonskurs mot planeten. Deretter er det bare ? finne frem popcornet og vente i spenning p? at tyngdefeltet fra Skrukkla?s skal snappe opp raketten. Det er godt mulig den vil trenge et ekstra lite boost da den treffer planeten, for ? virkelig f? satt den i bane rundt denne. Da dette er gjort er vi vel i m?l, da. I hvert fall s? langt, ogs? er det bare ? sette neste m?l - Hvordan holder vi denne banen? Og ikke minst, hvordan lande?
PS. Om du er interessert i mer info hvordan en numerisk integrasjonsmetode fungerer, s? har Khan Academy mye bra videoer p? dette. Jeg linker til videoen for Eulers metode: https://www.youtube.com/watch?v=q87L9R9v274
Vi blogges!