Konekäännös, jota äidinkielinen puhuja ei ole tarkistanut. Viitteenä on englanninkielinen versio.

RadatMuokkaa GitHubissaLähde: docs/SGP4-VALIDATION.md

SGP4/SDP4-validointi yhteisön vertailua vasten

Kshana-ratapropagaattori on validoitu SGP4/SDP4:n kanonista yhteisövertailua vasten (SGP4: Simplified General Perturbations 4; SDP4: Simplified Deep-space Perturbations 4): Vallado ym. julkaisun ”Revisiting Spacetrack Report #3” (AIAA (American Institute of Aeronautics and Astronautics) 2006-6753) mukana julkaistut varmennusvektorit, jaettuna tiedostoina SGP4-VER.TLE (testi-TLE:t (kaksirivisten elementtien joukot)) ja tcppver.out (odotettu TEME (true equator, mean equinox) -tila kullakin ajanhetkellä). Tämä on sama vertailu, jota vasten julkiset C++/Python/MATLAB-toteutukset validoidaan, joten sopivuus tässä on sopivuutta de facto -standardin kanssa.

Tulos#

Suure Arvo
Verratut vertailutilat 666 (kaikki tiedoston tcppver.out rivit, lukittu testissä)
Pahin paikkavirhe 4,12 mm (4.120e-6 km, satelliitti 23333; toleranssi: < 2e-5 km)
Pahin nopeusvirhe 1.85e-9 km/s (satelliitti 23333; toleranssi: < 1e-6 km/s)
Katetut tapaukset lähellä Maata oleva SGP4, syvän avaruuden SDP4 (kuu-aurinko + 12 h/24 h resonanssi) ja tarkoituksenmukaiset virhekooditapaukset

Syvän avaruuden ja resonanssitapaukset ovat tärkeitä nimenomaan tälle projektille: GNSS-satelliitit (maailmanlaajuinen satelliittinavigointijärjestelmä) ovat ~12 h radoilla, jotka ovat syvän avaruuden ja resonanttisia, mitä kahden kappaleen + J2-sekulaarinen malli ei voi toistaa — SGP4/SDP4 voi.

Menetelmä#

  • Toteutus (src/sgp4.rs) on riippuvuudeton Rust-portti public domain -Vallado-algoritmista; epookin käsittely on päiviä vuodesta 1950, käytössä on tila improved (ei afspc), ja WGS-72 (WGS: World Geodetic System) -painovoimavakiot sovelletaan, kuten vertailu määrää.
  • Testi (tests/sgp4_verification.rs) jäsentää mukana toimitetut fikstuurit SGP4-VER.TLE ja tcppver.out (tests/fixtures/sgp4/), propagoi jokaisen testisatelliitin jokaiseen vertailuhetkeen ja varmistaa, että TEME-paikka ja -nopeus täsmäävät yllä olevissa toleransseissa. Vertailtujen rivien lukumäärä on lukittu täsmälleen arvoon 666, jotta fikstuurin tai ohituskäyttäytymisen regressio ei voi hiljaa vähentää kattavuutta.

Toista se#

cargo test --test sgp4_verification -- --nocapture

Testi tulostaa vertailtujen rivien lukumäärän sekä pahimman paikka- ja nopeusvirheen. Fikstuurit on tallennettu versionhallintaan, joten tarkistus on täysin offline-tilassa ja deterministinen.

Riippumaton ristiintarkistus pakettia sgp4 vasten#

Julkaistun vertailun täsmääminen todistaa oikeellisuuden taulukkoa vasten. Jotta oikeellisuus voidaan todistaa myös riippumatonta toteutusta vasten, tests/sgp4_crate_comparison.rs ajaa laajasti käytetyn riippumattoman Rust-SGP4-kirjaston, paketin (crate) sgp4 (neuromorphicsystems/sgp4, versio 2,4), samoilla 666 AIAA-vektorilla ja vertaa kahta koodikantaa suoraan keskenään. Molempia ajetaan WGS72-painovoimamallilla (World Geodetic System 1972), jossa vektorit on määritelty (paketin oletus from_elements käyttää WGS84:ää (World Geodetic System 1984), joka poikkeaa WGS72-vertailusta ~km:n verran — mallinnusvalinta, joka tuodaan rehellisesti esiin, ei virhe).

Rata-alue kshana ↔ vertailu crate ↔ vertailu kshana ↔ crate
lähellä Maata (LEO/MEO (LEO: matala Maan kiertorata; MEO: keskikorkea Maan kiertorata)) 7.3e-9 km 7.3e-9 km 4.4e-10 km
syvä avaruus (ei-resonantti) 4.1e-6 km 2.1e-7 km 4.1e-6 km
syvän avaruuden resonanssi (½ vrk) 8.1e-9 km 7.7e-9 km 2.2e-9 km
syvän avaruuden resonanssi (1 vrk) 8.2e-9 km 7.8e-9 km 2.2e-9 km

Kaksi riippumatonta toteutusta täsmäävät alle mikrometrin tarkkuudella lähellä Maata olevilla ja resonanttisilla radoilla ja 4,12 mm pahimmillaan kaikilla rata-alueilla — sama 4,12 mm, joka on Kshana-ohjelmiston oma poikkeama vertailusta, eli ero on se yksi syvän avaruuden tapaus, ja paketti (crate) sijoittuu Kshana-ohjelmiston ja taulukon väliin. Koko taulukko (rata-aluekohtaisine rivimäärineen ja neljine patologisine tapauksineen, jotka paketti hylkää rakennusvaiheessa) on tallennettu tiedostoon tests/fixtures/sgp4_comparison.md ja generoidaan uudelleen komennolla KSHANA_REGEN_FIXTURES=1 cargo test --test sgp4_crate_comparison.

Tämän tuloksen ”julkaisemisen” tila#

Ristiinvalidointi itsessään on valmis ja repositoriossa. Tuloksen lähettäminen ulkoisille foorumeille (yhteisön luettelo, lyhyt huomautus, DOI-arkistoitu (DOI: digital object identifier) tallenne) on ylläpitäjän toimi, jota seurataan erikseen tiekartalla; tämä asiakirja on repositorion sisäinen tallenne, johon nuo lähetykset viittaisivat.