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

Na początekEdytuj na GitHubieŹródło: README.md

Kshana: znak, celownik kompasu wyznaczający precyzyjny moment, obok logotypu słownego kshanaKshana: znak, celownik kompasu wyznaczający precyzyjny moment, obok logotypu słownego kshana

Kshana · क्षण · precyzyjna chwila
Otwartoźródłowy symulator odporności PNT (pozycjonowanie, nawigacja i czas).

Stan ciągłej integracji na main Pokrycie linii około 95 % w src/, zmierzone w docs/COVERAGE.md i z progiem 85 % w ciągłej integracji 176 z 401 możliwości VALIDATED względem niezależnej wyroczni zewnętrznej, według macierzy weryfikacji Stan bramki jakości SonarQube Cloud Wydanie v0.40.0 Licencja: AGPL-3.0-only
DOI 10.5281/zenodo.20528627, rekord koncepcyjny Zenodo każdego wydania Licencja komercyjna jest dostępna od Ashforde® OÜ, zob. Wydania kshana na crates.io, aktualna opublikowana wersja kshana na PyPI, aktualna opublikowana wersja kshana na npm, aktualna opublikowana wersja

Otwórz Kshana Studio · Instalacja · Możliwości · Dowody · Badania · Dokumentacja · Cytowanie

Przećwicz minutę, w której GNSS gaśnie. Konsola misji Kshana, narysowana na podstawie prawdziwego przebiegu silnika v0.40.0: połączona kampania campaign-jam-spoof-holdover-integrity (ziarno 20260928, 6 faz, 18 przebiegów składowych w T+01:16:10) oraz 102 satelitów GPS, Galileo, BeiDou i GLONASS z constellation-multi-gnss-coverage, każdy narysowany na kołowej orbicie dwóch ciał odtworzonej ze śladu naziemnego silnika, z promieniami skompresowanymi na potrzeby wyświetlania. Błąd czasu zegara osiąga szczyt 62,7 ns wobec strażnika 50 ns, stosunek nośnej do szumu spada do -12.2 dB-Hz wobec dolnej granicy 25 dB-Hz, a pionowy poziom ochrony sięga 135,4 m wobec limitu alarmu 50 m.Przećwicz minutę, w której GNSS gaśnie. Konsola misji Kshana, narysowana na podstawie prawdziwego przebiegu silnika v0.40.0: połączona kampania campaign-jam-spoof-holdover-integrity (ziarno 20260928, 6 faz, 18 przebiegów składowych w T+01:16:10) oraz 102 satelitów GPS, Galileo, BeiDou i GLONASS z constellation-multi-gnss-coverage, każdy narysowany na kołowej orbicie dwóch ciał odtworzonej ze śladu naziemnego silnika, z promieniami skompresowanymi na potrzeby wyświetlania. Błąd czasu zegara osiąga szczyt 62,7 ns wobec strażnika 50 ns, stosunek nośnej do szumu spada do -12.2 dB-Hz wobec dolnej granicy 25 dB-Hz, a pionowy poziom ochrony sięga 135,4 m wobec limitu alarmu 50 m.
Spis treści

Przećwicz minutę, w której GNSS gaśnie#

Kshana odtwarza zagłuszanie, spoofing i holdover zegara, gdy zawodzą sygnały GNSS (globalnego systemu nawigacji satelitarnej), i mówi, jak długo system utrzymuje czas i pozycję w granicach budżetu oraz który zegar lub czujnik daje największy zapas. To jeden silnik w Rust. Działa w terminalu, notatniku, IDE (zintegrowanym środowisku programistycznym), asystencie AI (sztucznej inteligencji) lub w przeglądarce.

Każdy przebieg jest odtwarzalny co do bitu na podstawie scenariusza, ziarna (seed) i wersji silnika. Każda możliwość nosi jedną z trzech etykiet w sprawdzanym maszynowo rejestrze (ledger): VALIDATED (niezależna zewnętrzna wyrocznia się zgadza), MODELLED (wewnętrznie spójne i powiedziane wprost) lub PARTNER (odpowiada za to partner sprzętowy).

Stan: v0.40.0. Sprawdzone względem niezależnych wzorców, odtwarzalne podłoże symulacyjne dla odporności PNT. Czas i holdover idą na pierwszym miejscu, ponieważ ta dziedzina jest najlepiej sprawdzona. Kshana jest narzędziem badawczym i do analizy kompromisów: nie jest sprzętowym generatorem sygnału radiowego (RF) (nie steruje żadnym radiem i niczego nie nadaje; jego wynikiem na poziomie sygnału są pliki próbek IQ w paśmie podstawowym dla odbiorników programowych), nie jest sprzętowym ani certyfikowanym odbiornikiem GNSS (jego odbiornik programowy jest narzędziem analitycznym) i nie jest produktem lotniczym. Nowy w tej dziedzinie? Zacznij od wprowadzenia prostym językiem i słownika.

Co nowego w 0,40#

0,40 dodaje budżet błędu na poziomie misji, oznacza każdą wartość i tabelę jej poziomem dowodowym, odczytuje zmierzone dzienniki zegara, sprawdza zgłoszenia partnerów danych, szacuje, gdzie może znajdować się emiter zakłóceń, i mówi w siedemnastu językach obok angielskiego. Rejestr ma teraz 401 wierszy: 176 VALIDATED, 221 MODELLED, 4 PARTNER. Żaden wiersz nie został awansowany do VALIDATED, a każde niespełnienie poniżej jest przypięte przez test.

  • Wątek misji. Rodzaj mission-thread łączy fazy od startu do wejścia w atmosferę (launch-ascent, leo-rendezvous, tli-and-cruise, entry i cztery rodzaje księżycowe) z podanymi zasadami przekazania, marginesem względem podanych wymagań i najsłabszym ogniwem; kompletny przykład klasy Artemis w 11 fazach (segmenty ziemski i księżycowy), łącznie 92 rodzajów scenariuszy. Każda liczba jest MODELLED. Propagacja cislunarna względem publicznej trajektorii Artemis I nie osiąga progu zarejestrowanego wstępnie (45,3 km i 0,25 m/s wobec 5 km i 0,05 m/s; przyczyną są małe manewry, których model nie uwzględnia), a propagator księżycowy względem orbity CAPSTONE nie osiąga (136,8 km wobec 25 km pod koniec jednego obiegu); porównanie z LRO jest osiągnięte. Wiersze pozostają MODELLED (Wątek misji, segment księżycowy). W Studio wątek odczytuje się pod adresem /studio/mission-thread/.
  • Etykiety dowodowe. Każda wartość i tabela zapisywana przez przebieg niesie poziom i identyfikatory wierszy rejestru, na których się opiera, odczytane z macierzy.
  • Zmierzone zegary. Odczytywanych jest osiem formatów dzienników zegara (docs/CLOCK-LOG-FORMATS.md), a dopasowana seria może sterować holdover. Względem progów zarejestrowanych wstępnie dopasowanie nie osiąga F1(a) w pięciu z sześciu zapisów i F2 w jednym; oba pozostają MODELLED (Dziennik zmian).
  • Partnerzy danych. kshana partner check sprawdza format zgłoszenia i niczego nie ocenia (docs/PARTNER-DATA.md).
  • Obszar emitera. kshana interference-map locate podaje obszar i elipsę, nigdy goły punkt, na podstawie raportów ADS-B lub AIS. Porównanie przeprowadzone raz z lokalizacjami nadajników Jammertest 2025 daje wynik NOT ASSESSABLE dla obu źródeł (zbyt mało zaplanowanych sesji w otwartych danych), więc wiersz pozostaje MODELLED (Mapa zakłóceń).
  • Benchmark. Ponowna kampania 0,40 osiąga A3, D3 (oba EXPLORATORY), R3 i R4; A2, D1 i R1 pozostają NOT MET (Bench).
  • Języki. nl, pl, pt-BR, pt-PT, fi, sv, da, nb, cs, uk, ru, de, fr, es, et, ja i zh-Hans, jako tłumaczenia maszynowe, których nie zweryfikował żaden rodzimy użytkownik języka; wzorcem jest angielski, a przebiegi w językach innych niż angielski trwają około dwa razy dłużej (docs/i18n.md).

Co nowego w 0,39#

0,39 nie dodaje żadnej funkcji i nie zmienia żadnego wyniku; wynik silnika jest wynikiem 0,38. Poprawia jedną rzecz w wierszu poleceń, aktualizuje zależności narzędzi walidacji krzyżowej i podaje w całości werdykty benchmarku.

  • Wiersz poleceń. kshana kinds | head (każde zamknięte standardowe wyjście) już nie powoduje paniki: program kończy się cicho ze statusem 141, jak robią to inne narzędzia przy zamkniętym potoku. Inne błędy zapisu nadal się zgłaszają.
  • Dependencies. memmap2 0.9.11 w dwóch blokadach kontroli krzyżowej ANISE oraz pillow 13.0.0 i certifi 2026.10.19 w przypięciach środowiska wyroczni, wszystko w xval/: nic, co jest dostarczane, się nie zmieniło.
  • kshana-bench, wszystkie werdykty. Względem wstępnie zarejestrowanych progów trzy są NOT MET, każdy przypięty testem: A2 (agc_k_sigma AUC 0,766 wobec co najmniej 0,80), D1 (największa różnica 0,0301) i zadanie (b) R1 (przeniesione, nie uruchomione ponownie). Żaden próg nie został poluzowany (Bench).

Co nowego w 0,38#

0,38 sprawia, że neutralnego sędziego można zmierzyć: ocenia dzienniki odbiorników względem opublikowanego harmonogramu testów, czyta więcej odbiorników i czujników, testuje systemy czasu oraz dostarcza benchmark i obserwatorium zakłóceń. Pozostaje doradcze: nic tu nie jest certyfikowane, żaden wynik nie jest zatwierdzeniem typu i nic nie nadaje. Każdy wiersz podaje, co dla niego zawiera rejestr (ledger) (jak zdobywa się etykietę); status nazywa tylko to, co sprawdzono, a wiersz rejestru i strona, do której prowadzi link, mówią, czego nie sprawdzono.

Nowe w 0,38 Co to robi i dlaczego Status w rejestrze (ledger) Odczytywane
Ocena jammertest kshana jammertest import czyta opublikowany katalog testów NPRA i plan transmisji jako zaplanowaną prawdę; jammertest score ocenia dziennik odbiornika dla każdego testu (opóźnienie detekcji, niewykryte zdarzenia, fałszywe alarmy, czas do powrotu), jako podpisany pakiet dowodowy, jeśli podasz klucz MODELLED: jeden wiersz rejestru. Progi zostały wstępnie zarejestrowane przed jakimkolwiek ocenianym przebiegiem; na danych JammerTest 2024 reguła minimum danych nie została spełniona w obu przebiegach (4 i 7 ocenialnych okien wobec wymaganych 10), więc żaden próg nie jest oceniany i niczego się nie twierdzi Jammertest
Własne flagi odbiornika UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG i NovAtel RXSTATUS wczytane do self_report dla każdej epoki i porównane z alarmami Kshana (oba, tylko odbiornik, tylko Kshana, żaden); czytnik Septentrio SBF i wejście --serial tylko do odczytu MODELLED; zgodność między detektorem odbiornika a detektorem Kshana nie jest walidacją Zaufanie do odbiornika
Więcej odbiorników i czujników RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0 (z tablic pyrtcm na licencji BSD, a nie z tekstu RTCM), strumienie monitora GNSS-SDR, dziennik IMU jako drugi czujnik, pakiet ROS 2, most gnss_lib_py i imu-fit dla parametrów czujników hybrydowych MODELLED: sześć wierszy rejestru; tylko samodzielnie napisane dane testowe, nie wczytano żadnego zapisu z prawdziwego odbiornika, IMU, przebiegu GNSS-SDR ani grafu ROS Dane wejściowe z maszyn
Testy czasu i holdover rodzaj holdover-test ocenia test holdover (GNSS odłączony przez operatora, holdover, powrót) na podstawie zmierzonego zapisu błędu czasu względem masek ITU-T, „zmierzono względem maski”; czytniki dzienników linuxptp i chrony; etapy sprzętowe i pole lab-attestation MODELLED: dwa wiersze rejestru; czasy są oświadczeniem operatora, niezweryfikowanym HIL czasu, Bezpieczeństwo sprzętu
Pakiety norm, LunaNet AFS, pełna pętla laboratoryjna ocenione pakiety dla DHS RPCF, IMO MSC.1/Circ.1575 i ICAO Doc 9849 Appendix F względem progów podanych przed przebiegiem, „dostarcza dowodów na (supports evidence for)”; tabela odpowiedniości NIST IR 8323r1; generator i weryfikator kodów LunaNet AFS; podpisany pakiet, który łączy scenariusz przebiegu laboratoryjnego, warunki testu, dziennik odbiornika i ocenę MODELLED dla pakietów i pełnej pętli; sprawdzenie kodów AFS jest VALIDATED względem drukowanych kolumn kontrolnych (zob. wiersze rejestru) Normy, LunaNet AFS
kshana-bench i obserwatorium stałe zadania, podziały i metryki dla detekcji zakłóceń, detekcji IQ, przewidywania holdover i luki optymizmu, z zapieczętowanym zbiorem holdout i statyczną tabelą wyników; odtwarzalny dobowy produkt zakłóceń z opóźnieniem 24 h, grubymi komórkami i bez przypisywania przyczyny brak własnego wiersza w rejestrze: ocenia zgłoszenia, a jego punkty odniesienia są w plikach wyników oznaczone jako MODELLED; względem wstępnie zarejestrowanych progów ocena, C1 do C3 i D2 są spełnione, a trzy progi są NOT MET (przypięte testami): A2 (agc_k_sigma AUC 0,766 wobec co najmniej 0,80 na zbiorze testowym), D1 (największa różnica 0,0301) i zadanie (b) R1 (przeniesione, nie uruchomione ponownie); zob. xval/bench/RESULTS-v2.md Bench, Obserwatorium
Eksportery telemetria zaufania jako komunikaty wykrywania i stanu Home Assistant MQTT (tylko publikowanie, bez poświadczeń) obok Prometheus, CEF, LEEF i OTLP MODELLED: jeden wiersz rejestru Telemetria zaufania
Zapas łącza optycznego w funkcji czasu rodzaj optical-atmosphere może zapisać jedną realizację z ziarnem (seed) pogody stanowiska jako szereg zapasu łącza MODELLED: jeden wiersz rejestru; jedno losowanie z modelu, a nie klimat Atmosfera optyczna

Najważniejsze zmiany 0,37: dziennik zmian. Pełna lista 0,38 jest w dzienniku zmian.

0,38 szczegółowo#

Każda możliwość z tabeli powyżej w kilku wierszach: co robi, jedno polecenie, które ją uruchamia, jeden obraz narysowany z prawdziwego przebiegu silnika i co zawiera dla niej rejestr (ledger). Obrazy zapisuje tools/gen_figures_038.py w docs/figures/0.38/ (nigdy nie są rysowane ręcznie): python3 tools/gen_figures_038.py przepisuje je ze zbudowanego silnika, a --check zawodzi, jeśli któryś jest nieaktualny albo jego podpis tutaj się różni. Tam, gdzie wejściem jest dziennik, jest to dziennik zmyślony, który zapisuje skrypt, ponieważ prawdziwe dzienniki osób trzecich nigdy nie są wbudowywane, i podpis o tym mówi. Wszystko poniżej jest doradcze: nie jest certyfikowane, nie jest zatwierdzeniem typu i nic nie nadaje. Status nazywa to, co sprawdzono, i nic więcej; jak zdobywa się etykietę.

Ocena jammertest#

kshana jammertest import zamienia opublikowany katalog testów NPRA i plan transmisji w zaplanowaną prawdę, a kshana jammertest score ocenia względem niej dziennik odbiornika: dla każdego zaplanowanego testu, czy został wykryty, z jakim opóźnieniem i jak długo odbiornik wracał do działania, a także fałszywe alarmy poza każdym slotem. Katalog jest pobierany, nigdy nie jest wbudowywany.

xval/jammertest-plan/fetch.sh ../jammertest-plan
kshana jammertest score session.toml --catalog ../jammertest-plan/testcatalog2025.json \
    --plan ../jammertest-plan/plan-tuesday-2025-09-16.json --location 1 --json
Ocena jednego syntetycznego logu odbiornika względem harmonogramu z trzema testami, z rzeczywistego przebiegu silnika v0.40.0 (`kshana jammertest score`). Log jest zmyślony: 1800 s NMEA ze spadkiem C/N0 o 20 dB w dwóch przedziałach. Harmonogram zawiera trzy sloty; w środkowym slocie w logu nie ma zagłuszarki. Ocena wskazuje 2 z 3 testów wykrytych (mediana opóźnienia 0 s) i 1 niewykryty, przy 0 przebiegach fałszywych alarmów w 0,25 h czystego czasu. Nic tutaj nie mówi o rzeczywistym odbiorniku. Oprogramowanie wyłącznie doradcze, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu (IEC 61108, IEC 61162): za nawigację statku odpowiada nadal operator.Ocena jednego syntetycznego logu odbiornika względem harmonogramu z trzema testami, z rzeczywistego przebiegu silnika v0.40.0 (`kshana jammertest score`). Log jest zmyślony: 1800 s NMEA ze spadkiem C/N0 o 20 dB w dwóch przedziałach. Harmonogram zawiera trzy sloty; w środkowym slocie w logu nie ma zagłuszarki. Ocena wskazuje 2 z 3 testów wykrytych (mediana opóźnienia 0 s) i 1 niewykryty, przy 0 przebiegach fałszywych alarmów w 0,25 h czystego czasu. Nic tutaj nie mówi o rzeczywistym odbiorniku. Oprogramowanie wyłącznie doradcze, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu (IEC 61108, IEC 61162): za nawigację statku odpowiada nadal operator.

Status w rejestrze (ledger): MODELLED. Progi ustalono przed jakimkolwiek ocenianym przebiegiem; na danych JammerTest 2024 reguła minimum danych nie została spełniona w obu przebiegach, więc żaden próg nie jest oceniany i niczego się nie twierdzi. Jammertest.

Własne flagi odbiornika#

UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG i NovAtel RXSTATUS są wczytywane do self_report dla każdej epoki i zestawiane z alarmami Kshana: oba, tylko odbiornik, tylko Kshana albo żaden. Czytnik Septentrio SBF i wejście --serial tylko do odczytu zasilają to samo porównanie. Żadna ze stron nie jest prawdą terenową.

kshana receiver-trust session.toml     # [log] format = "ubx", path = "receiver.ubx"
Własna flaga spoofingu odbiornika zestawiona z alarmami Kshana, z prawdziwego przebiegu silnika v0.40.0 na zmyślonym dzienniku UBX (200 epok przy 1 Hz). C/N0 spada o 20 dB w 80 do 90 s i 120 do 130 s; odbiornik flaguje 120 do 130 s i 160 do 165 s. Spośród 140 epok porównanych po kalibracji w 11 flagowały oba, w 6 tylko odbiornik, w 11 tylko Kshana, a w 112 żaden. Żadna ze stron nie jest prawdą terenową, a zgodność nie jest walidacją. 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.Własna flaga spoofingu odbiornika zestawiona z alarmami Kshana, z prawdziwego przebiegu silnika v0.40.0 na zmyślonym dzienniku UBX (200 epok przy 1 Hz). C/N0 spada o 20 dB w 80 do 90 s i 120 do 130 s; odbiornik flaguje 120 do 130 s i 160 do 165 s. Spośród 140 epok porównanych po kalibracji w 11 flagowały oba, w 6 tylko odbiornik, w 11 tylko Kshana, a w 112 żaden. Żadna ze stron nie jest prawdą terenową, a zgodność nie jest walidacją. 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.

Status w rejestrze (ledger): MODELLED. Zgodność między detektorem odbiornika a detektorem Kshana nie jest walidacją. Zaufanie do odbiornika.

Więcej odbiorników i czujników#

RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0, strumienie monitora GNSS-SDR, dziennik IMU jako drugi czujnik, pakiet ROS 2 i most gnss_lib_py kończą się na tej samej osi czasu zaufania do odbiornika. imu-fit odczytuje parametry czujnika, których potrzebują scenariusze hybrydowe i fuzji, z dziennika nieruchomego IMU, więc scenariusz można uruchomić z czujnikiem, który naprawdę masz.

kshana imu-fit still.csv --format csv --axis x --expected-mean 0 --id bench-imu
Co `kshana imu-fit` odczytuje ze stacjonarnego dziennika IMU, z prawdziwego przebiegu silnika v0.40.0 na wymyślonym dzienniku (20 000 próbek przy 100 Hz, 200 s): błądzenie losowe prędkości akcelerometru q_va = 4.02e-06, błądzenie losowe kąta żyroskopu q_arw = 9e-08, niestabilność biasu 0,00296 oraz wczesne nachylenia Allana (-0.51 i -0.49; około -0.5 tam, gdzie dominuje szum biały). Tabela obok to TOML wypisywany przez polecenie. Estymator jest sprawdzony wyłącznie na dziennikach syntetycznych. 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.Co `kshana imu-fit` odczytuje ze stacjonarnego dziennika IMU, z prawdziwego przebiegu silnika v0.40.0 na wymyślonym dzienniku (20 000 próbek przy 100 Hz, 200 s): błądzenie losowe prędkości akcelerometru q_va = 4.02e-06, błądzenie losowe kąta żyroskopu q_arw = 9e-08, niestabilność biasu 0,00296 oraz wczesne nachylenia Allana (-0.51 i -0.49; około -0.5 tam, gdzie dominuje szum biały). Tabela obok to TOML wypisywany przez polecenie. Estymator jest sprawdzony wyłącznie na dziennikach syntetycznych. 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.

Status w rejestrze (ledger): MODELLED. Tylko samodzielnie napisane dane testowe; nie wczytano żadnego zapisu z prawdziwego odbiornika, IMU, przebiegu GNSS-SDR ani grafu ROS. Wejścia maszynowe.

Testy czasu i holdover#

Rodzaj holdover-test ocenia test holdover (GNSS odłączony przez operatora, holdover, powrót) na podstawie zmierzonego zapisu błędu czasu względem masek ITU-T i mówi o tym tymi słowami: zmierzono względem maski. Zasilają go czytniki dzienników linuxptp i chrony; etapy sprzętowe i pole lab-attestation mówią, kto co oświadczył.

kshana scenarios/holdover-test-example.toml
Test holdover oceniony na podstawie zapisu błędu czasu, z prawdziwego przebiegu silnika v0.40.0 na scenarios/holdover-test-example.toml (601 próbek co 5 s). GNSS jest odłączany przez operatora w 600 s i przywracany w 2400 s; błąd czasu dryfuje do 299 ns na końcu holdover, przekracza budżet 100 ns po 675 s i wraca do pasma 100 ns 70 s po przywróceniu. Werdykty: maski bazowe PASS, maski holdover FAIL, obwiednia holdover FAIL, powrót RECOVERED. Zmierzono względem maski, to nie jest zatwierdzenie. Czasy są oświadczeniem operatora, niezweryfikowanym przez Kshana. 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.Test holdover oceniony na podstawie zapisu błędu czasu, z prawdziwego przebiegu silnika v0.40.0 na scenarios/holdover-test-example.toml (601 próbek co 5 s). GNSS jest odłączany przez operatora w 600 s i przywracany w 2400 s; błąd czasu dryfuje do 299 ns na końcu holdover, przekracza budżet 100 ns po 675 s i wraca do pasma 100 ns 70 s po przywróceniu. Werdykty: maski bazowe PASS, maski holdover FAIL, obwiednia holdover FAIL, powrót RECOVERED. Zmierzono względem maski, to nie jest zatwierdzenie. Czasy są oświadczeniem operatora, niezweryfikowanym przez Kshana. 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.

Status w rejestrze (ledger): MODELLED. Czasy odłączenia i przywrócenia GNSS są oświadczeniem operatora, niezweryfikowanym. HIL czasu, Bezpieczeństwo sprzętu.

Pakiety norm#

Ocenione pakiety dla profili testowych DHS Resilient PNT, IMO MSC.1/Circ.1575 i ICAO Doc 9849 Appendix F, a także tabela odpowiedniości NIST IR 8323r1 w compliance-report. Każdy test uruchamia dołączony scenariusz i porównuje pole wyniku z progiem podanym przed przebiegiem; test, który wymaga dziennika odbiornika, jest wymieniony jako wymagający wejścia, a nie oceniany. Sformułowanie to „dostarcza dowodów na (supports evidence for)”.

kshana standards-pack list
kshana standards-pack run imo-circ-1575
Każdy test trzech ocenianych pakietów norm, z rzeczywistych przebiegów silnika v0.40.0 (`kshana standards-pack run`): dhs-rpcf: 6 spełnionych, 1 niespełniony, 2 wymagają danych wejściowych; imo-circ-1575: 1 spełniony, 4 niespełnione, 2 wymagają danych wejściowych; icao-doc9849-appf: 6 spełnionych, 0 niespełnionych, 2 wymagają danych wejściowych. Łącznie 13 spełnionych, 5 niespełnionych i 6 wymaga danych wejściowych, których silnik nie ma (dziennika odbiornika lub dokumentacji sprzętu). Każdy próg ustalono przed przebiegiem; niespełniony próg pozostaje niespełniony. Spełniony próg oznacza, że modelowany scenariusz spełnił podany próg, i nic nie mówi o produkcie. Pakiety dostarczają dowodów dla cytowanych wierszy; nie są oceną. 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; nie może być jedyną podstawą żadnej decyzji nawigacyjnej ani dotyczącej bezpieczeństwa.Każdy test trzech ocenianych pakietów norm, z rzeczywistych przebiegów silnika v0.40.0 (`kshana standards-pack run`): dhs-rpcf: 6 spełnionych, 1 niespełniony, 2 wymagają danych wejściowych; imo-circ-1575: 1 spełniony, 4 niespełnione, 2 wymagają danych wejściowych; icao-doc9849-appf: 6 spełnionych, 0 niespełnionych, 2 wymagają danych wejściowych. Łącznie 13 spełnionych, 5 niespełnionych i 6 wymaga danych wejściowych, których silnik nie ma (dziennika odbiornika lub dokumentacji sprzętu). Każdy próg ustalono przed przebiegiem; niespełniony próg pozostaje niespełniony. Spełniony próg oznacza, że modelowany scenariusz spełnił podany próg, i nic nie mówi o produkcie. Pakiety dostarczają dowodów dla cytowanych wierszy; nie są oceną. 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; nie może być jedyną podstawą żadnej decyzji nawigacyjnej ani dotyczącej bezpieczeństwa.

Status w rejestrze (ledger): MODELLED. Osiągnięty próg mówi, że scenariusz obliczony na podstawie modelu osiągnął podany próg, i nic o produkcie; każde niepowodzenie jest zachowane i przypięte testem. Normy.

LunaNet AFS#

Generator kodów LunaNet Augmented Forward Signal (kody Golda, Weila i trzeciorzędne, ramka komunikatu i jej kodowanie błędów) oraz weryfikator zapisanego lub wygenerowanego strumienia symboli, przypięty do jednej edycji specyfikacji.

kshana lunanet-afs-check spec
kshana lunanet-afs-check generate --frames 2 --out afs.sym
kshana lunanet-afs-check symbols afs.sym
Generator kodów LunaNet AFS sprawdzony względem drukowanych kolumn specyfikacji, z prawdziwego przebiegu silnika v0.40.0 (`kshana lunanet-afs-check spec`, przypięty do LNIS V5, AD1 Tom A (LSIS-AFS) V1.0, 29 stycznia 2025; dokument oznacza swoje tabele kodów {LSIS-TBC}). Spełnionych jest 9 z 10 sprawdzeń; B4 jest NOT MET (420 z 421 zgodnych). Sprawdza strumień symboli względem jednego wydania opublikowanej specyfikacji i nic nie mówi o żadnym węźle ani usłudze LunaNet. 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. Sprawdza strumień symboli względem jednego wydania opublikowanej specyfikacji i nic nie mówi o żadnym węźle ani usłudze LunaNet.Generator kodów LunaNet AFS sprawdzony względem drukowanych kolumn specyfikacji, z prawdziwego przebiegu silnika v0.40.0 (`kshana lunanet-afs-check spec`, przypięty do LNIS V5, AD1 Tom A (LSIS-AFS) V1.0, 29 stycznia 2025; dokument oznacza swoje tabele kodów {LSIS-TBC}). Spełnionych jest 9 z 10 sprawdzeń; B4 jest NOT MET (420 z 421 zgodnych). Sprawdza strumień symboli względem jednego wydania opublikowanej specyfikacji i nic nie mówi o żadnym węźle ani usłudze LunaNet. 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. Sprawdza strumień symboli względem jednego wydania opublikowanej specyfikacji i nic nie mówi o żadnym węźle ani usłudze LunaNet.

Status w rejestrze (ledger): VALIDATED dla sprawdzeń kodów i synchronizacji, względem wartości, które drukuje specyfikacja (którą oznacza jako TBC); jedno sprawdzenie jest NOT MET, zachowane i przypięte (jedna drukowana kolumna kodu trzeciorzędnego się różni: dokument drukuje tę samą wartość dla dwóch PRN). Słowa LDPC i CRC podramek 2 do 4 nie są sprawdzane. Wiersze rejestru mówią dokładnie które. LunaNet AFS.

Pełna pętla laboratoryjna#

kshana.test-conditions/1 to opublikowany opis tego, co zrobiło laboratorium (zdarzenia, czasy, moce). kshana evidence round-trip łączy skrót scenariusza, skrót warunków, skrót dziennika odbiornika i ocenę w jeden podpisany pakiet i odrzuca pakiet, w którym warunki i scenariusz oceniający różnią się co do zdarzeń. Kshana nigdy nie wytwarza ani nie odtwarza sygnału: to, jak scenariusz dotarł do odbiornika, jest odpowiedzialnością operatora.

kshana evidence --help
Struktura pakietu dowodowego. Dziennik odbiornika (NMEA, u-blox UBX, RINEX 3 lub dziennik Androida) i okno czasowe trafiają do kshana receiver-trust evidence, które zapisuje siedem plików: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig i opcjonalny timestamp.tsr. Manifest zapisuje SHA-256 całego dziennika i każdego pliku oraz łańcuch skrótów po plikach; podpis obejmuje manifest. kshana evidence verify sprawdza podpis, skrót każdego pliku, łańcuch oraz to, że nie ma pliku spoza listy, i kończy się kodem 0, gdy zweryfikowano, 1, gdy coś zawiodło, i 3, gdy podpisujący nie był przypięty. Pakiet jest zapisem technicznym, a nie opinią prawną.Struktura pakietu dowodowego. Dziennik odbiornika (NMEA, u-blox UBX, RINEX 3 lub dziennik Androida) i okno czasowe trafiają do kshana receiver-trust evidence, które zapisuje siedem plików: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig i opcjonalny timestamp.tsr. Manifest zapisuje SHA-256 całego dziennika i każdego pliku oraz łańcuch skrótów po plikach; podpis obejmuje manifest. kshana evidence verify sprawdza podpis, skrót każdego pliku, łańcuch oraz to, że nie ma pliku spoza listy, i kończy się kodem 0, gdy zweryfikowano, 1, gdy coś zawiodło, i 3, gdy podpisujący nie był przypięty. Pakiet jest zapisem technicznym, a nie opinią prawną.

Obraz przedstawia układ pakietu. Status w rejestrze (ledger): MODELLED. Warunki testu, Test bench.

kshana-bench#

Stałe zadania, podziały i metryki dla detekcji zakłóceń, detekcji IQ, przewidywania holdover i luki optymizmu, z zapieczętowanym zbiorem holdout i statyczną tabelą wyników. Ocenia zgłoszenia; nie jest rankingiem odbiorników.

kshana bench baseline --task d --split test --out results/
Wbudowane punkty odniesienia zadania D (luka optymizmu) w kshana-bench na podziale testowym, z rzeczywistego przebiegu silnika v0.40.0 (`kshana bench baseline`). Każda para słupków to pole pod krzywą ROC dla przypadków z rozkładu oraz dla przypadków przesuniętych; różnica między nimi to luka optymizmu, wobec tolerancji 0,05. fused-max-z: 0,998 i 0,983 (różnica 0,015); sqm-imbalance: 0,882 i 0,882 (różnica 0,001); agc-excess: 0,848 i 0,819 (różnica 0,030); raim-parity: 0,682 i 0,672 (różnica 0,010); energy-cn0-drop: 0,595 i 0,565 (różnica 0,030). Etykiety są etykietami modelu generatywnego korpusu syntetycznego, nigdy danymi terenowymi: MODELLED. Wyłącznie doradczo: obliczone z modelu lub zmierzone względem podanych wzorców, nie jest to zatwierdzenie, certyfikacja ani oświadczenie o zgodności. Wynik opisuje dziennik lub korpus, nigdy produkt.Wbudowane punkty odniesienia zadania D (luka optymizmu) w kshana-bench na podziale testowym, z rzeczywistego przebiegu silnika v0.40.0 (`kshana bench baseline`). Każda para słupków to pole pod krzywą ROC dla przypadków z rozkładu oraz dla przypadków przesuniętych; różnica między nimi to luka optymizmu, wobec tolerancji 0,05. fused-max-z: 0,998 i 0,983 (różnica 0,015); sqm-imbalance: 0,882 i 0,882 (różnica 0,001); agc-excess: 0,848 i 0,819 (różnica 0,030); raim-parity: 0,682 i 0,672 (różnica 0,010); energy-cn0-drop: 0,595 i 0,565 (różnica 0,030). Etykiety są etykietami modelu generatywnego korpusu syntetycznego, nigdy danymi terenowymi: MODELLED. Wyłącznie doradczo: obliczone z modelu lub zmierzone względem podanych wzorców, nie jest to zatwierdzenie, certyfikacja ani oświadczenie o zgodności. Wynik opisuje dziennik lub korpus, nigdy produkt.

Status w rejestrze (ledger): brak własnego wiersza w rejestrze; punkty odniesienia są w plikach wyników oznaczone jako MODELLED. Względem wstępnie zarejestrowanych progów ocena, C1 do C3 i D2 są spełnione, a trzy progi są NOT MET, każdy przypięty testem: A2 (agc_k_sigma AUC 0,766 wobec co najmniej 0,80 na zbiorze testowym), D1 (największa różnica 0,0301) i zadanie (b) R1 (przeniesione z wcześniejszej kampanii, nie uruchomione ponownie). Wartości są w xval/bench/RESULTS-v2.md. Bench.

Obserwatorium zakłóceń#

Jeden produkt na dobę UTC i region z otwartego archiwum pozycji statków powietrznych, na stałej grubej siatce: każda komórka ma pogorszoną jakość, nie ma pogorszenia albo jest nieobserwowana (co nie znaczy „czysta”). Wydawany nie wcześniej niż 24 h po końcu doby, z tłumieniem małych komórek i bez przypisywania przyczyny.

kshana interference-map daily /path/to/extracted/2026-09-15 \
    --dataset adsb-lol --day 2026-09-15 --bbox 53.5,9.0,66.0,31.0 --out products/
Dwa syntetyczne dni mapy zakłóceń narysowane z zatwierdzonych próbek w examples/interference-map/output, każdy z własną syntetyczną trasą i udziałami ekspozycji trasy, które podaje silnik. Po lewej dzień ADS-B: 1 komórka z pogorszeniem, 6 bez pogorszenia, 4 nieocenione (kreskowane) oraz komórki bez wpisu, narysowane jako puste, które nie były obserwowane. Trasa ma 525 km: 11,5% jej długości w komórkach z pogorszeniem, 38,3% bez pogorszenia, 9,1% nieocenione i 41,1% nieobserwowane. Po prawej dzień AIS: komórki oznaczone przez detektory okręgu i lądu, komórki bez anomalii i puste komórki; trasa ma 454 km, z 10,5% w komórkach z anomalią, 21,2% bez anomalii, 0,0% nieocenione i 68,3% nieobserwowane. ADS-B i AIS są oddzielnymi warstwami, nigdy niełączonymi. Oznaczona komórka nie jest stwierdzeniem zakłóceń, a komórka bez koloru nie była obserwowana, co nie oznacza, że było czysto. Wszystkie dane są zmyślone, na otwartym środkowym Atlantyku, i nie są pomiarem.Dwa syntetyczne dni mapy zakłóceń narysowane z zatwierdzonych próbek w examples/interference-map/output, każdy z własną syntetyczną trasą i udziałami ekspozycji trasy, które podaje silnik. Po lewej dzień ADS-B: 1 komórka z pogorszeniem, 6 bez pogorszenia, 4 nieocenione (kreskowane) oraz komórki bez wpisu, narysowane jako puste, które nie były obserwowane. Trasa ma 525 km: 11,5% jej długości w komórkach z pogorszeniem, 38,3% bez pogorszenia, 9,1% nieocenione i 41,1% nieobserwowane. Po prawej dzień AIS: komórki oznaczone przez detektory okręgu i lądu, komórki bez anomalii i puste komórki; trasa ma 454 km, z 10,5% w komórkach z anomalią, 21,2% bez anomalii, 0,0% nieocenione i 68,3% nieobserwowane. ADS-B i AIS są oddzielnymi warstwami, nigdy niełączonymi. Oznaczona komórka nie jest stwierdzeniem zakłóceń, a komórka bez koloru nie była obserwowana, co nie oznacza, że było czysto. Wszystkie dane są zmyślone, na otwartym środkowym Atlantyku, i nie są pomiarem.

Obraz przedstawia zatwierdzone doby przykładowe, a nie produkt obserwatorium. Status w rejestrze (ledger): MODELLED: brak zewnętrznej wyroczni, prawdy terenowej i przypisania przyczyny; komórka nieobserwowana nie była oceniana, co nie oznacza, że jest czysta. Metoda obserwatorium.

Eksportery#

Telemetria zaufania jako tekst Prometheus, CEF, LEEF, OTLP oraz komunikaty wykrywania i stanu Home Assistant MQTT. Polecenie publikuje tylko do podanego mu miejsca docelowego i nie przechowuje żadnych poświadczeń.

kshana trust-telemetry --result session.result.json --print-metrics
kshana trust-telemetry --result session.result.json --print-syslog --format cef
Jeden wynik zaufania w trzech formatach eksportu, z prawdziwych przebiegów silnika v0.40.0 (`kshana trust-telemetry`) na examples/maritime-trust: ekspozycja tekstowa Prometheus (ostatni wskaźnik zaufania to 5,9, a ustawione jest pasmo niegodne zaufania) oraz ostatnie komunikaty CEF i LEEF. Polecenie niczego nie publikuje, jeśli nie podano miejsca docelowego, nie przechowuje poświadczeń i nie nadaje żadnego sygnału radiowego. Oprogramowanie wyłącznie doradcze, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu (IEC 61108, IEC 61162): za nawigację statku odpowiada nadal operator.Jeden wynik zaufania w trzech formatach eksportu, z prawdziwych przebiegów silnika v0.40.0 (`kshana trust-telemetry`) na examples/maritime-trust: ekspozycja tekstowa Prometheus (ostatni wskaźnik zaufania to 5,9, a ustawione jest pasmo niegodne zaufania) oraz ostatnie komunikaty CEF i LEEF. Polecenie niczego nie publikuje, jeśli nie podano miejsca docelowego, nie przechowuje poświadczeń i nie nadaje żadnego sygnału radiowego. Oprogramowanie wyłącznie doradcze, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu (IEC 61108, IEC 61162): za nawigację statku odpowiada nadal operator.

