====== Orbit-Matrix — welche Rakete erreicht welchen Orbit von welcher Rampe ====== Die dritte Seite des Trios: [[lyx_-_programmiersprache:units:astro:startplaetze|Startplätze]] liefert das //Wo//, [[lyx_-_programmiersprache:units:astro:traegerraketen|Trägerraketen]] das //Womit// — hier werden beide gegen die Zielbahn gerechnet. Die Frage lautet: **welche Kombination aus Rampe, Träger und Zielorbit geht, und was kostet sie?** Wie auf den beiden anderen Seiten gilt: **alle Zahlen sind gerechnet**, das Programm in Abschnitt 5 erzeugt sie aus [[lyx_-_programmiersprache:units:astro:launch|std.astro.launch]] und [[lyx_-_programmiersprache:units:astro:orbit|std.astro.orbit]]. → [[lyx_-_programmiersprache:units:astro:bahntypen|Bahntypen]] · [[lyx_-_programmiersprache:units:astro:startplaetze|Startplätze]] · [[lyx_-_programmiersprache:units:astro:traegerraketen|Trägerraketen]] · [[lyx_-_programmiersprache:units:astro:launch|std.astro.launch]] · [[lyx_-_programmiersprache:units:astro:orbit|std.astro.orbit]] ---- ===== 1. Zwei Fragen, nicht eine ===== „Kann Rakete X von Rampe Y in Orbit Z" zerfällt in zwei getrennte Prüfungen, und nur die erste hat eine harte Antwort: - **Geometrie.** Eine Bahn mit einer Neigung //kleiner// als die Breite des Startplatzes ist vom Start weg nicht erreichbar — die Bahnebene muss den Startpunkt enthalten. ''AInclinationReachable'' beantwortet das mit ja oder nein, unabhängig von jeder Rakete. Wer die Bahn trotzdem will, muss die Ebene nachträglich drehen, und das ist teuer. - **Energie.** Was die Bahn an Geschwindigkeitsbedarf kostet, gegen das, was der Träger liefern kann. Hier gibt es kein Ja/Nein, sondern eine Nutzlastkurve. Die vier Zielbahnen dieser Seite: ^ Kürzel ^ Bahn ^ Wofür ^ Quelle ^ | LEO 28.5 | 400 km Kreisbahn, 28.5° Neigung | klassische niedrige Bahn, Referenzfall der Herstellerangaben | – | | ISS 51.6 | 400 km Kreisbahn, 51.6° | Versorgung der Raumstation | – | | **Tiangong** | 387 km Kreisbahn, 41.47° | chinesische Raumstation, Shenzhou und Tianzhou | Umlaufzeit 92.3 min | | **Hubble** | 510 km Kreisbahn, 28.4687° | Wartungs- und Anflugbahn des Weltraumteleskops | [[https://www.wikidata.org/wiki/Q2513|Q2513]] | | SSO 97.5 | 700 km Kreisbahn, 97.5° rückläufig | Erdbeobachtung, sonnensynchron | Rundwert, siehe unten | | GEO | 35 786 km Kreisbahn, 0° | Kommunikation, geostationär | – | Die beiden neuen Ziele sind über verschiedene Größen belegt, und die Bibliothek rechnet die jeweils andere daraus: * **Tiangong** ist über die **Umlaufzeit** dokumentiert (92.3 min). ''ASemiMajorFromPeriod'' macht daraus eine Bahnhöhe von **387.3 km**. * **Hubble** ist über die **Höhe** dokumentiert (510.2 km, Wikidata Q2513). ''APeriod'' macht daraus **94.83 min** — Wikidata gibt 94.87 min an. Die Abweichung von 0.04 Minuten ist die Gegenprobe auf beide Rechnungen. > **Die 97.5° für die SSO-Spalte sind gerundet.** ''ASunSyncInclination'' liefert für 700 km Bahnhöhe **98.188°** ([[lyx_-_programmiersprache:units:astro:bahntypen#die_abplattung_der_erde|Bahntypen]]). Für den Energiebedarf, den diese Seite rechnet, macht die Differenz wenige m/s aus; für eine Missionsauslegung wäre sie erheblich. ===== 2. Der Geschwindigkeitsbedarf je Rampe ===== Ab Boden, mit 1500 m/s Aufstiegsverlusten. GEO über eine Hohmann-Bahn aus dem 400-km-Parkorbit mit anschließendem Ebenenwechsel im Apogäum: ^ Rampe ^ Breite ^ LEO 28.5 ^ ISS 51.6 ^ Tiangong ^ Hubble ^ SSO 97.5 ^ GEO ^ | Kourou | 5.2° | 8991 | 9111 | 9044 | 9053 | 9625 | **13070** | | Sriharikota | 13.72° | 8991 | 9111 | 9044 | 9053 | 9625 | 13536 | | Wenchang | 19.61° | 8991 | 9111 | 9044 | 9053 | 9625 | 13863 | | Starbase | 26.00° | 8991 | 9111 | 9044 | 9053 | 9625 | 14219 | | Xichang | 28.25° | 8991 | 9111 | 9044 | 9053 | 9625 | 14345 | | SLC-40 | 28.56° | (9000) | 9111 | 9044 | (9065) | 9625 | 14362 | | LC-39A | 28.61° | (9006) | 9111 | 9044 | (9072) | 9625 | 14365 | | Tanegashima | 30.40° | (9253) | 9111 | 9044 | (9317) | 9625 | 14465 | | Uchinoura | 31.25° | (9371) | 9111 | 9044 | (9433) | 9625 | 14513 | | SLC-4E | 34.63° | (9838) | 9111 | 9044 | (9897) | 9625 | 14702 | | Taiyuan | 38.85° | (10421) | 9111 | 9044 | (10476) | 9625 | 14937 | | Jiuquan | 40.97° | (10714) | 9111 | 9044 | (10766) | 9625 | 15055 | | Baikonur | 45.60° | (11355) | 9111 | (9621) | (11402) | 9625 | 15311 | | Wostotschny | 51.88° | (12221) | (9151) | (10499) | (12262) | 9625 | 15657 | | Plessezk | 62.92° | (13726) | (10700) | (12037) | (13755) | 9625 | 16251 | | Andøya | 69.29° | (14581) | (11594) | (12919) | (14603) | 9625 | 16585 | Werte in **Klammern**: die Zielneigung liegt unter der Startbreite — geometrisch nicht direkt erreichbar. Die Zahl enthält den nachträglichen Ebenenwechsel als Näherung und ist als //Preisschild für einen Umweg// zu lesen, nicht als Flugplan. Werte in **Klammern**: die Zielneigung liegt unter der Startbreite — geometrisch nicht direkt erreichbar. Der Aufstieg geht dann auf die kleinste erreichbare Neigung, und ''AAzimuthPenalty'' schlägt den nachträglichen Ebenenwechsel auf. Diese Zahlen sind ein Preisschild für einen Umweg, kein Flugplan. Das Auffällige an dieser Tabelle sind die **Spalten ohne Streuung**: * **Wo eine Bahn erreichbar ist, kostet sie überall gleich viel.** Für die ISS-Bahn stehen in jeder Zeile 9111 m/s, für Tiangong 9044, für die SSO 9625 — von Kourou bis Andøya. Das ist kein Rechenfehler, sondern folgt aus der Geometrie: der Drehgewinn beim Direktaufstieg ist ''ω·R·cos(i)'' und hängt damit **nur an der Zielneigung**, nicht an der Startbreite. Wer geradewegs in die Zielebene steigt, nimmt denselben Anteil der Erddrehung mit, egal wo er startet. * **Die Startbreite entscheidet über das Ob, nicht über das Wieviel.** Ihr ganzer Einfluss steckt in den Klammern: eine Bahn unterhalb der eigenen Breite kostet extra, und zwar schnell mehr als der Rest des Aufstiegs. Von Andøya kostet eine 28.5-Grad-Bahn 14 581 m/s gegenüber 8991 direkt — die Differenz ist der Ebenenwechsel. * **Die GEO-Spalte ist die einzige, die durchgehend streut**, von 13 070 (Kourou) bis 16 585 m/s (Andøya). Dort muss die Bahn am Ende auf 0 Grad, und dieser Ebenenwechsel wächst mit der Startbreite. Der Ebenenwechsel von 28.5° im GEO kostet 1513.7 m/s; bei 69° wird er erdrückend. Kourou ist nicht zufällig der GEO-Startplatz Europas. * **Die SSO ist teurer als jede prograde Bahn** (9625 gegen 8991 m/s), weil der Drehgewinn bei 97.5° **negativ** wird: ''ARotationGainForInclination'' liefert dort −60.7 m/s. Die Erddrehung arbeitet gegen die Rakete. ===== 3. Die Matrix: Nutzlast je Träger und Ziel ===== Jeder Träger startet von seiner tatsächlichen Rampe. Die veröffentlichte LEO-Nutzlast gilt als **Referenzpunkt** bei der Bahn mit der kleinsten von dort erreichbaren Neigung; für jede andere Bahn wird der Mehrbedarf über die Raketengleichung auf die Nutzlast umgelegt — mit der Austrittsgeschwindigkeit der jeweiligen Oberstufe. ^ Träger @ Rampe ^ Oberstufe (Isp) ^ LEO 28.5 ^ ISS 51.6 ^ Tiangong ^ Hubble ^ SSO 97.5 ^ GEO ^ | Spectrum @ Andøya | ~320 s | 0.2 t | 0.5 t | 0.3 t | 0.2 t | 0.9 t | 0.10 t | | Falcon 9 @ SLC-40 | Merlin Vacuum, 348 s | 22.7 t | 22.0 t | 22.5 t | 22.3 t | 18.9 t | 4.73 t | | Ariane 64 @ Kourou | Vinci, 457 s | 21.3 t | 20.8 t | 21.1 t | 21.0 t | 18.5 t | 8.59 t | | Angara A5 @ Wostotschny | RD-0124A, 359 s | 10.1 t | 24.2 t | 16.5 t | 10.0 t | 21.2 t | 3.82 t | | Long March 5B @ Wenchang | YF-75D, 442 s | 24.8 t | 24.2 t | 24.5 t | 24.5 t | 21.5 t | 8.07 t | Was die Matrix zeigt: * **Angara verliert die LEO-28.5-Spalte, nicht wegen der Rakete.** 24.5 t Auslegungsnutzlast, aber von Wostotschny (51.88° N) bleiben rechnerisch 10.1 t für eine 28.5-Grad-Bahn übrig. Die Rakete ist nicht schwächer geworden — der Startplatz erlaubt die Bahn nicht direkt. Dasselbe System auf 51.6° liefert 24.2 t. * **Ariane 64 und Long March 5 führen bei GEO** (8.59 und 8.07 t) und Falcon 9 fällt auf 4.73 t zurück. Der Grund steht in der zweiten Spalte: Vinci und YF-75D sind Wasserstoff-Oberstufen mit 457 bzw. 442 s, Merlin Vacuum liegt bei 348 s. Bei einer Bahn, die 5400 m/s über der Referenz liegt, entscheidet der Isp der Oberstufe, nicht der Startschub. * **Tiangong und Hubble zeigen die Rampenlogik im Kleinen.** Die Station fliegt bei 41.47°, und Jiuquan liegt bei 40.97° — 0.5 Grad darunter. Von dort ist sie direkt erreichbar (9042 m/s), von Baikonur mit 45.6° nicht mehr. Dass die Shenzhou-Starts in Jiuquan stattfinden, steht damit in der Tabelle. Hubble umgekehrt: 28.4687° liegt knapp **unter** der Breite von SLC-40 und LC-39A, das Modell setzt beide Spalten in Klammern — real ist Hubble genau von dort gestartet. Die Bahnneigung wurde beim Aufstieg um wenige Hundertstel Grad unter die Rampenbreite gedrückt, was die Näherung dieser Seite nicht abbildet. Ein sauberes Beispiel dafür, wo ein Modell an seiner Auflösung endet. * **Spectrum ist auf seiner Bahn konkurrenzfähig und sonst nicht.** 0.9 t im SSO gegen 0.2 t im LEO 28.5 — der Microlauncher an einem Polarstartplatz ist genau für die eine Spalte gebaut. Die anderen drei sind für ihn keine Zielbahnen, sondern Rechenbeispiele. > **Diese Nutzlastzahlen sind ein Modell, keine Herstellerangaben.** Sie entstehen aus einer einzigen veröffentlichten Referenznutzlast, die über die Raketengleichung auf andere Bahnen verschoben wird. Nicht enthalten: Verkleidungsgrenzen, Struktur- und Bergungsreserven, reale Stufungspunkte, Startfenster, Sicherheitskorridore, Drosselung. Die Spalten sind untereinander vergleichbar; gegen ein Datenblatt sind sie es nicht. > > Probe: Für Ariane 64 liefert das Modell 8.59 t GEO gegenüber 11.5 t GTO im Datenblatt — GEO liegt hinter GTO, die Größenordnung passt also. Für Falcon 9 stehen 4.73 t GEO gegen 8.3 t GTO. Wo das Modell danebenliegt, liegt es zu niedrig. ===== 4. Die kurze Antwort ===== ^ Ziel ^ geht von ^ Kosten ab Boden ^ was den Ausschlag gibt ^ | LEO 28.5 | jeder Rampe bis 28.5° Breite | 8991 m/s | darüber nur mit Ebenenwechsel | | ISS 51.6 | jeder Rampe bis 51.6° | 9111 m/s | Plessezk und Andøya fallen heraus | | Tiangong 41.47 | jeder Rampe bis 41.47° | 9044 m/s | Jiuquan liegt 0.5 Grad darunter — deshalb starten die Shenzhou-Flüge dort | | Hubble 28.47 | jeder Rampe bis 28.47° | 9053 m/s | Cape liegt knapp darüber; siehe unten | | SSO 97.5 | **jeder** Rampe | 9625 m/s | rückläufig, deshalb überall gleich und überall teurer | | GEO | am besten Kourou | 13 070…16 585 m/s | die einzige Zielbahn, bei der die Startbreite den Preis bestimmt | **Die Rampenwahl ist eine Ja/Nein-Frage, keine Preisfrage** — mit einer Ausnahme. Für jede Bahn, deren Neigung über der Startbreite liegt, kostet der Aufstieg überall dasselbe. Erst beim GEO, wo am Ende auf 0 Grad gedreht wird, zahlt sich eine äquatornahe Rampe in Geschwindigkeit aus. Und die Kombinationen, die **nicht** gehen: 28.5-Grad-Bahnen von Wostotschny, Plessezk oder Andøya; die ISS-Bahn von Plessezk oder Andøya; die Tiangong-Bahn von Baikonur aufwärts; die Hubble-Bahn von allem oberhalb von Xichang. Nicht „teuer", sondern von der Geometrie ausgeschlossen — der Startpunkt liegt außerhalb der Bahnebene. ===== 5. Die Programme ===== **Teil A — der dv-Bedarf aus Abschnitt 2:** unit main; import std.astro.launch; import std.astro.orbit; import std.math; import std.io; import std.string; fn Grad(g: f64): f64 { return g * Pi() / 180.0; } fn f(v: f64, d: int64): pchar { return FloatToStr(v, d); } // dv ab Boden bis Kreisbahn. retro = true dreht den Drehgewinn um. // Aufstieg auf die Zielhoehe ueber eine 200-km-Parkbahn (ADvAscentToOrbit), // Drehgewinn aus der ZIELNEIGUNG (ARotationGainForInclination). fn dvBoden(breiteGrad: f64, hoehe: f64, zielGrad: f64): f64 { var breite: f64 := Grad(breiteGrad); var ziel: f64 := Grad(zielGrad); var rPark: f64 := ARadiusEarth() + 200000.0; var r: f64 := ARadiusEarth() + hoehe; // Liegt die Zielneigung unter der Startbreite, ist sie direkt nicht // erreichbar: dann rechnet der Aufstieg auf die kleinste erreichbare // Neigung, und AAzimuthPenalty schlaegt den Ebenenwechsel auf. var iAuf: f64 := ziel; if !AInclinationReachable(breite, ziel) { iAuf := breite; } var gewinn: f64 := ARotationGainForInclination(AEarthRotation(), ARadiusEarth(), breite, iAuf); var dv: f64 := ADvAscentToOrbit(AMuEarth(), rPark, r, 1500.0, gewinn); var strafe: f64 := AAzimuthPenalty(ACircularSpeed(AMuEarth(), r), breite, ziel); return dv + strafe; } fn spalte(breite: f64, zielGrad: f64, hoehe: f64): void { Print(" | "); if AInclinationReachable(Grad(breite), Grad(zielGrad)) { Print(f(dvBoden(breite, hoehe, zielGrad), 0)); } else { Print(StrConcat("(", StrConcat(f(dvBoden(breite, hoehe, zielGrad), 0), ")"))); } } // Hoehe aus der Umlaufzeit: Tiangong ist ueber die Periode belegt, nicht ueber die Hoehe fn hoeheAusPeriode(minuten: f64): f64 { return ASemiMajorFromPeriod(AMuEarth(), minuten * 60.0) - ARadiusEarth(); } fn zeile(name: pchar, breite: f64): void { var rLeo: f64 := ARadiusEarth() + 400000.0; var rGeo: f64 := 42164000.0; var leoMin: f64 := dvBoden(breite, 400000.0, breite); var hoh: f64 := AHohmannDv(AMuEarth(), rLeo, rGeo); var plane: f64 := APlaneChangeDv(ACircularSpeed(AMuEarth(), rGeo), Grad(breite)); Print(name); spalte(breite, 28.5, 400000.0); // LEO 400 km, 28.5 Grad spalte(breite, 51.6, 400000.0); // ISS spalte(breite, 41.47, hoeheAusPeriode(92.3)); // Tiangong spalte(breite, 28.4687, 510200.0); // Hubble spalte(breite, 97.5, 700000.0); // SSO 700 km, rueckl. Print(" | "); PrintLn(f(leoMin + hoh + plane, 0)); } fn main(): int64 { PrintLn("Rampe | LEO 28.5 | ISS 51.6 | Tiangong | Hubble | SSO 97.5 | GEO (m/s ab Boden)"); zeile("Kourou ", 5.2); zeile("Sriharikota ", 13.7172); zeile("Wenchang ", 19.6145); zeile("Starbase ", 25.997); zeile("Xichang ", 28.2456); zeile("SLC-40 ", 28.5619); zeile("LC-39A ", 28.6083); zeile("Tanegashima ", 30.4); zeile("Uchinoura ", 31.2519); zeile("SLC-4E ", 34.633); zeile("Taiyuan ", 38.8491); zeile("Jiuquan ", 40.9675); zeile("Baikonur ", 45.6); zeile("Wostotschny ", 51.8846); zeile("Plessezk ", 62.9167); zeile("Andoya ", 69.294167); PrintLn(""); PrintLn("() = Inklination kleiner als Startbreite: nicht direkt erreichbar,"); PrintLn(" Wert enthaelt den Ebenenwechsel als Naeherung."); PrintLn(StrConcat("Tiangong-Hoehe aus 92.3 min Periode: ", StrConcat(f(hoeheAusPeriode(92.3) / 1000.0, 1), " km"))); PrintLn(StrConcat("Hubble-Periode aus 510.2 km Hoehe: ", StrConcat(f(APeriod(AMuEarth(), ARadiusEarth() + 510200.0) / 60.0, 2), " min"))); PrintLn(StrConcat("Hohmann LEO(400 km) -> GEO: ", f(AHohmannDv(AMuEarth(), ARadiusEarth()+400000.0, 42164000.0), 1))); PrintLn(StrConcat("Ebenenwechsel 28.5 Grad im GEO: ", f(APlaneChangeDv(ACircularSpeed(AMuEarth(), 42164000.0), Grad(28.5)), 1))); return 0; } Ausgabe: Rampe | LEO 28.5 | ISS 51.6 | Tiangong | Hubble | SSO 97.5 | GEO (m/s ab Boden) Kourou | 8991 | 9111 | 9044 | 9053 | 9625 | 13070 Sriharikota | 8991 | 9111 | 9044 | 9053 | 9625 | 13536 Wenchang | 8991 | 9111 | 9044 | 9053 | 9625 | 13863 Starbase | 8991 | 9111 | 9044 | 9053 | 9625 | 14219 Xichang | 8991 | 9111 | 9044 | 9053 | 9625 | 14345 SLC-40 | (9000) | 9111 | 9044 | (9065) | 9625 | 14362 LC-39A | (9006) | 9111 | 9044 | (9072) | 9625 | 14365 Tanegashima | (9253) | 9111 | 9044 | (9317) | 9625 | 14465 Uchinoura | (9371) | 9111 | 9044 | (9433) | 9625 | 14513 SLC-4E | (9838) | 9111 | 9044 | (9897) | 9625 | 14702 Taiyuan | (10421) | 9111 | 9044 | (10476) | 9625 | 14937 Jiuquan | (10714) | 9111 | 9044 | (10766) | 9625 | 15055 Baikonur | (11355) | 9111 | (9621) | (11402) | 9625 | 15311 Wostotschny | (12221) | (9151) | (10499) | (12262) | 9625 | 15657 Plessezk | (13726) | (10700) | (12037) | (13755) | 9625 | 16251 Andoya | (14581) | (11594) | (12919) | (14603) | 9625 | 16585 () = Inklination kleiner als Startbreite: nicht direkt erreichbar, Wert enthaelt den Ebenenwechsel als Naeherung. Tiangong-Hoehe aus 92.3 min Periode: 387.3 km Hubble-Periode aus 510.2 km Hoehe: 94.83 min Hohmann LEO(400 km) -> GEO: 3854.0 Ebenenwechsel 28.5 Grad im GEO: 1513.7 **Teil B — die Nutzlastmatrix aus Abschnitt 3:** unit main; import std.astro.launch; import std.astro.orbit; import std.math; import std.io; import std.string; fn Grad(g: f64): f64 { return g * Pi() / 180.0; } fn f(v: f64, d: int64): pchar { return FloatToStr(v, d); } // Aufstieg auf die Zielhoehe ueber eine 200-km-Parkbahn (ADvAscentToOrbit), // Drehgewinn aus der ZIELNEIGUNG (ARotationGainForInclination). fn dvBoden(breiteGrad: f64, hoehe: f64, zielGrad: f64): f64 { var breite: f64 := Grad(breiteGrad); var ziel: f64 := Grad(zielGrad); var rPark: f64 := ARadiusEarth() + 200000.0; var r: f64 := ARadiusEarth() + hoehe; // Liegt die Zielneigung unter der Startbreite, ist sie direkt nicht // erreichbar: dann rechnet der Aufstieg auf die kleinste erreichbare // Neigung, und AAzimuthPenalty schlaegt den Ebenenwechsel auf. var iAuf: f64 := ziel; if !AInclinationReachable(breite, ziel) { iAuf := breite; } var gewinn: f64 := ARotationGainForInclination(AEarthRotation(), ARadiusEarth(), breite, iAuf); return ADvAscentToOrbit(AMuEarth(), rPark, r, 1500.0, gewinn) + AAzimuthPenalty(ACircularSpeed(AMuEarth(), r), breite, ziel); } fn dvGeo(breiteGrad: f64): f64 { return dvBoden(breiteGrad, 400000.0, breiteGrad) + AHohmannDv(AMuEarth(), ARadiusEarth() + 400000.0, 42164000.0) + APlaneChangeDv(ACircularSpeed(AMuEarth(), 42164000.0), Grad(breiteGrad)); } // Nutzlast bei Mehrbedarf: Tsiolkovsky rueckwaerts auf die Nutzlast angewandt fn nutzlast(mRefT: f64, dvRef: f64, dvZiel: f64, ispOben: f64): f64 { return mRefT * ExpF64(0.0 - (dvZiel - dvRef) / AExhaustSpeed(ispOben)); } // Hoehe aus der Umlaufzeit fn hoeheAusPeriode(minuten: f64): f64 { return ASemiMajorFromPeriod(AMuEarth(), minuten * 60.0) - ARadiusEarth(); } fn rakete(name: pchar, breite: f64, mRefT: f64, ispOben: f64): void { var dvRef: f64 := dvBoden(breite, 400000.0, breite); Print(name); Print(" | "); Print(f(nutzlast(mRefT, dvRef, dvBoden(breite, 400000.0, 28.5), ispOben), 1)); Print(" | "); Print(f(nutzlast(mRefT, dvRef, dvBoden(breite, 400000.0, 51.6), ispOben), 1)); Print(" | "); Print(f(nutzlast(mRefT, dvRef, dvBoden(breite, hoeheAusPeriode(92.3), 41.47), ispOben), 1)); Print(" | "); Print(f(nutzlast(mRefT, dvRef, dvBoden(breite, 510200.0, 28.4687), ispOben), 1)); Print(" | "); Print(f(nutzlast(mRefT, dvRef, dvBoden(breite, 700000.0, 97.5), ispOben), 1)); Print(" | "); PrintLn(f(nutzlast(mRefT, dvRef, dvGeo(breite), ispOben), 2)); } fn main(): int64 { PrintLn("Rakete/Rampe | LEO 28.5 | ISS 51.6 | Tiangong | Hubble | SSO 97.5 | GEO (t)"); rakete("Spectrum @ Andoya ", 69.294167, 1.0, 320.0); rakete("Falcon 9 @ SLC-40 ", 28.5619, 22.8, 348.0); rakete("Ariane 64 @ Kourou ", 5.2, 21.6, 457.0); rakete("Angara A5 @ Wostotschny ", 51.8846, 24.5, 359.0); rakete("Long March 5B @ Wenchang", 19.6145, 25.0, 442.0); PrintLn(""); PrintLn(StrConcat("Referenz-dv Falcon 9 (i = Rampenbreite): ", f(dvBoden(28.5619, 400000.0, 28.5619), 0))); PrintLn(StrConcat("Austrittsgeschwindigkeit Merlin Vacuum: ", f(AExhaustSpeed(348.0), 0))); return 0; } Ausgabe: Rakete/Rampe | LEO 28.5 | ISS 51.6 | Tiangong | Hubble | SSO 97.5 | GEO (t) Spectrum @ Andoya | 0.2 | 0.5 | 0.3 | 0.2 | 0.9 | 0.10 Falcon 9 @ SLC-40 | 22.7 | 22.0 | 22.5 | 22.3 | 18.9 | 4.73 Ariane 64 @ Kourou | 21.3 | 20.8 | 21.1 | 21.0 | 18.5 | 8.59 Angara A5 @ Wostotschny | 10.1 | 24.2 | 16.5 | 10.0 | 21.2 | 3.82 Long March 5B @ Wenchang | 24.8 | 24.2 | 24.5 | 24.5 | 21.5 | 8.07 Referenz-dv Falcon 9 (i = Rampenbreite): 8991 Austrittsgeschwindigkeit Merlin Vacuum: 3413 ===== 6. Was diese Seite über die Bibliothek verrät ===== Diese Seite hat drei Lücken in ''std.astro.launch'' aufgedeckt. Alle drei sind inzwischen geschlossen, und das Programm oben rechnet mit den neuen Funktionen statt mit Handkorrekturen: * **Der Drehgewinn folgte dem Azimut, nicht der Zielneigung** ([[https://github.com/SEOLizer/LyX-Compiler/issues/1987|#1987]]). Für eine rückläufige Bahn wurde der volle Ostanteil gutgeschrieben, obwohl die Rakete nach Westen fliegt — eine SSO kam damit billiger heraus als eine prograde Bahn. Neu ist ''ARotationGainForInclination(omega, R, breite, inklination)'', das den Azimut selbst ableitet und bei 97.5° die richtigen **−60.7 m/s** liefert. Die Funktion meldet außerdem einen Fehlerwert, wenn die Neigung unter der Startbreite liegt — deshalb prüft das Programm vorher mit ''AInclinationReachable''. * **''ADvAscent'' trug die Zielhöhe nicht** ([[https://github.com/SEOLizer/LyX-Compiler/issues/1989|#1989]]). Der Wert folgte der Kreisbahngeschwindigkeit, die mit der Höhe sinkt — eine 700-km-Bahn erschien billiger als eine 400-km-Bahn. Aufgefallen ist das erst mit der Hubble-Spalte, weil vorher alle Ziele auf derselben Höhe lagen. Neu ist ''ADvAscentToOrbit(mu, rPark, rTarget, verluste, drehgewinn)'': Einschuss in eine Parkbahn, dann Hohmann-Transfer hinauf. 400 km kosten damit 8991 m/s, 510 km 9053 und 700 km 9156 — höher ist teurer. * **Kein J2** ([[https://github.com/SEOLizer/LyX-Compiler/issues/1988|#1988]]). Betrifft diese Seite nur am Rand, dafür die Seite [[lyx_-_programmiersprache:units:astro:bahntypen|Bahntypen]] umso mehr. Was weiterhin Anwenderlogik bleibt: die **Nutzlastumrechnung**. ''nutzlast()'' im Programm ist vier Zeilen Raketengleichung, die jede solche Auswertung neu schreiben muss.