F?rst og fremst m? jeg bare komme med en liten oppdatering. Husker dere hvordan jeg var s?nn "VI TRENGER TJUEFEM TUSEN KILO MED DRIVSTOFF HVOR SYKT ER IKKE DET!!!???"? Ja, jeg gjorde noen videre beregninger p? dette, og kj?rte koden min gjennom et par tester, oooog: Det viste seg ? ikke v?re nok. Jeg m?tte jammen meg g?nne p? med et par kilo til, og endte til slutt p? 27 000 kg med drivstoff. Og jeg har en f?lelse p? at dette tallet faktisk kommer til ? fortsette ? ?ke ved videre testing. Men det finner vi nok ut av litt senere.
Det jeg har jobbet med i det siste er ? f? simulert planetbanene til alle planetene i Pjokknessystemet v?rt. Vi kjenner naturligvis til alle disse, men jeg trenger ? f? simulert de i programmet mitt, slik at jeg har dem til simuleringen av den faktiske ferden gjennom rommet og helt til Skrukkla?s. Som jeg har nevnt tidligere er det veldig viktig at jeg f?r gjort s? n?yaktige simuleringer og tester som mulig, f?r raketten virkelig sendes ut. Dette er rett og slett for ? minimere sjansen for ? mislykkes s? mye som mulig.
For ? f? til denne simuleringen m?tte jeg gj?re et par forenklinger, men disse vil ikke ha s? s?rlig stor betydning for resultatet mitt uansett. Vi ser bort i fra gravitasjonskreftene mellom planetene, og ogs? kraften p? stjernen v?r Pjokknes, fra planetene. Dette betyr at vi fester stjernen i midten av systemet, og sier at den st?r i ro der. Pr?v ? ha som et bilde i hodet at dette er origo i et koordinatsystem. Jeg har ogs? gjort en del beregninger hvor Pjokknes ikke har v?rt festet i origo, dvs. at jeg har tatt hensyn til at vi har en kraft fra planetene p? stjernen, som vil gj?re at den ikke vil st? heelt i ro. Da vil massesenteret befinne seg ?rlite til siden av sentrum til stjerna, og vi vil f? et litt mer avansert s?kalt to-legeme-problem. Dette krever litt mer avanserte beregninger og kunnskap, s? jeg tror det er best at jeg holder meg til ? forklare situasjonen med Pjokknes festet i origo, da det er dette vi kommer til f? bruk for videre i forskningsprosjektet.
Til info ligger alle planetbanene i systemet v?rt i det samme planet. Dette kaller vi for xy-planet, og disse beregningene blir da alts? todimensjonale. Da har vi en stasjon?r stjerne plassert i origo, og 7 planeter som g?r i bane rundt denne, uavhengig av hverandre. Jeg m? n? l?se en bevegelseslikning for hver planet for ? skaffe meg banene til planetene v?re. Det jeg bruker er som alltids Newtons 2. lov, og denne vil gi meg en differensiallikning:
F = mpa = \(m^p{dv\over dt}\) = \(m^p{d^2r\over dt^2}\) = \(- {Gm^pm^s\over r^3}\)r
Husk at akselerasjonen tilsvarer den deriverte av farten som igjen tilsvarer den deriverte av strekningen.
Her er mp massen til planeten, ms massen til stjerna, r er posisjonsvektoren til planeten og r = \(\sqrt{x^2 + y ^2}\) er avstanden mellom planeten og stjernen. Enhetene jeg n? bruker, er AU for lengde, ?r for tid, og solmasser for masse. Dette to-legeme-problemet m? selvf?lgelig l?ses numerisk, og metoden jeg bruker for ? gj?re det, kalles Euler-Cromer metoden. Det denne gj?r, er at vi starter med gitte initialverdier for tid, posisjon, hastighet og akselerasjon, ogs? l?ser vi likningene steg for steg ved ? ?ke én faktor, som i v?rt tilfelle vil v?re tiden, med en veldig liten ?kning dt. Vi vil da oppn? en liste over posisjonene til alle planetene i hvert gitte tidssteg over en bestemt tidsperiode. En viktig ting jeg gj?r for ? forenkle dette litt vanskelige problemet, er at jeg deler opp Newtons 2. lov, som jeg beskrev over, i x- og y-komponenter. Jeg definerer alts? posisjon, hastighet og akselerasjon i x-retning og i y-retning hver for seg.
Ovenfor er det som bare kalles Eulers metode beskrevet. Euler-Cromer metoden er enda litt mer n?yaktig enn Eulers. Begge disse er integrasjonsmetoder for l?sning av differensiallikninger. Og disse finnes det haugevis av - noen mer avanserte og n?yaktige enn andre. Jeg pr?vde meg ogs? p? en metode som kalles Leapfrog, en jeg aldri har pr?vd f?r. Denne minner om Euler-Cromers, men er enda mer presis igjen. Her regnes hastighetene ut p? halve steg mellom posisjonsberegningene. Disse integrasjonsmetodene er ganske s? avanserte, og krever mye modning for ? forst?. Derfor velger jeg ? ikke g? noe dypere inn i detalj p? disse akkurat n?, men vi holder oss p? det niv?et vi er p?. Til info endte jeg ikke opp med ? bruke Leapfrog, jeg gikk ganske s? fort tilbake til Euler-Cromer. Den virket ikke helt som jeg ?nsket, og ga meg ikke noen synligere n?yaktighet, s? da gikk jeg ganske s? greit tilbake til det kjente. La meg pr?ve en gang til ? forklare hvordan beregningene fungerer;
Dette ble kanskje litt mye ? ta inn, jeg vet. Det jeg gj?r er alts? at jeg starter med initialverdiene mine for posisjonene og hastighetene til planetene. S? bestemmer jeg over hvor mange ?r jeg ?nsker ? simulere banene. Her ble en del styr frem og tilbake. For ? v?re sikker p? at jeg fikk de riktige banene, ville jeg kj?re simuleringen for minst 20 runder rundt Pjokknes for v?r egen planet. Vi vet jo alle at vi bruker omtrent 8 m?neder p? en runde rundt stjerna v?r, s? da burde vel en simulering p? 20 ?r v?re lang nok? Nei, det var den s? absolutt ikke. Det jeg gjorde for ? finne utav dette problemet var ? pr?ve ? plotte de banene jeg skulle simulere.
Ikke engang etter ? ha satt tiden til 100 ?r ble banen til den ytterste planeten fullf?rt. Dette er noe jeg fortsatt stusser litt p?, men jeg fortsatte meg n? uansett ? pr?ve meg frem med nye verdier. Da jeg n?dde 120 ?r begynte ting heldigvis ? se ganske s? mye bedre ut. Det neste jeg m?tte gj?re, var ? bestemme meg for hvor mange tidssteg jeg skulle dele hvert av disse ?rene inn i. Jeg begynte vel kanskje med rundt 1000 tidssteg for hvert ?r, men dette var bare til jeg visste at koden min fungerte som den skulle. Det er nemlig slik at jo flere tidssteg du velger ? ha, jo lenger tid vil programmet bruke p? ? kj?re. Men dette sier seg vel kanskje litt selv. Allikevel trenger jeg posisjonene til planetene med veldig god presisjon til senere bruk, og derfor bestemte jeg meg for at jeg trengte minst 10 000 tidssteg per ?r. Etter ? ha bestemt disse tallene laget jeg meg et tidsintervall dt, ved ? ta antall ?r/antall tidssteg. Og det er dette tidsintervallet jeg bruker i Euler-Cromer metoden - jeg plusser dt p? tiden min, og regner deretter ut de nye verdiene for akselerasjonen, og oppdaterer hastigheten og posisjonen, etter hvert slik lille tidssteg. Med 10 000 tidssteg per ?r, i 120 ?r, er det ikke s? rart ? skj?nne at dette kan ta lang tid ? regne ut, til og med for en datamaskin! Og man skj?nner at man kan f? ut posisjonen til en hver tid med ganske s? stor n?yaktighet. Om det var uklart, lagrer jeg alts? verdiene jeg f?r etter hvert tidssteg, og det er slik har dem for senere bruk.
Om du lurer p? hvor jeg f?r uttrykket mitt for akselerasjon, s? er det bare ? se p? likningene jeg beskrev over:
mpa = \(- {Gm^pm^s\over r^3}\)r
Jeg deler p? massen mp p? begge sider av likhetstegnet. I tillegg multipliserer jeg for hvert steg dette med den tidligere posisjonen enten i x- eller y-retning, én for hver akselerasjon i x- og y-retning.
Etter videre testing kom jeg til slutt frem til at jeg faktisk ikke trengte ? kj?re simuleringen i s? lenge som 120 ?r. Det viste seg rett og slett ? holde med 77 ?r. Akkurat hvorfor tallet 77 ble tilfellet, er nok jeg like usikker p? som deg. Men s? lenge koden virker og simuleringen blir riktig, s? er jeg en happy camper :D:D
For sikkerhetsskyld regnet jeg ut det relativet avviket til hver enkelt planet mellom banene jeg klarte ? simulere i min kode, og de faktiske banene til planetene i Pjokknessystemet v?rt - de vi har fra "ekte" m?linger og observasjoner. Det st?rste relativet avviket fra virkeligheten fant jeg hos de utregnede posisjonene til v?r egen planet. I min simulering driver den 0.0321% fra den egentlige posisjonen den har i rommet. Til og med dette avviket er s? lite at det regnes som godkjent. Og godt er det, for som du kanskje har forst?tt begynner jeg ? bli litt lei av ? sitte inne p? et kontor bak en skjerm og gj?re simuleringer - jeg vil sette i gang med den virkelige oppskytningen s? fort som mulig!! Men per n? er det tilbake til simuleringene.
Jeg avslutter dette med noen skjermbilder av den fullf?rte simuleringen min. For ? visualisere banene bruker jeg et program som heter Solar System Viewer, og sender beregningene og resultatene fra koden min inn til dette programmet. For noen av planetene kan du se at jeg ogs? har tatt med m?nebanene.
Ganske stilig, ikke sant?
Vi blogges!