Status w rejestrze (ledger): MODELLED. Telemetria zaufania.

Rodzaj optical-atmosphere może zapisać jedną realizację z ziarnem (seed) pogody stanowiska jako szereg zapasu łącza: epizody zachmurzenia, kolumnę wody ciekłej dla każdego z nich, jedną próbkę scyntylacji na krok. Strona Optyczne PNT w Studio otwiera scenariusze optical-atmosphere.

kshana scenarios/optical-atmosphere-network.toml
Jedna realizacja z ziarnem (seed) zapasu łącza stanowiska „northern” w ciągu 336 h, z prawdziwego przebiegu silnika v0.40.0 na scenarios/optical-atmosphere-network.toml (ziarno 37, krok 600 s). Zapas spada poniżej zera podczas epizodów zachmurzenia; w tym losowaniu łącze działa przez 40,5 % czasu, z 27 przerwami i najdłuższą przerwą 30,7 h. Dane wejściowe są ilustracyjne, szereg jest jednym losowaniem z modelu, a nie klimatem, i różni się od dostępności statystycznej (37,8 %) o błąd próbkowania tego losowania. Wyłącznie analiza doradcza: nie jest to certyfikowany produkt dostępności, integralności ani nawigacji ani prognoza dla żadnego prawdziwego stanowiska, chyba że jego dane klimatyczne pochodzą z podanego zbioru danych.Jedna realizacja z ziarnem (seed) zapasu łącza stanowiska „northern” w ciągu 336 h, z prawdziwego przebiegu silnika v0.40.0 na scenarios/optical-atmosphere-network.toml (ziarno 37, krok 600 s). Zapas spada poniżej zera podczas epizodów zachmurzenia; w tym losowaniu łącze działa przez 40,5 % czasu, z 27 przerwami i najdłuższą przerwą 30,7 h. Dane wejściowe są ilustracyjne, szereg jest jednym losowaniem z modelu, a nie klimatem, i różni się od dostępności statystycznej (37,8 %) o błąd próbkowania tego losowania. Wyłącznie analiza doradcza: nie jest to certyfikowany produkt dostępności, integralności ani nawigacji ani prognoza dla żadnego prawdziwego stanowiska, chyba że jego dane klimatyczne pochodzą z podanego zbioru danych.

Status w rejestrze (ledger): MODELLED. Jedno losowanie z modelu, a nie klimat. Atmosfera optyczna.

Nowe widoki Studio#

kshana.dev/studio zyskuje Odtwarzanie na mostku (dwa przebiegi obok siebie na jednym zegarze misji, pod /studio/replay/), stronę Optyczne PNT (/studio/optical/), stronę Test holdover (/studio/holdover/) i przeglądarkę obserwatorium (/studio/observatory/). Uruchamiają ten sam silnik w przeglądarce, nic nie jest wysyłane i niosą to samo oświadczenie doradcze. Obrazy powyżej są rysowane z własnego wyniku silnika przez skrypt; nie są zrzutami ekranu tych stron.

Nawigacja użytkowników przestrzeni kosmicznej (gnss-ssv)#

Dla statku kosmicznego powyżej orbit GNSS, wokół nich lub daleko poza nimi: ile sygnałów GNSS może użyć, jak są silne, jak dobra jest geometria i co może z nimi zrobić filtr pokładowy. Jeden rodzaj, cztery tryby, wybierane przez tabele scenariusza: powłoka użytkowników (udział czasu z jednym i czterema sygnałami, dla każdej konstelacji), trajektoria (sygnały, C/N0, rozmycie dokładności i ośrodek promienia przy brzegu wzdłuż orbity), przebieg nawigacji (dziewięciostanowy filtr na pseudoodległościach, aż do Księżyca) i formacja (nawigacja względna statków zastępczych wokół głównego). Publicznym źródłem porównania dostępności jest broszura interoperacyjna GNSS Space Service Volume (UN OOSA ST/SPACE/75, z International Committee on GNSS), która sama jest symulacją; jest pobierana, nigdy nie jest wbudowywana. Pełna strona: docs/SSV.md.

kshana scenarios/gnss-ssv-shell.toml            # shell: the upper space service volume, reduced size
kshana scenarios/gnss-ssv-heo.toml              # trajectory: a high Earth orbit, limb medium
kshana scenarios/gnss-ssv-nav-lunar.toml        # navigation: an onboard filter toward the Moon
kshana scenarios/gnss-ssv-formation-heo.toml    # formation: relative navigation
Dostępność sygnału dla użytkownika na sferze na wysokości 36000 km z anteną półsferyczną, z prawdziwego przebiegu silnika v0.40.0 na scenarios/gnss-ssv-shell.toml (przebieg zredukowany: 162 użytkowników, 3 doby, kroki co 10 min), przy progu 20 dB-Hz. Dla każdej konstelacji i pasma dwa słupki: udział par (użytkownik, epoka) z co najmniej jednym sygnałem i z co najmniej czterema. Łącznie, L1: 99,4 % co najmniej jeden, 73,2 % co najmniej cztery, najdłuższa przerwa poniżej czterech sygnałów 160 min. Łącznie, L5: 100,0 % co najmniej jeden, 99,9 % co najmniej cztery, najdłuższa przerwa poniżej czterech sygnałów 20 min. MODELLED: badanie obliczone na podstawie modelu z podanych danych wejściowych, a nie pomiar i nie twierdzenie o objętości usługi dla żadnego systemu. Zredukowany rozmiar to nie porównanie z broszurą. 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.Dostępność sygnału dla użytkownika na sferze na wysokości 36000 km z anteną półsferyczną, z prawdziwego przebiegu silnika v0.40.0 na scenarios/gnss-ssv-shell.toml (przebieg zredukowany: 162 użytkowników, 3 doby, kroki co 10 min), przy progu 20 dB-Hz. Dla każdej konstelacji i pasma dwa słupki: udział par (użytkownik, epoka) z co najmniej jednym sygnałem i z co najmniej czterema. Łącznie, L1: 99,4 % co najmniej jeden, 73,2 % co najmniej cztery, najdłuższa przerwa poniżej czterech sygnałów 160 min. Łącznie, L5: 100,0 % co najmniej jeden, 99,9 % co najmniej cztery, najdłuższa przerwa poniżej czterech sygnałów 20 min. MODELLED: badanie obliczone na podstawie modelu z podanych danych wejściowych, a nie pomiar i nie twierdzenie o objętości usługi dla żadnego systemu. Zredukowany rozmiar to nie porównanie z broszurą. 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. Sygnały wzdłuż jednej wysokiej orbity okołoziemskiej (perygeum 497 km, apogeum 58622 km, okres 18,8 h), z prawdziwego przebiegu silnika v0.40.0 na scenarios/gnss-ssv-heo.toml, pasmo L1. Na górze: najlepszy stosunek nośnej do szumu wśród sygnałów w zasięgu, względem progu 20 dB-Hz. W środku: liczba sygnałów w zasięgu ze wszystkich konstelacji, od 4 do 55 wzdłuż próbkowanych punktów. Spośród odebranych łączy 2252 przeszło przez listek główny, a 696 przez listki boczne, przy użyciu opisanego parametrycznego wzorca zastępczego, a nie zmierzonego wzorca żadnego systemu. Mediana PDOP 67, 95. percentyl 358. MODELLED: badanie obliczone na podstawie modelu z podanych danych wejściowych, a nie pomiar i nie twierdzenie o objętości usługi dla żadnego systemu. 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.Sygnały wzdłuż jednej wysokiej orbity okołoziemskiej (perygeum 497 km, apogeum 58622 km, okres 18,8 h), z prawdziwego przebiegu silnika v0.40.0 na scenarios/gnss-ssv-heo.toml, pasmo L1. Na górze: najlepszy stosunek nośnej do szumu wśród sygnałów w zasięgu, względem progu 20 dB-Hz. W środku: liczba sygnałów w zasięgu ze wszystkich konstelacji, od 4 do 55 wzdłuż próbkowanych punktów. Spośród odebranych łączy 2252 przeszło przez listek główny, a 696 przez listki boczne, przy użyciu opisanego parametrycznego wzorca zastępczego, a nie zmierzonego wzorca żadnego systemu. Mediana PDOP 67, 95. percentyl 358. MODELLED: badanie obliczone na podstawie modelu z podanych danych wejściowych, a nie pomiar i nie twierdzenie o objętości usługi dla żadnego systemu. 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. Pokładowy dziewięciostanowy filtr na transferze z niskiej orbity w stronę Księżyca, z prawdziwego przebiegu silnika v0.40.0 na scenarios/gnss-ssv-nav-lunar.toml (289 epok, narysowano 13 punktów). Na osi logarytmicznej prawdziwy błąd pozycji i własna granica jednego sigma filtra względem czasu od początku. Wewnątrz orbit GNSS RMS pozycji wynosi 1,4 m; powyżej nich 90 m, a błąd końcowy 184 m na wysokości 193 330 km przy 1 pomiarze. Średni znormalizowany kwadrat błędu estymacji w całym przebiegu wynosi 4,4 (około 3 dla spójnego bloku pozycji). Prawda i filtr dzielą swoje zastępniki Słońca i Księżyca. MODELLED: badanie obliczone na podstawie modelu z podanych danych wejściowych, a nie pomiar i nie twierdzenie o objętości usługi dla żadnego systemu. 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.Pokładowy dziewięciostanowy filtr na transferze z niskiej orbity w stronę Księżyca, z prawdziwego przebiegu silnika v0.40.0 na scenarios/gnss-ssv-nav-lunar.toml (289 epok, narysowano 13 punktów). Na osi logarytmicznej prawdziwy błąd pozycji i własna granica jednego sigma filtra względem czasu od początku. Wewnątrz orbit GNSS RMS pozycji wynosi 1,4 m; powyżej nich 90 m, a błąd końcowy 184 m na wysokości 193 330 km przy 1 pomiarze. Średni znormalizowany kwadrat błędu estymacji w całym przebiegu wynosi 4,4 (około 3 dla spójnego bloku pozycji). Prawda i filtr dzielą swoje zastępniki Słońca i Księżyca. MODELLED: badanie obliczone na podstawie modelu z podanych danych wejściowych, a nie pomiar i nie twierdzenie o objętości usługi dla żadnego systemu. 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. Nawigacja względna 2 statków zastępczych wokół głównego na wysokiej orbicie, z prawdziwego przebiegu silnika v0.40.0 na scenarios/gnss-ssv-formation-heo.toml (401 epok). Dla każdego statku zastępczego dwa słupki: RMS pozycji względnej z odjęcia dwóch niezależnych estymat bezwzględnych oraz z filtra względnego na pseudoodległościach pojedynczo różnicowanych. Baza 0,8 km: 5,1 m i 1,2 m. Baza 2,0 km: 4,1 m i 2,1 m. Filtr bezwzględny nie jest tu spójny: średni znormalizowany kwadrat błędu estymacji 187 wobec około 3 dla filtra spójnego, więc podawana przez niego niepewność jest znacznie za mała. MODELLED: badanie obliczone na podstawie modelu z podanych danych wejściowych, a nie pomiar i nie twierdzenie o objętości usługi dla żadnego systemu. 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.Nawigacja względna 2 statków zastępczych wokół głównego na wysokiej orbicie, z prawdziwego przebiegu silnika v0.40.0 na scenarios/gnss-ssv-formation-heo.toml (401 epok). Dla każdego statku zastępczego dwa słupki: RMS pozycji względnej z odjęcia dwóch niezależnych estymat bezwzględnych oraz z filtra względnego na pseudoodległościach pojedynczo różnicowanych. Baza 0,8 km: 5,1 m i 1,2 m. Baza 2,0 km: 4,1 m i 2,1 m. Filtr bezwzględny nie jest tu spójny: średni znormalizowany kwadrat błędu estymacji 187 wobec około 3 dla filtra spójnego, więc podawana przez niego niepewność jest znacznie za mała. MODELLED: badanie obliczone na podstawie modelu z podanych danych wejściowych, a nie pomiar i nie twierdzenie o objętości usługi dla żadnego systemu. 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.

Status w rejestrze (ledger): MODELLED, a porównanie z broszurą w większości chybia. Progi ustalono przed przebiegiem. Z ośmiu tylko S0 (odwrotny budżet łącza, 13 z 13 wartości) i S6 (misja księżycowa) są spełnione. S1 do S5 i S7 są NOT MET: geometria górnej i dolnej objętości usługi (43 z 52 i 48 z 52 komórek), górna objętość usługi 15/20/25 dB-Hz, sześć misji GEO, misja HEO oraz parametryczny wzorzec listków bocznych względem zmierzonych wzorców paneli GPS. Prawie każde chybienie w S1 do S5 dotyczy GLONASS, a broszura drukuje dla niego dwa różne kąty odniesienia; wariant diagnostyczny, który używa drugiej pary, doprowadza S1, S2 i S4 do każdej komórki, ale nie zastępuje przebiegu zapisanego i żaden wiersz nie jest VALIDATED. Filtr bezwzględny przebiegu formacji jest też zbyt pewny siebie (średni znormalizowany kwadrat błędu znacznie powyżej wartości około 3, którą daje filtr spójny).

Zapisane porównanie modelu dostępności dla użytkowników przestrzeni kosmicznej z publiczną broszurą Space Service Volume, z zatwierdzonych wyników wstępnie zarejestrowanego przebiegu (xval/gnss-ssv/results-run1.json, zapisanych przez przykład ssv_booklet_check silnika v0.40.0). Próg po progu, komórki w granicach tolerancji: S0 13 z 13 (MET); S1 43 z 52 (NOT MET); S2 48 z 52 (NOT MET); S3 122 z 155 (NOT MET); S4 132 z 156 (NOT MET); S5 18 z 26 (NOT MET); S6 26 z 26 (MET); S7 0 z 20 wzorców paneli (NOT MET). Tylko S0 i S6 są spełnione przy wstępnie zarejestrowanym odczycie. Wariant diagnostyczny, który używa drugich kątów GLONASS z broszury, doprowadza S1, S2 i S4 do każdej komórki, ale nie zastępuje przebiegu zapisanego. Żaden wiersz rejestru nie jest VALIDATED. 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.Zapisane porównanie modelu dostępności dla użytkowników przestrzeni kosmicznej z publiczną broszurą Space Service Volume, z zatwierdzonych wyników wstępnie zarejestrowanego przebiegu (xval/gnss-ssv/results-run1.json, zapisanych przez przykład ssv_booklet_check silnika v0.40.0). Próg po progu, komórki w granicach tolerancji: S0 13 z 13 (MET); S1 43 z 52 (NOT MET); S2 48 z 52 (NOT MET); S3 122 z 155 (NOT MET); S4 132 z 156 (NOT MET); S5 18 z 26 (NOT MET); S6 26 z 26 (MET); S7 0 z 20 wzorców paneli (NOT MET). Tylko S0 i S6 są spełnione przy wstępnie zarejestrowanym odczycie. Wariant diagnostyczny, który używa drugich kątów GLONASS z broszury, doprowadza S1, S2 i S4 do każdej komórki, ale nie zastępuje przebiegu zapisanego. Żaden wiersz rejestru nie jest VALIDATED. 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.

Nawigacja użytkowników przestrzeni kosmicznej, co pokazuje porównanie.

Infrastruktura księżycowa (lunar-infrastructure)#

