Maschinelle Übersetzung, nicht von einem Muttersprachler geprüft. Englisch ist die maßgebliche Fassung.

BahnenAuf GitHub bearbeitenQuelle: docs/AGENCY-ORBIT-VALIDATION.md

Validierung des Kraftmodells durch Ephemeridenanpassung: Methodik und validierte Residuen

Die Vollkraft-Engine von Kshana (src/precise_od.rs), angepasst an reale präzise Bahnprodukte von Raumfahrtagenturen, mit ehrlichen, zitierbaren, mit dem Commit-Hash versehenen Residuen. Dies ist der Validierungsnachweis für den Roadmap-Meilenstein P4 („Präzise Astrodynamik: Gravitation hoher Ordnung, SRP (Strahlungsdruck der Sonne), Validierung gegen Datensätze von Agenturen“).

Was ein validiertes Residuum hier bedeutet#

Ein Residuum wird nur angegeben, wenn alles Folgende zutrifft (Entwurf docs/design/2026-06-09-precise-astrodynamics-design.md):

  1. Das Kraftmodell enthält jede Störung, die bei der Zielgenauigkeit zählt: das hochgradige Geopotential EGM2008 (Earth Gravitational Model 2008) (bei einem angegebenen Grad/einer angegebenen Ordnung abgeschnitten, d/o), feste, ozeanische und atmosphärische Gezeiten (src/tides.rs, IERS (International Earth Rotation and Reference Systems Service) Conventions 2010 Kap. 6), Sonne/Mond als dritte Körper, Kanonenkugel-SRP mit konischem Schatten + geschätztem C_R, Luftwiderstand (nur LEO (niedrige Erdumlaufbahn)), Terme der Allgemeinen Relativitätstheorie (ART) nach Schwarzschild + Lense–Thirring (src/forces.rs).
  2. Der Schätzer ist eine echte Gauß-Newton-Batch-Methode der kleinsten Quadrate mit einer variationellen Zustandsübergangsmatrix (gegen finite Differenzen über den ganzen Bogen auf < 1e-6 gegengeprüft), Beobachtungsgewichtung mit 1/σ² und n-Sigma-Ausreißerbereinigung.
  3. Bezugssysteme und Zeit verwenden reale IERS-finals2000A-Erdorientierungsparameter (EOP) (UT1 (Universal Time 1, Erdrotationszeit)−UTC (koordinierte Weltzeit), Polbewegung; src/eop.rs) über die validierte IAU-Kette (International Astronomical Union) 2006/2000A CIO (Celestial Intermediate Origin) (src/cio.rs). SP3-GPS-Zeit (Standard Product 3, das Format für präzise Bahnen) (Global Positioning System) → TT (Terrestrial Time) über den festen Versatz von 51,184 s (timescales::gps_to_tt).
  4. Residuen werden in RTN (radial/Flugrichtung/quer zur Bahn) und 3D angegeben, mit und ohne empirische Beschleunigungen, neben der rohen Überlappung (ohne Anpassung).
  5. Jede Zahl ist reproduzierbar (offenes Datentor der CI (Continuous Integration)) und zitierbar (Commit-Hash + Datensatzverweis + SHA-256 der Fixture (SHA: Secure Hash Algorithm)).

Methode, je Datensatz#

  1. Die präzise SP3-Bahn parsen; für den gewählten Satelliten jede ITRF-Positionslösung (International Terrestrial Reference Frame) nehmen.
  2. Die SP3-GPS-Epoche → TT umrechnen; (UT1, xₚ, yₚ) aus finals2000A zu dieser Epoche auflösen.
  3. Jede ITRF-Positionslösung mit diesen EOP über die CIO-Kette ins GCRS (Geocentric Celestial Reference System) drehen — das sind die inertialen Positionsbeobachtungen. Die Dynamik verwendet für die erdfeste Rotation des Geopotentials die selben EOP, sodass Beobachtungen und Kräfte ein Bezugssystem teilen.
  4. Den Zustand zur Epoche initialisieren (Position = erste Positionslösung; Geschwindigkeit = finite Differenz 2. Ordnung) und [r, v, C_R] im Batch anpassen (Stufe 1), dann zusätzlich die 9 empirischen RTN-Beschleunigungen mit einem Zyklus pro Umlauf (CPR) (Stufe 2, a priori eingeschränkt).
  5. Das RTN- und 3D-RMS (Effektivwert) nach der Anpassung für beide Stufen und die rohe Überlappung angeben.

