(1) P? en digital romreise: Simulering av verdensrommet fra egen pc

Har du lurt p? hvordan det er ? reise i rommet? De fleste har sannsynligvis p? et eller annet tidspunkt kikket opp mot stjernehimmelen og lurt p? hva som skjuler seg der oppe. For de fleste forblir dette med fjern dr?m. En reise til rommet er sv?rt vanskelig ? gjennomf?re. Det krever ?revis med planlegging, koster enorme summer, og krever tusenvis av mennesker som 澳门葡京手机版app下载er. Heldigvis for oss som ikke er astronauter fins det andre m?ter ? utforske rommet p?. Gjennom datasimuleringer kan man, til tross for mange forenklinger, oppleve mye av det samme som astronauter gj?r. I tillegg kan du gj?re det fra komforten av ditt eget hus. Denne bloggen skal handle om v?r digitale romreise fra en planet i et datagenerert solsystem til en annen. Vi skal se at ved hjelp av ulike numeriske og analytiske metoder, kan man lage gode simuleringer og en forholdsvis realistisk romreise. Dette til tross for mange forenklinger som m? gj?res underveis.

Figur 1. Oppskytning av raketten Soyuz MS-22.
Hentet fra: https://www.nasa.gov/image-feature/the-soyuz-ms-22-rocket-launches-to-the-international-space-station

S? hvordan simulerer man egentlig en romreise? Dette er en stor og sv?rt sammensatt oppgave. N?r man skal l?se kompliserte problemer ligger l?sningen ofte i ? forenkle problemet og dele det opp i flere mindre problemer. Akkurat det har vi valgt ? gj?re her. I de f?rste to bloggposten skal vi fokusere p? forberedelsene til oppskytningen. Dette inneb?rer i hovedsak tre punkter:

1) Simulering av forholdene i rakettmotoren.

2) Modellering av motorens effekt.

3) Testoppskytning.

Rakett
Figur 2: Forenklet figur av en rakett delt i fire deler: satellitt, tank, forbrenningskammer og gasskammer. Raketten f?r bevegelsesmengde fra partikler som g?r ut. Laget av Marius Torsheim.

F?r vi g?r videre og ser p? hver enkel del kan det v?re en fordel ? se p? litt av fysikken som er involvert. Fra fysikk 1 vet dere sikkert at dersom vi skal f? et legeme i ro til ? bevege seg s? m? det virke en kraft p? det. Tilsvarende m? summen av kreftene v?re st?rre eller mindre enn \(0\) dersom man ?nsker at raketten skal endre hastighet. Dette er veldig greit s? lenge raketten st?r p? bakken og skal skyte i fra. Da har vi kontaktkrefter mellom bakken og raketten, og vi kan if?lge Newtons 3. lov dytte p? bakken for ? f? raketten til ? g? oppover. Men hva skjer n?r vi forlater overflaten og ikke lenger kan dytte ned p? noe? I dette tilfellet kan det v?re enklere ? se litt bort i fra krefter, og heller tenke p? bevaring av bevegelsesmengde (selv om dette egentlig er to sider av samme sak). Som vi vet, vil alltid bevegelsesmengde v?re bevart s? lengde det ikke virker noen ytre krefter p? systemet. En rakettmotor utnytter dette prinsippet. Inne i raketten vil man ha varm gass under h?yt trykk. Gassen best?r som vi vet av mange molekyler. Hvert enkelt molekyl har en hastighet, og dermed en bevegelsesmengde. Disse molekylene vil sprette rundt i et kammer og vil av og til sprette av taket i boksen og ut gjennom en ?pning i bunnen av raketten (Se figur 2). Siden bevegelsesmengden skal v?re bevart m? det bety at raketten f?r litt bevegelsesmengde framover for alle partikler som spretter ut bakover. Hvis man har nok partikler som spretter ut vil dette gi raketten en betydelig fart.

Vi skal n? se litt n?rmere p? hvordan gassen beveger seg og oppf?rer seg i et kammer. Som vanlig s? velger vi ? se p? et forenklet system som vi gradvis gj?r mer og mer komplisert. Dette er en god m?te s?rge for at de ulike delene fungerer som de skal ettersom ting fort kan bli uoversiktlig hvis man tar for mange ting av gangen.  Som de gode fysikerne vi er gj?r vi en rekke antagelser og forenklinger for ? gj?re simuleringene enklere:

1) Gasstankene inneholder ren \(H_2\)-gass.

2) Gassen er uniform p? makroniv?. Alts? at temperaturen i Maxwell-Boltzmann-fordelingen er konstant, og antallet partikler er konstant (mer om Maxwell-Boltzmann-fordelingen under).

3) Gravitasjonskrefter p? partiklene kan neglisjeres under simulasjonen.

4) Vi behandler partiklene som punkter, slik at de ikke vil kollidere med hverandre.

5) Antar perfekte elastiske kollisjoner med veggene i kammeret (all energi er bevart).

Det kan neves at en gass som er slik som i antagelsene kalles en ideell gass. Kan du tenke deg hvorfor det ikke blir noen kollisjoner n?r partiklene behandles som punkter? Teoretisk sett er det jo mulig at to punkter kan befinne seg p? samme sted, men s? lenge det er uendelig mange punkter hver partikkel kan befinne seg p?, s? vil sannsynligheten for at to er p? samme sted bli lik 0. Husk at sannsynligheten for en hendelse \(A\) inntreffer er gitt ved \(P(A)={{antall\: gunstige\: hendelser}\over{antall\:mulige\: hendelser}}\). En mulig hendelse kan for eksempel v?re at begge partiklene er i \((1,1,1)\). Da har man uendelig mange andre muligheter. Det gir \(P(A)={1\over{\infty}}=0\), og ingen kollisjon.

N? som vi har unnagjort alle forenklingene kan vi begynne simulasjonen. F?rst ser vi p? hvordan partiklene beveger seg inne i en boks med sidelengder \(1.00\cdot 10^{-6}m\). Det tilsvarer ca. \(1/500\)-del av tykkelsen til et h?rstr?, s? vi ser alts? p? en veldig liten boks! Det ble plassert totalt \(500\) \(H_2\)-partikler.  rundt i boksen. Posisjonene til partiklene ble valgt til ? v?re uniformt fordelt. Alts? jevnt fordelt utover hele volumet. Hastighetene til partiklene ble derimot valgt til ? v?re tilfeldige i henhold til Maxwell-Boltzmann-fordelingen med temperatur \(3.00\cdot 10^{3}K\). Til sammenligning er solens overflate cirka \(5.78\cdot 10^{3}K\). S? hva betyr det at den er fordelt i henhold til denne fordelingen? Maxwell-Botzmann-fordelingen er en s?kalt sannsynlighetsfordeling. Det er en slags funksjon som beskriver sannsynligheten for at ulike hendelser inntreffer, i dette tilfellet at partikkelen har en gitt hastighet. Legg merke til bruken av ordet hastighet som beskriver en vektor, framfor fart som beskriver en skalar. Fordelingen viser sannsynligheten for en gitt hastighetsvektor \(\vec{v}=(v_x,v_y,v_z)\) og er gitt ved:

\(P(\vec{v})=({m\over 2\pi kT})^{3/2}e^{-{1\over 2}{mv^2\over kT}}\)

Her er \(m\) massen i kg, \(k\) er Boltzmann-konstanten p? \(1.38\cdot 10^{-23}J\cdot K^{-1}\)\(T\) er temperaturen i kelvin og \(v\) er farten i \(m/s\)

Fordeling
Figur 3.  Her kan du se et eksempel p? hvordan fordelingen kan se ut. Ved ulike valg av parametere vil bredden og h?yden forandres. Bilde hentet fra: forelesningsnotat 1A

Tilsvarende har vi en sannsynlighetsfordeling for ulike farter en partikkel kan ha gitt ved:

\(P(v)=({m\over 2\pi kT})^{3/2}e^{-{1\over 2}{mv^2\over kT}}4\pi v^2\)

Fra denne kan man utlede flere andre interessante resultater. For eksempel kan vi finne den forventede farten til en gitt partikkel i gassen ved f?lgende ligning:

\(\langle v \rangle= \sqrt{8kT \over \pi m}\)

der variablene har samme betydning som i ligningen over. I tillegg kan man finne trykket med f?lgende ligning:

\(P=nkT\)

der \(n\) er antallet partikler, og \(k\) og \(T\) er det samme som over. Dersom du er interessert i hvordan ligningen for trykk utledes kan du gjerne ta en kikk her.

Videre valgte vi ? simulere bevegelsen til partiklene ved hjelp av Euler-Cromer-algoritmen. Dette er en av de mest brukte algoritmene for ? beskrive bevegelse. I korte trekk kan den l?se differensialligninger ved ? dele opp i sm? tidssteg og beregne hastighet og posisjon ved en gitt tid basert p? posisjonen og hastigheten tidssteget f?r. Man kan finne dette med ligningene under:

\(v_{v+1}=v_n+adt\)

\(x_{n+1}=x_n+v_{n+1}dt\)

\(t_{n+1}=t_n+dt\)

Den f?rste ligningen virker ganske fornuftig hvis man kjenner til bevegelsesligningene. Husk formelen \(v=at+v_0\) fra fysikk 1. Den andre er derimot litt mer kryptisk. Hvorfor er det \(v_{n+1}\) og ikke \(v_n\)? Uten ? g? for mye i detalj har det vist seg at man iblant kan havne i problemer med bevaring av energi dersom man bruker \(v_n\). I en del situasjoner, spesielt i klassisk mekanikk, slipper man dette problemet dersom man bruker \(v_{n+1}\). I tillegg ser vi at dersom vi substituerer for ligningen over f?r vi \(x_{n+1}=x_n+v_ndt+a(dt)^2\), som ligner mye p? \(s={1\over{2}}at^2+vt+s_0\) fra fysikk 1.

Simulasjonen ble valgt til ? vare i \(1.00\cdot 10^{-9}s\) med \(dt=1.00\cdot 10^{-12}s\). Alts? ble det brukt \(1.00\cdot 10^3\) tidssteg. Videre ?kte vi antallet partikler fra \(500\) til \(1.00\cdot 10^4\).

N? har vi simulert bevegelsen i en boks, men dette i seg selv er jo egentlig ikke s? interessant. Som jeg nevnte tidligere s? er vi avhengig av at partikler forlater boksen for at raketten skal bevege seg. Dette f?rer oss til neste steg. N? skal vi introdusere et hull midt i bunnen av kassen. Hullet ble valgt til v?re sirkul?rt med et areal \(0.250L^2\) eller \(2.50\cdot 10^{-13}m^2\). For ? s?rge for at fordelingen av partiklene skulle holde seg konstant valgte vi en l?sning som ville legge til en partikkel i toppen av kassen hver gang en partikkel forsvant ut. Denne ville ogs? ha samme st?rrelse p? bevegelsesmengden som den som gikk ut, men tilfeldig retning. Samtidig registrerte vi antallet partikler som forlot boksen, og bevegelsesmengdene deres for ? finne rakettens drivstoff-forbruk og fremdrift. Se figur 4 for visualisering av gasspartiklenes bevegelse i kammeret. Slike plott kan ofte v?re et godt hjelpemiddel for ? se om simuleringen fungerer slik den skal.  

Figur 4. Simulering av 500 partikler rundt i boksen. Fors?k ? legge merke til partikler som forsvinner ut gjennom den runde ?pningen i bunnen og blir lagt til i toppen. Sidene i boksen er \(1.00\cdot 10^{-6}m\). Laget av Simon Berg. 

N? kan vi se litt n?rmere p? rakettmotorens ytelse og beregne drivstoff-forbruk for turen. Det er viktig ? nevne at vi valgt ? se p? rakettmotoren som summen av mange sm? motorer, og at vi ser vekk fra forbruket i akselerasjonen. N?r vi ser p? en rakettoppskytning, kommer vi borti en litt interessant problemstilling. I de aller fleste oppgaver man kommer borti i fysikk 1 og 2 antar man at massen til legemet man ser p? er konstant. Dette er som vi n? har skj?nt ikke tilfellet for en rakett. Dermed m? man regne litt annerledes n?r man ser p? bevegelse. Heldigvis for oss fins det en ligning med det passende navnet rakettligningen. Ligningen er gitt ved f?lgende:

\(\Delta v=v_{exh}\ln({m_f \over m_i})\)

Her er \(\Delta v\) endringen i rakettens fart, \(v_{exh}\) er farten massen forsvinner ut med (vi antar en konstant massestr?m), \(m_i\) er startmassen og \(m_f\) er sluttmassen. Dersom du er interessert i utledningen av denne kan du trykke her.

N? gjenst?r bare simuleringen av oppskytningen. Dette er ikke den faktiske oppskytningen, som vi kommer til i en senere blogg-post, men en testsimulering. N?r vi skal gj?re en testoppskytning er det viktig ? ha en klar definisjon som sier n?r vi har n?dd verdensrommet. Her har vi valgt ? gj?re det s? enkelt at vi sier det skjer n?r den kinetiske energien til raketten tilsvarer den potensielle energien i tyngdefeltet. Fra Newtons gravitasjonslov finner vi at dette skjer n?r hastigheten til raketten er:

\(v_{esc}=\sqrt{{2\gamma M}\over{r}}\)

Pr?v gjerne ? utlede det selv. Her er \(M\) massen til planeten man skyter opp fra, \(r\) er avstanden til planetens sentrum og \(\gamma\) er gravitasjonskonstanten gitt ved \(6.67\cdot10^{-11}m^3kg^{-1}s^{-2}\)

Figur 5. Plassering av planet i x,y-planet med oppskytningssted. Laget av Marius Torsheim.

For ? n? denne hastigheten innen den gitte tiden valgte vi ? bruke kvadratiske bokser med sidelengder \(1.00\cdot 10^{-6}m\) slik som tidligere. Vi satte temperaturen til ? v?re \(3.00\cdot 10^3K\) og valgte antallet partikler per boks til ? v?re \(1.00\cdot 10^3\). N?r det kommer til massen, valgte vi ? sette rakettens masse uten drivstoff til ? v?re \(4.00\cdot 10^3kg\) og drivstoffet til ? v?re \(2.00\cdot 10^5kg\). Startposisjonen til planeten i x,y-planet ble valgt til ? v?re \((1.36AU,0)\) (Se figur 5). Her er \(AU\) den astronomiske enheten som tilsvarer omtrent \(1.50\cdot10^8km\). Dette er cirka middelavstanden mellom jorden og sola. Til slutt satte vi teoretisk tid til \(v_{esc}\) til ? v?re \(20.0\) minutter. Vi har implementert en funksjon som beregner antallet motorer som er n?dvendig for ? f? raketten til ? n? unnslipningshastigheten innen den gitte tiden. Denne funksjonen gir et estimat, men bygger p? noen ganske grove antagelser. Dersom vi antar at massen rakettens masse er konstant har vi at antallet motorer \(n\) er gitt ved 

\(n={v_{esc}\cdot m_{rocket}\over{F\cdot t_{esc}}}\)

Her er \(m_{rocket}\) massen til raketten, \(F\) er kraften fra en motor og \(t_{esc}\) er tiden 

til man n?r unnslipningshastigheten. Se utledning her. Denne antagelsen fungerer godt i begynnelsen, men som vi ser vil antallet motorer som trengs begynne ? synke etter hvert som drivstoff blir forbrent. Husk at tyngden til raketten er gitt ved \(F=\gamma {Mm\over{r^2}}\). N?r massen til raketten blir mindre vil ogs? kraften den trekkes ned med ogs? bli det, og dermed trenger man mindre motorkraft. Resultater er at rakettens skyvekraft blir st?rre enn den trenger ? v?re, og man vil n? unnslipningshastigheten raskere enn den teoretiske tiden til unnslipning som ble nevnt tidligere. Et lite problem er at drivstofforbruket blir h?yere enn n?dvendig.

Da har vi unnagjort f?rste del av planleggingen til romreisen. I neste bloggpost skal vi se litt n?rmere p? hva testene og simuleringene har vist oss, og hva vi kan l?re av dem f?r vi begynner p? neste steg i reisen. F?lg med videre! Reisen blir bare mer og mer spennende herfra!

Av Marius Torsheim, Simon Berg
Publisert 12. sep. 2023 21:32 - Sist endret 15. sep. 2023 19:34