Kshana · क्षण · přesný okamžik
Open-source simulátor odolnosti PNT (určování polohy, navigace a času).
Stav průběžné integrace na větvi main
Pokrytí řádků blízko 95 % v src/, změřené v docs/COVERAGE.md a v průběžné integraci hlídané na 85 %
176 z 401 schopností VALIDATED proti nezávislému vnějšímu orákulu, z verifikační matice
Stav brány kvality SonarQube Cloud
Vydání v0.40.0
Licence: AGPL-3.0-only
DOI 10.5281/zenodo.20528627, koncepční záznam Zenodo každého vydání
Komerční licence je k dispozici od Ashforde® OÜ, viz Edice
kshana na crates.io, aktuální publikovaná verze
kshana na PyPI, aktuální publikovaná verze
kshana na npm, aktuální publikovaná verze
Otevřít Kshana Studio · Instalace · Schopnosti · Důkazy · Výzkum · Dokumentace · Citovat
Obsah
- Nacvičte minutu, kdy GNSS zhasne
- Co je nového ve verzi 0,40, Co je nového ve verzi 0,39, Co je nového ve verzi 0,38 a 0,38 podrobně: bodování jammertestu, vlastní příznaky přijímače, strojové vstupy, časování a holdover, balíčky norem, LunaNet AFS, okružní zkouška v laboratoři, kshana-bench, observatoř, exportéry, optika, navigace uživatelů ve vesmíru a lunární infrastruktura
- Kshana Studio a každá stránka Studia
- Schopnosti: tabulka oblastí, každý druh scénáře podle rodiny, každý příkaz, každé rozhraní
- Jak běh funguje, Mise
- Důkazy: registr, domény schopností
- Instalace, Architektura (a diagramy), asistent AI
- Edice, Výzkum, Citovat, Licence
- Reference: použití, formát scénáře, výstup, struktura repozitáře, FAQ, řešení potíží, verzování, plán vývoje, přispívání, dokumentace
Nacvičte minutu, kdy GNSS zhasne#
Kshana přehrává rušení, spoofing a holdover hodin, když selžou signály GNSS (globálního družicového navigačního systému), a říká vám, jak dlouho systém udrží čas a polohu v rámci své rozpočtové meze a které hodiny či který senzor přinese největší rezervu. Je to jeden engine v Rustu. Běží v terminálu, v notebooku, v IDE (integrovaném vývojovém prostředí), v asistentu AI (umělé inteligence) nebo ve vašem prohlížeči.
Každý běh je bit po bitu reprodukovatelný ze scénáře, seedu a verze enginu. Každá schopnost nese v strojově kontrolovaném registru jeden ze tří štítků: VALIDATED (nezávislé vnější orákulum souhlasí), MODELLED (vnitřně konzistentní a řečeno otevřeně) nebo PARTNER (odpovídá za to hardwarový partner).
Stav: v0.40.0. Ověřený, reprodukovatelný simulační základ pro odolnost PNT. Časování a holdover jsou na prvním místě, protože tato oblast je nejlépe ověřená. Kshana je nástroj pro studie a srovnávání variant: není to hardware generátoru rádiofrekvenčních (RF) signálů (neovládá žádné rádio a nic nevysílá; jeho výstupem na úrovni signálu jsou soubory vzorků IQ v základním pásmu pro softwarové přijímače), není to hardwarový ani certifikovaný přijímač GNSS (jeho softwarový přijímač je analytický nástroj) a není to letový produkt. Jste v oboru noví? Začněte srozumitelným úvodem a slovníčkem.
Co je nového ve verzi 0,40#
Verze 0,40 přidává rozpočet chyb na úrovni mise, označuje každé číslo a tabulku úrovní důkazu, čte naměřené záznamy hodin, kontroluje podání datových partnerů, odhaduje, kde může být zdroj rušení, a mluví sedmnácti jazyky vedle angličtiny. Registr má nyní 401 řádků: 176 VALIDATED, 221 MODELLED, 4 PARTNER. Žádný řádek nebyl povýšen na VALIDATED a každé nesplnění níže je zajištěno testem.
- Vlákno mise. Druh
mission-threadřetězí fáze od startu po vstup do atmosféry (launch-ascent,leo-rendezvous,tli-and-cruise,entrya čtyři lunární druhy) s uvedenými pravidly předání, rezervou oproti uvedeným požadavkům a nejslabším článkem; ucelený příklad třídy Artemis přes 11 fází (pozemní a lunární segmenty), celkem 92 druhů scénářů. Každé číslo je MODELLED. Cislunární propagace proti veřejné trajektorii Artemis I nesplňuje svůj předregistrovaný práh (45,3 km a 0,25 m/s oproti 5 km a 0,05 m/s; příčinou jsou malé manévry, které model neobsahuje) a lunární propagátor proti dráze CAPSTONE nesplňuje (136,8 km oproti 25 km na konci jedné otáčky); srovnání s LRO je splněno. Řádky zůstávají MODELLED (Vlákno mise, lunární segment). Ve Studiu se vlákno čte na/studio/mission-thread/. - Označení důkazů. Každé číslo a tabulka, které běh zapíše, nese úroveň a id řádků registru, na nichž spočívá, načtené z matice.
- Naměřené hodiny. Čte se osm formátů záznamů hodin (
docs/CLOCK-LOG-FORMATS.md) a nafitovaná řada může řídit holdover. Proti předregistrovaným prahům fit nesplňuje F1(a) u pěti ze šesti záznamů a F2 u jednoho; oba zůstávají MODELLED (Seznam změn). - Datoví partneři.
kshana partner checkkontroluje formát podání a nic nehodnotí (docs/PARTNER-DATA.md). - Oblast vysílače.
kshana interference-map locateuvádí oblast a elipsu, nikdy holý bod, z hlášení ADS-B nebo AIS. Při jednom porovnání s místy vysílačů Jammertest 2025 je výsledek NOT ASSESSABLE pro oba zdroje (příliš málo plánovaných relací v otevřených datech), takže řádek zůstává MODELLED (Mapa interference). - Benchmark. Nová kampaň 0,40 splňuje A3, D3 (obojí EXPLORATORY), R3 a R4; A2, D1 a R1 zůstávají NOT MET (Bench).
- Jazyky. nl, pl, pt-BR, pt-PT, fi, sv, da, nb, cs, uk, ru, de, fr, es, et, ja a zh-Hans, jako strojové překlady, které žádný rodilý mluvčí nekontroloval; referenční je angličtina a běhy v jiném jazyce trvají přibližně dvakrát déle (
docs/i18n.md).
Novinky ve verzi 0,39#
Verze 0,39 nepřidává žádnou funkci a nemění žádný výsledek; výstup enginu je výstupem verze 0,38. Opravuje jednu věc na příkazovém řádku, aktualizuje závislosti nástrojů křížové validace a uvádí verdikty benchmarku v plném znění.
- Příkazový řádek.
kshana kinds | head(jakýkoli uzavřený standardní výstup) už nezpůsobí pád: program se tiše ukončí se stavovým kódem 141, jako to dělají jiné nástroje při uzavřené rouře. Jiné chyby zápisu se nadále hlásí. - Dependencies.
memmap20.9.11 ve dvou zámcích křížových kontrol ANISE apillow13.0.0 acertifi2026.10.19 v připnutých verzích prostředí orákula, vše podxval/: nic z toho, co se dodává, se nezměnilo. - kshana-bench, všechny verdikty. Proti předregistrovaným prahům jsou tři NOT MET, každý připnutý testem: A2 (
agc_k_sigmaAUC 0,766 proti alespoň 0,80), D1 (největší mezera 0,0301) a úloha (b) R1 (převzato, znovu nespuštěno). Žádný práh nebyl uvolněn (Bench).
Novinky ve verzi 0,38#
Verze 0,38 činí neutrálního rozhodčího měřitelným: bodují se záznamy přijímačů proti publikovanému testovacímu rozvrhu, čte více přijímačů a senzorů, testují se časovací systémy a dodává se benchmark a observatoř interference. Zůstává poradní: nic zde není certifikováno, žádný výsledek není typové schválení a nic nevysílá. Každý řádek uvádí, co o něm drží registr (jak se štítek získává); stav pojmenovává jen to, co bylo zkontrolováno, a řádek registru a odkazovaná stránka říkají, co zkontrolováno nebylo.
| Novinka ve verzi 0,38 | Co to dělá a proč | Stav v registru | Čteno |
|---|---|---|---|
| Bodování jammertestu | kshana jammertest import čte publikovaný katalog testů NPRA a plán vysílání jako plánovanou pravdu; jammertest score boduje záznam přijímače po jednotlivých testech (latence detekce, nezachycené poplachy, falešné poplachy, doba obnovy), jako podepsaný balíček důkazů, pokud zadáte klíč |
MODELLED: jeden řádek registru. Prahy byly předregistrovány před jakýmkoli bodovaným během; na datech JammerTest 2024 pravidlo minima dat selhalo v obou bězích (4 a 7 bodovatelných oken proti 10 požadovaným), takže žádný práh nelze posoudit a nic se netvrdí | Jammertest |
| Vlastní příznaky přijímače | UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG a NovAtel RXSTATUS načtené do self_report pro každou epochu a porovnané s poplachy Kshana (oba, jen přijímač, jen Kshana, žádný); čtečka Septentrio SBF a vstup --serial jen pro čtení |
MODELLED; shoda detektoru přijímače s detektorem Kshana není validace | Důvěra v přijímač |
| Více přijímačů a senzorů | RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0 (z tabulek pyrtcm s licencí BSD, nikoli z textu RTCM), monitorovací proudy GNSS-SDR, záznam IMU jako druhý senzor, balíček ROS 2, most gnss_lib_py a imu-fit pro parametry hybridního senzoru |
MODELLED: šest řádků registru; pouze vlastnoručně psané testovací podklady, nebyl načten žádný záznam ze skutečného přijímače, IMU, běhu GNSS-SDR ani grafu ROS | Strojové vstupy |
| Testy časování a holdoveru | druh holdover-test boduje test holdoveru (GNSS odebráno operátorem, holdover, obnova) z naměřeného záznamu časové chyby proti maskám ITU-T, „měřeno proti masce“; čtečky záznamů linuxptp a chrony; hardwarové fáze a pole lab-attestation |
MODELLED: dva řádky registru; časy jsou tvrzením operátora, neověřené | Timing HIL, Bezpečnost hardwaru |
| Balíčky norem, LunaNet AFS, okružní cesta s laboratoří | bodované balíčky pro DHS RPCF, IMO MSC.1/Circ.1575 a ICAO Doc 9849 Appendix F proti prahům stanoveným před během, „podporuje důkazy pro (supports evidence for)“; převodník (crosswalk) NIST IR 8323r1; generátor a kontrola kódů LunaNet AFS; podepsaný balíček, který propojuje scénář laboratorního běhu, podmínky testu, záznam přijímače a skóre | MODELLED pro balíčky a okružní cestu; kontrola kódů AFS je VALIDATED proti vytištěným kontrolním sloupcům (viz řádky registru) | Normy, LunaNet AFS |
| kshana-bench a observatoř | pevné úlohy, rozdělení a metriky pro detekci interference, detekci z IQ, predikci holdoveru a mezeru optimismu, s utajenou sadou holdout a statickým žebříčkem; reprodukovatelný denní produkt interference se zpožděním 24 h, hrubými buňkami a bez přisuzování původu | žádný vlastní řádek registru: boduje odevzdané práce a jeho základy jsou ve výsledkových souborech označeny MODELLED; proti předregistrovaným prahům jsou bodovač, C1 až C3 a D2 splněny a tři prahy jsou NOT MET (připnuté testy): A2 (agc_k_sigma AUC 0,766 proti alespoň 0,80 na testovací části), D1 (největší mezera 0,0301) a úloha (b) R1 (převzato, znovu nespuštěno); viz xval/bench/RESULTS-v2.md |
Bench, Observatoř |
| Exportéry | telemetrie důvěry jako objevovací a stavové zprávy Home Assistant MQTT (jen publikování, bez přihlašovacích údajů) vedle Prometheus, CEF, LEEF a OTLP | MODELLED: jeden řádek registru | Telemetrie důvěryhodnosti |
| Rezerva optického spoje v čase | druh optical-atmosphere umí zapsat jednu seedovanou realizaci počasí na stanovišti jako řadu rezervy spoje |
MODELLED: jeden řádek registru; jedno losování z modelu, nikoli klima | Optická atmosféra |
Hlavní body verze 0,37: seznam změn. Úplný seznam verze 0,38 je v seznamu změn.
0,38 podrobně#
Každá schopnost z tabulky výše v několika řádcích: co dělá, jeden příkaz, kterým ji spustit, jeden obrázek nakreslený ze skutečného běhu enginu a co o ní drží registr. Obrázky zapisuje tools/gen_figures_038.py do docs/figures/0.38/ (nikdy se nekreslí ručně): python3 tools/gen_figures_038.py je přepíše z postaveného enginu a --check selže, pokud je některý zastaralý nebo se jeho popisek zde liší. Kde je vstupem záznam, je to vymyšlený záznam, který skript zapíše, protože skutečné záznamy třetích stran se nikdy nepřibalují, a popisek to uvádí. Vše níže je poradní: není to certifikováno, není to typové schválení a nic nevysílá. Stav pojmenovává to, co bylo zkontrolováno, a nic víc; jak se štítek získává.
Bodování jammertestu#
kshana jammertest import mění publikovaný katalog testů NPRA a plán vysílání v plánovanou pravdu a kshana jammertest score proti ní boduje záznam přijímače: u každého plánovaného testu, zda byl zachycen, s jakým zpožděním a jak dlouho se přijímač obnovoval, plus falešné poplachy mimo všechny sloty. Katalog se stahuje, nikdy se nepřibaluje.
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
Stav v registru: MODELLED. Prahy byly stanoveny před jakýmkoli bodovaným během; na datech JammerTest 2024 pravidlo minima dat selhalo v obou bězích, takže žádný práh nelze posoudit a nic se netvrdí. Jammertest.
Vlastní příznaky přijímače#
UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG a NovAtel RXSTATUS se načítají do self_report pro každou epochu a kladou se vedle poplachů Kshana: oba, jen přijímač, jen Kshana, nebo žádný. Stejné porovnání živí čtečka Septentrio SBF a vstup --serial jen pro čtení. Žádná strana není referenční pravda.
kshana receiver-trust session.toml # [log] format = "ubx", path = "receiver.ubx"
Stav v registru: MODELLED. Shoda detektoru přijímače s detektorem Kshana není validace. Důvěra v přijímač.
Více přijímačů a senzorů#
RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0, monitorovací proudy GNSS-SDR, záznam IMU jako druhý senzor, balíček ROS 2 a most gnss_lib_py všechny končí ve stejné časové ose důvěry v přijímač. imu-fit čte ze záznamu nehybné IMU parametry senzoru, které hybridní scénáře a scénáře fúze potřebují, takže lze scénář spustit se senzorem, který skutečně máte.
kshana imu-fit still.csv --format csv --axis x --expected-mean 0 --id bench-imu
Stav v registru: MODELLED. Pouze vlastnoručně psané testovací podklady; nebyl načten žádný záznam ze skutečného přijímače, IMU, běhu GNSS-SDR ani grafu ROS. Strojové vstupy.
Testy časování a holdoveru#
Druh holdover-test boduje test holdoveru (GNSS odebráno operátorem, holdover, obnova) z naměřeného záznamu časové chyby proti maskám ITU-T a říká to těmito slovy: měřeno proti masce. Vstupem jsou čtečky záznamů linuxptp a chrony; hardwarové fáze a pole lab-attestation říkají, kdo co tvrdil.
kshana scenarios/holdover-test-example.toml
Stav v registru: MODELLED. Časy odebrání a obnovení GNSS jsou tvrzením operátora, neověřené. Timing HIL, Bezpečnost hardwaru.
Balíčky norem#
Bodované balíčky pro testovací profily DHS Resilient PNT, IMO MSC.1/Circ.1575 a ICAO Doc 9849 Appendix F, plus převodník (crosswalk) NIST IR 8323r1 v compliance-report. Každý test spustí přibalený scénář a porovná pole výsledku s prahem stanoveným před během; test, který potřebuje záznam přijímače, je uveden jako vyžadující vstup, nikoli bodován. Používá se formulace „podporuje důkazy pro (supports evidence for)“.
kshana standards-pack list
kshana standards-pack run imo-circ-1575
Stav v registru: MODELLED. Splněný práh říká, že modelovaný scénář splnil stanovený práh, nic o produktu; každé nesplnění se uchovává a je připnuto testem. Normy.
LunaNet AFS#
Generátor kódů LunaNet Augmented Forward Signal (kódy Gold, Weil a terciární, rámec zprávy a jeho chybové kódování) a kontrola zaznamenaného nebo vygenerovaného proudu symbolů, připnutá na jedno vydání specifikace.
kshana lunanet-afs-check spec
kshana lunanet-afs-check generate --frames 2 --out afs.sym
kshana lunanet-afs-check symbols afs.sym
Stav v registru: VALIDATED pro kontroly kódů a synchronizace, proti hodnotám, které specifikace uvádí (a označuje je TBC); jedna kontrola je NOT MET, uchována a připnuta (jeden vytištěný sloupec terciárního kódu se liší: dokument uvádí stejnou hodnotu pro dvě PRN). Slova LDPC a CRC podrámců 2 až 4 se nekontrolují. Řádky registru říkají přesně které. LunaNet AFS.
Okružní cesta s laboratoří#
kshana.test-conditions/1 je publikovaný popis toho, co laboratoř udělala (události, časy, výkony). kshana evidence round-trip spojuje hash scénáře, hash podmínek, hash záznamu přijímače a skóre do jednoho podepsaného balíčku a odmítne balíček, jehož podmínky a bodovací scénář se o událostech rozcházejí. Kshana nikdy nevytváří ani nepřehrává signál: jak se scénář dostal k přijímači, je odpovědností operátora.
kshana evidence --help
Obrázek ukazuje rozvržení balíčku. Stav v registru: MODELLED. Podmínky testu, Zkušební stav.
kshana-bench#
Pevné úlohy, rozdělení a metriky pro detekci interference, detekci z IQ, predikci holdoveru a mezeru optimismu, s utajenou sadou holdout a statickým žebříčkem. Boduje odevzdané práce; není to pořadí přijímačů.
kshana bench baseline --task d --split test --out results/
Stav v registru: žádný vlastní řádek registru; základy jsou ve výsledkových souborech označeny MODELLED. Proti předregistrovaným prahům jsou bodovač, C1 až C3 a D2 splněny a tři prahy jsou NOT MET, každý připnutý testem: A2 (agc_k_sigma AUC 0,766 proti alespoň 0,80 na testovací části), D1 (největší mezera 0,0301) a úloha (b) R1 (převzato z dřívější kampaně, znovu nespuštěno). Hodnoty jsou v xval/bench/RESULTS-v2.md. Bench.
Observatoř interference#
Jeden produkt na den UTC a oblast z otevřeného archivu poloh letadel, na pevné hrubé mřížce: každá buňka je zhoršená, nezhoršená, nebo nepozorovaná (což neznamená „čistá“). Zveřejňuje se nejdříve 24 h po skončení dne, s potlačenými malými buňkami a bez přisuzování příčiny.
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/
Obrázek ukazuje uložené ukázkové dny, nikoli produkt observatoře. Stav v registru: MODELLED: žádné vnější orákulum, žádná referenční pravda a žádné přisuzování příčiny; buňka, která není pozorována, nebyla posouzena, což není totéž jako čistá. Metoda observatoře.
Exportéry#
Telemetrie důvěry jako text Prometheus, CEF, LEEF, OTLP a objevovací a stavové zprávy Home Assistant MQTT. Příkaz publikuje jen do cíle, který mu zadáte, a nedrží žádné přihlašovací údaje.
kshana trust-telemetry --result session.result.json --print-metrics
kshana trust-telemetry --result session.result.json --print-syslog --format cef
Stav v registru: MODELLED. Telemetrie důvěry.
Rezerva optického spoje v čase#
Druh optical-atmosphere umí zapsat jednu seedovanou realizaci počasí na stanovišti jako řadu rezervy spoje: epizody oblačnosti, sloupec kapalné vody pro každou z nich, jeden vzorek scintilace na krok. Stránka Optical PNT ve Studiu otevírá scénáře optical-atmosphere.
kshana scenarios/optical-atmosphere-network.toml
Stav v registru: MODELLED. Jedno losování z modelu, nikoli klima. Optická atmosféra.
Nové pohledy Studia#
kshana.dev/studio získává Bridge replay (dva běhy vedle sebe na jedněch misních hodinách, na /studio/replay/), stránku Optical PNT (/studio/optical/), stránku Holdover test (/studio/holdover/) a prohlížeč observatoře (/studio/observatory/). Spouštějí stejný engine v prohlížeči, nic se nenahrává a nesou stejné poradní prohlášení. Obrázky výše jsou skriptem nakresleny z vlastního výstupu enginu; nejsou to snímky obrazovky těchto stránek.
Navigace kosmických uživatelů (gnss-ssv)#
Pro kosmickou loď nad, kolem nebo daleko za drahami GNSS: kolik signálů GNSS může využít, jak jsou silné, jak dobrá je geometrie a co s nimi může udělat palubní filtr. Jeden druh, čtyři režimy, volené tabulkami scénáře: shell (slupka) uživatelů (podíl času s jedním a se čtyřmi signály, po konstelacích), trajektorie (signály, C/N0, faktor DOP a prostředí limbového paprsku podél oběžné dráhy), běh navigace (devítistavový filtr nad pseudovzdálenostmi, až k Měsíci) a formace (relativní navigace deputy kolem chief). Veřejným zdrojem pro srovnání dostupnosti je brožura interoperabilního GNSS Space Service Volume (UN OOSA ST/SPACE/75, od International Committee on GNSS), která je sama simulací; stahuje se, nikdy se nepřibaluje. Úplná stránka: 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
Stav v registru: MODELLED, a srovnání s brožurou většinou selhává. Prahy byly stanoveny před během. Z osmi jsou splněny jen S0 (inverzní bilance spoje, 13 z 13 hodnot) a S6 (lunární mise). S1 až S5 a S7 jsou NOT MET: geometrie horního a dolního servisního objemu (43 z 52 a 48 z 52 buněk), horní servisní objem při 15/20/25 dB-Hz, šest misí na GEO, mise na HEO a parametrický diagram postranních laloků proti změřeným diagramům panelů GPS. Téměř každé nesplnění v S1 až S5 se týká GLONASS a brožura pro něj uvádí dva různé referenční úhly; diagnostická varianta s druhým párem dovede S1, S2 a S4 ke všem buňkám, ale nenahrazuje záznamový běh a žádný řádek není VALIDATED. Absolutní filtr formačního běhu je také příliš sebejistý (průměrná normalizovaná kvadratická chyba je výrazně nad hodnotou asi 3, kterou dává konzistentní filtr).
Navigace kosmických uživatelů, co srovnání ukazuje.
Lunární infrastruktura (lunar-infrastructure)#
Oběžná dráha a povrch Měsíce jako navigační a geodetická infrastruktura, v pěti studiích volených pomocí study: od-consistency (palubní určování oběžné dráhy z Earth-GNSS na dráze halo proti nezávislému pozemnímu), carrier-phase (řešení celočíselné nejednoznačnosti mezi povrchovými stanicemi a orbiterem), frame-coestimation (lunární datum z měření vzdáleností ze stanic na Zemi s vazbami na orbiter a bez nich), space-tie (laserové, VLBI a GNSS posuny na jedné kosmické lodi proti chybě místní vazby) a geodesy-sensitivity (která rodina pozorovatelných vidí Loveova čísla h2, k2 a l2). Model je omezený model tří těles se stanovenými zjednodušeními a ilustračními vstupy. Úplná stránka: 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
Stav v registru: MODELLED, a tři prahy jsou NOT MET. Numerika je kontrolována nezávislými programy v numpy a scipy; nic se neporovnává s měřením lunární veličiny a nic není VALIDATED. Splněno: obě řešení oběžné dráhy jsou konzistentní (průměrné q 5,81 proti očekávaným 6) a vazby na orbiter zvyšují nejmenší vlastní číslo data zhruba 111krát, za předpokladu známé dráhy. Nesplněno: vnesená modelová chyba 3e-10 m/s2 není zachycena (C3: palubní řešení je známo na asi 350 m, takže asi deset metrů se ukryje v jeho kovarianci); celočíselné řešení se nedaří (úspěšnost 1 až 3 % při 25 dBi a při zaregistrovaných 12 dBi nelze úlohu sestavit); a stopová polovina G3 pro přidání rodiny pozorovatelných (stopa vzrostla u 12 z 28 přidání, pokaždé proto, že rodina zvýšila hodnost). Každé nesplnění je připnuto testem. Lunární infrastruktura.
Kshana Studio#
Otevřete kshana.dev/studio a celý engine běží ve vašem prohlížeči, přeložený do WebAssembly. Není co instalovat a nic se nenahrává. Studio má dva pohledy na tentýž engine a přepínač v záhlaví mezi nimi přepíná, přičemž zachová scénář, pohled i všechna nastavení, která jste změnili.
Jednoduchý pohled je to, kde se Studio otevírá. Vychází z otázek (kolik družic vidím, mohu věřit své určené poloze, jak dlouho udrží hodiny čas, co dělá rušička s mým přijímačem) a z mapy všeho, co engine umí, u každé oblasti s podílem ověřených metod. Otevřete scénář a nejdřív přijde odpověď: jedna srozumitelná věta napsaná pro to, co daný scénář měří, pak její klíčové hodnoty a graf. Vidět je nejvýše pět nastavení, ta, která odpověď mění nejvíc; zbytek čeká pod Pokročilá nastavení. Jak se to počítá vysvětluje metodu a Pro výzkumníky uvádí vlastní hodnoty enginu, soubor scénáře, kód ke spuštění z Pythonu a citaci.