Ergebnisse#

Galileo, mittlere Erdumlaufbahn — GREEN (< 5 m Zielwert)#

  • Datensatz: endgültige Multi-GNSS-Bahn ESA0MGNFIN von ESA/ESOC (ESA: Europäische Weltraumorganisation; ESOC: Europäisches Raumflugkontrollzentrum) (GNSS: globales Satellitennavigationssystem), ITRF, 5-Minuten-Abtastung, Satellit E11 (GSAT0101, Galileo In-Orbit Validation (IOV), nominelle MEO (mittlere Erdumlaufbahn)), 2022-01-01.
  • Offene Quelle (ohne Anmeldung): Spiegel des ESA Navigation Office, navigation-office.esa.int/products/gnss-products/2190/. EOP: IERS datacenter.iers.org/data/9/finals2000A.all.
  • Validierungs-Commit: 66da3ff (tests/agency_galileo.rs).
  • Fixtures (SHA-256): SP3 e7297f4c…d3a24a3; EOP 6b781d36…cb2ed00f (tests/fixtures/agency/NOTICE.md).
Ausführen Bogen d/o n_obs 3D-RMS RTN (R, T, N) C_R Hinweise
CI-Fixture, Stufe 1 (Kraft + C_R) 8 h 12 97 0,133 m 0,105, 0,067, 0,047 m 1.174 rohe Überlappung 78,7 km
CI-Fixture, Stufe 2 (+ empirisches CPR) 8 h 12 97 0,070 m 0,048, 0,044, 0,027 m — halbiert das Residuum
Vollbogen-Dispatch, Stufe 1 (vor der Korrektur†) 24 h 12 289 0,611 m 0,276, 0,381, 0,390 m 1.244 workflow_dispatch

Die obigen Zahlen der CI-Fixture wurden in 0,36 nach der S2-Korrektur der Luftgezeiten (xval/s2-air-tide-fix/) neu aufgezeichnet: Galileo Stufe 1 wanderte von 0,132 → 0,133 m (C_R 1,1744 → 1,1743), die N-Komponenten von Swarm-A um 1–2 mm; die Zahlen des Vollbogen-Dispatch wurden nicht neu ausgeführt. † Vor der Korrektur: Die Zahl des Vollbogen-Dispatch wurde vor der S2-Korrektur der Luftgezeiten in 0,36 aufgezeichnet und mit dem korrigierten Code nicht neu ausgeführt (die ganztägigen Produkte holt der Dispatch-Workflow ab; sie standen in der Sitzung, die die Korrektur vornahm, nicht zur Verfügung). Bei den CI-Fixtures verschob die Korrektur das 3D-RMS von Galileo um weniger als 1 mm und die Komponenten von Swarm-A um 1–2 mm, sodass eine Änderung derselben Größenordnung zu erwarten ist; der nächste workflow_dispatch-Lauf zeichnet sie neu auf.

Das MEO-Feld ist ab Grad 8 gravitativ konvergiert (das Stufe-1-Ergebnis über 8 h ist bei d/o 8, 10 und 12 auf den Millimeter identisch), sodass die d/o-12-Abschneidung der CI-Fixture vernachlässigbar ist; der Dispatch-Job läuft mit dem vollen d/o-70. Die Anpassung über 8 h erreicht 13 cm rein kraftbasiert und 7 cm mit der empirischen Stufe; der volle Bogen über 24 h (mehr SRP-/Eklipsenbelastung, längere dynamische Spanne) liegt bei 61 cm — alles weit innerhalb des Zielwerts von 5 m.

