Strojový překlad, nekontrolovaný rodilým mluvčím. Referenční je anglická verze.

Oběžné dráhyUpravit na GitHubuZdroj: docs/SGP4-VALIDATION.md

Validace SGP4/SDP4 vůči referenci komunity

Orbitální propagátor Kshany je validován vůči kanonické referenci komunity pro SGP4/SDP4 (SGP4: Simplified General Perturbations 4; SDP4: Simplified Deep-space Perturbations 4): ověřovacím vektorům zveřejněným s článkem Vallado a kol., „Revisiting Spacetrack Report #3“ (AIAA (American Institute of Aeronautics and Astronautics) 2006-6753), distribuovaným jako SGP4-VER.TLE (testovací TLE (dvouřádkové sady elementů)) a tcppver.out (očekávaný stav TEME (true equator, mean equinox) v každém čase). Je to táž reference, proti níž se validují veřejné implementace v C++/Pythonu/MATLABu, takže shoda zde je shodou s de facto standardem.

Výsledek#

Veličina Hodnota
Porovnané referenční stavy 666 (všechny řádky v tcppver.out, zafixované v testu)
Nejhorší chyba polohy 4,12 mm (4.120e-6 km, družice 23333; < tolerance 2e-5 km)
Nejhorší chyba rychlosti 1.85e-9 km/s (družice 23333; < tolerance 1e-6 km/s)
Pokryté případy SGP4 pro blízkou Zemi, SDP4 pro hluboký vesmír (lunisolární + rezonance 12 h/24 h) a záměrné případy chybových kódů

Případy hlubokého vesmíru a rezonanční mají pro tento projekt zvláštní význam: družice GNSS (globálního družicového navigačního systému) obíhají po drahách s periodou ~12 h, které jsou hlubokovesmírné a rezonanční, což model dvou těles + sekulární J2 nedokáže reprodukovat — SGP4/SDP4 ano.

Metoda#

  • Implementace (src/sgp4.rs) je port algoritmu Vallada z public domain do Rustu bez závislostí; zpracování epochy je ve dnech od roku 1950, používá se režim improved (nikoli afspc) a gravitační konstanty WGS-72 (WGS: World Geodetic System) se aplikují tak, jak reference předepisuje.
  • Test (tests/sgp4_verification.rs) zpracuje přibalené fixtury SGP4-VER.TLE a tcppver.out (tests/fixtures/sgp4/), propaguje každou testovací družici ke každému referenčnímu času a ověřuje, že poloha a rychlost v TEME se shodují v rámci výše uvedených tolerancí. Počet porovnaných řádků je zafixován přesně na 666, aby regrese fixtury nebo přeskakování případů nemohly tiše snížit pokrytí.

Reprodukujte to#

cargo test --test sgp4_verification -- --nocapture

Test vypíše počet porovnaných řádků a nejhorší chyby polohy a rychlosti. Fixtury jsou součástí repozitáře, takže kontrola je zcela offline a deterministická.

Nezávislá křížová kontrola proti crate sgp4#

Shoda s publikovanou referencí dokazuje správnost vůči tabulce. Aby se prokázala správnost i vůči nezávislé implementaci, tests/sgp4_crate_comparison.rs spouští široce používanou nezávislou knihovnu SGP4 v Rustu, crate sgp4 (neuromorphicsystems/sgp4, verze 2,4), nad týmiž 666 vektory AIAA a porovnává obě kódové základny přímo mezi sebou. Obě jsou provozovány s gravitačním modelem WGS72 (World Geodetic System 1972), v němž jsou vektory definovány (výchozí from_elements tohoto crate používá WGS84 (World Geodetic System 1984), který se od reference WGS72 liší o ~km — jde o modelovací volbu, uvedenou otevřeně, nikoli o chybu).

Režim kshana ↔ reference crate ↔ reference kshana ↔ crate
blízká Zemi (LEO/MEO (LEO: nízká oběžná dráha Země; MEO: střední oběžná dráha Země)) 7.3e-9 km 7.3e-9 km 4.4e-10 km
hluboký vesmír (nerezonanční) 4.1e-6 km 2.1e-7 km 4.1e-6 km
rezonance v hlubokém vesmíru (½ dne) 8.1e-9 km 7.7e-9 km 2.2e-9 km
rezonance v hlubokém vesmíru (1 den) 8.2e-9 km 7.8e-9 km 2.2e-9 km

Dvě nezávislé implementace se shodují na úrovni pod mikrometr pro dráhy blízké Zemi a rezonanční a na 4,12 mm v nejhorším případě napříč všemi režimy — týchž 4,12 mm, které jsou vlastní odchylkou Kshany od reference, tedy rozdíl je právě tento jeden případ hlubokého vesmíru, přičemž crate leží mezi Kshanou a tabulkou. Úplná tabulka (s počty řádků podle režimů a čtyřmi patologickými případy, které crate odmítá při konstrukci) je součástí repozitáře v tests/fixtures/sgp4_comparison.md a regeneruje se pomocí KSHANA_REGEN_FIXTURES=1 cargo test --test sgp4_crate_comparison.

Stav „publikování“ tohoto výsledku#

Samotná křížová validace je dokončena a je součástí repozitáře. Odeslání výsledku externím místům (komunitnímu katalogu, krátké poznámce, archivnímu záznamu s DOI (DOI: digitální identifikátor objektu)) je úkon správce sledovaný zvlášť v plánu rozvoje; tento dokument je záznam v repozitáři, na který by se tato odeslání odkazovala.