Tłumaczenie maszynowe, niezweryfikowane przez osobę, dla której polski jest językiem ojczystym. Wzorcem jest wersja angielska.

Strony rodzajów scenariuszyEdytuj na GitHubieŹródło: docs/kinds/by-kind/leo-navmsg.md

leo-navmsg (rodzaj scenariusza)

Rodzaj scenariusza silnika v0.40.0, rodzina Nawigacja z niskiej orbity okołoziemskiej. Wyłącznie doradczo: wynik analizy z narzędzia badawczo-inżynieryjnego; nie jest to sprzęt nawigacyjny z zatwierdzeniem typu ani usługa bezpieczeństwa życia. Każda etykieta tutaj pochodzi z silnika lub z macierzy weryfikacji; rodzaj jest MODELLED, chyba że macierz stanowi inaczej (jak zdobywa się etykietę: sekcja Evidence w README).

Co robi#

Komunikat nawigacyjny LEO: rozgłaszane efemerydy i zegar satelity pozycjonowania, nawigacji i czasu na niskiej orbicie okołoziemskiej (LEO), dla dowolnej orbity, nośnej i modelu, z opcjonalnymi nazwanymi ustawieniami wstępnymi (Xona Pulsar, Iridium, Starlink, CentiSpace, reprezentatywny system pasma C, model zerowego zegara ATOMIC, Celeste IOD). ZAWARTOŚĆ: dane pomocnicze (SVID, numer wydania danych, pasmo, stan sygnału), synchronizacja (tydzień, czas tygodnia, wielomian zegara drugiego rzędu af0-af2 względem toc), efemerydy w jednym z czterech modeli -- 16-parametrowy zestaw keplerowski z Galileo OS SIS ICD; ten zestaw plus wielomiany poprawek wzdłuż toru, w poprzek toru i radialnych; 22-parametrowy model Liu et al. 2025; wielomian ECEF bez składników zegara (zerowy zegar ATOMIC) -- oraz inne usługi (rozgłaszany zestaw Klobuchara, NeQuick-G ai0-ai2 z efektywnym poziomem jonizacji oraz parametry czasu systemowego do UTC z logiką sekund przestępnych z ICD). DOPASOWANIE: orbita prawdziwa całkowana z grawitacją zonalną J2-J6 lub EGM2008 do wybranego stopnia i oporem oraz zegar swobodny lub sterowany z ziarnem (seed); dopasowanie zestawu keplerowskiego metodą Levenberga–Marquardta na elementach niesingularnych, następnie liniowe wielomiany poprawek metodą najmniejszych kwadratów; zegar dopasowany po odjęciu składnika relatywistycznego, który dodaje użytkownik. ANALIZY: fit-interval-trade (błąd odległości sygnału w przestrzeni, SISRE, ze średnimi globalnymi wagami dla wysokości orbity, w funkcji przedziału dopasowania i okresu aktualizacji, tylko orbita i z zegarem), model-comparison (cztery modele, liczba parametrów, zakodowane bity oraz dopasowanie Kshana na wysokościach z Liu et al. obok opublikowanych wartości), midpass-update (najwyższy przelot nad użytkownikiem, skok położenia, zegara i odległości użytkownika przy każdej zmianie komunikatu, skok przy najgorszej geometrii, PASS/FAIL względem progu ciągłości), encode-decode (własna udokumentowana ramka binarna Kshana z CRC-24Q, budżet kwantyzacji pół kroku dla każdego pola, kontrola uszkodzonej ramki, eksport i import rekordu w stylu RINEX-4 oznaczony jako rozszerzenie Kshana oraz tabela CSV). VALIDATED: wagi SISRE względem opublikowanej tabeli MEO/GEO (Montenbruck et al. 2018); algorytm użytkownika Galileo względem RTKLIB na rzeczywistych rozgłaszanych efemerydach Galileo; CRC-24Q względem jego katalogowej wartości kontrolnej i przykładowej ramki RTCM 1005. MODELLED: każda wartość dopasowania i SISRE jest błędem reprezentacji względem prawdy całkowanej przez Kshana (bez błędu wyznaczania ani predykcji orbity); porównanie z Liu et al. używa innych orbit; formaty kodowania i tekstowe są własne Kshana.