Swarm-A LEO — GREEN (< 5 m Zielwert)#

  • Datensatz: präzise reduziert-dynamische wissenschaftliche Bahn SW_OPER_SP3ACOM_2_ der ESA Swarm Level-2 (RDOD_AR, GPS-abgeleitet, ITRF / IGb14, ~2 cm, Verarbeitung der Technischen Universität Delft), Satellit Swarm-A (SP3-Kennung L47, ~430 km LEO), 2022-01-01.
  • Offene Quelle (ohne Anmeldung): Verbreitungsserver der ESA Swarm https://swarm-diss.eo.esa.int/ → Level2daily/Latest_baselines/POD/RD/Sat_A/ (offen unter der ESA Data Policy). EOP: dieselbe IERS-finals2000A-Reihe 2022-001.
  • Validierungs-Commit: ceea70a (tests/agency_swarm.rs).
  • Fixture (SHA-256): SP3 6cd84b78…acb733e (tests/fixtures/agency/NOTICE.md).

Ein LEO-Bogen fügt dem Kraftmodell den atmosphärischen Luftwiderstand hinzu. Weil das Dichtemodell ein statisches stückweise exponentielles ist, wird die Bahn in zwei Stufen angepasst: eine dynamische Stufe (nur den Zustand zur Epoche schätzen; C_R bei 1 festgehalten, da im LEO der Luftwiderstand dominiert und SRP über einen kurzen Bogen schlecht trennbar ist) und eine reduziert-dynamische Stufe, die die empirischen Beschleunigungen mit einem Zyklus pro Umlauf hinzufügt, die den nicht modellierten Luftwiderstand tragen — die operativ aussagekräftige LEO-Bahn.

Ausführen Bogen d/o n_obs 3D-RMS RTN (R, T, N) Hinweise
CI-Fixture, dynamisch (C_R=1) 3 h 70 181 2,687 m 0,925, 2,522, 0,045 m Residuum ≈ rein in Flugrichtung (Luftwiderstand)
CI-Fixture, reduziert-dynamisch (+empirisch) 3 h 70 181 0,098 m 0,026, 0,092, 0,025 m das Empirische absorbiert den Luftwiderstand

Die dynamische Anpassung unterschreitet den Zielwert von 5 m, wobei das Residuum fast ganz in Flugrichtung liegt — die Lehrbuchsignatur des Luftwiderstands bei ~430 km. Die empirische Stufe absorbiert diesen Fehler in Flugrichtung (2,52 → 0,09 m) und ergibt eine reduziert-dynamische Anpassung von ~10 cm gegenüber der eigenen ~2-cm-Bahn der ESA. Der ganztägige Lauf mit vollem Grad ist der ignorierte swarm_full_arc_dispatch (der Verbreitungsserver liefert das Produkt über seine Dateibrowser-Sitzung aus, sodass der Gründer die SP3 des Tages herunterlädt und KSHANA_SWARM_SP3 darauf zeigen lässt). NRLMSISE-00 (NRLMSISE: Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Extended, Atmosphärenmodell) mit Weltraumwetter-Treibern ist das genannte Upgrade, das die dynamische Stufe weiter verbessern würde.

LRO Mond — validiert, über dem Zielwert von 5 m (ehrlich) (P4 W4b)#

  • Datensatz: die reale rekonstruierte Trajektorie des Lunar Reconnaissance Orbiter (LRO; NAIF (Navigation and Ancillary Information Facility) −85) von NASA/JPL (NASA: National Aeronautics and Space Administration; JPL: Jet Propulsion Laboratory) aus JPL Horizons, geometrische mondzentrierte Zustandsvektoren im ICRF (International Celestial Reference Frame), 2022-01-01, ~98 km Höhe, 1-Minuten-Abtastung (241 Epochen, 4 h, ~2 Umläufe). Horizons-Textvektoren zu verwenden braucht keinen SPK/SPICE-Leser (SPK: Planeten-Ephemeriden-Kernel; SPICE: Spacecraft, Planet, Instrument, C-matrix, Events).
  • Gravitation: das GRGM660PRIM-Feld von GRAIL (Gravity Recovery and Interior Laboratory) (NASA Goddard Space Flight Center, Grad 660), auf d/o 150 abgeschnitten und bei d/o 100 angepasst, ausgewertet im mondfesten Hauptachsen-Bezugssystem.
  • Offene Quelle (ohne Anmeldung): Horizons-API (Programmierschnittstelle) ssd.jpl.nasa.gov/api/horizons.api; Gravitation über ICGEM (International Centre for Global Earth Models) icgem.gfz-potsdam.de.
  • Validierungs-Commit: 4fb82bb (tests/agency_lro.rs).
  • Fixtures (SHA-256): LRO 574e3518…d100f0; GRGM 0ff04184…f029977ae (tests/fixtures/agency/NOTICE.md).