Pokročilý pohled je úplný panel: knihovna scénářů, pět číslovaných kroků (Zvolit, Nastavit, Spustit, Číst výsledky, Sdílet nebo exportovat), klíčové hodnoty s čipy PASS a FAIL tam, kde běh uvádí práh, a každý panel: přehled, grafy, mapy, přehrávání, zpráva enginu a exporty. Jedno vyhledávací pole se dostane ke scénářům, doménám i polím v nich a až čtyři běhy můžete připnout a porovnat vedle sebe.
Úvodní obrazovka Jednoduchého pohledu a Pokročilý pohled po běhu


Zdroj Studia a poznámky k jeho sestavení jsou v web/README.md.
Web#
Zbytek kshana.dev je sestaven z vlastních souborů tohoto repozitáře a běhů enginu: mise, schopnosti, registr důkazů, publikovaný výzkum a edice.

Schopnosti#
Jeden engine pokrývá celý řetězec selhání, od prvního rušeného družicového signálu po poslední nanosekundu holdoveru hodin. Engine má 92 druhů scénářů; kshana kinds je vypíše a docs/SCENARIOS.md dokumentuje každé pole.
| Schopnost | Na co odpovídá |
|---|---|
| Spektrum | jak rušička obsadí pásmo L GNSS, pásmo po pásmu, sekundu po sekundě |
| Hodiny a časování | jak dlouho každé hodiny drží čas po ztrátě GNSS |
| Konstelace kolem libovolného tělesa | pokrytí, faktor DOP a dostupnost kolem Země, Měsíce nebo Marsu |
| Sluneční soustava | kde je každá planeta a světelná doba libovolného spoje |
| Navigace na nízké oběžné dráze Země | přelet, spoj, navigační zpráva a fúzované určení polohy, fázi po fázi |
| Kampaně | řetězená mise, přeběh parametru nebo soubor Monte Carlo v jednom scénáři |
| Animace | časová řada běhu jako animovaná kresba, přehrávač nebo snímky |
| Zprávy | každá hodnota s jednotkou a popiskem, v HTML (HyperText Markup Language) a JSON (JavaScript Object Notation) |
| Exporty pro interoperabilitu | oběžné dráhy a geometrie pro jiné nástroje: SP3, CCSDS OMM a OEM, CZML, KML, GeoJSON, STK a SigMF |
| Námořní důvěra | může můstek věřit tomuto určení polohy: skóre 0 až 100 a důvody pro NMEA plavidla, živě nebo ze záznamu (pouze poradní charakter, nejde o typově schválené navigační zařízení) |
| Tréninkové proudy NMEA | syntetické NMEA můstku se skriptovaným rušením a spoofingem a záznamem instruktora, pro výcvik posádky (jen text; nikdy pro živé navigační systémy plavidla; pouze poradní charakter, nejde o typově schválené navigační zařízení) |
| Mapa interference | kde letadla a lodě hlásily zhoršená navigační data a kolik z trasy se jich dotýká |
| Oblast vysílače | kde, při uvedených předpokladech, může být zdroj zhoršených hlášení polohy: oblasti s uvedenou spolehlivostí, těžiště s elipsou, nikdy bod (MODELLED; kshana interference-map locate) |
| Balíčky důkazů | podepsaný, offline ověřitelný technický záznam okna záznamu plavidla a toho, co z něj engine vypočetl, pro hlášení incidentu (pouze poradní charakter, nejde o typově schválené navigační zařízení) |
| Telemetrie důvěryhodnosti | proud důvěry jako metriky Prometheus, události SIEM a volitelně OpenTelemetry, s ukázkovým panelem Grafana (deploy/grafana/kshana-gnss-trust.json) |
| Signal K a OpenCPN | skóre důvěryhodnosti na serveru Signal K lodi a v OpenCPN, s referenčním sestavením pro malý počítač vedle přijímače (pouze poradní charakter, nejde o typově schválené navigační zařízení) |
| Export pro testovací bench | kshana bench-export: pohyb vozidla a události scénáře pro laboratorní simulátor GNSS (nezapisuje se žádný signál) a jak potom bodovat záznam přijímače |
| Mapování compliance a zpráva | kshana compliance-report: které řádky veřejných rámců odolnosti sada běhů podporuje důkazy pro (supports evidence for) a jaká mezera zůstává |
| Notebooky | spustitelné tutoriály: proudy důvěry a výcviku pro plavidla, expozice trasy mapě interference, mapování compliance a zkušební stav, kvantový proti klasickému GDOP |
| Ověřovač Galileo OSNMA | navigační data kterých družic může přijímač kryptograficky autentizovat a proč kontrola selže; Kshana neuděluje žádná práva podle IPR ICD OSNMA EU (viz NOTICE na stránce) |
Exportní formáty v plném znění: SP3 je Standard Product 3; CCSDS OMM a OEM jsou Orbit Mean-elements a Orbit Ephemeris Messages Consultative Committee for Space Data Systems; CZML a KML jsou Cesium a Keyhole Markup Languages; STK je Systems Tool Kit; SigMF je Signal Metadata Format.
Každá schopnost, nakreslená ze skutečného běhu: vodopád pásma L, mapa pokrytí, sluneční soustava a přelet nízké oběžné dráhy kolem Země
Spusťte kterýkoli z nich pomocí kshana example <scenario> > s.toml && kshana s.toml: scénáře jsou l-band-waterfall-jamming, constellation-multi-gnss-coverage, solar-system-tour a leo-pass-iridium.
Námořní schopnosti a schopnosti kolem interference, nakreslené z uložených syntetických vstupů: skóre důvěryhodnosti, mapa interference s expozicí trasy, výcvikový proud a balíček důkazů
Všechny čtyři jsou vymyšlená data a mají poradní charakter: ukazují formát a chování softwaru, nikoli to, jak si kterýkoli přijímač či systém vede proti interferenci. První spusťte pomocí kshana receiver-trust examples/maritime-trust/session.toml, druhý pomocí kshana route-exposure na vzorcích v examples/interference-map/, třetí pomocí kshana nmea-scenario scenarios/training/coastal-drag-off.toml --out drag.nmea (jen pro výcvik: nikdy jej nepouštějte do živého navigačního zařízení) a čtvrtý jako v docs/EVIDENCE-PACKS.md.
Úplná tabulka schopností, doména po doméně
Následuje úplný rozpis doména po doméně; pro registr zralosti po jednotlivých schopnostech viz docs/CAPABILITY.md a docs/VALIDATION.md.
| Oblast | Schopnost |
|---|---|
| Oběžná dráha a geometrie | propagace SGP4/SDP4 (ověřená na 4,12 mm proti všem 666 vektorům AIAA 2006-6753); skutečné dvouřádkové elementy (uložený, datem opatřený snímek Celestrak gps-ops) nebo syntetické konstelace Walker-delta, jejichž střední elementy realizují vzorec i:T/P/F s odchylkou pod 1 km po 24 h propagace; viditelnost více konstelací, faktor DOP: geometrický, polohový, horizontální, vertikální a časový (GDOP/PDOP/HDOP/VDOP/TDOP), ověřený na 1e-6 proti gnss_lib_py 1.0.4, Stanford NAV Lab (Navigation and Autonomous Vehicles Laboratory), a dostupnost GNSS; optimalizátor návrhu konstelace bez gradientu, dimenzování minimálního počtu družic metodou streets-of-coverage, nástroj pro srovnání více konstelací a přeběh návrhů Walker, který tabeluje pokrytí / PDOP / dobu návratu nad mřížkou rovin × družic a uvádí Pareto-optimální návrhy. |
| Numerický propagátor | Numerický propagátor Cowell (src/propagator.rs), který doplňuje analytickou cestu SGP4/SDP4, s hierarchickým sedmiporuchovým silovým modelem (src/forces.rs): dvě tělesa + úplné zonální pole J2–J6 (koeficienty zonálních harmonik zploštění Země J2 až J6; přesný analytický gradient jeho rušivého potenciálu), volitelný tesserální sférickoharmonický geopotenciál EGM2008 do stupně a řádu 70 (Earth Gravitational Model 2008; src/gravity_sh.rs; skutečné koeficienty NGA, tedy US (United States) National Geospatial-Intelligence Agency, rekurence normalizovaných Legendreových funkcí podle Holmese a Featherstonea, křížově zkontrolovaná proti uzavřeným tvarům Legendreových funkcí a analytické identitě ∇V), gravitaci Slunce a Měsíce jako třetích těles řízenou epochou (vestavěné efemeridy nízké přesnosti, bez jádra DE/SPK, tedy Development Ephemeris / SPICE Spacecraft and Planet Kernel), tlak slunečního záření (model dělové koule s kuželovým stínem umbra + penumbra), atmosférický odpor (po částech exponenciální hustota podle Valladu, spolu rotující atmosféra), post-newtonovskou Schwarzschildovu relativistickou korekci a člen Lenseho–Thirringova strhávání rámce (IERS, tedy International Earth Rotation and Reference Systems Service, Conventions 2010 §10, lineární v momentu hybnosti Země, o ~1–2 řády pod Schwarzschildovým) – poháněný volbou ze dvou adaptivních integrátorů (RK4, tedy Runge–Kutta čtvrtého řádu, s půlením kroku nebo vložená dvojice Dormand–Prince RK5(4)). Ověřeno proti Orekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 – 278 epoch napříč LEO (nízká oběžná dráha kolem Země) + GTO (geostacionární transferová dráha), přičemž konzervativní úrovně sil souhlasí v nejhorším případě na |Δr| 0,08 m za 24 h (tests/numerical_cowell_propagator_reference.rs); úroveň atmosférického odporu se charakterizuje zvlášť (≈ 333 m / 24 h) a absolutní vstupy efemerid Slunce a Měsíce a hustoty zůstávají otevřeně modelované. Další vnitřní důkaz (nikoli vnější validace): neporušená dráha se kontroluje proti přesnému řešení Keplerovy úlohy v univerzálních proměnných na pod metr za 24 h, energie a moment hybnosti se zachovávají na ~1e-9 a každá porucha odpovídá ručně odvozenému uzavřenému podpisu. |
| Manévry a návrh trajektorie | Impulzní uzly ΔV s propagací kovariance 6×6 (rámce chyb provedení ECI, tedy Earth-centred inertial, a LVLH, tedy local vertical, local horizontal), integrace konečného zážehu kontrolovaná proti uzavřené Ciolkovského raketové rovnici na < 0,01 %, řešič Lambertovy úlohy podle Izza-2015 pro jednu otáčku, přesný propagátor Keplerovy úlohy v univerzálních proměnných a porkchop (start × příletu) přeběh C3 (energie startu) / příletového V∞ vydaný jako JSON mřížka vrstevnic – vrstva simulace výkonu nad GMAT/Orekit, kde se každý výstup Lambertovy úlohy zpětně ověřuje proti pravdě dvou těles a minimum porkchopu se kontroluje proti analytické Hohmannově spodní mezi. |
| Časové soustavy a referenční soustavy | Stupnice UTC / TAI / TT / UT1 IERS s přestupnými sekundami (Coordinated Universal Time, International Atomic Time, Terrestrial Time a čas rotace Země Universal Time 1), API (rozhraní pro programování aplikací) juliánských dat, úhel rotace Země (ERA) IAU-2000 (International Astronomical Union), TEME ↔ ECEF založené na GMST (Greenwich Mean Sidereal Time) (true equator, mean equinox ↔ Earth-centred, Earth-fixed) s geodetickými soustavami WGS-84 (World Geodetic System 1984), precese IAU 2006 (Fukushima–Williams), úplná nutace IAU 2000A/2000B, pohyb pólu IERS a redukce GCRS↔ITRS IAU 2006/2000A založená na CIO bez rovnodennosti (CIO = Celestial Intermediate Origin) – vše ověřeno bit po bitu proti vektorům SOFA/ERFA a nezávisle křížově zkontrolováno proti ANISE (čistě rustová reimplementace NAIF/SPICE; NAIF = Navigation and Ancillary Information Facility NASA, tedy US National Aeronautics and Space Administration): GCRS→ITRS ve kshana proti ITRF93 v ANISE (International Terrestrial Reference Frame 1993) z earth_latest_high_prec.bpc JPL, přičemž oběma jsou předány stejné parametry orientace Země IERS, souhlasí na ≤ 0,86 m na zemi / ≤ 3,6 m na oběžné dráze GNSS (max 0,028″) napříč osmi epochami 2020–2023. |
| Inerciální | Tříosý strapdown INS – kvaternionová orientace, mechanizace NED (north-east-down) ve WGS-84, kompenzace coningu/scullingu a deterministický model chyb IMU (škálový faktor, nesouosost, citlivost na g, kvantizace, drift); kvantový akcelerometr s atomovým interferometrem z prvních principů (fáze Mach–Zehnder, kvantový projekční šum, pokles kontrastu, vazba vibrací), který odvozuje koeficient náhodné procházky rychlosti; a částicový filtr se sekvenčním váženým převzorkováním pro navigaci podle map (podle terénu nebo gravitace) bez GPS. |
| Alt-PNT (bez GPS) | Model měření gravimetru s atomy v chladu, jehož spodní mez bílého šumu (σ = ASD/√τ, ASD = amplitudová spektrální hustota) se odvozuje z fyziky akcelerometru CAI; nízkostupňové, plně normalizované sférickoharmonické pole gravitačních anomálií (zkontrolované proti uzavřeným tvarům Legendreových funkcí a ručně odvozené jednočlenné anomálii) plus syntetické mascony; syntetizační jádro gravitačních funkcionálů (gravity_sh::gravity_magnitude / gravity_disturbance_mgal) – „čtečka map“, proti níž se gravitačně podporovaný navigátor přiřazuje – je ověřeno proti normální tíži podle standardu GRS80 (Geodetic Reference System 1980), reprodukuje uzavřenou Somiglianovu normální tíži a publikované γ_e / γ_p na 3.5e-12 a vytváří fyzikálně ohraničenou mapu poruch ze skutečného pole EGM2008 z ICGEM (International Centre for Global Earth Models) (RMS – střední kvadratická hodnota – ≈ 26 mGal, max ≈ 89 mGal při stupni a řádu 70; tests/icgem_gravity_reference.rs); a částicový filtr přiřazování gravitačních map, který z posloupnosti anomálií, jimiž letí, obnoví dráhu bez GPS. Rozšiřuje se na terénní navigaci (TERCOM/SITAN – terrain contour matching / Sandia Inertial Terrain-Aided Navigation – proti DEM (digitální model terénu) z SRTM (Shuttle Radar Topography Mission) .hgt, src/altpnt/terrain.rs), geomagnetické hlavní pole IGRF-14 (14. generace International Geomagnetic Reference Field) do stupně a řádu 13 (src/igrf.rs, zkontrolované proti uzavřenému tvaru nakloněného dipólu a konečným diferencím ∇V) a kombinovaný navigátor gravitace + magnetismu + terénu, který slučuje všechny tři skalární kanály jedním částicovým filtrem (informace se sčítá – žádný kanál nezhorší určení polohy). 60minutový benchmark bez GPS (výpadek ~700 km / jedné hodiny, při němž inerciální řešení driftuje na ~70 km) se obnoví na ~145 m (< 500 m) hierarchickým přiřazovačem od hrubého k jemnému – cíl ESA NAVISP (Navigation Innovation and Support Programme) Quantum Wayfarer. |
| Fúze | Volně vázaný 15stavový chybový EKF (rozšířený Kalmanův filtr) GNSS/INS s uzavřenou zpětnou vazbou (balíček gnss-ins); těsně vázaná aktualizace pseudovzdálenostmi, která koriguje dál s méně než čtyřmi družicemi; spřažený filtr hodiny + poloha; obecný Kalmanův estimátor s unscented transformací (sigma-body) pro silně nelineární měření; těsně vázaný navigátor GNSS/INS s UKF (pseudovzdálenost + Doppler), jehož orbitální setrvačný pohyb podle silového modelu je kontrolován na vnitřní konzistenci na 0,77 m RMS během 30minutového zakřiveného přeletu LEO, který zahrnuje 120sekundový výpadek GNSS (číslo konzistence filtru, nikoli validace nezávislým orákulem – tento navigátor zůstává MODELLED); a úplný 17stavový těsně vázaný UKF GNSS/INS (poloha, rychlost, chyba orientace, biasy akcelerometrů a gyroskopů, bias a drift hodin), jehož kvantová navigace CAI dead-reckoning překlene 120sekundový výpadek na odvozené náhodné procházce rychlosti akcelerometru s atomy v chladu. |
| Určování oběžné dráhy | Obnova orbitálního stavu [r, v] ze sledování vzdálenosti pozemní stanicí, skládající silový model dvou těles + J2 a integrátor RK4 s dávkovým korektorem Gauss–Newton (determine_orbit_batch, pod metr / mm·s⁻¹ z bezšumových vzdáleností, ~2 m při šumové podlaze 5 m) a sekvenční variantou s unscented filtrem (determine_orbit_sequential). |
| Pozorovatelnost a teorie odhadu | Obecná, znovupoužitelná vrstva Fisherovy informace / Cramér–Rao (src/fim.rs): informační matice M = HᵀWH, Cramér–Raova dolní mez, hodnost pozorovatelnosti a nulový prostor defektu data (pseudoinverze Moore–Penrose) a skaláry návrhu experimentu D/A/E/T-optimální ze symetrického Jacobiho řešiče vlastních čísel. Ověřeno – vlastní čísla proti numpy.linalg.eigh, kovariance CRLB proti σ²(XᵀX)⁻¹ pomocí numpy.linalg.inv a DOP GNSS z informační matice, vše shodné na 1e-9 (tests/fim_observability_reference.rs), a navíc křížově zkontrolováno proti uzavřeným mezím Kay (1993) s dosažením CRLB metodou Monte Carlo. Podpírá engine DOP, CRLB pasivní geolokace a větu o pozorovatelnosti lunární absolutní stanice (níže). |
| Lunární a cislunární | Propagátor kruhového omezeného problému tří těles (CR3BP) Země–Měsíc v rotující soustavě – zachovaná Jacobiho konstanta a všech pět Lagrangeových bodů (src/cr3bp.rs) – nyní s maticí přechodu stavu (STM) 6×6 a jednoduchým střelbovým diferenciálním korektorem (cr3bp_jacobian, propagate_state_stm, differential_correct_halo), který vytváří skutečně periodické dráhy halo / NRHO (near-rectilinear halo orbit): STM je ověřena proti konečným diferencím, opravené dráhy se uzavírají na strojovou přesnost a nasazení publikovaného stavu v apolunu reprodukuje NRHO L2 jižní 9:2 (L2 = druhý Lagrangeův bod Země–Měsíc; dráha Gateway) s periodou ≈ 6,57 d / perilunem ≈ 3 250 km, v souladu s publikovanými ≈ 6,56 d / ≈ 3 370 km (řešení CR3BP – kruhové, bez Slunce – nikoli ověřené proti skutečným efemeridám LANS (Lunar Augmented Navigation Service)/Gateway; selenocentrická transformace MCI/MCMF (Moon-centred inertial / Moon-centred, Moon-fixed) opravené dráhy je navazující práce); plus cislunární geometrie PNT LunaNet / LNIS (LunaNet Interoperability Specification) (redukce MCI↔MCMF, selenografické souřadnice) s přeletem ARAIM u lunárního jižního pólu, který otevřeně odhaluje mezeru v integritě: σ_URE (chyba vzdálenosti uživatele) ~30 m žene ochrannou úroveň daleko nad mez výstrahy 50 m (src/lunar.rs, scenarios/lunanet-araim.toml); a doplnění DOP povrchovými majáky (src/lunar_beacon.rs), které ukazuje, jak několik zaměřených povrchových měřicích majáků dodá řádky zorného směru s nízkou elevací a širokým azimutem, které sadě jen z oběžné dráhy, celé nad hlavou, chybí – zhroutí špatně podmíněný GDOP u jižního pólu a, přes rozpočet chyb jako odmocninu součtu čtverců, i dosaženou přesnost polohy v metrech (využívá jádro DOP ověřené proti gnss_lib_py a uzavřený tvar viditelnosti nad bezvzdušným obzorem; analýza zhoršení přesnosti je sepsána v arXiv:2607,06212). |
| Lunární sada PNT | Lunární/cislunární navigační sada vrstvená nad jádrem CR3BP, každá část jako spustitelný kind: Lunar Coordinate Time (lunar-time-offset, src/lunar_time.rs – sekulární rychlost LTC/TCL − TT (LTC = Lunar Coordinate Time; TCL = její francouzská podoba, Temps-Coordonnée Lunaire) z rozdílu vlastního potenciálu + kinetického členu, uvedená s publikovaným pásmem 56–59 µs/den); geodetická pozorovatelná zpoždění lunární VLBI (very-long-baseline interferometry) (lunar-vlbi, src/lunar_vlbi.rs – zpoždění a jeho rychlost z rozdílu dvou vzdáleností v blízkém poli na zemské základně, křížově zkontrolované proti rovinnovlnnému Δ-DOR (delta differential one-way ranging) ze stejné kódové základny v limitě dalekého pole, parciální derivace ověřené konečnými diferencemi); dávkový estimátor společné vícetechnikové OD + hodin (lunar-joint-od-clock, src/lunar_combination.rs – fit Gauss–Newton slučující VLBI + lunárně lokální vzdálenosti + meziřadicové vzdálenosti mezi družicemi) nesoucí výsledek pozorovatelnosti podle Fisherovy informace: samotné vnitřní měření vzdálenosti nechává defekt data tuhého tělesa o šesti stupních volnosti, takže absolutní poloha povrchové stanice je nepozorovatelná, dokud se nepřidá vazba na zemskou soustavu – zpoždění VLBI na zemské základně pozorovatelnost obnoví pro řídkou konstelaci a zostří Cramér–Raovu mez pro bohatou, přičemž absolutní datum se uzavírá při třech nekolineárních zemských stanicích (výsledek pozorovatelnosti je sepsán v arXiv:2607,02566); realizace referenční soustavy (lunar-frame-realisation, src/lunar_frame_realise.rs – fit data Helmertovou 7parametrovou transformací + vazba orientace podle IAU 2015 WGCCRE – WGCCRE = IAU Working Group on Cartographic Coordinates and Rotational Elements); analýza servisního objemu třídy Moonlight/LCNS (LCNS = Lunar Communications and Navigation Services; moonlight-service-volume, src/lunar_service.rs – DOP / pokrytí / dostupnost + zobecněná obálka HPL/VPL lunárního ARAIM (horizontální/vertikální ochranná úroveň), využívající jádro DOP ověřené proti gnss_lib_py a aparát LunaNet σ_URE≈30 m); lunární diferenciální PNT (lunar-differential-pnt, src/lunar_dpnt.rs – lunární analogie diferenciálního GNSS / systému rozšíření založeného na družicích (SBAS): přesné zrušení společné složky hodin + prostorová dekorelace prvního řádu proti základně, využívající ochrannou úroveň SBAS podle DO-229E – DO-229E je minimální provozní norma výkonu RTCA (dříve Radio Technical Commission for Aeronautics) pro přijímače SBAS); a exportní rozhraní pro interoperabilitu sladěné s LunaNet/IOAG (IOAG = Interagency Operations Advisory Group; lunar-interop-export, src/lunar_interop.rs – CCSDS-OEM (Orbit Ephemeris Message) + zpětný převod lunární časové stupnice v lunární tělesové soustavě IAU 2015, zabalené v obálce KIF). Úrovně důkazů pro jednotlivé části jsou ve verifikační matici: Lunar Coordinate Time, společný estimátor OD + hodin, realizace referenční soustavy a geometrie servisního objemu jsou VALIDATED (každá proti nezávislému orákulu, které uvádí její řádek, stejně jako cesta jádra zpoždění VLBI); pozorovatelná VLBI, výsledek pozorovatelnosti defektu data, diferenciální PNT a exportní rozhraní pro interoperabilitu jsou MODELLED. Parametry jsou ilustrační hodnoty z veřejných zdrojů – nikoli ověřené proti skutečnému sledování VLBI/Gateway, nikoli spojené s žádnou agenturou ani jí nepodporované, bez tvrzení o TRL (úrovni technologické připravenosti) nebo odkazu na předchozí využití. |
| PNT pro hluboký vesmír a Mars | Otevřený radiometrický navigační engine: iterativní světelná doba + relativistické zpoždění Shapiro, dvou-/jedno-/třícestný Doppler a vzdálenost (Moyer, dvě větve), koherentní poměry transpondéru, regenerativní/PN (pseudonáhodné) měření vzdálenosti (CCSDS 414, norma pro měření vzdálenosti pseudonáhodným šumem) a Δ-DOR v rovině oblohy (CCSDS 506, norma Delta-DOR), s médii sluneční plazma/tropo/iono; CCSDS-TDM (503) parsování + generování zpráv o sledovacích datech; redukovaně dynamický Square-Root Information Filter (empirická zrychlení RTN – radiální, příčné, normálové – + 3stavové palubní hodiny + atmosférický odpor Marsu), který provádí určování oběžné dráhy Mars-LMO na ≈ 0,2 m v syntetické uzavřené smyčce; společný estimátor fúze jednocestného + dvoucestného měření; jádro vícetělesové dynamiky (Body{μ, re, zonals, gravity, IAU-pole}, gravitace Marsu GMM-3 (Goddard Mars Model 3), tělesová soustava Marsu IAU, zásuvné rozhraní EphemerisProvider, dvoudílná juliánská data + TT↔TDB (Barycentric Dynamical Time)); a reléový scénář PNT mars-pnt (areostacionární reléová konstelace MARCONI) s koncovým simulátorem výkonu GSE (GSE = ground-support equipment) (geometrie → bilance spoje → pozorovatelné → SRIF → kovariance). Ověřeno simulací (kovariance / ukazatele kvality uzavřené smyčky); dynamika Marsu se Sluncem ve středu je křížově zkontrolována proti JPL DE440 (137 m při oblouku 1 den, xval/anise-mars-od). Ověření na skutečných sledovacích datech DSN/ESTRACK je v plánu vývoje. |
| Sluneční soustava a PNT kolem libovolného tělesa | Efemeridy celé sluneční soustavy bez jader (src/ephem.rs, src/ephem_provider.rs): každá planeta z keplerovských elementů Standish JPL (Tabulka 1, 1800–2050 n. l.; Tabulky 2a/2b, 3000 př. n. l.–3000 n. l.) s publikovanou nominální chybou každé planety, Země a Měsíc rozdělené lunární řadou, a Phobos, Deimos, Io, Europa, Ganymed, Callisto a Titan z průměrných elementů JPL a rotačního modelu IAU (International Astronomical Union); libovolné těleso vůči libovolnému jinému v ICRF (International Celestial Reference Frame). Body nyní nese GM (gravitační parametr), poloměry, J2 (druhou zonální harmoniku) tam, kde je publikována, a pól IAU a hlavní poledník pro osmnáct těles. Druh solar-system uvádí polohy, rychlosti, konstanty, světelnou dobu a jedno-/dvoucestnou vzdálenost mezi libovolnými dvěma tělesy (stávající radiometrický řešič světelné doby se slunečním Shapirovým zpožděním) a dráhu každého tělesa – dost na vykreslení interaktivní sluneční soustavy; druh body-pnt umístí orbiter nebo lander kolem libovolného tělesa (scenarios/mars-orbit-pnt.toml, scenarios/europa-surface-pnt.toml) s místní konstelací Walker, aparátem faktoru DOP a Gauss–Newton a vzdáleností z hlubokého vesmíru od Země. Ověřeno proti JPL Horizons (DE441, JPL Development Ephemeris 441): Merkur–Saturn a Země z Tabulky 1 do dvojnásobku nominální chyby (nejhorší 1,87×), všech osm planet z Tabulek 2a/2b (nejhorší 1,71×) a světelná doba Země–Mars/Jupiter. Modelované: Uran a Neptun z Tabulky 1 (2,0× a 5,2× uvedené chyby proti DE441), Pluto, měsíce a navigační výsledky body-pnt. |
| Fúzované PNT z MEO + LEO | src/leo_fusion/: systémově nezávislé určování polohy, navigace a času z LEO nad libovolnou konstelací (slupky Walker, sady elementů, předvolby GNSS) a pro libovolný signál (nosná, čipová rychlost, obálka C/N0, chyba vzdálenosti signálu v prostoru), s volitelnými jednosouborovými předvolbami nesoucími své zdroje (Xona Pulsar X1/X5, Iridium STL, signály příležitosti Starlink, CentiSpace, reprezentativní systém v pásmu C, model efemerid ATOMIC s nulovými hodinami). leo-pvt: dávkové Dopplerovo určování polohy z rychlosti změny vzdálenosti (jedna i více družic, stavy driftu hodin a rychlosti, geometrie jednoho přeletu podél/napříč dráze a zrcadlové řešení), společné vážené nejmenší čtverce GNSS + LEO s biasy mezi systémy pro každý systém a s odchylkami sigma pro každý signál zadanými volajícím, DOP proti počtu družic LEO, pokrytí polárních a arktických oblastí a přenos času z LEO do UTC proti C/N0 a oscilátoru. leo-ppp: float PPP (přesné určování polohy) EKF (rozšířený Kalmanův filtr) jen s GNSS a s LEO, jeho doba konvergence a test konzistence chí-kvadrát NEES. ntn-positioning: určování polohy v 5G nepozemních sítích z Cramér–Raovy meze pro šířku pásma. Ověřeno: obálka Dopplera z LEO proti publikovaným číslům Iridium a Xona. Modelované: zbytek, přičemž trend PPP je porovnán s Li et al. (2019) – viz docs/LEO-PNT-FUSION.md. |
| Integrita | RAIM (autonomní monitorování integrity přijímačem) typu snapshot a solution-separation (ve stylu ARAIM) s horizontální/vertikální ochrannou úrovní (HPL/VPL), detekcí a vyloučením poruch a Stanfordskými diagramy integrity; ochranná úroveň vícehypotézové separace řešení (MHSS) s explicitním rozpočtem rizika integrity, včetně režimu poruchy celé konstelace u dvou/více konstelací (EU (Evropská unie) ARAIM / DO-316, norma výkonu RTCA pro letecké vybavení GPS s rozšířením založeným na letadle), vyzkoušená na skutečném snímku GPS + Galileo (scenarios/araim-gps-galileo.toml). Ochranná úroveň používá jednostrannou projekci nominálního biasu b_k = Σ_i|s_i|·b_nom pro každý režim poruchy a sigma integrity σ_URA (přesnost vzdálenosti uživatele; odlišná od sigma přesnosti σ_URE, chyby vzdálenosti uživatele) ze zprávy Integrity Support Message – viz docs/ARAIM_REFERENCE.md. Detekční jádro (prahy χ²/necentrální χ²/normální a násobiteli K) je externě ověřeno proti SciPy na 171 případech (tests/raim_reference.rs); geometrie využívá jádro DOP ověřené proti gnss_lib_py. Samotné přidělení rozpočtu rizika integrity ARAIM MHSS nemá publikované číselné orákulum a zůstává otevřeně modelované. |
| Augmentace (SBAS) | Ochranné úrovně SBAS / WAAS (WAAS = Wide Area Augmentation System) ve tvaru vážených nejmenších čtverců podle DO-229E (K-faktory pro přesný přiblížení a za letu po trati) a dvoufrekvenční kombinace L1/L5 bez ionosféry (L1 a L5 jsou dvě civilní pásma signálu GPS; IS-GPS-705, rozhraní GPS pro signál L5, γ₁₅ ≈ 1,793), na níž stojí DO-316 – src/sbas.rs. Algoritmus ochranné úrovně je externě ověřen proti větvi RTKLIB SBAS-PL (RTKLIB = otevřená knihovna pro určování polohy v reálném čase kinematicky; PL = ochranná úroveň) (zsiki/rtklib_ws waasprotlevels(), Siki & Takács 2017, DO-229D – předchozí revize DO-229 – App. J), spuštěné na skutečných datech EGNOS (European Geostationary Navigation Overlay Service), čímž reprodukuje její HPL na < 2e-3 m (tests/sbas_reference.rs); gLAB (sada nástrojů GNSS Laboratory) v6.0.0 potvrdil totožnou konvenci. |
| Hodiny a časování | Dvoustavový Kalmanův holdover (kovariance ve Josephově tvaru, zdraví konzistence NIS/NEES – normalizovaná inovace na druhou / normalizovaná chyba odhadu na druhou); stabilita z rodiny Allanových (ADEV / MDEV / TDEV / HDEV / MTIE – Allanova, modifikovaná Allanova, časová a Hadamardova odchylka a maximální chyba časového intervalu) s intervaly spolehlivosti specifickými pro typ šumu a úplným fitem mocninného zákona IEEE-1139 s pěti koeficienty (IEEE Std 1139, definice metrologie frekvence a času od Institute of Electrical and Electronics Engineers) – estimátory jsou ověřeny na skutečném hardwaru proti Stable32: skutečný cesiový primární etalon 5071A proti vodíkovému maseru (556 990 vzorků fáze, 16 průměrovacích faktorů, OADEV/OHDEV – překrývající se Allanova/Hadamardova odchylka – na 1e-3; tests/cs5071a_reference.rs) a kanonická regresní řada Stable32 PHASE.DAT (139 průměrovacích faktorů, OADEV/MDEV/TDEV na 1e-3; tests/phasedat_reference.rs); estimátory ADEV/MDEV/TDEV a telekomunikační metrika wanderu MTIE jsou navíc křížově zkontrolovány proti nezávislé knihovně allantools 2024,06 na < 1e-9 na řadě NIST SP 1065 (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs); geometrické korekce (Sagnac, common-view GNSS); a provozní metody přenosu – TWSTFT (dvoucestný družicový přenos času a frekvence) s uzavřeným tvarem Sagnacova jevu podle BIPM (Mezinárodní úřad pro míry a váhy), common-view GNSS, přenos času bez ionosféry metodou PPP (přesné určování polohy), optický spoj ve volném prostoru s turbulentní scintilací a soubor hodin (papírová časová stupnice) vážený inverzním rozptylem, pod nejlepšími přispívajícími hodinami. Kalkulačka holdoveru hodin bez GNSS (src/holdover.rs) vystavuje uzavřený van-Loanův růst chyby setrvačného doběhu jako inverzi holdover-do-prahu – jak dlouho hodiny běží volně, než jejich časová chyba překročí rozpočet – napříč reprezentativními třídami klasických a kvantových hodin; modelováno (křížově zkontrolováno proti vícekrokové rekurzi kovariance clock_state) a otevřeně se uvádí, že pro velmi stabilní hodiny je holdover k těsnému prahu dán předpokládanou spodní mezí šumu pro dlouhé tau, nikoli citovanou ADEV. Podmíněná časová ochranná úroveň (src/tpl.rs) rozšiřuje holdover na spoofing: mez nezachycené časové chyby, při nezávislé křížové kontrole, která skládá spodní mez monitoru k-sigma, van-Loanův rozptyl doběhu po dobu latence detekce a čas do poplachu CUSUM (kumulativní součet). Kalibrována na skutečném zaznamenaném spoofingu (JammerTest 2024) a reprodukovatelná pomocí cargo run --example tpl_jammertest; složení MODELLED (bez rozpočtu rizika integrity na hodinu), podmíněné detekcí – žádná konečná nepodmíněná mez neexistuje. |
| Měřicí doména GNSS | Dopředná syntéza pseudovzdálenosti / Dopplera s ionosférou Klobuchar (vysílanou) a IONEX / mřížka TEC (IONosphere map EXchange format / celkový obsah elektronů; měřenou) – včetně parseru souborů IONEX, časové interpolace mezi mapami a mapování šikmosti tenké slupky – troposférou Saastamoinen + Niell a RAIM typu snapshot (HPL/VPL). |
| Odolnost | Rušení v bilanci spoje (J/S → efektivní C/N₀ → ztráta zachycení – poměr rušič/signál, poměr nosné k hustotě šumu – s činitelem protirušivého spektrálního oddělení Q nyní odvozeným ze skutečných výkonových spekter signálu a rušiče pomocí src/navsignal.rs – Q = 1/(R_c·κ), v CI křížově zkontrolovaným proti předchozí reprezentativní konstantě); stochastický detektor časového spoofingu (energetický test Neyman–Pearson / χ²₁ s uzavřenými tvary a Monte Carlo P_fa/P_md a bezpečnostním ukazatelem kvality (FoM) 1 − P_md); a vícevrstvý detektor spoofingu, který slučuje paritní test konzistence RAIM (se slepým místem společné složky modelovaným otevřeně), monitor výkonu RF AGC (automatické řízení zisku) a monitor kvality signálu (SQM – monitorování kvality signálu, early-minus-late); a rozpočet chyb kvantové inerciální navigace dead-reckoning (QuantumNavBudget, src/inertial/quantum_imu.rs), který skládá bílý šum náhodné procházky rychlosti kvantového atomového interferometru se zbytkovým biasem (křížově zkontrolovaným proti nezávislému integrátoru AccelModel) a chybou škálového faktoru do čísla driftu polohy za holdover – inerciální dvojče holdoveru hodin. Engine skórování odolnosti sladěný s rámcem (src/resilience/) mapuje simulované chování architektury na dílčí skóre po dimenzích napříč sedmi vlastními kategoriemi odolnosti Kshana (nikoli pojmy DHS), sladěnými s Resilient PNT Conformance Framework amerického ministerstva vnitřní bezpečnosti (DHS), a pak studuje stabilitu rozhodnutí libovolného jednoho složeného skóre nebo úrovně zralosti při Dirichletově simplexu vah a pětihrozbovém souboru – nestabilitu pořadí Kendallovým τ, míru přepnutí vítěze top-1 a kolaps diverzity společné složky (Hill-N2), s hashem chráněnou zprávou o ujištění (35 ručně odvozených testů orákula). Reprodukovatelné pomocí cargo run --example resilience_report; syntetické architektury MODELLED, vlastní hodnocení sladěné s RPCF v2.0, nikoli certifikace. Viz docs/RESILIENCE-CROSSWALK.md. |
| Pasivní rádiová geolokace | Geolokace zdroje metodami TDOA/FDOA (rozdíl časů / frekvencí příchodu; src/geolocation.rs) – určení polohy rušiče nebo spoofera (nebo oportunního zdroje pro reverzní PNT) z hyperboloidů rozdílu časů příchodu napříč sítí přijímačů, řešené nejmenšími čtverci Gauss–Newton; přidání rozdílu frekvencí příchodu s pohyblivými přijímači společně obnoví polohu i rychlost zdroje, s mezí Cramér–Rao pro kovarianci polohy odvozenou z geometrie sítě. MODELLED (orákula vnitřní konzistence: zpětné převody dopředu→inverzně, identita J·CRLB = I, monotónnost GDOP a estimátor, který dosahuje vlastní CRLB při Monte Carlo) – bodový model přímé viditelnosti, bez členů vícecestného šíření / NLOS (non-line-of-sight), biasu hodin přijímače ani refrakce. |
| Navigační signál a sledování kódu | Úroveň signálu mezi bilancí spoje a doménou měření (src/navsignal.rs): výkonové spektrální hustoty (PSD) s jednotkovou plochou pro BPSK-R(n) (binární fázové klíčování s obdélníkovými čipy) a sine-BOC(m,n) (binární offsetová nosná); koeficient spektrálního oddělení (SSC) κ = ∫ G_s·G_i df, který odvozuje protirušivý Q, jejž model rušení používá (Q = 1/(R_c·κ)), ze skutečných spekter signálu a rušiče místo reprezentativní konstanty; efektivní (Gaborova) šířka pásma RMS (BOC > BPSK – míra informace o vzdálenosti / Cramér–Rao); tepelný šum jitteru koherentního sledování kódu DLL early–late (DLL = smyčka s uzamčením zpoždění; Kaplan & Hegarty; pod metr pro C/A – hrubý/akviziční kód GPS – při 45 dB-Hz); a obálka chyby vícecestného šíření (koherentní EML, early-minus-late – potlačení úzkým korelátorem). Ověřeno proti uzavřeným kotvám (vlastní SSC BPSK = 2/(3·R_c), PSD s jednotkovou plochou, jitter C/A pod metr). Jde o analýzu výkonu signálu, nikoli o návrh hardwaru antén / RF nákladu (role partnera pro náklad). |
| Interoperabilita | Příjem vysílaných efemerid více GNSS ve formátu RINEX-3 (GPS, Galileo, QZSS – japonský Quasi-Zenith Satellite System –, BeiDou MEO/IGSO – střední oběžná dráha kolem Země / nakloněná geosynchronní dráha – přes IS-GPS-200, rozhraní GPS; GLONASS, ruský Global Navigation Satellite System, přes PZ-90 – ruské datum Parametry Zemli 1990 – stavový vektor RK4) použitelný jako zdroj konstelace (RINEX na vstupu, geometrie PNT na výstupu); parser pozorování RINEX-3 (pseudovzdálenost, fáze nosné, Doppler, síla signálu; rozvržení pozorování 4,00 by se mělo parsovat, ale není testováno, a navigační soubory RINEX 4 se odmítají jménem, místo aby se chybně dekódovaly), který nyní napájí řešič určení polohy z jednoho bodu (SPP) (pvt) – skutečná kódová pozorování na vstupu, skutečná poloha přijímače na výstupu, ověřeno na datech IGS; čtečka/zapisovač přesných efemerid SP3-c/d s Lagrangeovou interpolací 9. řádu; a export CCSDS OEM 2,0 + OMM (Orbit Mean-elements Message) pro nástroje letové dynamiky (GMAT, Orekit, STK – Systems Tool Kit); a parsování + generování CCSDS-TDM (503) zpráv o sledovacích datech pro radiometrické sledování v hlubokém vesmíru. |
| Analýza mise (systémové inženýrství) | Rozpočty návrhu mise prvního řádu, každý jako spustitelný druh: dvoutělesová geometrie startu a výstupu (launch-window – azimut startu sin Az = cos i/cos lat, minimální sklon, bonus rotace Země, Δv pro změnu roviny dogleg, denní příležitosti; src/launch.rs); balistický koridor návratu do atmosféry Allen–Eggers (reentry – maximální zpomalení, rychlost/výška při maximu g, rychlost při maximu ohřevu; src/reentry.rs); geometrie pokrytí pozorování Země (eo-coverage – pás záběru / nadirové GSD (rozlišení na zemi) / přístup mimo nadir / doba návratu přes prostorový trojúhelník SMAD (Space Mission Analysis and Design); src/eo_payload.rs); 3-DOF rozpočet chyb orientace a zamíření (tři stupně volnosti; attitude-budget – nejhorší moment gravitačního gradientu + rozpočet zamíření RSS (odmocnina součtu čtverců); src/attitude_budget.rs); predikce přeletů nad pozemní stanicí (passes – AOS/TCA/LOS, zachycení signálu / čas nejtěsnějšího přiblížení / ztráta signálu, maximální elevace, doba přístupu; src/passes.rs); a jednosměrná bilance spoje podle rovnice spoje CCSDS 401 / DSN 810-005 (rádiofrekvenční a modulační norma CCSDS / příručka návrhu spojů Deep Space Network; link-budget – FSPL (ztráta šířením ve volném prostoru), C/N₀, Eb/N₀ (poměr energie na bit k hustotě šumu), rezerva, uzavření; src/linkbudget.rs). MODELLED analytické rozpočty prvního řádu – vrstva před hardwarem pod STK/GMAT/Basilisk, nikoli náhrada 6-DoF ani radiometrie. |
| Rozhodovací analýza a srovnání variant (MCDA) | Úplná sada vícekriteriální rozhodovací analýzy (MCDA) (src/mcda/) pokrývající všechny čtyři rodiny metod – agregace hodnot (WSM, WPM, WASPAS – model váženého součtu, model váženého součinu, vážené agregované hodnocení součtu a součinu), vzdálenost k ideálu (TOPSIS, Technique for Order of Preference by Similarity to Ideal Solution), kompromisní programování (VIKOR, ze srbského výrazu pro vícekriteriální optimalizaci a kompromisní řešení) a přeřazování (PROMETHEE II, Preference Ranking Organization Method for Enrichment of Evaluations; ELECTRE I, z francouzského výrazu pro eliminaci a volbu vyjadřující realitu), plus poměrovou soustavu MOORA (Multi-Objective Optimization on the basis of Ratio Analysis) a proporcionální COPRAS (Complex Proportional Assessment) – s váhami priorit z párového srovnání AHP (Analytic Hierarchy Process) (Consistency Ratio), nedominovanou Paretovou frontou, analýzou citlivosti na váhy a vícerozměrným skórováním užitku. Devět agregátorů reprodukuje nezávislé knihovny třetích stran pymcdm (WSM / WPM / WASPAS / MOORA / TOPSIS / VIKOR / PROMETHEE II) a pyDecision (ELECTRE I, COPRAS) na < 1e-9 a vektor priorit AHP + Consistency Ratio odpovídají tabulce Random-Index podle Saatyho a hlavnímu řešiči vlastních čísel SciPy/LAPACK na < 1e-9 (tests/mcda_*_reference.rs). VALIDATED – rozhodovací vrstva pod enginem srovnávacích studií. |
| Kosmické prostředí | Model kosmického počasí (space-weather, src/space_weather.rs): indexy sluneční (F10.7 / centrovaný 81denní F10.7a – sluneční rádiový tok 10,7 cm) a geomagnetické (Kp, planetární index K, s definiční tabulkou Kp↔ap – ap je jeho lineární planetární amplituda) aktivity, jimi řízená exosférická teplota Jacchia-1971 (ověřená proti publikovanému slunečnímu minimu/průměru/maximu) a termosférická neutrální hustota ve výšce korigovaná na aktivitu proti statické – závislost hustoty na slunečním cyklu, kterou statická atmosféra USSA76 (US Standard Atmosphere 1976) vynechává. MODELLED: kalibrovaná vazba výškové stupnice prvního řádu, nikoli atmosféra ověřená daty (NRLMSISE – model exosféry US Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar). |
| Vyhodnocení strojového učení a kompromis | Zkušební stav pro vyhodnocení detekce rušení RF (impairment-eval, src/impairment_eval.rs): označený, parametry podložený syntetický korpus (nominální / rušení / spoofing času / spoofing polohy / vícecestné šíření), ROC/AUC (provozní charakteristika přijímače / plocha pod křivkou) nezávislé na detektoru, které boduje libovolný detektor (energy | agc | sqm | parity | fused) s Pd pro každou třídu (pravděpodobnost detekce) při cílové Pfa (pravděpodobnost falešného poplachu), a mezera optimismu mezi rozdělením, na kterém se učilo, a rozdělením mimo něj (režim posunu rozdělení). Plus srovnání kvantového a klasického PNT (quantum-trade, src/quantum_trade.rs), které kvantifikuje přínos hodin kandidáta pro časový/inerciální holdover z křivky změřené ADEV proti klasickému základu, s upozorněním na spodní mez pro dlouhé τ neseným artefaktem a obálkou odolnosti proti času bez GNSS. Metriky vyhodnocení (AUC / matice záměn / Pd-Pmd, Pmd je pravděpodobnost nezachycené detekce) jsou ověřeny na přesnou shodu proti scikit-learn 1.9.0 – včetně skutečné telemetrie ESA OPS-SAT (datová sada detekce anomálií OPSSAT-AD, Ruszczak et al. 2025, CC BY 4,0 – Creative Commons Attribution 4,0), kde ROC AUC podle Manna–Whitneyho ve Kshana reprodukuje roc_auc_score ze scikit-learn na < 1e-9 na odložené testovací části a průhledný detektor počtu vrcholů odděluje označené anomálie při AUC ≈ 0,85 (tests/opssat_ad_reference.rs) – a numerická jádra enginu srovnávání (fit ADEV metodou NNLS – nezáporné nejmenší čtverce –, pásma konzistence χ², van-Loanovo Q hodin) proti scipy 1.17.1; čísla přínosu zařízení postavená nad tím zůstávají MODELLED provozními charakteristikami – nikdy data z terénu/IQ (vzorky ve fázi/v kvadratuře), žádný verdikt dobrý/špatný. Na zkušebním stavu staví hlubší studie mezery optimismu (src/impairment_study.rs, impairment_ml.rs, eval_stats.rs), která boduje panel 13 detektorů (energy/AGC/SQM/parity plus seedované detektory s logistickou regresí a MLP s jednou skrytou vrstvou – vícevrstvý perceptron), fituje zákony škálování pro rozdělení, na kterém se učilo, a mimo něj s permutační nulou a učí prediktor leave-one-out degradace mimo rozdělení ze statistik uvnitř rozdělení (cargo run --example optimism_study). Vstupní část softwarově definovaného přijímače (src/sdr.rs – surové IQ/IF (mezifrekvence) → odbočky korelátoru early/prompt/late → SQM) a adaptéry pro příjem reálných dat (src/realdata/ – RINEX, u-blox UBX (binární protokol u-blox), GnssLogger, JammerTest, Yunnan, SatGrid) umožňují spouštět tytéž detektory nad záznamy dodanými lokálně (žádné datové sady se nepřikládají). Mapa křížení odolnosti kvantového a klasického při nejistotě parametrů (src/crossover.rs; cargo run --bin crossover_study) znovu vytváří studie křížení inerciálních a hodinových řešení za obrázky v Results. |
| Demonstrátor kvantově podporovaného PNT | Tři spustitelné aplikační oblasti MODELLED za otevřeným enginem, z nichž každá vydává otevřené TradeEvidence + záznam o reprezentativnosti / mezerách k letu (src/representativeness.rs): důvěryhodný kvantový přenos času (quantum-time-transfer, src/timetransfer_chain.rs – koncový rozpočet optických mřížkových hodin + fotonického spoje proti CSAC (čipové atomové hodiny) + RF dvoucestnému, s opětovně použitou časovou ochrannou úrovní, bezpečnostním FoM útoku zpožděním/přehráním (1 − P_md) a detekcí anomálií hodin + latencí CUSUM); kvantová navigace bez GNSS (quantum-gnss-free-nav, src/quantum_nav_od.rs – inerciální doběh s atomovým interferometrem proti navigačnímu INS při výpadku GNSS, s otevřeným upozorněním, že bez vnějšího určení polohy je bias akcelerometru nepozorovatelný, takže chyba stále roste); a detekce poruch/anomálií kvantových systémů (quantum-anomaly-detect, src/quantum_faults.rs – označený katalog poruch s ROC AUC s bootstrapovým CI (interval spolehlivosti) z externě ověřeného eval_stats a minimální detekovatelnou poruchou při pevné míře falešných poplachů). Podpírá je sdílená knihovna modelů chyb kvantových zařízení (src/quantum_devices.rs) a jednotná sada pro srovnání kvantového a klasického (src/qtrade.rs). Znovu se používají ověřená jádra, na nichž jedou (metriky vyhodnocení proti scikit-learn, jádra srovnání proti scipy); čísla přínosu zařízení postavená nad nimi zůstávají MODELLED – ilustrační parametry zařízení/spoje z veřejných zdrojů, modelují třídu, bez TRL / odkazu na předchozí let / certifikace, bez podpory žádné agentury. |
| Úsporné inženýrství a dopad na integritu | Pohled nákladů na pokrytí z hlediska ROI (návratnost investice) (src/frugal.rs) – náklady na jednotku dodaného pokrytí při srovnání architektur – a mapování nezachycená detekce → dopad na integritu (src/integrity_impact.rs), které převádí míru nezachycených detekcí monitoru na jeho příspěvek k riziku integrity. MODELLED podpůrné rozpočty rozhodování, aditivní. |
| Výměna artefaktů | Kshana Interchange Format (KIF) (src/interchange.rs) – verzovaná, samopopisná obálka obalující výsledek scénáře jeho druhem, verzí schématu a štítky MODELLED/VALIDATED, aby uložený artefakt zůstal samodokumentující a starší obálky zůstaly zpětně kompatibilně čitelné. |
Každá schopnost je dosažitelná jako API v Rustu, jako spustitelný scénář kind, nebo obojí. Zralost každé schopnosti – ověřená, spustitelná nebo knihovní – se sleduje v docs/CAPABILITY.md. Strojově kontrolovaná verifikační matice (src/verification.rs) vykresluje křížový odkaz požadavek → modul → test → orákulum → stav, s jednotkově testovanými invarianty poctivosti, které povolují štítek ověřená jen tam, kde ji podpírá nezávislé vnější orákulum – a které zaznamenávají schopnosti hardwaru/PA (zajištění produktu), jež Kshana záměrně neposkytuje.
Čtyři balíčky senzorů, jak byly poprvé publikovány (výsledky)
Výsledky#
Každý scénář porovnává kvantový senzor s jeho klasickým protějškem při výpadku GNSS trvajícím ~1,8 h. Čísla jsou reprodukovatelná (scenario + seed + version).
Co kvantové senzory přinesou, když GNSS zmizí – clock-holdover · seed 42 · nakresleno v enginu 0.40.0 a každá hodnota výše je při každém sestavení znovu zkontrolována proti aktuálnímu enginu pomocí tests/published_figures_still_reproduce.rs · SVG
Výhoda závisí na délce výpadku a na vibracích, s výslovným bodem zvratu, kde vyhrává klasické řešení – ukázáno otevřeně napříč žebříčkem technologické připravenosti (údaje optických hodin jsou cíle pozemních demonstrátorů; žádné optické hodiny se stronciem dosud nelétaly):
Křížení odolnosti kvantového a klasického – žebříček TRL holdoveru hodin (nahoře) · mapa inerciální výhody s vrstevnicí bodu zvratu (dole). Lze znovu vytvořit pomocí cargo run --release --bin crossover_study.
Chyba polohy dead-reckoning při výpadku GNSS: kvantový senzor (modře) zůstává plochý u specifikace; klasický senzor (červeně) se rozbíhá na desítky kilometrů. Vytvořeno Kshana z scenarios/imu-deadreckoning.toml.
| Balíček | Scénář | Kvantové | Klasické |
|---|---|---|---|
| 1 – Holdover hodin | clock-holdover.toml (specifikace 20 ns) |
optické hodiny drží celý výpadek | CSAC překročí specifikaci uprostřed výpadku |
| 2 – Inerciální dead-reckoning | imu-deadreckoning.toml (specifikace 100 m) |
atomový: ~41 m, drží celý výpadek | navigační třída: překročí za ~350 s → desítky km |
| 3 – Přenos času (optický mezidružicový spoj) | timetransfer.toml |
optický: ~0,3 mm měření vzdálenosti | RF (TWSTFT): ~150 mm měření vzdálenosti |
| 4 – Hybridní fúze (vrchol) | hybrid-pnt.toml |
plná poloha + čas po celý výpadek | poloha omezena na ~350 s |
Vrcholný scénář ukazuje tezi o fúzi: optický mezidružicový přenos času drží uzamčené i klasické hodiny a izoluje inerciální senzor jako slabý článek klasické sestavy – tedy kvantový inerciální senzor + optické časování společně.
Holdover hodin při výpadku GNSS: optické hodiny (modře) zůstávají po celý doběh uvnitř specifikace 20 ns; čipové hodiny (červeně) ji částečně překročí. Vytvořeno Kshana z scenarios/clock-holdover.toml.
Další scénář, orbit-gnss-challenged.toml, odvozuje dostupnost GNSS z orbitální geometrie místo ručně zadaných oken: kosmická loď uvnitř slupky GNSS se propaguje proti konstelaci Walker podobné GPS a počet viditelných družic (přímá viditelnost, zákryt Zemí, elevační maska) určuje stav určení polohy v každém kroku. Během dne je uživatel v určení polohy jen ~59 % času; kvantové hodiny drží časové řešení 5 ns přes každou mezeru (dostupnost 1.0), čipové hodiny jen ~0.83.
Časová chyba během dne s dostupností GNSS odvozenou z orbitální geometrie: počet viditelných družic (přímá viditelnost, zákryt Zemí, elevační maska) určuje stav určení polohy v každém kroku, takže hodiny musí překlenout každou mezeru – optické hodiny drží specifikaci 5 ns, zatímco čipové hodiny ji překročí. Vytvořeno Kshana z scenarios/orbit-gnss-challenged.toml.
Konstelaci lze zadat také jako skutečné dvouřádkové sady elementů (TLE). Úplné TLE (řádek 1 + řádek 2) se propaguje úplným modelem SGP4/SDP4 – včetně atmosférického odporu a hlubokovesmírných lunisolárních a 12 h / 24 h rezonančních členů, které u drah GNSS s ~12 h záleží – ověřeno proti oficiálním vektorům AIAA 2006-6753 na nejhůře ≈ 4 mm. scenarios/orbit-sgp4-gps.toml obsahuje skutečný snímek Celestrak gps-ops provozní konstelace GPS (2021-07-28, 30 družic) a vyžaduje platné kontrolní součty TLE – dvouřádkové sady elementů jsou otevřená data z katalogu US Space Force / 18th Space Defense Squadron, redistribuovaná Celestrakem (Dr T. S. Kelso, celestrak.org); obnovují se pomocí scripts/fetch_tles.sh. Blok jen s řádkem 2 zachovává analytickou dvoutělesovou propagaci (scenarios/orbit-real-tle.toml); obě formy lze v jedné konstelaci míchat. Konstelaci lze stejně tak sestavit z bloku záznamů vysílaných efemerid GPS RINEX-3 – formátu, který přijímač dekóduje – propagovaných uživatelským algoritmem IS-GPS-200 a vedených stejnou geometrií (scenarios/orbit-rinex.toml).
Co to je / není, v plném znění
Co to je / není#
Je to: deterministický engine s malými závislostmi, který pokrývá celý zásobník PNT – geometrii oběžných drah, inerciální navigaci, fúzi GNSS/INS, integritu, hodiny a časování. Spouští scénář (často výpadek GNSS), vyvíjí kalibrované modely chyb senzorů příslušným estimátorem a výsledek skóruje proti provozním ukazatelům kvality – vydává reprodukovatelný výsledek JSON (JavaScript Object Notation) a graf SVG, z knihovny v Rustu, rozhraní příkazového řádku (CLI), rozšíření pro Python, modulu WebAssembly v prohlížeči, serveru Model Context Protocol (MCP) pro agenty AI nebo pluginu pro JetBrains IDE (integrované vývojové prostředí).
Není to: letový hardware, návrh kvantového nákladu, úplný přijímač signálu GNSS, simulátor rádiofrekvenčních (RF) signálů ani zkušební stav hardware-in-the-loop, ani certifikovaný letecký produkt – a nenahrazuje MATLAB/Simulink, STK (Systems Tool Kit) ani Orekit; stojí vedle nich a vyměňuje si s nimi soubory. Věrnost kvantového hardwaru pochází z publikovaných modelů chyb, nikoli z tohoto nástroje. Podrobná zralost každé schopnosti je zdokumentována v docs/CAPABILITY.md.
Není to (zatím): úplný fyzikální engine atomové interferometrie (většina kvantových senzorů spotřebovává publikované koeficienty Allanova/šumového rozpočtu; akcelerometr CAI (atomový interferometr) má vrstvu z prvních principů – fáze Mach–Zehnder, projekční šum, pokles kontrastu a vazba vibrací, plus systematiky Coriolisovy síly a světelného posunu – ale systematiky vlnoplochy a řešení nejednoznačnosti proužků zůstávají vrstvou plánu vývoje P2 (fáze plánu 2, vrstva kvantové fyziky), viz ROADMAP.md a docs/QUANTUM-MODELS.md); certifikovaný nebo hardwarový přijímač GNSS (řeší jednobodové určení polohy PVT (poloha, rychlost a čas) ze skutečných kódových pozorování RINEX (Receiver Independent Exchange Format) – ověřeno na skutečných datech IGS (International GNSS Service) – a jeho vrstva IQ (kshana iq, od 0.31.0) softwarově zachycuje a sleduje zaznamenané nebo vygenerované vzorky v základním pásmu, jako analytický přijímač: neovládá rádiový hardware ani nevysílá, není certifikovaným přijímačem a neprovádí určování polohy z fáze nosné (RTK ani PPP)); nebo úplná sada pro návrh mise (má stavební bloky Lambert / porkchop / manévr / určování oběžné dráhy, ale je to vrstva simulace výkonu nad GMAT (General Mission Analysis Tool)/Orekit, nikoli náhrada). Přiznat si tento rozsah je záměrné. Pokud potřebujete rozpočty chyb atomového interferometru z prvních principů (např. třídy CARIOQA-PMP – Cold Atom Rubidium Interferometry in Orbit for Quantum Accelerometry, Pathfinder Mission Preparation – nebo validaci ve stylu X-37B), podívejte se na plán vývoje P2 a ozvěte se nám ohledně spolupráce.
Navigace na nízké oběžné dráze Země#
Družice na nízké oběžné dráze kolem Země (LEO) přelétají rychle a hlučně. Druh leo-pnt-chain sleduje jeden systém každou fází: signál, přelet a jeho spoj, navigační zprávu a fúzované určení polohy, rychlosti a času (PVT) a přesné určování polohy (PPP). Každá fáze předává svá čísla další. Viz docs/LEO-PNT.md.
Každý druh scénáře podle rodiny#
Druhy scénářů enginu, zařazené do rodin. Každá rodina má stránku s jedním záznamem na druh (popis a pole enginu, ukázkový příkaz, hlavní čísla z běhu, řádky verifikační matice, které jej uvádějí, a graf, který engine sám zapisuje) a přehledový list těchto grafů; docs/KINDS.md je všechny indexuje. Tabulku zapisuje tools/gen_readme_blocks.py a stránky tools/gen_kinds_index.py a oba selžou, pokud engine získá druh, který žádná rodina nepojmenovává.
| Rodina | Na co odpovídá | Druhy | Spustit jeden |
|---|---|---|---|
| Hodiny, časování a holdover | jak dlouho hodiny drží čas bez GNSS a jak si časovací systém vede proti svým maskám | clock, sweep, sweep-nd, telecom-timing, slot-timing, timetransfer, time-transfer-budget, holdover-test, quantum-time-transfer |
kshana scenarios/clock-holdover.toml |
| Inerciální senzory, fúze a kvantové senzory | dead reckoning a fúze senzorů při výpadku GNSS, s klasickými i kvantovými senzory | inertial, hybrid, fusion, hybrid-ukf, gnss-ins, ins-trn-coast, quantum-gnss-free-nav, quantum-anomaly-detect, quantum-trade |
kshana scenarios/gnss-ins.toml |
| Alternativní PNT při nedostupnosti GPS | navigace podle gravitace, terénu a dalších polí, když GNSS zmizí | gravity-map, terrain-nav, terrain-slam, combined-altpnt, conflict-resilience |
kshana scenarios/combined-altpnt.toml |
| Konstelace, pokrytí a geometrie | kde jsou družice, kdo je vidí a jak dobrá je geometrie, kolem Země, Měsíce nebo Marsu | orbit, ephemeris, constellation-design, solar-system, body-pnt, mars-pnt, passes |
kshana scenarios/orbit-gnss-challenged.toml |
| Měření GNSS, určování polohy a integrita | pseudovzdálenosti, určení polohy, ochranné úrovně a kosmické prostředí | integrity, gnss-sim, pvt, araim-reference-check, space-weather, realtime-frame-eop |
kshana scenarios/integrity-raim.toml |
| Rušení (jamming), spoofing a spektrum | jak interference dorazí k přijímači a zda je detekována | jamming, spoof, spoof-detect, tracking-loop, spectrum, impairment-eval |
kshana scenarios/jamming-demo.toml |
| Navigace na nízké oběžné dráze Země | přelet, spoj, navigační zpráva a fúzované určení polohy, fázi po fázi | leo-signal, leo-pass, leo-navmsg, leo-pvt, leo-ppp, ntn-positioning, leo-pnt-chain |
kshana scenarios/leo-pnt-end-to-end.toml |
| Lunární a cislunární | navigace, čas, soustavy a geodézie na Měsíci | 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 |
| Navigace uživatelů ve vesmíru | signály GNSS pro kosmické lodi nad, kolem a za drahami GNSS | gnss-ssv |
kshana scenarios/gnss-ssv-shell.toml |
| Optické PNT | optické spoje atmosférou a ukazatele kvality optika-plus-RF | optical-atmosphere, hybrid-optical-rf |
kshana scenarios/optical-atmosphere-network.toml |
| Analýza misí, spoje a vesmírné operace | start, výstup, návrat do atmosféry, orientace, spoje, plánování kontaktů a formáty souborů | 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 |
| Vlákna misí | rozpočet chyb navigace a času řetězce fází od startu po vstup do atmosféry | mission-thread |
kshana scenarios/mission-thread-artemis-class.toml |
| Kampaně | řetězené mise, přeběhy a soubory sestavené z ostatních druhů | campaign |
kshana scenarios/campaign-jam-spoof-holdover-integrity.toml |
Každý příkaz#
kshana <scenario.toml> spouští scénář; každý další příkaz je podpříkaz a kshana --help vypíše použití všech. Příkazy jsou --study, --validate, kinds, example, receiver-trust (s live a 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 a skyline. docs/COMMANDS.md uvádí účel každého z nich, ověřený příklad a jeho stránku v dokumentaci.
Každý povrch#
Jeden engine, tytéž výsledky všude: příkazová řádka, knihovna v Rustu, Python, JavaScript a WebAssembly, server MCP s pluginovými příkazy a dovednostmi, Kshana Studio (každá stránka běží v prohlížeči, bez instalace, nic se nenahrává), integrace ROS 2, Signal K, OpenCPN, GNSS-SDR a gnss_lib_py, nasazovací sady pro systemd, Docker a Grafanu a plugin pro JetBrains. docs/ALL-SURFACES.md je vyjmenovává i s tím, jak každou získat, a s názvy všech pluginových příkazů, dovedností a stránek Studia; docs/SURFACES.md uvádí u každého příkazu a druhu, která plocha jej nese a která ne, a proč.
Jak běh probíhá#
Scénář je soubor TOML (Tom's Obvious, Minimal Language): druh, seed a parametry. Engine jej spustí a vedle něj zapíše výsledek, graf a zprávu, spolu s exporty, o které požádáte.
Tento přibalený scénář trvá 2 h: 10 min GNSS, poté zhruba 1,8 h s odepřeným GNSS. Ptá se, jak dlouho optické mřížkové hodiny se stronciem a čipové atomové hodiny (CSAC) udrží čas s odchylkou do 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
Optické hodiny udrží rozpočet 20 ns po celý výpadek trvající 6600 s; CSAC jej udrží 2610 s a v rozpočtu je 95,6% běhu oproti 100% u optických hodin. kshana example vypíše všechny přibalené scénáře.
Mise#
Deset odvětví klade témuž enginu deset různých otázek. Každé má přibalené scénáře, od kterých lze začít.
| Odvětví | Začněte s |
|---|---|
| Obrana a bezpečnost | campaign-jam-spoof-holdover-integrity, spoof-meaconing |
| Kosmonautika, oběžná dráha Země | orbit-gnss-challenged, leo-pnt-end-to-end |
| Měsíc, Mars a hluboký vesmír | lunar-relay-constellation, mars-orbit-pnt |
| Letectví a drony | small-uas-jammed-nav, araim-gps-galileo |
| Námořní | maritime-strait-jamming, maritime-port-approach-coast |
| Silnice | automotive-urban-canyon |
| Železnice | rail-tunnel-coast |
| Kritická infrastruktura a časování | clock-holdover, clock-ensemble |
| Telekomunikace a 5G (pátá generace mobilních sítí) | telecom-prtc-holdover-24h, leo-vertical-5g-network-timing |
| Věda a výzkum | sweep-clock-stability, quantum-pnt-demonstrator.suite |
Otázka, kterou si každé odvětví klade
| Odvětví | Otázka, kterou klade | Začněte s |
|---|---|---|
| Obrana a bezpečnost | Jak dlouho zůstávají naše navigace a časování důvěryhodné při rušení (jamming) a podvrhování signálu (spoofing) a které vrstvy nás udrží ve specifikaci? | campaign-jam-spoof-holdover-integrity, spoof-meaconing |
| Kosmonautika: oběžná dráha Země | Vidí moje kosmická loď dost navigačních družic, jak dlouho její hodiny udrží čas mezi určeními polohy a co by přidala navigační vrstva na nízké oběžné dráze? | orbit-gnss-challenged, leo-pnt-end-to-end |
| Měsíc a hluboký vesmír | Získá přistávací modul, rover nebo orbiter u Měsíce, u Marsu či dál důvěryhodnou polohu a čas? | lunar-relay-constellation, mars-orbit-pnt |
| Letectví a drony | Jak dlouho zůstane můj bezpilotní letecký systém (UAS) v rámci rozpočtu polohy poté, co jammer odebere GNSS, a je na mé trase dostupná integrita? | small-uas-jammed-nav, araim-gps-galileo |
| Námořní | Jak daleko přes vodu jammer dosáhne, byl by zachycen posun polohy a jak dlouho může loď plout setrvačností do přístavu? | maritime-strait-jamming, maritime-spoof-position-push, maritime-port-approach-coast |
| Silnice a automobilový průmysl | O kolik se auto odchýlí pod nadjezdem nebo kolem jammeru u silnice? | automotive-urban-canyon |
| Železnice | Kolik sekund po vjezdu do tunelu ještě vlak pozná, na které koleji je? | rail-tunnel-coast |
| Kritická infrastruktura a časování | Pokud je čas GNSS ztracen nebo podvržen, jak dlouho udrží elektrická síť, obchodní místo nebo datové centrum dohledatelný čas? | clock-holdover, clock-ensemble |
| Telekomunikace a 5G | Pokud je ztracena časová reference GNSS, zůstanou hodiny mé sítě v rámci masek ITU-T a jak dlouho? | telecom-prtc-holdover-24h, leo-vertical-5g-network-timing |
| Věda a výzkum | Mohu výsledek PNT reprodukovat, rozšířit a citovat, až po seed? | sweep-clock-stability, quantum-pnt-demonstrator.suite |
Důkazy#
SGP4 ověřeno proti všem 666 referenčním vektorům AIAA 2006-6753, nejhorší chyba polohy 4,12 mm
176 z 401 schopností ověřeno proti nezávislým vnějším orákulům; 221 poctivě označeno jako modelované. Každý řádek verifikační matice uvádí schopnost, orákulum, proti němuž je ověřena, test, který kontrolu provádí, a označení, které z toho plyne. Kontinuální integrace (CI) znemožňuje označit schopnost jako VALIDATED bez nezávislého vnějšího orákula.
| Popisek | Řádky | Význam |
|---|---|---|
| VALIDATED | 176 | nezávislé vnější orákulum souhlasí: reálná data, nezávislá implementace nebo publikované referenční vektory |
| MODELLED | 221 | ověřeno proti analytické pravdě nebo vnitřní konzistenci simulace a řečeno otevřeně |
| PARTNER | 4 | odpovídá za to hardwarový partner; Kshana pro to žádné orákulum nemá |
Několik kontrol: všech 666 vektorů AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 SGP4 (Simplified General Perturbations 4) do 4,12 mm; silový model Cowell do 0,08 m proti Orekit 12,2; Galileo do 0,61 m a Swarm-A do 0,10 m proti skutečným přesným efemeridám Evropské kosmické agentury (ESA). Testy udržují přibližně 95 % pokrytí řádků v src/, s prahem 85 % v CI. Registrem je docs/VERIFICATION-MATRIX.md, generovaný z src/verification.rs: úplná matice o 401 řádcích a proč nemá žádný modelovaný řádek vnější orákulum, v docs/MODELLED-RATIONALE.md.
Jak funguje validace, vybraná tabulka nejdůležitějších bodů a obrázky důkazů
Validace, reprodukovatelnost a poctivost#
- Každý šumový člen je kalibrován podle publikované, citované hodnoty a ověřen proti standardnímu vztahu (Allanova odchylka u hodin; Grovesův růst chyby dead-reckoningu u inerciálních systémů; převod časování na měření vzdálenosti u přenosu času). Stav každého členu se vede v
docs/VALIDATION.mdjakovalidatednebonot modeled: nic není prezentováno jako ověřené, co ověřené není. - Reprodukovatelné již konstrukcí:
scenario + seed + engine version → identical bits.scripts/check-reproducible.shto vynucuje; kvantové a klasické běhy používají nezávislé seedy, takže jejich šum není korelovaný. - Zralost je uvedena poctivě: údaje o optických hodinách a optických spojích jsou výsledky typu cíle / pozemního demonstrátoru, nikoli letové.
Štítek důkazů u každého čísla#
Každé číslo a každá tabulka, které běh zapíše, říká, nakolik jim lze důvěřovat a na kterých řádcích registru stojí. Výsledné JSON má klíč evidence, graf SVG řádek pod grafem (a prvek <metadata id="kshana-evidence">) a tabulka CSV na začátku řádky komentářů # evidence: (čtěte s comment='#'). Uvádí úroveň, VALIDATED, MODELLED nebo PARTNER, a identifikátory (VM- a osm hexadecimálních číslic) řádků verifikační matice, které běh použil. Úroveň je nejslabší z těchto řádků, takže běh, který se opírá o jediný modelovaný řádek, je označen MODELLED bez ohledu na to, kolik ověřených řádků leží vedle něj; štítek tedy nikdy netvrdí víc než registr. Řádky, stavy a identifikátory se čtou z matice, nepíší se ručně (docs/VERIFICATION-MATRIX.md, docs/SCHEMA.md) a tests/evidence_labels_doc_sync.rs selže, pokud číslo nemá štítek nebo štítek s maticí nesouhlasí.
Validace v kostce#
Každý řádek vynucuje pojmenovaný test v CI. Tato tabulka je vybraný výběr; úplná strojově kontrolovaná matice má 401 řádků — 176 VALIDATED, 221 MODELLED, 4 PARTNER (src/verification.rs), s úplnými důkazy (a tím, co poctivě ještě není ověřeno) v docs/VALIDATION.md a v artefaktu kshana-validation-summary.html každého vydání (generovaném pomocí cargo run --bin validation_report, s atestací SLSA — Supply-chain Levels for Software Artifacts).
Sloupec Stav uvádí druh důkazu v souladu s výše uvedeným žebříčkem validace: VALIDATED = ověřeno proti nezávislému vnějšímu orákulu (reálná data, nezávislá knihovna nebo publikované referenční vektory); MODELLED = ověřeno proti analytické pravdě nebo vnitřní konzistenci simulace (bez nezávislé vnější datové sady). VALIDATED popisuje způsob kontroly, nikoli výsledek typu splněno/nesplněno: poctivé minutí proti skutečnému vnějšímu orákulu zůstává VALIDATED, zatímco srovnání, které žádný řádek matice neuvádí jako orákulum (výše uvedené proložení LRO — Lunar Reconnaissance Orbiter), je označeno MODELLED. Řádky CI jsou procesní pojistky, nikoli ukazatele kvality. Několik ostrůvků reálných dat (měřené cesiové hodiny, Stable32 PHASE.DAT a kontroly OPS-SAT/ICGEM, kde surové vstupy nemají licenci k redistribuci) je omezeno dostupností dat: test vypíše oznámení o přeskočení a zůstane zelený, pokud vstup chybí, a veřejná referenční čísla jsou uložena v tests/fixtures/. Surové vstupy získáte příslušným scripts/fetch_*.sh.
| Stav | Schopnost | Shoda | Reference / orákulum |
|---|---|---|---|
| VALIDATED | Propagace SGP4/SDP4 | 666/666 vektorů, nejhorší 4,12 mm | AIAA 2006-6753 (Vallado tcppver.out) + přímé srovnání s nezávislým crate sgp4 |
| VALIDATED | Referenční soustavy: nutace IAU 2000A/B, řetězec CIO IAU 2006/2000A, ERA | bit po bitu (X, Y na 1e-14, s na 1e-18, ERA na 1e-12) | ERFA/SOFA eraXys06a · eraC2ixys · eraEra00 · eraNut00a/b |
| MODELLED | GCRS→ITRS oproti nezávislému enginu SPICE | max. 0.028″ → ≤ 0,86 m na zemi, ≤ 3,6 m na oběžné dráze GNSS | ANISE (čisté Rust NAIF/SPICE), tytéž IERS finals2000A EOP, 8 epoch 2020–2023 (porovnáno s touto referencí; žádný řádek verifikační matice ji neuvádí jako vnější orákulum, proto není označeno VALIDATED) |
| MODELLED | Geopotenciál EGM2008 (stupeň/řád 70) | zrychlení = ∇V s přesností < 1e-6; zonální zhroucení na ověřené J2 | Koeficienty NGA EGM2008 + analytická identita ∇V |
| VALIDATED | Syntéza gravitačních funkcionálů (gravitačně podporovaná navigační mapa bez GNSS) | GRS80 Somigliana + γ_e/γ_p s přesností 3.5e-12; skutečná mapa poruch EGM2008 fyzikálně věrohodná (RMS ≈ 26 mGal, st./řád 70) | Normální tíže GRS80 (Moritz 1980, IAG — International Association of Geodesy) podle Somiglianovy formule + skutečný ICGEM EGM2008 (tests/icgem_gravity_reference.rs) |
| VALIDATED | Odhadovače Allanovy odchylky (ADEV/MDEV/TDEV/HDEV) + pásma spolehlivosti | reprodukují referenční odchylky; pásma χ² souhlasí | NIST SP 1065 (Riley), tabulka 31/32 s 1000 body |
| VALIDATED | Odhadovače Allanovy odchylky na skutečně měřených cesiových hodinách | OADEV/OHDEV s přesností 1e-3 (pozorováno ≤ 3e-5), 16 faktorů průměrování | Stable32 na skutečném 5071A Cs vs. vodíkový maser, 556 990 bodů (tests/cs5071a_reference.rs, omezeno dostupností dat) |
| VALIDATED | Odhadovače Allanovy odchylky na kanonickém Stable32 PHASE.DAT | OADEV/MDEV/TDEV s přesností 1e-3 (pozorováno ≤ 5e-5), 139 faktorů průměrování | Referenční odchylky Stable32 pro PHASE.DAT (tests/phasedat_reference.rs, omezeno dostupností dat) |
| MODELLED | Chybový model IMU — ARW / VRW / nestabilita biasu | obnoveno s přesností < 5 % (nestabilita biasu < 15 %) | Datový list Analog Devices ADIS16465; referenční profil NaveGo |
| VALIDATED | Numerický propagátor Cowell + silový model (konzervativní úrovně) | nejhorší chyba polohy 0,08 m za 24 h, 278 epoch (LEO + GTO) | Orekit 12,2 NumericalPropagator/DormandPrince853 (CS GROUP), tests/numerical_cowell_propagator_reference.rs |
| MODELLED | Úroveň odporu v Cowellově modelu + absolutní vstupy efemerid Slunce/Měsíce a hustoty | úroveň odporu charakterizována ≈ 333 m / 24 h; neporušený model souhlasí s Keplerovou úlohou v univerzálních proměnných pod metr, energie/moment hybnosti ~1e-9 | vestavěné efemeridy s nízkou přesností + analytický Kepler |
| MODELLED | Lambert · Ciolkovskij · porkchop | zpětný průchod k pravdě dvou těles; ΔV < 0.01 % | Izzo 2015 · raketová rovnice · analytický práh Hohmann |
| MODELLED | Určování oběžné dráhy (dávkové Gauss–Newton) | pod metr / mm·s⁻¹ bez šumu; ~2 m při hladině šumu 5 m | dvě tělesa + J2 na oblouku RK4 |
| MODELLED | Proložení silového modelu proti přesným efemeridám Galileo (celý oblouk) | 0,61 m 3D RMS, 24 h, st./řád 70, pouze silový model | Finální dráha ESA/ESOC ESA0MGNFIN (E11), skutečné finals2000A EOP (porovnáno s touto referencí; žádný řádek verifikační matice ji neuvádí jako vnější orákulum, proto není označeno VALIDATED) |
| MODELLED | Proložení silového modelu proti přesným efemeridám Swarm-A (redukovaná dynamika) | 0,10 m 3D RMS (mez empirické úrovně, nikoli míra) | Přesná dráha ESA SW_OPER_SP3ACOM_2_ (porovnáno s touto referencí; žádný řádek verifikační matice ji neuvádí jako vnější orákulum, proto není označeno VALIDATED) |
| MODELLED | Proložení silového modelu proti lunárnímu LRO (poctivé minutí) | 6,67 m s redukovanou dynamikou, nad cílem 5 m | JPL Horizons LRO (NAIF −85) + GRAIL (Gravity Recovery and Interior Laboratory) GRGM660PRIM (porovnáno s touto referencí; žádný řádek verifikační matice ji neuvádí jako vnější orákulum, proto není označeno VALIDATED) |
| MODELLED | Určování dráhy v hlubokém vesmíru u Marsu (redukovaná dynamika, SRIF) | ≈ 0,2 m Mars-LMO (ukazatel kvality simulace, nikoli skutečné mise) | syntetické OD s uzavřenou smyčkou — validace mechanismu odhadovače |
| MODELLED | Dynamika Marsu se Sluncem ve středu vs. JPL DE440 | 137 m @ oblouk 1 den (roste s obloukem = nemodelované n-těleso) | JPL DE440 přes ANISE (xval/anise-mars-od, podmíněno jádry) (porovnáno s touto referencí; žádný řádek verifikační matice ji neuvádí jako vnější orákulum, proto není označeno VALIDATED) |
| VALIDATED | Určení polohy z jednoho bodu vs. zaměřená souřadnice IGS (skutečná pozorování) | 5,7 m 3D RMS / 1,1 m horizontálně, dvoufrekvenční kódové SPP bez ionosféry | Zaměření stanice IGS ABMF + broadcast efemeridy GPS, 2018-05-13 (tests/pvt_abmf.rs) |
| MODELLED | Těsně vázaný GNSS/INS UKF | 0,77 m RMS během 30minutového přeletu LEO včetně výpadku 120 s | setrvačný let podle silového modelu, odvozeno ručně |
| MODELLED | Navigace podle gravitační mapy bez GPS | ~70 km driftu INS → obnoveno ~145 m | Cíl ESA NAVISP Quantum Wayfarer |
| MODELLED | Navigace podle terénu (TERCOM/SITAN) | drift 70 km → < 500 m (mez daná rozlišením mřížky ~140 m) | SRTM .hgt DEM; ručně vnesený drift (nekruhová kontrola) |
| MODELLED | Hlavní pole IGRF-14 (stupeň/řád 13) | pól ~80,7° s. š., dipól ~29,7 µT, fyzikální pásmo 22–67 µT | IAGA (International Association of Geomagnetism and Aeronomy) igrf14coeffs.txt (Schmidtova semi-normalizace) |
| MODELLED | Modulace navigačního signálu a sledování kódu | BPSK vlastní SSC = 2/(3·R_c); PSD s jednotkovou plochou; jitter DLL pro C/A pod metr při 45 dB-Hz | Kotvy SSC/PSD v uzavřeném tvaru + vzorec tepelného šumu DLL podle Kaplana a Hegartyho |
| MODELLED | Diferenciální korektor halo/NRHO v CR3BP | STM = konečné diference; dráha se uzavírá s přesností stroje; L2 9:2 NRHO ≈ 6,57 d / perilunium ≈ 3 250 km | kontrola STM konečnými diferencemi + publikovaná jižní L2 9:2 NRHO (≈ 6,56 d / ≈ 3 370 km) — CR3BP, nikoli skutečné efemeridy Gateway |
| MODELLED | Integrita ARAIM se dvěma konstelacemi | režim poruchy celé konstelace na skutečných GPS + Galileo | EU ARAIM TR (technická zpráva) / DO-316; Celestrak gps-ops 2021-07-28 (porovnáno s touto referencí; žádný řádek verifikační matice ji neuvádí jako vnější orákulum, proto není označeno VALIDATED) |
| VALIDATED | Geometrie GNSS / DOP (GDOP/PDOP/HDOP/VDOP/TDOP) | shoda na 1e-6 relativně napříč 8 geometriemi (dobře podmíněné → téměř singulární) | gnss_lib_py 1.0.4 (Stanford NAV Lab) — nezávislá knihovna (tests/dop_reference.rs) |
| VALIDATED | Metriky vyhodnocení ML detektorů (AUC/ROC/matice záměn/Pd-Pmd/preciznost/F1) | přesné počty + < 1e-9 na 5 datových sadách × 24 prazích | scikit-learn 1.9.0 (Pedregosa et al., JMLR — Journal of Machine Learning Research — 2011) — nezávislá knihovna (tests/eval_metrics_reference.rs) |
| VALIDATED | ROC AUC detekce anomálií na skutečné telemetrii ESA OPS-SAT | AUC reprodukuje scikit-learn s přesností < 1e-9; AUC detektoru počtu vrcholů ≈ 0.85 na označené testovací části | scikit-learn roc_auc_score na testovací části OPSSAT-AD (Ruszczak et al. 2025, CC BY 4,0) — skutečná telemetrie OPS-SAT (tests/opssat_ad_reference.rs) |
| VALIDATED | Numerická jádra kvantového obchodu (proložení ADEV metodou NNLS · pásma konzistence χ² · Q hodin podle van Loana) | NNLS + Q přesně; χ² < 5e-4 při provozních stupních volnosti ≥ 48 | scipy 1.17.1 — optimize.nnls / stats.chi2.ppf / linalg.expm (tests/scipy_reference.rs) |
| VALIDATED | Telekomunikační metriky wanderu MTIE / MDEV / TDEV (ITU-T G.810/G.823/G.8261/G.811 — doporučení Telekomunikačního standardizačního sektoru Mezinárodní telekomunikační unie) | MTIE (9 faktorů průměrování, bit po bitu) a MDEV + TDEV (8 faktorů, < 1e-9 relativně) na řadě NIST SP 1065 LCG (lineární kongruenční generátor) | allantools 2024,06 mtie / mdev / tdev — nezávislá knihovna (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs) |
| VALIDATED | Metody obchodní studie MCDA — všechny čtyři rodiny rozhodování, devět externě ověřených agregátorů (WSM · WPM · WASPAS · MOORA · COPRAS · TOPSIS · VIKOR · PROMETHEE II · ELECTRE I) plus párové porovnávání priorit vah AHP | skóre / pořadí / matice konkordance reprodukovány s přesností < 1e-9 | pymcdm + pyDecision (nezávislé knihovny MCDA třetích stran) + Saaty RI (Random Index) / SciPy-LAPACK eig (tests/mcda_*_reference.rs) |
| VALIDATED | Obálka Dopplera na LEO z dráhy a nosné | Maximum Iridium v rozmezí 5 % od publikovaných ±36 kHz; Xona Pulsar X1 uvnitř publikovaných 32–34 kHz | Výsledky testů RNTF LEO PNT; Leclère, Marathe & Reid, arXiv:2509,19551 (tests/leo_doppler_reference.rs) |
| MODELLED | Konvergence PPP s doplněním o LEO | 7,4 → 4,8 / 3,2 / 2,7 / 2,3 min při 60 / 96 / 192 / 288 družicích LEO, monotónně; NEES filtru uvnitř pásma χ² | trend porovnán s Li et al., J. Geod. 93:749 (2019) (9,6 → 7,0 / 3,2 / 2,1 / 1,3 min); konstelace a šum nereprodukovány |
| MODELLED | Podmíněná ochranná úroveň časování (nezachycená časová chyba omezená holdoverem při spoofingu) | složení reprodukuje vícekrokovou kovarianční rekurzi clock_state; kalibrováno na skutečném zaznamenaném spoofingu |
Skaláry JammerTest 2024 (Zenodo 15911589) + uzavřené tvary van Loan / CUSUM (examples/tpl_jammertest) |
| MODELLED | Hodnocení odolnosti PNT + nestabilita rozhodnutí | 35 ručně odvozených testů orákula; bajtově deterministický artefakt studie (pevný seed) | Mapování DHS RPCF v2.0 + uzavřené tvary Dirichlet / Kendallovo τ / Hill-N2 — syntetické architektury, nikoli certifikace |
| MODELLED | Studie optimistické mezery způsobené RF poruchami (zákony škálování + prediktor leave-one-out) | významnost oproti permutační nulové hypotéze; bajtově deterministický artefakt (5 seedů) | syntetický korpus podložený parametry — metriky vyhodnocení jsou VALIDATED proti scikit-learn (výše); studie je MODELLED |
| CI | Reprodukovatelnost napříč platformami | bitově shodný vstup + tvarové golden soubory na 3 OS (operačních systémech) | Matice CI Linux / macOS / Windows, golden soubory SHA-256 |
| CI | Pokrytí testy | ~95 % řádků v src/ bez src/*_data.rs a src/main.rs, hranice ≥ 85 % |
cargo-tarpaulin (engine LLVM) |
Jak schopnost získá své označení — invariant vynucený v CI: žádné vnější orákulum ⇒ nemůže být ověřena · SVG
Nahoře: každý ověřený řádek je z konstrukce podložen vnější datovou sadou. Dole: SGP4 souhlasí s oficiální referencí v každém režimu (nejhorší 4,12 mm). SVG · SVG
176 ověřeno · 221 modelováno · 4 partnerské — SVG
Oblasti schopností#
Každá schopnost veřejné mapy podle oblasti s označením v registru (ledger). Tabulku oblastí zapisuje tools/gen_readme_blocks.py ze souboru web/capabilities.json, téhož, který čte mapa všeho ve Studiu.
Úplná tabulka, oblast po oblasti se všemi schopnostmi a jejich označením, je docs/CAPABILITY-DOMAINS.md.
Instalace#
Nástroj pro příkazovou řádku získáte jedním řádkem: cargo install kshana. Každý kanál dodává v0.40.0 ze stejného označeného commitu.
| Kanál | Instalace | Příručka |
|---|---|---|
| Vyzkoušet v prohlížeči | otevřete https://kshana.dev | Průvodce Studiem |
| Příkazový řádek (Rust) | cargo install kshana |
Použití příkazového řádku |
| Knihovna pro Rust | cargo add kshana |
Referenční příručka API na docs.rs |
| Python | pip install kshana |
Průvodce API pro Python |
| JavaScript a WebAssembly | npm install kshana |
Průvodce npm a WebAssembly |
| Asistent s AI (server MCP, cargo) | cargo install kshana-mcp |
Průvodce serverem MCP |
| Image Dockeru | docker run --rm -i ghcr.io/ashfordeou/kshana-mcp |
Průvodce serverem MCP: Docker |
| Cursor (jedno kliknutí) | Přidat do Cursoru (npx) · Přidat do Cursoru (Docker) · npx -y kshana-mcp@0.40.0 |
Všechny instalační úryvky MCP |
| VS Code (jedno kliknutí) | Nainstalovat ve VS Code (npx) · Nainstalovat ve VS Code (Docker) · npx -y kshana-mcp@0.40.0 |
Všechny instalační úryvky MCP |
| npx | npx -y kshana-mcp@0.40.0 |
Všechny instalační úryvky MCP |
| uvx / pipx | uvx kshana-mcp==0.40.0 |
Všechny instalační úryvky MCP |
| Homebrew | brew install ashfordeOU/tap/kshana-mcp |
Všechny instalační úryvky MCP |
| Scoop | scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket && scoop install kshana-mcp |
Všechny instalační úryvky MCP |
| winget | winget install AshfordeOU.KshanaMcp |
Všechny instalační úryvky MCP |
| Předkompilovaná binárka | stáhněte kshana-mcp-<target> z vydání a ověřte jej podle SHA256SUMS | Všechny instalační úryvky MCP |
| Oficiální registr MCP | hledejte io.github.ashfordeOU/kshana-mcp | Všechny instalační úryvky MCP |
| Vzdálený (streamable HTTP), provozovaný samostatně | kshana-mcp --http 127.0.0.1:8080 |
Průvodce vlastním provozem |
| Zásuvný modul JetBrains pro IDE | Settings → Plugins → Marketplace → hledejte „Kshana“ (ID pluginu dev.kshana.ide) | Průvodce zásuvným modulem |
| Zásuvný modul Signal K | npm install signalk-kshana-trust |
Průvodce zásuvným modulem Signal K |
| Zásuvný modul OpenCPN | stáhněte tarball pluginu z vydání | Odeslání do katalogu OpenCPN |
| Dashboard Grafana | importujte kshana-grafana-*.json z vydání | Zdroj dashboardu |
| Image referenčního sestavení | docker pull ghcr.io/ashfordeou/kshana-reference-build |
Námořní integrace |
Kshana na JetBrains Marketplace Sestavuje se s Rustem 1,88 nebo novějším, tedy rust-version v Cargo.toml
MCP je Model Context Protocol. Vydání připnete pomocí cargo install kshana --version 0.40.0, pip install kshana==0.40.0 nebo npm install kshana@0.40.0. Sestavení ze zdrojů viz Instalace a sestavení v části Reference.
Spuštění scénáře z Pythonu a 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
Kromě run modul zpřístupňuje run_full (JSON, SVG a jednořádkové shrnutí najednou), run_typed, validate_toml, list_kinds / scenario_kinds a error_kind; viz docs/PYTHON_API.md.
Balíček npm je celý engine zkompilovaný do WebAssembly. V Node.js předejte binární soubor funkci initSync; v prohlížeči jej stáhne await init() (viz 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#
Uprostřed stojí jeden otevřený engine a každá plocha jej spouští: příkazová řádka, knihovna v Rustu, Python, WebAssembly a Kshana Studio, server MCP, obraz Dockeru a plugin pro JetBrains. Tentýž soubor scénáře dává na každé z nich tytéž bajty. Kshana Pro stojí nad tím jako samostatná nadstavba, která na enginu závisí a nikdy jej nevětví.
Uvnitř enginu: doménové vrstvy a verifikační registr (ledger)
Jeden engine, mnoho vstupních bodů. Jediné jádro v Rustu (kshana) spouští každý scénář a je dostupné přes CLI, rozšíření pro Python, modul WebAssembly v prohlížeči, server MCP pro agenty AI a plugin pro IDE JetBrains — vše směřuje do jednoho rozdělovače api::run_toml. Uvnitř se balíčky senzorů připojují ke společnému rozhraní chybových modelů; vedle nich stojí vrstva referenčních soustav (precese–nutace IAU 2006/2000A a redukce GCRS↔ITRS založená na CIO), astrodynamická/numerická vrstva (analytický SGP4/SDP4 i numerický propagátor Cowell s modelem sil EGM2008/poruch, návrhem manévrů a určováním oběžné dráhy), vrstva integrity/GNSS (RAIM/ARAIM, SBAS, měřicí doména, rušení, cislunární), vrstva fúze / alt-PNT (odhadovače GNSS/INS a mapové korelátory gravitace/terénu/magnetismu), vrstva hlubokého vesmíru a Měsíce (radiometrické PNT pro Mars a lunární sada PNT, s úrovní důkazů každé části v matici — čas LTC, VLBI, společné OD + hodiny, realizace soustavy, objem služby, diferenciální PNT, interoperabilita), vrstva analýzy misí (rozpočty startu / návratu / pokrytí / zaměřování / přeletu / spojů a prostředí kosmického počasí) a otevřená vrstva studií odolnosti a strojového učení (hodnocení odolnosti RPCF, optimistická mezera RF poruch a kvantově podporovaný demonstrátor PNT), jejíž reprodukovatelné artefakty stojí na ověřených jádrech.
Vedle jádra stojí dva samostatné crates vyňaté z workspace — mcp/kshana-mcp (server MCP, postavený na SDK rmcp edice 2024) a xval/anise-frames (křížová kontrola soustav ANISE/SPICE, která stahuje závislosti pod MPL-2.0 (Mozilla Public License 2,0)) — udržované mimo graf závislostí publikovaného crate, Cargo.lock, licenční bránu a sestavení MSRV (minimum supported Rust version, nejnižší podporovaná verze Rustu) seznamem exclude v kořenovém Cargo.toml. Plugin pro JetBrains (ide/jetbrains) je samostatný projekt v Kotlinu. Úplnou sadu diagramů viz docs/ARCHITECTURE.md.
Vykreslené diagramy (tok enginu, mapa modulů, distribuce) jsou v docs/ARCHITECTURE.md.
Diagramy#
Diagramy jsou zdroje Mermaid v docs/diagrams/, vykreslené do SVG a PNG v docs/assets/diagrams/ (tools/render-diagram-chromium.sh <name> v Linuxu, ostatní dva skripty render-diagram jinde) a záznam váže každé PNG k přesnému SVG, z něhož vzniklo. Testy hlídají počty, které uvádějí. Grafy v předchozích oddílech kreslí nástroje z běhů enginu; tyto ukazují, jak do sebe části zapadají.

Jeden rozdělovač, jeden engine, reprodukovatelný výstup · SVG · zdroj system-overview.mmd

Každá plocha ze stejného enginu · SVG · zdroj surfaces.mmd

Vnitřní smyčka běhu · SVG · zdroj engine-flow.mmd

Od záznamu přijímače ke skóre důvěryhodnosti a co je využívá · SVG · zdroj trust-flow.mmd

Od scénáře k podepsanému balíčku; Kshana nikdy nevytváří ani nepřehrává signál · SVG · zdroj lab-round-trip.mmd

Jak Studio běží, lokálně · SVG · zdroj studio-flow.mmd

Tok testů a vydání, od místních bran po ověřené vydání a cestu pouze pro web · SVG · zdroj release-flow.mmd · docs/RELEASING.md

Kde kód žije · SVG · zdroj module-map.mmd

Co se kam dodává a co to kontroluje · SVG · zdroj distribution.mmd
Asistent AI#
kshana-mcp je server MCP: váš asistent spouští skutečný engine a čte zpět jeho JSON, místo aby matematiku hádal. Každý z jeho 49 nástrojů je tenký obal veřejné funkce knihovny kshana, takže v serveru žádná simulační logika neleží.
Instalace serveru MCP#
Pouze poradní charakter, nikoli typově schválené navigační zařízení: za navigaci zůstává odpovědný provozovatel. Server běží na vašem počítači; Ashforde OÜ se nic neodesílá.
Pasáž uvádějící klienty AI třetích stran je zde vynechána; je v README.md na GitHubu.
| Kanál | Příkaz nebo tlačítko | Vyžaduje | Připnutá podoba |
|---|---|---|---|
| Cursor (jedno kliknutí) | npx (Node) · Docker | Node, nebo Docker | kshana-mcp@0.40.0 / ghcr.io/ashfordeou/kshana-mcp:0.40.0 |
| VS Code (jedno kliknutí) | npx (Node) · Docker · Insiders (npx) | Node, nebo 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+ s uv nebo 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 | formule pro v0.40.0 |
| Scoop | scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket a poté scoop install kshana-mcp |
Scoop (Windows) | manifest pro 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 |
| Předkompilovaná binárka | stránka vydání: kshana-mcp (Linux x86-64), kshana-mcp-<target>[.exe], ověřeno pomocí SHA256SUMS a gh attestation verify |
žádné | v0.40.0 |
| Registr MCP | io.github.ashfordeOU/kshana-mcp (nalezne ho klient podporující registr) |
klient podporující registr | 0.40.0 |
| Vzdáleně (streamable HTTP) | kshana-mcp --http 127.0.0.1:8080, vlastní hosting: viz docs/deploy/mcp-http.md |
váš vlastní hostitel | v0.40.0 |
kshana-mcp na Glama, skóre kvality jeho serveru MCP
Pasáž uvádějící klienty AI třetích stran je zde vynechána; je v README.md na GitHubu.
Nastavení pro jednotlivé klienty je v docs/integrations.md. Server je uveden v oficiálním registru MCP jako io.github.ashfordeOU/kshana-mcp.
49 nástrojů
Scénáře a zprávy
| Nástroj | Co dělá |
|---|---|
run_scenario |
Spustit scénář z definice TOML (Tom's Obvious, Minimal Language) |
list_scenario_kinds |
92 vestavěných druhů scénářů s popisy a povinnými/volitelnými poli — aby agent mohl sestavit platný scénář |
validate_scenario |
Předletová kontrola: zpracuje TOML a rozpozná jeho druh, bez spuštění |
list_example_scenarios |
Přibalené referenční scénáře jako JSON |
get_example_scenario |
Text TOML jednoho přibaleného referenčního scénáře, bajt po bajtu shodný se souborem v scenarios/ |
report_scenario |
Spustit scénář a vrátit jeho zprávu |
animate_scenario |
Spustit scénář a vrátit jeho časovou řadu jako animaci |
sky_geometry |
Geometrie oblohy pod horizontem závislým na azimutu: viditelné a skryté družice, DOP, kovariance východ-sever-nahoru a elipsa horizontální chyby; nebo předvolba horizontu s jejím původem |
Export a interoperabilita
| Nástroj | Co dělá |
|---|---|
list_export_formats |
Které formáty interoperability se na scénář vztahují (czml, kml, geojson, stk, sigmf), důvod, když se nevztahuje, a specifikace, kterou každý zapisovač dodržuje |
export_interop |
Exportovat scénář jako CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, efemeridy STK (Systems Tool Kit) .e nebo SigMF (Signal Metadata |
import_route |
Zapsat trasu GeoJSON LineString do scénáře, který létá po bodech trasy (terrain-nav, terrain-slam, gravity-map, combined-altpnt), a vrátit nový TOML |
export_sp3 |
Exportovat konstelaci scénáře orbit jako přesné efemeridy SP3-c (Standard Product 3, revize c) |
export_omm |
Exportovat prvky scénáře orbit jako katalog CCSDS (Consultative Committee for Space Data Systems) 502.0-B-2 OMM (Orbit Mean-elements Message) |
export_oem |
Exportovat řadu stavů scénáře orbit jako efemeridy CCSDS OEM (Orbit Ephemeris Message) 2,0 — polohu v TEME (true equator, mean equinox) i |
export_table_csv |
Spustit scénář a vrátit jeho tabulku reprodukovatelnosti jako CSV (comma-separated values) — bajtově stabilní tabulku, kterou CLI (command-line interface) zapisuje jako <scenario>.table.csv |
export_test_bench |
Pohyb vozidla a události scénáře pro laboratorní simulátor GNSS (kshana bench-export) |
Důvěra v přijímač a plavidlo
| Nástroj | Co dělá |
|---|---|
assess_receiver_log |
Posoudit důvěryhodnost záznamu skutečného přijímače GNSS (globálního družicového navigačního systému) |
assess_vessel_stream |
Vyhodnotit omezený výňatek NMEA 0183 (nejvýše 2 MiB a 20 000 epoch |
assess_vessel_log |
Záznam NMEA 0183 plavidla (nejvýše 4 MiB) jako dávkový běh, s TOML relace, který uvádí limity plavidla |
create_evidence_pack |
Podepsaný balíček důkazů pro okno záznamu plavidla (kshana receiver-trust evidence) |
attach_evidence_timestamp |
Navázat na balíček časové razítko podle RFC 3161 (base64 bajtů .tsr) v paměti (kshana evidence attach-timestamp) |
verify_evidence_pack |
Ověřit balíček (kshana evidence verify) |
generate_training_nmea |
Syntetické NMEA 0183 z můstku pro výcvik posádky z TOML nmea-scenario (rušení, odtažení polohy, podvržení času, zpoždění přehrání) se záznamem instruktora (kshana-nmea-training/1) |
build_interference_map |
Mapa interference GNSS z hlášení polohy ADS-B nebo AIS jako text CSV (nejvýše 4 MiB) |
route_exposure |
Podíl délky trasy v buňkách jedné či více map interference označených jako degradované, nedegradované, neposouzené a nepozorované, volitelně v rozmezí dat |
trust_telemetry |
Proud důvěryhodnosti (řádky JSON) nebo výsledek receiver-trust vykreslený jako text Prometheus, řádky syslogu CEF nebo LEEF nebo náklad OTLP JSON, s kodéry kshana trust-telemetry |
jammertest_import |
Načte zveřejněný katalog testů a plán vysílání Jammertest (NPRA/jammertest-plan, MIT) jako plánovanou pravdu (kshana jammertest import): sloty jedné testovací oblasti se stanou událostmi důvěryhodnosti přijímače s identifikátorem katalogu a rokem v každém popisku. Plánované sloty, nikoli zaznamenané časy vysílání; žádné kontaktní pole plánu se nečte. MODELLED. Viz docs/JAMMERTEST.md. |
jammertest_score |
Ohodnotí záznam přijímače vůči tomuto plánu (kshana jammertest score): po jednotlivých testech latenci detekce, nezachycené poplachy a dobu do zotavení a falešné poplachy mimo všechny sloty. Textové záznamy jako log, binární (ubx, sbf) jako log_base64. Podepsaný balíček vyžaduje klíč: příkazová řádka. Pouze poradní; MODELLED. |
fit_imu_log |
Parametry akcelerometru a gyroskopu scénářů hybrid a fusion odhadnuté ze záznamu stacionární IMU (CSV nebo EuRoC) pomocí Allanovy odchylky, s tabulkou [accel_classical] připravenou k vložení a s SHA-256 záznamu (kshana imu-fit). Text na vstupu, JSON na výstupu; MODELLED. |
IQ GNSS (soubory v pracovním adresáři; v režimu HTTP vypnuto)
| Nástroj | Co dělá |
|---|---|
iq_signals |
Nastavení vrstvy IQ GNSS |
iq_info |
Popsat jeden záznam IQ (in-phase and quadrature) v pracovním adresáři bez jeho zpracování |
iq_scene |
Vygenerovat vícedružicovou scénu IQ GNSS do pracovního adresáře (kshana iq scene) |
iq_acquire |
Akvizice pomocí FFT (fast Fourier transform) jednoho či více PRN (pseudo-random noise codes) nad záznamem (kshana iq acquire), volitelně za stupni vstupní části |
iq_track |
Akvizice, poté sledování bankou DLL/PLL/FLL (smyčky s uzamčením zpoždění, fáze a frekvence) (kshana iq track), se smyčkami z `kshana.loop-desig |
iq_frontend |
Použít DSP (digital signal processing |
iq_sweep |
Přehrát jeden záznam IQ v pracovním adresáři přes několik návrhů sledovacích smyček (kshana iq sweep) |
iq_monitor |
Spustit monitory detekce interference a spoofingu nad záznamem IQ v pracovním adresáři (kshana iq monitor) |
iq_labfit |
Proložit model ztráty uzamčení sledovací smyčky laboratorními běhy (kshana iq labfit) ze scénáře iq-labfit, jehož záznamy jsou vložené (text nebo base64 |
iq_test_conditions |
Ověřit soubor kshana.test-conditions/1 zadaný jako text a vrátit rozřešené podmínky s jejich hashem |
iq_campaign |
Spustit kampaň laboratorního přehrávání (kshana iq campaign) |
iq_campaign_status |
Průběh výstupní složky kampaně |
Mapování compliance
| Nástroj | Co dělá |
|---|---|
compliance_report |
Mapování veřejných rámců vyplněné z dokumentů výsledků zadaných jako text (kshana compliance-report) |
compliance_mapping |
Statické mapovací tabulky (nebo s sources zdrojové dokumenty, které citují, s verzemi a URL) jako Markdown, uvedené stejným prohlášením |
list_standards_packs |
Balíčky norem (kshana standards-pack list): hodnocené sady scénářů pro zkušební profily rámce DHS Resilient PNT, IMO MSC.1/Circ.1575 a ICAO Doc 9849 příloha F |
run_standards_pack |
Jeden balíček spuštěný proti prahům stanoveným před během: každý test MET, NOT MET nebo NEEDS INPUT; MODELLED, žádný produkt nehodnotí |
lunanet_afs_check |
LunaNet Augmented Forward Signal ověřený proti LNIS V5 AD1 Volume A (LSIS-AFS V1.0): kódy proti vytištěným tabulkám, nebo proud symbolů proti formátu rámce; LDPC a CRC-24Q podrámců 2 až 4 ověřeny nejsou |
create_round_trip_pack |
Podepsaný laboratorní okružní balíček: scénář, dokument kshana.test-conditions/1, záznam přijímače a skóre spojené hashi |
Benchmark
| Nástroj | Co dělá |
|---|---|
score_benchmark |
Podání kshana-bench ohodnocené proti souboru pravdy, obojí jako text JSON (kshana bench score, bench/SPEC.md): soubor výsledků s verzí specifikace, rozdělením, hashi vstupů a metrikami úlohy. MODELLED; popisuje záznam nebo korpus, nikdy produkt. |
render_leaderboard |
Soubory výsledků kshana-bench vykreslené jako statická stránka žebříčku (text HTML), každý předem ověřen. |
Edice#
Celý engine je zdarma. Kshana Pro a studie na míru jsou pro programy, které potřebují víc, a každá placená cesta začíná zprávou: nejsou zde žádné ceny.
| Zdarma | Kshana Pro | Studie na zakázku | |
|---|---|---|---|
| Co to je | celý otevřený engine, všech 92 druhů scénářů, bez omezení funkcí | proprietární nadstavba nad stejným enginem, na základě smlouvy | studie odolnosti PNT vašeho systému typu MODELLED, zpracovaná za vás |
| Licence | AGPL-3.0 (GNU Affero General Public License, verze 3) nebo komerční licence | proprietární | smlouva |
| Jak začít | nainstalujte nebo otevřete kshana.dev | požádejte o evaluaci Pro | požádejte o studii |
Co je Pro, slovy docs/PRO.md:
Striktní nadmnožina otevřeného Kshana. Pro závisí na otevřeném enginu jako na knihovně a nikdy jej nevětví. Každý otevřený druh scénáře běží v Pro beze změny a otevřený scénář běží v Pro bez jakékoli licence.
Žádná nová fyzika. Pro nepřidává žádný fyzikální model a žádný nemění. Každé číslo z Pro pochází z běhů otevřeného enginu, takže údaj z Pro je tak důvěryhodný, jako druh otevřeného scénáře, z něhož pochází, a nikdy důvěryhodnější.
Pro odpovídá na další otázky programu: který návrh létat (optimalizátor návrhu a jeho Paretova fronta), jak jistá je odpověď (nejistota a citlivost) a zda mise splňuje své požadavky (dossier mise, trasovatelnost požadavků, obchodní studie, kontrola regrese scénářů, digitální dvojčata hodin, dossier studie a služba v místní infrastruktuře). Také sleduje kampaň ukazatelů a shodí pipeline, když se některý zhorší, testuje kandidátní plány signálů proti otevřeným družicovým navigačním signálům v obou směrech (koexistence spektra) a řadí studie do fronty ve službě úloh v místní infrastruktuře s hashově řetězeným registrem (ledger) dodávek. Každá z těchto funkcí je popsána, včetně toho, co vytváří a co nedělá, v docs/PRO.md. Nic, co Pro vytvoří, není certifikace, a ani studie na míru není certifikace.
Co Kshana Pro čte z otevřeného enginu a podpora od Ashforde® OÜ
Na čem Kshana Pro stojí. Každá část Pro pracuje z otevřeného enginu a nechává jej beze změny:
- Optimalizátor návrhu, studie nejistoty a dossier mise spouštějí scénáře otevřeného enginu přes veřejné rozhraní enginu a každé číslo počítají z výsledků běhů. Každý výstup si ponechává úroveň VALIDATED, MODELLED nebo PARTNER, kterou otevřený engine dal každému údaji, nikdy vyšší.
- Digitální dvojčata hodin používají model hodin otevřeného enginu a jeho odhadovač Allanovy odchylky: dvojče se kalibruje podle publikovaného Allanova rozpočtu zařízení a poté se zkontroluje odhadem Allanovy odchylky dvojčete otevřeným odhadovačem.
- Obchodní studie spouštějí každou architektonickou variantu jako scénář otevřeného enginu, beze změny, a řadí varianty podle ukazatele kvality načteného z výsledku každého běhu.
- Sledování kampaně čte své ukazatele z výsledků běhů scénářů v balíčku na otevřeném enginu a porovnává je s předchozím úspěšným během.
- Koexistence spektra čte každé fyzikální číslo z běhů otevřeného enginu druhů
leo-signalaconstellation-designa přidává jen součet přes družice v dohledu a řazení plánů. - Služba úloh v místní infrastruktuře spouští otevřené scénáře i scénáře Pro týmž enginem a každý výsledek ukládá tak, jak jej běh vrátil.
- Balíčky důkazů zaznamenávají pro každý běh hash scénáře, který otevřený engine vtiskne do výsledku, takže údaj v balíčku lze reprodukovat opětovným během jeho scénáře.
- Nástroje systémového inženýrství a programů. Nástroje Kshana Pro pro systémové inženýrství založené na modelech (MBSE) a programy kontrolují požadavky programu proti během otevřeného enginu: importují požadavky jako hodnoty oddělené čárkami (CSV) nebo jako zdokumentovanou podmnožinu Requirements Interchange Format (ReqIF) či textu Systems Modeling Language verze 2 (SysML v2), vyhodnocují každé přejímací kritérium s jeho jednotkou proti hodnotám, které běh zapsal, a vytvářejí matici křížových odkazů verifikace (VCRM), model SysML v2, zprávu o dopadu změn a offline balíček důkazů. Nic znovu nespouštějí ani nepřepočítávají a čtou jen to, co otevřený engine zveřejňuje:
result.jsonkaždého běhu (pole, která kritérium uvádí, jejich jednotky, otisk reprodukovatelnosti ve složení hash scénáře, seed, verze enginu a verze schématu a označení běhu a úrovně údajů), jehoreport.json(druh, záznam reprodukovatelnosti a označení schopností), soubor scénáře (jeho hash, druh, seed a parametry), schéma jednotek polí (jednotka, původ a úroveň důkazů každého pole) a verifikační matici (označení VALIDATED, MODELLED nebo PARTNER každé schopnosti).
Podpora a profesionální služby#
Kshana je zdarma a open source pod AGPL-3.0 a profesionálně vyvíjen a udržován společností Ashforde® OÜ (Estonsko). Otevřený engine je úplný a použitelný sám o sobě. Organizacím, které potřebují víc, Ashforde® OÜ nabízí:
- Komerční podpora a integrace — zabudování Kshana do vašeho řetězce nástrojů, scénáře na míru a prioritní opravy.
- Modely senzorů na míru — kalibrované pro váš hardware, včetně modelů odolnosti citlivých na export, udržovaných v soukromé nadstavbě.
- Kshana Pro — proprietární nástroje pro systémové inženýrství založené na modelech (MBSE) a programy, které kontrolují požadavky programu proti během otevřeného enginu a vytvářejí matici křížových odkazů verifikace (VCRM), model Systems Modeling Language verze 2 (SysML v2), zprávu o dopadu změn a offline balíček důkazů. Nic znovu nespouštějí a čtou jen zveřejněné výstupy enginu:
result.jsonareport.jsonkaždého běhu, soubor scénáře, schéma jednotek polí a označení verifikační matice (úplný seznam je v části Edice). - Nástroje Kshana Pro pro návrh, nejistotu a mise — Paretova fronta návrhového prostoru, nejistota a citlivost přes tisíce běhů a dossier mise jedním příkazem s verifikační maticí a PDF; viz
docs/PRO.md. - Sledování kampaně, koexistence spektra a služba úloh v Kshana Pro — pipeline, která selže, když se sledovaný ukazatel zhorší, plány signálů testované proti otevřeným družicovým navigačním signálům v obou směrech a fronta úloh v místní infrastruktuře s hashově řetězeným registrem (ledger) dodávek; viz
docs/PRO.md. - Školení a poradenství k analýze výkonu kvantového/klasického PNT.
Toto je model open-core: engine je a zůstane pod otevřenou licencí; udržitelný byznys tvoří odbornost, podpora a proprietární rozšíření — nikoli licenční poplatky. Kontakt contact@ashforde.org · ashforde.org.
Výzkum#
Studie postavené na otevřeném enginu jsou publikovány na arXiv. Každá uvádí příkaz enginu, který za ní stojí, takže její čísla lze znovu vygenerovat z potvrzeného příkladu scénáře nebo studie.
| Článek | Co ukazuje | Příkaz enginu |
|---|---|---|
| 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 |
Pokles skóre detektoru interference GNSS po změně podmínek lze předpovědět pouze ze statistik v rámci rozdělení, na otevřeném syntetickém zkušebním prostředí a poté na otevřených terénních záznamech. | 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 |
Časovací přijímač GNSS pod spoofingem nemá žádnou konečnou nepodmíněnou mez nezachycené časové chyby, proto článek uvádí podmíněnou, kalibrovanou na zaznamenaném podvržení vysílaném éterem z veřejné kampaně 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 |
Jediné souhrnné skóre odolnosti je stabilním základem rozhodnutí jen tam, kde jeden návrh dominuje; kde návrhy soutěží, může vítěze změnit už samotné převažení. | 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 |
Měření vzdálenosti uvnitř lunární konstelace ponechává absolutní polohu povrchové stanice nepozorovatelnou; zpoždění z interferometrie s velmi dlouhou základnou (VLBI) ze Země ji obnoví, když je konstelace řídká, a zpřesní, když je bohatá. | druh 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 |
Plánované konstelace o čtyřech až šesti družicích dávají na lunárním jižním pólu špatnou geometrii a několik povrchových měřicích majáků ji napraví mnohem levněji než další družice. | druh 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 |
Faktor DOP (zhoršení přesnosti) je pro cislunární sledování pouze podle vzdálenosti nedefinovaný, protože rychlost je v okamžiku jednoho snímku nepozorovatelná, a proto článek používá Gramián pozorovatelnosti na čtyřech rovinných vzdálených retrográdních drahách: měření pouze vzdálenosti má v okamžiku snímku hodnost 2 ze 4 a k plné pozorovatelnosti potřebuje oblouk dlouhý zhruba 2,09 h, přičemž podmíněnost se s délkou oblouku zlepšuje; měření rychlosti změny vzdálenosti (Doppler) dává hodnost 4 okamžitě; a společný odhad stanice se stavy družic a hodinami zůstává o jedničku hodnostně deficitní, pokud se nepřidá vnější interferometrická veličina. Požadavky patří do rozpočtů délky oblouku, podmíněnosti a typu měření, nikoli do DOP. | druh cislunar-observability: kshana scenarios/cislunar-observability.toml (jeho sourozenec cislunar-arc-recovery testuje práh nezávislým odhadovačem konečných diferencí) |
Tři příklady studií zapisují bajtově deterministické artefakty (pevné seedy), které zaznamenávají verzi enginu, seedy a hash konfigurace. Tři lunární a cislunární články stojí na lunární sadě (úroveň důkazů každé části je ve verifikační matici); jejich tvrzení o geometrii a zhoršení přesnosti jsou navíc křížově kontrolována proti samostatným orákulům v tests/validate_p*.rs. Více v části Reprodukovatelné artefakty studií v Referenci.
Citace#
Pokud používáte Kshana v akademické nebo technické práci, citujte prosím verzi, kterou jste použili, se scénářem a seedem. CITATION.cff obsahuje strojově čitelná metadata a GitHub z něj zobrazuje tlačítko „Cite this repository“. Každé vydání je archivováno na Zenodo; koncepční DOI (Digital Object Identifier) 10.5281/zenodo.20528627 vždy odkazuje na nejnovější verzi.
Baweja, C. (2026). Kshana — a PNT-resilience simulator with quantum-sensor performance models. Ashforde OÜ. https://doi.org/10.5281/zenodo.20528627
Výše uvedené články:
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
Licence#
Kshana má duální licenci: GNU AGPL-3.0-only (LICENSE), nebo komerční licenci od Ashforde® OÜ pro uzavřenou integraci, které AGPL nevyhovuje. LICENSING.md vysvětluje, která platí. Příspěvky jsou licencovány příchozí licencí AGPL a zároveň udělují Ashforde® OÜ právo zahrnout je do komerční edice; každý commit podepište pomocí git commit -s (viz CONTRIBUTING.md). „Kshana“ a její značky jsou ochranné známky Ashforde® OÜ: licence se vztahuje na kód, nikoli na název, proto forky prosím přejmenujte.
Reference#
Dlouhý materiál, sbalený. Každý dokument je uveden v Dokumentaci.
Instalace a sestavení ze zdrojů
Instalace a sestavení#
Vyžaduje toolchain Rustu (≥ 1,88, tedy rust-version v Cargo.toml; vyvíjeno na 1,93).
git clone https://github.com/ashfordeOU/kshana
cd kshana
cargo build --release
cargo test # all tests pass
Použití: příkazová řádka v plném rozsahu
Použití#
Spusťte libovolný scénář; CLI se řídí polem kind scénáře a vedle něj zapíše <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html a <scenario>.report.json — plus <scenario>.table.csv pro druhy, které publikují tabulku. Zpráva (stránka HyperText Markup Language (HTML) a dokument JSON se stejným obsahem) obsahuje shrnutí pro vedení, každý vstup s jeho jednotkou, výsledky a grafy, u kampaně tabulky průchodu, Monte Carlo nebo řetězců, časovou osu událostí, označení VALIDATED / MODELLED / PARTNER a zdroj každé schopnosti, kterou běh použil, co není modelováno a záznam reprodukovatelnosti (verze enginu, výtahy Secure Hash Algorithm 256-bit (SHA-256), seed, platforma a přesný příkaz). Z prohlížeče se vytiskne do čistého souboru PDF (Portable Document Format) na papír A4 nebo Letter; engine žádné PDF nezapisuje. Viz 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 vedle scénáře záznamy CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON (Request for Comments 7946), efemeridy Ansys STK (Systems Tool Kit) .e a SigMF (Signal Metadata Format) a --import-route <route.geojson> vkládá čáru GeoJSON do druhů, které létají po trase. Každý formát se ověřuje proti své publikované specifikaci a scénář, na který se formát nevztahuje, uvede proč: viz docs/INTEROP.md.
Další režimy CLI — kontrola scénáře (lint), vkládání skutečných dat o orientaci Země nebo spuštění celé sady:
# 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
Export animace. --animate svg|html|frames|all zapisuje <scenario>.animation.svg (klíčové snímky Cascading Style Sheets (CSS), bez skriptu), <scenario>.animation.html (přehrát, pozastavit, posouvat, rychlost a synchronizované panely, bez vnějších prostředků) a <scenario>.frames/ (frame_0000.svg, … plus manifest.json s počtem snímků za sekundu a trváním). Kampaň přehraje své fáze a poplachy, běh spektra svůj vodopád; téma se řídí prefers-color-scheme a prefers-reduced-motion zobrazí hotový obraz. Vykresluje vlastní vzorky běhu, při opakovaném běhu bajtově shodné, a nepřidává žádné důkazy. Viz docs/ANIMATION.md.
Manifest sady je malý soubor TOML (Tom's Obvious, Minimal Language) — title a pole scenarios = [ … ] cest ke scénářům — který engine spouští postupně a všechny výsledky (s jejich označeními MODELLED / VALIDATED) skládá do jednoho samopopisného artefaktu studie. Viz scenarios/quantum-pnt-demonstrator.suite.toml.
Role v interoperabilitě. Kshana je vrstva simulace výkonu, která stojí vedle toolchainu pro následné zpracování, nikoli jako jeho náhrada: jeho výstup RINEX předejte RTKLIB nebo gLAB pro řešení polohy a jeho výstup SP3 použijte jako produkt přesné dráhy pro nástroje jako Ginan — Kshana odpovídá na otázku, jakou odolnost daná architektura PNT přinese, dříve než máte skutečné signály, a to ve formátech, které tyto nástroje už přijímají (--export-sp3 nebo export_sp3 = true ve scénáři orbit zapíše <scenario>.sp3). Tatáž dráha může být publikována jako střední elementy CCSDS OMM ze standardizační linie (--export-omm nebo export_omm = true zapíše <scenario>.omm) — jedna zpráva OMM 502,0 KVN (keyword = value notation) na družici definovanou v TLE, nesoucí skutečné katalogové číslo NORAD (North American Aerospace Defense Command), mezinárodní označení COSPAR (Committee on Space Research) a epochu každého objektu, pro každého spotřebitele znalého OMM místo svérázného dvouřádkového souboru elementů.
Ukázkový výstup (holdover hodin — všimněte si, jak jsou uváděny ukazatele kvality Integrita a Bezpečnost):
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. percentil (p95) časové chyby optických hodin je 1.20e-4 ns: shrnutí vypisuje malé hodnoty se platnými číslicemi, místo aby je zaokrouhlovalo na 0.0. security ukazuje n/a (no attack), protože tento scénář nenastavuje žádný útok, takže není co detekovat. Výsledek JSON přesto nese u každých hodin analytickou mez detekovatelnosti spoofingu v fom.security (0,997 pro optické hodiny, 0,000 pro čipové atomové hodiny, jejichž vlastní šum v monitorovacím okně přesahuje specifikaci 20 ns) a jeho blok figure_tiers označuje tento údaj applicable: false. Druh scénáře spoof hodnotí detekci proti vnesenému útoku. figure_tiers také každému uvedenému údaji přiřazuje jeho verifikační úroveň — VALIDATED (ověřeno proti vnějšímu orákulu) nebo MODELLED — a řádek verifikační matice, z něhož se úroveň čte. Scénář orbit navíc uvádí blok geometrie — podíl vzorků s určením polohy a nejlepší/mediánový faktor DOP polohy (PDOP) a přesnost polohy — vedle výsledku hodin.
Tato dvě čísla čtěte pozorně.
securityje analytická mez detekovatelnosti spoofingu odvozená ze stability každých hodin — má smysl pouze vůči nakonfigurovanému scénáři spoofingu a není vícedružicovým detektorem RAIM.integrityje zde vnitřní konzistence filtru (podíl vzorků výpadku uvnitř jeho vlastní meze k-sigma), nikoli ukazatel integrity HPL/VPL pro letectví. Vizdocs/INTEGRITY.md.Pro skutečnou integritu autonomní v přijímači spouští druh scénáře
integrity(scenarios/integrity-raim.toml) skutečný snímkový RAIM a RAIM s oddělením řešení (ve stylu ARAIM) nad propagovanou geometrií konstelace: pro každou epochu počítá horizontální/vertikální ochranné úrovně (HPL/VPL) a uvádí podíl epoch, které splňují nakonfigurované meze poplachu, se Stanfordovým diagramem integrity pro klasifikaci chyba vs. PL (ochranná úroveň).
Reprodukovatelné artefakty studií
Čtyři otevřené studie z jediného příkazu znovu vygenerují bajtově deterministický artefakt (pevný seed) — čísla za studiemi křížení kvantového a klasického přístupu, optimistické mezery RF poruch, hodnocení odolnosti PNT a ochranné úrovně časování:
# 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ždý artefakt zaznamenává verzi enginu, seedy a hash konfigurace a nese poctivé označení MODELLED/VALIDATED. Sondy na skutečných datech (*_probe) spouštějí tentýž řetězec nad záznamy, které dodáte lokálně; v repozitáři se žádné datové sady nedodávají. Studie optimistické mezery RF poruch je popsána v preprintu arXiv:2606,22054 a podmíněná ochranná úroveň časování (tpl_jammertest výše) v preprintu arXiv:2606,24210 (viz Citace).
Publikované studie lunárního PNT (arXiv:2607,06212 DOP povrchových majáků, arXiv:2607,02566 pozorovatelnost VLBI a arXiv:2610,23871 pozorovatelnost cislunární délky oblouku) mají svá tvrzení o geometrii, zhoršení přesnosti, předpovědi soustavy / parametrů orientace Země (EOP) v reálném čase, vzdálených retrográdních drahách a měření vzdálenosti RF nezávisle křížově zkontrolována v tests/validate_p*.rs proti samostatným orákulům (scipy.special.j1, nezávislé řešení DOP v NumPy (HᵀH)⁻¹, nové zpracování týchž řádků IERS finals2000A v NumPy a Three-Body Periodic Orbit Database NASA/JPL). Jde o dodatečné regresní kontroly nad z modelu vypočtenou lunární sadou; nemění strojově kontrolovaný počet v matici.
Formát scénáře
Formát scénáře#
Scénáře jsou deklarativní TOML. Pole kind na nejvyšší úrovni vybírá balíček — celkem padesát (clock je výchozí, pokud chybí): 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 (zkušební prostředí pro vyhodnocení detekce RF poruch strojovým učením — označený syntetický korpus + harness ROC/AUC nezávislý na detektoru + optimistická mezera uvnitř/vně rozdělení), quantum-trade (srovnání kvantového a klasického PNT s načtením měřené ADEV + obálka odolnosti bez GNSS; MODELLED), space-weather (sluneční/geomagnetické indexy + exosférická teplota Jacchia-71 + termosférická hustota řízená aktivitou nad statickou atmosférou; MODELLED), oem-interop (most pro import/zpětný průchod CCSDS OEM pro efemeridy GMAT/Orekit/STK; MODELLED), trojice analýzy misí launch-window (dvoutělesový azimut startu / změna roviny / příležitosti), reentry (balistický koridor návratu podle Allena-Eggerse), eo-coverage (geometrie šířky záběru EO / GSD / přístupu / revisitu), space-packet (rámcování Space Packet CCSDS 133,0 TM/TC — telemetrie/telekomandy — přesné bitové rozvržení, ověřený zpětný průchod) a attitude-budget (3-DOF gravitačně-gradientní moment + rozpočet chyby zaměření RSS), passes (předpověď přeletů nad pozemní stanicí, východ/západ — AOS/TCA/LOS, maximální elevace, přístup) a link-budget (jednosměrná rovnice spoje CCSDS/DSN — FSPL / Eb·N₀ / rezerva / uzavření); telecom-timing (časová chyba holdoveru, MTIE a TDEV zkontrolované proti maskám ITU-T); spectrum (celé pásmo L GNSS jako jedna spektrální hustota výkonu: vodopád frekvence a času pod skriptovanou časovou osou rušiče s nepřetržitou vlnou, úzkopásmového, čirpového nebo shodného šumu, poměr rušiče k signálu po pásmech a efektivní hustota nosné k šumu ze součinitele spektrální separace a vstup a výstup záznamu Signal Metadata Format (SigMF) s Welchovými spektrálními odhady; signálová spektra VALIDATED proti učebnicovým hodnotám, scénář rušiče MODELLED; viz docs/SPECTRUM.md; týž druh kreslí panely pásem UHF, S a C s navrženými signály na nízké oběžné dráze Země); leo-signal (návrhy signálů určování polohy, navigace a času na nízké oběžné dráze Země pro libovolný systém: pásmově omezená spektra, jitter sledování kódu a přesnost měření vzdálenosti, akvizice a doba hledání, spektrální separace vůči GPS a Galileo, odolnost vůči rušiči a srovnání pásem UHF až C, z veřejných předvoleb jako Xona Pulsar, Iridium, Starlink a CentiSpace nebo z vložených návrhů; uzavřené tvary a Doppler LEO VALIDATED, návrhy MODELLED; viz docs/LEO-SIGNAL.md); solar-system (Slunce, planety, Pluto, Měsíc a sedm velkých měsíců v jedné epoše — polohy, konstanty, světelné doby a dráhy; polohy planet VALIDATED proti JPL Horizons) a body-pnt (určování polohy kolem kteréhokoli z těchto těles s místní navigační konstelací a spojem z hlubokého vesmíru od Země; MODELLED); campaign (existující druhy složené do řetězené časové osy mise se stavem předávaným mezi fázemi, průchodu parametrů, seedovaného souboru Monte Carlo nebo několika scénářů za jedné sdílené podmínky; MODELLED, viz docs/CAMPAIGNS.md); constellation-design (vzory Walker delta a star, seznamy elementů a vícevrstvé návrhy s předvolbami GPS, Galileo, BeiDou a GLONASS a pokrytí a zhoršení přesnosti nad mřížkou zeměpisné šířky/délky; generátor a globální DOP GPS VALIDATED proti publikovaným servisním dokumentům, viz docs/CONSTELLATION-DESIGN.md); leo-pass (přelet družice určování polohy, navigace a času (PNT) na nízké oběžné dráze Země (LEO) a její rozpočet spoje pásmo po pásmu, z libovolné konstelace a libovolného návrhu signálu: úhly pohledu, Doppler a rychlost jeho změny, ztráty ITU-R deštěm, plyny, scintilací a průnikem do budov, hustota nosné k šumu vůči družicím GNSS na MEO v dohledu, ionosféra prvního řádu a dvojice bez ionosféry, rozpočet určení polohy s nízkou energií, sondování ionosféry z každé dvojice pásem a monitory spoofingu podle konzistence Dopplera a geometrie přeletu a podle konzistence mezi pásmy; členy ITU-R a obálka Dopplera pro statického uživatele VALIDATED, přelet MODELLED, viz docs/LEO-PASS.md); leo-navmsg (vysílaná zpráva efemerid a hodin družice PNT na nízké oběžné dráze Země (LEO), pro libovolnou dráhu a nosnou: prokládač z integrované pravdivé dráhy do keplerovské sady Galileo, tato sada s polynomy oprav v podélném, příčném a radiálním směru, 22parametrový model Liu et al. 2025 nebo polynom ECEF ATOMIC s nulovými hodinami; chyba rozsahu signálu ve vesmíru (SISRE) vs. interval proložení a perioda aktualizace, kontrola návaznosti aktualizace uprostřed přeletu, vlastní zdokumentovaný binární rámec Kshana s cyklickým redundančním kontrolním součtem CRC-24Q a rozpočet kvantizace a blok ve stylu RINEX-4 označený jako rozšíření Kshana; váhy SISRE, uživatelský algoritmus Galileo a CRC-24Q VALIDATED, proložení MODELLED; volitelné předvolby pro Xona Pulsar, Iridium, Starlink, CentiSpace, reprezentativní systém v pásmu C, ATOMIC a Celeste IOD; viz docs/LEO-NAVMSG.md); trojice fúzovaného PNT MEO + LEO leo-pvt (Dopplerovo určování polohy z rychlosti změny vzdálenosti družic na nízké oběžné dráze Země (LEO), společná určení polohy z pseudovzdáleností GNSS + LEO s mezisystémovými biasy a DOP vůči počtu družic LEO, polární a arktické pokrytí a přenos času LEO do UTC — přes libovolnou konstelaci, s volitelnými předvolbami, jako jsou signály příležitosti Xona Pulsar, Iridium a Starlink; obálka Dopplera LEO VALIDATED proti publikovaným údajům Iridium a Xona), leo-ppp (konvergence přesného určení polohy samotného bodu jen s GNSS a s doplněním o LEO, porovnáno s Li et al. 2019) a ntn-positioning (určování polohy v 5G neterestrických sítích z Cramérovy–Raovy meze šířky pásma signálu), MODELLED kromě této obálky, viz docs/LEO-PNT-FUSION.md; leo-pnt-chain (jeden systém LEO-PNT od začátku do konce: návrh leo-signal nesený pásmem leo-pass, C/N0 přeletu a chyba rozsahu signálu ve vesmíru navigační zprávy předané fúzovanému určení leo-pvt a konvergenci leo-ppp, každé předání uvedeno; MODELLED, viz docs/LEO-PNT.md, který je zároveň přehledem každého druhu a scénáře LEO-PNT, včetně kampaní odolnosti, jednoho scénáře na každou zaměřenou oblast experimentu a jednoho na každou koncovou vertikálu); sada lunárního PNT lunar-vlbi, lunar-joint-od-clock, lunar-frame-realisation, moonlight-service-volume, lunar-differential-pnt, lunar-interop-export; demonstrátor kvantově podporovaného PNT quantum-time-transfer, quantum-gnss-free-nav, quantum-anomaly-detect; a výzkumné druhy zabezpečení signálu, cislunární a vrstvené odolnosti lunar-attack-surface, realtime-frame-eop, lunar-time-budget, hybrid-optical-rf, cislunar-observability, conflict-resilience — trojice analýzy misí i tyto pozdější druhy jsou všechny MODELLED (každý s ověřeným jádrem v uzavřeném tvaru; viz matice). Společná pole: seed, mřížka [time], časová osa dostupnosti [gnss] (řídicí výpadek) a bloky jednotlivých senzorů s řetězci provenance citujícími zdroj každého údaje. Příklad (hodiny):
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
Volitelná pole (bez nich vypnuto): hodiny mohou přidat flicker_floor (práh Allanovy odchylky 1/f FM — frekvenční modulace); inerciální senzor může přidat gyro_bias a q_arw (bias gyroskopu a úhlová náhodná procházka) a bias_instability a q_aa (práh nestability biasu podle Allana a náhodná procházka zrychlení) — dohromady jednoosý (1-DOF) rozpočet chyby akcelerometru (VRW/ARW — rychlostní/úhlová náhodná procházka — a nestabilita biasu). To je rozpočet chyb, který spouští dodávaná sada scénářů inertial. Zvlášť knihovna nově nese ověřený 3osý strapdown navigátor (src/inertial/{attitude,mechanization,imu_errors}.rs): kvaternionovou orientaci s kompenzací coning/sculling, plnou mechanizaci NED (členy rychlosti Země a transportní rychlosti, tíže WGS-84 podle Somiglianovy formule) a deterministický chybový model IMU, ve kterém jsou modelovány činitel měřítka, nesouosost, g-citlivost, kvantizace a rychlostní rampa (IEEE Std 952-1997, norma IEEE pro specifikaci a zkušební postup gyroskopů, §A.2; Groves 2013 §4,3). Tato 3osá cesta je nyní zapojena do spustitelné volně vázané sady GNSS/INS (kind = "gnss-ins"): 15stavový chybový EKF disciplinuje strapdown řešení vůči zašuměným určením polohy, dokud GNSS funguje, a poté setrvačně pokračuje výpadkem a uvádí fúzovanou horizontální chybu proti volné setrvačné extrapolaci INS s otevřenou smyčkou. K dispozici je také těsně vázaná aktualizace pseudovzdáleností (tvoří inovaci v oblasti vzdáleností, takže opravuje i při méně než čtyřech družicích). Scénář holdoveru hodin může přidat runs (> 1) pro spuštění souboru Monte Carlo — každý ukazatel kvality se pak uvádí jako střední hodnota s rozptylem 5.–95. percentilu a graf zastíní pásmo spolehlivosti chyby (viz scenarios/clock-ensemble.toml).
Scénář fusion (stejné bloky jako hybrid) spouští dva nezávislé Kalmanovy odhadovače — jeden pro stav hodin, jeden pro stav polohy — disciplinované GNSS a podporované optickým přenosem času a uvádí kombinovaný ukazatel kvality holdoveru. Oba bloky nesdílejí žádnou kovarianci: jde o naskládanou dvojici chybových rozpočtů, nikoli o skutečný spřažený společný filtr hodiny + poloha (kovariance mezi bloky je položka plánu). Viz scenarios/fusion-pnt.toml.
Scénář spoof vnáší časový spoofing — jeden ze čtyř druhů [attack.shape] (linear_ramp, step_jump, meaconing, replay; holé rate_ns_per_s se stále přijímá jako lineární rampa) — a spouští detektor spoofingu každých hodin. Detektor je oboustranný test energie χ²₁ / Neyman–Pearson nad monitorovací statistikou podporovanou hodinami: práh se určuje z cílového rozpočtu falešného poplachu target_pfa a pravděpodobnost nezachycené události P_md se uvádí jak v uzavřeném tvaru, tak metodou Monte Carlo (mc_runs pokusů na hypotézu — obě se shodují na několik ×1/√N). Ukazatel kvality Bezpečnost je 1 − P_md při provozně škodlivé (specifikační) velikosti, takže tichý hodinový zdroj, který zachytí spoofing o velikosti specifikace, získá ≈ 1 a hlučný, který jej často mine, méně (viz scenarios/spoof-attack.toml, scenarios/spoof-meaconing.toml).
Scénář gnss-sim je simulace v měřicí doméně: pro každou viditelnou družici syntetizuje pseudovzdálenost ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath a Doppler na L1, s jednofrekvenční ionosférou Klobuchar ([iono], IS-GPS-200 §20.3.3.5.2.5) a zenitovou troposférou Saastamoinen promítnutou mapovací funkcí Niell (1996) ([tropo]). Rezidua napájejí snímkový RAIM pro HPL/VPL po epochách a pseudovzdálenost, Doppler, C/N₀ a korekce iono/tropo každé družice se vysílají v poli JSON gnss_measurements. Je to dopředný simulátor (vytváří měření ze známé pravdy), nikoli přijímač/řešitel — běh s nulovým šumem reprodukuje geometrii plus korekce na úrovni pod milimetr (viz scenarios/gnss-sim-raim.toml).
Scénář jamming modeluje RF interferenci jako rozpočet spoje: [jammer] (poloha ECEF, vysílací power_dbw, typ) zvyšuje poměr rušiče k signálu u [receiver], který sleduje Walkerovu [constellation]. Z geometrie (ztráta šířením ve volném prostoru a zisk přijímací antény v každém směru) počítá J/S každé družice, efektivní C/N₀ podle standardní rovnice odolnosti proti rušení (zisk zpracování rozprostřením × činitel spektrální separace Q; Kaplan & Hegarty §9,4) a hlásí ztrátu uzamčení pod nastavitelným prahem sledování — a uvádí ukazatel kvality availability_under_jamming. Širokopásmový jammer o výkonu 10 W ve vzdálenosti 1 km přijímač zcela vyřadí (J/S ≈ 72 dB); tentýž jammer ve vzdálenosti 100 km spoje jen zhorší (viz scenarios/jamming-demo.toml).
Scénář sweep spouští obchodní studii: mění jeden parameter (threshold_ns, duration_s, quantum_q_wf nebo classical_q_wf) od start do stop v steps bodech na škále lin nebo log (scale), zaznamenává metric (např. holdover_s) pro oba hodinové zdroje a vykresluje obě křivky. Základní scénář patří pod [base] (viz scenarios/sweep-clock-stability.toml).
Scénář sweep-nd to zobecňuje na libovolný balíček a libovolný počet os: mění tečkované klíče TOML scénáře [base] (libovolného kind) přes kartézský součin [[axes]], znovu spouští každý uzel mřížky a zaznamenává metrics zadané jako tečkované cesty JSON do výsledku (např. classical.fom.holdover_s). Funguje pro každý balíček, protože pracuje na rozhraní TOML/výsledek; nativní běhy vyhodnocují mřížku paralelně (bez další závislosti, wasm se vrací k sekvenčnímu režimu) a výstup je deterministický a řazený po řádcích (viz scenarios/sweep-nd-inertial.toml).
Scénář orbit odvozuje časovou osu [gnss] z geometrie, místo aby ji zadával — uveďte oběžnou dráhu [user], [constellation], elevační mask_deg a dva bloky hodin. Z geometrie družic také uvádí přesnost polohy; volitelné sigma_uere_m (1-sigma ekvivalentní chyba vzdálenosti uživatele, výchozí 1 m) převádí faktor DOP polohy na sigma polohy. Dráha uživatele může být excentrická pomocí eccentricity a argp_deg a j2 = true přidává sekulární drift způsobený zploštěním Země (viz scenarios/orbit-molniya.toml). Konstelace může být místo toho skutečná: dejte [constellation] blok tle s dvouřádkovými sadami elementů a družice se z něj zpracují (viz scenarios/orbit-real-tle.toml). Přidejte jeden či více bloků [[constellations]] pro multi-GNSS (např. GPS + Galileo; viz 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
Druhy alt-PNT bez GPS navigují zcela bez GNSS a porovnávají naměřenou polní posloupnost s mapou přes časticový filtr. Scénář gravity-map letí po trati sférickým harmonickým polem gravitačních anomálií a obnovuje ji z údaje gravimetru se studenými atomy (scenarios/gps-denied-gravity-nav.toml); scénář terrain-nav totéž dělá proti výškovému modelu SRTM (TERCOM/SITAN, scenarios/terrain-nav.toml); a scénář combined-altpnt slučuje gravitaci + magnetické pole IGRF + terén v jednom filtru (scenarios/combined-altpnt.toml).
Scénář lunar-integrity hodnotí cislunární PNT: spouští přelet s ochrannou úrovní ARAIM na lunárním jižním pólu proti sadě relé LunaNet/LNIS a poctivě uvádí mezeru v integritě — lunární σ_URE ~30 m žene ochrannou úroveň hluboko nad mez poplachu 50 m, takže služba je podle pravidel integrity ve stylu letectví nedostupná (scenarios/lunanet-araim.toml).
Scénář lunar-time-offset uvádí relativistickou rychlost chodu hodin Země–Měsíc — základ časové škály Lunar Coordinate Time (LTC/TCL). Identita post-newtonovského řádu z prvních principů sčítá rozdíl vlastních potenciálů (potenciál geoidu IAU L_G mínus vlastní potenciál povrchu Měsíce) a kinetický člen Měsíce (Dopplerův člen druhého řádu) na sekulární rychlost ≈ 57 µs/den, uváděnou spolu s publikovaným pásmem 56–59 µs/den; dává také nahromaděný posun LTC−TT za horizont a soubor s inverzním rozptylem (lunární papírové hodiny). MODELLED — hlavní údaj závisí na referenci (geoid Země vs. selenoid Měsíce, okno průměrování), a proto se uvádí pásmo, nikoli jediné certifikované číslo (scenarios/lunar-time-offset.toml).
V scenarios/ najdete alespoň jeden vzorový příklad každého druhu (92 druhů, 193 souborů scénářů .toml + 1 manifest sady — některé druhy mají více než jeden příklad). Ne každý druh má soubor pojmenovaný podle sebe: lunar-integrity → scenarios/lunanet-araim.toml a gravity-map → scenarios/gps-denied-gravity-nav.toml jsou dva z několika takových případů. Dispečovatelné druhy lze kdykoli vypsat pomocí chyb cargo run -- --validate <file>, Pythonu list_kinds() nebo nástroje MCP list_scenario_kinds.
Výstup
Výstup#
Artefakt výsledku je verzovaný, samopopisný JSON: časové řady po krocích, hodnocené ukazatele kvality, aktivní specifikace modelů (s původem), seed, hash scénáře — aby šel každý graf reprodukovat ze souboru — a pro každé hodiny adev_curve ([{tau_s, adev, n_samples, noise, edf, ci_lo, ci_hi}]): překrývající se Allanova odchylka napříč oktávově rozloženými dobami průměrování — standardní způsob čtení stability hodin — nyní s 95% pásmem spolehlivosti specifickým pro typ šumu v každém bodě (mocninný typ záznamu se určí ze sklonu modifikované Allanovy odchylky a interval χ² používá odpovídající efektivní stupně volnosti podle NIST SP 1065). Hřiště v prohlížeči jej vykreslí jako log-log graf „Stabilita hodin (ADEV)“. (MDEV, TDEV a HDEV jsou k dispozici jako odhadovače knihovny; exportovaná křivka výsledku je překrývající se ADEV.) Každé pole, s jednotkami a odkazem na zdroj, je zdokumentováno v docs/SCHEMA.md.
Každý graf je samopopisný. Hřiště v prohlížeči, export *.chart.svg z CLI i výsledková karta HTML (HyperText Markup Language) opatřují každý obrázek grafu patičkou ve tvaru Kshana v<version> · scenario <hash> · kshana.dev. scenario <hash> je prvních 12 hexadecimálních znaků hashe scénáře běhu — výtahu SHA-256 (256bitový Secure Hash Algorithm) z kanonické definice scénáře (seed, prahy, parametry modelů, okna GNSS, …); zprávy o integritě a lunární zprávy, které nenesou vlastní hash, se vracejí k SHA-256 zdroje scénáře. Je to tentýž otisk, který ukazuje jednořádkové shrnutí a JSON výsledku, takže uložený nebo vložený graf vždy nese svou verzi, přesný scénář, který jej vytvořil (pro reprodukci bit po bitu), a zdroj — změňte jakýkoli vstup a hash se změní.
Ukazatele kvality sledují standardní provozní ukazatele kvality PNT:
| Ukazatel kvality | Jak jej Kshana počítá |
|---|---|
| Časový výkon (balíčky hodin/oběžných drah) | RMS chyby fáze hodin + 95. percentil za dobu výpadku v nanosekundách (timing_rms_ns) — časová metrika, nikoli poloha |
| Polohový výkon (balíčky inerciální/hybridní) | 1-DOF RMS chyby polohy + 95. percentil za dobu výpadku v metrech (pos_rms_m); jednoosé. Jediný běh je označen monte_carlo: false; nastavte runs = N pro soubor Monte Carlo, který uvádí u každé metriky střední hodnotu, rozptyl a bootstrapový 95% CI (interval spolehlivosti). Stále není 2D CEP/2DRMS (kruhová pravděpodobná chyba / dvojnásobek odmocniny ze střední kvadratické vzdálenosti) ani přesnost vážená DOP (ty vyžadují 3osý model — plán) |
| Autonomie | doba holdoveru — čas ve specifikaci po ztrátě GNSS (kvantováno mřížkou: dolní mez) |
| Odolnost | sklon růstu chyby během výpadku |
| Dostupnost | podíl běhu s řešením ve specifikaci |
| Integrita | vnitřní konzistence filtru — podíl vzorků výpadku, jejichž chyba zůstává uvnitř vlastní meze k-sigma Kalmanova filtru. Není ukazatelem integrity HPL/VPL/RAIM pro letectví (viz docs/INTEGRITY.md) |
| Zabezpečení | analytická mez detekovatelnosti spoofingu ze stability hodin — jak malý/pomalý časový spoofing by mohl označit monitor konzistence jedněch hodin. Má smysl pouze s nakonfigurovaným útokem; není vícedružicovým detektorem RAIM |
Jsou vám tyto pojmy nové? Každý je vysvětlen prostým jazykem ve slovníčku.
Struktura repozitáře
Struktura repozitáře#
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 (často kladené otázky)
FAQ#
Musím rozumět kvantové fyzice, abych to mohl používat? Ne. Pokud umíte spustit příkaz v příkazové řádce, umíte spustit Kshana. Začněte populárním úvodem; pojmy hledejte ve slovníčku.
Je to návrh kvantového hardwaru, nebo letový software? Ne. Je to simulátor výkonu. Věrnost kvantového hardwaru pochází z publikovaných chybových modelů, nikoli z tohoto nástroje. Viz Co to je / není.
Jsou kvantové výsledky realistické, nebo marketing? Každý parametr je citován z datového listu nebo článku, každý model je ověřen proti učebnicovému vztahu a zralost je poctivě označena v VALIDATION.md — včetně toho, že žádné optické hodiny se stronciem dosud nelétaly. Engine je neutrální: kvantový a klasický přístup jsou týž kód s různými publikovanými čísly.
Mohu se spolehnout, že se dva běhy shodnou? Ano — běhy jsou deterministické: scenario + seed + engine version → bit-identical output, vynuceno scripts/check-reproducible.sh.
Mohu to používat z Pythonu nebo v prohlížeči? Ano — viz Instalace: příklady pro Python a WebAssembly jsou pod ní. Oba volají tentýž engine.
Jak namodeluji vlastní senzor? Napište scénář .toml s publikovanými údaji svého senzoru v polích provenance. Viz Formát scénáře a příklady v scenarios/.
Je to zdarma pro komerční použití? Ano — pod AGPL-3.0, včetně komerčního prostředí, pokud dodržujete copyleft licence AGPL (zejména: pokud Kshana upravíte a nabízíte jej přes síť, musíte těmto uživatelům nabídnout svůj upravený zdroj). Pokud vám to nevyhovuje — např. potřebujete Kshana zabudovat do proprietárního produktu nebo provozovat uzavřenou síťovou službu — je u Ashforde® OÜ k dispozici komerční licence; viz LICENSING.md a Podpora.
Řešení problémů
Řešení problémů#
cargo build selže na starém toolchainu. Kshana potřebuje Rust ≥ 1,88. Aktualizujte pomocí rustup update.
Sestavení rozšíření pro Python se na macOS nepodaří slinkovat (Undefined symbols … _Py…). Rozšíření pro Python řeší své symboly při načtení. maturin nastaví správný příznak linkeru automaticky — použijte maturin develop --features python místo holého cargo build.
Sestavení pro Python si stěžuje, že interpret je novější, než PyO3 zná. Nastavte PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 (kola abi3 jsou dopředně kompatibilní napříč verzemi CPythonu).
Sestavení WebAssembly nenajde cíl. Nainstalujte jej jednou pomocí rustup target add wasm32-unknown-unknown a poté wasm-pack build --target web -- --features wasm.
Kam se poděl můj výstup? Každý běh zapíše <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html a <scenario>.report.json vedle vstupního .toml a u druhů, které publikují tabulku, také <scenario>.table.csv. Všechny jsou záměrně ignorovány gitem.
Verzování a vydání
Verzování a vydání#
Kshana se řídí sémantickým verzováním. Před verzí 1.0 se může veřejné schéma scénáře/výsledku ještě měnit; zásadní změny jsou výslovně uvedeny v CHANGELOG.md. Každý výsledek je reprodukovatelný z scenario + seed + engine version.
Každý tag vX.Y.Z publikuje všechny kanály automaticky, v jednom pořadí — nejprve se na označeném commitu spustí úplná testovací sada, dokud neprojde, nic se nepublikuje, a poté pipeline zkontroluje, že každý registr skutečně servíruje novou verzi (docs/RELEASING.md). Kanály:
| Kanál | Instalace / získání | Obsah |
|---|---|---|
| crates.io | cargo install kshana · kshana = "0.35" |
Knihovna v Rustu + CLI |
| crates.io | cargo install kshana-mcp |
server MCP |
| PyPI (Python Package Index) | pip install kshana |
kola abi3 (Linux/macOS/Windows) + sdist (zdrojová distribuce) |
| npm | npm install kshana |
modul WebAssembly + obal JS |
| ghcr.io | docker run -i ghcr.io/ashfordeou/kshana-mcp |
víceplatformní obraz OCI (Open Container Initiative) — není třeba toolchain |
| npm | npx -y kshana-mcp@0.40.0 |
spouštěč: stáhne binárku vydání, ověří SHA256SUMS a spustí ji |
| PyPI | uvx kshana-mcp==0.40.0 · pipx run kshana-mcp==0.40.0 |
týž spouštěč pro Python |
| Homebrew · Scoop · winget | brew install ashfordeOU/tap/kshana-mcp · scoop install kshana-mcp · winget install AshfordeOU.KshanaMcp |
binárka kshana-mcp, generovaná z SHA256SUMS každého vydání |
| oficiální registr MCP | automaticky nalezeno klienty MCP | io.github.ashfordeOU/kshana-mcp (obraz OCI, balíčky npm a PyPI) |
| JetBrains Marketplace | IDE → Plugins → hledejte „Kshana“ | plugin pro IDE Kshana — PNT simulator |
| Zenodo | DOI | citovatelný archiv každého vydání |
| kshana.dev | otevřít v prohlížeči | Kshana Studio, aplikace WebAssembly v prohlížeči, znovu sestavená z každého tagu vydání (takže verze, kterou ukazuje, je verze, kterou spouští) |
Verze crate / obrazu / registru serveru MCP sleduje engine (zahrnuje knihovnu); plugin pro JetBrains je verzován nezávisle (volá nainstalovanou binárku kshana přes shell).
Plán
Plán#
Viz ROADMAP.md pro fázový plán, CHANGELOG.md pro historii vydání a docs/CAPABILITY.md pro plán po jednotlivých schopnostech. Pořadí priorit je: nejprve důkazy o časování a holdoveru pro kritickou infrastrukturu (telekomunikační masky, delší holdover se stárnutím a flicker šumem, načítání měřených dat hodin); na druhém místě neutrální metoda srovnání kvantového a klasického přístupu (výsledky označené MODELLED, dokud je nepovýší měřená data partnera); a lunární / cislunární navigace a navigace v hlubokém vesmíru je udržována, nikoli rozšiřována jako hlavní směr. Přesná redukce soustav ITRF je nyní dodána — úplný řetězec GCRS↔ITRS IAU 2006/2000A založený na CIO (pohyb pólu + nutace pod obloukovou vteřinu), ověřený bit po bitu proti SOFA/ERFA a nezávisle křížově zkontrolovaný proti ANISE (čisté Rust SPICE) na ≤ 3,6 m na oběžné dráze GNSS. Mezi blízké položky patří těsně vázaná fúze fáze nosné a zpřístupnění volně/těsně vázaného navigátoru GNSS/INS ve více balíčcích; engine radiometrické navigace v hlubokém vesmíru / u Marsu přistál ve verzi v0.17.0 (ověřeno simulací). Kvantová fyzikální vrstva je položka P2: akcelerometr CAI je nyní simulován z prvních principů (fáze Mach–Zehnder, projekční šum, pokles kontrastu, vazba vibrací), zatímco senzory hodin/přenosu času stále řídí publikované koeficienty Allanova/šumového rozpočtu. TEME↔ECEF založené na GMST, časové soustavy IERS s přestupnými sekundami (UTC/TAI/TT/UT1), propagace oběžných drah SGP4/SDP4 (v0.7.0, ověřeno proti vektorům AIAA 2006-6753) a spustitelný balíček fúze gnss-ins byly všechny dodány a inerciální rychlost je zpřístupněna dále. Na main přistály aktivní stochastický detektor časového spoofingu (test energie Neyman–Pearson / χ²₁ s Monte-Carlo P_fa/P_md a ukazatelem kvality Bezpečnost 1−P_md), model rušení rozpočtem spoje (J/S → efektivní C/N₀ → ztráta uzamčení), dostupnost více konstelací, jednoosý (1-DOF) chybový rozpočet IMU, dva nezávislé Kalmanovy odhadovače (hodiny + poloha) uváděné jako kombinovaný ukazatel kvality, skutečná geometrie konstelace z TLE, zpráva ve formě výsledkové karty HTML, dostupnost GNSS odvozená z geometrie i faktor DOP z keplerovských drah s excentricitou a driftem J2, pásma spolehlivosti Monte Carlo, průchody parametrů v obchodních studiích, hřiště WebAssembly v prohlížeči a volitelné vazby pro Python (PyO3) a WebAssembly (wasm-bindgen).
Přispívání
Přispívání#
Viz CONTRIBUTING.md. Ve zkratce: testy projdou (cargo test), projdou oba ochranné skripty, Conventional Commits a záznam [Unreleased] v CHANGELOG.md pro každou změnu viditelnou uživateli. Účast se řídí naším Kodexem chování. Bezpečnostní problém nahlásíte podle Bezpečnostní politiky — u zranitelností prosím neotevírejte veřejný issue.
Dokumentace: každý dokument a pro koho je
Dokumentace#
| Dokument | Pro koho | Co obsahuje |
|---|---|---|
| Přehled konceptů | pro všechny, začněte zde | co Kshana dělá a proč, od nuly po fyziku |
| Kshana Studio | pro všechny | spusťte engine v prohlížeči (WebAssembly); poznámky k sestavení a nasazení |
| Slovník pojmů | pro všechny | definice všech pojmů prostým jazykem |
| Druhy scénářů | pro všechny | každý druh, který engine rozdělovačem spouští: co dělá, jeho pole, příklad příkazu, jeho řádky registru (ledger) a graf, který pro něj engine zapisuje |
| Data partnerů | laboratoře a výrobci, kteří mají naměřená data | které řádky MODELLED by mohl povýšit naměřený záznam hodin nebo IMU, formáty, jak se podání kontroluje (kshana partner check), hodnotí a připisuje |
| Architektura | vývojáři / recenzenti | mapa modulů, řetězec enginu, rozdělovač a diagramy |
| Stav validace | recenzenti / citující | co je validated vs. not modeled, s důkazy |
| Verifikační matice | recenzenti / citující | strojově kontrolovaný registr důkazů (ledger) — každý řádek schopnosti s jeho stavem, modulem, testem a vnějším orákulem, generovaný z src/verification.rs |
| Odůvodnění řádků vypočtených z modelu | recenzenti | proč nemá žádný z modelu vypočtený řádek vnější orákulum, uvedeno řádek po řádku |
| Původ | recenzenti / citující | každý parametr senzoru, model a datová sada vysledované k publikovanému zdroji, v jedné citovatelné tabulce |
| Reprodukovatelnost a původ | recenzenti / balíčkáři | záruky determinismu, pevné golden soubory, SBOM (software bill of materials), původ sestavení |
| Platformní tagy kol | balíčkáři | matice kol abi3 pro Python — na který platformní tag se pip install kshana rozřeší |
| Umístění | hodnotitelé | kde Kshana stojí vůči RTKLIB/gLAB (doplňuje je) a úroveň bez instalace v prohlížeči |
| Kshana Pro | hodnotitelé / vedoucí programů | co proprietární nadstavba Pro přidává nad týž engine: optimalizátor návrhu, nejistota a citlivost, dossier mise, sledování kampaně, koexistence spektra, služba úloh v místní infrastruktuře, trasovatelnost požadavků; co každá vytváří a co nedělá |
| Technická zpráva · Článek JOSS | recenzenti / citující / hodnotitelé | úplný rozšířený výzkumný článek — architektura, modely po doménách, validace, případové studie a omezení — plus stručné podání JOSS (Journal of Open Source Software) |
| Validace SGP4 | recenzenti / citující | shoda s referencí AIAA 2006-6753 (666 stavů, ~4 mm) a přímé srovnání s nezávislým crate sgp4 (shoda pod mikrometr / 4,12 mm) |
| Validace silového modelu | recenzenti / citující | engine s plným silovým modelem (src/precise_od.rs) proložený agenturními efemeridami — metodika a ověřená rezidua |
| Příručka ke skutečným TLE | uživatelé | řízení scénářů ze skutečných TLE konstelací Celestrak / Space-Track (oproti přibalené syntetické sadě Walker) |
| Ukazatel kvality Integrita | hodnotitelé | co znamenají ukazatele integrity / security — a čím nejsou oproti HPL/VPL pro letectví |
| Reference ARAIM | recenzenti / integrátoři | otevřená implementace ochranné úrovně ARAIM MHSS — projekce nominálního biasu b_k, σ_URA vs. σ_URE a apriorní pravděpodobnosti režimů poruch |
| Kvantové modely · podrobnosti | recenzenti | fyzikální vrstva studeného atomového interferometru a kde se koeficienty stále vyhledávají |
| Compliance | hodnotitelé | rozsah algoritmů DO-229E / DO-316 a co není tvrzením o shodě |
| Námořní důvěra | námořníci / integrátoři | skóre důvěryhodnosti GNSS 0–100 pro NMEA plavidla, jeho monitory a meze (poradní charakter, nikoli typově schválené navigační zařízení) |
| Tréninkové proudy NMEA | námořní instruktoři | syntetické NMEA z můstku se skriptovaným rušením a podvrhováním a záznamem instruktora; pouze text, nikdy pro živou navigaci |
| Mapa interference | analytici / námořníci | kde letadla a lodě hlásily zhoršená navigační data a kolik z trasy se jich dotýká |
| Balíčky důkazů | provozovatelé / pojišťovny | podepsané technické záznamy o události důvěryhodnosti a jak ji ověřit |
| Telemetrie důvěryhodnosti | provozní / bezpečnostní týmy | proud důvěryhodnosti jako metriky Prometheus, události SIEM a OpenTelemetry, s dashboardem Grafany |
| Námořní integrace | majitelé lodí / integrátoři | plugin Signal K, režim brány OpenCPN a referenční sestavení |
| Test bench | výrobci přijímačů | přehrání exportovaného scénáře přes laboratorní simulátor a vyhodnocení záznamu přijímače |
| Mapování compliance | hodnotitelé | veřejné rámce odolnosti namapované na výstupy Kshana, se zdroji a mezerami; kshana compliance-report |
| Notebooky | uživatelé | spustitelné tutoriály s jejich vykresleným textem |
| Normy a interoperabilita | integrátoři | výměnné formáty GNSS / letové dynamiky / agentur, které Kshana čte a zapisuje (RINEX, SP3, CCSDS OEM/OMM/TDM/Space-Packet, …) |
| Fúze LEO PNT | uživatelé / hodnotitelé | fúzované určování polohy, navigace a času MEO + LEO: Doppler, společná pseudovzdálenost, konvergence PPP, 5G NTN, polární pokrytí a přenos času LEO přes libovolnou konstelaci; volitelné předvolby a jejich veřejné zdroje |
| Kampaně | uživatelé / hodnotitelé | skládání scénářů: řetězené časové osy misí, průchody parametrů, soubory Monte Carlo a běhy za sdílené podmínky, s identitami skládání, které testy hlídají |
| Katalog scénářů | uživatelé / integrátoři | každý dostupný druh s jeho povinnými a volitelnými poli TOML — generováno z api::list_scenario_kinds() |
| Schéma výsledku | integrátoři | každé pole JSON výsledku, s jednotkami a odkazem na zdroj |
| API Pythonu | uživatelé Pythonu | vazební plocha PyO3 — volání enginu, typy scénáře/výsledku a příklady |
| Tvrzení vs. skutečnost | recenzenti | registr uzavření nadsazených tvrzení + pojistka v CI (tests/no_overclaims.rs), která jej udržuje vyřešený |
| Plán | pro všechny | fázový plán — co je dodáno a co následuje |
| Server MCP · Plugin pro JetBrains | agenti / uživatelé IDE | spouštějte Kshana z asistenta s umělou inteligencí nebo z IDE JetBrains |
| Příručka pro agenty · Plochy | agenti / integrátoři | který nástroj odpovídá na kterou otázku, co si ke každé odpovědi uchovat; kde je každá schopnost dostupná (CLI, Rust, Python, WASM, MCP, plugin, JetBrains, notebooky) a proč je buňka N/A |
| Seznam změn | pro všechny | historie vydání (Keep a Changelog + SemVer, sémantické verzování) |
| Přispívání | přispěvatelé | sestavení, pojistky, disciplína testů/citací, DCO (Developer Certificate of Origin) |
| Správa projektu | přispěvatelé / komunita | jak je Kshana řízen — kdo rozhoduje, jak, a hranice otevřeného/uzavřeného |
| Kodex chování | komunita | očekávané chování (Contributor Covenant) |
| Bezpečnostní politika | oznamovatelé | jak nahlásit zranitelnost; poznámka o dvojím užití |
Klíčové reference
Klíčové reference#
Validační orákula a normy — vnější autority, ke kterým jsou kontroly Kshana ukotveny:
- Vallado, Crawford, Hujsak & Kelso — Revisiting Spacetrack Report #3 (AIAA 2006-6753; testovací data): ověřovací sada SGP4/SDP4, s níž Kshana souhlasí na 4,12 mm, a dopracované příklady soustav, proti nimž se kontroluje řetězec TEME→ITRF.
- IAU SOFA / ERFA — rutiny pro referenční čas a soustavy, proti nimž jsou nutace IAU 2000A a redukce CIO GCRS↔ITRS ověřeny bit po bitu.
- Petit & Luzum (eds.) — IERS Conventions (2010), IERS TN (Technical Note) 36 (standardy pro orientaci Země, pohyb pólu a referenční soustavy).
- Riley — Handbook of Frequency Stability Analysis, NIST SP 1065 (vztahy pro Allanovu odchylku a referenční řada NBS14; NBS = bývalý americký Národní úřad pro standardy).
- Pedregosa et al. — scikit-learn: Machine Learning in Python, JMLR 12 (2011): referenční implementace ROC/AUC, matice záměn a precision/recall/F1, s nimiž se testovací prostředí pro hodnocení RF-impairment přesně shoduje (
tests/eval_metrics_reference.rs). - Virtanen et al. — SciPy 1,0, Nature Methods 17 (2020):
optimize.nnls,stats.chi2alinalg.expm— referenční rutiny, proti nimž jsou ověřeny NNLS fit naměřené ADEV v kvantové obchodní studii, pásma konzistence χ² a kovarianční matice procesního šumu hodin podle van Loana (tests/scipy_reference.rs). - Knowles, Kanhere, Neamati & Gao — gnss_lib_py, SoftwareX 27 (2024): používá se jednak jako otevřená předchozí práce (viz Srovnání a otevřená předchozí práce níže), jednak jako nezávislé orákulum DOP, s nímž se výpočet GDOP/PDOP/HDOP/VDOP/TDOP shoduje na 1e-6 (
tests/dop_reference.rs). - Montenbruck & Gill — Satellite Orbits: Models, Methods and Applications (Springer): silové modely, na nichž stojí fit silového modelu k přesným efemeridám agentur.
- 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 (rodiny drah halo/NRHO, které diferenciální korektor CR3BP reprodukuje).
Fyzika zařízení a metod — citované zdroje za modely senzorů:
- Origlia, Schiller, Bongs et al. — arXiv:1503,08457 (optické hodiny se stronciem v optické mřížce, cíl pro použití ve vesmíru).
- Oelker et al., Nature Photonics (2019) — doi:10.1038/s41566-019-0493-4 (laboratorní hodiny se Sr, 4,8×10⁻¹⁷).
- Templier et al., Science Advances (2022) — arXiv:2209,13209 (hybridní kvantová trojice akcelerometrů).
- Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation — tutoriál IEEE AESS (Aerospace and Electronic Systems Society) (repozitář University College London Discovery) (růst chyby při dead reckoningu).
- Giorgetta et al., Nature Photonics 7, 434 (2013) — arXiv:1211,4902; Deschênes et al., Phys. Rev. X 6, 021016 (2016) — APS (American Physical Society) (optický dvoucestný přenos času a frekvence; optická mezidružicová linka podle nich modeluje svůj rozpočet nereciprocity).
- Betz — Binary Offset Carrier Modulations for Radionavigation, NAVIGATION 48(4) (2001), doi:10.1002/j.2161-4296.2001.tb00247.x (modulace BOC a teorie spektrální separace, na nichž stojí
src/navsignal.rs). - Kaplan & Hegarty (eds.) — Understanding GPS/GNSS: Principles and Applications (3. vyd., Artech House, 2017): rovnice efektivního C/N₀ při potlačení rušení a tepelný šum jitteru kódového sledování early–late DLL, které používají modely navigačního signálu a rušení.
Srovnání a otevřená předchozí práce — nástroje a přehledy, vůči nimž je Kshana vymezena:
- Humphreys et al. — TEXBAT (Texas Spoofing Test Battery; ION — Institute of Navigation — GNSS 2012): parametry testovací baterie spoofingu, vůči nimž je vícevrstvý detektor charakterizován.
- González et al. — NaveGo (2017): otevřené, ověřené profily chyb inerciální navigace použité jako klasický základ.
- Iiyama, Casadesús Vila & Gao — LuPNT (ION GNSS+ 2023, Stanford NavLab): otevřený simulátor lunárního PNT.
- Knowles, Kanhere, Neamati & Gao — gnss_lib_py, SoftwareX 27 (2024), doi:10.1016/j.softx.2024.101811: otevřená analýza dat 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 et al. — Earth and Space Science 8(6) (2021), doi:10.1029/2020EA001454: reduced-dynamic OD pro GRAIL, empirická hranice zrychlení, kterou fit LRO reprodukuje.