Jeden przebieg scenarios/leo-navmsg-celeste-iod.toml podsumowuje się tak: LEO navigation message — 510 km, 97,4 deg, gravity degree 20, model kepler-rac SISRE weights: w_R 0,459, w_AC^2 1/2.53 (mask 0 deg) encode-decode: kepler-rac model, frame 152 bytes (1156 payload bits, 891 ephemeris+clock bits), CRC-24Q 0x58ADF2 quantisation: largest position change 0,52 mm, clock 0,09 mm; SISRE exact 0,0013 m, quantised 0,0013 m corrupted frame rejected: true; RINEX round trip 4.43e-6 m; CSV round trip 0.00e0 m fit-interval trade over 1800 s (usage period = fit interval): kepler16 60 s SISRE orbit RMS 0,0003 m max 0,0015 m with clock RMS 0,0006 m kepler16 120 s SISRE orbit RMS 0,0003 m max 0,0015 m with clock RMS 0,0007 m kepler16 300 s SISRE orbit RMS 0,0036 m max 0,0141 m with clock RMS 0,0037 m kepler16 600 s SISRE orbit RMS 0,0293 m max 0,1023 m with clock RMS 0,0293 m kepler16 900 s SISRE orbit RMS 0,1073 m max 0,3812 m with clock RMS 0,1075 m kepler-rac 60 s SISRE orbit RMS 0,0000 m max 0,0000 m with clock RMS 0,0005 m kepler-rac 120 s SISRE orbit RMS 0,0001 m max 0,0002 m with clock RMS 0,0007 m kepler-rac 300 s SISRE orbit RMS 0,0005 m max 0,0021 m with clock RMS 0,0012 m kepler-rac 600 s SISRE orbit RMS 0,0097 m max 0,0395 m with clock RMS 0,0096 m kepler-rac 900 s SISRE orbit RMS 0,0388 m max 0,1143 m with clock RMS 0,0390 m 16-parametrowy zestaw keplerowski pogarsza się z 0,0003 m przy 60 s do 0,1073 m przy 900 s: jeden zestaw keplerowski z harmonicznymi dwa razy na obieg nie potrafi śledzić wyższoczęstotliwościowych składników grawitacji i oporu łuku LEO dłużej niż kilka minut, a jego reszta metody najmniejszych kwadratów oscyluje w oknie. Wielomiany wzdłuż/w poprzek/radialne, wyższego stopnia niż obejmuje zestaw keplerowski, pochłaniają to, co zostaje, dając 0,0388 m przy 900 s.

Wejścia#

Ze schematu (kshana kinds --json):

  • Pola wymagane: brak
  • Pola opcjonalne: name, description, seed, analysis, preset, orbit, clock, message, trade, comparison, midpass

Przykład scenarios/leo-navmsg-celeste-iod.toml ustawia między innymi:

Pole Wartość Jednostka
analysis [encode-decode, fit-interval-trade] nie podano
kind leo-navmsg tekst
message.csv_schema celeste-iod tekst
name Komunikat Celeste IOD (ustawienie wstępne warsztatowe) tekst
preset celeste-iod tekst
seed 15 nie podano
trade.fit_intervals_s [60, 120, 300, 600, 900] s
trade.models [kepler16, kepler-rac] nie podano
trade.span_s 1800 s
trade.update_fit_interval_s 300 s
trade.update_periods_s [60, 150, 300] s

Uruchom#

kshana scenarios/leo-navmsg-celeste-iod.toml

Ten rodzaj stosuje 5 dołączonych scenariuszy; pozostałe są w scenarios/.

Co daje#

Wyniki skalarne tego przebiegu, z jednostkami podanymi przez silnik:

Wynik Wartość Jednostka
encode_decode.corrupted_frame_rejected true flaga
encode_decode.crc24q 0x58ADF2 tekst
encode_decode.crc24q_check_value_123456789 0xCDE703 tekst
encode_decode.csv_round_trip_max_pos_m 0 m
encode_decode.csv_schema celeste-iod tekst
encode_decode.ephemeris_clock_bits 891 bit
encode_decode.frame_bytes 152 byte
encode_decode.model kepler-rac tekst
encode_decode.payload_bits 1156 bit
encode_decode.quantised_max_clock_m 9.4929e-5 m

