Bahntypen — der Katalog der Umlaufbahnen
Die vierte Seite der Reihe. Startplätze, Trägerraketen und die Orbit-Matrix arbeiten mit vier Zielbahnen. Hier steht der vollständige Katalog: welche Bahntypen es gibt, welche Kennwerte std.astro.orbit dafür liefert — und wo die Grenze des Modells liegt.
Alle Zahlen sind gerechnet, das Programm in Abschnitt 4 erzeugt sie.
→ std.astro.orbit · std.astro.launch · Orbit-Matrix · std.astro (Übersicht)
1. Der Katalog
| Bahn | Form | Neigung | Wofür | auslegbar? |
|---|---|---|---|---|
| LEO | Kreis, 200–2000 km | beliebig ab Startbreite | Raumstationen, Konstellationen, Erdbeobachtung | ja |
| ISS-Bahn | Kreis, ~400 km | 51.6° | Internationale Raumstation | ja |
| Tiangong-Bahn | Kreis, ~387 km | 41.47° | chinesische Raumstation | ja |
| Hubble-Bahn | Kreis, ~510 km | 28.4687° | Weltraumteleskop, Wartungsanflüge | ja |
| Polar | Kreis, 300–1000 km | ~90° | vollständige Erdabdeckung, Aufklärung | ja |
| SSO (sonnensynchron) | Kreis, 600–800 km | 97–99° rückläufig | konstante Ortszeit am Boden, Erdbeobachtung | ja ¹ |
| MEO | Kreis, 20 000–24 000 km | 55–56° | Navigation (GPS, Galileo) | ja |
| GTO | Ellipse, ~200 × 35 786 km | Startbreite | Übergangsbahn zum GEO | ja |
| GEO | Kreis, 35 786 km | 0° | Kommunikation, Wetter | ja |
| Molniya | Ellipse, ~600 × 39 750 km | 63.4° | Nordabdeckung aus hoher Breite | ja ² |
| Tundra | Ellipse, ~27 350 × 44 220 km | 63.4° | wie Molniya, aber ein Umlauf pro Tag | ja ² |
| HEO allgemein | Ellipse, hohes Apogäum | beliebig | Wissenschaft, Frühwarnung | ja |
| Frozen Orbit | fast kreisförmig, Perigäum bei 90° | frei wählbar | langlebige Erdbeobachtung ohne Nachregelung | ja ³ |
| Repeat Ground Track | Kreis, Höhe aus Wiederholzyklus | beliebig | wiederkehrende Aufnahmen desselben Streifens | ja ⁴ |
| Lagrange / Halo | um L1…L5 | – | Weltraumteleskope, Sonnenbeobachtung | ja ⁵ |
¹ Neigung aus der Bahnhöhe über ASunSyncInclination — siehe Abschnitt 3.
² Neigung über ACriticalInclination; dass der Apsidendrift dort verschwindet, lässt sich mit AApsidalDrift nachweisen.
³ Exzentrizität über AFrozenEccentricity, Prüfung über AIsFrozen — siehe Abschnitt 4.
⁴ Bahnhöhe über ASmaFromRepeatCycle aus Umläufen und Tagen.
⁵ std.astro.cr3bp führt die fünf Punkte, die Jacobi-Konstante und seit #2001 auch Halo-Bahnen — bis rund 675 000 km Auslenkung (#2016).
2. Was heute herauskommt
Kreisbahnen — ACircularSpeed und APeriod:
| Bahn | große Halbachse | Bahngeschwindigkeit | Umlaufzeit |
|---|---|---|---|
| LEO 400 km | 6778 km | 7669 m/s | 92.6 min |
| SSO 700 km | 7078 km | 7504 m/s | 98.8 min |
| MEO GPS (20 180 km) | 26 558 km | 3874 m/s | 717.9 min |
| MEO Galileo (23 222 km) | 29 600 km | 3670 m/s | 844.7 min |
| GEO | 42 164 km | 3075 m/s | 1436.1 min |
Die Umlaufzeiten sind zugleich die Probe: 717.9 min sind 11.965 h, der halbe Sterntag — GPS-Satelliten umrunden die Erde zweimal pro Sterntag, und genau das kommt heraus. 1436.1 min für den GEO sind der volle Sterntag.
Ellipsenbahnen — ASemiMajorAxis, APeriod, AVisViva:
| Bahn | große Halbachse | Umlaufzeit | Geschwindigkeit im Perigäum | im Apogäum |
|---|---|---|---|---|
| GTO 200 × 35 786 km | 24 371 km | 10.52 h | 10 239 m/s | 1597 m/s |
| Molniya 600 × 39 750 km | 26 553 km | 11.96 h | 9961 m/s | 1507 m/s |
| Tundra 27 353 × 44 219 km | 42 164 km | 23.93 h | 3766 m/s | 2510 m/s |
Auch hier stimmt die Probe: Molniya trifft den halben Sterntag, Tundra den vollen. Und der Grund für beide Bahnen steht in der letzten Spalte — im Apogäum ist ein Molniya-Satellit mit 1507 m/s unterwegs, also fast siebenmal langsamer als im Perigäum. Er steht dort stundenlang fast still über dem Norden, und genau dafür wurde die Bahn entworfen.
Übergänge ab LEO 400 km:
| Ziel | dv |
|---|---|
| GEO (Hohmann) | 3854.0 m/s |
| GPS-MEO | 3414.9 m/s |
| Flucht (C3 = 0) | 3176.4 m/s |
| Ebenenwechsel 28.5° im LEO | 3775.3 m/s |
| Ebenenwechsel 28.5° im GEO | 1513.7 m/s |
| Ebenenwechsel 90° im LEO | 10 845 m/s |
Die drei letzten Zeilen sind die wichtigste Lehre der Bahnmechanik in Zahlen. Eine Ebenenänderung von 28.5° kostet im LEO 3775 m/s — mehr als der komplette Weg zum GEO. Dieselbe Drehung im GEO kostet 1514 m/s, weil man dort viermal langsamer fliegt. Und ein Wechsel auf eine polare Bahn im LEO kostet 10 845 m/s, exakt so viel wie die Fluchtgeschwindigkeit von dort: bei 90° ist es billiger, die Erde zu verlassen, als die Bahnebene zu drehen.
3. Die Abplattung der Erde
Drei Bahnfamilien lassen sich mit einem kugelrunden Zentralkörper nicht erklären — sie existieren erst durch die Abplattung, in der Bahnmechanik als Koeffizient J2 geführt. Seit #1988 hat std.astro.orbit die dafür nötigen Funktionen: AJ2Earth, ANodalDrift, AApsidalDrift, ACriticalInclination und ASunSyncInclination.
Sonnensynchrone Bahnen. Eine SSO funktioniert, weil J2 die Bahnebene pro Tag mitdreht — genau so schnell, wie die Erde um die Sonne wandert. Die Solldrift ist damit 0.9856 Grad/Tag (360° je tropischem Jahr), und ASunSyncInclination dreht die Formel nach der Neigung um:
| Bahnhöhe | nötige Neigung | erreichte Knotendrift |
|---|---|---|
| 600 km | 97.788° | 0.9856 °/Tag |
| 700 km | 98.188° | 0.9856 °/Tag |
| 800 km | 98.603° | 0.9856 °/Tag |
Die dritte Spalte ist die Gegenprobe: die berechnete Neigung wieder in ANodalDrift eingesetzt ergibt exakt die Solldrift zurück. Und der Wert erklärt die Neigung: die Drift muss positiv sein, also muss der Kosinus negativ sein — eine sonnensynchrone Bahn ist zwangsläufig rückläufig.
Die 97.5° auf der Orbit-Matrix sind ein Rundwert. Für die dort gerechnete Höhe von 700 km wären 98.188° richtig. Die Matrix rechnet den Energiebedarf, und der ändert sich zwischen 97.5° und 98.2° kaum — für eine Missionsauslegung wäre der Unterschied dagegen erheblich.
Molniya und Tundra. Beide fliegen bei 63.4°, weil dort die Apsidenlinie stehenbleibt: das Apogäum wandert nicht aus der Nordhalbkugel heraus. ACriticalInclination liefert 63.4349° — der Wert folgt aus 5·cos²i = 1, also der Bedingung, dass der Apsidendrift-Term verschwindet. AApsidalDrift beweist es:
| Bahn | Neigung | Knotendrift | Apsidendrift |
|---|---|---|---|
| Molniya (600 × 39 750 km) | 63.4349° | −0.1481 °/Tag | 0.0000 °/Tag |
| Molniya, dieselbe Bahn | 45.0° | −0.2341 °/Tag | 0.2483 °/Tag |
| Tundra (27 353 × 44 219 km) | 63.4349° | −0.0065 °/Tag | 0.0000 °/Tag |
| ISS-Bahn (400 km) | 51.6° | −5.0023 °/Tag | 3.7413 °/Tag |
| Hubble-Bahn (510 km) | 28.4687° | −6.6910 °/Tag | 10.8991 °/Tag |
Die zweite Zeile ist der Beleg: dieselbe Molniya-Bahn bei 45° statt 63.4° dreht ihr Perigäum um 0.25 Grad pro Tag — nach einem Jahr steht das Apogäum 90 Grad daneben, und die Bahn tut nicht mehr, wofür sie gebaut wurde. Bei der kritischen Neigung kommt exakt null heraus.
Die letzten beiden Zeilen zeigen, warum J2 im tiefen LEO überhaupt keine Randnotiz ist: die ISS-Bahnebene wandert fünf Grad pro Tag nach Westen. Wer ein Startfenster berechnet, rechnet in erster Linie gegen diese Drift.
Die übrigen Familien, die diese Seite anfangs als Lücken führte, sind inzwischen ebenfalls geschlossen — der nächste Abschnitt rechnet sie durch.
4. Wiederholbahnen, Frozen Orbits, Bahnverfall, Bodenspur, Librationspunkte
Fünf Familien, die der Katalog dieser Seite als Lücken auswies, sind seit #1993 bis #1997 abgedeckt — zwei davon in neuen Units.
Wiederholbahnen
Eine Wiederholbahn überfliegt nach k Umläufen in m Tagen wieder denselben Punkt. Die Bedingung verbindet die Nodalperiode (Umlaufzeit von Knoten zu Knoten, nicht von Perigäum zu Perigäum) mit der Erddrehung und der Knotendrift aus J2 — deshalb steht sie in std.astro.orbit und nicht in einer Geometrie-Unit.
| Zyklus | Bahnhöhe | Nodalperiode |
|---|---|---|
| 233 Umläufe / 16 Tage, i = 98.6° | 700.3 km | 98.90 min |
| 431 Umläufe / 29 Tage, i = 98.2° | 604.6 km | – |
Der erste Fall ist der Landsat-Zyklus. ARepeatCycleFromSma rechnet zurück und liefert 14.5625 Umläufe pro Tag — genau 233/16.
Frozen Orbits
Ein Frozen Orbit hält seine Perigäumshöhe fest, ohne nachzuregeln. Dafür braucht es J3, den dritten zonalen Koeffizienten: J2 dreht das Perigäum, J3 zieht es zurück, und bei genau einer Exzentrizität heben sich beide auf.
| Größe | Wert |
|---|---|
AJ3Earth() | −2.532·10⁻⁶ |
AFrozenArgPerigee() | 90° — das Perigäum steht über dem Nordpol |
AFrozenEccentricity für 800 km, i = 98.6° | 0.0010274 |
| daraus Perigäum / Apogäum | 792.6 km / 807.4 km |
Knapp 15 km Unterschied zwischen tiefstem und höchstem Punkt — und die bleiben, wo sie sind. AIsFrozen prüft eine gegebene Bahn gegen diese Bedingung und bestätigt die eigene Rechnung.
Bahnverfall
ADecayPerRev und ADecayRate verbinden die Luftdichte mit dem ballistischen Koeffizienten aus std.astro.entry:
| Bahn | Abstieg je Umlauf | je Tag |
|---|---|---|
| 400 km, β = 50 | −115.5 m | −1796 m |
| 300 km, β = 50 | – | −17 831 m |
Hundert Kilometer tiefer, zehnfacher Verfall — die Dichte steigt exponentiell, und das ist der Grund, warum die ISS regelmäßig angehoben wird.
Bodenspur
std.astro.groundtrack schließt das Glied zwischen dem Ortsvektor im Inertialsystem und der drehenden Erde: die Drehung um den Greenwich-Stundenwinkel. Vorne liegt std.astro.state, hinten std.geodesy.frames.
Probe am Julianischen Datum 2 460 000.5: GMST = 154.6019°. Ein Satellit, der dort im ECI genau auf der x-Achse steht, hat den Unterpunkt 0° Breite und −154.6019° Länge — der Betrag des Stundenwinkels, mit umgedrehtem Vorzeichen. Genau das ist die Drehung, und mehr ist der Unterschied zwischen den beiden Rahmen nicht.
Librationspunkte
std.astro.cr3bp steht neben dem übrigen Bestand, nicht darin: alle anderen Units rechnen im Zweikörperproblem, in dem Librationspunkte gar nicht existieren.
| Punkt | Abstand |
|---|---|
| Sonne–Erde L1 | 1 491 551 km von der Erde |
| Sonne–Erde L2 | 1 501 532 km von der Erde |
| Erde–Mond L1 | 58 019 km vom Mond |
| Hill-Radius der Erde | 1 496 557 km |
Die Massenverhältnisse dahinter: AMuEarthMoon() = 0.0121506, AMuSunEarth() = 3.003·10⁻⁶. L2 ist der Punkt, um den das James-Webb-Teleskop läuft — die 1.5 Millionen Kilometer sind die bekannte Zahl, und sie kommen hier aus der Rechnung.
Halo-Bahnen sind seit #2001 ebenfalls enthalten — über eine Fortsetzung statt über Richardsons Reihe. Für Sonne–Erde-L2 kommen bei 0.4 gamma Auslenkung 600 613 km und eine Umlaufzeit von 177.9 Tagen heraus; die Einzelheiten stehen auf std.astro.cr3bp.
Was bleibt: Halo-Bahnen oberhalb von rund 675 000 km (#2016), Strahlungsdruck, und ein Atmosphärenmodell, das die Dichte über der Höhe selbst liefert — ADecayRate bekommt sie heute als Parameter.
5. Die Programme
Teil A — die J2-Rechnungen aus Abschnitt 3:
unit main;
import std.astro.orbit;
import std.math;
import std.io;
import std.string;
fn f(v: f64, d: int64): pchar { return FloatToStr(v, d); }
fn G(rad: f64): f64 { return rad * 180.0 / Pi(); }
fn ProTag(radProSek: f64): f64 { return G(radProSek) * 86400.0; }
fn sso(hoeheKm: f64): void {
var a: f64 := ARadiusEarth() + hoeheKm * 1000.0;
var i: f64 := ASunSyncInclination(AMuEarth(), AJ2Earth(), ARadiusEarth(), a, 0.0);
Print("SSO "); Print(f(hoeheKm, 0)); Print(" km: i = ");
Print(f(G(i), 3)); Print(" Grad, Knotendrift ");
Print(f(ProTag(ANodalDrift(AMuEarth(), AJ2Earth(), ARadiusEarth(), a, 0.0, i)), 4));
PrintLn(" Grad/Tag");
}
fn drift(name: pchar, a: f64, e: f64, incGrad: f64): void {
var i: f64 := incGrad * Pi() / 180.0;
Print(name);
Print(" | Knoten "); Print(f(ProTag(ANodalDrift(AMuEarth(), AJ2Earth(), ARadiusEarth(), a, e, i)), 4));
Print(" Grad/Tag | Apsiden "); Print(f(ProTag(AApsidalDrift(AMuEarth(), AJ2Earth(), ARadiusEarth(), a, e, i)), 4));
PrintLn(" Grad/Tag");
}
fn main(): int64 {
PrintLn(StrConcat("kritische Neigung: ", StrConcat(f(G(ACriticalInclination()), 4), " Grad")));
PrintLn(StrConcat("rueckläufige Loesung: ", StrConcat(f(G(ACriticalInclinationRetro()), 4), " Grad")));
PrintLn(StrConcat("sonnensynchrone Solldrift: ", StrConcat(f(ProTag(ASunSyncDrift()), 4), " Grad/Tag")));
PrintLn("");
sso(600.0);
sso(700.0);
sso(800.0);
PrintLn("");
PrintLn("Bahn | Knotendrift | Apsidendrift");
drift("LEO 400 km i=51.6", ARadiusEarth() + 400000.0, 0.0, 51.6);
drift("Hubble 510 i=28.5", ARadiusEarth() + 510200.0, 0.0, 28.4687);
drift("Molniya i=63.4", 26553000.0, 0.7402, 63.4349);
drift("Molniya i=45.0", 26553000.0, 0.7402, 45.0);
drift("Tundra i=63.4", 42164000.0, 0.2, 63.4349);
return 0;
}
Ausgabe:
kritische Neigung: 63.4349 Grad
rueckläufige Loesung: 116.5651 Grad
sonnensynchrone Solldrift: 0.9856 Grad/Tag
SSO 600 km: i = 97.788 Grad, Knotendrift 0.9856 Grad/Tag
SSO 700 km: i = 98.188 Grad, Knotendrift 0.9856 Grad/Tag
SSO 800 km: i = 98.603 Grad, Knotendrift 0.9856 Grad/Tag
Bahn | Knotendrift | Apsidendrift
LEO 400 km i=51.6 | Knoten -5.0023 Grad/Tag | Apsiden 3.7413 Grad/Tag
Hubble 510 i=28.5 | Knoten -6.6910 Grad/Tag | Apsiden 10.8991 Grad/Tag
Molniya i=63.4 | Knoten -0.1481 Grad/Tag | Apsiden 0.0000 Grad/Tag
Molniya i=45.0 | Knoten -0.2341 Grad/Tag | Apsiden 0.2483 Grad/Tag
Tundra i=63.4 | Knoten -0.0065 Grad/Tag | Apsiden 0.0000 Grad/Tag
Teil B — die Bahnkennwerte aus Abschnitt 2:
unit main;
import std.astro.orbit;
import std.math;
import std.io;
import std.string;
fn f(v: f64, d: int64): pchar { return FloatToStr(v, d); }
fn Grad(g: f64): f64 { return g * Pi() / 180.0; }
// Kreisbahn: Hoehe in km
fn kreis(name: pchar, hoeheKm: f64): void {
var r: f64 := ARadiusEarth() + hoeheKm * 1000.0;
Print(name);
Print(" | a "); Print(f(r / 1000.0, 0));
Print(" km | v "); Print(f(ACircularSpeed(AMuEarth(), r), 0));
Print(" m/s | T "); PrintLn(StrConcat(f(APeriod(AMuEarth(), r) / 60.0, 1), " min"));
}
// Ellipse: Perigaeums- und Apogaeumshoehe in km
fn ellipse(name: pchar, hpKm: f64, haKm: f64): void {
var rp: f64 := ARadiusEarth() + hpKm * 1000.0;
var ra: f64 := ARadiusEarth() + haKm * 1000.0;
var a: f64 := (rp + ra) / 2.0;
Print(name);
Print(" | a "); Print(f(a / 1000.0, 0));
Print(" km | T "); Print(f(APeriod(AMuEarth(), a) / 3600.0, 2));
Print(" h | vp "); Print(f(AVisViva(AMuEarth(), rp, a), 0));
Print(" | va "); PrintLn(f(AVisViva(AMuEarth(), ra, a), 0));
}
fn main(): int64 {
PrintLn("-- Kreisbahnen --");
kreis("LEO 400 km ", 400.0);
kreis("SSO 700 km ", 700.0);
kreis("MEO GPS 20180 km", 20180.0);
kreis("MEO Galileo ", 23222.0);
kreis("GEO ", 35786.0);
PrintLn("");
PrintLn("-- Ellipsenbahnen --");
ellipse("GTO 200 x 35786 ", 200.0, 35786.0);
ellipse("Molniya 600x39750", 600.0, 39750.0);
ellipse("Tundra 27353x44219", 27353.0, 44219.0);
PrintLn("");
PrintLn("-- Uebergaenge ab LEO 400 km --");
var rLeo: f64 := ARadiusEarth() + 400000.0;
PrintLn(StrConcat("-> GEO (Hohmann): ", f(AHohmannDv(AMuEarth(), rLeo, 42164000.0), 1)));
PrintLn(StrConcat("-> GPS-MEO: ", f(AHohmannDv(AMuEarth(), rLeo, ARadiusEarth()+20180000.0), 1)));
PrintLn(StrConcat("-> Fluchtgeschw.: ", f(AEscapeSpeed(AMuEarth(), rLeo), 1)));
PrintLn(StrConcat("-> Flucht-dv ab LEO: ", f(AEscapeDv(AMuEarth(), rLeo, 0.0), 1)));
PrintLn(StrConcat("Transferzeit LEO->GEO: ", StrConcat(f(AHohmannTime(AMuEarth(), rLeo, 42164000.0) / 3600.0, 2), " h")));
PrintLn("");
PrintLn("-- Ebenenaenderung --");
PrintLn(StrConcat("28.5 Grad im LEO: ", f(APlaneChangeDv(ACircularSpeed(AMuEarth(), rLeo), Grad(28.5)), 1)));
PrintLn(StrConcat("28.5 Grad im GEO: ", f(APlaneChangeDv(ACircularSpeed(AMuEarth(), 42164000.0), Grad(28.5)), 1)));
PrintLn(StrConcat("90 Grad im LEO: ", f(APlaneChangeDv(ACircularSpeed(AMuEarth(), rLeo), Grad(90.0)), 1)));
return 0;
}
Ausgabe:
-- Kreisbahnen --
LEO 400 km | a 6778 km | v 7669 m/s | T 92.6 min
SSO 700 km | a 7078 km | v 7504 m/s | T 98.8 min
MEO GPS 20180 km | a 26558 km | v 3874 m/s | T 717.9 min
MEO Galileo | a 29600 km | v 3670 m/s | T 844.7 min
GEO | a 42164 km | v 3075 m/s | T 1436.1 min
-- Ellipsenbahnen --
GTO 200 x 35786 | a 24371 km | T 10.52 h | vp 10239 | va 1597
Molniya 600x39750 | a 26553 km | T 11.96 h | vp 9961 | va 1507
Tundra 27353x44219 | a 42164 km | T 23.93 h | vp 3766 | va 2510
-- Uebergaenge ab LEO 400 km --
-> GEO (Hohmann): 3854.0
-> GPS-MEO: 3414.9
-> Fluchtgeschw.: 10845.0
-> Flucht-dv ab LEO: 3176.4
Transferzeit LEO->GEO: 5.29 h
-- Ebenenaenderung --
28.5 Grad im LEO: 3775.3
28.5 Grad im GEO: 1513.7
90 Grad im LEO: 10845.0
Teil C — die fünf Familien aus Abschnitt 4:
unit main;
import std.astro.orbit;
import std.astro.groundtrack;
import std.astro.cr3bp;
import std.astro.state;
import std.math;
import std.io;
import std.string;
fn f(v: f64, d: int64): pchar { return FloatToStr(v, d); }
fn G(r: f64): f64 { return r * 180.0 / Pi(); }
fn Rad(g: f64): f64 { return g * Pi() / 180.0; }
fn main(): int64 {
var w: f64 := 0.000072921158553;
PrintLn("-- Wiederholbahnen (#1993) --");
var a1: f64 := ASmaFromRepeatCycle(AMuEarth(), AJ2Earth(), ARadiusEarth(), w, 233.0, 16.0, 0.0, Rad(98.6));
PrintLn(StrConcat("233 Umlaeufe / 16 Tage: Hoehe ", StrConcat(f((a1-ARadiusEarth())/1000.0, 1), " km")));
PrintLn(StrConcat(" Nodalperiode ", StrConcat(f(ANodalPeriod(AMuEarth(), AJ2Earth(), ARadiusEarth(), a1, 0.0, Rad(98.6))/60.0, 2), " min")));
PrintLn(StrConcat(" Probe: Umlaeufe/Tag ", f(ARepeatCycleFromSma(AMuEarth(), AJ2Earth(), ARadiusEarth(), w, a1, 0.0, Rad(98.6)), 4)));
var a2: f64 := ASmaFromRepeatCycle(AMuEarth(), AJ2Earth(), ARadiusEarth(), w, 431.0, 29.0, 0.0, Rad(98.2));
PrintLn(StrConcat("431 Umlaeufe / 29 Tage: Hoehe ", StrConcat(f((a2-ARadiusEarth())/1000.0, 1), " km")));
PrintLn("");
PrintLn("-- Frozen Orbits (#1996) --");
PrintLn(StrConcat("J3 der Erde: ", f(AJ3Earth(), 9)));
PrintLn(StrConcat("eingefrorenes Argument ", StrConcat(f(G(AFrozenArgPerigee()), 1), " Grad")));
var aF: f64 := ARadiusEarth() + 800000.0;
var eF: f64 := AFrozenEccentricity(AJ2Earth(), AJ3Earth(), ARadiusEarth(), aF, Rad(98.6));
PrintLn(StrConcat("e bei 800 km, i=98.6: ", f(eF, 7)));
PrintLn(StrConcat(" Perigaeum ", StrConcat(f((aF*(1.0-eF)-ARadiusEarth())/1000.0, 1), " km")));
PrintLn(StrConcat(" Apogaeum ", StrConcat(f((aF*(1.0+eF)-ARadiusEarth())/1000.0, 1), " km")));
PrintLn("");
PrintLn("-- Bahnverfall (#1994) --");
PrintLn(StrConcat("400 km, beta=50: je Umlauf ", StrConcat(f(ADecayPerRev(0.00000000002, 50.0, ARadiusEarth()+400000.0), 1), " m")));
PrintLn(StrConcat(" je Tag ", StrConcat(f(ADecayRate(AMuEarth(), 0.00000000002, 50.0, ARadiusEarth()+400000.0)*86400.0, 0), " m")));
PrintLn(StrConcat("300 km, beta=50: je Tag ", StrConcat(f(ADecayRate(AMuEarth(), 0.0000000002, 50.0, ARadiusEarth()+300000.0)*86400.0, 0), " m")));
PrintLn("");
PrintLn("-- Bodenspur (#1995) --");
var jd: f64 := 2460000.5;
var gmst: f64 := AGmst(jd);
PrintLn(StrConcat("GMST am JD 2460000.5: ", StrConcat(f(G(gmst), 4), " Grad")));
var eci: AVec3 := AVec(6778137.0, 0.0, 0.0);
var ecef: AVec3 := AEciToEcef(eci, gmst);
PrintLn(StrConcat("Unterpunkt Breite: ", StrConcat(f(G(ASubPointLatitude(eci)), 4), " Grad")));
PrintLn(StrConcat("Unterpunkt Laenge: ", StrConcat(f(G(ASubPointLongitude(eci, gmst)), 4), " Grad")));
PrintLn(StrConcat("Hoehe ueber Kugelerde: ", StrConcat(f(ASubPointAltitude(eci, ARadiusEarth())/1000.0, 1), " km")));
PrintLn("");
PrintLn("-- Librationspunkte (#1997) --");
var muEM: f64 := AMuEarthMoon();
var muSE: f64 := AMuSunEarth();
PrintLn(StrConcat("mu Erde-Mond: ", f(muEM, 7)));
PrintLn(StrConcat("mu Sonne-Erde: ", f(muSE, 9)));
var l1: AVec3 := ALagrange1(muSE);
var l2: AVec3 := ALagrange2(muSE);
PrintLn(StrConcat("Sonne-Erde L1, Abstand zur Erde: ", StrConcat(f(ADistanceToSecondary(l1, muSE, 149597870700.0)/1000.0, 0), " km")));
PrintLn(StrConcat("Sonne-Erde L2, Abstand zur Erde: ", StrConcat(f(ADistanceToSecondary(l2, muSE, 149597870700.0)/1000.0, 0), " km")));
PrintLn(StrConcat("Erde-Mond L1, Abstand zum Mond: ", StrConcat(f(ADistanceToSecondary(ALagrange1(muEM), muEM, 384400000.0)/1000.0, 0), " km")));
PrintLn(StrConcat("Hill-Radius der Erde: ", StrConcat(f(AHillRadius(149597870700.0, muSE)/1000.0, 0), " km")));
return 0;
}
Ausgabe:
-- Wiederholbahnen (#1993) --
233 Umlaeufe / 16 Tage: Hoehe 700.3 km
Nodalperiode 98.90 min
Probe: Umlaeufe/Tag 14.5625
431 Umlaeufe / 29 Tage: Hoehe 604.6 km
-- Frozen Orbits (#1996) --
J3 der Erde: -0.000002532
eingefrorenes Argument 90.0 Grad
e bei 800 km, i=98.6: 0.0010274
Perigaeum 792.6 km
Apogaeum 807.4 km
-- Bahnverfall (#1994) --
400 km, beta=50: je Umlauf -115.5 m
je Tag -1796 m
300 km, beta=50: je Tag -17831 m
-- Bodenspur (#1995) --
GMST am JD 2460000.5: 154.6019 Grad
Unterpunkt Breite: 0.0000 Grad
Unterpunkt Laenge: -154.6019 Grad
Hoehe ueber Kugelerde: 400.0 km
-- Librationspunkte (#1997) --
mu Erde-Mond: 0.0121506
mu Sonne-Erde: 0.000003003
Sonne-Erde L1, Abstand zur Erde: 1491551 km
Sonne-Erde L2, Abstand zur Erde: 1501532 km
Erde-Mond L1, Abstand zum Mond: 58019 km
Hill-Radius der Erde: 1496557 km
6. Kurzantwort auf die Ausgangsfrage
- Vollständig abgedeckt: LEO, ISS-, Tiangong- und Hubble-Bahn, polar, MEO, GTO, GEO, HEO — Geschwindigkeit, Periode, Bahnelemente, Transfers, Ebenenwechsel, Flucht.
- Seit #1988 ebenfalls auslegbar: SSO (Neigung aus der Bahnhöhe), Molniya und Tundra (kritische Neigung, mit Nachweis über den Apsidendrift). Dazu die Knoten- und Apsidendrift jeder beliebigen Bahn.
- Seit #1993…#1997 ebenfalls abgedeckt: Wiederholbahnen, Frozen Orbits, Bahnverfall, Bodenspur (std.astro.groundtrack) und die fünf Librationspunkte (std.astro.cr3bp).
- Nicht abgedeckt: Halo-Bahnen oberhalb von rund 675 000 km Auslenkung, Strahlungsdruck, und ein Atmosphärenmodell, das die Dichte über der Höhe selbst liefert.