Orbita i powierzchnia Księżyca jako infrastruktura nawigacyjna i geodezyjna, w pięciu badaniach wybieranych przez study: od-consistency (pokładowe wyznaczanie orbity z GNSS Ziemi na orbicie halo względem niezależnego naziemnego), carrier-phase (ustalanie całkowitoliczbowej niejednoznaczności między stacjami na powierzchni a orbiterem), frame-coestimation (księżycowy układ odniesienia z pomiarów odległości do stacji na Ziemi z łączami orbitera i bez nich), space-tie (przesunięcia laserowe, VLBI i GNSS na jednym statku kosmicznym względem błędu powiązania lokalnego) oraz geodesy-sensitivity (która rodzina wielkości obserwowanych widzi liczby Love'a h2, k2 i l2). Model jest ograniczonym modelem trzech ciał z podanymi uproszczeniami i ilustracyjnymi danymi wejściowymi. Pełna strona: docs/LUNAR-INFRASTRUCTURE.md.

kshana scenarios/lunar-infrastructure-od-consistency.toml
kshana scenarios/lunar-infrastructure-carrier-phase.toml            # quick; the scored run takes about eight minutes
kshana scenarios/lunar-infrastructure-frame-coestimation.toml
kshana scenarios/lunar-infrastructure-space-tie.toml
kshana scenarios/lunar-infrastructure-geodesy-sensitivity.toml
Spójność pokładowego wyznaczania orbity z użyciem Earth-GNSS na prawie prostoliniowej orbicie halo z niezależnym naziemnym wyznaczaniem orbity, z prawdziwych przebiegów silnika v0.40.0 na scenarios/lunar-infrastructure-od-consistency.toml oraz wariancie z błędem modelu (400 prób każdy). Średnia znormalizowana różnica q wynosi 5,81 bez błędu modelu i 5,95 ze wstrzykniętym błędem przyspieszenia 3e-10 m/s2, przy oczekiwanej wartości 6: oba rozwiązania orbity są spójne (próg C1 MET). Odsetek prób powyżej punktu 95 % wynosi 0,040 i 0,052; próg wykrycia wstrzykniętego błędu wynosił co najmniej 0,5, więc jest NOT MET (C3): rozwiązanie pokładowe jest znane z dokładnością około 352 m wobec 23 m dla naziemnego, więc dziesięciometrowe przesunięcie ukrywa się w jego kowariancji. MODELLED: ograniczony model trzech ciał z podanymi uproszczeniami i poglądowymi danymi wejściowymi, nie pomiar żadnej wielkości księżycowej. 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.Spójność pokładowego wyznaczania orbity z użyciem Earth-GNSS na prawie prostoliniowej orbicie halo z niezależnym naziemnym wyznaczaniem orbity, z prawdziwych przebiegów silnika v0.40.0 na scenarios/lunar-infrastructure-od-consistency.toml oraz wariancie z błędem modelu (400 prób każdy). Średnia znormalizowana różnica q wynosi 5,81 bez błędu modelu i 5,95 ze wstrzykniętym błędem przyspieszenia 3e-10 m/s2, przy oczekiwanej wartości 6: oba rozwiązania orbity są spójne (próg C1 MET). Odsetek prób powyżej punktu 95 % wynosi 0,040 i 0,052; próg wykrycia wstrzykniętego błędu wynosił co najmniej 0,5, więc jest NOT MET (C3): rozwiązanie pokładowe jest znane z dokładnością około 352 m wobec 23 m dla naziemnego, więc dziesięciometrowe przesunięcie ukrywa się w jego kowariancji. MODELLED: ograniczony model trzech ciał z podanymi uproszczeniami i poglądowymi danymi wejściowymi, nie pomiar żadnej wielkości księżycowej. 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. Rozwiązywanie niejednoznaczności całkowitoliczbowych fazy nośnej między stacjami na powierzchni Księżyca a orbiterem, na podstawie zatwierdzonego wyniku ocenianego przebiegu silnika v0.40.0 (tests/fixtures/lunar_infra/phase_full_run.json: 3 długości łuku, Monte Carlo po 401 losowań każda, zapisane przez scenarios/carrier-phase-scored.toml). 1 doba: sukces 1,0 % (błąd standardowy 0,5 %), 134 niejednoznaczności, sigma pozycji orbitera 45,6 m dla rozwiązania zmiennoprzecinkowego i 18,5 m dla całkowitoliczbowego; 2 doby: sukces 0,5 % (błąd standardowy 0,4 %), 259 niejednoznaczności, sigma pozycji orbitera 21,5 m dla rozwiązania zmiennoprzecinkowego i 8,7 m dla całkowitoliczbowego; 3 doby: sukces 2,8 % (błąd standardowy 0,8 %), 375 niejednoznaczności, sigma pozycji orbitera 6,3 m dla rozwiązania zmiennoprzecinkowego i 2,1 m dla całkowitoliczbowego. Rozwiązanie całkowitoliczbowe nie zostaje osiągnięte: sukces pozostaje między 1 % a 3 % przy 25 dBi, a przy zarejestrowanych 12 dBi problemu nie da się sformułować. MODELLED: ograniczony model trzech ciał z podanymi uproszczeniami i ilustracyjnymi wejściami, a nie pomiar jakiejkolwiek wielkości księżycowej. 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.Rozwiązywanie niejednoznaczności całkowitoliczbowych fazy nośnej między stacjami na powierzchni Księżyca a orbiterem, na podstawie zatwierdzonego wyniku ocenianego przebiegu silnika v0.40.0 (tests/fixtures/lunar_infra/phase_full_run.json: 3 długości łuku, Monte Carlo po 401 losowań każda, zapisane przez scenarios/carrier-phase-scored.toml). 1 doba: sukces 1,0 % (błąd standardowy 0,5 %), 134 niejednoznaczności, sigma pozycji orbitera 45,6 m dla rozwiązania zmiennoprzecinkowego i 18,5 m dla całkowitoliczbowego; 2 doby: sukces 0,5 % (błąd standardowy 0,4 %), 259 niejednoznaczności, sigma pozycji orbitera 21,5 m dla rozwiązania zmiennoprzecinkowego i 8,7 m dla całkowitoliczbowego; 3 doby: sukces 2,8 % (błąd standardowy 0,8 %), 375 niejednoznaczności, sigma pozycji orbitera 6,3 m dla rozwiązania zmiennoprzecinkowego i 2,1 m dla całkowitoliczbowego. Rozwiązanie całkowitoliczbowe nie zostaje osiągnięte: sukces pozostaje między 1 % a 3 % przy 25 dBi, a przy zarejestrowanych 12 dBi problemu nie da się sformułować. MODELLED: ograniczony model trzech ciał z podanymi uproszczeniami i ilustracyjnymi wejściami, a nie pomiar jakiejkolwiek wielkości księżycowej. 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. Precyzja siedmioparametrowego układu księżycowego (trzy przesunięcia, skala i trzy obroty) z pomiarów odległości ze stacji ziemskich, z pomiarami odległości orbiter–stacja powierzchniowa i bez nich, z prawdziwego przebiegu silnika v0.40.0 na scenariuszu scenarios/lunar-infrastructure-frame-coestimation.toml. Sigma Cramera–Rao przesunięć i obrotów maleje dzięki łączom orbitera (na przykład t_z z 0,98 m do 0,046 m); najmniejsza wartość własna informacji rośnie 111-krotnie, a ślad CRLB spada do 1,0 % (próg F3 MET). Zakłada to, że orbita jest znana w osiach księżycowych, a jej błąd jest niesiony przez sigmę odległości orbitera równą 1 m. MODELLED: ograniczony model trzech ciał z podanymi uproszczeniami i poglądowymi danymi wejściowymi, nie pomiar żadnej wielkości księżycowej. 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.Precyzja siedmioparametrowego układu księżycowego (trzy przesunięcia, skala i trzy obroty) z pomiarów odległości ze stacji ziemskich, z pomiarami odległości orbiter–stacja powierzchniowa i bez nich, z prawdziwego przebiegu silnika v0.40.0 na scenariuszu scenarios/lunar-infrastructure-frame-coestimation.toml. Sigma Cramera–Rao przesunięć i obrotów maleje dzięki łączom orbitera (na przykład t_z z 0,98 m do 0,046 m); najmniejsza wartość własna informacji rośnie 111-krotnie, a ślad CRLB spada do 1,0 % (próg F3 MET). Zakłada to, że orbita jest znana w osiach księżycowych, a jej błąd jest niesiony przez sigmę odległości orbitera równą 1 m. MODELLED: ograniczony model trzech ciał z podanymi uproszczeniami i poglądowymi danymi wejściowymi, nie pomiar żadnej wielkości księżycowej. 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. Precyzja przesunięć między położeniami z pomiarów laserowych, VLBI i GNSS jednego statku kosmicznego, względem błędu naziemnego lokalnego powiązania, z prawdziwego przebiegu silnika v0.40.0 na scenariuszu scenarios/lunar-infrastructure-space-tie.toml (jeden łuk 6.56-dobowy, sigmy technik: GNSS 10 m, VLBI 1 m, laser 0,1 m). Przy lokalnym powiązaniu od 1 mm do 1 m sigma przesunięcia laser minus GNSS pozostaje bliska 1,04 m, aż powiązanie osiągnie 1 m: jest ograniczona szumem pomiarowym technik, a nie lokalnym powiązaniem. Dolna granica wyznaczona samym powiązaniem to pierwiastek z dwóch razy jego sigma. MODELLED: ograniczony model trzech ciał z podanymi uproszczeniami i poglądowymi danymi wejściowymi, nie pomiar żadnej wielkości księżycowej. 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.Precyzja przesunięć między położeniami z pomiarów laserowych, VLBI i GNSS jednego statku kosmicznego, względem błędu naziemnego lokalnego powiązania, z prawdziwego przebiegu silnika v0.40.0 na scenariuszu scenarios/lunar-infrastructure-space-tie.toml (jeden łuk 6.56-dobowy, sigmy technik: GNSS 10 m, VLBI 1 m, laser 0,1 m). Przy lokalnym powiązaniu od 1 mm do 1 m sigma przesunięcia laser minus GNSS pozostaje bliska 1,04 m, aż powiązanie osiągnie 1 m: jest ograniczona szumem pomiarowym technik, a nie lokalnym powiązaniem. Dolna granica wyznaczona samym powiązaniem to pierwiastek z dwóch razy jego sigma. MODELLED: ograniczony model trzech ciał z podanymi uproszczeniami i poglądowymi danymi wejściowymi, nie pomiar żadnej wielkości księżycowej. 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. Która rodzina obserwabli jest wrażliwa na liczby Love'a Księżyca h2, k2 i l2, z prawdziwego przebiegu silnika v0.40.0 na scenariuszu scenarios/lunar-infrastructure-geodesy-sensitivity.toml. Każda komórka to średniokwadratowa pochodna cząstkowa obserwacji danej rodziny względem parametru, we własnych jednostkach tej rodziny (więc komórki porównuje się w obrębie wiersza, a nie kolumny); kreska oznacza, że rodzina nie wykazuje wrażliwości. pomiary laserowe odległości: h2 7,6, k2 brak, l2 9,8. śledzenie orbitera: h2 brak, k2 0,00086, l2 brak. grawimetr powierzchniowy: h2 2.9e+03, k2 4.3e+03, l2 brak. zegar powierzchniowy: h2 2.8e-17, k2 2.8e-17, l2 brak. Przy wszystkich czterech rodzinach sigma Cramera–Rao wynosi 0,36 % nominalnego h2, 0,52 % k2 i 1,16 % l2. Dodanie rodziny nigdy nie obniżyło najmniejszej wartości własnej (28 z 28 dodań), ale ślad pseudoodwrotności nie był większy tylko w 16 z 28: ta połowa progu G3 jest NOT MET. Rodzina orbitera widzi całkę wzdłuż linii widzenia z przyspieszenia k2, wartość z górnego krańca. MODELLED: ograniczony model trzech ciał z podanymi uproszczeniami i poglądowymi danymi wejściowymi, nie pomiar żadnej wielkości księżycowej. 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.Która rodzina obserwabli jest wrażliwa na liczby Love'a Księżyca h2, k2 i l2, z prawdziwego przebiegu silnika v0.40.0 na scenariuszu scenarios/lunar-infrastructure-geodesy-sensitivity.toml. Każda komórka to średniokwadratowa pochodna cząstkowa obserwacji danej rodziny względem parametru, we własnych jednostkach tej rodziny (więc komórki porównuje się w obrębie wiersza, a nie kolumny); kreska oznacza, że rodzina nie wykazuje wrażliwości. pomiary laserowe odległości: h2 7,6, k2 brak, l2 9,8. śledzenie orbitera: h2 brak, k2 0,00086, l2 brak. grawimetr powierzchniowy: h2 2.9e+03, k2 4.3e+03, l2 brak. zegar powierzchniowy: h2 2.8e-17, k2 2.8e-17, l2 brak. Przy wszystkich czterech rodzinach sigma Cramera–Rao wynosi 0,36 % nominalnego h2, 0,52 % k2 i 1,16 % l2. Dodanie rodziny nigdy nie obniżyło najmniejszej wartości własnej (28 z 28 dodań), ale ślad pseudoodwrotności nie był większy tylko w 16 z 28: ta połowa progu G3 jest NOT MET. Rodzina orbitera widzi całkę wzdłuż linii widzenia z przyspieszenia k2, wartość z górnego krańca. MODELLED: ograniczony model trzech ciał z podanymi uproszczeniami i poglądowymi danymi wejściowymi, nie pomiar żadnej wielkości księżycowej. 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.

Status w rejestrze (ledger): MODELLED, a trzy progi są NOT MET. Obliczenia numeryczne sprawdzono względem niezależnych programów numpy i scipy; nic nie jest porównywane z pomiarem wielkości księżycowej i nic nie jest VALIDATED. Spełnione: dwa rozwiązania orbity są spójne (średnie q 5,81 wobec oczekiwanych 6), a łącza orbitera podnoszą najmniejszą wartość własną układu odniesienia około 111-krotnie, przy założeniu znanej orbity. Niespełnione: wprowadzony błąd modelu 3e-10 m/s2 nie jest wykrywany (C3: rozwiązanie pokładowe jest znane z dokładnością około 350 m, więc około dziesięciu metrów ukrywa się w jego kowariancji); nie osiągnięto ustalenia całkowitoliczbowego (1 do 3 % powodzenia przy 25 dBi, a przy zarejestrowanych 12 dBi problemu nie da się sformułować); oraz połowa śladu w G3 dla dodawania rodziny wielkości obserwowanych (ślad wzrósł w 12 z 28 dodań, za każdym razem dlatego, że rodzina podniosła rząd). Każde chybienie jest przypięte testem. Infrastruktura księżycowa.

Kshana Studio#

Otwórz kshana.dev/studio, a cały silnik działa w przeglądarce, skompilowany do WebAssembly. Nic do instalowania i nic nie jest wysyłane. Studio ma dwa widoki tego samego silnika, a przełącznik w nagłówku przechodzi między nimi, zachowując scenariusz, widok i wszelkie zmienione ustawienia.

Widok prosty to ten, w którym otwiera się Studio. Zaczyna od pytań (ile satelitów widzę, czy mogę ufać swojej pozycji, jak długo zegar utrzyma czas, co zagłuszacz robi z moim odbiornikiem) i od mapy wszystkiego, co silnik potrafi, z udziałem metod sprawdzonych względem niezależnych wzorców w każdym obszarze. Otwórz scenariusz, a najpierw pojawia się odpowiedź: jedno zwykłe zdanie, napisane pod to, co dany scenariusz mierzy, potem jego kluczowe wartości i wykres. Widocznych jest najwyżej pięć ustawień, tych, które najbardziej zmieniają odpowiedź; reszta czeka w Ustawieniach zaawansowanych. Jak to jest obliczane objaśnia metodę, a Dla badaczy podaje własne wartości silnika, plik scenariusza, kod do uruchomienia go z Pythona i sposób cytowania.

Kshana Studio, widok prosty, na dołączonym scenariuszu integrity-raim, silnik v0.40.0 działa lokalnie. Pytanie: czy geometria mieści się w limitach alarmu (poziomy i pionowy poziom ochrony)? Najpierw odpowiedź, oznaczona jako Wynik na żywo: Tak, w większości: przez 95,3 % z 12 h. Granica błędu odbiornika pozostała poniżej limitów alarmu (40 m w poziomie i 50 m w pionie) w 344 z 361 sprawdzeń i żadna pozycja nie była myląca. Kluczowe wartości: czas, w którym pozycji można ufać 95,3 %, najdłuższa przerwa 10 min, typowa granica błędu 6,5 / 13 m, mylące pozycje 0. Obok Wypróbuj inne ustawienia z pięcioma z nich (błąd odległości, dwa limity alarmu, czas trwania i maska elewacji) i Uruchom ponownie, a potem zwinięte sekcje Ustawienia zaawansowane (jeszcze 13), Jak to jest obliczane (8 sprawdzonych względem niezależnych wzorców, 6 obliczonych na podstawie modelu) i Dla badaczy. Poniżej widoki tego wyniku i poziomy ochrony naniesione na limit alarmu.Kshana Studio, widok prosty, na dołączonym scenariuszu integrity-raim, silnik v0.40.0 działa lokalnie. Pytanie: czy geometria mieści się w limitach alarmu (poziomy i pionowy poziom ochrony)? Najpierw odpowiedź, oznaczona jako Wynik na żywo: Tak, w większości: przez 95,3 % z 12 h. Granica błędu odbiornika pozostała poniżej limitów alarmu (40 m w poziomie i 50 m w pionie) w 344 z 361 sprawdzeń i żadna pozycja nie była myląca. Kluczowe wartości: czas, w którym pozycji można ufać 95,3 %, najdłuższa przerwa 10 min, typowa granica błędu 6,5 / 13 m, mylące pozycje 0. Obok Wypróbuj inne ustawienia z pięcioma z nich (błąd odległości, dwa limity alarmu, czas trwania i maska elewacji) i Uruchom ponownie, a potem zwinięte sekcje Ustawienia zaawansowane (jeszcze 13), Jak to jest obliczane (8 sprawdzonych względem niezależnych wzorców, 6 obliczonych na podstawie modelu) i Dla badaczy. Poniżej widoki tego wyniku i poziomy ochrony naniesione na limit alarmu.

Widok zaawansowany to pełny panel: biblioteka scenariuszy, pięć ponumerowanych kroków (Wybierz, Ustaw, Uruchom, Odczytaj wyniki, Udostępnij lub eksportuj), kluczowe wartości z oznaczeniami PASS i FAIL tam, gdzie przebieg podaje próg, oraz każdy panel: przegląd, wykresy, mapy, odtwarzanie, raport silnika i eksporty. Jedno pole wyszukiwania sięga do scenariuszy, dziedzin i pól w nich, a do czterech przebiegów można przypiąć i porównać obok siebie.

Ekran otwierający widoku prostego i widok zaawansowany po przebiegu
Kshana Studio, widok prosty, ekran otwierający, zatytułowany Co chciałbyś ustalić?, z silnikiem v0.40.0 na żywo i, na górnym pasku, trzema linkami: Omówienie szkolenia, Mapa zakłóceń i Zaufanie do odbiornika. Cztery pytania: ile satelitów widzę w dowolnym miejscu na Ziemi, czy mogę ufać swojej pozycji, jak długo zegar utrzyma czas bez satelitów i co zagłuszacz robi z moim odbiornikiem. Pod pierwszym jego zapisany wynik: co najmniej 22 satelitów w zasięgu w każdym miejscu i 31 średnio przy łącznym użyciu GPS, Galileo, BeiDou i GLONASS, pozycja możliwa w 100 % miejsc i czasów, na mapie świata satelitów w zasięgu, z przyciskiem Otwórz ten wynik. Obok Wszystko, co potrafi Kshana: 16 obszarów i 139 gotowych do uruchomienia scenariuszy, każdy kafel z małym wykresem z zapisanego przebiegu i udziałem metod sprawdzonych względem niezależnych wzorców, oraz 173 z 350 możliwości sprawdzonych względem niezależnych wzorców w rejestrze.Kshana Studio, widok prosty, ekran otwierający, zatytułowany Co chciałbyś ustalić?, z silnikiem v0.40.0 na żywo i, na górnym pasku, trzema linkami: Omówienie szkolenia, Mapa zakłóceń i Zaufanie do odbiornika. Cztery pytania: ile satelitów widzę w dowolnym miejscu na Ziemi, czy mogę ufać swojej pozycji, jak długo zegar utrzyma czas bez satelitów i co zagłuszacz robi z moim odbiornikiem. Pod pierwszym jego zapisany wynik: co najmniej 22 satelitów w zasięgu w każdym miejscu i 31 średnio przy łącznym użyciu GPS, Galileo, BeiDou i GLONASS, pozycja możliwa w 100 % miejsc i czasów, na mapie świata satelitów w zasięgu, z przyciskiem Otwórz ten wynik. Obok Wszystko, co potrafi Kshana: 16 obszarów i 139 gotowych do uruchomienia scenariuszy, każdy kafel z małym wykresem z zapisanego przebiegu i udziałem metod sprawdzonych względem niezależnych wzorców, oraz 173 z 350 możliwości sprawdzonych względem niezależnych wzorców w rejestrze. Kshana Studio, widok zaawansowany, po przebiegu dołączonego scenariusza constellation-multi-gnss-coverage (Cztery konstelacje GNSS, jedna mapa), silnik v0.40.0 działa lokalnie. Po lewej biblioteka scenariuszy, 139 scenariuszy w 16 dziedzinach. Pięć kroków Wybierz, Ustaw, Uruchom, Odczytaj wyniki i Udostępnij lub eksportuj, z bieżącym krokiem 4. Kluczowe wartości: 102 satelitów, dostępność 100 % (PASS), mediana współczynnika rozmycia dokładności pozycji (PDOP) 0,95 (PASS), 95. percentyl PDOP 1,105 (PASS), średnio 31,03 satelitów w zasięgu i 22 najmniej. Poniżej rząd paneli z wybranym Pokryciem, pasek odtwarzania, mapa świata średniego PDOP od 0,831 do 1,0853 z narysowanym każdym satelitą oraz globalne wartości pokrycia.Kshana Studio, widok zaawansowany, po przebiegu dołączonego scenariusza constellation-multi-gnss-coverage (Cztery konstelacje GNSS, jedna mapa), silnik v0.40.0 działa lokalnie. Po lewej biblioteka scenariuszy, 139 scenariuszy w 16 dziedzinach. Pięć kroków Wybierz, Ustaw, Uruchom, Odczytaj wyniki i Udostępnij lub eksportuj, z bieżącym krokiem 4. Kluczowe wartości: 102 satelitów, dostępność 100 % (PASS), mediana współczynnika rozmycia dokładności pozycji (PDOP) 0,95 (PASS), 95. percentyl PDOP 1,105 (PASS), średnio 31,03 satelitów w zasięgu i 22 najmniej. Poniżej rząd paneli z wybranym Pokryciem, pasek odtwarzania, mapa świata średniego PDOP od 0,831 do 1,0853 z narysowanym każdym satelitą oraz globalne wartości pokrycia.

Źródło Studio i jego uwagi do budowania są w web/README.md.

Witryna#

Reszta kshana.dev jest budowana z własnych plików tego repozytorium i przebiegów silnika: misje, możliwości, rejestr dowodowy, opublikowane badania i wydania.

Trzy strony kshana.dev obok siebie. Strona główna, hero: wiersz z nazwą Kshana · क्षण · the precise instant nad nagłówkiem Przećwicz minutę, w której GNSS gaśnie, z konsolą misji prawdziwego przebiegu silnika v0.40.0 (glob i trzy wykresy na żywo: błąd czasu zegara, stosunek nośnej do szumu i poziom ochrony). Dowody, Opublikowane badania: sześć prac na arXiv zbudowanych na otwartym silniku, najnowsza z wartością silnika. Wydania, Kshana Pro, ten sam silnik, wzmocniony: Free uruchamia jeden scenariusz, Pro odpowiada na pytanie programu.Trzy strony kshana.dev obok siebie. Strona główna, hero: wiersz z nazwą Kshana · क्षण · the precise instant nad nagłówkiem Przećwicz minutę, w której GNSS gaśnie, z konsolą misji prawdziwego przebiegu silnika v0.40.0 (glob i trzy wykresy na żywo: błąd czasu zegara, stosunek nośnej do szumu i poziom ochrony). Dowody, Opublikowane badania: sześć prac na arXiv zbudowanych na otwartym silniku, najnowsza z wartością silnika. Wydania, Kshana Pro, ten sam silnik, wzmocniony: Free uruchamia jeden scenariusz, Pro odpowiada na pytanie programu.

Możliwości#

Jeden silnik obejmuje cały łańcuch awarii, od pierwszego zagłuszonego satelity po ostatnią nanosekundę holdover zegara. Silnik ma 92 rodzajów scenariuszy; kshana kinds je wymienia, a docs/SCENARIOS.md dokumentuje każde pole.

Możliwość Na co odpowiada
Widmo jak zagłuszacz (jammer) zajmuje pasmo L GNSS, pasmo po paśmie, sekunda po sekundzie
Zegary i synchronizacja czasu jak długo każdy zegar utrzymuje czas po utracie GNSS
Konstelacje wokół dowolnego ciała pokrycie, współczynnik DOP (rozmycie dokładności) i dostępność wokół Ziemi, Księżyca lub Marsa
Układ Słoneczny gdzie znajduje się każda planeta i jaki jest czas propagacji światła na dowolnym łączu
Nawigacja z niskiej orbity okołoziemskiej przelot, łącze, komunikat nawigacyjny i połączone rozwiązanie pozycji, etap po etapie
Kampanie misja łańcuchowa, przegląd parametru lub zespół Monte Carlo w jednym scenariuszu
Animacja szereg czasowy przebiegu jako animowany rysunek, odtwarzacz lub klatki
Raporty każda wartość z jednostką i etykietą, w HTML (HyperText Markup Language) i JSON (JavaScript Object Notation)
Eksporty interoperacyjności orbity i geometria dla innych narzędzi: SP3, CCSDS OMM i OEM, CZML, KML, GeoJSON, STK i SigMF
Zaufanie na morzu czy mostek może zaufać tej pozycji: wskaźnik 0-100 i przyczyny dla NMEA statku, na żywo lub z dziennika (wyłącznie doradczo, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu)
Strumienie szkoleniowe NMEA syntetyczne NMEA mostka ze scenariuszowym zagłuszaniem i spoofingiem oraz dziennikiem instruktora, do szkolenia załóg (tylko tekst; nigdy dla żywych systemów nawigacyjnych statku; wyłącznie doradczo, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu)
Mapa zakłóceń gdzie statki powietrzne i statki zgłaszały pogorszone dane nawigacyjne i jak duży fragment trasy to obejmuje
Obszar emitera gdzie, przy podanych założeniach, może znajdować się źródło pogorszonych raportów pozycji: obszary na podanej ufności, centroid z jego elipsą, nigdy punkt (MODELLED; kshana interference-map locate)
Pakiety dowodowe podpisany, weryfikowalny offline zapis techniczny okna dziennika statku i tego, co silnik z niego obliczył, do raportu z incydentu (wyłącznie doradczo, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu)
Telemetria zaufania strumień zaufania jako metryki Prometheus, zdarzenia SIEM i opcjonalnie OpenTelemetry, z przykładowym panelem Grafana (deploy/grafana/kshana-gnss-trust.json)
Signal K i OpenCPN wskaźnik zaufania na serwerze Signal K łodzi i w OpenCPN, z referencyjną konfiguracją dla małego komputera przy odbiorniku (wyłącznie doradczo, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu)
Eksport dla test bench kshana bench-export: ruch pojazdu i zdarzenia ze scenariusza dla laboratoryjnego symulatora GNSS (nie zapisuje się żadnego sygnału) oraz sposób późniejszej oceny dziennika odbiornika
Mapowanie compliance i raport kshana compliance-report: dla których wierszy publicznych ram odporności zestaw przebiegów dostarcza dowodów na (supports evidence for) oraz jaka luka pozostaje
Notatniki uruchamialne samouczki: strumienie zaufania i szkolenia dla statku, narażenie trasy na mapie zakłóceń, mapowanie compliance i bench testowy, GDOP kwantowy a klasyczny
Weryfikator Galileo OSNMA dane nawigacyjne których satelitów odbiornik może uwierzytelnić kryptograficznie i dlaczego kontrola się nie powodzi; Kshana nie przyznaje żadnych praw w ramach IPR do ICD OSNMA UE (zob. NOTICE na stronie)

Formaty eksportu w pełnej formie: SP3 to Standard Product 3; CCSDS OMM i OEM to Orbit Mean-elements Message i Orbit Ephemeris Message Konsultacyjnego Komitetu ds. Systemów Danych Kosmicznych; CZML i KML to języki znaczników Cesium i Keyhole; STK to Systems Tool Kit; SigMF to Signal Metadata Format.

Łańcuchowa kampania campaign-jam-spoof-holdover-integrity, jeden rzeczywisty przebieg silnika (ziarno 20260928): 6 faz (Nominal → Jamming → Spoofing → Holdover → Integrity alarm → Recovery) i 18 przebiegów składowych na siatce 10 s w przedziale T+01:16:10. Trzy tory: błąd czasu zegara względem bariery 50 ns (szczyt 62,7 ns), efektywna gęstość nośnej do szumu względem progu 25 dB-Hz (minimum -12.2 dB-Hz) oraz pionowy poziom ochrony względem limitu alarmowego 50 m (szczyt 135,4 m), ze zdarzeniami alarmowymi przebiegu: T+00:20:00 alarm detektora spoofingu RF (połączone monitory spójności, mocy i jakości sygnału); T+00:26:10 alarm monitora spoofingu wspomaganego zegarem.Łańcuchowa kampania campaign-jam-spoof-holdover-integrity, jeden rzeczywisty przebieg silnika (ziarno 20260928): 6 faz (Nominal → Jamming → Spoofing → Holdover → Integrity alarm → Recovery) i 18 przebiegów składowych na siatce 10 s w przedziale T+01:16:10. Trzy tory: błąd czasu zegara względem bariery 50 ns (szczyt 62,7 ns), efektywna gęstość nośnej do szumu względem progu 25 dB-Hz (minimum -12.2 dB-Hz) oraz pionowy poziom ochrony względem limitu alarmowego 50 m (szczyt 135,4 m), ze zdarzeniami alarmowymi przebiegu: T+00:20:00 alarm detektora spoofingu RF (połączone monitory spójności, mocy i jakości sygnału); T+00:26:10 alarm monitora spoofingu wspomaganego zegarem.
Każda możliwość, pokazana na rzeczywistym przebiegu: wodospad pasma L, mapa pokrycia, Układ Słoneczny i przelot na niskiej orbicie okołoziemskiej
Pasmo L GNSS jako jedna widmowa gęstość mocy w czasie 60 s, z rzeczywistego przebiegu rodzaju spectrum (l-band-waterfall-jamming.toml, ziarno 7, silnik v0.40.0): częstotliwość w poziomie, czas w dół, kolor oznacza moc powyżej poziomu szumu -202.0 dBW/Hz. Zagłuszacze: urządzenie chirp do ochrony prywatności (chirp, włączone w 10 s, wyłączone w 40 s); ton CW na L1 (cw, włączony w 30 s); szum wąskopasmowy na L2 (narrowband, włączony w 45 s). Najgorsze pasmo GPS L1 C/A: minimalne efektywne C/N0 3,2 dB-Hz w 31 s względem progu śledzenia 25 dB-Hz. GPS L1 C/A minimum 3,2 dB-Hz; Galileo E1 minimum 4,7 dB-Hz; GPS L2C minimum 36,9 dB-Hz; GPS L5 minimum 44,1 dB-Hz; Galileo E5a minimum 47,0 dB-Hz.Pasmo L GNSS jako jedna widmowa gęstość mocy w czasie 60 s, z rzeczywistego przebiegu rodzaju spectrum (l-band-waterfall-jamming.toml, ziarno 7, silnik v0.40.0): częstotliwość w poziomie, czas w dół, kolor oznacza moc powyżej poziomu szumu -202.0 dBW/Hz. Zagłuszacze: urządzenie chirp do ochrony prywatności (chirp, włączone w 10 s, wyłączone w 40 s); ton CW na L1 (cw, włączony w 30 s); szum wąskopasmowy na L2 (narrowband, włączony w 45 s). Najgorsze pasmo GPS L1 C/A: minimalne efektywne C/N0 3,2 dB-Hz w 31 s względem progu śledzenia 25 dB-Hz. GPS L1 C/A minimum 3,2 dB-Hz; Galileo E1 minimum 4,7 dB-Hz; GPS L2C minimum 36,9 dB-Hz; GPS L5 minimum 44,1 dB-Hz; Galileo E5a minimum 47,0 dB-Hz. Satelity widoczne nad całą Ziemią przez jedną dobę, z rzeczywistego przebiegu constellation-design (constellation-multi-gnss-coverage.toml, silnik uruchomiony przez ten generator): 102 satelitów (GPS 24, Galileo 24, BeiDou 30, GLONASS 24). Każda 10-stopniowa komórka jest zacieniowana według średniej liczby satelitów nad maską 10 stopni (27,2 do 36,5); kropki to próbki śladu naziemnego z silnika, jedna na godzinę na satelitę. Globalna dostępność 100,00 % przy PDOP nie większym niż 6, mediana PDOP 0,95, średnio 31,0 i co najmniej 22 widocznych satelitów.Satelity widoczne nad całą Ziemią przez jedną dobę, z rzeczywistego przebiegu constellation-design (constellation-multi-gnss-coverage.toml, silnik uruchomiony przez ten generator): 102 satelitów (GPS 24, Galileo 24, BeiDou 30, GLONASS 24). Każda 10-stopniowa komórka jest zacieniowana według średniej liczby satelitów nad maską 10 stopni (27,2 do 36,5); kropki to próbki śladu naziemnego z silnika, jedna na godzinę na satelitę. Globalna dostępność 100,00 % przy PDOP nie większym niż 6, mediana PDOP 0,95, średnio 31,0 i co najmniej 22 widocznych satelitów. Układ Słoneczny w epoce scenariusza 2026-09-28T00:00:00, z rzeczywistego przebiegu rodzaju solar-system (solar-system-tour.toml): Słońce, 9 planet i planeta karłowata Pluton widziane znad ekliptyki, odległości skompresowane logarytmicznie na potrzeby wyświetlania, wraz z jednokierunkowym czasem propagacji światła każdego ciała od Ziemi. Merkury 0,47 au, 10,1 minut świetlnych, VALIDATED; Wenus 0,73 au, 3,0 minut świetlnych, VALIDATED; Mars 1,55 au, 14,0 minut świetlnych, VALIDATED; Jowisz 5,30 au, 49,5 minut świetlnych, VALIDATED; Saturn 9,44 au, 70,2 minut świetlnych, VALIDATED; Uran 19,44 au, 157,4 minut świetlnych, MODELLED; Neptun 29,88 au, 240,2 minut świetlnych, MODELLED; Pluton 35,61 au, 292,2 minut świetlnych, MODELLED. Łącza: Mars do Jowisza w jedną stronę 2193,5 s; Saturn do Ziemi w jedną stronę 4212,2 s; Europa do Jowisza w jedną stronę 2,2 s.Układ Słoneczny w epoce scenariusza 2026-09-28T00:00:00, z rzeczywistego przebiegu rodzaju solar-system (solar-system-tour.toml): Słońce, 9 planet i planeta karłowata Pluton widziane znad ekliptyki, odległości skompresowane logarytmicznie na potrzeby wyświetlania, wraz z jednokierunkowym czasem propagacji światła każdego ciała od Ziemi. Merkury 0,47 au, 10,1 minut świetlnych, VALIDATED; Wenus 0,73 au, 3,0 minut świetlnych, VALIDATED; Mars 1,55 au, 14,0 minut świetlnych, VALIDATED; Jowisz 5,30 au, 49,5 minut świetlnych, VALIDATED; Saturn 9,44 au, 70,2 minut świetlnych, VALIDATED; Uran 19,44 au, 157,4 minut świetlnych, MODELLED; Neptun 29,88 au, 240,2 minut świetlnych, MODELLED; Pluton 35,61 au, 292,2 minut świetlnych, MODELLED. Łącza: Mars do Jowisza w jedną stronę 2193,5 s; Saturn do Ziemi w jedną stronę 4212,2 s; Europa do Jowisza w jedną stronę 2,2 s. Jeden przelot na niskiej orbicie okołoziemskiej (LEO) z rzeczywistego przebiegu rodzaju leo-pass (leo-pass-iridium.toml, silnik uruchomiony przez ten generator): Iridium-pass na wysokości 781 km, pasmo STL 1621 MHz, widziany przez użytkownika w powietrzu na 50° N 30° W. Nad maską 5° przez 750 s, maksymalna elewacja 65,0° w 444 s. Gęstość nośnej do szumu osiąga szczyt 80,5 dB-Hz (mediana 71,3), o 34,3 dB powyżej mediany GNSS 46,2 dB-Hz z 8 widocznych satelitów GPS (od 38,2 do 51,1 dB-Hz); Doppler sięga 35,4 kHz.Jeden przelot na niskiej orbicie okołoziemskiej (LEO) z rzeczywistego przebiegu rodzaju leo-pass (leo-pass-iridium.toml, silnik uruchomiony przez ten generator): Iridium-pass na wysokości 781 km, pasmo STL 1621 MHz, widziany przez użytkownika w powietrzu na 50° N 30° W. Nad maską 5° przez 750 s, maksymalna elewacja 65,0° w 444 s. Gęstość nośnej do szumu osiąga szczyt 80,5 dB-Hz (mediana 71,3), o 34,3 dB powyżej mediany GNSS 46,2 dB-Hz z 8 widocznych satelitów GPS (od 38,2 do 51,1 dB-Hz); Doppler sięga 35,4 kHz.

Uruchom dowolny z nich poleceniem kshana example <scenario> > s.toml && kshana s.toml: scenariusze to l-band-waterfall-jamming, constellation-multi-gnss-coverage, solar-system-tour i leo-pass-iridium.

Możliwości morskie i dotyczące zakłóceń, pokazane na zatwierdzonych syntetycznych danych wejściowych: wskaźnik zaufania, mapa zakłóceń z narażeniem trasy, strumień szkoleniowy i pakiet dowodowy
Wskaźnik zaufania podczas jednego syntetycznego rejsu, z rzeczywistego przebiegu silnika v0.40.0 na examples/maritime-trust (zmyślony dziennik NMEA promu na trasie Tallinn–Helsinki, 3001 epok przy 1 Hz). Trzy pasy dzielą jedną oś czasu. Góra: odległość między pozycją zgłaszaną przez odbiornik a rzeczywistą pozycją statku, która pozostaje w granicach kilku metrów do około 1576 s, gdy zaplanowane w dzienniku odciągnięcie pozycji ją odsuwa, podczas gdy odbiornik nadal zgłasza ważne rozwiązanie pozycji. Środek: wskaźnik zaufania od 0 do 100, nieobliczany w pierwszych 300 s kalibracji, w przedziale nominalnym (co najmniej 90) do odciągnięcia pozycji, a potem spadający przez przedział obniżony (co najmniej 55) do przedziału braku zaufania. Dół: przedział każdej epoki jako kolorowa wstęga z jego nazwą. Wynik ma charakter doradczy. Oprogramowanie wyłącznie doradcze, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu (IEC 61108, IEC 61162): za nawigację statku odpowiada nadal operator. Dziennik jest zmyślony, aby pokazać format i monitory; nie jest pomiarem i nic nie mówi o tym, jak poradziłby sobie jakikolwiek odbiornik.Wskaźnik zaufania podczas jednego syntetycznego rejsu, z rzeczywistego przebiegu silnika v0.40.0 na examples/maritime-trust (zmyślony dziennik NMEA promu na trasie Tallinn–Helsinki, 3001 epok przy 1 Hz). Trzy pasy dzielą jedną oś czasu. Góra: odległość między pozycją zgłaszaną przez odbiornik a rzeczywistą pozycją statku, która pozostaje w granicach kilku metrów do około 1576 s, gdy zaplanowane w dzienniku odciągnięcie pozycji ją odsuwa, podczas gdy odbiornik nadal zgłasza ważne rozwiązanie pozycji. Środek: wskaźnik zaufania od 0 do 100, nieobliczany w pierwszych 300 s kalibracji, w przedziale nominalnym (co najmniej 90) do odciągnięcia pozycji, a potem spadający przez przedział obniżony (co najmniej 55) do przedziału braku zaufania. Dół: przedział każdej epoki jako kolorowa wstęga z jego nazwą. Wynik ma charakter doradczy. Oprogramowanie wyłącznie doradcze, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu (IEC 61108, IEC 61162): za nawigację statku odpowiada nadal operator. Dziennik jest zmyślony, aby pokazać format i monitory; nie jest pomiarem i nic nie mówi o tym, jak poradziłby sobie jakikolwiek odbiornik. Dwa syntetyczne dni mapy zakłóceń narysowane z zatwierdzonych próbek w examples/interference-map/output, każdy z własną syntetyczną trasą i udziałami ekspozycji trasy, które podaje silnik. Po lewej dzień ADS-B: 1 komórka z pogorszeniem, 6 bez pogorszenia, 4 nieocenione (kreskowane) oraz komórki bez wpisu, narysowane jako puste, które nie były obserwowane. Trasa ma 525 km: 11,5% jej długości w komórkach z pogorszeniem, 38,3% bez pogorszenia, 9,1% nieocenione i 41,1% nieobserwowane. Po prawej dzień AIS: komórki oznaczone przez detektory okręgu i lądu, komórki bez anomalii i puste komórki; trasa ma 454 km, z 10,5% w komórkach z anomalią, 21,2% bez anomalii, 0,0% nieocenione i 68,3% nieobserwowane. ADS-B i AIS są oddzielnymi warstwami, nigdy niełączonymi. Oznaczona komórka nie jest stwierdzeniem zakłóceń, a komórka bez koloru nie była obserwowana, co nie oznacza, że było czysto. Wszystkie dane są zmyślone, na otwartym środkowym Atlantyku, i nie są pomiarem.Dwa syntetyczne dni mapy zakłóceń narysowane z zatwierdzonych próbek w examples/interference-map/output, każdy z własną syntetyczną trasą i udziałami ekspozycji trasy, które podaje silnik. Po lewej dzień ADS-B: 1 komórka z pogorszeniem, 6 bez pogorszenia, 4 nieocenione (kreskowane) oraz komórki bez wpisu, narysowane jako puste, które nie były obserwowane. Trasa ma 525 km: 11,5% jej długości w komórkach z pogorszeniem, 38,3% bez pogorszenia, 9,1% nieocenione i 41,1% nieobserwowane. Po prawej dzień AIS: komórki oznaczone przez detektory okręgu i lądu, komórki bez anomalii i puste komórki; trasa ma 454 km, z 10,5% w komórkach z anomalią, 21,2% bez anomalii, 0,0% nieocenione i 68,3% nieobserwowane. ADS-B i AIS są oddzielnymi warstwami, nigdy niełączonymi. Oznaczona komórka nie jest stwierdzeniem zakłóceń, a komórka bez koloru nie była obserwowana, co nie oznacza, że było czysto. Wszystkie dane są zmyślone, na otwartym środkowym Atlantyku, i nie są pomiarem. Strumień szkoleniowy ze scenariusza coastal-drag-off (silnik v0.40.0, ziarno 22, 25 minut przy jednym rozwiązaniu na 10 s z dziennika instruktora). Mapa pokazuje prawdziwy tor statku i tor raportowany przez odbiornik: zgadzają się, dopóki nie zaczyna się zaplanowane odciąganie pozycji w 421 s, po czym raportowany tor oddala się od prawdziwego, podczas gdy odbiornik utrzymuje ważne rozwiązanie, i wraca skokiem, gdy zdarzenie kończy się w 1140 s. Obok widać odległość między oboma torami w czasie oraz średnią gęstość nośnej do szumu raportowaną przez odbiornik, która rośnie do jednego podwyższonego poziomu na czas trwania zdarzenia. Syntetyczne dane szkoleniowe wygenerowane przez Kshana. Wyłącznie do szkoleń i testów: nigdy nie podawaj tego strumienia do żywych systemów nawigacyjnych statku. Wyłącznie doradczo: nie jest to sprzęt nawigacyjny z zatwierdzeniem typu. Oprogramowanie wyłącznie doradcze, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu (IEC 61108, IEC 61162): za nawigację statku odpowiada nadal operator. Pozycje, daty i tory są zmyślone.Strumień szkoleniowy ze scenariusza coastal-drag-off (silnik v0.40.0, ziarno 22, 25 minut przy jednym rozwiązaniu na 10 s z dziennika instruktora). Mapa pokazuje prawdziwy tor statku i tor raportowany przez odbiornik: zgadzają się, dopóki nie zaczyna się zaplanowane odciąganie pozycji w 421 s, po czym raportowany tor oddala się od prawdziwego, podczas gdy odbiornik utrzymuje ważne rozwiązanie, i wraca skokiem, gdy zdarzenie kończy się w 1140 s. Obok widać odległość między oboma torami w czasie oraz średnią gęstość nośnej do szumu raportowaną przez odbiornik, która rośnie do jednego podwyższonego poziomu na czas trwania zdarzenia. Syntetyczne dane szkoleniowe wygenerowane przez Kshana. Wyłącznie do szkoleń i testów: nigdy nie podawaj tego strumienia do żywych systemów nawigacyjnych statku. Wyłącznie doradczo: nie jest to sprzęt nawigacyjny z zatwierdzeniem typu. Oprogramowanie wyłącznie doradcze, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu (IEC 61108, IEC 61162): za nawigację statku odpowiada nadal operator. Pozycje, daty i tory są zmyślone. Struktura pakietu dowodowego. Dziennik odbiornika (NMEA, u-blox UBX, RINEX 3 lub dziennik Androida) i okno czasowe trafiają do kshana receiver-trust evidence, które zapisuje siedem plików: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig i opcjonalny timestamp.tsr. Manifest zapisuje SHA-256 całego dziennika i każdego pliku oraz łańcuch skrótów po plikach; podpis obejmuje manifest. kshana evidence verify sprawdza podpis, skrót każdego pliku, łańcuch oraz to, że nie ma pliku spoza listy, i kończy się kodem 0, gdy zweryfikowano, 1, gdy coś zawiodło, i 3, gdy podpisujący nie był przypięty. Pakiet jest zapisem technicznym, a nie opinią prawną.Struktura pakietu dowodowego. Dziennik odbiornika (NMEA, u-blox UBX, RINEX 3 lub dziennik Androida) i okno czasowe trafiają do kshana receiver-trust evidence, które zapisuje siedem plików: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig i opcjonalny timestamp.tsr. Manifest zapisuje SHA-256 całego dziennika i każdego pliku oraz łańcuch skrótów po plikach; podpis obejmuje manifest. kshana evidence verify sprawdza podpis, skrót każdego pliku, łańcuch oraz to, że nie ma pliku spoza listy, i kończy się kodem 0, gdy zweryfikowano, 1, gdy coś zawiodło, i 3, gdy podpisujący nie był przypięty. Pakiet jest zapisem technicznym, a nie opinią prawną.

Wszystkie cztery to dane wymyślone i doradcze: pokazują format i zachowanie oprogramowania, a nie to, jak jakikolwiek odbiornik lub system radzi sobie z zakłóceniami. Pierwszy uruchom poleceniem kshana receiver-trust examples/maritime-trust/session.toml, drugi poleceniem kshana route-exposure na próbkach w examples/interference-map/, trzeci poleceniem kshana nmea-scenario scenarios/training/coastal-drag-off.toml --out drag.nmea (tylko do szkolenia: nigdy nie podawaj go na wejście żywego sprzętu nawigacyjnego), a czwarty jak w docs/EVIDENCE-PACKS.md.

Pełna tabela możliwości, dziedzina po dziedzinie

Poniżej pełny opis dziedzina po dziedzinie; rejestr dojrzałości poszczególnych możliwości znajdziesz w docs/CAPABILITY.md i docs/VALIDATION.md.

Dziedzina Możliwość
Orbita i geometria Propagacja SGP4/SDP4 (sprawdzona do 4,12 mm względem wszystkich 666 wektorów AIAA 2006-6753); rzeczywiste elementy dwuwierszowe (zatwierdzona, opatrzona datą migawka Celestrak gps-ops) lub syntetyczne konstelacje Walker-delta, których średnie elementy realizują wzór i:T/P/F z dokładnością poniżej 1 km podczas 24 h propagacji; widoczność wielu konstelacji, rozmycie dokładności — geometryczne, pozycji, poziome, pionowe i czasu (GDOP/PDOP/HDOP/VDOP/TDOP), sprawdzone do 1e-6 względem gnss_lib_py 1.0.4, Stanford NAV Lab (Navigation and Autonomous Vehicles Laboratory) oraz dostępność GNSS; bezgradientowy optymalizator konstelacji, wymiarowanie minimalnej liczby satelitów metodą streets-of-coverage, narzędzie do porównywania wielu konstelacji oraz przegląd projektów Walkera, który zestawia w tabeli pokrycie / PDOP / czas rewizyty na siatce płaszczyzn × satelitów i podaje projekty optymalne w sensie Pareto.
Propagator numeryczny Numeryczny propagator Cowella (src/propagator.rs) uzupełniający analityczną ścieżkę SGP4/SDP4, z hierarchicznym modelem sił z siedmioma perturbacjami (src/forces.rs): dwa ciała + pełne pole zonalne J2–J6 (zonalne współczynniki harmoniczne spłaszczenia Ziemi od J2 do J6; dokładny analityczny gradient jego potencjału zakłócającego), opcjonalny tesseralny geopotencjał harmoniczny sferyczny EGM2008 do stopnia i rzędu 70 (Earth Gravitational Model 2008; src/gravity_sh.rs; rzeczywiste współczynniki NGA — US (United States) National Geospatial-Intelligence Agency — rekurencja znormalizowanych funkcji Legendre'a Holmesa–Featherstone'a, sprawdzona krzyżowo względem zamkniętych postaci funkcji Legendre'a i tożsamości analitycznej ∇V), grawitacja trzeciego ciała Słońca i Księżyca zależna od epoki (wbudowane efemerydy niskiej dokładności, bez jądra DE/SPK — Development Ephemeris / SPICE Spacecraft and Planet Kernel), ciśnienie promieniowania słonecznego (model kuli armatniej ze stożkowym cieniem i półcieniem), opór atmosferyczny (gęstość odcinkowo wykładnicza wg Vallado, współobracająca się atmosfera), postnewtonowska poprawka relatywistyczna Schwarzschilda oraz człon wleczenia układów inercjalnych Lense'a–Thirringa (IERS — International Earth Rotation and Reference Systems Service — Conventions 2010 §10, liniowy względem momentu pędu Ziemi, o ~1–2 rzędy wielkości poniżej członu Schwarzschilda) — napędzany do wyboru jednym z dwóch adaptacyjnych integratorów (RK4 — Runge–Kutta czwartego rzędu — z podwajaniem kroku lub wbudowana para Dormanda–Prince'a RK5(4)). Sprawdzone względem Orekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 — 278 epok na LEO (niska orbita okołoziemska) + GTO (orbita transferowa do geostacjonarnej), przy czym poziomy sił zachowawczych zgadzają się w najgorszym przypadku do |Δr| 0,08 m w ciągu 24 h (tests/numerical_cowell_propagator_reference.rs); poziom oporu atmosferycznego jest scharakteryzowany osobno (≈ 333 m / 24 h), a bezwzględne wejścia efemeryd Słońca i Księżyca oraz gęstości pozostają, zgodnie z prawdą, obliczone z modelu. Dodatkowe dowody wewnętrzne (nie są to walidacja zewnętrzna): orbita bez perturbacji jest sprawdzona względem dokładnego rozwiązania Keplera w zmiennych uniwersalnych do poniżej metra w ciągu 24 h, energia i moment pędu zachowują się do ~1e-9, a każda perturbacja zgadza się z wyprowadzoną ręcznie sygnaturą w postaci zamkniętej.
Manewry i projektowanie trajektorii Impulsowe węzły ΔV z propagacją kowariancji 6×6 (ramy błędów wykonania ECI — Earth-centred inertial — / LVLH — local vertical, local horizontal), całkowanie manewru o skończonym czasie trwania sprawdzone względem zamkniętego równania rakietowego Ciołkowskiego do < 0,01 %, jednoobrotowy solver Lamberta Izzo-2015, dokładny propagator Keplera w zmiennych uniwersalnych oraz przegląd porkchop (start × przylot) C3 (energia startu) / V∞ przylotu zapisywany jako siatka konturów JSON — warstwa symulacji osiągów nad GMAT/Orekit, w której każdy wynik Lamberta jest odtworzony względem prawdy dla dwóch ciał, a minimum porkchop sprawdzone względem analitycznego minimum Hohmanna.
Systemy czasu i układy odniesienia Skale UTC / TAI / TT / UT1 IERS z sekundami przestępnymi (Coordinated Universal Time, International Atomic Time, Terrestrial Time oraz czas rotacji Ziemi Universal Time 1), API (application programming interface) dat juliańskich, kąt rotacji Ziemi (ERA) wg IAU-2000 (International Astronomical Union), TEME ↔ ECEF oparte na GMST (Greenwich Mean Sidereal Time) (true equator, mean equinox ↔ Earth-centred, Earth-fixed) z geodezyjnymi układami WGS-84 (World Geodetic System 1984), precesja IAU 2006 (Fukushima–Williams), pełna nutacja IAU 2000A/2000B, ruch bieguna IERS oraz niezależna od równonocy redukcja GCRS↔ITRS IAU 2006/2000A oparta na CIO (CIO = Celestial Intermediate Origin) — wszystko sprawdzone co do bitu względem wektorów SOFA/ERFA oraz niezależnie sprawdzone krzyżowo względem ANISE (czysto rustowa reimplementacja NAIF/SPICE; NAIF = the Navigation and Ancillary Information Facility of NASA, the US National Aeronautics and Space Administration): GCRS→ITRS w kshana względem ITRF93 w ANISE (International Terrestrial Reference Frame 1993) z earth_latest_high_prec.bpc z JPL, przy tych samych parametrach orientacji Ziemi IERS podanych obu, zgadzają się do ≤ 0,86 m na powierzchni Ziemi / ≤ 3,6 m na orbicie GNSS (maks. 0,028″) w ośmiu epokach 2020–2023.
Inercyjne Trójosiowy INS strapdown — orientacja kwaternionowa, mechanizacja WGS-84 NED (north-east-down), kompensacja coning/sculling oraz deterministyczny model błędów IMU (współczynnik skali, niewspółosiowość, wrażliwość na przyspieszenie, kwantyzacja, dryf); oparty na pierwszych zasadach akcelerometr z interferometrem zimnych atomów (faza Macha–Zehndera, kwantowy szum projekcji, zanik kontrastu, sprzężenie drgań), który wyprowadza współczynnik błądzenia losowego prędkości; oraz filtr cząsteczkowy z sekwencyjnym resamplingiem ważnościowym do nawigacji wspomaganej mapą (odniesienie do terenu lub grawitacji) bez GPS.
Alt-PNT (bez GPS) Model pomiaru grawimetru zimnoatomowego, którego próg szumu białego (σ = ASD/√τ, ASD = amplitude spectral density) wynika z fizyki akcelerometru CAI; niskostopniowe, w pełni znormalizowane pole anomalii grawitacyjnych w harmonikach sferycznych (sprawdzone względem zamkniętych postaci funkcji Legendre'a i ręcznie wyprowadzonej anomalii jednego członu) oraz syntetyczne masconsy; jądro syntezy funkcjonałów grawitacji (gravity_sh::gravity_magnitude / gravity_disturbance_mgal) — „czytnik mapy”, z którym dopasowuje się nawigator wspomagany grawitacją — jest sprawdzone względem standardu grawitacji normalnej GRS80 (Geodetic Reference System 1980), odtwarza zamkniętą postać grawitacji normalnej Somigliany i opublikowane γ_e / γ_p do 3.5e-12 oraz tworzy fizycznie ograniczoną mapę zaburzeń z rzeczywistego pola ICGEM (International Centre for Global Earth Models) EGM2008 (RMS — root mean square — ≈ 26 mGal, maks. ≈ 89 mGal przy d/o 70; tests/icgem_gravity_reference.rs); oraz filtr cząsteczkowy dopasowujący mapę grawitacji, który odtwarza trasę bez GPS z ciągu anomalii, przez który się przelatuje. Rozszerza się na nawigację odniesioną do terenu (TERCOM/SITAN — terrain contour matching / Sandia Inertial Terrain-Aided Navigation — względem SRTM (Shuttle Radar Topography Mission) .hgt DEM (cyfrowy model wysokościowy), src/altpnt/terrain.rs), główne pole geomagnetyczne IGRF-14 (14. generacja International Geomagnetic Reference Field) do stopnia i rzędu 13 (src/igrf.rs, sprawdzone względem zamkniętej postaci przechylonego dipola i różnic skończonych ∇V) oraz połączony nawigator grawitacja + magnetyzm + teren, który łączy wszystkie trzy kanały skalarne w jednym filtrze cząsteczkowym (informacja jest addytywna — żaden kanał nie pogarsza pozycji). 60-minutowy test z utratą GPS (przerwa trwająca godzinę na dystansie ~700 km, podczas której rozwiązanie inercyjne dryfuje do ~70 km) jest odtwarzany do ~145 m (< 500 m) przez hierarchiczny dopasowywacz od zgrubnego do dokładnego — cel Quantum Wayfarer w ESA NAVISP (Navigation Innovation and Support Programme).
Fuzja Luźno sprzężony 15-stanowy EKF błędów stanu GNSS/INS (extended Kalman filter) ze sprzężeniem zwrotnym w pętli zamkniętej (pakiet gnss-ins); ściśle sprzężona aktualizacja pseudoodległości, która nadal koryguje przy mniej niż czterech satelitach; sprzężony filtr zegar + pozycja; ogólny estymator Kalmana bezśladowego (punkty sigma) dla silnie nieliniowych pomiarów; ściśle sprzężony nawigator UKF GNSS/INS (pseudoodległość + Doppler), którego orbitalny lot bezwładny według modelu sił jest sprawdzony pod kątem samospójności do 0,77 m RMS w 30-minutowym przelocie LEO po łuku, obejmującym 120-sekundową przerwę GNSS (to wartość spójności filtra, a nie walidacja względem zewnętrznej wyroczni — ten nawigator pozostaje MODELLED); oraz pełny 17-stanowy ściśle sprzężony UKF GNSS/INS (pozycja, prędkość, błąd orientacji, biasy akcelerometru i żyroskopu, bias i dryf zegara), którego kwantowa nawigacja zliczeniowa CAI przechodzi 120-sekundową przerwę na wyprowadzonym błądzeniu losowym prędkości akcelerometru zimnoatomowego.
Wyznaczanie orbity Odtwarzanie stanu orbitalnego [r, v] z pomiarów odległości ze stacji naziemnej, z użyciem modelu sił dwóch ciał + J2 i integratora RK4 oraz korektora wsadowego Gaussa–Newtona (determine_orbit_batch, poniżej metra / mm·s⁻¹ z bezszumowych odległości, ~2 m przy progu szumu 5 m) i wariantu sekwencyjnego z filtrem bezśladowym (determine_orbit_sequential).
Obserwowalność i teoria estymacji Ogólna, wielokrotnego użytku warstwa informacji Fishera / Cramér–Rao (src/fim.rs): macierz informacyjna M = HᵀWH, dolne ograniczenie Cramér–Rao, rząd obserwowalności i przestrzeń zerowa defektu układu odniesienia (pseudoodwrotność Moore'a–Penrose'a) oraz skalary planowania eksperymentu D/A/E/T-optymalne z symetrycznego eigensolvera Jacobiego. Sprawdzone — wartości własne względem numpy.linalg.eigh, kowariancja CRLB względem σ²(XᵀX)⁻¹ przez numpy.linalg.inv oraz DOP GNSS z macierzy informacyjnej, wszystko zgodne do 1e-9 (tests/fim_observability_reference.rs), a dodatkowo sprawdzone krzyżowo względem zamkniętych ograniczeń Kaya (1993) z osiąganiem CRLB metodą Monte Carlo. Stanowi podstawę silnika DOP, CRLB pasywnej geolokalizacji i twierdzenia o obserwowalności bezwzględnej stacji księżycowej (poniżej).
Księżycowe i cislunarne Propagator kołowego ograniczonego problemu trzech ciał (CR3BP) Ziemia–Księżyc w układzie wirującym — zachowana stała Jacobiego i wszystkie pięć punktów Lagrange'a (src/cr3bp.rs) — teraz z macierzą przejścia stanu 6×6 (STM) i jednostrzałowym korektorem różnicowym (cr3bp_jacobian, propagate_state_stm, differential_correct_halo), który tworzy naprawdę okresowe orbity halo / NRHO (near-rectilinear halo orbit): STM jest sprawdzona względem różnic skończonych, skorygowane orbity zamykają się z dokładnością maszynową, a zasilenie opublikowanym stanem apolunium odtwarza południową orbitę NRHO L2 9:2 (L2 = drugi punkt Lagrange'a Ziemia–Księżyc; orbita Gateway) przy okresie ≈ 6,57 d / peryluniu ≈ 3 250 km, zgodnie z opublikowanymi ≈ 6,56 d / ≈ 3 370 km (rozwiązanie CR3BP — kołowe, bez Słońca — nie sprawdzone względem rzeczywistych efemeryd LANS (Lunar Augmented Navigation Service)/Gateway; selenocentryczna transformacja MCI/MCMF (Moon-centred inertial / Moon-centred, Moon-fixed) skorygowanej orbity to kolejny krok); oraz geometria PNT cislunarnego LunaNet / LNIS (LunaNet Interoperability Specification) (redukcja MCI↔MCMF, współrzędne selenograficzne) z przelotem ARAIM nad południowym biegunem Księżyca, który uczciwie ujawnia lukę integralności: σ_URE (błąd odległości użytkownika) ~30 m podnosi poziom ochrony znacznie powyżej limitu alarmowego 50 m (src/lunar.rs, scenarios/lunanet-araim.toml); oraz uzupełnienie DOP o nawigacyjne radiolatarnie powierzchniowe (src/lunar_beacon.rs), pokazujące, jak kilka zmierzonych radiolatarni dalmierczych na powierzchni dostarcza wierszy linii widzenia o niskiej elewacji i szerokim azymucie, których brakuje w zestawie samych orbit przelatujących nad głową — redukując źle uwarunkowany GDOP na biegunie południowym i, przez budżet błędów metodą pierwiastka z sumy kwadratów, uzyskaną dokładność pozycji w metrach (z ponownym użyciem jądra DOP sprawdzonego względem gnss_lib_py i zamkniętej postaci widoczności nad horyzontem bez atmosfery; analiza rozmycia dokładności jest opisana w arXiv:2607,06212).
Zestaw PNT księżycowego Zestaw nawigacji księżycowej/cislunarnej zbudowany na rdzeniu CR3BP, każdy element to uruchamialny kind: Lunar Coordinate Time (lunar-time-offset, src/lunar_time.rs — wiekowa szybkość LTC/TCL − TT z różnicy potencjału własnego + członu kinetycznego, podana z opublikowanym przedziałem 56–59 µs/dobę (LTC = Lunar Coordinate Time; TCL = jego francuska forma, Temps-Coordonnée Lunaire)); geodezyjna obserwabla opóźnienia VLBI księżycowego (very-long-baseline interferometry) (lunar-vlbi, src/lunar_vlbi.rs — opóźnienie i szybkość z różnicy dwóch odległości w polu bliskim na bazie ziemskiej, sprawdzone krzyżowo względem płaskofalowego Δ-DOR (delta differential one-way ranging) z tej samej bazy kodu w granicy pola dalekiego, pochodne cząstkowe zweryfikowane różnicami skończonymi); wspólny wielotechnikowy estymator OD + zegar w trybie wsadowym (lunar-joint-od-clock, src/lunar_combination.rs — dopasowanie Gaussa–Newtona łączące VLBI + odległości lokalne na Księżycu + odległości międzysatelitarne) niosący wynik obserwowalności Fishera: same pomiary wewnętrzne pozostawiają sześciostopniowy defekt układu odniesienia bryły sztywnej, więc bezwzględna pozycja stacji powierzchniowej jest nieobserwowalna, dopóki nie doda się powiązania z układem ziemskim — opóźnienie VLBI na bazie ziemskiej przywraca obserwowalność dla rzadkiej konstelacji i zaostrza ograniczenie Cramér–Rao dla bogatej, a bezwzględny układ odniesienia zamyka się przy trzech niewspółliniowych stacjach ziemskich (wynik obserwowalności opisany w arXiv:2607,02566); realizacja układu odniesienia (lunar-frame-realisation, src/lunar_frame_realise.rs — 7-parametrowe dopasowanie układu odniesienia Helmerta + powiązanie orientacji WGCCRE IAU 2015 — WGCCRE = the IAU Working Group on Cartographic Coordinates and Rotational Elements); analiza obszaru usługi klasy Moonlight/LCNS (LCNS = Lunar Communications and Navigation Services; moonlight-service-volume, src/lunar_service.rs — DOP / pokrycie / dostępność + uogólniona obwiednia HPL/VPL (poziomy i pionowy poziom ochrony) księżycowego ARAIM, z ponownym użyciem jądra DOP sprawdzonego względem gnss_lib_py i mechanizmu LunaNet σ_URE≈30 m); księżycowy różnicowy PNT (lunar-differential-pnt, src/lunar_dpnt.rs — księżycowy odpowiednik różnicowego GNSS / systemu wspomagania opartego na satelitach (SBAS): dokładne znoszenie wspólnego błędu zegara + dekorelacja przestrzenna pierwszego rzędu względem bazy, z ponownym użyciem poziomu ochrony SBAS wg DO-229E — DO-229E to minimalny operacyjny standard osiągów RTCA (dawniej Radio Technical Commission for Aeronautics) dla odbiorników SBAS); oraz eksport interoperacyjności dostosowany do LunaNet/IOAG (IOAG = Interagency Operations Advisory Group; lunar-interop-export, src/lunar_interop.rs — CCSDS-OEM (Orbit Ephemeris Message) + podróż w obie strony skali czasu księżycowego w księżycowym układzie ciała IAU 2015, opakowane w kopertę KIF). Poziomy dowodowe poszczególnych elementów podano w macierzy weryfikacji: Lunar Coordinate Time, wspólny estymator OD + zegar, realizacja układu odniesienia i geometria obszaru usługi są VALIDATED (każde względem niezależnej wyroczni wskazanej w jego wierszu, tak samo ścieżka jądra opóźnienia VLBI); obserwabla VLBI, wynik obserwowalności defektu układu odniesienia, różnicowy PNT i eksport interoperacyjności są MODELLED. Parametry to ilustracyjne wartości ze źródeł publicznych — nie sprawdzone względem rzeczywistego śledzenia VLBI/Gateway, nie powiązane z żadną agencją ani przez nią nieaprobowane, bez twierdzeń o TRL (poziom gotowości technologicznej) / doświadczeniu eksploatacyjnym.
PNT w przestrzeni kosmicznej i na Marsie Otwarty silnik nawigacji radiometrycznej: iteracyjny czas propagacji światła + relatywistyczne opóźnienie Shapiro, dwu-/jedno-/trójdrogowy Doppler i odległość (dwa odcinki wg Moyera), współczynniki zwrotu spójnego transpondera, odległościowanie regeneracyjne/PN (pseudo-noise) (CCSDS 414, standard odległościowania pseudoszumowego) oraz Δ-DOR w płaszczyźnie nieba (CCSDS 506, standard Delta-DOR), z mediami: plazma słoneczna/troposfera/jonosfera; parsowanie i emisja komunikatów danych śledzenia CCSDS-TDM (503); filtr informacyjny pierwiastkowy ze zredukowaną dynamiką (RTN — radialny, poprzeczny, normalny — przyspieszenia empiryczne + 3-stanowy zegar pokładowy + opór atmosfery Marsa), który wykonuje wyznaczanie orbity LMO Marsa z dokładnością ≈ 0,2 m w syntetycznej pętli zamkniętej; wspólny estymator fuzji jednokierunkowej i dwukierunkowej; rdzeń dynamiki wielociałowej (Body{μ, re, zonals, gravity, IAU-pole}, grawitacja Mars GMM-3 (Goddard Mars Model 3), układ związany z ciałem Marsa wg IAU, wymienne złącze EphemerisProvider, dwuczęściowe daty juliańskie + TT↔TDB (Barycentric Dynamical Time)) oraz scenariusz przekaźnika PNT mars-pnt (konstelacja przekaźników areostacjonarnych MARCONI) z kompletnym symulatorem osiągów GSE (GSE = ground-support equipment) (geometria → budżet łącza → obserwable → SRIF → kowariancja). Sprawdzone symulacją (wartości jakości kowariancji / pętli zamkniętej); dynamika Marsa ze Słońcem w centrum jest sprawdzona krzyżowo względem JPL DE440 (137 m @ łuk 1-dobowy, xval/anise-mars-od). Walidacja na rzeczywistych danych śledzenia DSN/ESTRACK jest w planie.
PNT dla Układu Słonecznego i dowolnego ciała Bezjądrowe efemerydy całego Układu Słonecznego (src/ephem.rs, src/ephem_provider.rs): każda planeta z elementów keplerowskich Standisha JPL (Tabela 1, lata 1800–2050 n.e.; Tabele 2a/2b, 3000 p.n.e.–3000 n.e.) z opublikowanym nominalnym błędem każdej planety, Ziemia i Księżyc rozdzielone przez szereg księżycowy oraz Fobos, Deimos, Io, Europa, Ganimedes, Kallisto i Tytan z elementów średnich JPL i modelu rotacji IAU (International Astronomical Union); dowolne ciało względem dowolnego innego w ICRF (International Celestial Reference Frame). Body zawiera teraz GM (parametr grawitacyjny), promienie, J2 (drugą harmonikę zonalną) tam, gdzie opublikowano, oraz biegun i południk zerowy IAU dla osiemnastu ciał. Rodzaj solar-system podaje położenia, prędkości, stałe, czas propagacji światła i odległość jedno-/dwudrogową między dowolnymi dwoma ciałami (istniejący radiometryczny solver czasu propagacji światła, z opóźnieniem Shapiro od Słońca) oraz tor orbity każdego ciała — wystarczająco, by narysować interaktywny Układ Słoneczny; rodzaj body-pnt umieszcza orbiter lub lądownik wokół dowolnego ciała (scenarios/mars-orbit-pnt.toml, scenarios/europa-surface-pnt.toml) z lokalną konstelacją Walkera, mechanizmem rozmycia dokładności i Gaussa–Newtona oraz odległością w głębokiej przestrzeni od Ziemi. Sprawdzone względem JPL Horizons (DE441, JPL Development Ephemeris 441): Merkury–Saturn i Ziemia z Tabeli 1 w granicach dwukrotności błędu nominalnego (najgorzej 1,87×), wszystkie osiem planet z Tabel 2a/2b (najgorzej 1,71×) oraz czas propagacji światła Ziemia–Mars/Jowisz. Obliczone z modelu: Uran i Neptun z Tabeli 1 (2,0× i 5,2× podanego błędu względem DE441), Pluton, księżyce oraz wyniki nawigacyjne body-pnt.
Połączone PNT z MEO + LEO src/leo_fusion/: niezależne od systemu pozycjonowanie, nawigacja i czas z LEO dla dowolnej konstelacji (powłoki Walkera, zestawy elementów, presety GNSS) i dowolnego sygnału (nośna, szybkość chipów, obwiednia C/N0, błąd odległości sygnału w przestrzeni), z opcjonalnymi jednoplikowymi presetami niosącymi swoje źródła (Xona Pulsar X1/X5, Iridium STL, sygnały okazjonalne Starlink, CentiSpace, reprezentatywny system pasma C, model efemeryd z zerowym zegarem ATOMIC). leo-pvt: wsadowe pozycjonowanie Dopplerowskie z szybkości zmian odległości (jedno- i wielosatelitarne, stany dryfu zegara i prędkości, geometria pojedynczego przelotu wzdłuż/w poprzek toru i rozwiązanie lustrzane), łączna ważona metoda najmniejszych kwadratów GNSS + LEO z odchyłkami międzysystemowymi dla każdego systemu i sigmami dla każdego sygnału podawanymi przez wywołującego, DOP w funkcji liczby satelitów LEO, pokrycie polarne i arktyczne oraz transfer czasu z LEO do UTC w funkcji C/N0 i oscylatora. leo-ppp: zmiennoprzecinkowy EKF PPP (precise point positioning) (extended Kalman filter) z samym GNSS i z LEO, jego czas zbieżności oraz test spójności NEES chi-kwadrat. ntn-positioning: pozycjonowanie w sieciach nienaziemnych 5G z ograniczenia Cramér–Rao dla szerokości pasma. Sprawdzone: obwiednia Dopplera LEO względem opublikowanych wartości Iridium i Xona. Obliczone z modelu: reszta, z trendem PPP porównanym z Li i in. (2019) — zob. docs/LEO-PNT-FUSION.md.
Integralność RAIM — autonomiczne monitorowanie integralności przez odbiornik — migawkowy i z rozdzieleniem rozwiązań (w stylu ARAIM), z poziomami ochrony poziomym/pionowym (HPL/VPL), detekcją i wykluczaniem uszkodzeń oraz diagramami integralności Stanforda; jawny poziom ochrony rozdzielenia rozwiązań z wieloma hipotezami (MHSS) z budżetem ryzyka integralności, w tym tryb uszkodzenia całej konstelacji dla układów dwu-/wielokonstelacyjnych (ARAIM UE (Unia Europejska) / DO-316, standard osiągów RTCA dla pokładowego sprzętu GPS z wspomaganiem opartym na statku powietrznym), wypróbowany na rzeczywistej migawce GPS + Galileo (scenarios/araim-gps-galileo.toml). Poziom ochrony stosuje jednostronną projekcję obciążenia nominalnego b_k = Σ_i|s_i|·b_nom dla każdego trybu uszkodzenia oraz sigmę integralności σ_URA (dokładność odległości użytkownika; różna od sigmy dokładności σ_URE, błędu odległości użytkownika) z komunikatu Integrity Support Message — zob. docs/ARAIM_REFERENCE.md. Jądro detekcji (progi χ²/niecentralnego χ²/normalne i mnożniki K) jest zewnętrznie sprawdzone względem SciPy w 171 przypadkach (tests/raim_reference.rs); geometria wykorzystuje ponownie jądro DOP sprawdzone względem gnss_lib_py. Sama alokacja budżetu ryzyka integralności ARAIM MHSS nie ma opublikowanej liczbowej wyroczni i, zgodnie z prawdą, pozostaje obliczona z modelu.
Wspomaganie (SBAS) Poziomy ochrony SBAS / WAAS (WAAS = Wide Area Augmentation System) w postaci ważonej metody najmniejszych kwadratów DO-229E (współczynniki K dla podejścia precyzyjnego i lotu po trasie) oraz kombinacja dwuczęstotliwościowa L1/L5 wolna od wpływu jonosfery (L1 i L5 to dwa cywilne pasma sygnałów GPS; IS-GPS-705, specyfikacja interfejsu GPS dla sygnału L5, γ₁₅ ≈ 1,793), która stanowi podstawę DO-316 — src/sbas.rs. Algorytm poziomu ochrony jest zewnętrznie sprawdzony względem forka RTKLIB SBAS-PL (RTKLIB = otwarta biblioteka pozycjonowania kinematycznego w czasie rzeczywistym; PL = poziom ochrony) (zsiki/rtklib_ws waasprotlevels(), Siki & Takács 2017, DO-229D — poprzednia wersja DO-229 — dod. J) uruchomionego na rzeczywistych danych EGNOS (European Geostationary Navigation Overlay Service), odtwarzając jego HPL do < 2e-3 m (tests/sbas_reference.rs); gLAB (pakiet narzędzi GNSS Laboratory) v6.0.0 potwierdził identyczną konwencję.
Zegar i synchronizacja czasu Dwustanowy holdover z filtrem Kalmana (kowariancja w postaci Josepha, stan zdrowia spójności NIS/NEES — znormalizowany kwadrat innowacji / znormalizowany kwadrat błędu estymacji); stabilność z rodziny Allana (ADEV / MDEV / TDEV / HDEV / MTIE — odchylenie Allana, zmodyfikowane Allana, czasu i Hadamarda oraz maksymalny błąd przedziału czasu) z przedziałami ufności zależnymi od typu szumu i pełnym dopasowaniem prawa potęgowego o pięciu współczynnikach wg IEEE-1139 (IEEE Std 1139, definicje metrologii częstotliwości i czasu Institute of Electrical and Electronics Engineers) — estymatory są sprawdzone na rzeczywistym sprzęcie względem Stable32: rzeczywisty wzorzec pierwotny cezowy 5071A względem masera wodorowego (556 990 próbek fazy, 16 współczynników uśredniania, OADEV/OHDEV — nakładające się odchylenie Allana/Hadamarda — do 1e-3; tests/cs5071a_reference.rs) oraz kanoniczna seria regresyjna Stable32 PHASE.DAT (139 współczynników uśredniania, OADEV/MDEV/TDEV do 1e-3; tests/phasedat_reference.rs); estymatory ADEV/MDEV/TDEV i telekomunikacyjna metryka wandrowania MTIE są dodatkowo sprawdzone krzyżowo względem niezależnej biblioteki allantools 2024,06 do < 1e-9 na serii NIST SP 1065 (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs); korekcje geometryczne (Sagnac, wspólny widok GNSS); oraz operacyjne metody transferu — TWSTFT (dwudrogowy satelitarny transfer czasu i częstotliwości) z zamkniętą postacią Sagnaca wg BIPM (Międzynarodowe Biuro Miar), wspólny widok GNSS, transfer czasu PPP (precise point positioning) wolny od wpływu jonosfery, optyczne łącze w wolnej przestrzeni ze scyntylacją turbulencji oraz zespołowa (papierowa) skala czasu zegarów ważona odwrotnością wariancji, poniżej najlepszego zegara składowego. Kalkulator holdover zegara bez GNSS (src/holdover.rs) udostępnia zamkniętą postać wzrostu błędu lotu bezwładnego van Loana jako odwrócenie holdover do progu — jak długo zegar swobodnie biegnie, zanim jego błąd czasu przekroczy budżet — dla reprezentatywnych klas zegarów klasycznych i kwantowych; obliczone z modelu (sprawdzone krzyżowo względem wieloetapowej rekurencji kowariancji clock_state) oraz uczciwie zaznaczone, że dla bardzo stabilnego zegara holdover do ciasnego progu wyznacza założony próg szumu długiego tau, a nie podane ADEV. Warunkowy poziom ochrony czasu (src/tpl.rs) rozszerza holdover na spoofing: ograniczenie niewykrytego błędu czasu, przy niezależnej kontroli krzyżowej, składające próg monitora k-sigma, wariancję lotu bezwładnego van Loana w czasie opóźnienia detekcji oraz czas do alarmu CUSUM (cumulative-sum). Skalibrowane na rzeczywistym zarejestrowanym spoofingu (JammerTest 2024) i odtwarzalne przez cargo run --example tpl_jammertest; kompozycja MODELLED (bez budżetu ryzyka integralności na godzinę), warunkowa względem detekcji — nie istnieje skończone ograniczenie bezwarunkowe.
Dziedzina pomiarowa GNSS Syntezę w przód pseudoodległości / Dopplera z jonosferą Klobuchara (nadawaną) i IONEX / siatką TEC (IONosphere map EXchange format / całkowita zawartość elektronów; mierzoną) — w tym parser plików IONEX, interpolację czasową między mapami i odwzorowanie nachylenia cienkiej powłoki — troposferą Saastamoinena + Niella oraz migawkowy RAIM (HPL/VPL).
Odporność Zagłuszanie w budżecie łącza (J/S → efektywne C/N₀ → utrata synchronizacji — stosunek zagłuszacza do sygnału, stosunek gęstości nośnej do szumu — ze współczynnikiem rozdzielenia widmowego przeciw zagłuszaniu Q teraz wyprowadzonym z rzeczywistych widm mocy sygnału i zagłuszacza przez src/navsignal.rs — Q = 1/(R_c·κ), sprawdzonym krzyżowo w CI względem poprzedniej reprezentatywnej stałej); stochastyczny detektor spoofingu czasu (test energii Neymana–Pearsona / χ²₁ z zamkniętą postacią i Monte Carlo P_fa/P_md oraz wskaźnikiem jakości bezpieczeństwa (FoM) równym 1 − P_md); oraz wielowarstwowy detektor spoofingu łączący test parzystości spójności RAIM (z uczciwie zamodelowaną ślepą plamą trybu wspólnego), monitor mocy AGC RF (automatyczna regulacja wzmocnienia) i monitor jakości sygnału (SQM — monitorowanie jakości sygnału, wcześnie-minus-późno); oraz budżet błędów nawigacji zliczeniowej kwantowo-inercyjnej (QuantumNavBudget, src/inertial/quantum_imu.rs) składający białoszumowe błądzenie losowe prędkości interferometru zimnych atomów z resztkowym biasem (sprawdzone krzyżowo względem niezależnego integratora AccelModel) i błędem współczynnika skali w wartość dryfu pozycji w czasie holdover — inercyjny bliźniak holdover zegara. Silnik oceny odporności dostosowany do ram (src/resilience/) odwzorowuje symulowane zachowanie architektury na podwyniki dla poszczególnych wymiarów w siedmiu własnych kategoriach odporności Kshana (nie terminach DHS), dostosowanych do Resilient PNT Conformance Framework Departamentu Bezpieczeństwa Krajowego USA, a następnie bada stabilność decyzji dowolnego pojedynczego wyniku złożonego lub Poziomu dojrzałości przy sympleksie wag Dirichleta i zespole pięciu zagrożeń — niestabilność rang Kendalla-τ, częstość zmiany zwycięzcy top-1 i załamanie różnorodności trybu wspólnego (Hill-N2), z raportem zapewnienia z haszem integralności (35 ręcznie wyprowadzonych testów wyroczni). Odtwarzalne przez cargo run --example resilience_report; syntetyczne architektury MODELLED, samoocena dostosowana do RPCF v2.0, nie certyfikacja. Zob. docs/RESILIENCE-CROSSWALK.md.
Pasywna geolokalizacja RF Geolokalizacja emitera TDOA/FDOA (różnica czasów / częstotliwości przybycia; src/geolocation.rs) — lokalizowanie zagłuszacza lub spoofera (albo źródła okazjonalnego dla reverse-PNT) z hiperboloid różnicy czasów przybycia w sieci odbiorników, rozwiązywanych metodą najmniejszych kwadratów Gaussa–Newtona; dodanie różnicy częstotliwości przybycia przy ruchomych odbiornikach pozwala łącznie odtworzyć położenie i prędkość emitera, z ograniczeniem Cramér–Rao dla kowariancji położenia wyprowadzonym z geometrii sieci. MODELLED (wyrocznie spójności wewnętrznej: przejścia w przód→wstecz, tożsamość J·CRLB = I, monotoniczność GDOP i estymator osiągający własne CRLB w Monte Carlo) — model źródła punktowego w linii widzenia, bez wielodrogowości / NLOS (bez linii widzenia), biasu zegara odbiornika i członów refrakcji.
Sygnał nawigacyjny i śledzenie kodu Poziom sygnału między budżetem łącza a dziedziną pomiaru (src/navsignal.rs): widmowe gęstości mocy (PSD) o jednostkowym polu dla BPSK-R(n) (binarna modulacja fazy z chipami prostokątnymi) i sine-BOC(m,n) (binarna nośna z przesunięciem); współczynnik rozdzielenia widmowego (SSC) κ = ∫ G_s·G_i df, który wyprowadza współczynnik przeciw zagłuszaniu Q używany w modelu zagłuszania (Q = 1/(R_c·κ)) z rzeczywistych widm sygnału i zagłuszacza zamiast reprezentatywnej stałej; szerokość pasma RMS (Gabora) (BOC > BPSK — miara informacji odległościowej / Cramér–Rao); jitter szumu termicznego koherentnego śledzenia kodu DLL wcześnie–późno (DLL = pętla synchronizacji opóźnienia; Kaplan i Hegarty; ~poniżej metra dla C/A — kodu zgrubnego/akwizycyjnego GPS — przy 45 dB-Hz); oraz obwiednia błędu wielodrogowości (koherentny EML, wcześnie-minus-późno — tłumienie korelatora wąskiego). Sprawdzone względem zamkniętych punktów odniesienia (samo-SSC BPSK = 2/(3·R_c), PSD o jednostkowym polu, jitter C/A poniżej metra). To analiza osiągów sygnału, nie projekt sprzętu anteny / ładunku RF (rola partnera od ładunku).
Interoperacyjność Wczytywanie efemeryd nadawanych wielu GNSS w RINEX-3 (GPS, Galileo, QZSS — japoński Quasi-Zenith Satellite System —, BeiDou MEO/IGSO — średnia orbita okołoziemska / nachylona orbita geosynchroniczna — wg IS-GPS-200, specyfikacji interfejsu GPS; GLONASS, rosyjski Global Navigation Satellite System, wg PZ-90 — rosyjskiego układu Parametry Zemli 1990 — z wektorem stanu RK4) użyteczne jako źródło konstelacji (RINEX na wejściu, geometria PNT na wyjściu); parser obserwacji RINEX-3 (pseudoodległość, faza nośnej, Doppler, siła sygnału; układ obserwacji 4,00 powinien się parsować, ale nie jest przetestowany, a pliki nawigacyjne RINEX 4 są odrzucane z nazwy zamiast błędnie dekodowane), który teraz zasila solver pozycjonowania jednopunktowego (SPP) (pvt) — rzeczywiste obserwacje kodowe na wejściu, rzeczywista pozycja odbiornika na wyjściu, sprawdzone na danych IGS; czytnik/zapisywacz precyzyjnych efemeryd SP3-c/d z interpolacją Lagrange'a 9. rzędu; oraz eksport CCSDS OEM 2,0 + OMM (Orbit Mean-elements Message) dla narzędzi dynamiki lotu (GMAT, Orekit, STK — Systems Tool Kit); oraz parsowanie i emisja komunikatów danych śledzenia CCSDS-TDM (503) dla radiometrycznego śledzenia w głębokiej przestrzeni.
Analiza misji (inżynieria systemów) Budżety projektowe misji pierwszego rzędu, każdy jako uruchamialny rodzaj: dwuciałowa geometria startu i wznoszenia (launch-window — azymut startu sin Az = cos i/cos lat, minimalna inklinacja, premia z rotacji Ziemi, Δv zmiany płaszczyzny typu dogleg, dzienne okazje; src/launch.rs); korytarz balistycznego wejścia w atmosferę Allena–Eggersa (reentry — maksymalne opóźnienie, prędkość/wysokość przy maksymalnym przeciążeniu, prędkość przy maksymalnym nagrzewaniu; src/reentry.rs); geometria pokrycia obserwacji Ziemi (eo-coverage — pas obserwacji / nadirowy GSD (rozmiar próbki na gruncie) / dostęp poza nadirem / rewizyta przez trójkąt kosmiczny SMAD (Space Mission Analysis and Design); src/eo_payload.rs); 3-DOF budżet błędów orientacji i wskazywania (trzy stopnie swobody; attitude-budget — najgorszy przypadek momentu gradientu grawitacji + budżet wskazywania RSS (pierwiastek z sumy kwadratów); src/attitude_budget.rs); predykcja przelotów nad stacją naziemną (passes — AOS/TCA/LOS, uzyskanie sygnału / czas najmniejszego zbliżenia / utrata sygnału, maksymalna elewacja, czas dostępu; src/passes.rs); oraz jednokierunkowy budżet łącza według równania łącza CCSDS 401 / DSN 810-005 (standard częstotliwości radiowych i modulacji CCSDS / podręcznik projektowania łączy Deep Space Network; link-budget — FSPL (tłumienie w wolnej przestrzeni), C/N₀, Eb/N₀ (stosunek energii na bit do gęstości szumu), margines, domknięcie; src/linkbudget.rs). Analityczne budżety pierwszego rzędu MODELLED — warstwa przedsprzętowa pod STK/GMAT/Basilisk, nie zamiennik 6-DoF ani radiometryczny.
Analiza decyzji i kompromisy (MCDA) Pełny zestaw wielokryterialnej analizy decyzji (MCDA) (src/mcda/) obejmujący wszystkie cztery rodziny metod — agregację wartości (WSM, WPM, WASPAS — model sumy ważonej, model iloczynu ważonego, ważona zagregowana ocena sumy i iloczynu), odległość do ideału (TOPSIS, Technique for Order of Preference by Similarity to Ideal Solution), programowanie kompromisowe (VIKOR, od serbskiego określenia optymalizacji wielokryterialnej i rozwiązania kompromisowego) oraz metody przewyższania (PROMETHEE II, Preference Ranking Organization Method for Enrichment of Evaluations; ELECTRE I, od francuskiego określenia eliminacji i wyboru wyrażającego rzeczywistość), a także oparte na systemie współczynników MOORA (Multi-Objective Optimization on the basis of Ratio Analysis) i proporcjonalne COPRAS (Complex Proportional Assessment) — z ważeniem priorytetów metodą porównań parami AHP (Analytic Hierarchy Process) (współczynnik spójności), niezdominowanym frontem Pareto, analizą wrażliwości wag oraz wieloatrybutową oceną użyteczności. Dziewięć agregatorów odtwarza niezależne biblioteki zewnętrzne pymcdm (WSM / WPM / WASPAS / MOORA / TOPSIS / VIKOR / PROMETHEE II) i pyDecision (ELECTRE I, COPRAS) do < 1e-9, a wektor priorytetów AHP i współczynnik spójności zgadzają się z tablicą Random-Index Saaty'ego i głównym eigensolverem SciPy/LAPACK do < 1e-9 (tests/mcda_*_reference.rs). VALIDATED — warstwa decyzyjna pod silnikiem badań kompromisów.
Środowisko kosmiczne Model środowiska pogody kosmicznej (space-weather, src/space_weather.rs): wskaźniki aktywności słonecznej (F10.7 / F10.7a uśrednione centrowanym oknem 81 dni — strumień radiowy Słońca 10,7 cm) i geomagnetycznej (Kp, planetarny indeks K, z definicyjną tabelą Kp↔ap — ap to jego liniowa amplituda planetarna), napędzana nimi temperatura egzosferyczna Jacchii-1971 (sprawdzona względem opublikowanych wartości minimum/średniej/maksimum słonecznego) oraz gęstość neutralna termosfery skorygowana o aktywność w porównaniu ze statyczną na danej wysokości — zależność gęstości od cyklu słonecznego, której pomija statyczna atmosfera USSA76 (US Standard Atmosphere 1976). MODELLED: skalibrowane sprzężenie wysokości skali pierwszego rzędu, nie atmosfera (NRLMSISE — model egzosfery z radarem rozpraszania niespójnego US Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar) sprawdzona na danych.
Ocena i kompromis uczenia maszynowego Stanowisko oceny detekcji zakłóceń RF (impairment-eval, src/impairment_eval.rs): oznaczony, oparty na parametrach syntetyczny korpus (nominalny / zagłuszanie / spoofing czasu / spoofing pozycji / wielodrogowość), niezależna od detektora uprząż ROC/AUC (charakterystyka operacyjna odbiornika / pole pod krzywą) oceniająca dowolny detektor (energy | agc | sqm | parity | fused) z Pd dla każdej klasy (prawdopodobieństwo detekcji) przy docelowym Pfa (prawdopodobieństwo fałszywego alarmu) oraz luka optymizmu między danymi z rozkładu a spoza rozkładu (tryb przesunięcia rozkładu). Ponadto kompromis PNT kwantowe vs klasyczne (quantum-trade, src/quantum_trade.rs) określający ilościowo korzyść z holdover czasu/inercyjnego kandydującego zegara z krzywej zmierzonego ADEV względem punktu odniesienia klasycznego, z zastrzeżeniem progu długiego τ dołączonym do artefaktu oraz obwiednią odporności bez GNSS w funkcji czasu. Metryki oceny (AUC / macierz pomyłek / Pd-Pmd, Pmd to prawdopodobieństwo niewykrycia) są sprawdzone co do dokładnego odtworzenia względem scikit-learn 1.9.0 — w tym na rzeczywistej telemetrii ESA OPS-SAT (zbiór wykrywania anomalii OPSSAT-AD, Ruszczak i in. 2025, CC BY 4,0 — Creative Commons Attribution 4,0), gdzie ROC AUC Manna–Whitneya w Kshana odtwarza roc_auc_score ze scikit-learn do < 1e-9 na wydzielonym podziale testowym, a przejrzysty detektor liczby pików oddziela oznaczone anomalie przy AUC ≈ 0,85 (tests/opssat_ad_reference.rs) — oraz liczbowe jądra silnika kompromisów (dopasowanie ADEV NNLS — nieujemne najmniejsze kwadraty —, pasma spójności χ², van-Loan Q zegara) względem scipy 1.17.1; liczby korzyści urządzeń zbudowane na tym pozostają MODELLED charakterystykami operacyjnymi — nigdy danymi terenowymi/IQ (próbki fazy i kwadratury), bez werdyktu dobry/zły. Na bazie stanowiska głębsze badanie luki optymizmu (src/impairment_study.rs, impairment_ml.rs, eval_stats.rs) ocenia panel 13 detektorów (energy/AGC/SQM/parity oraz detektory z regresją logistyczną z ziarnem i jednowarstwowym MLP — perceptronem wielowarstwowym), dopasowuje prawa skalowania dla danych z rozkładu i spoza rozkładu z hipotezą zerową permutacyjną oraz uczy predyktora leave-one-out degradacji poza rozkładem ze statystyk z rozkładu (cargo run --example optimism_study). Front-end odbiornika definiowanego programowo (src/sdr.rs — surowe IQ/IF (częstotliwość pośrednia) → odczepy korelatora wcześnie/punktualnie/późno → SQM) i adaptery wczytywania rzeczywistych danych (src/realdata/ — RINEX, u-blox UBX (protokół binarny u-blox), GnssLogger, JammerTest, Yunnan, SatGrid) pozwalają tym samym detektorom działać na nagraniach dostarczonych lokalnie (żadne zbiory danych nie są zatwierdzone w repozytorium). Mapa punktu przecięcia odporności kwantowej i klasycznej przy niepewności parametrów (src/crossover.rs; cargo run --bin crossover_study) regeneruje badania punktu przecięcia inercyjnego i zegarowego stojące za wykresami wyników.
Demonstrator PNT z wykorzystaniem kwantowym Trzy uruchamialne obszary zastosowań MODELLED za otwartym silnikiem, z których każdy emituje uczciwy TradeEvidence + zapis reprezentatywności / luk do lotu (src/representativeness.rs): zaufany kwantowy transfer czasu (quantum-time-transfer, src/timetransfer_chain.rs — kompletny budżet zegar optyczny na sieci + łącze fotoniczne vs CSAC (atomowy zegar w skali chipa) + dwudrogowe RF, z ponownie użytym poziomem ochrony czasu, wskaźnikiem jakości bezpieczeństwa wobec ataku opóźnienia/odtwarzania (1 − P_md) oraz detekcją anomalii zegara + opóźnieniem CUSUM); nawigacja kwantowa bez GNSS (quantum-gnss-free-nav, src/quantum_nav_od.rs — lot bezwładny interferometru zimnych atomów vs INS klasy nawigacyjnej podczas przerwy GNSS, z uczciwym zaznaczeniem, że bez zewnętrznej pozycji bias akcelerometru jest nieobserwowalny, więc błąd nadal rośnie); oraz detekcja uszkodzeń/anomalii systemów kwantowych (quantum-anomaly-detect, src/quantum_faults.rs — oznaczony katalog uszkodzeń z ROC AUC z przedziałem ufności metodą bootstrap (confidence interval) z zewnętrznie sprawdzonego eval_stats i minimalnym wykrywalnym uszkodzeniem przy ustalonej częstości fałszywych alarmów). Podstawę stanowią wspólna biblioteka modeli błędów urządzeń kwantowych (src/quantum_devices.rs) oraz ujednolicona uprząż kompromisu kwantowe vs klasyczne (src/qtrade.rs). Wykorzystywane są ponownie sprawdzone jądra, na których się opierają (metryki oceny vs scikit-learn, jądra kompromisów vs scipy); liczby korzyści urządzeń zbudowane na tym pozostają MODELLED — ilustracyjne parametry urządzeń/łączy ze źródeł publicznych, modeluje klasę, bez TRL / doświadczenia lotnego / certyfikacji, bez aprobaty agencji.
Inżynieria oszczędna i wpływ na integralność Soczewka ROI kosztu na pokrycie (zwrot z inwestycji) (src/frugal.rs) — koszt na jednostkę dostarczonego pokrycia dla kompromisu architektury — oraz odwzorowanie niewykrycia detekcji → wpływ na integralność (src/integrity_impact.rs), które zamienia częstość niewykryć monitora w jego udział w ryzyku integralności. Addytywne budżety wspomagające decyzje MODELLED.
Wymiana artefaktów Kshana Interchange Format (KIF) (src/interchange.rs) — wersjonowana, samoopisująca się koperta opakowująca wynik scenariusza wraz z jego rodzajem, wersją schematu i etykietami MODELLED/VALIDATED, tak aby zapisany artefakt pozostawał samodokumentujący, a starsze koperty były nadal czytelne także przez nowsze wersje.

Każda możliwość jest dostępna jako API w Rust, uruchamialny scenariusz kind lub jedno i drugie. Dojrzałość każdej możliwości — sprawdzona, uruchamialna lub biblioteczna — jest śledzona w docs/CAPABILITY.md. Sprawdzana maszynowo macierz weryfikacji (src/verification.rs) przedstawia odsyłacze wymaganie → moduł → test → wyrocznia → status, z testowanymi jednostkowo niezmiennikami uczciwości, które dopuszczają etykietę sprawdzone tylko tam, gdzie wspiera ją niezależna zewnętrzna wyrocznia — oraz które odnotowują możliwości sprzętowe/PA (zapewnienie produktu), których Kshana celowo nie zapewnia.

Cztery pakiety czujników w pierwotnej publikacji (wyniki)

Wyniki#

Każdy scenariusz porównuje czujnik kwantowy z jego klasycznym odpowiednikiem w ciągu ~1,8 h przerwy GNSS. Liczby są odtwarzalne (scenario + seed + version).

Co dają czujniki kwantowe, gdy brakuje GNSS, scenariusz holdover zegara: kwantowy utrzymuje 6600 s autonomii wobec 2610 s klasycznego, znacznie mniejszy błąd czasu oraz dostępność 100% wobec 95,6%
Co dają czujniki kwantowe, gdy brakuje GNSS — clock-holdover · ziarno 42 · narysowane w silniku 0.40.0, a każda powyższa wartość jest ponownie sprawdzana względem bieżącego silnika przy każdej kompilacji przez tests/published_figures_still_reproduce.rs · SVG

Przewaga zależy od czasu przerwy i drgań, z jawnym punktem równowagi, w którym wygrywa klasyczne — pokazana uczciwie na drabinie gotowości technologicznej (wartości zegarów optycznych to cele demonstratorów naziemnych; żaden optyczny zegar strontowy nie poleciał w kosmos):

Punkt przecięcia holdover zegara kwantowego i klasycznego na drabinie gotowości technologicznej, z pasmami ufności
Mapa cieplna przewagi inercyjnej kwantowej nad klasyczną w funkcji czasu przerwy i drgań, z konturem punktu równowagi, w którym wygrywa klasyczne
Punkt przecięcia odporności kwantowej i klasycznej — drabina TRL holdover zegara (góra) · mapa przewagi inercyjnej z konturem punktu równowagi (dół). Do ponownego wygenerowania przez cargo run --release --bin crossover_study.

Nawigacja zliczeniowa inercyjna: błąd pozycji podczas przerwy GNSS — czujnik kwantowy (zimnoatomowy) pozostaje blisko linii specyfikacji, a czujnik klasy nawigacyjnej rozbiega się do dziesiątek kilometrów
Błąd pozycji w nawigacji zliczeniowej podczas przerwy GNSS: czujnik kwantowy (niebieski) pozostaje płaski blisko specyfikacji; czujnik klasyczny (czerwony) rozbiega się do dziesiątek kilometrów. Wygenerowane przez Kshana z scenarios/imu-deadreckoning.toml.

Pakiet Scenariusz Kwantowy Klasyczny
1 — Holdover zegara clock-holdover.toml (specyfikacja 20 ns) zegar optyczny wytrzymuje całą przerwę CSAC przekracza specyfikację w środku przerwy
2 — Nawigacja zliczeniowa inercyjna imu-deadreckoning.toml (specyfikacja 100 m) zimnoatomowy: ~41 m, wytrzymuje całą przerwę klasy nawigacyjnej: przekracza w ~350 s → dziesiątki km
3 — Transfer czasu (optyczne łącze międzysatelitarne) timetransfer.toml optyczny: odległościowanie ~0,3 mm RF (TWSTFT): odległościowanie ~150 mm
4 — Fuzja hybrydowa (zwieńczenie) hybrid-pnt.toml pełna pozycja + czas przez całą przerwę ograniczone pozycją przy ~350 s

Zwieńczenie pokazuje tezę o fuzji: optyczny międzysatelitarny transfer czasu utrzymuje w synchronizacji nawet klasyczny zegar, co izoluje czujnik inercyjny jako słabe ogniwo zestawu klasycznego — czyli kwantowy czujnik inercyjny i optyczny pomiar czasu razem.

Holdover zegara: błąd fazy podczas przerwy GNSS — zegar optyczny pozostaje w specyfikacji 20 ns przez całą przerwę, a zegar w skali chipa przekracza ją w środku przerwy
Holdover zegara podczas przerwy GNSS: zegar optyczny (niebieski) pozostaje w specyfikacji 20 ns przez cały lot bezwładny; zegar w skali chipa (czerwony) przekracza ją w trakcie. Wygenerowane przez Kshana z scenarios/clock-holdover.toml.

Kolejny scenariusz, orbit-gnss-challenged.toml, wyprowadza dostępność GNSS z geometrii orbitalnej, a nie z ręcznie zapisanych okien: statek kosmiczny wewnątrz powłoki GNSS jest propagowany względem konstelacji Walkera podobnej do GPS, a liczba widocznych satelitów (linia widzenia, przesłonięcie przez Ziemię, maska elewacji) ustala stan pozycji w każdym kroku. W ciągu doby użytkownik ma pozycję tylko przez ~59% czasu; zegar kwantowy utrzymuje rozwiązanie czasu 5 ns przez każdą lukę (dostępność 1.0), a zegar w skali chipa tylko ~0.83.

Orbita z utrudnionym GNSS: błąd czasu zegara w ciągu doby dla statku kosmicznego wewnątrz powłoki GNSS, gdzie luki w pokryciu wynikają z geometrii orbitalnej — zegar optyczny pozostaje w specyfikacji 5 ns w lukach, a zegar w skali chipa ją przekracza
Błąd czasu w ciągu doby przy dostępności GNSS wyprowadzonej z geometrii orbitalnej: liczba widocznych satelitów (linia widzenia, przesłonięcie przez Ziemię, maska elewacji) ustala stan pozycji w każdym kroku, więc zegar musi przetrwać każdą lukę — zegar optyczny utrzymuje specyfikację 5 ns, a zegar w skali chipa ją przekracza. Wygenerowane przez Kshana z scenarios/orbit-gnss-challenged.toml.

Konstelację można też podać jako rzeczywiste zestawy elementów dwuwierszowych (TLE). Pełny TLE (wiersz 1 + wiersz 2) jest propagowany pełnym modelem SGP4/SDP4 — w tym z oporem atmosferycznym oraz członami rezonansowymi księżycowo-słonecznymi w głębokiej przestrzeni i 12 h / 24 h, które mają znaczenie dla orbit GNSS o okresie ~12 h — sprawdzonym względem oficjalnych wektorów AIAA 2006-6753 do najgorszego przypadku ≈ 4 mm. scenarios/orbit-sgp4-gps.toml zawiera rzeczywistą migawkę Celestrak gps-ops operacyjnej konstelacji GPS (2021-07-28, 30 satelitów) i wymaga poprawnych sum kontrolnych TLE — zestawy elementów dwuwierszowych to otwarte dane z katalogu US Space Force / 18th Space Defense Squadron, redystrybuowane przez Celestrak (dr T. S. Kelso, celestrak.org); odśwież poleceniem scripts/fetch_tles.sh. Blok tylko z wierszem 2 zachowuje analityczną propagację dwóch ciał (scenarios/orbit-real-tle.toml); obie formy można mieszać w jednej konstelacji. Konstelację można równie dobrze zbudować z bloku rekordów efemeryd nadawanych GPS w RINEX-3 — formacie, który dekoduje odbiornik — propagowanych algorytmem użytkownika IS-GPS-200 i podanych na wejście tej samej geometrii (scenarios/orbit-rinex.toml).

Czym jest, a czym nie jest, w pełnej formie

Czym jest, a czym nie jest#

Jest to: deterministyczny silnik o niewielkiej liczbie zależności, obejmujący cały stos PNT — geometrię orbit, nawigację inercyjną, fuzję GNSS/INS, integralność, zegary i czas. Uruchamia scenariusz (często przerwę GNSS), rozwija skalibrowane modele błędów czujników przez odpowiedni estymator i ocenia wynik względem operacyjnych wskaźników jakości — emitując odtwarzalny wynik JSON (JavaScript Object Notation) i wykres SVG, z biblioteki Rust, interfejsu wiersza poleceń (CLI), rozszerzenia Pythona, modułu WebAssembly w przeglądarce, serwera Model Context Protocol (MCP) dla agentów AI lub wtyczki do środowisk JetBrains IDE (zintegrowane środowisko programistyczne).

Nie jest to: sprzęt lotniczy, projekt ładunku kwantowego, pełny odbiornik sygnałów GNSS, symulator sygnałów radiowych (RF) ani stanowisko hardware-in-the-loop, ani certyfikowany produkt awioniczny — i nie zastępuje MATLAB/Simulink, STK (Systems Tool Kit) ani Orekit; działa obok nich i wymienia z nimi pliki. Wierność sprzętu kwantowego pochodzi z opublikowanych modeli błędów, a nie z tego narzędzia. Szczegółową dojrzałość każdej możliwości opisano w docs/CAPABILITY.md.

Nie jest to (jeszcze): pełny silnik fizyki interferometrii atomowej (większość czujników kwantowych korzysta z opublikowanych współczynników Allana/budżetu szumów; akcelerometr CAI (interferometr zimnych atomów) ma warstwę z pierwszych zasad — faza Macha–Zehndera, szum projekcji, zanik kontrastu i sprzężenie drgań, a także systematyka Coriolisa i przesunięcia świetlnego — ale systematyka czoła fali i rozwiązywanie niejednoznaczności prążków pozostają warstwą planu rozwoju P2 (faza 2 planu, warstwa fizyki kwantowej), zob. ROADMAP.md i docs/QUANTUM-MODELS.md); certyfikowany ani sprzętowy odbiornik GNSS (rozwiązuje jednopunktową pozycję PVT (pozycja, prędkość i czas) z rzeczywistych obserwacji kodowych RINEX (Receiver Independent Exchange Format) — sprawdzoną na rzeczywistych danych IGS (International GNSS Service) — a jego warstwa IQ (kshana iq, od 0.31.0) programowo wykonuje akwizycję i śledzenie zarejestrowanych lub wygenerowanych próbek pasma podstawowego, jako odbiornik analityczny: nie steruje sprzętem radiowym ani niczego nie nadaje, nie jest certyfikowanym odbiornikiem i nie wykonuje pozycjonowania na fazie nośnej (RTK ani PPP)); ani pełny zestaw do projektowania misji (ma elementy składowe Lambert / porkchop / manewr / wyznaczanie orbity, ale jest warstwą symulacji osiągów nad GMAT (General Mission Analysis Tool)/Orekit, a nie ich zamiennikiem). Wyznaczenie tego zakresu jest celowe. Jeśli potrzebne są budżety błędów interferometru zimnych atomów z pierwszych zasad (np. klasy CARIOQA-PMP — Cold Atom Rubidium Interferometry in Orbit for Quantum Accelerometry, Pathfinder Mission Preparation — lub walidacja w stylu X-37B), zob. plan P2 i skontaktuj się, aby podjąć współpracę.

Nawigacja z niskiej orbity okołoziemskiej#

Satelity na niskiej orbicie okołoziemskiej (LEO) przelatują szybko i głośno. Rodzaj leo-pnt-chain śledzi jeden system przez każdy etap: sygnał, przelot i jego łącze, komunikat nawigacyjny oraz połączone rozwiązanie pozycji, prędkości i czasu (PVT) i precyzyjne pozycjonowanie punktowe (PPP). Każdy etap przekazuje swoje liczby następnemu. Zob. docs/LEO-PNT.md.

Łańcuch PNT z LEO z rzeczywistego przebiegu leo-pnt-chain (leo-pnt-end-to-end.toml): etap sygnału (generic-l na 1191,795 MHz, pilot śledzony przy 10,23 Mchip/s) przekazuje do etapu przelotu (1080 km, szczyt śledzonego C/N0 58,2 dB-Hz), który przekazuje do komunikatu nawigacyjnego (kepler-rac, dopasowanie 300 s, SISRE reprezentacji 0,91 mm RMS, 0,250 m z wyznaczaniem orbity), który zasila połączone rozwiązanie pozycji (sam GNSS 1,60 m RMS 3D, GNSS plus LEO 0,43 m) i precyzyjne pozycjonowanie punktowe (zbieżność 11,5 min sam GNSS, 7,5 min z 240 satelitami LEO). Między etapami przekazywanych jest 11 wartości.Łańcuch PNT z LEO z rzeczywistego przebiegu leo-pnt-chain (leo-pnt-end-to-end.toml): etap sygnału (generic-l na 1191,795 MHz, pilot śledzony przy 10,23 Mchip/s) przekazuje do etapu przelotu (1080 km, szczyt śledzonego C/N0 58,2 dB-Hz), który przekazuje do komunikatu nawigacyjnego (kepler-rac, dopasowanie 300 s, SISRE reprezentacji 0,91 mm RMS, 0,250 m z wyznaczaniem orbity), który zasila połączone rozwiązanie pozycji (sam GNSS 1,60 m RMS 3D, GNSS plus LEO 0,43 m) i precyzyjne pozycjonowanie punktowe (zbieżność 11,5 min sam GNSS, 7,5 min z 240 satelitami LEO). Między etapami przekazywanych jest 11 wartości.

Każdy rodzaj scenariusza według rodziny#

Rodzaje scenariuszy silnika, uporządkowane w rodziny. Każda rodzina ma stronę z jednym wpisem na rodzaj (opis i pola silnika, przykładowe polecenie, główne liczby z przebiegu, wiersze macierzy weryfikacji, które go wymieniają, oraz wykres zapisywany przez sam silnik) i arkusz poglądowy tych wykresów; docs/KINDS.md indeksuje je wszystkie. Tabelę zapisuje tools/gen_readme_blocks.py, a strony tools/gen_kinds_index.py, i oba narzędzia kończą się niepowodzeniem, jeśli silnik zyska rodzaj, którego nie wymienia żadna rodzina.

Rodzina Na co odpowiada Rodzaje Uruchom jeden
Zegary, synchronizacja czasu i holdover jak długo zegar utrzymuje czas bez GNSS i jak system czasu radzi sobie względem swoich masek clock, sweep, sweep-nd, telecom-timing, slot-timing, timetransfer, time-transfer-budget, holdover-test, quantum-time-transfer kshana scenarios/clock-holdover.toml
Czujniki inercyjne, fuzja i czujniki kwantowe nawigacja zliczeniowa i fuzja czujników podczas przerwy GNSS, z czujnikami klasycznymi i kwantowymi inertial, hybrid, fusion, hybrid-ukf, gnss-ins, ins-trn-coast, quantum-gnss-free-nav, quantum-anomaly-detect, quantum-trade kshana scenarios/gnss-ins.toml
Alternatywne PNT w warunkach braku GPS nawigowanie z grawitacji, terenu i innych pól, gdy brakuje GNSS gravity-map, terrain-nav, terrain-slam, combined-altpnt, conflict-resilience kshana scenarios/combined-altpnt.toml
Konstelacje, pokrycie i geometria gdzie są satelity, kto je widzi i jak dobra jest geometria, wokół Ziemi, Księżyca lub Marsa orbit, ephemeris, constellation-design, solar-system, body-pnt, mars-pnt, passes kshana scenarios/orbit-gnss-challenged.toml
Pomiary GNSS, pozycjonowanie i integralność pseudoodległości, pozycje, poziomy ochrony i środowisko kosmiczne integrity, gnss-sim, pvt, araim-reference-check, space-weather, realtime-frame-eop kshana scenarios/integrity-raim.toml
Zagłuszanie (jamming), spoofing i widmo jak zakłócenia docierają do odbiornika i czy są wykrywane jamming, spoof, spoof-detect, tracking-loop, spectrum, impairment-eval kshana scenarios/jamming-demo.toml
Nawigacja z niskiej orbity okołoziemskiej przelot, łącze, komunikat nawigacyjny i połączone rozwiązanie pozycji, etap po etapie leo-signal, leo-pass, leo-navmsg, leo-pvt, leo-ppp, ntn-positioning, leo-pnt-chain kshana scenarios/leo-pnt-end-to-end.toml
Księżycowe i cislunarne nawigacja, czas, układy odniesienia i geodezja na Księżycu lunar-integrity, lunar-time-offset, lunar-time-budget, lunar-ascent, lunar-surface, lunar-descent, lunar-orbit-rendezvous, lunar-vlbi, lunar-vlbi-fim, lunar-joint-od-clock, lunar-frame-realisation, lunar-frame-campaign, lunar-llr-datum, moonlight-service-volume, lunar-differential-pnt, lunar-station-coverage, lunar-beacon, lunar-interop-export, cislunar-observability, cislunar-arc-recovery, lunar-attack-surface, lunar-jamming, earth-gnss-lunar, lunar-infrastructure kshana scenarios/lunar-infrastructure-od-consistency.toml
Nawigacja użytkownika w przestrzeni kosmicznej sygnały GNSS dla statków kosmicznych nad orbitami GNSS, wokół nich i poza nimi gnss-ssv kshana scenarios/gnss-ssv-shell.toml
Optyczne PNT łącza optyczne przez atmosferę oraz wskaźniki jakości optyczne plus RF optical-atmosphere, hybrid-optical-rf kshana scenarios/optical-atmosphere-network.toml
Analiza misji, łącza i operacje kosmiczne start, wznoszenie, wejście w atmosferę, orientacja, łącza, planowanie kontaktów i formaty plików launch-window, ascent-losses, reentry, entry-heating, eo-coverage, eo-radiometry, attitude-budget, aocs, link-budget, acm-link, contact-schedule, aperture-duty-cycle, space-packet, oem-interop kshana scenarios/launch-window.toml
Wątki misji budżet błędu nawigacji i czasu łańcucha faz od startu do wejścia w atmosferę mission-thread kshana scenarios/mission-thread-artemis-class.toml
Kampanie misje łańcuchowe, przeglądy i zespoły zbudowane z innych rodzajów campaign kshana scenarios/campaign-jam-spoof-holdover-integrity.toml

Każde polecenie#

kshana <scenario.toml> uruchamia scenariusz; każde inne polecenie jest podpoleceniem, a kshana --help wypisuje sposób użycia wszystkich. Polecenia to --study, --validate, kinds, example, receiver-trust (z live i evidence), evidence (keygen, verify, attach-timestamp, round-trip), jammertest (import, score), trust-telemetry, imu-fit, nmea-scenario, interference-map (adsb, ais, daily, sensitivity, fetch-land), route-exposure, bench (spec, truth, cases, score, baseline, seal, reveal-check, manifest, verify-manifest, validate, leaderboard), bench-export, compliance-report, lunanet-afs-check, standards-pack, partner (check), osnma, iq (scene, acquire, track, sweep, labfit, campaign, conditions, frontend, monitor, inventory, info, extract, convert, decimate), sky i skyline. docs/COMMANDS.md podaje przeznaczenie każdego z nich, zweryfikowany przykład i jego stronę w dokumentacji.

Każda powierzchnia#

Jeden silnik, te same wyniki wszędzie: wiersz poleceń, biblioteka Rust, Python, JavaScript i WebAssembly, serwer MCP z poleceniami wtyczek i umiejętnościami, Kshana Studio (każda strona działa w przeglądarce, bez instalacji, nic nie jest wysyłane), integracje ROS 2, Signal K, OpenCPN, GNSS-SDR i gnss_lib_py, zestawy wdrożeniowe systemd, Docker i Grafana oraz wtyczka JetBrains. docs/ALL-SURFACES.md wymienia je wraz ze sposobem uzyskania każdego oraz nazwami wszystkich poleceń wtyczek, umiejętności i stron Studio; docs/SURFACES.md podaje dla każdego polecenia i rodzaju, która powierzchnia go obsługuje, a która nie, wraz z powodem.

Jak działa przebieg#

Scenariusz to plik TOML (Tom's Obvious, Minimal Language): rodzaj, ziarno i parametry. Silnik go uruchamia i zapisuje obok wynik, wykres i raport oraz zażądane eksporty.

Jak przebiega przebieg. Plik TOML scenariusza (rodzaj, ziarno i jego parametry) trafia do silnika, kshana 0.40.0, przez dyspozytor api::run_toml obejmujący 92 rodzajów scenariuszy, deterministyczny względem scenariusza, ziarna i wersji silnika. Silnik zapisuje result.json, chart.svg, report.html i report.json, table.csv dla rodzajów, które ją definiują, a na żądanie eksporty SP3, CCSDS OMM i OEM, CZML, KML, GeoJSON, STK i SigMF; zestaw zapisuje study.json i study.html. Te pliki zasilają Kshana Studio w przeglądarce, asystenta AI przez serwer kshana-mcp oraz ciągłą integrację.Jak przebiega przebieg. Plik TOML scenariusza (rodzaj, ziarno i jego parametry) trafia do silnika, kshana 0.40.0, przez dyspozytor api::run_toml obejmujący 92 rodzajów scenariuszy, deterministyczny względem scenariusza, ziarna i wersji silnika. Silnik zapisuje result.json, chart.svg, report.html i report.json, table.csv dla rodzajów, które ją definiują, a na żądanie eksporty SP3, CCSDS OMM i OEM, CZML, KML, GeoJSON, STK i SigMF; zestaw zapisuje study.json i study.html. Te pliki zasilają Kshana Studio w przeglądarce, asystenta AI przez serwer kshana-mcp oraz ciągłą integrację.

Ten dołączony scenariusz trwa 2 h: 10 min z GNSS, a potem około 1,8 h bez GNSS. Pyta, jak długo optyczny zegar na sieci strontowej i atomowy zegar w skali chipa (CSAC) utrzymują czas w granicach 20 ns.

kshana example clock-holdover > clock-holdover.toml
kshana clock-holdover.toml
scenario 5ba83a232b94 | quantum holdover 6600s p95 1.20e-4ns integrity 1.000 security n/a (no attack) | classical holdover 2610s p95 19.7ns integrity 1.000 security n/a (no attack)
wrote clock-holdover.result.json, clock-holdover.chart.svg, clock-holdover.report.html, and clock-holdover.report.json

Zegar optyczny utrzymuje budżet 20 ns przez całą przerwę 6600 s; CSAC utrzymuje go przez 2610 s i mieści się w budżecie przez 95,6% przebiegu wobec 100% dla zegara optycznego. kshana example wymienia każdy dołączony scenariusz.

Misje#

Dziesięć sektorów zadaje dziesięć różnych pytań temu samemu silnikowi. Każdy ma dołączone scenariusze na początek.

Sektor Zacznij od
Obronność i bezpieczeństwo campaign-jam-spoof-holdover-integrity, spoof-meaconing
Kosmos, orbita okołoziemska orbit-gnss-challenged, leo-pnt-end-to-end
Księżyc, Mars i głęboka przestrzeń lunar-relay-constellation, mars-orbit-pnt
Lotnictwo i drony small-uas-jammed-nav, araim-gps-galileo
Morskie maritime-strait-jamming, maritime-port-approach-coast
Drogi automotive-urban-canyon
Kolej rail-tunnel-coast
Infrastruktura krytyczna i czas clock-holdover, clock-ensemble
Telekomunikacja i 5G (piąta generacja sieci komórkowych) telecom-prtc-holdover-24h, leo-vertical-5g-network-timing
Nauka i badania sweep-clock-stability, quantum-pnt-demonstrator.suite
Pytanie, które zadaje każdy sektor
Sektor Pytanie, które zadaje Zacznij od
Obronność i bezpieczeństwo Jak długo nasza nawigacja i czas pozostają wiarygodne w warunkach zagłuszania i spoofingu i które warstwy utrzymują nas w specyfikacji? campaign-jam-spoof-holdover-integrity, spoof-meaconing
Kosmos: orbita okołoziemska Czy mój statek kosmiczny widzi dość satelitów nawigacyjnych, jak długo jego zegar utrzymuje czas między pozycjami i co dodałaby warstwa nawigacyjna na niskiej orbicie? orbit-gnss-challenged, leo-pnt-end-to-end
Księżyc i głęboka przestrzeń Czy lądownik, łazik lub orbiter przy Księżycu, przy Marsie lub dalej uzyska wiarygodną pozycję i czas? lunar-relay-constellation, mars-orbit-pnt
Lotnictwo i drony Gdy zagłuszacz odbierze GNSS, jak długo mój bezzałogowy system powietrzny (UAS) mieści się w budżecie pozycji i czy integralność jest dostępna na mojej trasie? small-uas-jammed-nav, araim-gps-galileo
Morskie Jak daleko nad wodą sięga zagłuszacz, czy przesunięcie pozycji zostałoby wykryte i jak długo statek może dryfować do portu? maritime-strait-jamming, maritime-spoof-position-push, maritime-port-approach-coast
Drogi i motoryzacja Jak daleko dryfuje samochód pod wiaduktem lub obok przydrożnego zagłuszacza? automotive-urban-canyon
Kolej Ile sekund po wjeździe do tunelu pociąg nadal potrafi stwierdzić, na którym torze się znajduje? rail-tunnel-coast
Infrastruktura krytyczna i czas Jeśli czas GNSS zostanie utracony lub sfałszowany, jak długo sieć energetyczna, giełda lub centrum danych utrzymują identyfikowalny czas? clock-holdover, clock-ensemble
Telekomunikacja i 5G Jeśli zostanie utracone odniesienie czasu GNSS, czy zegar mojej sieci mieści się w maskach ITU-T i jak długo? telecom-prtc-holdover-24h, leo-vertical-5g-network-timing
Nauka i badania Czy mogę odtworzyć, rozszerzyć i zacytować wynik PNT, aż do ziarna? sweep-clock-stability, quantum-pnt-demonstrator.suite

Dowody#

SGP4 sprawdzone względem wszystkich 666 wektorów referencyjnych AIAA 2006-6753, najgorszy błąd położenia 4,12 mm

176 z 401 możliwości sprawdzono względem niezależnych wyroczni zewnętrznych; 221 uczciwie oznaczono jako obliczone z modelu. Każdy wiersz macierzy weryfikacji wymienia możliwość, wyrocznię, względem której jest sprawdzana, test, który wykonuje sprawdzenie, i etykietę, która z tego wynika. Ciągła integracja (CI) uniemożliwia nazwanie możliwości VALIDATED bez niezależnej wyroczni zewnętrznej.

Jak możliwość zyskuje swoją etykietę. Każdy wiersz macierzy weryfikacji wymienia możliwość, wyrocznię, względem której jest sprawdzana, test, który wykonuje sprawdzenie w ciągłej integracji, i etykietę, która z tego wynika. Wiersz może być VALIDATED tylko z niezależną wyrocznią zewnętrzną; w przeciwnym razie jest MODELLED, albo PARTNER, gdy odpowiada za niego partner sprzętowy. Przykład: SGP4/SDP4, Cowell 6-DOF + perturbacje, OD wsadowe/sekwencyjne, wyrocznia: wektory weryfikacyjne SGP4 AIAA 2006-6753, test tests/sgp4_verification.rs, etykieta VALIDATED. Bieżące liczby: 176 VALIDATED, 221 MODELLED, 4 PARTNER z 401 wierszy. Łącznie 176 możliwości sprawdzono względem niezależnych wyroczni zewnętrznych; 221 kolejnych uczciwie oznaczono jako MODELLED, a 4 należy do PARTNER.Jak możliwość zyskuje swoją etykietę. Każdy wiersz macierzy weryfikacji wymienia możliwość, wyrocznię, względem której jest sprawdzana, test, który wykonuje sprawdzenie w ciągłej integracji, i etykietę, która z tego wynika. Wiersz może być VALIDATED tylko z niezależną wyrocznią zewnętrzną; w przeciwnym razie jest MODELLED, albo PARTNER, gdy odpowiada za niego partner sprzętowy. Przykład: SGP4/SDP4, Cowell 6-DOF + perturbacje, OD wsadowe/sekwencyjne, wyrocznia: wektory weryfikacyjne SGP4 AIAA 2006-6753, test tests/sgp4_verification.rs, etykieta VALIDATED. Bieżące liczby: 176 VALIDATED, 221 MODELLED, 4 PARTNER z 401 wierszy. Łącznie 176 możliwości sprawdzono względem niezależnych wyroczni zewnętrznych; 221 kolejnych uczciwie oznaczono jako MODELLED, a 4 należy do PARTNER.
Etykieta Wiersze Znaczenie
VALIDATED 176 niezależna wyrocznia zewnętrzna się zgadza: rzeczywiste dane, niezależna implementacja lub opublikowane wektory referencyjne
MODELLED 221 sprawdzone względem prawdy analitycznej lub samospójności symulacji i powiedziane wprost
PARTNER 4 odpowiada za to partner sprzętowy; Kshana nie ma dla tego wyroczni

Kilka z kontroli: wszystkie 666 wektorów AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 SGP4 (Simplified General Perturbations 4) do 4,12 mm; model sił Cowella do 0,08 m względem Orekit 12,2; Galileo do 0,61 m i Swarm-A do 0,10 m względem rzeczywistych precyzyjnych efemeryd Europejskiej Agencji Kosmicznej (ESA). Testy obejmują około 95 % pokrycia linii src/, z progiem 85 % w CI. Rejestr (ledger) to docs/VERIFICATION-MATRIX.md, generowany z src/verification.rs: pełna macierz 401 wierszy oraz powód, dla którego każdy wiersz obliczony z modelu nie ma zewnętrznej wyroczni, w docs/MODELLED-RATIONALE.md.

Jak działa walidacja, wyselekcjonowana tabela najważniejszych wyników i wykresy dowodowe

Walidacja, odtwarzalność i uczciwość#

  • Każdy człon szumu jest skalibrowany do opublikowanej, cytowanej wartości i sprawdzony względem standardowej zależności (odchylenie Allana dla zegarów; wzrost błędu nawigacji zliczeniowej wg Grovesa dla inercyjnych; przeliczenie czasu na odległość dla transferu czasu). Status każdego członu jest śledzony w docs/VALIDATION.md jako validated lub not modeled — nic nie jest przedstawiane jako sprawdzone, jeśli nie jest.
  • Odtwarzalne z założenia: scenario + seed + engine version → identical bits. scripts/check-reproducible.sh to wymusza; przebiegi kwantowe i klasyczne używają niezależnych ziaren, więc ich szum jest nieskorelowany.
  • Dojrzałość jest podana uczciwie: wartości zegarów optycznych i łączy optycznych to wyniki celów / demonstratorów naziemnych, a nie lotów.

Etykieta dowodowa przy każdej wartości#

Każda wartość i tabela zapisywana przez przebieg mówi, na ile jej ufać i na których wierszach rejestru się opiera. JSON wyniku ma klucz evidence, SVG wykresu wiersz pod wykresem (oraz element <metadata id="kshana-evidence">), a tabela CSV z przodu # evidence: wierszy komentarza (odczytywanych z comment='#'). Podaje poziom, VALIDATED, MODELLED lub PARTNER, oraz identyfikatory (VM- i osiem cyfr szesnastkowych) wierszy macierzy weryfikacji, które przebieg wykorzystał. Poziom jest najsłabszy z tych wierszy, więc przebieg opierający się na jednym wierszu obliczonym z modelu jest oznaczony MODELLED, ile by obok niego nie było wierszy sprawdzonych; etykieta nigdy nie może twierdzić więcej niż rejestr. Wiersze, statusy i identyfikatory są odczytywane z macierzy, a nie wpisywane (docs/VERIFICATION-MATRIX.md, docs/SCHEMA.md), a tests/evidence_labels_doc_sync.rs kończy się niepowodzeniem, jeśli wartość nie ma etykiety lub etykieta nie zgadza się z macierzą.

Walidacja w skrócie#

Każdy wiersz jest wymuszany przez nazwany test w CI. Ta tabela to wyselekcjonowane najważniejsze wyniki; pełna, sprawdzana maszynowo macierz ma 401 wierszy — 176 VALIDATED, 221 MODELLED, 4 PARTNER (src/verification.rs), z kompletnymi dowodami (i tym, co uczciwie nie jest jeszcze sprawdzone) w docs/VALIDATION.md oraz w artefakcie kshana-validation-summary.html dla każdego wydania (generowanym przez cargo run --bin validation_report, z atestacją SLSA — Supply-chain Levels for Software Artifacts).

Kolumna Status podaje rodzaj dowodu, zgodnie z drabiną walidacji powyżej: VALIDATED = sprawdzone względem niezależnej wyroczni zewnętrznej (rzeczywiste dane, niezależna biblioteka lub opublikowane wektory referencyjne); MODELLED = sprawdzone względem prawdy analitycznej lub samospójności symulacji (bez niezależnego zewnętrznego zbioru danych). VALIDATED opisuje metodę sprawdzania, a nie zaliczenie/niezaliczenie — uczciwe niedotrafienie względem rzeczywistej wyroczni zewnętrznej pozostaje VALIDATED, natomiast porównanie, którego żaden wiersz macierzy nie wymienia jako wyroczni (dopasowanie LRO — Lunar Reconnaissance Orbiter — powyżej), jest pokazane jako MODELLED. Wiersze CI to zabezpieczenia procesu, a nie wskaźniki jakości. Kilka wysp rzeczywistych danych (mierzony zegar cezowy, Stable32 PHASE.DAT oraz kontrole OPS-SAT/ICGEM, gdzie surowe wejścia nie mają licencji na redystrybucję) jest bramkowanych danymi: test wypisuje komunikat o pominięciu i pozostaje zielony, gdy wejścia brakuje, a publiczne liczby referencyjne są zatwierdzone w tests/fixtures/. Surowe wejścia odtworzysz odpowiednim scripts/fetch_*.sh.

Status Możliwość Wynik porównania Odniesienie / wyrocznia
VALIDATED Propagacja SGP4/SDP4 666/666 wektorów, najgorzej 4,12 mm AIAA 2006-6753 (Vallado tcppver.out) + bezpośrednie porównanie z niezależną biblioteką sgp4
VALIDATED Układy odniesienia — nutacja IAU 2000A/B, łańcuch CIO IAU 2006/2000A, ERA co do bitu (X,Y do 1e-14, s do 1e-18, ERA do 1e-12) ERFA/SOFA eraXys06a · eraC2ixys · eraEra00 · eraNut00a/b
MODELLED GCRS→ITRS względem niezależnego silnika SPICE maks. 0.028″ → ≤ 0,86 m na powierzchni Ziemi, ≤ 3,6 m na orbicie GNSS ANISE (czysto rustowy NAIF/SPICE), te same IERS finals2000A EOP, 8 epok 2020–2023 (porównane z tym odniesieniem; żaden wiersz macierzy weryfikacji nie wymienia go jako wyroczni zewnętrznej, więc nie jest oznaczone jako VALIDATED)
MODELLED Geopotencjał EGM2008 (stopień/rząd 70) przyspieszenie = ∇V do < 1e-6; zapadnięcie zonalne do sprawdzonego J2 współczynniki NGA EGM2008 + analityczna tożsamość ∇V
VALIDATED Synteza funkcjonałów grawitacji (mapa nawigacji wspomaganej grawitacją / bez GNSS) GRS80 Somigliana + γ_e/γ_p do 3.5e-12; rzeczywista mapa zaburzeń EGM2008 fizyczna (RMS ≈ 26 mGal, d/o 70) GRS80 (Moritz 1980, IAG — International Association of Geodesy) grawitacja normalna Somigliany + rzeczywiste ICGEM EGM2008 (tests/icgem_gravity_reference.rs)
VALIDATED Estymatory Allana (ADEV/MDEV/TDEV/HDEV) + pasma ufności odtwarzają odchylenia referencyjne; pasma χ² się zgadzają NIST SP 1065 (Riley), 1000 punktów, Tabela 31/32
VALIDATED Estymatory Allana na rzeczywistym zmierzonym zegarze cezowym OADEV/OHDEV do 1e-3 (zaobserwowano ≤ 3e-5), 16 współczynników uśredniania Stable32 na rzeczywistym 5071A Cs vs maser wodorowy, 556 990 punktów (tests/cs5071a_reference.rs, bramkowane danymi)
VALIDATED Estymatory Allana na kanonicznym Stable32 PHASE.DAT OADEV/MDEV/TDEV do 1e-3 (zaobserwowano ≤ 5e-5), 139 współczynników uśredniania Odchylenia referencyjne Stable32 dla PHASE.DAT (tests/phasedat_reference.rs, bramkowane danymi)
MODELLED Model błędów IMU — ARW / VRW / niestabilność biasu odtworzone do < 5 % (niestabilność biasu < 15 %) karta katalogowa Analog Devices ADIS16465; profil referencyjny NaveGo
VALIDATED Numeryczny propagator Cowella + model sił (poziomy zachowawcze) najgorszy błąd położenia 0,08 m w ciągu 24 h, 278 epok (LEO + GTO) Orekit 12,2 NumericalPropagator/DormandPrince853 (CS GROUP), tests/numerical_cowell_propagator_reference.rs
MODELLED Poziom oporu Cowella + bezwzględne wejścia efemeryd Słońca/Księżyca i gęstości poziom oporu scharakteryzowany ≈ 333 m / 24 h; bez perturbacji zgadza się z Keplerem w zmiennych uniwersalnych poniżej metra, energia/pęd ~1e-9 wbudowane efemerydy niskiej dokładności + analityczny Kepler
MODELLED Lambert · Ciołkowski · porkchop przejście w obie strony do prawdy dwuciałowej; ΔV < 0.01 % Izzo 2015 · równanie rakietowe · analityczne minimum Hohmanna
MODELLED Wyznaczanie orbity (wsadowe Gaussa–Newtona) poniżej m / mm·s⁻¹ bez szumu; ~2 m przy progu szumu 5 m dwa ciała + J2 na łuku RK4
MODELLED Dopasowanie modelu sił do precyzyjnych efemeryd Galileo (cały łuk) 0,61 m RMS 3D, 24 h, d/o-70, tylko siły ESA/ESOC ESA0MGNFIN orbita końcowa (E11), rzeczywiste finals2000A EOP (porównane z tym odniesieniem; żaden wiersz macierzy weryfikacji nie wymienia go jako wyroczni zewnętrznej, więc nie jest oznaczone jako VALIDATED)
MODELLED Dopasowanie modelu sił do precyzyjnych efemeryd Swarm-A (zredukowana dynamika) 0,10 m RMS 3D (granica poziomu empirycznego, a nie miara) ESA SW_OPER_SP3ACOM_2_ orbita precyzyjna (porównana z tym odniesieniem; żaden wiersz macierzy weryfikacji nie wymienia go jako wyroczni zewnętrznej, więc nie jest oznaczone jako VALIDATED)
MODELLED Dopasowanie modelu sił do księżycowego LRO (uczciwe niedotrafienie) 6,67 m przy zredukowanej dynamice, powyżej celu 5 m JPL Horizons LRO (NAIF −85) + GRAIL (Gravity Recovery and Interior Laboratory) GRGM660PRIM (porównane z tym odniesieniem; żaden wiersz macierzy weryfikacji nie wymienia go jako wyroczni zewnętrznej, więc nie jest oznaczone jako VALIDATED)
MODELLED OD Marsa w głębokiej przestrzeni (SRIF ze zredukowaną dynamiką) ≈ 0,2 m Mars-LMO (wskaźnik jakości symulacji, nie rzeczywistej misji) syntetyczne OD w pętli zamkniętej — walidacja mechanizmu estymatora
MODELLED Dynamika Marsa ze Słońcem w centrum względem JPL DE440 137 m @ łuk 1-dobowy (rośnie z łukiem = niemodelowane n-ciał) JPL DE440 przez ANISE (xval/anise-mars-od, bramkowane jądrem) (porównane z tym odniesieniem; żaden wiersz macierzy weryfikacji nie wymienia go jako wyroczni zewnętrznej, więc nie jest oznaczone jako VALIDATED)
VALIDATED Pozycjonowanie jednopunktowe względem zmierzonej współrzędnej IGS (rzeczywiste obserwacje) 5,7 m RMS 3D / 1,1 m poziomo, dwuczęstotliwościowy SPP z kodu wolnego od wpływu jonosfery pomiar stacji IGS ABMF + efemerydy nadawane GPS, 2018-05-13 (tests/pvt_abmf.rs)
MODELLED Ściśle sprzężony UKF GNSS/INS 0,77 m RMS w 30-minutowym przelocie LEO z przerwą 120 s lot bezwładny według modelu sił, wyprowadzony ręcznie
MODELLED Nawigacja z mapy grawitacji bez GPS dryf INS ~70 km → odtworzone ~145 m cel Quantum Wayfarer w ESA NAVISP
MODELLED Nawigacja odniesiona do terenu (TERCOM/SITAN) dryf 70 km → < 500 m (próg rozdzielczości siatki ~140 m) SRTM .hgt DEM; dryf wstrzyknięty ręcznie (kontrola nieokrężna)
MODELLED Główne pole IGRF-14 (stopień/rząd 13) biegun ~80,7°N, dipol ~29,7 µT, pasmo fizyczne 22–67 µT IAGA (International Association of Geomagnetism and Aeronomy) igrf14coeffs.txt (półznormalizowane wg Schmidta)
MODELLED Modulacja sygnału nawigacyjnego i śledzenie kodu samo-SSC BPSK = 2/(3·R_c); PSD o jednostkowym polu; jitter DLL dla C/A poniżej metra @ 45 dB-Hz Zamknięte punkty odniesienia SSC/PSD + wzór na szum termiczny DLL wg Kaplana i Hegarty'ego
MODELLED Korektor różnicowy halo/NRHO w CR3BP STM = różnice skończone; orbita zamyka się z dokładnością maszynową; L2 9:2 NRHO ≈ 6,57 d / peryluń ≈ 3 250 km sprawdzenie STM różnicami skończonymi + opublikowana południowa L2 9:2 NRHO (≈ 6,56 d / ≈ 3 370 km) — CR3BP, a nie rzeczywiste efemerydy Gateway
MODELLED Integralność ARAIM dla dwóch konstelacji tryb uszkodzenia całej konstelacji na rzeczywistych GPS + Galileo EU ARAIM TR (raport techniczny) / DO-316; Celestrak gps-ops 2021-07-28 (porównane z tym odniesieniem; żaden wiersz macierzy weryfikacji nie wymienia go jako wyroczni zewnętrznej, więc nie jest oznaczone jako VALIDATED)
VALIDATED Geometria GNSS / DOP (GDOP/PDOP/HDOP/VDOP/TDOP) wynik zgodny do 1e-6 względnie w 8 geometriach (dobrze uwarunkowane → bliskie osobliwości) gnss_lib_py 1.0.4 (Stanford NAV Lab) — niezależna biblioteka (tests/dop_reference.rs)
VALIDATED Metryki oceny detektorów ML (AUC/ROC/macierz pomyłek/Pd-Pmd/precyzja/F1) dokładne liczności + < 1e-9 dla 5 zbiorów danych × 24 progów scikit-learn 1.9.0 (Pedregosa i in., JMLR — Journal of Machine Learning Research — 2011) — niezależna biblioteka (tests/eval_metrics_reference.rs)
VALIDATED ROC AUC wykrywania anomalii na rzeczywistej telemetrii ESA OPS-SAT AUC odtwarza scikit-learn do < 1e-9; AUC detektora liczby pików ≈ 0.85 na oznaczonym podziale testowym roc_auc_score ze scikit-learn na podziale testowym OPSSAT-AD (Ruszczak i in. 2025, CC BY 4,0) — rzeczywista telemetria OPS-SAT (tests/opssat_ad_reference.rs)
VALIDATED Liczbowe jądra kompromisu kwantowego (dopasowanie ADEV NNLS · pasma spójności χ² · van-Loan Q zegara) NNLS + Q dokładnie; χ² < 5e-4 przy operacyjnych stopniach swobody ≥ 48 scipy 1.17.1 — optimize.nnls / stats.chi2.ppf / linalg.expm (tests/scipy_reference.rs)
VALIDATED Telekomunikacyjne metryki wandrowania MTIE / MDEV / TDEV (ITU-T G.810/G.823/G.8261/G.811 — zalecenia Sektora Normalizacji Telekomunikacji Międzynarodowego Związku Telekomunikacyjnego) MTIE (9 współczynników uśredniania, co do bitu) oraz MDEV + TDEV (8 współczynników, względnie < 1e-9) na serii LCG (liniowy generator kongruencyjny) NIST SP 1065 allantools 2024,06 mtie / mdev / tdev — niezależna biblioteka (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs)
VALIDATED Metody badań kompromisów MCDA — wszystkie cztery rodziny decyzyjne, dziewięć zewnętrznie sprawdzonych agregatorów (WSM · WPM · WASPAS · MOORA · COPRAS · TOPSIS · VIKOR · PROMETHEE II · ELECTRE I) plus ważenie priorytetów metodą porównań parami AHP wyniki / rankingi / macierze uzgodnień odtworzone do < 1e-9 pymcdm + pyDecision (niezależne biblioteki MCDA stron trzecich) + Saaty RI (Random Index) / eig SciPy-LAPACK (tests/mcda_*_reference.rs)
VALIDATED Obwiednia Dopplera LEO z orbity i nośnej Iridium maksymalnie w granicach 5 % opublikowanych ±36 kHz; Xona Pulsar X1 w granicach opublikowanych 32–34 kHz wyniki testów RNTF LEO PNT; Leclère, Marathe i Reid, arXiv:2509,19551 (tests/leo_doppler_reference.rs)
MODELLED Zbieżność PPP z uzupełnieniem LEO 7,4 → 4,8 / 3,2 / 2,7 / 2,3 min przy 60 / 96 / 192 / 288 satelitach LEO, monotonicznie; NEES filtra w paśmie χ² trend porównany z Li i in., J. Geod. 93:749 (2019) (9,6 → 7,0 / 3,2 / 2,1 / 1,3 min); konstelacje i szum nie zostały odtworzone
MODELLED Warunkowy poziom ochrony czasu (niewykryty błąd czasu ograniczony przez holdover przy spoofingu) kompozycja odtwarza wieloetapową rekurencję kowariancji clock_state; skalibrowane na rzeczywistym zarejestrowanym spoofingu skalary JammerTest 2024 (Zenodo 15911589) + zamknięte postaci van Loana / CUSUM (examples/tpl_jammertest)
MODELLED Ocena odporności PNT + niestabilność decyzji 35 ręcznie wyprowadzonych testów wyroczni; artefakt badania deterministyczny co do bajtu (stałe ziarno) mapowanie DHS RPCF v2.0 + zamknięte postaci Dirichleta / Kendalla-τ / Hill-N2 — syntetyczne architektury, nie certyfikacja
MODELLED Badanie luki optymizmu dla zakłóceń RF (prawa skalowania + predyktor leave-one-out) istotność względem hipotezy zerowej permutacyjnej; artefakt deterministyczny co do bajtu (5 ziaren) syntetyczny korpus oparty na parametrach — metryki oceny są VALIDATED względem scikit-learn (powyżej); samo badanie jest MODELLED
CI Odtwarzalność między platformami identyczne co do bitu dane wejściowe + wzorce kształtu na 3 systemach operacyjnych macierz CI Linux / macOS / Windows, wzorce SHA-256
CI Pokrycie testami ~95 % linii w src/ z wyłączeniem src/*_data.rs i src/main.rs, z progiem ≥ 85 % cargo-tarpaulin (silnik LLVM)

Jak możliwość zyskuje swoją etykietę: wymaganie odwzorowuje się na moduł w src, na test w tests, na zewnętrzną wyrocznię (rzeczywisty zbiór danych, niezależna implementacja referencyjna lub opublikowane wektory), na status — ze strażnikiem wymuszanym w CI, że żadna możliwość nie może być uznana za sprawdzoną bez zewnętrznej wyroczni. Bieżące liczby: 176 sprawdzonych, 221 obliczonych z modelu, 4 partnera, 401 łącznie
Jak możliwość zyskuje swoją etykietę — niezmiennik wymuszany w CI: brak zewnętrznej wyroczni ⇒ nie może być uznana za sprawdzoną · SVG

Czym poparte jest każde twierdzenie: kolumna sprawdzonych to 176 z 176 ExternalDataset z konstrukcji (wymuszane w CI); wiersze obliczone z modelu są uczciwie oznaczone jako InternalConsistency, ReferenceImpl lub ExternalDataset; wiersze partnera nie mają wyroczni Kshana
Najgorszy błąd położenia SGP4/SDP4 względem odniesienia AIAA 2006-6753 według reżimu, skala logarytmiczna: każdy reżim jest znacznie poniżej tolerancji AIAA, najgorszy przypadek 4,12 mm w reżimie głębokiej przestrzeni bez rezonansu
Góra: każdy sprawdzony wiersz jest poparty zewnętrznym zbiorem danych z konstrukcji. Dół: SGP4 zgadza się z oficjalnym odniesieniem w każdym reżimie (najgorzej 4,12 mm). SVG · SVG

Stan weryfikacji wszystkich 401 możliwości: 176 sprawdzonych (względem zewnętrznej wyroczni), 221 obliczonych z modelu, 4 należących do partnera
176 sprawdzonych · 221 obliczonych z modelu · 4 partnera — SVG

Dziedziny możliwości#

Każda możliwość z publicznej mapy, według dziedziny, z etykietą z rejestru (ledger). Tabela dziedzin jest zapisywana przez tools/gen_readme_blocks.py z web/capabilities.json, tego samego pliku, który czyta mapa wszystkiego w Studio.

Możliwości Kshana według dziedziny i dojrzałości: sprawdzone i obliczone z modelu możliwości publiczne w każdej dziedzinie, narysowane z web/capabilities.json przez tools/gen_validation_figures.pyMożliwości Kshana według dziedziny i dojrzałości: sprawdzone i obliczone z modelu możliwości publiczne w każdej dziedzinie, narysowane z web/capabilities.json przez tools/gen_validation_figures.py

Pełna tabela, dziedzina po dziedzinie, z każdą możliwością i jej etykietą, to docs/CAPABILITY-DOMAINS.md.

Instalacja#

Jedna linia daje narzędzie wiersza poleceń: cargo install kshana. Każdy kanał dostarcza v0.40.0 z tego samego otagowanego commita.

Fragment wymieniający zewnętrznych klientów AI został tu pominięty; jest w README.md na GitHubie.

Fragment wymieniający zewnętrznych klientów AI został tu pominięty; jest w README.md na GitHubie.

Fragment wymieniający zewnętrznych klientów AI został tu pominięty; jest w README.md na GitHubie.

Kanał Instalacja Przewodnik
Wypróbuj w przeglądarce otwórz https://kshana.dev Przewodnik po Studio
Wiersz poleceń (Rust) cargo install kshana Użycie wiersza poleceń
Biblioteka Rust cargo add kshana Dokumentacja API na docs.rs
Python pip install kshana Przewodnik po API Pythona
JavaScript i WebAssembly npm install kshana Przewodnik po npm i WebAssembly
Asystent AI (serwer MCP, cargo) cargo install kshana-mcp Przewodnik po serwerze MCP
Obraz Dockera docker run --rm -i ghcr.io/ashfordeou/kshana-mcp Przewodnik po serwerze MCP: Docker
Cursor (jedno kliknięcie) Dodaj do Cursor (npx) · Dodaj do Cursor (Docker) · npx -y kshana-mcp@0.40.0 Wszystkie fragmenty instalacji MCP
VS Code (jedno kliknięcie) Zainstaluj w VS Code (npx) · Zainstaluj w VS Code (Docker) · npx -y kshana-mcp@0.40.0 Wszystkie fragmenty instalacji MCP
npx npx -y kshana-mcp@0.40.0 Wszystkie fragmenty instalacji MCP
uvx / pipx uvx kshana-mcp==0.40.0 Wszystkie fragmenty instalacji MCP
Homebrew brew install ashfordeOU/tap/kshana-mcp Wszystkie fragmenty instalacji MCP
Scoop scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket && scoop install kshana-mcp Wszystkie fragmenty instalacji MCP
winget winget install AshfordeOU.KshanaMcp Wszystkie fragmenty instalacji MCP
Gotowy plik binarny pobierz kshana-mcp-<target> z wydania i sprawdź go względem SHA256SUMS Wszystkie fragmenty instalacji MCP
Oficjalny rejestr MCP wyszukaj io.github.ashfordeOU/kshana-mcp Wszystkie fragmenty instalacji MCP
Zdalnie (streamable HTTP), hostowane samodzielnie kshana-mcp --http 127.0.0.1:8080 Przewodnik po samodzielnym hostowaniu
Wtyczka IDE JetBrains Settings → Plugins → Marketplace → wyszukaj „Kshana” (identyfikator wtyczki dev.kshana.ide) Przewodnik po wtyczce
Wtyczka Signal K npm install signalk-kshana-trust Przewodnik po wtyczce Signal K
Wtyczka OpenCPN pobierz archiwum tar wtyczki z wydania Zgłoszenie do katalogu OpenCPN
Pulpit Grafana zaimportuj kshana-grafana-*.json z wydania Źródło pulpitu
Obraz kompilacji referencyjnej docker pull ghcr.io/ashfordeou/kshana-reference-build Integracje morskie

Kshana w JetBrains Marketplace Buduje się z Rust 1,88 lub nowszym, czyli rust-version z Cargo.toml

MCP to Model Context Protocol. Przypnij wydanie poleceniem cargo install kshana --version 0.40.0, pip install kshana==0.40.0 lub npm install kshana@0.40.0. Aby zbudować ze źródeł, zob. Install and build w sekcji Reference.

Uruchom scenariusz z Pythona i z WebAssembly
import json, kshana

toml = open("clock-holdover.toml").read()
result = json.loads(kshana.run(toml))
print(kshana.version(), result["quantum"]["fom"]["holdover_s"], result["classical"]["fom"]["holdover_s"])
# 0.40.0 6600.0 2610.0

Poza run moduł udostępnia run_full (JSON, SVG i jednowierszowe podsumowanie naraz), run_typed, validate_toml, list_kinds / scenario_kinds oraz error_kind; zob. docs/PYTHON_API.md.

Pakiet npm to cały silnik skompilowany do WebAssembly. W Node.js przekaż binarkę do initSync; w przeglądarce await init() ją pobiera (zob. README.npm.md).

import { readFileSync } from "node:fs";
import { createRequire } from "node:module";
import { initSync, run, summary, version } from "kshana";

const wasm = createRequire(import.meta.url).resolve("kshana/kshana_bg.wasm");
initSync({ module: readFileSync(wasm) });

const toml = readFileSync("clock-holdover.toml", "utf8");
const result = JSON.parse(run(toml));
console.log(version(), result.quantum.fom.holdover_s, result.classical.fom.holdover_s);
// 0.40.0 6600 2610
console.log(summary(toml));

Architektura#

Jeden otwarty silnik jest w centrum i każda powierzchnia go uruchamia: wiersz poleceń, biblioteka Rust, Python, WebAssembly i Kshana Studio, serwer MCP, obraz Docker i wtyczka JetBrains. Ten sam plik scenariusza daje te same bajty na każdej. Kshana Pro stoi na wierzchu jako osobna nakładka, która zależy od silnika i nigdy go nie rozwidla.

Architektura Kshana: jeden otwarty silnik w centrum, kshana 0.40.0 na licencji AGPL-3.0, z api::run_toml, typowanym dyspozytorem dla każdego rodzaju oraz rejestrem weryfikacji 401 możliwości (176 VALIDATED, 221 MODELLED, 4 PARTNER). Wokół niego każda powierzchnia uruchamia ten sam silnik: wiersz poleceń (cargo install kshana); biblioteka Rust (cargo add kshana); Python (pip install kshana); WebAssembly + Kshana Studio (npm install kshana); serwer MCP (cargo install kshana-mcp); obraz Docker (ghcr.io/ashfordeou/kshana-mcp); wtyczka JetBrains (Marketplace: „Kshana”). Pod nim Kshana Pro, własnościowa nakładka, która zależy od otwartego silnika jako biblioteki, nigdy go nie rozwidla i nie dodaje żadnego modelu fizycznego.Architektura Kshana: jeden otwarty silnik w centrum, kshana 0.40.0 na licencji AGPL-3.0, z api::run_toml, typowanym dyspozytorem dla każdego rodzaju oraz rejestrem weryfikacji 401 możliwości (176 VALIDATED, 221 MODELLED, 4 PARTNER). Wokół niego każda powierzchnia uruchamia ten sam silnik: wiersz poleceń (cargo install kshana); biblioteka Rust (cargo add kshana); Python (pip install kshana); WebAssembly + Kshana Studio (npm install kshana); serwer MCP (cargo install kshana-mcp); obraz Docker (ghcr.io/ashfordeou/kshana-mcp); wtyczka JetBrains (Marketplace: „Kshana”). Pod nim Kshana Pro, własnościowa nakładka, która zależy od otwartego silnika jako biblioteki, nigdy go nie rozwidla i nie dodaje żadnego modelu fizycznego.
Wnętrze silnika: warstwy dziedzinowe i rejestr weryfikacji Architektura Kshana w warstwach. Pięć drzwi wejściowych (wiersz poleceń, Python, JavaScript i WebAssembly, serwer MCP i wtyczka JetBrains) prowadzi do jednego api::run_toml, typowanego dyspozytora dla 92 rodzajów. Pod nim leży osiem warstw dziedzinowych: czas i układy odniesienia, zegary i czas, inercja i fuzja, GNSS i integralność, astrodynamika, PNT z LEO, Księżyc, Mars i głęboka przestrzeń oraz misje i badania, na wspólnym rdzeniu, wszystkie z odsyłaczami w module weryfikacji, sprawdzanej maszynowo macierzy 401 możliwości, która jest jedynym źródłem prawdy dla każdej etykiety.Architektura Kshana w warstwach. Pięć drzwi wejściowych (wiersz poleceń, Python, JavaScript i WebAssembly, serwer MCP i wtyczka JetBrains) prowadzi do jednego api::run_toml, typowanego dyspozytora dla 92 rodzajów. Pod nim leży osiem warstw dziedzinowych: czas i układy odniesienia, zegary i czas, inercja i fuzja, GNSS i integralność, astrodynamika, PNT z LEO, Księżyc, Mars i głęboka przestrzeń oraz misje i badania, na wspólnym rdzeniu, wszystkie z odsyłaczami w module weryfikacji, sprawdzanej maszynowo macierzy 401 możliwości, która jest jedynym źródłem prawdy dla każdej etykiety.

Jeden silnik, wiele drzwi wejściowych. Jeden rdzeń w Rust (kshana) uruchamia każdy scenariusz, dostępny przez CLI, rozszerzenie Pythona, moduł WebAssembly w przeglądarce, serwer MCP dla agentów AI i wtyczkę do JetBrains IDE — wszystkie zbiegają się w jednym dyspozytorze api::run_toml. Wewnątrz pakiety czujników podłączają się do wspólnego interfejsu modeli błędów; obok nich znajdują się warstwa układów odniesienia (precesja–nutacja IAU 2006/2000A i redukcja GCRS↔ITRS oparta na CIO), warstwa astrodynamiki/numeryczna (analityczny SGP4/SDP4 oraz numeryczny propagator Cowella z modelem sił EGM2008/perturbacji, projektowaniem manewrów i wyznaczaniem orbity), warstwa integralności/GNSS (RAIM/ARAIM, SBAS, dziedzina pomiaru, zagłuszanie, cislunar), warstwa fuzji / alt-PNT (estymatory GNSS/INS oraz dopasowywacze map grawitacji/terenu/magnetyzmu), warstwa głębokiej przestrzeni i Księżyca (radiometryczne Mars-PNT i zestaw PNT księżycowego, z poziomem dowodowym każdego elementu w macierzy — czas LTC, VLBI, wspólne OD+zegar, realizacja układu odniesienia, obszar usługi, różnicowy PNT, interoperacyjność), warstwa analizy misji (budżety startu / wejścia w atmosferę / pokrycia / wskazywania / przelotu / łącza oraz środowisko pogody kosmicznej) oraz otwarta warstwa badań odporności i uczenia maszynowego (ocena odporności RPCF, luka optymizmu zakłóceń RF i demonstrator PNT z wykorzystaniem kwantowym), której odtwarzalne artefakty opierają się na sprawdzonych jądrach.

Dwa samodzielne pakiety (crate), wyłączone z przestrzeni roboczej, leżą obok rdzenia — mcp/kshana-mcp (serwer MCP, zbudowany na SDK rmcp w edycji 2024) i xval/anise-frames (kontrola krzyżowa układów ANISE/SPICE, która ściąga zależności na licencji MPL-2.0 (Mozilla Public License 2,0)) — i są trzymane poza grafem zależności opublikowanego pakietu, Cargo.lock, bramką licencji i budową MSRV (minimalna obsługiwana wersja Rust) przez listę exclude w głównym Cargo.toml. Wtyczka JetBrains (ide/jetbrains) to osobny projekt w Kotlinie. Pełny zestaw diagramów zob. docs/ARCHITECTURE.md.

Wyrenderowane diagramy (przepływ silnika, mapa modułów, dystrybucja) są w docs/ARCHITECTURE.md.

Diagramy#

Diagramy to źródła Mermaid w docs/diagrams/, renderowane do SVG i PNG w docs/assets/diagrams/ (tools/render-diagram-chromium.sh <name> w Linuksie, pozostałe dwa skrypty render-diagram gdzie indziej), a rekord wiąże każdy PNG z dokładnym SVG, z którego pochodzi. Testy przypinają liczby, które podają. Wykresy w powyższych sekcjach są rysowane przez narzędzia z przebiegów silnika; te pokazują, jak części do siebie pasują.

System: sześć drzwi wejściowych (wiersz poleceń, Python, WebAssembly i npm z Kshana Studio, serwer MCP z wtyczkami i umiejętnościami, wtyczka JetBrains, integracje) wywołuje jeden dyspozytor dla każdego rodzaju scenariusza, który uruchamia jeden silnik ze wspólnego rdzenia, pakietów czujników i układów odniesienia oraz modeli dziedzinowych i zapisuje odtwarzalny wynik i wykres
Jeden dyspozytor, jeden silnik, odtwarzalny wynik · SVG · źródło system-overview.mmd

Powierzchnie: jeden deterministyczny silnik offline zasila wiersz poleceń, bibliotekę Rust, Python, WebAssembly i npm oraz serwer MCP; Studio działa na kompilacji WebAssembly, polecenia wtyczek i umiejętności na serwerze MCP, integracje i zestawy wdrożeniowe na wierszu poleceń, a wtyczka JetBrains na bibliotece
Każda powierzchnia z tego samego silnika · SVG · źródło surfaces.mmd

Wnętrze jednego przebiegu: plik scenariusza z ziarnem i osią czasu GNSS zasila silnik, który w każdym kroku czasu rozwija model błędów, uruchamia estymator i ocenia wskaźniki jakości oraz zapisuje odtwarzalny wynik i wykres
Wewnętrzna pętla przebiegu · SVG · źródło engine-flow.mmd

Zaufanie do odbiornika: dziennik lub strumień odbiornika jest wczytywany do obserwabli dla każdej epoki i własnych flag odbiornika, przechodzi przez monitory i staje się doradczym wskaźnikiem zaufania z pasmem i przyczynami, który zasila Studio, telemetrię, podpisany pakiet dowodowy, ocenę Jammertest i bench oraz raport compliance
Od dziennika odbiornika do wskaźnika zaufania i tego, co go używa · SVG · źródło trust-flow.mmd

Okrężna droga laboratoryjna: scenariusz jest eksportowany ze zdarzeniami i warunkami testu, operator spoza Kshana odtwarza plik przez laboratoryjny symulator, dziennik odbiornika jest oceniany względem podanych zdarzeń, a okrężna droga dowodowa łączy scenariusz, warunki, skróty dziennika i wynik w podpisany pakiet
Od scenariusza do podpisanego pakietu; Kshana nigdy nie wytwarza ani nie odtwarza sygnału · SVG · źródło lab-round-trip.mmd

Kshana Studio: przeglądarka uruchamia silnik skompilowany do WebAssembly lokalnie, bez wysyłania czegokolwiek, bierze dołączone scenariusze albo scenariusz lub dziennik, który otworzysz, i pokazuje wynik w widoku prostym, widoku zaawansowanym i na stronach zadań, z eksportami zapisywanymi przez użytkownika
Jak działa Studio, lokalnie · SVG · źródło studio-flow.mmd

Przepływ testów i wydania: lokalne bramki (formatowanie, clippy, kontrola braku atrybucji, zapadka pokrycia dokumentacją i scripts/gate.sh, który uruchamia pełny zestaw i powtórne przebiegi i zapisuje pokwitowanie sprawdzane przez hak pre-push) prowadzą do pull requestu tylko w CI i zielonego pełnego CI; właściciel przewija main do zielonego commita, a po kontroli synchronizacji wersji na nim ląduje adnotowany tag; przepływ wydania weryfikuje pełny zestaw na otagowanym commicie, zanim cokolwiek zostanie opublikowane, buduje binarki z SBOM, sumami kontrolnymi i pochodzeniem kompilacji, publikuje w crates.io, PyPI, npm, rejestrze kontenerów, rejestrze MCP i JetBrains Marketplace, odpytuje każdy rejestr, aż poda nową wersję, i uruchamia budowę witryny z tagu; osobna ścieżka tylko dla witryny uruchamia przepływ pages z tagiem main i jest odrzucana, chyba że od ostatniego wydania nie zmieniło się nic poza web/ i .github/
Przepływ testów i wydania, od lokalnych bramek do zweryfikowanego wydania i ścieżki tylko dla witryny · SVG · źródło release-flow.mmd · docs/RELEASING.md

Mapa modułów: wiersz poleceń, Python, WebAssembly, serwer MCP i wtyczka JetBrains wywołują typowany dyspozytor dla każdego rodzaju, który sięga do wspólnego rdzenia, czasu i układów odniesienia, pakietów czujników, astrodynamiki, integralności, detekcji spoofingu, fuzji, głębokiej przestrzeni i Księżyca, odporności oraz modułów sędziego i benchmarku, wszystkie poparte macierzą weryfikacji
Gdzie leży kod · SVG · źródło module-map.mmd

Dystrybucja: jedno repozytorium dostarcza pakiet rdzenia, serwer MCP, wtyczkę IDE i pakiety kontroli krzyżowej do crates.io, PyPI, npm, GitHub Releases, piaskownicy Pages, rejestru kontenerów, rejestru MCP i JetBrains Marketplace, z archiwum Zenodo
Co gdzie trafia i co to sprawdza · SVG · źródło distribution.mmd

Asystent AI#

kshana-mcp to serwer MCP: Twój asystent uruchamia prawdziwy silnik i odczytuje jego JSON, zamiast zgadywać matematykę. Każde z jego 49 narzędzi jest cienką nakładką na publiczną funkcję biblioteki kshana, więc w serwerze nie ma żadnej logiki symulacji.

Instalacja serwera MCP#

Wyłącznie doradczo, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu: za nawigację odpowiada nadal operator. Serwer działa na Twoim komputerze; nic nie jest wysyłane do Ashforde OÜ.

Fragment wymieniający zewnętrznych klientów AI został tu pominięty; jest w README.md na GitHubie.

Fragment wymieniający zewnętrznych klientów AI został tu pominięty; jest w README.md na GitHubie.

Fragment wymieniający zewnętrznych klientów AI został tu pominięty; jest w README.md na GitHubie.

Kanał Polecenie lub przycisk Wymaga Postać przypięta
Cursor (jedno kliknięcie) npx (Node) · Docker Node lub Docker kshana-mcp@0.40.0 / ghcr.io/ashfordeou/kshana-mcp:0.40.0
VS Code (jedno kliknięcie) npx (Node) · Docker · Insiders (npx) Node lub Docker kshana-mcp@0.40.0 / ghcr.io/ashfordeou/kshana-mcp:0.40.0
npx npx -y kshana-mcp@0.40.0 Node 18+ kshana-mcp@0.40.0
uvx / pipx uvx kshana-mcp==0.40.0 · pipx run kshana-mcp==0.40.0 Python 3,9+ z uv lub pipx kshana-mcp==0.40.0
Docker docker run -i --rm ghcr.io/ashfordeou/kshana-mcp:0.40.0 Docker ghcr.io/ashfordeou/kshana-mcp:0.40.0
Homebrew brew install ashfordeOU/tap/kshana-mcp brew formuła dla v0.40.0
Scoop scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket, następnie scoop install kshana-mcp Scoop (Windows) manifest dla v0.40.0
winget winget install AshfordeOU.KshanaMcp winget (Windows) --version 0.40.0
cargo cargo install kshana-mcp --version 0.40.0 Rust 1,88+ kshana-mcp 0.40.0
Gotowy plik binarny strona wydania: kshana-mcp (Linux x86-64), kshana-mcp-<target>[.exe], sprawdzane przez SHA256SUMS i gh attestation verify brak v0.40.0
Rejestr MCP io.github.ashfordeOU/kshana-mcp (znajdowany przez klientów obsługujących rejestr) klient obsługujący rejestr 0.40.0
Zdalnie (streamable HTTP) kshana-mcp --http 127.0.0.1:8080, we własnym hostingu: zob. docs/deploy/mcp-http.md własny host v0.40.0

kshana-mcp na Glama, wskaźnik jakości jego serwera MCP

Fragment wymieniający zewnętrznych klientów AI został tu pominięty; jest w README.md na GitHubie.

Konfiguracja dla poszczególnych klientów jest w docs/integrations.md. Serwer jest wymieniony w oficjalnym rejestrze MCP jako io.github.ashfordeOU/kshana-mcp.

49 narzędzi

Scenariusze i raporty

Narzędzie Co robi
run_scenario Uruchom scenariusz z definicji TOML (Tom's Obvious, Minimal Language)
list_scenario_kinds 92 wbudowanych rodzajów scenariuszy z opisami + polami wymaganymi/opcjonalnymi — aby agent mógł zbudować poprawny scenariusz
validate_scenario Kontrola wstępna: sparsuj TOML i wykryj jego rodzaj, bez uruchamiania
list_example_scenarios Dołączone scenariusze referencyjne jako JSON
get_example_scenario Tekst TOML jednego dołączonego scenariusza referencyjnego, bajt w bajt taki jak plik w scenarios/
report_scenario Uruchom scenariusz i zwróć jego raport
animate_scenario Uruchom scenariusz i zwróć jego szereg czasowy jako animację
sky_geometry Geometria nieba pod horyzontem zależnym od azymutu: widoczne i ukryte satelity, DOP, kowariancja wschód-północ-góra i elipsa błędu poziomego; albo preset horyzontu z jego pochodzeniem

Eksport i interoperacyjność

Narzędzie Co robi
list_export_formats Które formaty interoperacyjności mają zastosowanie do scenariusza (czml, kml, geojson, stk, sigmf), powód, gdy któryś nie ma, oraz specyfikacja, którą stosuje każdy zapisywacz
export_interop Eksportuj scenariusz jako CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, efemerydy STK (Systems Tool Kit) .e lub SigMF (Signal Metadata
import_route Zapisz trasę GeoJSON LineString w scenariuszu, który leci po torze punktów drogi (terrain-nav, terrain-slam, gravity-map, combined-altpnt), i zwróć nowy TOML
export_sp3 Eksportuj konstelację scenariusza orbit jako precyzyjne efemerydy SP3-c (Standard Product 3, wersja c)
export_omm Eksportuj elementy scenariusza orbit jako katalog CCSDS (Consultative Committee for Space Data Systems) 502.0-B-2 OMM (Orbit Mean-elements Message)
export_oem Eksportuj szereg stanów scenariusza orbit jako efemerydy CCSDS OEM (Orbit Ephemeris Message) 2,0 — położenie TEME (true equator, mean equinox) i
export_table_csv Uruchom scenariusz i zwróć jego tabelę odtwarzalności jako CSV (wartości rozdzielane przecinkami) — tabelę stabilną co do bajtu, którą CLI (interfejs wiersza poleceń) zapisuje jako <scenario>.table.csv
export_test_bench Ruch pojazdu i zdarzenia ze scenariusza dla laboratoryjnego symulatora GNSS (kshana bench-export)

Zaufanie do odbiornika i statku

Narzędzie Co robi
assess_receiver_log Oceń rzeczywisty dziennik odbiornika GNSS (globalny system nawigacji satelitarnej) pod kątem zaufania
assess_vessel_stream Oceń ograniczony fragment NMEA 0183 (co najwyżej 2 MiB i 20 000 epok
assess_vessel_log Dziennik NMEA 0183 statku (co najwyżej 4 MiB) jako przebieg wsadowy, z sesyjnym TOML podającym limity statku
create_evidence_pack Podpisany pakiet dowodowy dla okna dziennika statku (kshana receiver-trust evidence)
attach_evidence_timestamp Powiąż token znacznika czasu RFC 3161 (base64 bajtów .tsr) z pakietem, w pamięci (kshana evidence attach-timestamp)
verify_evidence_pack Zweryfikuj pakiet (kshana evidence verify)
generate_training_nmea Syntetyczne NMEA 0183 mostka do szkolenia załóg z TOML nmea-scenario (zagłuszanie, przesunięcie pozycji, spoofing czasu, opóźnienie odtwarzania) z dziennikiem instruktora (kshana-nmea-training/1)
build_interference_map Mapa zakłóceń GNSS z raportów pozycji ADS-B lub AIS w postaci tekstu CSV (najwyżej 4 MiB)
route_exposure Udział długości trasy przypadający na komórki jednej lub kilku map zakłóceń: zdegradowane, niezdegradowane, nieocenione i nieobserwowane, opcjonalnie w zadanym przedziale dat
trust_telemetry Strumień zaufania (linie JSON) lub wynik receiver-trust zapisany jako tekst Prometheus, linie syslog CEF lub LEEF albo ładunek OTLP JSON, z koderami kshana trust-telemetry
jammertest_import Odczytuje opublikowany katalog testów Jammertest i plan nadawania (NPRA/jammertest-plan, MIT) jako zaplanowaną prawdę odniesienia (kshana jammertest import): przedziały jednego obszaru testowego stają się zdarzeniami zaufania do odbiornika z identyfikatorem katalogowym i rokiem w każdej etykiecie. Przedziały planowane, a nie zarejestrowane czasy emisji; żadne pole kontaktowe planu nie jest odczytywane. MODELLED. Zob. docs/JAMMERTEST.md.
jammertest_score Ocenia dziennik odbiornika względem tego harmonogramu (kshana jammertest score): dla każdego testu opóźnienie detekcji, pominięte alarmy i czas powrotu do normy oraz fałszywe alarmy poza każdym przedziałem. Dzienniki tekstowe jako log, binarne (ubx, sbf) jako log_base64. Podpisany pakiet wymaga klucza: wiersz poleceń. Wyłącznie doradczo; MODELLED.
fit_imu_log Parametry akcelerometru i żyroskopu scenariuszy hybrid i fusion dopasowane z nieruchomego dziennika IMU (CSV lub EuRoC) za pomocą odchylenia Allana, z gotową do wklejenia tabelą [accel_classical] i SHA-256 dziennika (kshana imu-fit). Tekst na wejściu, JSON na wyjściu; MODELLED.

GNSS IQ (pliki w katalogu roboczym; wyłączone w trybie HTTP)

Narzędzie Co robi
iq_signals Konfiguracja warstwy GNSS IQ
iq_info Opisuje jedno nagranie IQ (składowa synfazowa i kwadraturowa) w katalogu roboczym bez jego przetwarzania
iq_scene Generuje wielosatelitarną scenę GNSS IQ w katalogu roboczym (kshana iq scene)
iq_acquire Akwizycja metodą FFT (szybka transformata Fouriera) jednego lub kilku PRN (kodów pseudolosowych) w nagraniu (kshana iq acquire), opcjonalnie za etapami toru wejściowego
iq_track Akwizycja, a następnie śledzenie bankiem DLL/PLL/FLL (pętle synchronizacji opóźnienia, fazy i częstotliwości) (kshana iq track), z pętlami z `kshana.loop-desig
iq_frontend Stosuje cyfrowe przetwarzanie sygnałów (DSP, digital signal processing) toru wejściowego odbiornika i łagodzenia zakłóceń
iq_sweep Odtwarza jedno nagranie IQ z katalogu roboczego dla kilku konstrukcji pętli śledzenia (kshana iq sweep)
iq_monitor Uruchamia monitory detekcji zakłóceń i spoofingu na nagraniu IQ z katalogu roboczego (kshana iq monitor)
iq_labfit Dopasowuje model utraty synchronizacji pętli śledzenia do przebiegów laboratoryjnych (kshana iq labfit) ze scenariusza iq-labfit, którego dzienniki są podane w treści (text lub base64
iq_test_conditions Waliduje plik kshana.test-conditions/1 podany jako tekst i zwraca rozstrzygnięte warunki wraz z ich skrótem
iq_campaign Uruchamia kampanię odtwarzania laboratoryjnego (kshana iq campaign)
iq_campaign_status Postęp w folderze wyjściowym kampanii

Mapowanie compliance

Narzędzie Co robi
compliance_report Mapowanie na publiczne ramy, wypełnione z dokumentów wyników podanych jako tekst (kshana compliance-report)
compliance_mapping Statyczne tabele mapowania (lub, z sources, dokumenty źródłowe, które cytują, z wersjami i adresami URL) w formacie Markdown, poprzedzone tym samym oświadczeniem
list_standards_packs Pakiety standardów (kshana standards-pack list): punktowane zestawy scenariuszy dla profili testów ram DHS Resilient PNT, IMO MSC.1/Circ.1575 i ICAO Doc 9849 Appendix F
run_standards_pack Jeden pakiet uruchomiony względem progów podanych przed przebiegiem: każdy test kończy się wynikiem MET, NOT MET lub NEEDS INPUT; MODELLED, nie ocenia żadnego produktu
lunanet_afs_check LunaNet Augmented Forward Signal sprawdzony względem LNIS V5 AD1 Volume A (LSIS-AFS V1.0): kody względem drukowanych tabel lub strumień symboli względem formatu ramki; LDPC i CRC-24Q podramek od 2 do 4 nie są weryfikowane
create_round_trip_pack Podpisany pakiet laboratoryjnej weryfikacji w obie strony: scenariusz, dokument kshana.test-conditions/1, dziennik odbiornika i wynik powiązane skrótem

Benchmark

Narzędzie Co robi
score_benchmark Zgłoszenie kshana-bench ocenione względem pliku wzorca prawdy, oba jako tekst JSON (kshana bench score, bench/SPEC.md): plik wyniku z wersją specyfikacji, podziałem, skrótami danych wejściowych i metrykami zadania. MODELLED; opisuje dziennik lub korpus, nigdy produkt.
render_leaderboard Pliki wyników kshana-bench zapisane jako statyczna strona rankingu (tekst HTML), każdy wcześniej zwalidowany.

Wydania#

Cały silnik jest bezpłatny. Kshana Pro i badania na zamówienie są dla programów, które potrzebują więcej, a każda płatna droga zaczyna się od wiadomości: nie ma tu cen.

Bezpłatnie Kshana Pro Studium na zamówienie
Czym jest cały otwarty silnik, wszystkie 92 rodzajów scenariuszy, bez blokad funkcji zastrzeżona nakładka na ten sam silnik, na podstawie umowy badanie odporności PNT Twojego systemu, MODELLED, wykonane za Ciebie
Licencja AGPL-3.0 (GNU Affero General Public License, wersja 3) lub licencja komercyjna zastrzeżona umowa
Jak zacząć zainstaluj lub otwórz kshana.dev zamów ocenę Pro zamów badanie

Czym jest Pro, jego własnymi słowami z docs/PRO.md:

Ścisły nadzbiór otwartej Kshana. Pro korzysta z otwartego silnika jako biblioteki i nigdy go nie rozwidla. Każdy otwarty rodzaj scenariusza działa w Pro bez zmian, a otwarty scenariusz działa w Pro w ogóle bez licencji.

Żadnej nowej fizyki. Pro nie dodaje żadnego modelu fizycznego i żadnego nie zmienia. Każda liczba z Pro pochodzi z przebiegów otwartego silnika, więc wartość z Pro jest tak wiarygodna jak otwarty rodzaj scenariusza, z którego pochodzi, i nigdy bardziej.

Pro odpowiada na kolejne pytania programu: jaki projekt wybrać do lotu (optymalizator projektu i jego front Pareto), jak pewna jest odpowiedź (niepewność i czułość) oraz czy misja spełnia swoje wymagania (dossier misji, śledzenie wymagań, badania kompromisowe, kontrola regresji scenariuszy, cyfrowe bliźniaki zegarów, dossier badania i usługa lokalna). Obserwuje też kampanię wartości i przerywa potok, gdy któraś się pogarsza, sprawdza kandydackie plany sygnałów względem otwartych sygnałów nawigacji satelitarnej w obu kierunkach (współistnienie widmowe) i kolejkuje badania w lokalnej usłudze zadań z rejestrem dostaw powiązanym łańcuchem skrótów. Każdy z tych elementów jest opisany w docs/PRO.md, wraz z tym, co daje i czego nie robi. Nic, co tworzy Pro, nie jest certyfikacją, a badanie na zamówienie również nią nie jest.

Co Kshana Pro odczytuje z otwartego silnika oraz wsparcie od Ashforde® OÜ

Na czym opiera się Kshana Pro. Każda część Pro pracuje na otwartym silniku i zostawia go bez zmian:

  • Optymalizator projektu, badanie niepewności i dossier misji uruchamiają scenariusze otwartego silnika przez jego publiczny interfejs i obliczają każdą liczbę z wyników tych przebiegów. Każdy wynik zachowuje poziom VALIDATED, MODELLED lub PARTNER, który otwarty silnik nadał danej wartości, nigdy wyższy.
  • Cyfrowe bliźniaki zegarów korzystają z modelu zegara otwartego silnika i jego estymatora odchylenia Allana: bliźniak jest kalibrowany do opublikowanego budżetu Allana urządzenia, a następnie sprawdzany przez oszacowanie odchylenia Allana bliźniaka otwartym estymatorem.
  • Badania kompromisowe uruchamiają każdą opcję architektury jako scenariusz otwartego silnika, bez zmian, i szeregują opcje według wskaźnika jakości odczytanego z wyniku każdego przebiegu.
  • Obserwacja kampanii odczytuje swoje wartości z wyników przebiegów scenariuszy z pakietu w otwartym silniku i porównuje je z poprzednim udanym przebiegiem.
  • Współistnienie widmowe odczytuje każdą liczbę fizyczną z przebiegów otwartego silnika rodzajów leo-signal i constellation-design, a dodaje tylko sumę po widocznych satelitach i szeregowanie planów.
  • Lokalna usługa zadań uruchamia otwarte scenariusze i scenariusze Pro w tym samym silniku i zapisuje każdy wynik tak, jak zwrócił go przebieg.
  • Pakiety dowodowe zapisują dla każdego przebiegu skrót scenariusza, który otwarty silnik umieszcza w wyniku, więc wartość z pakietu można odtworzyć, uruchamiając scenariusz ponownie.
  • Inżynieria systemów i narzędzia programowe. Narzędzia Kshana Pro do inżynierii systemów opartej na modelach (MBSE) i do programów sprawdzają wymagania programu względem przebiegów otwartego silnika: importują wymagania jako wartości rozdzielane przecinkami (CSV) albo jako udokumentowany podzbiór Requirements Interchange Format (ReqIF) lub tekstu Systems Modeling Language w wersji 2 (SysML v2), oceniają każde kryterium akceptacji, z jego jednostką, względem wartości zapisanych przez przebieg i tworzą macierz odsyłaczy weryfikacji (VCRM), model SysML v2, raport wpływu zmian i pakiet dowodowy offline. Niczego nie uruchamia ponownie ani nie przelicza i odczytuje tylko to, co publikuje otwarty silnik: result.json każdego przebiegu (pola, które wskazuje kryterium, ich jednostki, znacznik odtwarzalności ze skrótem scenariusza, ziarnem, wersją silnika i wersją schematu oraz etykietę przebiegu i poziomy wartości), jego report.json (rodzaj, zapis odtwarzalności i etykiety możliwości), plik scenariusza (jego skrót, rodzaj, ziarno i parametry), schemat jednostek pól (jednostkę, pochodzenie i poziom dowodowy każdego pola) oraz macierz weryfikacji (etykietę VALIDATED, MODELLED lub PARTNER każdej możliwości).

Wsparcie i usługi profesjonalne#

Kshana jest bezpłatna i otwartoźródłowa na licencji AGPL-3.0 oraz profesjonalnie rozwijana i utrzymywana przez Ashforde® OÜ (Estonia). Otwarty silnik jest kompletny i można go używać samodzielnie. Dla organizacji, które potrzebują więcej, Ashforde® OÜ oferuje:

  • Wsparcie komercyjne i integrację: osadzenie Kshana w Twoim zestawie narzędzi, scenariusze na zamówienie i poprawki z pierwszeństwem.
  • Własne modele czujników: skalibrowane do Twojego sprzętu, w tym modele odporności objęte ograniczeniami eksportowymi, utrzymywane w prywatnej nakładce.
  • Kshana Pro: zastrzeżone narzędzia do inżynierii systemów opartej na modelach (MBSE) i do programów, które sprawdzają wymagania programu względem przebiegów otwartego silnika i tworzą macierz odsyłaczy weryfikacji (VCRM), model Systems Modeling Language w wersji 2 (SysML v2), raport wpływu zmian i pakiet dowodowy offline. Niczego nie uruchamia ponownie i odczytuje tylko opublikowane wyjścia silnika: result.json i report.json każdego przebiegu, plik scenariusza, schemat jednostek pól i etykiety macierzy weryfikacji (pełna lista jest w sekcji Wydania).
  • Narzędzia Kshana Pro do projektowania, niepewności i misji: front Pareto przestrzeni projektowej, niepewność i czułość na tysiącach przebiegów oraz dossier misji jednym poleceniem, z macierzą weryfikacji i plikiem PDF; zob. docs/PRO.md.
  • Obserwacja kampanii, współistnienie widmowe i usługa zadań w Kshana Pro: potok, który przerywa się, gdy obserwowana wartość się pogarsza, plany sygnałów sprawdzane względem otwartych sygnałów nawigacji satelitarnej w obu kierunkach oraz lokalna kolejka zadań z rejestrem dostaw powiązanym łańcuchem skrótów; zob. docs/PRO.md.
  • Szkolenia i doradztwo w analizie wydajności kwantowych i klasycznych systemów PNT.

To model open-core: silnik ma i zachowa otwartą licencję; utrzymanie firmy opiera się na wiedzy, wsparciu i zastrzeżonych rozszerzeniach, a nie na opłatach licencyjnych. Kontakt: contact@ashforde.org · ashforde.org.

Badania#

Badania oparte na otwartym silniku są publikowane w arXiv. Każde wskazuje polecenie silnika, które za nimi stoi, więc jego liczby można odtworzyć ze zatwierdzonego przykładu scenariusza lub badania.

Badania oparte na otwartym silniku: sześć prac w arXiv; każda karta podaje pracę, jej datę i kategorię oraz polecenie silnika, które odtwarza jej liczby. Te same sześć prac, z odnośnikami i poleceniami, jest w tabeli poniżej.Badania oparte na otwartym silniku: sześć prac w arXiv; każda karta podaje pracę, jej datę i kategorię oraz polecenie silnika, które odtwarza jej liczby. Te same sześć prac, z odnośnikami i poleceniami, jest w tabeli poniżej.
Praca Co pokazuje Polecenie silnika
Anticipating the Optimism Gap: Predicting Distribution-Shift Degradation of RF-Impairment Detectors from In-Distribution Statistics
arXiv:2606,22054 · doi:10.48550/arXiv.2606.22054
Spadek wyniku detektora zakłóceń GNSS po zmianie warunków można przewidzieć wyłącznie ze statystyk z rozkładu pierwotnego, najpierw na otwartym stanowisku syntetycznym, a potem na otwartych nagraniach terenowych. cargo run --release --example optimism_study -- paper-artifacts/optimism-study.json
A Conditional Timing Protection Level: Holdover-Limited Undetected Time Error Under GNSS Spoofing
arXiv:2606,24210 · doi:10.48550/arXiv.2606.24210
Odbiornik czasu GNSS pod wpływem spoofingu nie ma skończonej bezwarunkowej granicy niewykrytego błędu czasu, więc praca podaje granicę warunkową, skalibrowaną na zarejestrowanym spoofingu w eterze z publicznej kampanii JammerTest 2024. cargo run --release --example tpl_jammertest
How Stable Is a PNT Resilience Score? Decision-Instability of Single-Number Resilience Ratings under Framework-Aligned Weighting
arXiv:2607,05415 · doi:10.48550/arXiv.2607.05415
Pojedynczy złożony wskaźnik odporności jest stabilną podstawą decyzji tylko tam, gdzie jeden projekt dominuje; tam, gdzie projekty rywalizują, samo przeważenie może zmienić zwycięzcę. cargo run --release --example resilience_report -- paper-artifacts/resilience-study.json
Earth-baseline VLBI restores the observability of a lunar surface station in joint orbit-and-clock determination
arXiv:2607,02566 · doi:10.48550/arXiv.2607.02566
Pomiary odległości wewnątrz konstelacji księżycowej pozostawiają bezwzględne położenie stacji powierzchniowej nieobserwowalne; opóźnienie interferometrii o bardzo długiej bazie (VLBI) z Ziemi przywraca je, gdy konstelacja jest rzadka, i wyostrza, gdy jest bogata. rodzaj lunar-joint-od-clock: kshana example lunar-joint-od-clock > s.toml && kshana s.toml
The Cost of Lunar South-Polar Geometry, and Surface Beacons as the Efficient Fix: A Dilution-of-Precision Analysis
arXiv:2607,06212 · doi:10.48550/arXiv.2607.06212
Planowane konstelacje czterech do sześciu satelitów dają słabą geometrię na południowym biegunie Księżyca, a kilka powierzchniowych nadajników pomiarowych naprawia ją znacznie taniej niż dodatkowe satelity. rodzaj lunar-beacon: kshana example lunar-beacon > s.toml && kshana s.toml
Cislunar navigation is an observability problem: arc-length thresholds, Gramian conditioning, and the Doppler lever
arXiv:2610,23871 · doi:10.48550/arXiv.2610.23871
Rozmycie dokładności jest niezdefiniowane dla śledzenia cislunarnego samą odległością, ponieważ prędkość jest nieobserwowalna w pojedynczej chwili, więc praca używa gramianu obserwowalności na czterech płaskich orbitach dalekich wstecznych: sama odległość daje rząd 2 z 4 w pojedynczej chwili i potrzebuje łuku około 2,09 h, by stać się w pełni obserwowalna, a uwarunkowanie poprawia się wraz z wydłużaniem łuku; prędkość zmiany odległości (Doppler) daje rząd 4 natychmiast; a łączne estymowanie stacji ze stanami satelitów i zegarami pozostaje o jeden rząd niepełne, dopóki nie doda się zewnętrznej wielkości interferometrycznej. Wymagania należą do budżetów długości łuku, uwarunkowania i rodzaju pomiaru, a nie do DOP. rodzaj cislunar-observability: kshana scenarios/cislunar-observability.toml (jego siostrzany cislunar-arc-recovery sprawdza próg niezależnym estymatorem różnic skończonych)

Trzy przykłady badań zapisują artefakty deterministyczne co do bajta (stałe ziarna), które rejestrują wersję silnika, ziarna i skrót konfiguracji. Trzy prace księżycowe i cislunarne opierają się na zestawie księżycowym (poziom dowodowy każdego elementu jest w macierzy weryfikacji); ich twierdzenia o geometrii i rozmyciu dokładności są ponadto sprawdzane krzyżowo względem osobnych wyroczni w tests/validate_p*.rs. Więcej w Odtwarzalne artefakty badań w sekcji Reference.

Cytowanie#

Jeśli używasz Kshana w pracy naukowej lub technicznej, podaj użytą wersję wraz ze scenariuszem i ziarnem. CITATION.cff zawiera metadane czytelne maszynowo, a GitHub pokazuje na ich podstawie przycisk „Cite this repository”. Każde wydanie jest archiwizowane w Zenodo; DOI koncepcji (Digital Object Identifier) 10.5281/zenodo.20528627 zawsze wskazuje najnowszą wersję.

Baweja, C. (2026). Kshana — a PNT-resilience simulator with quantum-sensor performance models. Ashforde OÜ. https://doi.org/10.5281/zenodo.20528627

Powyższe prace:

Baweja, C. (2026). Anticipating the Optimism Gap: Predicting Distribution-Shift Degradation of RF-Impairment Detectors from In-Distribution Statistics. arXiv:2606,22054. https://doi.org/10.48550/arXiv.2606.22054

Baweja, C. (2026). A Conditional Timing Protection Level: Holdover-Limited Undetected Time Error Under GNSS Spoofing. arXiv:2606,24210. https://doi.org/10.48550/arXiv.2606.24210

Baweja, C. (2026). How Stable Is a PNT Resilience Score? Decision-Instability of Single-Number Resilience Ratings under Framework-Aligned Weighting. arXiv:2607,05415. https://doi.org/10.48550/arXiv.2607.05415

Baweja, C. (2026). Earth-baseline VLBI restores the observability of a lunar surface station in joint orbit-and-clock determination. arXiv:2607,02566. https://doi.org/10.48550/arXiv.2607.02566

Baweja, C. (2026). The Cost of Lunar South-Polar Geometry, and Surface Beacons as the Efficient Fix: A Dilution-of-Precision Analysis. arXiv:2607,06212. https://doi.org/10.48550/arXiv.2607.06212

Baweja, C. (2026). Cislunar navigation is an observability problem: arc-length thresholds, Gramian conditioning, and the Doppler lever. arXiv:2610,23871. https://doi.org/10.48550/arXiv.2610.23871

Licencja#

Kshana ma podwójną licencję: GNU AGPL-3.0-only (LICENSE) albo licencję komercyjną od Ashforde® OÜ do zamkniętej integracji, której AGPL nie odpowiada. LICENSING.md wyjaśnia, która obowiązuje. Wkłady są licencjonowane przychodząco na AGPL i dodatkowo dają Ashforde® OÜ prawo do włączenia ich do wydania komercyjnego; każdy commit podpisuj poleceniem git commit -s (zob. CONTRIBUTING.md). „Kshana” i jej znaki są znakami towarowymi Ashforde® OÜ: licencja obejmuje kod, a nie nazwę, więc forkom należy nadać inną nazwę.

Źródła#

Długie materiały, zwinięte. Każdy dokument jest wymieniony w Dokumentacji.

Instalacja i budowanie ze źródeł

Instalacja i budowanie#

Wymaga toolchainu Rust (≥ 1,88, czyli rust-version w Cargo.toml; rozwijane na 1,93).

git clone https://github.com/ashfordeOU/kshana
cd kshana
cargo build --release
cargo test          # all tests pass
Użycie: pełny wiersz poleceń

Sposób użycia#

Uruchom dowolny scenariusz; CLI rozpoznaje go po polu kind scenariusza i zapisuje obok niego <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html i <scenario>.report.json, a dla rodzajów, które publikują tabelę, także <scenario>.table.csv. Raport (strona HyperText Markup Language (HTML) i dokument JSON o tej samej treści) zawiera podsumowanie dla kadry kierowniczej, każde wejście z jego jednostką, wyniki i wykresy, tabele przeglądu kampanii, Monte Carlo lub łańcucha, oś zdarzeń, etykietę VALIDATED / MODELLED / PARTNER i źródło każdej możliwości użytej w przebiegu, to, czego nie modeluje, oraz zapis odtwarzalności (wersja silnika, skróty Secure Hash Algorithm 256-bit (SHA-256), ziarno, platforma i dokładne polecenie). Z przeglądarki drukuje się do czystego pliku PDF (Portable Document Format) na papierze A4 lub Letter; sam silnik nie zapisuje żadnego PDF. Zob. docs/REPORTS.md.

cargo run -- scenarios/clock-holdover.toml
cargo run -- scenarios/imu-deadreckoning.toml
cargo run -- scenarios/timetransfer.toml
cargo run -- scenarios/hybrid-pnt.toml
cargo run -- scenarios/orbit-gnss-challenged.toml
cargo run -- scenarios/orbit-sgp4-gps.toml
cargo run -- scenarios/orbit-rinex.toml
cargo run -- scenarios/integrity-raim.toml

# Export a propagated constellation to an SP3-c precise-ephemeris file:
cargo run -- scenarios/orbit-sgp4-gps.toml --export-sp3 gps.sp3

# Export the constellation's mean elements to a CCSDS OMM catalogue (one OMM
# message per TLE-defined satellite, with its real NORAD id / COSPAR designator):
cargo run -- scenarios/orbit-sgp4-gps.toml --export-omm gps.omm

# Export the velocity-carrying state to a CCSDS OEM 2.0 ephemeris (GMAT/Orekit/STK):
cargo run -- scenarios/orbit-sgp4-gps.toml --export-oem gps.oem

# Export the geometry for a globe, a map or a mission-analysis tool: CZML, KML,
# GeoJSON, STK .e, or SigMF for the spectrum kind (every format that applies):
cargo run -- scenarios/jamming-demo.toml --export all

--export <czml|kml|geojson|stk|sigmf|all|list> zapisuje obok scenariusza CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON (Request for Comments 7946), efemerydy Ansys STK (Systems Tool Kit) .e i nagrania SigMF (Signal Metadata Format), a --import-route <route.geojson> wprowadza linię GeoJSON do rodzajów, w których śledzi się trasę. Każdy format jest walidowany względem opublikowanej specyfikacji, a scenariusz, do którego format nie ma zastosowania, podaje powód: zob. docs/INTEROP.md.

Inne tryby CLI: sprawdzenie scenariusza (lint), wczytanie rzeczywistych danych orientacji Ziemi lub uruchomienie całego zestawu:

# Lint a scenario without running it (checks the kind + required fields):
cargo run -- --validate scenarios/integrity-raim.toml

# Feed a real IERS Earth-orientation file (finals2000A) for frame precision:
cargo run -- scenarios/orbit-sgp4-gps.toml --eop tests/fixtures/agency/eop/finals2000A_2022001.txt

# Run a SUITE of scenarios into one aggregated, stamped study artifact
# (writes <suite>.study.json + <suite>.study.html next to the manifest):
cargo run -- --study scenarios/quantum-pnt-demonstrator.suite.toml

# Animate a run's time series: an animated SVG, a self-contained HTML player, and a
# numbered SVG frame sequence with manifest.json (see docs/ANIMATION.md):
cargo run -- scenarios/campaign-jam-spoof-holdover-integrity.toml --animate all

Eksport animacji. --animate svg|html|frames|all zapisuje <scenario>.animation.svg (klatki kluczowe Cascading Style Sheets (CSS), bez skryptu), <scenario>.animation.html (odtwarzanie, pauza, przewijanie, prędkość i zsynchronizowane panele, bez zewnętrznych zasobów) i <scenario>.frames/ (frame_0000.svg, … oraz manifest.json z liczbą klatek na sekundę i czasem trwania). Kampania odtwarza swoje fazy i alarmy, przebieg widmowy swój wodospad; motyw podąża za prefers-color-scheme, a prefers-reduced-motion pokazuje gotowy obraz. Renderuje własne próbki przebiegu, identyczne co do bajta przy ponownym uruchomieniu, i nie dodaje dowodów. Zob. docs/ANIMATION.md.

Manifest zestawu to mały plik TOML (Tom's Obvious, Minimal Language): title i tablica scenarios = [ … ] ze ścieżkami scenariuszy, które silnik uruchamia kolejno, scalając każdy wynik (z jego etykietami MODELLED / VALIDATED) w jeden samoopisujący się artefakt badania. Zob. scenarios/quantum-pnt-demonstrator.suite.toml.

Rola w interoperacyjności. Kshana jest warstwą symulacji wydajności, która działa obok narzędzi przetwarzania końcowego, a nie ich zamiennikiem: jej wyjście RINEX podaj do RTKLIB lub gLAB, by uzyskać rozwiązanie pozycji, a jej wyjścia SP3 użyj jako precyzyjnego produktu orbitalnego w narzędziach takich jak Ginan; Kshana odpowiada na pytanie jaką odporność daje dana architektura PNT, zanim będą rzeczywiste sygnały, w formatach, które te narzędzia już przyjmują (--export-sp3 lub export_sp3 = true w scenariuszu orbit zapisuje <scenario>.sp3). Tę samą orbitę można opublikować jako średnie elementy CCSDS OMM ze ścieżki standaryzacyjnej (--export-omm lub export_omm = true zapisuje <scenario>.omm): jeden komunikat OMM 502,0 KVN (zapis słowo kluczowe = wartość) na każdego satelitę zdefiniowanego przez TLE, z rzeczywistym numerem katalogowym NORAD (North American Aerospace Defense Command), międzynarodowym oznaczeniem COSPAR (Committee on Space Research) i epoką każdego obiektu, dla dowolnego odbiorcy obsługującego OMM, zamiast dedykowanego dwuwierszowego zestawu elementów.

Przykładowe wyjście (holdover zegara; zwróć uwagę, jak raportowane są wskaźniki jakości Integrity i Security):

scenario 5ba83a232b94 | quantum holdover 6600s p95 1.20e-4ns integrity 1.000 security n/a (no attack) | classical holdover 2610s p95 19.7ns integrity 1.000 security n/a (no attack)
wrote scenarios/clock-holdover.result.json, scenarios/clock-holdover.chart.svg, scenarios/clock-holdover.report.html, and scenarios/clock-holdover.report.json

95. percentyl (p95) błędu czasu zegara optycznego wynosi 1.20e-4 ns: podsumowanie wypisuje małe wartości z cyframi znaczącymi, zamiast zaokrąglać je do 0.0. security pokazuje n/a (no attack), ponieważ ten scenariusz nie konfiguruje żadnego ataku, więc nie ma czego wykrywać. Wynik JSON nadal zawiera analityczną granicę wykrywalności spoofingu każdego zegara w fom.security (0,997 dla zegara optycznego, 0,000 dla zegara atomowego w skali układu scalonego, którego własny szum w oknie monitorowania przekracza specyfikację 20 ns), a jego blok figure_tiers oznacza tę wartość jako applicable: false. Rodzaj scenariusza spoof ocenia detekcję względem wstrzykniętego ataku. figure_tiers nadaje też każdej raportowanej wartości jej poziom weryfikacji (VALIDATED, czyli sprawdzone względem zewnętrznej wyroczni, lub MODELLED) oraz wiersz macierzy weryfikacji, z którego poziom odczytano. Scenariusz orbit dodatkowo raportuje blok geometrii: ułamek próbek z rozwiązaniem oraz najlepszy i medianowy pozycyjny współczynnik DOP (PDOP) i dokładność pozycji, obok wyniku zegara.

Przeczytaj uważnie te dwie liczby. security to analityczna granica wykrywalności spoofingu wyprowadzona ze stabilności każdego zegara; ma sens tylko dla skonfigurowanego scenariusza spoofingu i nie jest wielosatelitarnym detektorem RAIM. integrity oznacza tu samospójność filtra (ułamek próbek podczas przerwy mieszczących się w jego własnej granicy k-sigma), a nie lotniczą wartość integralności HPL/VPL. Zob. docs/INTEGRITY.md.

Dla rzeczywistej integralności autonomicznej odbiornika rodzaj scenariusza integrity (scenarios/integrity-raim.toml) uruchamia rzeczywisty RAIM migawkowy i z separacją rozwiązań (typu ARAIM) na propagowanej geometrii konstelacji: oblicza dla każdej epoki poziomy ochrony (HPL/VPL) w poziomie i w pionie oraz podaje ułamek epok, które mieszczą się w skonfigurowanych limitach alarmowych, z diagramem integralności Stanforda do klasyfikacji błąd–PL (poziom ochrony).

Odtwarzalne artefakty badań

Cztery otwarte badania odtwarzają po jednym artefakcie deterministycznym co do bajta (stałe ziarno) jednym poleceniem: liczby stojące za badaniami punktu przecięcia kwantowego i klasycznego, luki optymizmu detektorów zakłóceń RF, punktowania odporności PNT i poziomu ochrony czasu:

# Quantum-vs-classical resilience crossover map (writes paper/crossover/*.json):
cargo run --release --bin crossover_study -- paper/crossover

# RF-impairment optimism-gap study (13-detector panel, scaling laws, LOO predictor):
cargo run --release --example optimism_study -- paper-artifacts/optimism-study.json

# Framework-aligned PNT-resilience scoring + decision-instability study:
cargo run --release --example resilience_report -- paper-artifacts/resilience-study.json

# Conditional Timing Protection Level, calibrated on a real recorded spoof:
cargo run --release --example tpl_jammertest

Każdy artefakt rejestruje wersję silnika, ziarna i skrót konfiguracji oraz nosi uczciwą etykietę MODELLED/VALIDATED. Sondy na rzeczywistych danych (*_probe) uruchamiają ten sam potok na nagraniach, które dostarczasz lokalnie; w repozytorium nie ma żadnych zbiorów danych. Badanie luki optymizmu detektorów zakłóceń RF opisano w preprincie arXiv:2606,22054, a warunkowy poziom ochrony czasu (tpl_jammertest powyżej) w preprincie arXiv:2606,24210 (zob. Cytowanie).

Opublikowane badania księżycowego PNT (arXiv:2607,06212 DOP z nadajnikami powierzchniowymi, arXiv:2607,02566 obserwowalność VLBI i arXiv:2610,23871 obserwowalność cislunarna względem długości łuku) mają swoje twierdzenia o geometrii, rozmyciu dokładności, przewidywaniu ramki czasu rzeczywistego i parametrów orientacji Ziemi (EOP), orbitach dalekich wstecznych i pomiarach odległości RF niezależnie sprawdzone krzyżowo w tests/validate_p*.rs względem osobnych wyroczni (scipy.special.j1, niezależne rozwiązanie DOP w NumPy z (HᵀH)⁻¹, ponowne sparsowanie w NumPy tych samych wierszy IERS finals2000A oraz baza NASA/JPL Three-Body Periodic Orbit Database). Są to dodatkowe kontrole regresji nad modelowanym zestawem księżycowym; nie zmieniają liczby pozycji macierzy sprawdzanych maszynowo.

Format scenariusza

Format scenariusza#

Scenariusze są deklaratywnym TOML. Pole najwyższego poziomu kind wybiera pakiet; jest ich w sumie pięćdziesiąt (clock jest domyślny, jeśli pole pominięto): inertial, timetransfer, hybrid, hybrid-ukf, fusion, gnss-ins, orbit, ephemeris, gnss-sim, integrity, lunar-integrity, lunar-time-offset, spoof, spoof-detect, jamming, sweep, sweep-nd, gravity-map, terrain-nav, terrain-slam, combined-altpnt, pvt, mars-pnt, impairment-eval (stanowisko do oceny detekcji zakłóceń RF metodami uczenia maszynowego: oznakowany korpus syntetyczny, niezależna od detektora uprząż ROC/AUC i luka optymizmu między rozkładem pierwotnym a spoza niego), quantum-trade (kompromis między PNT kwantowym a klasycznym z wczytywaniem zmierzonego ADEV i obwiednią odporności bez GNSS; MODELLED), space-weather (wskaźniki słoneczne i geomagnetyczne, temperatura egzosferyczna Jacchia-71 i zależna od aktywności gęstość termosferyczna nad atmosferą statyczną; MODELLED), oem-interop (most importu i obiegu CCSDS OEM dla efemeryd GMAT/Orekit/STK; MODELLED), trójka analiz misji launch-window (azymut startu, zmiana płaszczyzny i okazje dla dwóch ciał), reentry (korytarz balistycznego wejścia w atmosferę Allena-Eggersa), eo-coverage (geometria pasa obserwacji, GSD, dostępu i rewizyty EO), space-packet (ramkowanie Space Packet CCSDS 133,0 TM/TC, czyli telemetrii i telekomend, z dokładnym układem bitów, zweryfikowane w obie strony) oraz attitude-budget (moment gradientu grawitacyjnego o 3 stopniach swobody i budżet błędu wskazywania RSS), passes (przewidywanie przejść nad stacją naziemną: AOS/TCA/LOS, maksymalna elewacja, dostęp) i link-budget (jednokierunkowe równanie łącza CCSDS/DSN: FSPL / Eb·N₀ / zapas / zamknięcie); telecom-timing (błąd czasu w holdover, MTIE i TDEV sprawdzone względem masek ITU-T); spectrum (całe pasmo L GNSS jako jedna widmowa gęstość mocy: wodospad częstotliwość–czas pod skryptowaną osią czasu zagłuszarki o fali ciągłej, wąskopasmowej, typu chirp lub o szumie dopasowanym, stosunek zagłuszarki do sygnału w każdym paśmie i efektywna gęstość nośna do szumu z widmowego współczynnika separacji oraz wejście i wyjście nagrań Signal Metadata Format (SigMF) z estymatami widmowymi Welcha; widma sygnałów VALIDATED względem wartości podręcznikowych, scenariusz zagłuszarki MODELLED; zob. docs/SPECTRUM.md; ten sam rodzaj rysuje panele pasm UHF, S i C z zaprojektowanymi sygnałami niskiej orbity okołoziemskiej); leo-signal (projekty sygnałów pozycjonowania, nawigacji i czasu na niskiej orbicie okołoziemskiej dla dowolnego systemu: widma ograniczone pasmowo, drżenie śledzenia kodu i dokładność pomiaru odległości, przeszukiwanie i czas akwizycji, separacja widmowa względem GPS i Galileo, odporność na zagłuszanie oraz kompromis między pasmami UHF i C, z publicznych ustawień wstępnych, takich jak Xona Pulsar, Iridium, Starlink i CentiSpace, lub z projektów podanych w treści; zależności w postaci zamkniętej i Doppler LEO VALIDATED, projekty MODELLED; zob. docs/LEO-SIGNAL.md); solar-system (Słońce, planety, Pluton, Księżyc i siedem dużych księżyców w jednej epoce: położenia, stałe, czasy światła i tory orbitalne; położenia planet VALIDATED względem JPL Horizons) i body-pnt (pozycjonowanie wokół dowolnego z tych ciał z lokalną konstelacją nawigacyjną i łączem dalekiego kosmosu z Ziemi; MODELLED); campaign (istniejące rodzaje złożone w łańcuchowy harmonogram misji ze stanem przekazywanym między fazami, przegląd parametru, zasiany zespół Monte Carlo lub kilka scenariuszy w jednym wspólnym warunku; MODELLED, zob. docs/CAMPAIGNS.md); constellation-design (wzory delta i star Walkera, listy elementów i projekty wielopowłokowe z ustawieniami wstępnymi GPS, Galileo, BeiDou i GLONASS oraz pokrycie i rozmycie dokładności na siatce szerokości i długości geograficznej; generator i globalny DOP GPS VALIDATED względem opublikowanych dokumentów usługi, zob. docs/CONSTELLATION-DESIGN.md); leo-pass (przejście satelity pozycjonowania, nawigacji i czasu (PNT) na niskiej orbicie okołoziemskiej (LEO) i jego budżet łącza pasmo po paśmie, dla dowolnej konstelacji i dowolnego projektu sygnału: kąty widzenia, Doppler i jego tempo, tłumienie ITU-R przez deszcz, gazy, scyntylacje i wnikanie do budynków, gęstość nośna do szumu względem satelitów GNSS MEO w zasięgu, jonosfera pierwszego rzędu i pary wolne od jonosfery, budżet namiaru o niskiej energii, sondowanie jonosfery z każdej pary pasm oraz monitory spoofingu według spójności Dopplera i geometrii przejścia i według spójności międzypasmowej; człony ITU-R i obwiednia Dopplera użytkownika nieruchomego VALIDATED, przejście MODELLED, zob. docs/LEO-PASS.md); leo-navmsg (komunikat efemeryd i zegara rozgłaszany przez satelitę PNT na niskiej orbicie okołoziemskiej (LEO), dla dowolnej orbity i nośnej: dopasowanie od całkowanej orbity prawdziwej do zestawu keplerowskiego Galileo, ten zestaw z wielomianami poprawek wzdłuż toru, w poprzek toru i radialnych, 22-parametrowy model Liu i in. 2025 lub wielomian ECEF ATOMIC z zerowym zegarem; błąd odległości sygnału w przestrzeni (SISRE) w funkcji przedziału dopasowania i okresu aktualizacji, kontrola ciągłości aktualizacji w trakcie przejścia, własna udokumentowana ramka binarna Kshana z cykliczną kontrolą nadmiarową CRC-24Q i budżetem kwantyzacji oraz blok w stylu RINEX-4 oznaczony jako rozszerzenie Kshana; wagi SISRE, algorytm użytkownika Galileo i CRC-24Q VALIDATED, dopasowania MODELLED; opcjonalne ustawienia wstępne dla Xona Pulsar, Iridium, Starlink, CentiSpace, reprezentatywnego systemu pasma C, ATOMIC i Celeste IOD; zob. docs/LEO-NAVMSG.md); trójka połączonego PNT MEO + LEO leo-pvt (pozycjonowanie Dopplerowskie z prędkości zmiany odległości LEO, wspólne namiary pseudoodległości GNSS + LEO z błędami międzysystemowymi i DOP w funkcji liczby satelitów LEO, pokrycie polarne i arktyczne oraz transfer czasu LEO do UTC, dla dowolnej konstelacji, z opcjonalnymi ustawieniami wstępnymi, takimi jak sygnały okazjonalne Xona Pulsar, Iridium i Starlink; obwiednia Dopplera LEO VALIDATED względem opublikowanych wartości Iridium i Xona), leo-ppp (zbieżność precyzyjnego pozycjonowania punktowego samym GNSS i z uzupełnieniem LEO, porównana z Li i in. 2019) i ntn-positioning (pozycjonowanie 5G w sieci pozaziemskiej z granicy Craméra-Rao dla pasma sygnału), MODELLED poza tą obwiednią, zob. docs/LEO-PNT-FUSION.md; leo-pnt-chain (jeden system LEO-PNT od końca do końca: projekt leo-signal niesiony przez pasmo leo-pass, C/N0 przejścia i błąd odległości sygnału w przestrzeni komunikatu nawigacyjnego przekazane do połączonego namiaru leo-pvt i zbieżności leo-ppp, z wypisanym każdym przekazaniem; MODELLED, zob. docs/LEO-PNT.md, które jest też przeglądem każdego rodzaju i scenariusza LEO-PNT, w tym kampanii odporności, po jednym scenariuszu na obszar zainteresowania eksperymentu i po jednym na pionową dziedzinę użytkownika końcowego); zestaw księżycowego PNT lunar-vlbi, lunar-joint-od-clock, lunar-frame-realisation, moonlight-service-volume, lunar-differential-pnt, lunar-interop-export; demonstrator PNT z wykorzystaniem kwantowym quantum-time-transfer, quantum-gnss-free-nav, quantum-anomaly-detect; oraz rodzaje badawcze bezpieczeństwa sygnałów, cislunarne i warstwowej odporności lunar-attack-surface, realtime-frame-eop, lunar-time-budget, hybrid-optical-rf, cislunar-observability, conflict-resilience. Trójka analiz misji i te późniejsze rodzaje są w całości MODELLED (każdy ze sprawdzonym rdzeniem w postaci zamkniętej; zob. macierz). Wspólne pola: seed, siatka [time], oś czasu dostępności [gnss] (źródło przerw) oraz bloki poszczególnych czujników z ciągami provenance cytującymi źródło każdej wartości. Przykład (clock):

seed = 42
threshold_ns = 20.0
[time]
step_s = 10.0
duration_s = 7200.0
[gnss]
windows = [
  { t0 = 0.0,   t1 = 600.0,  state = "nominal" },  # 10 min GNSS sync
  { t0 = 600.0, t1 = 7200.0, state = "denied"  },  # ~1.8 h outage
]
[clock_quantum]
id = "optical-sr-lattice"
provenance = "Strontium optical lattice clock, space-oriented goal sigma_y(1s)=1e-15 (arXiv:1503.08457)"
y0 = 5.0e-17
q_wf = 1.0e-30   # white FM:  q_wf = sigma_y(1s)^2
q_rw = 0.0       # random-walk FM
drift = 0.0      # linear aging (per second)
[clock_classical]
id = "csac-sa45s"
provenance = "Microchip SA65 / SA.45s CSAC datasheet sigma_y(1s)=3e-10"
y0 = 5.0e-10
q_wf = 9.0e-20
q_rw = 0.0
drift = 0.0

Pola opcjonalne (wyłączone, gdy ich brak): zegar może dodać flicker_floor (poziom Allana szumu 1/f FM, czyli modulacji częstotliwości); czujnik inercyjny może dodać gyro_bias i q_arw (dryf żyroskopu i błądzenie kąta losowego) oraz bias_instability i q_aa (poziom Allana niestabilności biasu i błądzenie przyspieszenia losowego), razem jednoosiowy (1-DOF) budżet błędu akcelerometru (VRW/ARW, czyli błądzenie losowe prędkości i kąta, oraz niestabilność biasu). To jest budżet błędu, który uruchamia dostarczany pakiet scenariuszy inertial. Oddzielnie biblioteka zawiera teraz zweryfikowany 3-osiowy nawigator strapdown (src/inertial/{attitude,mechanization,imu_errors}.rs): orientację kwaternionową z kompensacją coningu i sculllingu, pełną mechanizację NED (człony prędkości obrotu Ziemi i prędkości transportu, grawitacja Somigliany WGS-84) oraz deterministyczny model błędów IMU, w którym współczynnik skali, niewspółosiowość, czułość na g, kwantyzacja i narastanie prędkości są modelowane (IEEE Std 952-1997, specyfikacja i procedura testowa żyroskopów IEEE, §A.2; Groves 2013 §4,3). Ta ścieżka 3-osiowa jest teraz podłączona do uruchamialnego pakietu luźno sprzężonego GNSS/INS (kind = "gnss-ins"): 15-stanowy filtr EKF stanu błędu dyscyplinuje rozwiązanie strapdown względem zaszumionych namiarów, gdy GNSS działa, a następnie przechodzi przez przerwę bez wsparcia, raportując połączony błąd poziomy na tle wybiegu samego INS w pętli otwartej. Dostępna jest też aktualizacja ściśle sprzężona w pseudoodległości (tworzy innowację w dziedzinie odległości, więc wciąż koryguje przy mniej niż czterech satelitach). Scenariusz holdover zegara może dodać runs (> 1), aby uruchomić zespół Monte Carlo: każdy wskaźnik jakości jest wtedy podawany jako średnia z rozrzutem między 5. a 95. percentylem, a wykres zacieniowuje pasmo ufności błędu (zob. scenarios/clock-ensemble.toml).

Scenariusz fusion (te same bloki co hybrid) uruchamia dwa niezależne estymatory Kalmana, jeden dla stanu zegara i jeden dla stanu pozycji, dyscyplinowane przez GNSS i wspomagane optycznym transferem czasu, i raportuje połączony wskaźnik jakości holdover. Te dwa bloki nie mają wspólnej kowariancji: to jest ułożona obok siebie para budżetów błędu, a nie prawdziwy sprzężony filtr wspólny zegara i pozycji (kowariancja między blokami jest pozycją planu rozwoju). Zob. scenarios/fusion-pnt.toml.

Scenariusz spoof wstrzykuje spoofing czasu, jeden z czterech rodzajów [attack.shape] (linear_ramp, step_jump, meaconing, replay; sama rate_ns_per_s jest nadal przyjmowana jako liniowa rampa), i uruchamia detektor spoofingu każdego zegara. Detektorem jest dwustronny test energii χ²₁ / test Neymana–Pearsona na statystyce monitora wspomaganej zegarem: próg jest ustawiany z docelowego budżetu fałszywych alarmów target_pfa, a prawdopodobieństwo niewykrycia P_md jest podawane zarówno w postaci zamkniętej, jak i metodą Monte Carlo (mc_runs prób na hipotezę; obie wartości zgadzają się do kilku ×1/√N). Wskaźnik jakości Security to 1 − P_md przy operacyjnie szkodliwej (specyfikowanej) wielkości, więc spokojny zegar, który wychwytuje spoofing o wielkości ze specyfikacji, dostaje ≈ 1, a hałaśliwy, który często go nie wychwytuje, dostaje mniej (zob. scenarios/spoof-attack.toml, scenarios/spoof-meaconing.toml).

Scenariusz gnss-sim to symulacja w dziedzinie pomiarów: dla każdego widocznego satelity syntezuje pseudoodległość ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath i Dopplera L1, z jednoczęstotliwościową jonosferą Klobuchara ([iono], IS-GPS-200 §20.3.3.5.2.5) i zenitalną troposferą Saastamoinena rzutowaną funkcją odwzorowania Niella (1996) ([tropo]). Residua zasilają migawkowy RAIM dla HPL/VPL w każdej epoce, a pseudoodległość, Doppler, C/N₀ i poprawki jonosferyczne i troposferyczne każdego satelity są emitowane w tablicy JSON gnss_measurements. To symulator wprost (generuje pomiary ze znanej prawdy), a nie odbiornik ani solver: przebieg bez szumu odtwarza geometrię plus poprawki z dokładnością poniżej milimetra (zob. scenarios/gnss-sim-raim.toml).

Scenariusz jamming modeluje zakłócenia RF jako budżet łącza: [jammer] (położenie ECEF, moc nadawania power_dbw, typ) podnosi stosunek zagłuszarki do sygnału w [receiver] obserwującym [constellation] Walkera. Z geometrii (tłumienie w wolnej przestrzeni i zysk anteny odbiorczej w danym kierunku) oblicza J/S każdego satelity i efektywne C/N₀ ze standardowego równania antyzagłuszeniowego (zysk przetwarzania z rozproszenia widma × współczynnik separacji widmowej Q; Kaplan & Hegarty §9,4), oraz oznacza utratę synchronizacji poniżej konfigurowalnego progu śledzenia, raportując wskaźnik jakości availability_under_jamming. Zagłuszarka szerokopasmowa o mocy 10 W z odległości 1 km całkowicie uniemożliwia pracę odbiornika (J/S ≈ 72 dB); ta sama zagłuszarka z odległości 100 km tylko pogarsza łącza (zob. scenarios/jamming-demo.toml).

Scenariusz sweep prowadzi badanie kompromisowe: zmienia jeden parameter (threshold_ns, duration_s, quantum_q_wf lub classical_q_wf) od start do stop w steps punktach na scale lin lub log, zapisuje metric (np. holdover_s) dla obu zegarów i rysuje dwie krzywe. Scenariusz bazowy trafia do [base] (zob. scenarios/sweep-clock-stability.toml).

Scenariusz sweep-nd uogólnia to na dowolny pakiet i dowolną liczbę osi: zmienia klucze TOML w notacji z kropkami scenariusza [base] (o dowolnym kind) na iloczynie kartezjańskim [[axes]], ponownie uruchamia każdy węzeł siatki i zapisuje metrics podane jako ścieżki JSON w notacji z kropkami w wyniku (np. classical.fom.holdover_s). Działa dla każdego pakietu, ponieważ operuje na granicy TOML/wynik; uruchomienia natywne oceniają siatkę równolegle (bez dodatkowych zależności, wasm wraca do trybu sekwencyjnego), a wynik jest deterministyczny i w porządku wierszowym (zob. scenarios/sweep-nd-inertial.toml).

Scenariusz orbit wyprowadza oś czasu [gnss] z geometrii zamiast ją zapisywać: podaj orbitę [user], [constellation], mask_deg elewacji i dwa bloki zegarów. Raportuje też dokładność pozycji z geometrii satelitów; opcjonalne sigma_uere_m (błąd równoważny odległości użytkownika, 1-sigma, domyślnie 1 m) skaluje pozycyjne rozmycie dokładności do sigmy pozycji. Orbita użytkownika może być ekscentryczna dzięki eccentricity i argp_deg, a j2 = true dodaje wiekowy dryf od spłaszczenia Ziemi (zob. scenarios/orbit-molniya.toml). Konstelacja może być zamiast tego rzeczywista: podaj w [constellation] blok tle z zestawami elementów dwuwierszowych, a satelity zostaną z niego wczytane (zob. scenarios/orbit-real-tle.toml). Dodaj jeden lub więcej bloków [[constellations]] dla wielosystemowego GNSS (np. GPS + Galileo; zob. scenarios/orbit-multignss.toml):

kind = "orbit"
seed = 7
threshold_ns = 5.0
mask_deg = 10.0
sigma_uere_m = 1.0           # optional; position sigma = position-DOP * this
[time]
step_s = 60.0
duration_s = 86400.0
[user]                       # spacecraft (altitude in km, angles in deg)
altitude_km = 8000.0
inclination_deg = 0.0
[constellation]              # Walker-delta GNSS (GPS-like)
altitude_km = 20180.0
inclination_deg = 55.0
planes = 6
sats_per_plane = 4
phasing_f = 1.0
[clock_quantum]  # ... as above
[clock_classical]  # ... as above

Rodzaje alt-PNT bez GPS nawigują bez żadnego GNSS, dopasowując zmierzony ciąg pola do mapy filtrem cząsteczkowym. Scenariusz gravity-map prowadzi tor przez pole anomalii grawitacyjnych w harmonikach sferycznych i odzyskuje go z odczytu grawimetru z zimnymi atomami (scenarios/gps-denied-gravity-nav.toml); scenariusz terrain-nav robi to samo względem cyfrowego modelu terenu SRTM (TERCOM/SITAN, scenarios/terrain-nav.toml); a scenariusz combined-altpnt łączy w jednym filtrze grawitację + magnetyzm IGRF + teren (scenarios/combined-altpnt.toml).

Scenariusz lunar-integrity ocenia PNT cislunarne: wykonuje przebieg poziomu ochrony ARAIM na południowym biegunie Księżyca względem zestawu przekaźników LunaNet/LNIS i uczciwie raportuje lukę integralności: lunarne σ_URE rzędu ~30 m podnosi poziom ochrony znacznie ponad limit alarmowy 50 m, więc usługa jest niedostępna według reguł integralności w stylu lotniczym (scenarios/lunanet-araim.toml).

Scenariusz lunar-time-offset raportuje relatywistyczne tempo zegara Ziemia–Księżyc, podstawę skali Lunar Coordinate Time (LTC/TCL). Tożsamość postnewtonowska z pierwszych zasad sumuje różnicę potencjałów własnych (potencjał geoidy IAU L_G minus potencjał własny powierzchni Księżyca) i człon kinetyczny Księżyca (Doppler drugiego rzędu) do wiekowego tempa ≈ 57 µs/dobę, podawanego z opublikowanym pasmem 56–59 µs/dobę; podaje też skumulowane przesunięcie LTC−TT na horyzoncie oraz zespół z odwrotnością wariancji (księżycowy zegar papierowy). MODELLED: wartość nagłówkowa zależy od odniesienia (geoida Ziemi a selenoida Księżyca, okno uśredniania), dlatego podawane jest pasmo, a nie pojedyncza liczba uznana za wiążącą (scenarios/lunar-time-offset.toml).

Zob. scenarios/, gdzie jest co najmniej jeden działający przykład każdego rodzaju (92 rodzajów, 193 plików scenariuszy .toml + 1 manifest zestawu; kilka rodzajów ma więcej niż jeden przykład). Nie każdy rodzaj ma plik nazwany od siebie: lunar-integrity → scenarios/lunanet-araim.toml i gravity-map → scenarios/gps-denied-gravity-nav.toml to dwa z kilku takich przypadków. Rodzaje, które można uruchomić, wypiszesz w każdej chwili przez błędy cargo run -- --validate <file>, przez funkcję Pythona list_kinds() albo przez narzędzie MCP list_scenario_kinds.

Wynik

Wynik#

Artefakt wyniku to wersjonowany, samoopisujący się JSON: szeregi czasowe poszczególnych kroków, ocenione wskaźniki jakości, aktywne specyfikacje modeli (z pochodzeniem), ziarno, skrót scenariusza (dzięki któremu każdy wykres można odtworzyć z pliku) oraz, dla każdego zegara, adev_curve ([{tau_s, adev, n_samples, noise, edf, ci_lo, ci_hi}]): nakładające się odchylenie Allana dla czasów uśredniania rozmieszczonych oktawowo (standardowy sposób odczytu stabilności zegara), teraz z pasmem ufności 95% zależnym od typu szumu przy każdym punkcie (typ potęgowy zapisu jest rozpoznawany z nachylenia zmodyfikowanego odchylenia Allana, a przedział χ² używa odpowiadających mu efektywnych stopni swobody NIST SP 1065). Plac zabaw w przeglądarce rysuje go jako wykres log-log „Stabilność zegara (ADEV)”. (MDEV, TDEV i HDEV są dostępne jako estymatory biblioteczne; eksportowaną krzywą wyniku jest nakładające się ADEV.) Każde pole, z jednostkami i wskazaniem źródła, jest udokumentowane w docs/SCHEMA.md.

Każdy wykres jest samoopisujący się. Plac zabaw w przeglądarce, eksport *.chart.svg z CLI i karta wyników HTML (HyperText Markup Language) opatrują każdy obraz wykresu stopką o treści Kshana v<version> · scenario <hash> · kshana.dev. scenario <hash> to pierwsze 12 znaków szesnastkowych skrótu scenariusza przebiegu: skrótu SHA-256 (256-bitowy Secure Hash Algorithm) z kanonicznej definicji scenariusza (ziarno, progi, parametry modelu, okna GNSS, …); raporty integralności i księżycowe, które nie mają własnego skrótu, używają SHA-256 ze źródła scenariusza. To ten sam odcisk, który widać w jednowierszowym podsumowaniu i w JSON wyniku, więc zapisany lub wklejony wykres zawsze niesie swoją wersję, dokładny scenariusz, który go wytworzył (do odtworzenia bit po bicie) i źródło: zmień dowolne wejście, a skrót się zmieni.

Wskaźniki jakości odpowiadają standardowym operacyjnym wskaźnikom jakości PNT:

Wskaźnik jakości Jak Kshana go oblicza
Wydajność czasowa (pakiety zegara i orbity) błąd fazy zegara, RMS i 95. percentyl w czasie przerwy, w nanosekundach (timing_rms_ns): miara czasu, a nie pozycji
Wydajność pozycjonowania (pakiety inercyjne i hybrydowe) RMS błędu pozycji 1-DOF i 95. percentyl w czasie przerwy, w metrach (pos_rms_m); jedna oś. Pojedynczy przebieg jest oznaczany monte_carlo: false; ustaw runs = N, aby uzyskać zespół Monte Carlo, który podaje dla każdej miary średnią, rozrzut i 95% przedział ufności metodą bootstrap (CI, confidence interval). Wciąż nie jest to 2-wymiarowe CEP/2DRMS (błąd kołowy prawdopodobny / dwukrotność pierwiastka ze średniej kwadratowej odległości) ani dokładność ważona DOP (te wymagają modelu 3-osiowego, pozycja planu rozwoju)
Autonomia czas holdover: czas w specyfikacji po utracie GNSS (skwantowany siatką: dolne ograniczenie)
Odporność nachylenie narastania błędu w czasie przerwy
Dostępność ułamek przebiegu z rozwiązaniem w specyfikacji
Integralność samospójność filtra: ułamek próbek podczas przerwy, których błąd mieści się we własnej granicy k-sigma filtra Kalmana. Nie jest to lotnicza miara integralności HPL/VPL/RAIM (zob. docs/INTEGRITY.md)
Bezpieczeństwo analityczna granica wykrywalności spoofingu ze stabilności zegara: jak mały lub wolny spoofing czasu mógłby oznaczyć monitor spójności jednego zegara. Ma sens tylko ze skonfigurowanym atakiem; nie jest wielosatelitarnym detektorem RAIM

Nowe pojęcia? Każde jest zdefiniowane prostym językiem w słowniczku.

Układ repozytorium

Układ repozytorium#

kshana/
├── src/                                       # the kshana core crate (library + CLI)
│   ├── api.rs · main.rs · lib.rs              # typed dispatch (92 kinds) + CLI + crate root
│   ├── python.rs · wasm.rs                    # optional PyO3 / wasm-bindgen bindings
│   ├── types.rs · scenario.rs · allan.rs      # shared core (time grid, GNSS timeline, Allan)
│   │
│   ├── models.rs · estimator.rs · kalman.rs   # Pack 1 — clock holdover + integrity
│   ├── security.rs · detection.rs · spoof.rs · spoof_monitors.rs  # spoof detection
│   ├── filter_health.rs · fom.rs · fom_label.rs · report.rs · chart.rs · run.rs  # health · FoM scoring + labelling · output
│   ├── suite.rs · study.rs                     # scenario suites + aggregated multi-scenario study artifacts (`--study`)
│   ├── inertial/                              # Pack 2 — strapdown INS (attitude · mechanization · imu_errors · quantum_imu)
│   ├── timetransfer.rs · timetransfer_adv.rs · timegeo.rs  # Pack 3 — TWSTFT/CV/PPP/optical, Sagnac
│   ├── hybrid.rs · ensemble.rs · sweep.rs     # Pack 4 — fused PNT, Monte-Carlo, trade sweeps
│   │
│   ├── timescales.rs · jd2.rs · ephem.rs      # time systems, two-part JD, Sun/Moon ephemeris
│   ├── precession.rs · nutation.rs · cio.rs   # IAU 2006/2000A precession-nutation + CIO GCRS↔ITRS
│   ├── frames.rs · *_data.rs                  # TEME↔ECEF + generated nutation/CIO/EGM2008/IGRF tables
│   │
│   ├── orbit.rs · sgp4.rs · tle.rs · walker.rs   # geometry, SGP4/SDP4, TLE, Walker design
│   ├── propagator.rs · forces.rs · gravity_sh.rs · integrator.rs  # Cowell + perturbations (EGM2008 d/o70, GR) + RK4/DOPRI
│   ├── maneuver.rs · batch_ls.rs · orbit_determination.rs  # burns/Lambert/porkchop, Gauss-Newton, OD
│   ├── cr3bp.rs · lunar.rs · lunar_frame.rs · lunar_od.rs  # Earth–Moon CR3BP + halo/NRHO STM corrector, cislunar/LunaNet ARAIM, MCI↔MCMF, lunar OD
│   ├── lunar_time.rs · lunar_vlbi.rs · lunar_combination.rs · lunar_frame_realise.rs · lunar_service.rs · lunar_dpnt.rs · lunar_interop.rs  # tiers per piece in the matrix lunar PNT suite — LTC time · geodetic VLBI · joint OD+clock · frame realisation · Moonlight service-volume · differential PNT · LunaNet/IOAG interop export
│   ├── body.rs · mars_frame.rs · ephem_provider.rs · radiometric.rs · ccsds_tdm.rs  # deep-space: multi-body · Mars frame · ephemeris seam · radiometric obs + CCSDS-TDM
│   ├── deepspace_od.rs · clock_state.rs · mars_atmos.rs · mars_pnt.rs · linkbudget.rs · gse_sim.rs  # SRIF OD · onboard clock · Mars drag · relay-PNT · link budget · GSE sim
│   │
│   ├── fusion/                                # GNSS/INS — EKF · UKF · tightly_coupled(17) · coupled · closed_loop
│   ├── raim.rs · sbas.rs                      # RAIM/ARAIM HPL/VPL, SBAS DO-229E PLs + L1/L5 iono-free
│   ├── gnss_sim.rs · ionex.rs · pvt.rs · jamming.rs  # measurement domain · ionosphere maps · single-point positioning · jamming
│   ├── navsignal.rs                            # nav-signal PSD (BPSK-R/BOC) · spectral-separation → anti-jam Q · DLL code-tracking jitter · multipath envelope
│   ├── gravimeter.rs · igrf.rs · mapmatch.rs · particle_filter.rs · altpnt/  # gravity/magnetic/terrain alt-PNT
│   ├── rinex.rs · rinex_obs.rs · glonass.rs · sp3.rs · oem.rs · omm.rs · permalink.rs  # interop formats
│   ├── launch.rs · reentry.rs · eo_payload.rs · attitude_budget.rs · passes.rs · space_packet.rs  # mission-analysis budgets + CCSDS Space Packet
│   ├── space_weather.rs · holdover.rs · tpl.rs   # space-weather environment · GNSS-denied clock-holdover calculator · conditional Timing Protection Level (under spoofing)
│   ├── resilience/                              # framework-aligned PNT-resilience scoring + decision-instability study (RPCF · Dirichlet · Kendall-τ · diversity collapse · assurance report)
│   ├── impairment_eval.rs · impairment_study.rs · impairment_ml.rs · eval_stats.rs  # Machine-learning RF-impairment eval testbed · optimism-gap study · LR/MLP detectors · bootstrap/DeLong/Spearman stats
│   ├── sdr.rs · realdata/                       # software-defined-receiver front end (IQ/IF → E/P/L taps → SQM) + real-data ingest adapters (RINEX · UBX · GnssLogger · JammerTest · Yunnan · SatGrid)
│   ├── crossover.rs · quantum_trade.rs · frugal.rs · integrity_impact.rs  # quantum-vs-classical crossover map · PNT trade · cost-per-coverage ROI · integrity impact
│   ├── quantum_devices.rs · quantum_faults.rs · quantum_nav_od.rs · qtrade.rs · timetransfer_chain.rs · representativeness.rs  # Quantum-Enabled PNT demonstrator — device error models · fault catalogue · GNSS-free quantum OD · unified trade harness · quantum time-transfer chain · representativeness / gaps-to-flight ledger
│   ├── interchange.rs · verification.rs          # KIF artifact envelope · machine-checked verification matrix
│   └── bin/crossover_study.rs · bin/validation_report.rs  # crossover-study artifact generator · release validation-summary HTML
│
├── mcp/kshana-mcp/        # standalone, workspace-EXCLUDED crate — the MCP server (+ Dockerfile, server.json)
├── ide/jetbrains/         # standalone Kotlin/Gradle IntelliJ-Platform plugin
├── xval/                  # standalone, workspace-EXCLUDED external cross-checks: anise-{frames,lunar-od,mars-od,service-geometry} (Rust ANISE/SPICE DE440) + orekit-passes (Java Orekit)
│
├── examples/            # reproducible study generators: tpl_jammertest · resilience_report · optimism_study + real-data probes (jammertest_probe · yunnan_probe · satgrid_probe · texbat_probe · ingest_realdata)
├── paper-artifacts/     # byte-deterministic study artifacts, regenerable from examples/ (optimism-study.json · resilience-study.json); raw datasets stay out
├── scenarios/            # one cited .toml per kind + geometry-driven + GPS-denied
├── scripts/              # reproducibility + repo-hygiene + SBOM guards
├── docs/                 # CONCEPTS, ARCHITECTURE, CAPABILITY, VALIDATION, PROVENANCE, GLOSSARY, …
├── web/                  # the WebAssembly playground + kshana.dev site
├── tools/                # table generators (EGM2008 · IGRF · nutation · CIO) + fetch_tles.sh
├── .github/workflows/    # ci · release · publish · wheels · pages · mcp-publish · jetbrains-plugin · frame-xval
├── pyproject.toml        # Python packaging (maturin)
├── CHANGELOG.md          # Keep a Changelog + SemVer
└── CITATION.cff · ROADMAP.md · CONTRIBUTING.md · SECURITY.md
FAQ (często zadawane pytania)

FAQ#

Czy muszę rozumieć fizykę kwantową, żeby tego używać? Nie. Jeśli potrafisz uruchomić wiersz poleceń, uruchomisz Kshana. Zacznij od wprowadzenia prostym językiem; pojęć szukaj w słowniczku.

Czy to projekt sprzętu kwantowego albo oprogramowanie pokładowe? Nie. To symulator wydajności. Wierność sprzętu kwantowego pochodzi z opublikowanych modeli błędów, a nie z tego narzędzia. Zob. Czym jest, a czym nie jest.

Czy wyniki kwantowe są realistyczne, czy to marketing? Każdy parametr jest przypisany do karty katalogowej lub pracy, każdy model jest sprawdzony względem zależności podręcznikowej, a dojrzałość jest uczciwie oznaczona w VALIDATION.md, w tym to, że żaden optyczny zegar strontowy nie latał w kosmosie. Silnik jest neutralny: kwantowy i klasyczny to ten sam kod z różnymi opublikowanymi liczbami.

Czy mogę zaufać, że dwa przebiegi się zgadzają? Tak, przebiegi są deterministyczne: scenario + seed + engine version → bit-identical output, co wymusza scripts/check-reproducible.sh.

Czy mogę używać tego z Pythona lub w przeglądarce? Tak, zob. Instalacja: przykłady w Pythonie i WebAssembly są pod nią. Oba wywołują ten sam silnik.

Jak zamodelować własny czujnik? Napisz scenariusz .toml z opublikowanymi wartościami swojego czujnika w polach provenance. Zob. Format scenariusza i przykłady w scenarios/.

Czy jest bezpłatny do użytku komercyjnego? Tak, na licencji AGPL-3.0, także w warunkach komercyjnych, o ile przestrzegasz copyleftu AGPL (w szczególności: jeśli zmodyfikujesz Kshana i udostępnisz ją przez sieć, musisz udostępnić tym użytkownikom swój zmodyfikowany kod źródłowy). Jeśli to Ci nie odpowiada, np. musisz osadzić Kshana w zastrzeżonym produkcie lub uruchamiać zamkniętą usługę sieciową, licencja komercyjna jest dostępna od Ashforde® OÜ; zob. LICENSING.md i Wsparcie.

Rozwiązywanie problemów

Rozwiązywanie problemów#

cargo build kończy się błędem na starym toolchainie. Kshana wymaga Rust ≥ 1,88. Zaktualizuj poleceniem rustup update.

Budowanie rozszerzenia Pythona kończy się błędem konsolidacji w macOS (Undefined symbols … _Py…). Rozszerzenie Pythona rozwiązuje swoje symbole w czasie ładowania. maturin ustawia właściwą flagę konsolidatora automatycznie: użyj maturin develop --features python zamiast samego cargo build.

Kompilacja Pythona zgłasza, że interpreter jest nowszy, niż zna PyO3. Ustaw PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 (koła abi3 są zgodne w przód między wersjami CPython).

Kompilacja WebAssembly nie może znaleźć celu. Zainstaluj go jednorazowo poleceniem rustup target add wasm32-unknown-unknown, a potem wasm-pack build --target web -- --features wasm.

Gdzie się podziało moje wyjście? Każdy przebieg zapisuje <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html i <scenario>.report.json obok wejściowego .toml, a dla rodzajów, które publikują tabelę, także <scenario>.table.csv. Wszystkie są celowo ignorowane przez git.

Wersjonowanie i wydania

Wersjonowanie i wydania#

Kshana stosuje Semantic Versioning. Przed wersją 1.0 publiczny schemat scenariuszy i wyników może się jeszcze zmieniać; zmiany niezgodne są wyraźnie opisane w CHANGELOG.md. Każdy wynik można odtworzyć z scenario + seed + engine version.

Każdy tag vX.Y.Z publikuje automatycznie wszystkie kanały, w jednej kolejności: najpierw na oznaczonym commicie działa pełny zestaw testów, nic nie jest publikowane, dopóki nie przejdzie, a potem potok sprawdza, czy każdy rejestr rzeczywiście udostępnia nową wersję (docs/RELEASING.md). Kanały:

Fragment wymieniający zewnętrznych klientów AI został tu pominięty; jest w README.md na GitHubie.

Fragment wymieniający zewnętrznych klientów AI został tu pominięty; jest w README.md na GitHubie.

Kanał Instalacja / pobranie Spis treści
crates.io cargo install kshana · kshana = "0.35" Biblioteka Rust + CLI
crates.io cargo install kshana-mcp serwer MCP
PyPI (Python Package Index) pip install kshana koła abi3 (Linux/macOS/Windows) + sdist (dystrybucja źródłowa)
npm npm install kshana moduł WebAssembly + nakładka JS
ghcr.io docker run -i ghcr.io/ashfordeou/kshana-mcp wieloarchitekturowy obraz OCI (Open Container Initiative), bez potrzeby toolchainu
npm npx -y kshana-mcp@0.40.0 program uruchamiający: pobiera binarium wydania, weryfikuje SHA256SUMS i je uruchamia
PyPI uvx kshana-mcp==0.40.0 · pipx run kshana-mcp==0.40.0 ten sam program uruchamiający dla Pythona
Homebrew · Scoop · winget brew install ashfordeOU/tap/kshana-mcp · scoop install kshana-mcp · winget install AshfordeOU.KshanaMcp binarium kshana-mcp, generowane z SHA256SUMS każdego wydania
oficjalny rejestr MCP wykrywany automatycznie przez klientów MCP io.github.ashfordeOU/kshana-mcp (obraz OCI, pakiety npm i PyPI)
JetBrains Marketplace IDE → Plugins → wyszukaj „Kshana” wtyczka IDE Kshana — PNT simulator
Zenodo DOI archiwum każdego wydania, które można cytować
kshana.dev otwórz w przeglądarce Kshana Studio, aplikacja WebAssembly w przeglądarce, odbudowywana z każdego taga wydania (więc wersja, którą pokazuje, jest wersją, którą uruchamia)

Wersja crate, obrazu i rejestru serwera MCP podąża za silnikiem (zawiera on bibliotekę); wtyczka JetBrains ma niezależne wersjonowanie (wywołuje zainstalowane u Ciebie binarium kshana).

Plan rozwoju

Plan rozwoju#

Zob. ROADMAP.md, gdzie jest fazowy plan rozwoju, CHANGELOG.md, gdzie jest historia wydań, i docs/CAPABILITY.md, gdzie jest plan rozwoju poszczególnych możliwości. Kolejność priorytetów jest taka: najpierw dowody dla synchronizacji czasu i holdover w infrastrukturze krytycznej (maski telekomunikacyjne, dłuższy holdover ze starzeniem i szumem migotania, wczytywanie zmierzonych danych zegara); w drugiej kolejności neutralna metoda kompromisu między rozwiązaniami kwantowymi a klasycznymi (wyniki oznaczone MODELLED, dopóki zmierzone dane partnera ich nie awansują); oraz nawigacja księżycowa, cislunarna i w dalekim kosmosie jest utrzymywana, a nie rozwijana jako główny kierunek. Precyzyjna redukcja ramek ITRF jest już dostarczona: pełny łańcuch GCRS↔ITRS IAU 2006/2000A oparty na CIO (ruch bieguna + nutacja poniżej sekundy łuku), sprawdzony co do bitu względem SOFA/ERFA i niezależnie sprawdzony krzyżowo względem ANISE (SPICE w czystym Rust) do ≤ 3,6 m na orbicie GNSS. Pozycje bliskiego terminu to ściśle sprzężone łączenie fazy nośnej i udostępnienie luźno i ściśle sprzężonego nawigatora GNSS/INS w większej liczbie pakietów; silnik radiometrycznej nawigacji w dalekim kosmosie i na Marsie pojawił się w v0.17.0 (sprawdzony symulacją). Warstwa fizyki kwantowej jest pozycją P2: akcelerometr CAI jest teraz symulowany z pierwszych zasad (faza Macha–Zehndera, szum projekcji, zanik kontrastu, sprzężenie drgań), a czujniki zegara i transferu czasu są nadal sterowane opublikowanymi współczynnikami Allana i budżetu szumu. TEME&harr;ECEF oparte na GMST, systemy czasu IERS z sekundami przestępnymi (UTC/TAI/TT/UT1), propagacja orbit SGP4/SDP4 (v0.7.0, sprawdzona względem wektorów AIAA 2006-6753) i uruchamialny pakiet fuzji gnss-ins zostały dostarczone, a prędkość inercyjna jest udostępniona dalej. Na main trafiły: aktywny stochastyczny detektor spoofingu czasu (test energii Neymana–Pearsona / χ²₁ z P_fa/P_md metodą Monte Carlo i wskaźnikiem Security równym 1−P_md), model zagłuszania jako budżet łącza (J/S → efektywne C/N₀ → utrata synchronizacji), dostępność wielokonstelacyjna, jednoosiowy (1-DOF) budżet błędu IMU, dwa niezależne estymatory Kalmana (zegar + pozycja) raportowane jako połączony wskaźnik jakości, rzeczywista geometria konstelacji z TLE, raport w postaci karty wyników HTML, dostępność GNSS i rozmycie dokładności wyprowadzone z geometrii orbit keplerowskich z ekscentrycznością i dryfem J2, pasma ufności Monte Carlo, przeglądy parametrów w badaniach kompromisowych, plac zabaw WebAssembly w przeglądarce oraz opcjonalne wiązania Pythona (PyO3) i WebAssembly (wasm-bindgen).

Współtworzenie

Współtworzenie#

Zob. CONTRIBUTING.md. W skrócie: testy przechodzą (cargo test), dwa skrypty kontrolne przechodzą, Conventional Commits oraz wpis [Unreleased] w CHANGELOG.md dla każdej zmiany widocznej dla użytkownika. Udział w projekcie reguluje nasz Kodeks postępowania. Aby zgłosić problem bezpieczeństwa, zob. Politykę bezpieczeństwa; prosimy nie otwierać publicznego zgłoszenia o podatnościach.

Dokumentacja: każdy dokument i dla kogo jest

Dokumentacja#

Dokument Dla kogo Co zawiera
Wprowadzenie do pojęć dla wszystkich, zacznij tutaj co Kshana robi i dlaczego, od zera do fizyki
Kshana Studio dla wszystkich uruchom silnik w przeglądarce (WebAssembly); uwagi o budowaniu i wdrażaniu
Słownik dla wszystkich definicje każdego pojęcia prostym językiem
Rodzaje scenariuszy dla wszystkich każdy rodzaj, który silnik obsługuje: co robi, jego pola, przykładowe polecenie, jego wiersze rejestru i wykres, który dla niego zapisuje silnik
Dane partnera laboratoria i producenci posiadający zmierzone dane które wiersze MODELLED mógłby awansować zmierzony zapis zegara lub IMU, jakie formaty, jak zgłoszenie jest sprawdzane (kshana partner check), oceniane i zaliczane
Architektura programiści / recenzenci mapa modułów, potok silnika, rozdzielanie i diagramy
Stan walidacji recenzenci / cytujący co jest validated, a co not modeled, z dowodami
Macierz weryfikacji recenzenci / cytujący sprawdzany maszynowo rejestr dowodów: każdy wiersz możliwości z jego statusem, modułem, testem i zewnętrzną wyrocznią, generowany z src/verification.rs
Uzasadnienie dla wartości modelowanych recenzenci dlaczego każdy wiersz modelowany nie ma zewnętrznej wyroczni, wyjaśnione wiersz po wierszu
Pochodzenie recenzenci / cytujący każdy parametr czujnika, model i zbiór danych powiązany z opublikowanym źródłem, w jednej tabeli nadającej się do cytowania
Odtwarzalność i pochodzenie recenzenci / pakujący gwarancje determinizmu, przypinanie wzorców (golden), SBOM (wykaz składników oprogramowania), pochodzenie kompilacji
Znaczniki platform kół pakujący macierz kół Pythona abi3: który znacznik platformy rozstrzyga pip install kshana
Pozycjonowanie oceniający gdzie Kshana stoi względem RTKLIB/gLAB (uzupełniająco) i warstwa bez instalacji w przeglądarce
Kshana Pro oceniający / kierownicy programów co zastrzeżona nakładka Pro dodaje do tego samego silnika: optymalizator projektu, niepewność i czułość, dossier misji, obserwacja kampanii, współistnienie widmowe, lokalna usługa zadań, śledzenie wymagań; co każdy z tych elementów daje i czego nie robi
Raport techniczny · Praca JOSS recenzenci / cytujący / oceniający pełna rozszerzona praca badawcza: architektura, modele poszczególnych dziedzin, walidacja, studia przypadków i ograniczenia, oraz zwięzłe zgłoszenie do JOSS (Journal of Open Source Software)
Walidacja SGP4 recenzenci / cytujący zgodność z wzorcem AIAA 2006-6753 (666 stanów, ~4 mm) oraz bezpośrednie porównanie z niezależnym crate sgp4 (zgodność do poziomu poniżej mikrometra / 4,12 mm)
Walidacja modelu sił recenzenci / cytujący silnik pełnych sił (src/precise_od.rs) dopasowany do efemeryd agencji: metodyka i sprawdzone residua
Przewodnik po rzeczywistych TLE użytkownicy prowadzenie scenariuszy z rzeczywistych TLE konstelacji z Celestrak / Space-Track (zamiast dołączonego syntetycznego zestawu Walkera)
Wskaźnik jakości Integrity oceniający co znaczą wartości integrity / security i czym nie są w porównaniu z lotniczym HPL/VPL
Opis ARAIM recenzenci / integratorzy otwarta implementacja poziomu ochrony ARAIM MHSS: rzut nominalnego biasu b_k, σ_URA a σ_URE oraz prawdopodobieństwa a priori trybów uszkodzeń
Modele kwantowe · szczegóły recenzenci warstwa fizyki interferometru z zimnymi atomami i miejsca, w których współczynniki są wciąż wyszukiwane
Compliance oceniający zakres algorytmów DO-229E / DO-316 i to, co nie jest deklaracją spełnienia normy
Zaufanie na morzu żeglarze / integratorzy wskaźnik zaufania do GNSS w skali 0-100 dla NMEA statku, jego monitory i ograniczenia (wyłącznie doradczo, nie jest to sprzęt nawigacyjny z zatwierdzeniem typu)
Strumienie szkoleniowe NMEA trenerzy morscy syntetyczne NMEA z mostka ze skryptowanym zagłuszaniem i spoofingiem oraz dziennikiem instruktora; tylko tekst, nigdy do nawigacji na żywo
Mapa zakłóceń analitycy / żeglarze gdzie statki powietrzne i statki zgłaszały pogorszone dane nawigacyjne i jak duży fragment trasy to obejmuje
Pakiety dowodowe operatorzy / ubezpieczyciele podpisane zapisy techniczne zdarzenia zaufania i sposób ich weryfikacji
Telemetria zaufania zespoły operacyjne / bezpieczeństwa strumień zaufania jako metryki Prometheus, zdarzenia SIEM i OpenTelemetry, z panelem Grafana
Integracje morskie właściciele jachtów / integratorzy wtyczka Signal K, tryb bramki OpenCPN i budowa referencyjna
Test bench producenci odbiorników odtwarzanie wyeksportowanego scenariusza przez symulator laboratoryjny i ocena dziennika odbiornika
Mapowanie compliance oceniający publiczne ramy odporności zmapowane na wyniki Kshana, ze źródłami i lukami; kshana compliance-report
Notatniki użytkownicy uruchamialne samouczki z ich wyrenderowanym tekstem
Standardy i interoperacyjność integratorzy formaty wymiany GNSS / dynamiki lotu / agencji, które Kshana czyta i zapisuje (RINEX, SP3, CCSDS OEM/OMM/TDM/Space-Packet, …)
Fuzja LEO PNT użytkownicy / oceniający połączone pozycjonowanie, nawigacja i czas MEO + LEO: Doppler, wspólna pseudoodległość, zbieżność PPP, 5G NTN, pokrycie polarne i transfer czasu LEO dla dowolnej konstelacji; opcjonalne ustawienia wstępne i ich publiczne źródła
Kampanie użytkownicy / oceniający składanie scenariuszy: łańcuchowe harmonogramy misji, przeglądy parametrów, zespoły Monte Carlo i przebiegi we wspólnych warunkach, z tożsamościami składania, które przypinają testy
Katalog scenariuszy użytkownicy / integratorzy każdy rodzaj, który można uruchomić, z jego wymaganymi i opcjonalnymi polami TOML, generowany z api::list_scenario_kinds()
Schemat wyniku integratorzy każde pole JSON wyniku, z jednostkami i wskazaniem źródła
API Pythona użytkownicy Pythona powierzchnia wiązania PyO3: wywoływanie silnika, typy scenariusza i wyniku oraz przykłady
Twierdzenia a rzeczywistość recenzenci rejestr zamykania nadmiernych twierdzeń i strażnik CI (tests/no_overclaims.rs), który utrzymuje je jako rozstrzygnięte
Plan rozwoju dla wszystkich fazowy plan rozwoju: co zostało dostarczone, a co jest następne
Serwer MCP · Wtyczka JetBrains agenci / użytkownicy IDE uruchom Kshana z asystenta AI lub z IDE JetBrains
Przewodnik dla agenta · Powierzchnie agenci / integratorzy które narzędzie odpowiada na które pytanie i co zachować z każdą odpowiedzią; gdzie każda możliwość jest dostępna (CLI, Rust, Python, WASM, MCP, wtyczka, JetBrains, notatniki) i dlaczego komórka ma wartość N/A
Dziennik zmian dla wszystkich historia wydań (Keep a Changelog + SemVer, Semantic Versioning)
Współtworzenie współtwórcy budowanie, strażnicy, dyscyplina testów i cytowań, DCO (Developer Certificate of Origin)
Zarządzanie współtwórcy / społeczność jak zarządza się Kshana: kto decyduje, jak, oraz granica między otwartym a zamkniętym
Kodeks postępowania społeczność oczekiwane zachowanie (Contributor Covenant)
Polityka bezpieczeństwa zgłaszający jak zgłosić podatność; uwaga o podwójnym zastosowaniu
Najważniejsze źródła

Najważniejsze źródła#

Wyrocznie walidacji i standardy: zewnętrzne autorytety, do których zakotwiczone są kontrole Kshana:

  • Vallado, Crawford, Hujsak & Kelso — Revisiting Spacetrack Report #3 (AIAA 2006-6753; dane testowe): zestaw weryfikacyjny SGP4/SDP4, z którym Kshana zgadza się do 4,12 mm, oraz opracowane przykłady ramek, względem których sprawdza się łańcuch TEME→ITRF.
  • IAU SOFA / ERFA — referencyjne procedury czasu i ramek, względem których nutacja IAU 2000A i redukcja GCRS↔ITRS oparta na CIO są sprawdzone co do bitu.
  • Petit & Luzum (red.) — IERS Conventions (2010), IERS TN (Technical Note) 36 (orientacja Ziemi, ruch bieguna i standardy ramek).
  • Riley — Handbook of Frequency Stability Analysis, NIST SP 1065 (zależności odchylenia Allana i szereg referencyjny NBS14; NBS = dawne amerykańskie National Bureau of Standards).
  • Pedregosa i in. — scikit-learn: Machine Learning in Python, JMLR 12 (2011): referencyjne implementacje ROC/AUC, macierzy pomyłek oraz precyzji/czułości/F1, z którymi stanowisko do oceny detekcji zakłóceń RF jest dokładnie zgodne (tests/eval_metrics_reference.rs).
  • Virtanen i in. — SciPy 1,0, Nature Methods 17 (2020): optimize.nnls, stats.chi2 i linalg.expm, czyli procedury referencyjne, względem których sprawdzane są dopasowanie NNLS zmierzonego ADEV w kompromisie kwantowym, pasma spójności χ² oraz macierz kowariancji szumu procesu zegara van Loana (tests/scipy_reference.rs).
  • Knowles, Kanhere, Neamati & Gao — gnss_lib_py, SoftwareX 27 (2024): używane zarówno jako otwarty stan wiedzy (zob. Porównanie i otwarty stan wiedzy poniżej), jak i jako niezależna wyrocznia DOP, z którą obliczenia GDOP/PDOP/HDOP/VDOP/TDOP są zgodne do 1e-6 (tests/dop_reference.rs).
  • Montenbruck & Gill — Satellite Orbits: Models, Methods and Applications (Springer): modele sił stojące za dopasowaniem modelu sił do precyzyjnych efemeryd agencji.
  • Howell — Three-dimensional, periodic, halo orbits, Celestial Mechanics 32(1) (1984), doi:10.1007/BF01358403; Zimovan-Spreen, Howell & Davis — Near rectilinear halo orbits and nearby higher-period dynamical structures, Astrodynamics 6 (2022), doi:10.1007/s42064-021-0125-x (rodziny halo/NRHO, które odtwarza korektor różnicowy CR3BP).

Fizyka urządzeń i metod: cytowane źródła stojące za modelami czujników:

  • Origlia, Schiller, Bongs i in. — arXiv:1503,08457 (optyczny zegar sieciowy ze strontem, cel zorientowany na przestrzeń kosmiczną).
  • Oelker i in., Nature Photonics (2019) — doi:10.1038/s41566-019-0493-4 (laboratoryjny zegar Sr, 4,8×10⁻¹⁷).
  • Templier i in., Science Advances (2022) — arXiv:2209,13209 (hybrydowa trójka akcelerometrów kwantowych).
  • Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation — samouczek IEEE AESS (Aerospace and Electronic Systems Society) (repozytorium University College London Discovery) (narastanie błędu nawigacji zliczeniowej).
  • Giorgetta i in., Nature Photonics 7, 434 (2013) — arXiv:1211,4902; Deschênes i in., Phys. Rev. X 6, 021016 (2016) — APS (American Physical Society) (optyczny dwukierunkowy transfer czasu i częstotliwości; optyczne łącze międzysatelitarne wzorowane jest na tych pracach w budżecie niewzajemności).
  • Betz — Binary Offset Carrier Modulations for Radionavigation, NAVIGATION 48(4) (2001), doi:10.1002/j.2161-4296.2001.tb00247.x (modulacja BOC i teoria separacji widmowej stojące za src/navsignal.rs).
  • Kaplan & Hegarty (red.) — Understanding GPS/GNSS: Principles and Applications (wyd. 3, Artech House, 2017): równanie efektywnego C/N₀ przy zagłuszaniu oraz termiczne drżenie śledzenia kodu w DLL typu wczesny–późny, których używają modele sygnału nawigacyjnego i zagłuszania.

Porównanie i otwarty stan wiedzy: narzędzia i przeglądy, względem których pozycjonuje się Kshana:

  • Humphreys i in. — TEXBAT (Texas Spoofing Test Battery; ION, Institute of Navigation, GNSS 2012): parametry baterii testów spoofingu, względem których charakteryzowany jest wielowarstwowy detektor.
  • González i in. — NaveGo (2017): otwarte, sprawdzone profile błędów nawigacji inercyjnej używane jako klasyczny punkt odniesienia.
  • Iiyama, Casadesús Vila & Gao — LuPNT (ION GNSS+ 2023, Stanford NavLab): otwarty symulator księżycowego PNT.
  • Knowles, Kanhere, Neamati & Gao — gnss_lib_py, SoftwareX 27 (2024), doi:10.1016/j.softx.2024.101811: otwarta analiza danych GNSS.
  • Li, Zaminpardaz, Kealy & Greentree — Quantum sensors for enhanced positioning and navigation: a comprehensive review, GPS Solutions 30(1):62 (2026), doi:10.1007/s10291-026-02030-y.
  • Bertone i in. — Earth and Space Science 8(6) (2021), doi:10.1029/2020EA001454: zredukowane dynamicznie wyznaczanie orbity GRAIL, próg przyspieszenia empirycznego, który odtwarza dopasowanie LRO.