Etykieta wyniku (silnika): MIXED — elementy składowe VALIDATED, wyniki MODELLED. Wagi SISRE odtwarzają opublikowaną tabelę MEO/GEO (Montenbruck et al. 2018), algorytm użytkownika z ICD Galileo odtwarza RTKLIB na rzeczywistych rozgłaszanych efemerydach Galileo, a CRC-24Q odtwarza swoją katalogową wartość kontrolną i przykładową ramkę RTCM 1005

Wykres zapisany przez silnik dla scenarios/leo-navmsg-celeste-iod.toml, rodzaj leo-navmsg

Dowody#

MODELLED 5 · VALIDATED 6: wiersze macierzy weryfikacji, które wymieniają ten rodzaj.

  • VALIDATED leo_navmsg::sisre::sisre_weights: waga radialna w_R i kwadrat wagi poprzecznej w_AC^2 jako średnie z cos^2 i połowy sin^2 kąta nadirowego linii widzenia po użytkownikach rozłożonych równomiernie na widocznej czaszy Ziemi powyżej elevati
  • VALIDATED leo_navmsg::elements::kepler_point: wyznaczanie keplerowskie z Galileo OS SIS ICD (równanie Keplera, poprawki drugiej harmonicznej, węzeł związany z Ziemią) napisane osobno od ewaluatora RINEX silnika, zwracające położenie z argumentem Testy: leo_navmsg_reference.rs.
  • VALIDATED leo_navmsg::codec::crc24q: wielomian generujący 0x1864CFB, wartość początkowa 0, bez odbicia, bez końcowego XOR, kontrola, którą ramka LEO Kshana niesie nad każdym poprzedzającym bajtem
  • VALIDATED Dopasowanie i przegląd rodzaju leo-navmsg: orbita prawdziwa całkowana z grawitacją zonalną J2-J6 lub EGM2008 do wybranego stopnia i oporem oraz zegar swobodny lub sterowany z ziarnem (seed); dopasowanie Levenberga–Marquardta zestawu keplerowskiego Galileo na niesingularnych
  • oraz 7 kolejnych w macierzy.

Wiersze, które sam przebieg wykorzystał, wraz z wyrocznią, jaką macierz podaje dla każdego (publiczne źródła są tam wymienione):

  • MODELLED Deterministyczne, haszowane na poziomie scenariusza, bramki SBOM i złotych wyników między platformami. Wyrocznia (ExternalDataset): zgodność SBOM z oficjalnym schematem JSON CycloneDX 1,5 (+ prawidłowe identyfikatory SPDX): zewnętrzny opublikowany standard, zero błędów walidacji w całym grafie zależności; część dotycząca determinizmu wskaźników jakości i odtwarzalności bajt w bajt pozostaje przypiętą kontrolą samospójności, więc wiersz pozostaje MODELLED
  • VALIDATED leo_navmsg::sisre::sisre_weights: waga radialna w_R i kwadrat wagi poprzecznej w_AC^2 jako średnie z cos^2 i połowy sin^2 kąta nadirowego linii widzenia. Wyrocznia (ExternalDataset): opublikowana tabela współczynników wagowych SISRE z Montenbruck, Steigenberger i Hauschild (2018), Multi-GNSS signal-in-space range error assessment - Methodology and results, Advances in Space Research 61(12):3020-3038, doi 10.1016/j.asr.2018.03.041: GPS 0,98 i 1/49, GLONASS 0,98 i 1/45, Galileo 0,98 i 1/61, BeiDou MEO 0,98 i 1/54, BeiDou IGSO/GEO 0,99 i 1/126. Ta sama średnia obliczona dla promieni LEO daje
  • VALIDATED leo_navmsg::elements::kepler_point: wyznaczanie keplerowskie z Galileo OS SIS ICD (równanie Keplera, poprawki drugiej harmonicznej, węzeł związany z Ziemią) napisane osobno. Wyrocznia (ExternalDataset): pozycje ECEF z RTKLIB 2.4.2-p13 eph2pos (niezależna implementacja tego samego algorytmu z ICD) dla rzeczywistych rekordów rozgłaszanych BKG/IGS z 2024-09-10, oba zatwierdzone z pochodzeniem w tests/fixtures/rinex_sp3_interop (NOTICE, rinex_ecef_reference.txt, brdc_multignss_slice.rnx). To potwierdza algorytm użytkownika keplerowski; poprawki wzdłuż/w poprzek/radialne dodane na wierzchu mają własne wiersze, a składniki Liu b
  • VALIDATED leo_navmsg::codec::crc24q: wielomian generujący 0x1864CFB, wartość początkowa 0, bez odbicia, bez końcowego XOR, kontrola, którą ramka LEO Kshana niesie nad każdym poprzedz. Wyrocznia (ExternalDataset): katalogowa wartość kontrolna CRC dla tych parametrów (katalog CRC reveng.sourceforge.io, CRC-24/LTE-A: szerokość 24, poly 0x864CFB, init 0, check 0xCDE703), które są parametrami CRC-24Q z RTCM 10403 i Galileo OS SIS ICD, oraz przykładowa ramka typu komunikatu 1005 wydrukowana w RTCM 10403
  • VALIDATED Dopasowanie i przegląd rodzaju leo-navmsg: orbita prawdziwa całkowana z grawitacją zonalną J2-J6 lub EGM2008 do wybranego stopnia i oporem oraz zegar swobodny lub ster. Wyrocznia (ExternalDataset): rzeczywiste precyzyjne orbity naukowe jako prawda (operacyjne orbity redukowanej dynamiki TU Graz IfG/ITSG, do dowolnego użytku z podaniem źródła; wartości SHA-256 w NOTICE fixtury) dopasowane zestawem 16-parametrowym na łukach 20 i 30 min, względem statystyk, które Liu et al. 2025 (Remote Sensing 17(16):2894, CC BY 4,0) publikują dla tych samych satelitów i dni: RMS wzdłuż, w poprzek i radialnie, każdy w granicach 1.5x (zmierzone 0,804 do 1,087), SISR

