Walidacja modelu sił przez dopasowanie efemeryd — metodologia i sprawdzone względem wzorca residua
Pełny silnik sił Kshana (src/precise_od.rs) dopasowany do rzeczywistych agencyjnych produktów precyzyjnych orbit, z uczciwymi, cytowalnymi residuami opatrzonymi skrótem commita. To jest zapis walidacji dla kamienia milowego P4 planu rozwoju („Precyzyjna astrodynamika: grawitacja wysokiego stopnia, SRP (ciśnienie promieniowania słonecznego), walidacja względem zbiorów danych agencji”).
Co tutaj oznacza residuum sprawdzone względem wzorca#
Residuum jest podawane tylko wtedy, gdy spełnione są wszystkie poniższe warunki (projekt docs/design/2026-06-09-precise-astrodynamics-design.md):
- Model sił obejmuje każde zaburzenie, które ma znaczenie przy docelowej dokładności: geopotencjał wysokiego stopnia EGM2008 (Earth Gravitational Model 2008) (obcięty przy podanym stopniu i rzędzie, d/o), pływy stałe, oceaniczne i atmosferyczne (
src/tides.rs, IERS (International Earth Rotation and Reference Systems Service) Conventions 2010 Ch. 6), trzecie ciała Słońce/Księżyc, SRP typu kula armatnia ze stożkowym cieniem i szacowanymC_R, opór (tylko LEO (low Earth orbit)), człony ogólnej teorii względności (GR) Schwarzschilda i Lense'a–Thirringa (src/forces.rs). - Estymator to rzeczywista wsadowa metoda najmniejszych kwadratów Gaussa–Newtona z wariacyjną macierzą przejścia stanu (sprawdzoną krzyżowo względem różnicy skończonej na całym łuku do < 1e-6), ważeniem obserwacji
1/σ²i edycją wartości odstających n-sigma. - Układy i czas wykorzystują rzeczywiste parametry orientacji Ziemi (EOP) IERS finals2000A (UT1 (Universal Time 1, czas obrotu Ziemi)−UTC (Coordinated Universal Time), ruch bieguna;
src/eop.rs) w sprawdzonym względem wzorca łańcuchu IAU (International Astronomical Union) 2006/2000A CIO (Celestial Intermediate Origin) (src/cio.rs). Czas GPS (Global Positioning System) w SP3 (Standard Product 3, format precyzyjnych orbit) → TT (Terrestrial Time) przez stałe przesunięcie 51,184 s (timescales::gps_to_tt). - Residua są podawane w RTN (radialnie/wzdłuż toru/poprzecznie) i w 3D, z przyspieszeniami empirycznymi i bez nich, obok surowego (bez dopasowania) nakładania.
- Każda liczba jest odtwarzalna (bramka CI (ciągłej integracji) na otwartych danych) i cytowalna (skrót commita + odwołanie do zbioru danych + SHA-256 fixture'a (SHA: Secure Hash Algorithm)).
Metoda, dla każdego zbioru danych#
- Sparsuj precyzyjną orbitę SP3; dla wybranego satelity weź każdą pozycję w ITRF (International Terrestrial Reference Frame).
- Przelicz epokę GPS w SP3 → TT; wyznacz
(UT1, xₚ, yₚ)z finals2000A dla tej epoki. - Obróć każdą pozycję ITRF do GCRS (Geocentric Celestial Reference System) przez łańcuch CIO z tymi EOP — to są inercyjne obserwacje pozycji. Dynamika używa tych samych EOP do obrotu geopotencjału związanego z Ziemią, więc obserwacje i siły dzielą jeden układ odniesienia.
- Zainicjuj stan epoki (pozycja = pierwsza pozycja; prędkość = różnica skończona 2. rzędu) i dopasuj wsadowo
[r, v, C_R](Tier 1), a następnie dodatkowo 9 empirycznych przyspieszeń RTN o jednym cyklu na obieg (CPR) (Tier 2, z ograniczeniem a priori). - Podaj RMS (root mean square) po dopasowaniu w RTN i 3D dla obu poziomów oraz surowe nakładanie.
Wyniki#
Galileo, średnia orbita okołoziemska — GREEN (próg < 5 m)#
- Zbiór danych: końcowa orbita multi-GNSS (GNSS: globalny system nawigacji satelitarnej) ESA/ESOC (ESA: European Space Agency; ESOC: European Space Operations Centre)
ESA0MGNFIN, ITRF, próbkowanie co 5 min, satelita E11 (GSAT0101, Galileo In-Orbit Validation (IOV), nominalna MEO (średnia orbita okołoziemska)), 2022-01-01. - Otwarte źródło (bez logowania): serwer lustrzany ESA Navigation Office,
navigation-office.esa.int/products/gnss-products/2190/. EOP: IERSdatacenter.iers.org/data/9/finals2000A.all. - Commit walidacji:
66da3ff(tests/agency_galileo.rs). - Fixture'y (SHA-256): SP3
e7297f4c…d3a24a3; EOP6b781d36…cb2ed00f(tests/fixtures/agency/NOTICE.md).
| Uruchom | Łuk | d/o | n_obs | RMS 3D | RTN (R, T, N) | C_R |
Uwagi |
|---|---|---|---|---|---|---|---|
Fixture CI, Tier 1 (siły + C_R) |
8 h | 12 | 97 | 0,133 m | 0,105, 0,067, 0,047 m | 1.174 | surowe nakładanie 78,7 km |
| Fixture CI, Tier 2 (+ empiryczne CPR) | 8 h | 12 | 97 | 0,070 m | 0,048, 0,044, 0,027 m | — | zmniejsza residuum o połowę |
| Wysyłka pełnego łuku, Tier 1 (przed poprawką†) | 24 h | 12 | 289 | 0,611 m | 0,276, 0,381, 0,390 m | 1.244 | workflow_dispatch |
Liczby z fixture'ów CI powyżej zostały zapisane ponownie w 0,36 po poprawce atmosferycznych pływów S2 (xval/s2-air-tide-fix/): Tier 1 dla Galileo zmienił się z 0,132 → 0,133 m (C_R 1,1744 → 1,1743), składowe N dla Swarm-A o 1–2 mm; wartości z wysyłki pełnego łuku nie zostały uruchomione ponownie. † Przed poprawką: wartość z wysyłki pełnego łuku zapisano przed poprawką pływów atmosferycznych S2 z 0,36 i nie uruchomiono jej ponownie na poprawionym kodzie (produkty z całych dób pobiera przepływ pracy wysyłki, nie były dostępne w sesji, która wprowadziła poprawkę). Na fixture'ach CI poprawka zmieniła RMS 3D dla Galileo o mniej niż 1 mm, a składowe Swarm-A o 1–2 mm, więc spodziewana jest zmiana tego samego rzędu; następne uruchomienie workflow_dispatch zapisze ją ponownie.
Pole MEO jest zbieżne grawitacyjnie przy stopniu 8 (wynik Tier-1 dla 8 h jest identyczny co do milimetra przy d/o 8, 10 i 12), więc obcięcie fixture'a CI do d/o 12 jest pomijalne; zadanie wysyłki uruchamia pełne d/o 70. Dopasowanie 8 h osiąga 13 cm przy samych siłach i 7 cm z poziomem empirycznym; pełny łuk 24 h (więcej obciążenia SRP/zaćmieniami, dłuższy zakres dynamiczny) daje 61 cm — wszystko znacznie poniżej progu 5 m.
Swarm-A LEO — GREEN (próg < 5 m)#
- Zbiór danych: precyzyjna orbita naukowa ESA Swarm Level-2 o zredukowanej dynamice
SW_OPER_SP3ACOM_2_(RDOD_AR, wyprowadzona z GPS, ITRF / IGb14, ~2 cm, przetwarzanie Delft University of Technology), satelita Swarm-A (identyfikator SP3L47, ~430 km, LEO), 2022-01-01. - Otwarte źródło (bez logowania): serwer udostępniania ESA Swarm
https://swarm-diss.eo.esa.int/→Level2daily/Latest_baselines/POD/RD/Sat_A/(otwarte na mocy ESA Data Policy). EOP: ta sama seria IERSfinals2000A2022-001. - Commit walidacji:
ceea70a(tests/agency_swarm.rs). - Fixture (SHA-256): SP3
6cd84b78…acb733e(tests/fixtures/agency/NOTICE.md).
Łuk LEO dodaje do modelu sił opór atmosferyczny. Ponieważ model gęstości jest statyczny, odcinkowo wykładniczy, orbita jest dopasowywana w dwóch poziomach: poziom dynamiczny (szacowany jest tylko stan epoki; C_R utrzymane na 1, bo na LEO dominuje opór, a SRP jest słabo rozdzielalne na krótkim łuku) oraz poziom o zredukowanej dynamice, który dodaje empiryczne przyspieszenia o jednym cyklu na obieg, przenoszące niezamodelowany opór — operacyjnie znacząca orbita LEO.
| Uruchom | Łuk | d/o | n_obs | RMS 3D | RTN (R, T, N) | Uwagi |
|---|---|---|---|---|---|---|
Fixture CI, dynamiczny (C_R=1) |
3 h | 70 | 181 | 2,687 m | 0,925, 2,522, 0,045 m | residuum ≈ czysto wzdłuż toru (opór) |
| Fixture CI, o zredukowanej dynamice (+empiryczne) | 3 h | 70 | 181 | 0,098 m | 0,026, 0,092, 0,025 m | człon empiryczny pochłania opór |
Dopasowanie dynamiczne mieści się w progu 5 m, a residuum leży niemal w całości wzdłuż toru — podręcznikowy ślad oporu na wysokości ~430 km. Poziom empiryczny pochłania ten błąd wzdłuż toru (2,52 → 0,09 m), dając dopasowanie o zredukowanej dynamice rzędu ~10 cm względem własnej orbity ESA o dokładności ~2 cm. Przebieg całodobowy, pełnego stopnia, to ignorowane swarm_full_arc_dispatch (serwer udostępniania podaje produkt przez sesję przeglądarki plików, więc założyciel pobiera SP3 danej doby i wskazuje go w KSHANA_SWARM_SP3). NRLMSISE-00 (NRLMSISE: Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Extended atmosphere model) ze sterowaniem pogodą kosmiczną to wskazane ulepszenie, które jeszcze bardziej poprawiłoby poziom dynamiczny.
LRO, Księżyc — sprawdzone względem wzorca, powyżej progu 5 m (uczciwie) (P4 W4b)#
- Zbiór danych: rzeczywista zrekonstruowana trajektoria Lunar Reconnaissance Orbiter NASA/JPL (NASA: National Aeronautics and Space Administration; JPL: Jet Propulsion Laboratory) (LRO; NAIF (Navigation and Ancillary Information Facility) −85) z JPL Horizons, geometryczne wektory stanu względem środka Księżyca w ICRF (International Celestial Reference Frame), 2022-01-01, wysokość ~98 km, próbkowanie co 1 minutę (241 epok, 4 h, ~2 obiegi). Użycie tekstowych wektorów Horizons nie wymaga czytnika SPK/SPICE (SPK: jądro efemeryd planetarnych; SPICE: Spacecraft, Planet, Instrument, C-matrix, Events).
- Grawitacja: pole GRGM660PRIM z GRAIL (Gravity Recovery and Interior Laboratory) (NASA Goddard Space Flight Center, stopień 660), obcięte do d/o 150 i dopasowywane przy d/o 100, obliczane w związanym z Księżycem układzie osi głównych.
- Otwarte źródło (bez logowania): API (application programming interface) Horizons
ssd.jpl.nasa.gov/api/horizons.api; grawitacja przez ICGEM (International Centre for Global Earth Models)icgem.gfz-potsdam.de. - Commit walidacji:
4fb82bb(tests/agency_lro.rs). - Fixture'y (SHA-256): LRO
574e3518…d100f0; GRGM0ff04184…f029977ae(tests/fixtures/agency/NOTICE.md).
To jest dynamika względem środka Księżyca — odrębny model sił (src/lunar_od.rs): pole GRGM w układzie związanym z Księżycem (orientacja IAU 2015 średniej osi Ziemi src/lunar_frame.rs złożona ze stałym przesunięciem DE421 (Development Ephemeris 421) od średniej osi Ziemi do osi głównych (ME→PA)), a także trzecie ciała Ziemia (dominujące zaburzenie orbity księżycowej) i Słońce, dopasowane przez ten sam ogólny precyzyjny estymator Gaussa–Newtona, którego używają zbiory danych dla Ziemi (cecha precise_od::ForceModel).
| Uruchom | Łuk | d/o | n_obs | RMS 3D | RTN (R, T, N) | Uwagi |
|---|---|---|---|---|---|---|
| Fixture CI, dynamiczny (tylko stan) | 4 h | 100 | 241 | 12,05 m | 2,91, 10,11, 5,88 m | surowe nakładanie 39,9 m |
| Fixture CI, o zredukowanej dynamice (+empiryczne 1+2/obieg) | 4 h | 100 | 241 | 6,67 m | 3,41, 4,58, 3,44 m | człony empiryczne 1 i 2 na obieg pochłaniają błąd wzdłuż toru |
Poprawka 0,36: do 0,36 przesunięcie DE421 ME→PA było stosowane w złym kierunku (i z błędną kolejnością kątów Eulera), przez co analityczny układ PA leżał około 208″ od PA zamiast na nim. Teraz jest przepisane tak, jak definiuje je SPICE (sprawdzone względem pxform('MOON_ME','MOON_PA') do 2.6e-16 rad, tests/lunar_me_pa_offset_spice_oracle.rs; docs/design/evidence/fut05b-me-pa-offset-sign/). Powyższe wartości są po poprawce; przed nią było 53,8 m surowo, 12,6 m dynamicznie (3,07, 10,19, 6,81 m) i 6,65 m przy zredukowanej dynamice (3,49, 4,56, 3,35 m).
Te residua są powyżej progu 5 m, który Galileo (0,13 m) i Swarm-A (0,10 m) spełniają, i są podawane uczciwie.
Co faktycznie wyznacza dolną granicę — walidacja krzyżowa klasy DE (i korekta)
Postawiliśmy hipotezę, że czynnikiem ograniczającym jest wierność analitycznej orientacji Księżyca i efemeryd (szereg libracji IAU, dokładny do kilkudziesięciu sekund łuku w porównaniu z numerycznie całkowanym MOON_PA JPL DE (Development Ephemeris), oraz efemerydy Ziemi/Słońca Montenbrucka–Gilla, ~0,3° względem jądra DE/SPICE). Aby to sprawdzić bezpośrednio, wyłączony z przestrzeni roboczej crate walidacji krzyżowej xval/anise-lunar-od podmienia tylko te dwa dane wejściowe na dane klasy DE — orientację osi głównych Księżyca DE440 (Development Ephemeris 440) (moon_pa_de440_200625.bpc) i efemerydy DE440 (de440s.bsp), odczytywane przez ANISE (Attitude, Navigation, Instrument, Spacecraft, Ephemeris — czytnik jąder SPICE napisany w czystym Ruście) — i ponownie uruchamia ten sam estymator (commit ae96a29, SHA-256 jąder c1c7fee… / 60cd55a…):
| Poziom | analityczny | DE-grade |
|---|---|---|
| surowe nakładanie | 53,8 m | 41,5 m |
| dynamiczny | 12,6 m | 12,0 m |
| o zredukowanej dynamice (1+2/obieg) | 6,65 m | 6,67 m |
Uwaga 0,36: większość poniższego zysku na poziomie dynamicznym wynikała z błędu przesunięcia, a nie z danych klasy DE. Po poprawieniu przesunięcia ME→PA stos analityczny daje 39,9 m surowo, 12,05 m dynamicznie i 6,67 m przy zredukowanej dynamice, wobec 41,5, 12,0 i 6,67 m dla klasy DE: dopasowanie analityczne i klasy DE zgadzają się teraz na każdym poziomie. Odczyt 0,30 z poniższej tabeli z tego wynika, pozostawiony tak, jak został napisany.
Hipoteza jest trafna tylko w połowie, a główne twierdzenie wymagało korekty. Orientacja i efemerydy klasy DE poprawiają surowe nakładanie (53,8 → 41,5 m) i dopasowanie dynamiczne (12,6 → 12,0 m) — więc błąd analitycznej orientacji i efemeryd jest rzeczywisty i ogranicza te poziomy. Ale residuum o zredukowanej dynamice pozostawiają w istocie bez zmian (6,65 → 6,67 m): empiryczny poziom 1+2 na obieg już pochłaniał błąd orientacji i efemeryd, więc operacyjną dolną granicę ~6,6 m wyznacza coś innego — residuum, którego baza cykli na obieg nie potrafi pochłonąć, a układy klasy DE nie usuwają. Najbardziej spójnym wyjaśnieniem są niezamodelowane negrawitacyjne siły działające na LRO (ponowne promieniowanie cieplne, odgazowanie) na krótkim łuku 4 h; stopień pola jest wykluczony (identyczne przy d/o 100 i 150) i tolerancja całkowania jest wykluczona (identyczne przy atol 1e-6 wobec 1e-9). Konstruktywny wniosek: szczupły, pozbawiony jąder analityczny stos księżycowy Kshana już dorównuje wiernością klasie DE dla księżycowej orbity o zredukowanej dynamice (operacyjnej) — domyślne podejście oparte wyłącznie na współczynnikach niczego tu nie zostawia na stole. Przekroczenie 5 m wymagałoby zamodelowania negrawitacyjnych sił LRO (modelu skrzydeł-skrzynki i cieplnego specyficznego dla statku oraz dłuższego dopasowania wielołukowego), a nie lepszych układów odniesienia.
Zobowiązanie do uczciwości#
- „Zielony” próg < 5 m jest osiągnięty dla Galileo MEO (0,13 m dynamicznie) i Swarm-A LEO (2,69 m dynamicznie / 0,10 m przy zredukowanej dynamice). LRO, Księżyc, jest publikowany w stanie, w jakim jest: 12,05 m dynamicznie / 6,67 m przy zredukowanej dynamice (1+2 empiryczne na obieg) — powyżej progu (0,36, po poprawce przesunięcia ME→PA; 12,6 / 6,65 m przed nią). Walidacja krzyżowa klasy DE (powyżej) sprawdziła i poprawiła twierdzenie o czynniku ograniczającym: dolna granica przy zredukowanej dynamice nie wynika z analitycznej orientacji i efemeryd (jądra DE440 zostawiają ją bez zmian na poziomie 6,67 m), więc nie zamyka jej lepsze odwzorowanie układów, lecz zamodelowanie negrawitacyjnej dynamiki LRO — uczciwa, zaktualizowana droga do poziomu metra.
- Dla LEO poziomy dynamiczny (tylko stan, statyczna gęstość) i o zredukowanej dynamice (z przyspieszeniami empirycznymi) są zawsze podawane osobno, aby czytelnik widział, co pochłaniają człony empiryczne; poziom o zredukowanej dynamice jest orbitą operacyjną. To samo rozdzielenie obowiązuje dla poziomów MEO: empirycznego i samych sił.
- Każde residuum niesie powyżej swój skrót commita, odwołanie do zbioru danych i sumę kontrolną fixture'a.
- Zbiory danych sprawdzone względem rzeczywistej prawdy agencji: 3 z 3 (Galileo MEO, Swarm-A LEO, LRO, Księżyc). Spełniające próg < 5 m: 2 z 3 (Galileo ✓, Swarm-A ✓; LRO przy 6,67 m, uczciwie powyżej niego).