Dies ist mondzentrierte Dynamik — ein eigenes Kraftmodell (src/lunar_od.rs): das GRGM-Feld im mondfesten Bezugssystem (die mittlere Erdorientierung des Mondes nach IAU 2015 src/lunar_frame.rs, zusammengesetzt mit dem festen DE421-Versatz (Development Ephemeris 421) mittlere Erdachse → Hauptachse (ME→PA)), dazu Erde (die dominante Störung einer Mondumlaufbahn) und Sonne als dritte Körper, angepasst mit dem selben generischen präzisen Gauß-Newton-Schätzer, den auch die Erddatensätze verwenden (der Trait precise_od::ForceModel).

Ausführen Bogen d/o n_obs 3D-RMS RTN (R, T, N) Hinweise
CI-Fixture, dynamisch (nur Zustand) 4 h 100 241 12,05 m 2,91, 10,11, 5,88 m rohe Überlappung 39,9 m
CI-Fixture, reduziert-dynamisch (+empirisch 1+2/Umlauf) 4 h 100 241 6,67 m 3,41, 4,58, 3,44 m das 1- und 2-pro-Umlauf-Empirische absorbiert die Flugrichtung

Korrektur in 0,36: Bis 0,36 wurde der DE421-ME→PA-Versatz in der falschen Richtung (und mit der falschen Euler-Reihenfolge) angewandt, was das analytische PA-Bezugssystem etwa 208″ neben PA statt auf PA legte. Er ist nun so übertragen, wie SPICE ihn definiert (auf 2.6e-16 rad gegen pxform('MOON_ME','MOON_PA') geprüft, tests/lunar_me_pa_offset_spice_oracle.rs; docs/design/evidence/fut05b-me-pa-offset-sign/). Die obigen Zahlen gelten nach der Korrektur; davor waren sie 53,8 m roh, 12,6 m dynamisch (3,07, 10,19, 6,81 m) und 6,65 m reduziert-dynamisch (3,49, 4,56, 3,35 m).

Diese Residuen liegen über dem Zielwert von 5 m, den Galileo (0,13 m) und Swarm-A (0,10 m) unterschreiten, und werden ehrlich angegeben.

Was die Untergrenze tatsächlich bestimmt — eine Kreuzvalidierung auf DE-Niveau (und eine Korrektur)

Wir vermuteten, dass der begrenzende Faktor die Güte der analytischen Mondorientierung und Ephemeride war (die IAU-Librationsreihe, auf einige zehn Bogensekunden genau gegenüber dem numerisch integrierten MOON_PA der JPL DE (Development Ephemeris), und die Erde/Sonne-Ephemeride nach Montenbruck–Gill, ~0,3° gegenüber einem DE/SPICE-Kernel). Um das direkt zu prüfen, ersetzt die vom Workspace ausgeschlossene Kreuzvalidierungs-Crate xval/anise-lunar-od nur diese zwei Eingaben durch solche auf DE-Niveau — die DE440-Mond-Hauptachsenorientierung (Development Ephemeris 440) (moon_pa_de440_200625.bpc) und die DE440-Ephemeride (de440s.bsp), gelesen über ANISE (Attitude, Navigation, Instrument, Spacecraft, Ephemeris — ein reiner Rust-Leser für SPICE-Kernel) — und führt den selben Schätzer erneut aus (Commit ae96a29, Kernel-SHA-256 c1c7fee… / 60cd55a…):

Stufe analytisch DE-grade
rohe Überlappung 53,8 m 41,5 m
dynamisch 12,6 m 12,0 m
reduziert-dynamisch (1+2/Umlauf) 6,65 m 6,67 m

