|
Moonlanding
|
|
Du er pilot i en romkapsel på vei til månen. Du har 100 l brennsel i
tanken som du bruker til å nedbremse kapselen. Din høyde er 10'000 m, og
din fart er 100 m/s.
|
|
Når du bremser, produserer rakettmotoren en drivkraft som varer i to sekunder.
Styrken avhenger av mengden av brennsel som du svir av i dette øyeblikket.
|
Her er en oversikt over det som skjer i ett bremse-skritt:
- Du bestemmer deg for en mengde brukBrennsel av brennsel som du skal
bruke i dette skrittet
- Mengden av brennsel som du har igjen i tanken blir redusert:
brennselITank --> brennselITank
- brukBrennsel
- Motoren produserer en negativ akselerasjon (nedbremsing) som er gitt av
bremseAkselerasjon = brukBrennsel * bremseEffisiens
-
Samtidig blir du fortere fordi månen tiltrekker (gravitasjon!). Og det blir
verre dess nærmere du kommer. En mulig formel kan være
gravityAkslerasjon = g * (1
+ 10000/(10000 + høyde)
Denne formelen har lite med fysikk å gjøre, men skaper spenning
-
Total akslerasjon er altså gravityAkselerasjon som øker
farten, og bremseAkselerasjon som minker farten
-
En akselerasjon medfører en fartsforandring. Forandring er proporsjonal
med netto akselerasjon og med lengden av tidsintervallet:
fartsForandring = (-bremseAkselerasjon +
gravityAkselerasjon)*tidSkritt
-
Ny fart er gammel fart plus fartsforandring:
fart --> fart + fartsForandring
-
Fart medfører en forandring av høde:
høydeForandring = fart * tidSkritt
-
Den nye høyden er (her teller vi negativt)
høyde -> høyde - høydeForandring
|
|
Dette kan du lett oversette i formeler. Formelene kan du ikke legge direkte inn
i et regneark fordi du da ikke har noe mulighet å triggere et bremseskritt.
Men du kan godt få det til ved hjelp av en makro...
|
Start med et tomt ark og legg inn alle parameter som er aktuelle. Bruk navn
til cellene som inneholder verdier:
|
Begynn med å registrere en makro som heter Reset. I denne makroen
blir alle variabler satt til ugangspunktet. Denne makroen kan du lage fullstendig
ved hjelp av makro-opptakeren. Eller du kan skrive det manuelt.
|
Du skulle ende opp med en makro som er omtrent som denne:
|
Du kan også bruke
.Value = ...
istedenfor
.FormulaR1C1 = ...
-- det ville her vært equivalent.
|
|
Makro nr. 2 er den som gjør alle beregninger i ett bremse-skritt. Denne
må du programmere selv; det er litt for vanskelig for makro-opptakeren.
|
|
Makroen har tre deler. Første delen forbereder alt sammen ved å lese de aktuelle
verdiene fra regnearket -- høyde, fart, etc. Den andre delen utfører
selve beregningen. Den tredje
delen sender de nye verdiene tilbake til regnearket.
|
Slik kan den første delen bli: Ikke noe spennende, men det må gjøres.
|
Slik er hoveddelen som gjør hele jobben. Fordi dette begynner å bli
kompleks, er det lurt å spe på med kommentarer.
|
Slik kan den tredje delen bli: Igjen ikke noe spennende, men akk så
nødvendig.
|
Til slutt: legg inn to knapper ved hjelp av kontrollverktøykassen (Vis ->
Verktøylinjer -> Kontrollverktøkassen). Den ene knappen skal
brukes for å sette alle variabler tilbake til utgangspunktet, i tilfelle
du krasj-lander. Den andre skal brukes for å kjøre et bremse-skritt.
|
Knappene kan du knytte til makroene dine -- da kan du begynne med landetreningen!
|
|
Utbyggingsprosjekter kunne innebære meldinger som spretter opp dersom
høyden blir negativ (-> krasj...), eller dersom man går tom for brennsel.
|