Ograniczenia#

Co raport samego przebiegu podaje jako niemodelowane lub niesprawdzone względem niezależnego wzorca:

  • SISRE jest błędem reprezentacji komunikatu względem prawdy, do której go dopasowano; błąd wyznaczania orbity i błąd predykcji orbity nie są modelowane. (wynik limitations[0])
  • Orbita prawdziwa jest numerycznym całkowaniem Kshana (grawitacja zonalna lub EGM2008, statyczny opór wykładniczy), a nie precyzyjną orbitą rzeczywistego satelity; bez ciała trzeciego, ciśnienia promieniowania słonecznego ani pływów. (wynik limitations[1])
  • Format binarny to własne udokumentowane kodowanie Kshana wzorowane na opublikowanych składnikach komunikatów; nie jest to układ bitów Celeste ani żadnego innego systemu (żaden nie jest publiczny). (wynik limitations[2])
  • Blok w stylu RINEX jest udokumentowanym rozszerzeniem Kshana; RINEX 4,02 nie definiuje rekordów nawigacyjnych LEO. (wynik limitations[3])
  • Współczynniki NeQuick-G są przenoszone, a efektywny poziom jonizacji jest obliczany, ale całkowanie gęstości elektronowej NeQuick, które zamienia go w opóźnienie, nie jest zaimplementowane; opóźnienie Klobuchara jest, skalowane do nośnej przez 1/f^2 bez korekty dla satelity lecącego wewnątrz jonosfery. (wynik limitations[4])
  • Składniki 22-parametrowe Liu et al. 2025 podążają za algorytmem użytkownika z artykułu (równ. 1-7) i strategią dopasowania (sekcja 2,3); jego wartości SISRE w funkcji wysokości używały rzeczywistych precyzyjnych orbit, więc to porównanie na orbicie całkowanej przez Kshana jest MODELLED, nie VALIDATED (porównanie na rzeczywistej orbicie to tests/leo_navmsg_fit_real_orbit_oracle.rs). (wynik limitations[5])
  • MIXED — elementy składowe VALIDATED, wyniki MODELLED. Wagi SISRE odtwarzają opublikowaną tabelę MEO/GEO (Montenbruck et al. 2018), algorytm użytkownika z ICD Galileo odtwarza RTKLIB na rzeczywistych rozgłaszanych efemerydach Galileo, a CRC-24Q odtwarza swoją katalogową wartość kontrolną i przykładową ramkę RTCM 1005. Każda wartość dopasowania, SISRE, ciągłości i kwantyzacji jest MODELLED: błąd reprezentacji komunikatu względem (wynik label)
  • MODELLED: każda wartość dopasowania i SISRE jest błędem reprezentacji względem prawdy całkowanej przez Kshana (bez błędu wyznaczania ani predykcji orbity); Liu et al. (katalog rodzajów (kshana kinds --json))

Zobacz też#