Hinweis zu 0,36: Der größte Teil des Gewinns der dynamischen Stufe unten war der Versatzfehler, nicht die Eingaben auf DE-Niveau. Mit korrigiertem ME→PA-Versatz ergibt der analytische Stapel 39,9 m roh, 12,05 m dynamisch und 6,67 m reduziert-dynamisch, gegenüber 41,5, 12,0 und 6,67 m auf DE-Niveau: Die analytische und die DE-Anpassung stimmen nun in jeder Stufe überein. Die Lesart von 0,30 der Tabelle unten folgt daraus und bleibt, wie sie geschrieben wurde.

Die Hypothese stimmt nur zur Hälfte, und die Hauptaussage musste korrigiert werden. Orientierung und Ephemeride auf DE-Niveau verbessern die rohe Überlappung (53,8 → 41,5 m) und die dynamische Anpassung (12,6 → 12,0 m) tatsächlich — der Fehler der analytischen Orientierung/Ephemeride ist also real und begrenzt diese Stufen. Aber sie lassen das reduziert-dynamische Residuum im Wesentlichen unverändert (6,65 → 6,67 m): Die empirische Stufe mit 1+2 pro Umlauf absorbierte den Orientierungs-/Ephemeridenfehler bereits, sodass die operative Untergrenze von ~6,6 m durch etwas anderes bestimmt wird — ein Residuum, das die Basis mit Zyklen pro Umlauf nicht absorbieren kann und das Bezugssysteme auf DE-Niveau nicht entfernen. Die konsistenteste Erklärung ist nicht modellierte nichtgravitative LRO-Dynamik (thermische Rückstrahlung, Ausgasung) über den kurzen Bogen von 4 h; der Feldgrad ist ausgeschlossen (identisch bei d/o 100 und 150), und die Integratortoleranz ist ausgeschlossen (identisch bei atol 1e-6 gegenüber 1e-9). Der konstruktive Schluss: Der schlanke, kernelfreie analytische Mondstapel von Kshana erreicht für die reduziert-dynamische (operative) Mondbahn bereits die Güte des DE-Niveaus — die reine Koeffizienten-Voreinstellung lässt dort nichts liegen. Um 5 m zu unterschreiten, müsste man die nichtgravitativen Kräfte des LRO modellieren (ein raumfahrzeugspezifisches Box-Wing-/Thermalmodell und eine längere Anpassung über mehrere Bögen), nicht bessere Bezugssysteme.

Ehrlichkeitsverpflichtung#

  • Der „grüne“ Zielwert < 5 m ist für Galileo MEO (0,13 m dynamisch) und Swarm-A LEO (2,69 m dynamisch / 0,10 m reduziert-dynamisch) erreicht. LRO Mond wird unverändert mit 12,05 m dynamisch / 6,67 m reduziert-dynamisch (1+2 pro Umlauf empirisch) veröffentlicht — über dem Zielwert (0,36, nach der Korrektur des ME→PA-Versatzes; davor 12,6 / 6,65 m). Eine Kreuzvalidierung auf DE-Niveau (oben) hat die Aussage zum begrenzenden Faktor geprüft und korrigiert: Die reduziert-dynamische Untergrenze ist nicht die analytische Orientierung/Ephemeride (DE440-Kernel lassen sie bei 6,67 m unverändert), sie wird also nicht durch bessere Bezugssysteme geschlossen, sondern durch Modellierung der nichtgravitativen Dynamik des LRO — der ehrliche, aktualisierte Weg zum Meterbereich.
  • Für LEO werden die dynamische (nur Zustand, statische Dichte) und die reduziert-dynamische Stufe (mit empirischen Beschleunigungen) immer getrennt angegeben, damit der Leser sieht, was die empirischen Terme absorbieren; die reduziert-dynamische Stufe ist die operative Bahn. Dieselbe Trennung gilt für die empirischen und rein kraftbasierten Stufen bei MEO.
  • Jedes Residuum trägt oben seinen Commit-Hash, Datensatzverweis und die Fixture-Prüfsumme.
  • Gegen reale Agenturwahrheit validierte Datensätze: 3 von 3 (Galileo MEO, Swarm-A LEO, LRO Mond). Den Zielwert < 5 m erreichen: 2 von 3 (Galileo ✓, Swarm-A ✓; LRO bei 6,67 m, ehrlich darüber).