Maskinoversættelse, ikke gennemgået af en modersmålstalende. Engelsk er referencen.

Kom i gangRedigér på GitHubKilde: README.md

Kshana: mærket, et kompastrådkors, der markerer det præcise øjeblik, ved siden af ordmærket kshanaKshana: mærket, et kompastrådkors, der markerer det præcise øjeblik, ved siden af ordmærket kshana

Kshana · क्षण · det præcise øjeblik
En open source-simulator til PNT-robusthed (positionering, navigation og tidssynkronisering).

Status for kontinuerlig integration på main Linjedækning nær 95 % af src/, målt i docs/COVERAGE.md og med en grænse på 85 % i kontinuerlig integration 176 af 401 funktioner VALIDATED mod en uafhængig ekstern reference, fra verifikationsmatricen Status for kvalitetsgrænsen i SonarQube Cloud Udgave v0.40.0 Licens: AGPL-3.0-only
DOI 10.5281/zenodo.20528627, Zenodos conceptpost for hver udgave En kommerciel licens fås fra Ashforde® OÜ, se Udgaver kshana på crates.io, den aktuelle udgivne version kshana på PyPI, den aktuelle udgivne version kshana på npm, den aktuelle udgivne version

Åbn Kshana Studio · Installation · Funktioner · Evidens · Forskning · Dokumentation · Citér

Øv det minut, hvor GNSS går i sort. Kshanas missionskonsol, tegnet ud fra en rigtig kørsel af motor v0.40.0: den sammenkædede kampagne campaign-jam-spoof-holdover-integrity (seed 20260928, 6 faser, 18 medlemskørsler over T+01:16:10) og de 102 satellitter i GPS, Galileo, BeiDou og GLONASS fra constellation-multi-gnss-coverage, hver tegnet på den cirkulære tolegemebane, der er genfundet fra motorens sporet på jorden, radier komprimeret til visning. Urets tidsfejl topper ved 62,7 ns mod et værn på 50 ns, bærebølge-til-støj-tætheden falder til -12.2 dB-Hz mod et gulv på 25 dB-Hz, og det lodrette beskyttelsesniveau når 135,4 m mod en alarmgrænse på 50 m.Øv det minut, hvor GNSS går i sort. Kshanas missionskonsol, tegnet ud fra en rigtig kørsel af motor v0.40.0: den sammenkædede kampagne campaign-jam-spoof-holdover-integrity (seed 20260928, 6 faser, 18 medlemskørsler over T+01:16:10) og de 102 satellitter i GPS, Galileo, BeiDou og GLONASS fra constellation-multi-gnss-coverage, hver tegnet på den cirkulære tolegemebane, der er genfundet fra motorens sporet på jorden, radier komprimeret til visning. Urets tidsfejl topper ved 62,7 ns mod et værn på 50 ns, bærebølge-til-støj-tætheden falder til -12.2 dB-Hz mod et gulv på 25 dB-Hz, og det lodrette beskyttelsesniveau når 135,4 m mod en alarmgrænse på 50 m.
Indhold

Øv det minut, hvor GNSS går i sort#

Kshana afspiller jamming, spoofing og urets holdover, når GNSS-signaler (Global Navigation Satellite System) svigter, og fortæller dig, hvor længe et system holder tid og position inden for sit budget, og hvilket ur eller hvilken sensor der giver mest margin. Det er én Rust-motor. Den kører i en terminal, en notebook, et IDE (integreret udviklingsmiljø), en AI-assistent (kunstig intelligens) eller i din browser.

Hver kørsel kan gengives bit for bit ud fra scenariet, seedet og motorversionen. Hver funktion bærer ét af tre mærker i et maskinkontrolleret register: VALIDATED (en uafhængig ekstern reference er enig), MODELLED (internt konsistent, og det siges åbent) eller PARTNER (en hardwarepartner ejer den).

Status: v0.40.0. Et valideret, gengiveligt simulationsgrundlag for PNT-robusthed. Tidssynkronisering og holdover kommer først, fordi det område er det bedst validerede. Kshana er et studie- og afvejningsinstrument: ikke radiofrekvenshardware (RF) til signalgenerering (den styrer ingen radio og udsender intet; dens output på signalniveau er IQ-sampelfiler i basisbånd til softwaremodtagere), ikke en hardware- eller certificeret GNSS-modtager (dens softwaremodtager er et analyseværktøj) og ikke et flyvningsprodukt. Ny på området? Start med den letforståelige introduktion og ordlisten.

Nyt i 0,40#

0,40 tilføjer et fejlbudget på missionsniveau, mærker hvert tal og hver tabel med dets evidensniveau, læser målte urlogs, kontrollerer indsendelser fra datapartnere, estimerer, hvor en interferenssender kan være, og taler sytten sprog ved siden af engelsk. Registeret er nu på 401 rækker: 176 VALIDATED, 221 MODELLED, 4 PARTNER. Ingen række blev opgraderet til VALIDATED, og hver miss nedenfor er fastholdt af en test.

  • Missionstråd. Typen mission-thread kæder faser sammen fra opsendelse til indflyvning (launch-ascent, leo-rendezvous, tli-and-cruise, entry og fire månetyper) med angivne overdragelsesregler, en margin mod angivne krav og det svageste led; et Artemis-eksempel i hele forløbet over 11 faser (jord- og månesegmenter), i alt 92 scenarietyper. Hvert tal er MODELLED. Den cislunare propagering mod den offentlige bane for Artemis I misser sin præregistrerede tærskel (45,3 km og 0,25 m/s mod 5 km og 0,05 m/s; årsagen er små manøvrer, modellen ikke indeholder), og månepropagatoren mod CAPSTONE-banen misser (136,8 km mod 25 km ved slutningen af ét omløb); sammenligningen med LRO er nået. Rækkerne forbliver MODELLED (Missionstråd, månesegment). I Studio læses tråden på /studio/mission-thread/.
  • Evidensetiketter. Hvert tal og hver tabel, en kørsel skriver, bærer det niveau og de registerrække-id'er, det hviler på, læst fra matricen.
  • Målte ure. Otte urlogformater læses (docs/CLOCK-LOG-FORMATS.md), og en tilpasset serie kan drive holdoveren. Mod præregistrerede tærskler misser tilpasningen F1(a) på fem af seks optagelser og F2 på én; begge forbliver MODELLED (Ændringslog).
  • Datapartnere. kshana partner check kontrollerer formatet på en indsendelse og scorer intet (docs/PARTNER-DATA.md).
  • Senderområde. kshana interference-map locate giver et område og en ellipse, aldrig et bart punkt, ud fra ADS-B- eller AIS-rapporter. Sammenlignet én gang med senderpladserne i Jammertest 2025 er resultatet NOT ASSESSABLE for begge kilder (for få planlagte sessioner i de åbne data), så rækken forbliver MODELLED (Interferenskort).
  • Benchmark. Gen-kampagnen 0,40 når A3, D3 (begge EXPLORATORY), R3 og R4; A2, D1 og R1 forbliver NOT MET (Bench).
  • Sprog. nl, pl, pt-BR, pt-PT, fi, sv, da, nb, cs, uk, ru, de, fr, es, et, ja og zh-Hans, som maskinoversættelser, ingen modersmålstalende har gennemgået; engelsk er referencen, og kørsler på andre sprog end engelsk tager omkring dobbelt så lang tid (docs/i18n.md).

Nyt i 0,39#

0,39 tilføjer ingen funktion og ændrer intet resultat; motorens output er 0,38-outputtet. Den retter én ting på kommandolinjen, opdaterer afhængigheder i værktøjet til krydsvalidering og angiver benchmarkens afgørelser i sin helhed.

  • Kommandolinje. kshana kinds | head (enhver lukket standardoutput) går ikke længere i panik: programmet afslutter stille med status 141, som andre værktøjer gør ved en lukket pipe. Andre skrivefejl rapporterer sig stadig selv.
  • Dependencies. memmap2 0.9.11 i de to ANISE-krydskontrollåse og pillow 13.0.0 og certifi 2026.10.19 i de fastlåste versioner i miljøet for den uafhængige reference, alt under xval/: intet, der leveres, ændrede sig.
  • kshana-bench, alle afgørelser. Mod de præregistrerede tærskler er tre NOT MET, hver fastholdt af en test: A2 (agc_k_sigma AUC 0,766 mod mindst 0,80), D1 (største hul 0,0301) og opgave (b) R1 (ført videre, ikke kørt igen). Ingen tærskel blev lempet (Bench).

Nyt i 0,38#

0,38 gør den neutrale dommer målbar: den bedømmer modtagerlogs mod en offentliggjort testplan, læser flere modtagere og sensorer, tester tidssynkroniseringssystemer og leverer en benchmark og et interferensobservatorium. Den forbliver vejledende: intet her er certificeret, intet resultat er en typegodkendelse, og intet sender. Hver række angiver, hvad registeret har for den (hvordan et mærke tjenes); en status nævner kun det, der blev kontrolleret, og registerrækken og den linkede side siger, hvad der ikke blev.

Nyt i 0,38 Hvad den gør, og hvorfor Registerstatus Læst
Scoring af jammertest kshana jammertest import læser NPRA's offentliggjorte testkatalog og transmissionsplan som planlagt sandhed; jammertest score bedømmer en modtagerlog pr. test (detektionsforsinkelse, oversete alarmer, falske alarmer, tid til genopretning), som en signeret bevispakke, hvis du giver en nøgle MODELLED: én registerrække. Tærsklerne blev præregistreret før nogen bedømt kørsel; på JammerTest 2024-dataene fejlede reglen om mindste datamængde i begge kørsler (4 og 7 bedømmelige vinduer mod 10 krævede), så ingen tærskel kan vurderes, og intet hævdes Jammertest
Modtagerens egne flag UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG og NovAtel RXSTATUS læst ind i en self_report pr. epoke og sammenlignet med Kshanas alarmer (begge, kun modtager, kun Kshana, ingen af dem); en Septentrio SBF-læser og skrivebeskyttet --serial-input MODELLED; enighed mellem en modtagers detektor og Kshanas er ikke validering Modtagertillid
Flere modtagere og sensorer RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0 (fra de BSD-licenserede pyrtcm-tabeller, ikke RTCM-teksten), GNSS-SDR-monitorstrømme, en IMU-log som en anden sensor, en ROS 2-pakke, en gnss_lib_py-bro og imu-fit til hybride sensorparametre MODELLED: seks registerrækker; kun selvskrevne fixtures, ingen optagelse fra en rigtig modtager, IMU, GNSS-SDR-kørsel eller ROS-graf blev læst Maskininput
Tests af tidssynkronisering og holdover typen holdover-test bedømmer en holdover-test (GNSS fjernet af operatøren, holdover, genopretning) ud fra en målt tidsfejlregistrering mod ITU-T-masker, "målt mod masken"; læsere af linuxptp- og chrony-logs; hardwaretrinnene og feltet lab-attestation MODELLED: to registerrækker; tidspunkterne er operatørens udsagn, ikke verificeret Tidssynkronisering HIL, Hardwaresikkerhed
Standardpakker, LunaNet AFS, laboratorierundtur bedømte pakker for DHS RPCF, IMO MSC.1/Circ.1575 og ICAO Doc 9849 Appendix F mod tærskler angivet før kørslen, "leverer belæg for"; en NIST IR 8323r1-krydsreference; en LunaNet AFS-kodegenerator og -kontrol; en signeret pakke, der forbinder en laboratoriekørsels scenarie, testbetingelser, modtagerlog og score MODELLED for pakkerne og rundturen; AFS-kodekontrollen er VALIDATED mod sine trykte kontrolkolonner (se registerrækkerne) Standarder, LunaNet AFS
kshana-bench og observatoriet faste opgaver, opdelinger og mål for interferensdetektion, IQ-detektion, prædiktion af holdover og optimismegabet, med et forseglet tilbageholdt datasæt og en statisk rangliste; et gengiveligt dagligt interferensprodukt med 24 t forsinkelse, grove celler og ingen tilskrivning ingen egen registerrække: den scorer indsendelser, og dens baselines er mærket MODELLED i resultatfilerne; mod de på forhånd registrerede tærskler er scoreren, C1 til C3 og D2 nået, og tre tærskler er NOT MET (fastholdt af tests): A2 (agc_k_sigma AUC 0,766 mod mindst 0,80 på testopdelingen), D1 (største afstand 0,0301) og opgave (b) R1 (overført, ikke kørt igen); se xval/bench/RESULTS-v2.md Bench, Observatorium
Eksportører tillidstelemetri som Home Assistant MQTT-discovery- og tilstandsmeddelelser (kun udgivelse, ingen legitimationsoplysninger) ved siden af Prometheus, CEF, LEEF og OTLP MODELLED: én registerrække Tillidstelemetri
Optisk linkmargen over tid typen optical-atmosphere kan skrive én seedet realisering af et steds vejr som en linkmargenserie MODELLED: én registerrække; ét træk fra modellen, ikke klimaet Optisk atmosfære

Højdepunkter i 0,37: changelog. Hele listen for 0,38 står i changelog.

0,38 i dybden#

Hver funktion fra tabellen ovenfor i få linjer: hvad den gør, én kommando til at køre den, ét billede tegnet ud fra en egentlig kørsel af motoren, og hvad registret har om den. Billederne skrives af tools/gen_figures_038.py ind i docs/figures/0.38/ (aldrig tegnet i hånden): python3 tools/gen_figures_038.py skriver dem igen fra en bygget motor, og --check fejler, hvis et er forældet, eller hvis dets billedtekst her afviger. Hvor et input er en log, er det en opdigtet log, som scriptet skriver, fordi de egentlige tredjepartslogge aldrig medleveres, og billedteksten siger det. Alt nedenfor er vejledende: ikke certificeret, ikke en typegodkendelse, og intet udsendes. En status angiver, hvad der blev kontrolleret, og intet andet; hvordan en etiket optjenes.

Scoring af jammertest#

kshana jammertest import omsætter den offentliggjorte NPRA-testkatalog og transmissionsplan til planlagt reference, og kshana jammertest score scorer en modtagerlog mod den: for hver planlagt test, om den blev detekteret, hvor sent, og hvor lang tid modtageren om at komme sig, plus falske alarmer uden for alle tidsvinduer. Kataloget hentes, aldrig medleveret.

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
Scoring af én syntetisk modtagerlog mod en plan med tre tests, fra en rigtig kørsel af motoren v0.40.0 (`kshana jammertest score`). Loggen er opdigtet: 1800 s NMEA med et fald på 20 dB i C/N0 over to intervaller. Planen opregner tre tidsvinduer; i det midterste er der ingen jammer i loggen. Scoren markerer 2 af 3 tests som opdaget (median for latenstid 0 s) og 1 som misset, med 0 kørsler med falsk alarm over 0,25 t ren tid. Intet her siger noget om en rigtig modtager. Vejledende software, ikke typegodkendt navigationsudstyr (IEC 61108, IEC 61162): operatøren er fortsat ansvarlig for fartøjets navigation.Scoring af én syntetisk modtagerlog mod en plan med tre tests, fra en rigtig kørsel af motoren v0.40.0 (`kshana jammertest score`). Loggen er opdigtet: 1800 s NMEA med et fald på 20 dB i C/N0 over to intervaller. Planen opregner tre tidsvinduer; i det midterste er der ingen jammer i loggen. Scoren markerer 2 af 3 tests som opdaget (median for latenstid 0 s) og 1 som misset, med 0 kørsler med falsk alarm over 0,25 t ren tid. Intet her siger noget om en rigtig modtager. Vejledende software, ikke typegodkendt navigationsudstyr (IEC 61108, IEC 61162): operatøren er fortsat ansvarlig for fartøjets navigation.

Registerstatus: MODELLED. Tærsklerne blev fastsat før nogen scoret kørsel; på JammerTest-data fra 2024 svigtede reglen om minimumsdata i begge kørsler, så ingen tærskel kan vurderes, og intet hævdes. Jammertest.

Modtagerens egne flag#

UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG og NovAtel RXSTATUS læses ind i en self_report pr. epoke og stilles ved siden af Kshanas alarmer: begge, kun modtageren, kun Kshana eller ingen af dem. En Septentrio SBF-læser og et skrivebeskyttet input via --serial føder den samme sammenligning. Ingen af siderne er en reference.

kshana receiver-trust session.toml     # [log] format = "ubx", path = "receiver.ubx"
Modtagerens eget spoofing-flag stillet over for Kshanas alarmer, fra en egentlig kørsel af motor v0.40.0 på en opdigtet UBX-log (200 epoker ved 1 Hz). C/N0 falder 20 dB ved 80 til 90 s og 120 til 130 s; modtageren flager 120 til 130 s og 160 til 165 s. Af 140 epoker sammenlignet efter kalibrering havde 11 begge flaget, 6 kun modtageren, 11 kun Kshana og 112 ingen af dem. Ingen af siderne er en reference, og enighed er ikke validering. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.Modtagerens eget spoofing-flag stillet over for Kshanas alarmer, fra en egentlig kørsel af motor v0.40.0 på en opdigtet UBX-log (200 epoker ved 1 Hz). C/N0 falder 20 dB ved 80 til 90 s og 120 til 130 s; modtageren flager 120 til 130 s og 160 til 165 s. Af 140 epoker sammenlignet efter kalibrering havde 11 begge flaget, 6 kun modtageren, 11 kun Kshana og 112 ingen af dem. Ingen af siderne er en reference, og enighed er ikke validering. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.

Registerstatus: MODELLED. Enighed mellem en modtagers detektor og Kshanas er ikke validering. Modtagertillid.

Flere modtagere og sensorer#

RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0, GNSS-SDR-monitorstrømme, en IMU-log som anden sensor, en pakke til ROS 2 og en bro til gnss_lib_py ender alle i den samme tidslinje for modtagertillid. imu-fit læser de sensorparametre, som hybrid- og fusionsscenarierne har brug for, ud fra en stationær IMU-log, så et scenarie kan køres med den sensor, du faktisk har.

kshana imu-fit still.csv --format csv --axis x --expected-mean 0 --id bench-imu
Hvad `kshana imu-fit` aflæser af en IMU-log fra stilstand, fra en rigtig kørsel af motor v0.40.0 på en opdigtet log (20.000 sampler ved 100 Hz, 200 s): accelerometerets hastigheds-random-walk q_va = 4.02e-06, gyroens vinkel-random-walk q_arw = 9e-08, biasustabiliteten 0,00296 og de tidlige Allan-hældninger (-0.51 og -0.49; cirka -0.5, hvor hvid støj dominerer). Tabellen ved siden af er den TOML, kommandoen udskriver. Estimatoren er kun kontrolleret på syntetiske logs. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life).Hvad `kshana imu-fit` aflæser af en IMU-log fra stilstand, fra en rigtig kørsel af motor v0.40.0 på en opdigtet log (20.000 sampler ved 100 Hz, 200 s): accelerometerets hastigheds-random-walk q_va = 4.02e-06, gyroens vinkel-random-walk q_arw = 9e-08, biasustabiliteten 0,00296 og de tidlige Allan-hældninger (-0.51 og -0.49; cirka -0.5, hvor hvid støj dominerer). Tabellen ved siden af er den TOML, kommandoen udskriver. Estimatoren er kun kontrolleret på syntetiske logs. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life).

Registerstatus: MODELLED. Kun selvskrevne testdata; der blev ikke læst nogen optagelse fra en egentlig modtager, IMU, GNSS-SDR-kørsel eller ROS-graf. Maskininput.

Tests af tidssynkronisering og holdover#

Typen holdover-test scorer en holdover-test (GNSS fjernet af operatøren, holdover, genoprettelse) ud fra en målt tidsfejlsoptegnelse mod ITU-T-masker og siger det med de ord: målt mod masken. Læsere af linuxptp- og chrony-logge føder den; hardwaretrinnene og feltet lab-attestation siger, hvem der har angivet hvad.

kshana scenarios/holdover-test-example.toml
En holdover-test scoret ud fra en tidsfejlsoptegnelse, fra en egentlig kørsel af motor v0.40.0 på scenarios/holdover-test-example.toml (601 samples hvert 5 s). GNSS fjernes af operatøren ved 600 s og genoprettes ved 2400 s; tidsfejlen driver til 299 ns ved slutningen af holdover, forbi budgettet på 100 ns efter 675 s, og vender tilbage inden for båndet på 100 ns 70 s efter genoprettelsen. Afgørelser: baseline-masker PASS, holdover-masker FAIL, holdover-envelope FAIL, genoprettelse RECOVERED. Målt mod masken, ikke en godkendelse. Tidspunkterne er operatørens angivelse, ikke verificeret af Kshana. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.En holdover-test scoret ud fra en tidsfejlsoptegnelse, fra en egentlig kørsel af motor v0.40.0 på scenarios/holdover-test-example.toml (601 samples hvert 5 s). GNSS fjernes af operatøren ved 600 s og genoprettes ved 2400 s; tidsfejlen driver til 299 ns ved slutningen af holdover, forbi budgettet på 100 ns efter 675 s, og vender tilbage inden for båndet på 100 ns 70 s efter genoprettelsen. Afgørelser: baseline-masker PASS, holdover-masker FAIL, holdover-envelope FAIL, genoprettelse RECOVERED. Målt mod masken, ikke en godkendelse. Tidspunkterne er operatørens angivelse, ikke verificeret af Kshana. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.

Registerstatus: MODELLED. Tidspunkterne, hvor GNSS blev fjernet og genoprettet, er operatørens angivelse og ikke verificeret. HIL-test af tidssynkronisering, Hardwaresikkerhed.

Standardpakker#

Scorede pakker til DHS Resilient PNT-testprofilerne, IMO MSC.1/Circ.1575 og ICAO Doc 9849 Appendix F, plus en krydsreference til NIST IR 8323r1 i compliance-report. Hver test kører et medfølgende scenarie og sammenligner et resultatfelt med en tærskel angivet før kørslen; en test, der kræver en modtagerlog, er opført som værende afhængig af et input og er ikke scoret. Formuleringen er "leverer belæg for".

kshana standards-pack list
kshana standards-pack run imo-circ-1575
Hver test i de tre scorede standardpakker, fra rigtige kørsler af motoren v0.40.0 (`kshana standards-pack run`): dhs-rpcf: 6 nået, 1 ikke nået, 2 mangler et input; imo-circ-1575: 1 nået, 4 ikke nået, 2 mangler et input; icao-doc9849-appf: 6 nået, 0 ikke nået, 2 mangler et input. I alt 13 nået, 5 ikke nået og 6 mangler et input, som motoren ikke har (en modtagerlog eller udstyrsdokumentation). Hver tærskel blev fastsat før kørslen; en miss forbliver en miss. En nået tærskel siger, at et modelleret scenarie nåede en angivet tærskel, intet om et produkt. Pakkerne leverer belæg for de rækker, de henviser til; de er ikke en vurdering. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en sikkerhedskritisk tjeneste (safety-of-life); det må ikke være det eneste grundlag for nogen navigations- eller sikkerhedsbeslutning.Hver test i de tre scorede standardpakker, fra rigtige kørsler af motoren v0.40.0 (`kshana standards-pack run`): dhs-rpcf: 6 nået, 1 ikke nået, 2 mangler et input; imo-circ-1575: 1 nået, 4 ikke nået, 2 mangler et input; icao-doc9849-appf: 6 nået, 0 ikke nået, 2 mangler et input. I alt 13 nået, 5 ikke nået og 6 mangler et input, som motoren ikke har (en modtagerlog eller udstyrsdokumentation). Hver tærskel blev fastsat før kørslen; en miss forbliver en miss. En nået tærskel siger, at et modelleret scenarie nåede en angivet tærskel, intet om et produkt. Pakkerne leverer belæg for de rækker, de henviser til; de er ikke en vurdering. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en sikkerhedskritisk tjeneste (safety-of-life); det må ikke være det eneste grundlag for nogen navigations- eller sikkerhedsbeslutning.

Registerstatus: MODELLED. En nået tærskel siger, at et modelleret scenarie nåede en angivet tærskel, intet om et produkt; hvert svigt bevares og fastholdes af en test. Standarder.

LunaNet AFS#

LunaNet Augmented Forward Signal-kodegeneratoren (Gold-, Weil- og tertiærkoder, meddelelsesrammen og dens fejlkodning) og en kontrol for en optaget eller genereret symbolstrøm, fastholdt til én udgave af specifikationen.

kshana lunanet-afs-check spec
kshana lunanet-afs-check generate --frames 2 --out afs.sym
kshana lunanet-afs-check symbols afs.sym
LunaNet AFS-kodegeneratoren kontrolleret mod specifikationens trykte kolonner, fra en rigtig kørsel af motor v0.40.0 (`kshana lunanet-afs-check spec`, fastlåst til LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 January 2025; dokumentet markerer sine kodetabeller {LSIS-TBC}). 9 af 10 kontroller er nået; B4 er NOT MET (420 af 421 stemte). Den kontrollerer en symbolstrøm mod én udgave af en offentliggjort specifikation og siger intet om nogen LunaNet-node eller -tjeneste. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life). Den kontrollerer en symbolstrøm mod én udgave af en offentliggjort specifikation og siger intet om nogen LunaNet-node eller -tjeneste.LunaNet AFS-kodegeneratoren kontrolleret mod specifikationens trykte kolonner, fra en rigtig kørsel af motor v0.40.0 (`kshana lunanet-afs-check spec`, fastlåst til LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 January 2025; dokumentet markerer sine kodetabeller {LSIS-TBC}). 9 af 10 kontroller er nået; B4 er NOT MET (420 af 421 stemte). Den kontrollerer en symbolstrøm mod én udgave af en offentliggjort specifikation og siger intet om nogen LunaNet-node eller -tjeneste. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life). Den kontrollerer en symbolstrøm mod én udgave af en offentliggjort specifikation og siger intet om nogen LunaNet-node eller -tjeneste.

Registerstatus: VALIDATED for kode- og synkroniseringskontrollerne, mod de værdier, specifikationen trykker (som den markerer TBC); én kontrol er NOT MET, bevaret og fastholdt (én trykt tertiærkodekolonne afviger: dokumentet trykker den samme værdi for to PRN'er). LDPC- og CRC-ordene i delrammerne 2 til 4 kontrolleres ikke. Registerrækkerne angiver præcis hvilke. LunaNet AFS.

Round trip med laboratorium#

kshana.test-conditions/1 er en offentliggjort beskrivelse af, hvad et laboratorium gjorde (hændelser, tidspunkter, effekter). kshana evidence round-trip forbinder scenariets hash, testforholdenes hash, modtagerlogens hash og scoren i én signeret pakke og afviser en pakke, hvis forhold og scoringsscenarie er uenige om hændelserne. Kshana frembringer eller afspiller aldrig et signal: hvordan et scenarie nåede frem til en modtager, er operatørens ansvar.

kshana evidence --help
Strukturen i en bevispakke. En modtagerlog (NMEA, u-blox UBX, RINEX 3 eller en Android-log) og et tidsvindue går ind i kshana receiver-trust evidence, som skriver syv filer: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig og en valgfri timestamp.tsr. Manifestet registrerer SHA-256 af hele loggen og af hver fil samt en hashkæde over filerne; signaturen dækker manifestet. kshana evidence verify kontrollerer signaturen, hver fils hash, kæden og at ingen fil uden for listen findes, og afslutter med 0, når det er verificeret, 1, når noget fejlede, og 3, når underskriveren ikke var fastlåst. En pakke er en teknisk registrering, ikke en juridisk udtalelse.Strukturen i en bevispakke. En modtagerlog (NMEA, u-blox UBX, RINEX 3 eller en Android-log) og et tidsvindue går ind i kshana receiver-trust evidence, som skriver syv filer: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig og en valgfri timestamp.tsr. Manifestet registrerer SHA-256 af hele loggen og af hver fil samt en hashkæde over filerne; signaturen dækker manifestet. kshana evidence verify kontrollerer signaturen, hver fils hash, kæden og at ingen fil uden for listen findes, og afslutter med 0, når det er verificeret, 1, når noget fejlede, og 3, når underskriveren ikke var fastlåst. En pakke er en teknisk registrering, ikke en juridisk udtalelse.

Billedet viser en pakkes opbygning. Registerstatus: MODELLED. Testforhold, Testbench.

kshana-bench#

Faste opgaver, opdelinger og målinger til interferensdetektion, IQ-detektion, holdover-forudsigelse og optimismegabet, med et forseglet tilbageholdt datasæt og en statisk rangliste. Den scorer indsendelser; den er ikke en rangering af modtagere.

kshana bench baseline --task d --split test --out results/
De indbyggede baselines i kshana-bench opgave D (optimismegabet) på testopdelingen, fra en rigtig kørsel af motoren v0.40.0 (`kshana bench baseline`). Hvert søjlepar er arealet under ROC-kurven på tilfældene inden for fordelingen og på de forskudte tilfælde; afstanden mellem dem er optimismegabet, mod en tolerance på 0,05. fused-max-z: 0,998 og 0,983 (gab 0,015); sqm-imbalance: 0,882 og 0,882 (gab 0,001); agc-excess: 0,848 og 0,819 (gab 0,030); raim-parity: 0,682 og 0,672 (gab 0,010); energy-cn0-drop: 0,595 og 0,565 (gab 0,030). Labelerne er labels fra en generativ model i et syntetisk korpus, aldrig feltdata: MODELLED. Vejledende: modelleret eller målt mod angivne referencer, ikke en godkendelse, certificering eller erklæring om overensstemmelse. En score beskriver en log eller et korpus, aldrig et produkt.De indbyggede baselines i kshana-bench opgave D (optimismegabet) på testopdelingen, fra en rigtig kørsel af motoren v0.40.0 (`kshana bench baseline`). Hvert søjlepar er arealet under ROC-kurven på tilfældene inden for fordelingen og på de forskudte tilfælde; afstanden mellem dem er optimismegabet, mod en tolerance på 0,05. fused-max-z: 0,998 og 0,983 (gab 0,015); sqm-imbalance: 0,882 og 0,882 (gab 0,001); agc-excess: 0,848 og 0,819 (gab 0,030); raim-parity: 0,682 og 0,672 (gab 0,010); energy-cn0-drop: 0,595 og 0,565 (gab 0,030). Labelerne er labels fra en generativ model i et syntetisk korpus, aldrig feltdata: MODELLED. Vejledende: modelleret eller målt mod angivne referencer, ikke en godkendelse, certificering eller erklæring om overensstemmelse. En score beskriver en log eller et korpus, aldrig et produkt.

Registerstatus: ingen egen registerrække; baselines er mærket MODELLED i resultatfilerne. Mod de på forhånd registrerede tærskler er scoreren, C1 til C3 og D2 nået, og tre tærskler er NOT MET, hver fastholdt af en test: A2 (agc_k_sigma AUC 0,766 mod mindst 0,80 på testopdelingen), D1 (største afstand 0,0301) og opgave (b) R1 (overført fra den tidligere kampagne, ikke kørt igen). Tallene står i xval/bench/RESULTS-v2.md. Bench.

Interferensobservatorium#

Ét produkt pr. UTC-dag og region fra et åbent arkiv med flypositioner, på et fast groft gitter: hver celle er forringet, ikke forringet eller ikke observeret (hvilket ikke er "fri"). Udgivet tidligst 24 h efter dagens slutning, med små celler undertrykt og uden angivelse af årsag.

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/
To syntetiske dage med interferenskort, tegnet ud fra de indcheckede eksempler i examples/interference-map/output, hver med sin egen syntetiske rute og de andele af ruteeksponering, som motoren rapporterer. Til venstre en ADS-B-dag: 1 forringet celle, 6 ikke forringede, 4 uvurderede (skraverede) og celler uden post, tegnet tomme, som ikke blev observeret. Ruten er 525 km: 11,5% af dens længde i forringede celler, 38,3% ikke forringet, 9,1% uvurderet og 41,1% ikke observeret. Til højre en AIS-dag: celler markeret af cirkel- og landdetektorerne, ikke-afvigende celler og tomme celler; ruten er 454 km med 10,5% i afvigende celler, 21,2% ikke afvigende, 0,0% uvurderet og 68,3% ikke observeret. ADS-B og AIS er separate lag, aldrig kombineret. En markeret celle er ikke et fund af interferens, og en celle uden farve blev ikke observeret, hvilket ikke er det samme som fri. Alle data er opdigtede, i det åbne Atlanterhav, og ikke en måling.To syntetiske dage med interferenskort, tegnet ud fra de indcheckede eksempler i examples/interference-map/output, hver med sin egen syntetiske rute og de andele af ruteeksponering, som motoren rapporterer. Til venstre en ADS-B-dag: 1 forringet celle, 6 ikke forringede, 4 uvurderede (skraverede) og celler uden post, tegnet tomme, som ikke blev observeret. Ruten er 525 km: 11,5% af dens længde i forringede celler, 38,3% ikke forringet, 9,1% uvurderet og 41,1% ikke observeret. Til højre en AIS-dag: celler markeret af cirkel- og landdetektorerne, ikke-afvigende celler og tomme celler; ruten er 454 km med 10,5% i afvigende celler, 21,2% ikke afvigende, 0,0% uvurderet og 68,3% ikke observeret. ADS-B og AIS er separate lag, aldrig kombineret. En markeret celle er ikke et fund af interferens, og en celle uden farve blev ikke observeret, hvilket ikke er det samme som fri. Alle data er opdigtede, i det åbne Atlanterhav, og ikke en måling.

Billedet viser de indlagte eksempeldage, ikke et observatorieprodukt. Registerstatus: MODELLED: ingen ekstern uafhængig reference, ingen reference for den faktiske tilstand og ingen angivelse af årsag; en celle, der ikke er observeret, blev ikke vurderet, hvilket ikke er det samme som fri. Observatoriets metode.

Eksportører#

Tillidstelemetri som Prometheus-tekst, CEF, LEEF, OTLP og Home Assistant MQTT-discovery- og tilstandsmeddelelser. Kommandoen udgiver kun til en destination, du giver den, og rummer ingen legitimationsoplysninger.

kshana trust-telemetry --result session.result.json --print-metrics
kshana trust-telemetry --result session.result.json --print-syslog --format cef
Ét tillidsresultat i tre eksportformater, fra egentlige kørsler af motor v0.40.0 (`kshana trust-telemetry`) på examples/maritime-trust: Prometheus-tekstvisning (den seneste tillidsscore er 5,9, og det utroværdige bånd er det, der er sat), og de sidste CEF- og LEEF-meddelelser. Kommandoen udgiver intet, medmindre den får en destination, rummer ingen legitimationsoplysninger og udsender intet radiosignal. Vejledende software, ikke typegodkendt navigationsudstyr (IEC 61108, IEC 61162): operatøren er fortsat ansvarlig for fartøjets navigation.Ét tillidsresultat i tre eksportformater, fra egentlige kørsler af motor v0.40.0 (`kshana trust-telemetry`) på examples/maritime-trust: Prometheus-tekstvisning (den seneste tillidsscore er 5,9, og det utroværdige bånd er det, der er sat), og de sidste CEF- og LEEF-meddelelser. Kommandoen udgiver intet, medmindre den får en destination, rummer ingen legitimationsoplysninger og udsender intet radiosignal. Vejledende software, ikke typegodkendt navigationsudstyr (IEC 61108, IEC 61162): operatøren er fortsat ansvarlig for fartøjets navigation.

Registerstatus: MODELLED. Tillidstelemetri.

Typen optical-atmosphere kan skrive én seedet realisering af et steds vejr som en linkmargenserie: skyepisoder, en søjle af flydende vand for hver og ét scintillationssample pr. trin. Studios side Optisk PNT åbner scenarierne for optical-atmosphere.

kshana scenarios/optical-atmosphere-network.toml
Én seedet realisering af linkmarginen for stedet 'northern' over 336 t, fra en rigtig kørsel af motor v0.40.0 på scenarios/optical-atmosphere-network.toml (seed 37, et trin på 600 s). Marginen falder under nul under skyepisoder; i dette træk er linket oppe 40,5 % af tiden, med 27 udfald og et længste udfald på 30,7 t. Inputtene er illustrative, serien er ét træk fra modellen og ikke klimaet, og den afviger fra den statistiske tilgængelighed (37,8 %) med trækkets stikprøvefejl. Kun vejledende analyse: ikke et certificeret tilgængeligheds-, integritets- eller navigationsprodukt og ikke en forudsigelse for noget rigtigt sted, medmindre dets klimainput kommer fra et angivet datasæt.Én seedet realisering af linkmarginen for stedet 'northern' over 336 t, fra en rigtig kørsel af motor v0.40.0 på scenarios/optical-atmosphere-network.toml (seed 37, et trin på 600 s). Marginen falder under nul under skyepisoder; i dette træk er linket oppe 40,5 % af tiden, med 27 udfald og et længste udfald på 30,7 t. Inputtene er illustrative, serien er ét træk fra modellen og ikke klimaet, og den afviger fra den statistiske tilgængelighed (37,8 %) med trækkets stikprøvefejl. Kun vejledende analyse: ikke et certificeret tilgængeligheds-, integritets- eller navigationsprodukt og ikke en forudsigelse for noget rigtigt sted, medmindre dets klimainput kommer fra et angivet datasæt.

Registerstatus: MODELLED. Ét træk fra modellen, ikke klimaet. Optisk atmosfære.

Nye Studio-visninger#

kshana.dev/studio får en Bridge-afspilning (to kørsler side om side på ét missionsur, på /studio/replay/), en side for optisk PNT (/studio/optical/), en side for holdover-test (/studio/holdover/) og en observatorievisning (/studio/observatory/). De kører den samme motor i browseren, intet uploades, og de bærer den samme vejledende erklæring. Billederne ovenfor er tegnet af et script ud fra motorens eget output; de er ikke skærmbilleder af disse sider.

Rumbrugernavigation (gnss-ssv)#

Til et rumfartøj over, omkring eller langt forbi GNSS-banerne: hvor mange GNSS-signaler det kan bruge, hvor stærke de er, hvor god geometrien er, og hvad et filter om bord kan gøre med dem. Én type, fire tilstande, valgt af scenariets tabeller: et skal af brugere (andelen af tiden med ét og fire signaler, pr. konstellation), en bane (signaler, C/N0, præcisionsfortynding (DOP) og limb-stråle-mediet langs en bane), en navigationskørsel (et filter med ni tilstande på pseudoafstande, til Månen) og en formation (relativ navigation af deputies om en chief). Den offentlige kilde til tilgængelighedssammenligningen er hæftet Interoperable GNSS Space Service Volume (UN OOSA ST/SPACE/75, fra International Committee on GNSS), som selv er en simulering; det hentes, medleveres aldrig. Fuld side: 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
Signaltilgængelighed for en bruger på en kugle i 36000 km højde med en halvkugleantenne, fra en egentlig kørsel af motor v0.40.0 på scenarios/gnss-ssv-shell.toml (en reduceret kørsel: 162 brugere, 3 dage, trin på 10 min), ved en tærskel på 20 dB-Hz. For hver konstellation og hvert bånd to søjler: andelen af (bruger, epoke)-par med mindst ét signal og med mindst fire. Kombineret, L1: 99,4 % mindst ét, 73,2 % mindst fire, længste udfald under fire signaler 160 min. Kombineret, L5: 100,0 % mindst ét, 99,9 % mindst fire, længste udfald under fire signaler 20 min. MODELLED: en modelleret undersøgelse ud fra angivne input, ikke en måling og ikke en påstand om servicevolumen for noget system. Den reducerede størrelse er ikke sammenligningen med hæftet. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.Signaltilgængelighed for en bruger på en kugle i 36000 km højde med en halvkugleantenne, fra en egentlig kørsel af motor v0.40.0 på scenarios/gnss-ssv-shell.toml (en reduceret kørsel: 162 brugere, 3 dage, trin på 10 min), ved en tærskel på 20 dB-Hz. For hver konstellation og hvert bånd to søjler: andelen af (bruger, epoke)-par med mindst ét signal og med mindst fire. Kombineret, L1: 99,4 % mindst ét, 73,2 % mindst fire, længste udfald under fire signaler 160 min. Kombineret, L5: 100,0 % mindst ét, 99,9 % mindst fire, længste udfald under fire signaler 20 min. MODELLED: en modelleret undersøgelse ud fra angivne input, ikke en måling og ikke en påstand om servicevolumen for noget system. Den reducerede størrelse er ikke sammenligningen med hæftet. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste. Signaler langs én høj jordbane (perigæum 497 km, apogæum 58622 km, omløbstid 18,8 h), fra en egentlig kørsel af motor v0.40.0 på scenarios/gnss-ssv-heo.toml, bånd L1. Øverst: den bedste bærebølge-til-støj-tæthed blandt de signaler, der er i sigte, mod tærsklen på 20 dB-Hz. I midten: antallet af signaler i sigte fra alle konstellationer, fra 4 til 55 langs de udtagne punkter. Af de modtagne links kom 2252 gennem en hovedlobe og 696 gennem sidelober, med et mærket parametrisk stedfortrædermønster, ikke noget systems målte mønster. Median PDOP 67, 95. percentil 358. MODELLED: en modelleret undersøgelse ud fra angivne input, ikke en måling og ikke en påstand om servicevolumen for noget system. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.Signaler langs én høj jordbane (perigæum 497 km, apogæum 58622 km, omløbstid 18,8 h), fra en egentlig kørsel af motor v0.40.0 på scenarios/gnss-ssv-heo.toml, bånd L1. Øverst: den bedste bærebølge-til-støj-tæthed blandt de signaler, der er i sigte, mod tærsklen på 20 dB-Hz. I midten: antallet af signaler i sigte fra alle konstellationer, fra 4 til 55 langs de udtagne punkter. Af de modtagne links kom 2252 gennem en hovedlobe og 696 gennem sidelober, med et mærket parametrisk stedfortrædermønster, ikke noget systems målte mønster. Median PDOP 67, 95. percentil 358. MODELLED: en modelleret undersøgelse ud fra angivne input, ikke en måling og ikke en påstand om servicevolumen for noget system. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste. Et filter med ni tilstande om bord på en overgang fra lav bane mod Månen, fra en egentlig kørsel af motor v0.40.0 på scenarios/gnss-ssv-nav-lunar.toml (289 epoker, 13 punkter tegnet). På en logaritmisk akse den sande positionsfejl og filterets egen énsigmagrænse mod tid siden start. Inden for GNSS-banerne er positions-RMS 1,4 m; over dem er den 90 m, med den endelige fejl 184 m i 193.330 km højde med 1 måling. Middel af normaliseret estimeringsfejl i anden over hele kørslen er 4,4 (omkring 3 for en konsistent positionsblok). Referencen og filteret deler deres stedfortrædere for Solen og Månen. MODELLED: en modelleret undersøgelse ud fra angivne input, ikke en måling og ikke en påstand om servicevolumen for noget system. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.Et filter med ni tilstande om bord på en overgang fra lav bane mod Månen, fra en egentlig kørsel af motor v0.40.0 på scenarios/gnss-ssv-nav-lunar.toml (289 epoker, 13 punkter tegnet). På en logaritmisk akse den sande positionsfejl og filterets egen énsigmagrænse mod tid siden start. Inden for GNSS-banerne er positions-RMS 1,4 m; over dem er den 90 m, med den endelige fejl 184 m i 193.330 km højde med 1 måling. Middel af normaliseret estimeringsfejl i anden over hele kørslen er 4,4 (omkring 3 for en konsistent positionsblok). Referencen og filteret deler deres stedfortrædere for Solen og Månen. MODELLED: en modelleret undersøgelse ud fra angivne input, ikke en måling og ikke en påstand om servicevolumen for noget system. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste. Relativ navigation af 2 deputies omkring en chief på en høj bane, fra en egentlig kørsel af motor v0.40.0 på scenarios/gnss-ssv-formation-heo.toml (401 epoker). For hver deputy to søjler: den relative positions-RMS ved at trække de to uafhængige absolutte estimater fra hinanden, og fra det relative filter på enkeltdifferencerede pseudoafstande. Baseline 0,8 km: 5,1 m og 1,2 m. Baseline 2,0 km: 4,1 m og 2,1 m. Det absolutte filter er ikke konsistent her: middel af normaliseret estimeringsfejl i anden 187 mod omkring 3 for et konsistent filter, så dets angivne usikkerhed er langt for lille. MODELLED: en modelleret undersøgelse ud fra angivne input, ikke en måling og ikke en påstand om servicevolumen for noget system. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.Relativ navigation af 2 deputies omkring en chief på en høj bane, fra en egentlig kørsel af motor v0.40.0 på scenarios/gnss-ssv-formation-heo.toml (401 epoker). For hver deputy to søjler: den relative positions-RMS ved at trække de to uafhængige absolutte estimater fra hinanden, og fra det relative filter på enkeltdifferencerede pseudoafstande. Baseline 0,8 km: 5,1 m og 1,2 m. Baseline 2,0 km: 4,1 m og 2,1 m. Det absolutte filter er ikke konsistent her: middel af normaliseret estimeringsfejl i anden 187 mod omkring 3 for et konsistent filter, så dets angivne usikkerhed er langt for lille. MODELLED: en modelleret undersøgelse ud fra angivne input, ikke en måling og ikke en påstand om servicevolumen for noget system. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.

Registerstatus: MODELLED, og sammenligningen med hæftet fejler for det meste. Tærsklerne blev fastsat før kørslen. Af otte er kun S0 (det omvendte linkbudget, 13 af 13 værdier) og S6 (månemissionen) nået. S1 til S5 og S7 er NOT MET: geometrien for øvre og nedre servicevolumen (43 af 52 og 48 af 52 celler), den øvre servicevolumen ved 15/20/25 dB-Hz, de seks GEO-missioner, HEO-missionen og det parametriske sidelobemønster mod målte GPS-panelmønstre. Næsten alle svigt i S1 til S5 involverer GLONASS, og hæftet trykker to forskellige referencevinkler for det; en diagnostisk variant, der bruger det andet par, bringer S1, S2 og S4 til alle celler, men den erstatter ikke den registrerede kørsel, og ingen række er VALIDATED. Formationskørslens absolutte filter er også overmodigt (middel af normaliseret fejl i anden langt over værdien på omkring 3, som et konsistent filter giver).

Den registrerede sammenligning af tilgængelighedsmodellen for rumbrugere med det offentlige hæfte om Space Service Volume, fra de indlagte resultater af den på forhånd registrerede kørsel (xval/gnss-ssv/results-run1.json, skrevet af eksemplet ssv_booklet_check i motor v0.40.0). Tærskel for tærskel, cellerne inden for tolerance: S0 13 af 13 (MET); S1 43 af 52 (NOT MET); S2 48 af 52 (NOT MET); S3 122 af 155 (NOT MET); S4 132 af 156 (NOT MET); S5 18 af 26 (NOT MET); S6 26 af 26 (MET); S7 0 af 20 panelmønstre (NOT MET). Kun S0 og S6 er nået under den på forhånd registrerede aflæsning. En diagnostisk variant, der bruger hæftets andre GLONASS-vinkler, bringer S1, S2 og S4 til alle celler, men erstatter ikke den registrerede kørsel. Ingen registerrække er VALIDATED. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.Den registrerede sammenligning af tilgængelighedsmodellen for rumbrugere med det offentlige hæfte om Space Service Volume, fra de indlagte resultater af den på forhånd registrerede kørsel (xval/gnss-ssv/results-run1.json, skrevet af eksemplet ssv_booklet_check i motor v0.40.0). Tærskel for tærskel, cellerne inden for tolerance: S0 13 af 13 (MET); S1 43 af 52 (NOT MET); S2 48 af 52 (NOT MET); S3 122 af 155 (NOT MET); S4 132 af 156 (NOT MET); S5 18 af 26 (NOT MET); S6 26 af 26 (MET); S7 0 af 20 panelmønstre (NOT MET). Kun S0 og S6 er nået under den på forhånd registrerede aflæsning. En diagnostisk variant, der bruger hæftets andre GLONASS-vinkler, bringer S1, S2 og S4 til alle celler, men erstatter ikke den registrerede kørsel. Ingen registerrække er VALIDATED. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsikkerhedstjeneste.

Rumbrugernavigation, hvad sammenligningen viser.

Månens infrastruktur (lunar-infrastructure)#

Månens bane og overflade som navigations- og geodætisk infrastruktur, i fem undersøgelser valgt af study: od-consistency (en banebestemmelse om bord ud fra Jord-GNSS i en halobane mod en uafhængig jordbaseret), carrier-phase (fastlæggelse af heltalsmultiplicitet mellem overfladestationer og en orbiter), frame-coestimation (månens datum ud fra afstandsmåling fra jordstationer med og uden orbiterlinks), space-tie (laser-, VLBI- og GNSS-forskydninger på ét rumfartøj mod fejlen i den lokale forbindelse) og geodesy-sensitivity (hvilken observabelfamilie der ser Love-tallene h2, k2 og l2). Modellen er en begrænset trelegemesmodel med angivne forenklinger og illustrative input. Fuld side: 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
Konsistens mellem en banebestemmelse om bord med Jord-GNSS i en næsten retlinet halobane og en uafhængig banebestemmelse fra jorden, fra rigtige kørsler af motor v0.40.0 på scenarios/lunar-infrastructure-od-consistency.toml og varianten med modelfejl (400 forsøg hver). Den gennemsnitlige normaliserede forskel q er 5,81 uden modelfejl og 5,95 med en injiceret accelerationsfejl på 3e-10 m/s2, mod 6 forventet: de to banebestemmelser er konsistente (tærskel C1 MET). Andelen af forsøg over 95 %-punktet er 0,040 og 0,052; tærsklen for at opdage den injicerede fejl var mindst 0,5, så den er NOT MET (C3): løsningen om bord er kendt til cirka 352 m mod 23 m for den fra jorden, så en forskydning på ti meter skjuler sig inden for dens kovarians. MODELLED: en begrænset tre-legeme-model med angivne forenklinger og illustrative inputs, ikke en måling af nogen månestørrelse. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life).Konsistens mellem en banebestemmelse om bord med Jord-GNSS i en næsten retlinet halobane og en uafhængig banebestemmelse fra jorden, fra rigtige kørsler af motor v0.40.0 på scenarios/lunar-infrastructure-od-consistency.toml og varianten med modelfejl (400 forsøg hver). Den gennemsnitlige normaliserede forskel q er 5,81 uden modelfejl og 5,95 med en injiceret accelerationsfejl på 3e-10 m/s2, mod 6 forventet: de to banebestemmelser er konsistente (tærskel C1 MET). Andelen af forsøg over 95 %-punktet er 0,040 og 0,052; tærsklen for at opdage den injicerede fejl var mindst 0,5, så den er NOT MET (C3): løsningen om bord er kendt til cirka 352 m mod 23 m for den fra jorden, så en forskydning på ti meter skjuler sig inden for dens kovarians. MODELLED: en begrænset tre-legeme-model med angivne forenklinger og illustrative inputs, ikke en måling af nogen månestørrelse. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life). Løsning af heltalsmultiplicitet for bærebølgefasen mellem stationer på månens overflade og en orbiter, fra det indlagte resultat af den scorede kørsel af motor v0.40.0 (tests/fixtures/lunar_infra/phase_full_run.json: 3 buelængder, en Monte Carlo med 401 træk hver, skrevet af scenarios/carrier-phase-scored.toml). 1 døgn: succes 1,0 % (standardfejl 0,5 %), 134 multiplicitetsled, orbiterens positionssigma 45,6 m flydende og 18,5 m fastlåst; 2 døgn: succes 0,5 % (standardfejl 0,4 %), 259 multiplicitetsled, orbiterens positionssigma 21,5 m flydende og 8,7 m fastlåst; 3 døgn: succes 2,8 % (standardfejl 0,8 %), 375 multiplicitetsled, orbiterens positionssigma 6,3 m flydende og 2,1 m fastlåst. Heltalsfastlåsning opnås ikke: succesraten holder sig mellem 1 % og 3 % ved 25 dBi, og ved de registrerede 12 dBi kan problemet ikke opstilles. MODELLED: en begrænset tre-legememodel med angivne forenklinger og illustrative input, ikke en måling af nogen størrelse på Månen. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en safety-of-life-tjeneste.Løsning af heltalsmultiplicitet for bærebølgefasen mellem stationer på månens overflade og en orbiter, fra det indlagte resultat af den scorede kørsel af motor v0.40.0 (tests/fixtures/lunar_infra/phase_full_run.json: 3 buelængder, en Monte Carlo med 401 træk hver, skrevet af scenarios/carrier-phase-scored.toml). 1 døgn: succes 1,0 % (standardfejl 0,5 %), 134 multiplicitetsled, orbiterens positionssigma 45,6 m flydende og 18,5 m fastlåst; 2 døgn: succes 0,5 % (standardfejl 0,4 %), 259 multiplicitetsled, orbiterens positionssigma 21,5 m flydende og 8,7 m fastlåst; 3 døgn: succes 2,8 % (standardfejl 0,8 %), 375 multiplicitetsled, orbiterens positionssigma 6,3 m flydende og 2,1 m fastlåst. Heltalsfastlåsning opnås ikke: succesraten holder sig mellem 1 % og 3 % ved 25 dBi, og ved de registrerede 12 dBi kan problemet ikke opstilles. MODELLED: en begrænset tre-legememodel med angivne forenklinger og illustrative input, ikke en måling af nogen størrelse på Månen. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en safety-of-life-tjeneste. Præcision af det syvparameter månedatum (tre translationer, en skala og tre rotationer) ud fra afstandsmåling fra jordstationer, med og uden afstande mellem orbiter og overfladestation, fra en rigtig kørsel af motor v0.40.0 på scenarios/lunar-infrastructure-frame-coestimation.toml. Cramer-Rao-sigma for translationerne og rotationerne falder med orbiterlinkene (for eksempel t_z fra 0,98 m til 0,046 m); den mindste informationsegenværdi stiger 111 gange, og CRLB-sporet falder til 1,0 % (tærskel F3 MET). Det forudsætter, at banen er kendt i månens akser, med dens fejl båret af orbiterens afstandssigma på 1 m. MODELLED: en begrænset tre-legeme-model med angivne forenklinger og illustrative inputs, ikke en måling af nogen månestørrelse. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life).Præcision af det syvparameter månedatum (tre translationer, en skala og tre rotationer) ud fra afstandsmåling fra jordstationer, med og uden afstande mellem orbiter og overfladestation, fra en rigtig kørsel af motor v0.40.0 på scenarios/lunar-infrastructure-frame-coestimation.toml. Cramer-Rao-sigma for translationerne og rotationerne falder med orbiterlinkene (for eksempel t_z fra 0,98 m til 0,046 m); den mindste informationsegenværdi stiger 111 gange, og CRLB-sporet falder til 1,0 % (tærskel F3 MET). Det forudsætter, at banen er kendt i månens akser, med dens fejl båret af orbiterens afstandssigma på 1 m. MODELLED: en begrænset tre-legeme-model med angivne forenklinger og illustrative inputs, ikke en måling af nogen månestørrelse. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life). Præcision af forskellene mellem laserafstandsmåling, VLBI og GNSS-positioner for ét rumfartøj, i forhold til fejlen i den lokale forbindelse på jorden, fra en rigtig kørsel af motor v0.40.0 på scenarios/lunar-infrastructure-space-tie.toml (én bue på 6.56 dage, teknikkernes sigma GNSS 10 m, VLBI 1 m, laser 0,1 m). Med en lokal forbindelse fra 1 mm til 1 m forbliver translationssigma for laser minus GNSS nær 1,04 m, indtil forbindelsen når 1 m: den er begrænset af teknikkernes målestøj, ikke af den lokale forbindelse. Gulvet, som forbindelsen alene sætter, er kvadratroden af to gange dens sigma. MODELLED: en begrænset tre-legeme-model med angivne forenklinger og illustrative inputs, ikke en måling af nogen månestørrelse. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life).Præcision af forskellene mellem laserafstandsmåling, VLBI og GNSS-positioner for ét rumfartøj, i forhold til fejlen i den lokale forbindelse på jorden, fra en rigtig kørsel af motor v0.40.0 på scenarios/lunar-infrastructure-space-tie.toml (én bue på 6.56 dage, teknikkernes sigma GNSS 10 m, VLBI 1 m, laser 0,1 m). Med en lokal forbindelse fra 1 mm til 1 m forbliver translationssigma for laser minus GNSS nær 1,04 m, indtil forbindelsen når 1 m: den er begrænset af teknikkernes målestøj, ikke af den lokale forbindelse. Gulvet, som forbindelsen alene sætter, er kvadratroden af to gange dens sigma. MODELLED: en begrænset tre-legeme-model med angivne forenklinger og illustrative inputs, ikke en måling af nogen månestørrelse. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life). Hvilken observationsfamilie der er følsom over for månens Love-tal h2, k2 og l2, fra en rigtig kørsel af motor v0.40.0 på scenarios/lunar-infrastructure-geodesy-sensitivity.toml. Hver celle er den kvadratiske middelværdi (RMS) af den partielle afledede af en families observationer med hensyn til en parameter, i den families egne enheder (så celler sammenlignes henover en række, ikke ned ad en kolonne); en tankestreg betyder, at familien ikke har nogen følsomhed. laserafstandsmåling: h2 7,6, k2 ingen, l2 9,8. orbitersporing: h2 ingen, k2 0,00086, l2 ingen. overfladegravimeter: h2 2.9e+03, k2 4.3e+03, l2 ingen. overfladeur: h2 2.8e-17, k2 2.8e-17, l2 ingen. Med alle fire familier er Cramer-Rao-sigma 0,36 % af nominelt h2, 0,52 % af k2 og 1,16 % af l2. Tilføjelse af en familie sænkede aldrig den mindste egenværdi (28 af 28 tilføjelser), men sporet af pseudoinversen var kun ikke større i 16 af 28: den halvdel af tærskel G3 er NOT MET. Orbiterfamilien ser linjesigtsintegralet af k2-accelerationen, et tal i den høje ende. MODELLED: en begrænset tre-legeme-model med angivne forenklinger og illustrative inputs, ikke en måling af nogen månestørrelse. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life).Hvilken observationsfamilie der er følsom over for månens Love-tal h2, k2 og l2, fra en rigtig kørsel af motor v0.40.0 på scenarios/lunar-infrastructure-geodesy-sensitivity.toml. Hver celle er den kvadratiske middelværdi (RMS) af den partielle afledede af en families observationer med hensyn til en parameter, i den families egne enheder (så celler sammenlignes henover en række, ikke ned ad en kolonne); en tankestreg betyder, at familien ikke har nogen følsomhed. laserafstandsmåling: h2 7,6, k2 ingen, l2 9,8. orbitersporing: h2 ingen, k2 0,00086, l2 ingen. overfladegravimeter: h2 2.9e+03, k2 4.3e+03, l2 ingen. overfladeur: h2 2.8e-17, k2 2.8e-17, l2 ingen. Med alle fire familier er Cramer-Rao-sigma 0,36 % af nominelt h2, 0,52 % af k2 og 1,16 % af l2. Tilføjelse af en familie sænkede aldrig den mindste egenværdi (28 af 28 tilføjelser), men sporet af pseudoinversen var kun ikke større i 16 af 28: den halvdel af tærskel G3 er NOT MET. Orbiterfamilien ser linjesigtsintegralet af k2-accelerationen, et tal i den høje ende. MODELLED: en begrænset tre-legeme-model med angivne forenklinger og illustrative inputs, ikke en måling af nogen månestørrelse. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en livsvigtig sikkerhedstjeneste (safety-of-life).

Registerstatus: MODELLED, og tre tærskler er NOT MET. Numerikken er kontrolleret mod uafhængige numpy- og scipy-programmer; intet sammenlignes med en måling af en størrelse på Månen, og intet er VALIDATED. Nået: de to banerløsninger er konsistente (middel q 5,81 mod 6 forventet), og orbiterlinks hæver den mindste datum-egenværdi omkring 111 gange, forudsat en kendt bane. Ikke nået: den påførte modelfejl på 3e-10 m/s2 bliver ikke detekteret (C3: løsningen om bord er kendt til omkring 350 m, så omkring ti meter skjuler sig i dens kovarians); fastlæggelse af heltal opnås ikke (1 til 3 % succes ved 25 dBi, og ved de registrerede 12 dBi kan problemet ikke opstilles); og sporhalvdelen af G3 for tilføjelse af en observabelfamilie (sporet steg i 12 af 28 tilføjelser, hver gang fordi familien hævede rangen). Hvert svigt er fastholdt af en test. Månens infrastruktur.

Kshana Studio#

Åbn kshana.dev/studio, og hele motoren kører i din browser, kompileret til WebAssembly. Intet at installere, og intet uploades. Studio har to visninger af den samme motor, og en kontakt i overskriften skifter mellem dem og beholder scenariet, visningen og alle indstillinger, du har ændret.

Den enkle visning er der, hvor Studio åbner. Den starter fra spørgsmål (hvor mange satellitter kan jeg se, kan jeg stole på min positionsbestemmelse, hvor længe kan et ur holde tiden, hvad gør en jammer ved min modtager) og fra et kort over alt, motoren kan, hvert område med sin andel af validerede metoder. Åbn et scenarie, og svaret kommer først: én almindelig sætning, skrevet til det, scenariet måler, derefter dets nøgletal og et diagram. Højst fem indstillinger vises, dem der ændrer svaret mest; resten venter under Avancerede indstillinger. Sådan beregnes det forklarer metoden, og Til forskere giver motorens egne tal, scenariefilen, koden til at køre det fra Python og citationen.

Kshana Studio, Enkel visning, på det medfølgende scenarie integrity-raim, motor v0.40.0 kørende lokalt. Spørgsmålet: holder geometrien sig inden for alarmgrænserne (horisontalt og vertikalt beskyttelsesniveau)? Svaret først, markeret Live resultat: Ja, for det meste: for 95,3 % af de 12 timer. Modtagerens fejlgrænse holdt sig under alarmgrænserne (40 m horisontalt og 50 m vertikalt) ved 344 af 361 kontroller, og ingen positionsbestemmelse var vildledende. Nøgletal: tid, positionsbestemmelsen kan stoles på 95,3 %, længste hul 10 min, typisk fejlgrænse 6,5 / 13 m, vildledende positionsbestemmelser 0. Ved siden af, Prøv andre indstillinger med fem af dem (afstandsfejlen, de to alarmgrænser, varigheden og elevationsmasken) og Kør igen, derefter de foldede afsnit Avancerede indstillinger (13 flere), Sådan beregnes dette (8 valideret, 6 modelleret) og For forskere. Nedenfor visningerne af dette resultat og beskyttelsesniveauerne afbildet mod alarmgrænsen.Kshana Studio, Enkel visning, på det medfølgende scenarie integrity-raim, motor v0.40.0 kørende lokalt. Spørgsmålet: holder geometrien sig inden for alarmgrænserne (horisontalt og vertikalt beskyttelsesniveau)? Svaret først, markeret Live resultat: Ja, for det meste: for 95,3 % af de 12 timer. Modtagerens fejlgrænse holdt sig under alarmgrænserne (40 m horisontalt og 50 m vertikalt) ved 344 af 361 kontroller, og ingen positionsbestemmelse var vildledende. Nøgletal: tid, positionsbestemmelsen kan stoles på 95,3 %, længste hul 10 min, typisk fejlgrænse 6,5 / 13 m, vildledende positionsbestemmelser 0. Ved siden af, Prøv andre indstillinger med fem af dem (afstandsfejlen, de to alarmgrænser, varigheden og elevationsmasken) og Kør igen, derefter de foldede afsnit Avancerede indstillinger (13 flere), Sådan beregnes dette (8 valideret, 6 modelleret) og For forskere. Nedenfor visningerne af dette resultat og beskyttelsesniveauerne afbildet mod alarmgrænsen.

Den avancerede visning er det fulde dashboard: scenariebiblioteket, fem nummererede trin (Vælg, Indstil, Kør, Læs resultater, Del eller eksportér), nøgletallene med PASS- og FAIL-chips, hvor kørslen angiver en tærskel, og alle paneler: oversigt, diagrammer, kort, afspilning, motorens rapport og eksport. Ét søgefelt når scenarier, domæner og felterne i dem, og du kan fastgøre op til fire kørsler og sammenligne dem side om side.

Den enkle visnings åbningsskærm og den avancerede visning efter en kørsel
Kshana Studio, Enkel visning, åbningsskærm, med titlen Hvad vil du gerne finde ud af?, med motor v0.40.0 live og i topbjælken tre links: Træningsdebriefing, Interferenskort og Modtagertillid. Fire spørgsmål: hvor mange satellitter kan jeg se overalt på Jorden, kan jeg stole på min positionsbestemmelse, hvor længe kan et ur holde tiden uden satellitter, og hvad gør en jammer ved min modtager. Under det første dets optagede resultat: mindst 22 satellitter i sigte alle steder og 31 i gennemsnit med GPS, Galileo, BeiDou og GLONASS sammen, en positionsbestemmelse mulig ved 100 % af steder og tidspunkter, på et verdenskort over satellitter i sigte, med en knap Åbn dette resultat. Ved siden af, Alt, hvad Kshana kan: 16 områder og 139 scenarier klar til kørsel, hver flise med et lille diagram fra en optaget kørsel og sin andel af validerede metoder, og registerets 173 af 350 funktioner valideret.Kshana Studio, Enkel visning, åbningsskærm, med titlen Hvad vil du gerne finde ud af?, med motor v0.40.0 live og i topbjælken tre links: Træningsdebriefing, Interferenskort og Modtagertillid. Fire spørgsmål: hvor mange satellitter kan jeg se overalt på Jorden, kan jeg stole på min positionsbestemmelse, hvor længe kan et ur holde tiden uden satellitter, og hvad gør en jammer ved min modtager. Under det første dets optagede resultat: mindst 22 satellitter i sigte alle steder og 31 i gennemsnit med GPS, Galileo, BeiDou og GLONASS sammen, en positionsbestemmelse mulig ved 100 % af steder og tidspunkter, på et verdenskort over satellitter i sigte, med en knap Åbn dette resultat. Ved siden af, Alt, hvad Kshana kan: 16 områder og 139 scenarier klar til kørsel, hver flise med et lille diagram fra en optaget kørsel og sin andel af validerede metoder, og registerets 173 af 350 funktioner valideret. Kshana Studio, Avanceret visning, efter en kørsel af det medfølgende scenarie constellation-multi-gnss-coverage (Fire GNSS-konstellationer, ét kort), motor v0.40.0 kørende lokalt. Til venstre scenariebiblioteket, 139 scenarier i 16 domæner. De fem trin Vælg, Indstil, Kør, Læs resultater og Del eller eksportér, med trin 4 aktuelt. Nøgletal: 102 satellitter, tilgængelighed 100 % (PASS), median af positionsfortyndingen (PDOP) 0,95 (PASS), 95. percentil af PDOP 1,105 (PASS), 31,03 satellitter i sigte i gennemsnit og 22 som færrest. Nedenfor panelrækken med Dækning valgt, afspilningslinjen, et verdenskort over den gennemsnitlige PDOP fra 0,831 til 1,0853 med hver satellit tegnet og de globale dækningstal.Kshana Studio, Avanceret visning, efter en kørsel af det medfølgende scenarie constellation-multi-gnss-coverage (Fire GNSS-konstellationer, ét kort), motor v0.40.0 kørende lokalt. Til venstre scenariebiblioteket, 139 scenarier i 16 domæner. De fem trin Vælg, Indstil, Kør, Læs resultater og Del eller eksportér, med trin 4 aktuelt. Nøgletal: 102 satellitter, tilgængelighed 100 % (PASS), median af positionsfortyndingen (PDOP) 0,95 (PASS), 95. percentil af PDOP 1,105 (PASS), 31,03 satellitter i sigte i gennemsnit og 22 som færrest. Nedenfor panelrækken med Dækning valgt, afspilningslinjen, et verdenskort over den gennemsnitlige PDOP fra 0,831 til 1,0853 med hver satellit tegnet og de globale dækningstal.

Studios kildekode og dens byggenoter findes i web/README.md.

Webstedet#

Resten af kshana.dev er bygget af dette repositorys egne filer og motorkørsler: missioner, funktioner, evidensregistret, den udgivne forskning og udgaverne.

Tre sider fra kshana.dev side om side. Forsidens hero: navnelinjen Kshana · क्षण · det præcise øjeblik over overskriften Øv det minut, hvor GNSS går i sort, med missionskonsollen fra en rigtig kørsel af motor v0.40.0 (en globus og tre live-diagrammer: urets tidsfejl, bærebølge-til-støj-densitet og beskyttelsesniveau). Evidens, Offentliggjort forskning: de seks arXiv-artikler bygget på den åbne motor, den nyeste med et motordiagram. Udgaver, Kshana Pro, samme motor, forstærket: Free kører ét scenarie, Pro besvarer programmets spørgsmål.Tre sider fra kshana.dev side om side. Forsidens hero: navnelinjen Kshana · क्षण · det præcise øjeblik over overskriften Øv det minut, hvor GNSS går i sort, med missionskonsollen fra en rigtig kørsel af motor v0.40.0 (en globus og tre live-diagrammer: urets tidsfejl, bærebølge-til-støj-densitet og beskyttelsesniveau). Evidens, Offentliggjort forskning: de seks arXiv-artikler bygget på den åbne motor, den nyeste med et motordiagram. Udgaver, Kshana Pro, samme motor, forstærket: Free kører ét scenarie, Pro besvarer programmets spørgsmål.

Funktioner#

Én motor dækker hele fejlkæden, fra den første jammede satellit til den sidste nanosekund af ur-holdover. Motoren har 92 scenarietyper; kshana kinds viser dem, og docs/SCENARIOS.md dokumenterer hvert felt.

Funktion Hvad den besvarer
Spektrum hvordan en jammer tager GNSS' L-bånd, bånd for bånd, sekund for sekund
Ure og tidssynkronisering hvor længe hvert ur holder tiden, efter GNSS er tabt
Konstellationer omkring ethvert legeme dækning, præcisionsfortynding og tilgængelighed rundt om Jorden, Månen eller Mars
Solsystemet hvor hver planet er, og lystiden for ethvert link
Navigation i lav jordbane en overflyvning, et link, en navigationsmeddelelse og en fusioneret positionsbestemmelse, trin for trin
Kampagner en kædet mission, en sweep eller et Monte Carlo-ensemble i ét scenarie
Animation en kørsels tidsserie som en animeret tegning, en afspiller eller billeder
Rapporter hvert tal med sin enhed og sin etiket, i HTML (HyperText Markup Language) og JSON (JavaScript Object Notation)
Interoperabilitetseksporter baner og geometri til andre værktøjer: SP3, CCSDS OMM og OEM, CZML, KML, GeoJSON, STK og SigMF
Maritim tillid kan broen stole på denne positionsbestemmelse: en score fra 0-100 og begrundelser for et fartøjs NMEA, live eller fra en log (vejledende, ikke typegodkendt navigationsudstyr)
NMEA-træningsstrømme syntetisk NMEA fra broen med scriptet jamming og spoofing og en instruktørlog, til besætningstræning (kun tekst; aldrig til et fartøjs levende navigationssystemer; vejledende, ikke typegodkendt navigationsudstyr)
Interferenskort hvor fly og skibe har rapporteret forringede navigationsdata, og hvor meget af en rute det berører
Senderområde hvor en kilde til forringede positionsrapporter under angivne antagelser kan være: områder ved angivet konfidens, et tyngdepunkt med dets ellipse, aldrig et punkt (MODELLED; kshana interference-map locate)
Bevispakker en signeret teknisk registrering, der kan verificeres offline, af et fartøjs logvindue og af, hvad motoren beregnede ud fra det, til en hændelsesrapport (vejledende, ikke typegodkendt navigationsudstyr)
Tillidstelemetri tillidsstrømmen som Prometheus-målinger, SIEM-hændelser og valgfri OpenTelemetry, med et eksempel på et Grafana-dashboard (deploy/grafana/kshana-gnss-trust.json)
Signal K og OpenCPN tillidsscoren på en bådes Signal K-server og i OpenCPN, med en referencebuild til en lille computer ved siden af modtageren (vejledende, ikke typegodkendt navigationsudstyr)
Eksport til testbænk kshana bench-export: et scenaries køretøjsbevægelse og hændelser til en GNSS-simulator i laboratoriet (intet signal skrives), og hvordan modtagerens log bagefter scores
Compliance-kortlægning og rapport kshana compliance-report: hvilke rækker i offentlige resiliensrammer et sæt kørsler leverer belæg for, og det hul, der er tilbage
Notebooks kørbare vejledninger: fartøjstillid og træningsstrømme, ruteeksponering for interferenskort, compliance-kortlægning og testbench, kvante mod klassisk GDOP
Verifikator for Galileo OSNMA hvilke satellitters navigationsdata en modtager kan autentificere kryptografisk, og hvorfor en kontrol fejler; Kshana giver ingen rettigheder under EU's OSNMA ICD IPR'er (se NOTICE på siden)

Eksportformaterne i fuld form: SP3 er Standard Product 3; CCSDS OMM og OEM er Orbit Mean-elements Message og Orbit Ephemeris Message fra Consultative Committee for Space Data Systems; CZML og KML er Cesium- og Keyhole Markup Language; STK er Systems Tool Kit; SigMF er Signal Metadata Format.

Den kædede kampagne campaign-jam-spoof-holdover-integrity, én egentlig kørsel af motoren (seed 20260928): 6 faser (Nominal → Jamming → Spoofing → Holdover → Integrity alarm → Recovery) og 18 medlemskørsler på et gitter på 10 s over T+01:16:10. Tre baner: urets tidsfejl mod en grænse på 50 ns (top 62,7 ns), effektiv bærebølge-til-støj-tæthed mod en bund på 25 dB-Hz (minimum -12.2 dB-Hz) og vertikalt beskyttelsesniveau mod en alarmgrænse på 50 m (top 135,4 m), med kørslens alarmhændelser: T+00:20:00 alarmer fra RF-spoofingdetektoren (fusionerede monitorer for konsistens, effekt og signalkvalitet); T+00:26:10 alarmer fra urstøttet spoofingmonitor.Den kædede kampagne campaign-jam-spoof-holdover-integrity, én egentlig kørsel af motoren (seed 20260928): 6 faser (Nominal → Jamming → Spoofing → Holdover → Integrity alarm → Recovery) og 18 medlemskørsler på et gitter på 10 s over T+01:16:10. Tre baner: urets tidsfejl mod en grænse på 50 ns (top 62,7 ns), effektiv bærebølge-til-støj-tæthed mod en bund på 25 dB-Hz (minimum -12.2 dB-Hz) og vertikalt beskyttelsesniveau mod en alarmgrænse på 50 m (top 135,4 m), med kørslens alarmhændelser: T+00:20:00 alarmer fra RF-spoofingdetektoren (fusionerede monitorer for konsistens, effekt og signalkvalitet); T+00:26:10 alarmer fra urstøttet spoofingmonitor.
Hver funktion, tegnet ud fra en egentlig kørsel: L-bånds-vandfaldet, dækningskortet, solsystemet og en overflyvning i lav jordbane
GNSS' L-bånd som én effektspektraltæthed over 60 s, fra en egentlig kørsel af typen spectrum (l-band-waterfall-jamming.toml, seed 7, motor v0.40.0): frekvens på tværs, tid nedad, farve for effekt over støjgulvet på -202.0 dBW/Hz. Jammere: chirp-enhed til privatlivsbeskyttelse (chirp, tændt ved 10 s, slukket ved 40 s); CW-tone på L1 (cw, tændt ved 30 s); L2-smalbåndsstøj (narrowband, tændt ved 45 s). Værste bånd GPS L1 C/A: minimum effektiv C/N0 3,2 dB-Hz ved 31 s mod et sporingsgulv på 25 dB-Hz. GPS L1 C/A minimum 3,2 dB-Hz; Galileo E1 minimum 4,7 dB-Hz; GPS L2C minimum 36,9 dB-Hz; GPS L5 minimum 44,1 dB-Hz; Galileo E5a minimum 47,0 dB-Hz.GNSS' L-bånd som én effektspektraltæthed over 60 s, fra en egentlig kørsel af typen spectrum (l-band-waterfall-jamming.toml, seed 7, motor v0.40.0): frekvens på tværs, tid nedad, farve for effekt over støjgulvet på -202.0 dBW/Hz. Jammere: chirp-enhed til privatlivsbeskyttelse (chirp, tændt ved 10 s, slukket ved 40 s); CW-tone på L1 (cw, tændt ved 30 s); L2-smalbåndsstøj (narrowband, tændt ved 45 s). Værste bånd GPS L1 C/A: minimum effektiv C/N0 3,2 dB-Hz ved 31 s mod et sporingsgulv på 25 dB-Hz. GPS L1 C/A minimum 3,2 dB-Hz; Galileo E1 minimum 4,7 dB-Hz; GPS L2C minimum 36,9 dB-Hz; GPS L5 minimum 44,1 dB-Hz; Galileo E5a minimum 47,0 dB-Hz. Satellitter i sigte over hele Jorden i ét døgn, fra en egentlig kørsel af constellation-design (constellation-multi-gnss-coverage.toml, motorkørsel af denne generator): 102 satellitter (GPS 24, Galileo 24, BeiDou 30, GLONASS 24). Hver celle på 10 grader er skraveret efter det gennemsnitlige antal satellitter over masken på 10 grader (27,2 til 36,5); prikkerne er motorens sporpunkter på jorden, ét pr. time pr. satellit. Global tilgængelighed 100,00 % ved PDOP på eller under 6, median-PDOP 0,95, gennemsnit 31,0 og mindst 22 satellitter i sigte.Satellitter i sigte over hele Jorden i ét døgn, fra en egentlig kørsel af constellation-design (constellation-multi-gnss-coverage.toml, motorkørsel af denne generator): 102 satellitter (GPS 24, Galileo 24, BeiDou 30, GLONASS 24). Hver celle på 10 grader er skraveret efter det gennemsnitlige antal satellitter over masken på 10 grader (27,2 til 36,5); prikkerne er motorens sporpunkter på jorden, ét pr. time pr. satellit. Global tilgængelighed 100,00 % ved PDOP på eller under 6, median-PDOP 0,95, gennemsnit 31,0 og mindst 22 satellitter i sigte. Solsystemet ved scenariets epoke 2026-09-28T00:00:00, fra en egentlig kørsel af typen solar-system (solar-system-tour.toml): Solen, 9 planeter og dværgplaneten Pluto set oppefra ekliptika, afstande komprimeret logaritmisk til visning, med hvert legemes envejs lystid fra Jorden. Merkur 0,47 au, 10,1 lysminutter, VALIDATED; Venus 0,73 au, 3,0 lysminutter, VALIDATED; Mars 1,55 au, 14,0 lysminutter, VALIDATED; Jupiter 5,30 au, 49,5 lysminutter, VALIDATED; Saturn 9,44 au, 70,2 lysminutter, VALIDATED; Uranus 19,44 au, 157,4 lysminutter, MODELLED; Neptun 29,88 au, 240,2 lysminutter, MODELLED; Pluto 35,61 au, 292,2 lysminutter, MODELLED. Links: Mars til Jupiter envejs 2193,5 s; Saturn til Jorden envejs 4212,2 s; Europa til Jupiter envejs 2,2 s.Solsystemet ved scenariets epoke 2026-09-28T00:00:00, fra en egentlig kørsel af typen solar-system (solar-system-tour.toml): Solen, 9 planeter og dværgplaneten Pluto set oppefra ekliptika, afstande komprimeret logaritmisk til visning, med hvert legemes envejs lystid fra Jorden. Merkur 0,47 au, 10,1 lysminutter, VALIDATED; Venus 0,73 au, 3,0 lysminutter, VALIDATED; Mars 1,55 au, 14,0 lysminutter, VALIDATED; Jupiter 5,30 au, 49,5 lysminutter, VALIDATED; Saturn 9,44 au, 70,2 lysminutter, VALIDATED; Uranus 19,44 au, 157,4 lysminutter, MODELLED; Neptun 29,88 au, 240,2 lysminutter, MODELLED; Pluto 35,61 au, 292,2 lysminutter, MODELLED. Links: Mars til Jupiter envejs 2193,5 s; Saturn til Jorden envejs 4212,2 s; Europa til Jupiter envejs 2,2 s. Én overflyvning i lav jordbane (LEO) fra en egentlig kørsel af typen leo-pass (leo-pass-iridium.toml, motorkørsel af denne generator): Iridium-overflyvning i 781 km, STL-bånd ved 1621 MHz, set af en luftbruger ved 50° N 30° V. Over masken på 5° i 750 s, maksimal elevation 65,0° ved 444 s. Bærebølge-til-støj-tæthed topper ved 80,5 dB-Hz (median 71,3), 34,3 dB over GNSS-medianen på 46,2 dB-Hz fra 8 GPS-satellitter i sigte (38,2 til 51,1 dB-Hz); Doppler når 35,4 kHz.Én overflyvning i lav jordbane (LEO) fra en egentlig kørsel af typen leo-pass (leo-pass-iridium.toml, motorkørsel af denne generator): Iridium-overflyvning i 781 km, STL-bånd ved 1621 MHz, set af en luftbruger ved 50° N 30° V. Over masken på 5° i 750 s, maksimal elevation 65,0° ved 444 s. Bærebølge-til-støj-tæthed topper ved 80,5 dB-Hz (median 71,3), 34,3 dB over GNSS-medianen på 46,2 dB-Hz fra 8 GPS-satellitter i sigte (38,2 til 51,1 dB-Hz); Doppler når 35,4 kHz.

Kør en hvilken som helst af dem med kshana example <scenario> > s.toml && kshana s.toml: scenarierne er l-band-waterfall-jamming, constellation-multi-gnss-coverage, solar-system-tour og leo-pass-iridium.

De maritime og interferensrelaterede funktioner, tegnet ud fra indlagte syntetiske input: en tillidsscore, et interferenskort med ruteeksponering, en træningsstrøm og en bevispakke
Tillidsscore over én syntetisk passage, fra en virkelig kørsel af motoren v0.40.0 på examples/maritime-trust (en opdigtet NMEA-log fra en færge på en rute fra Tallinn til Helsinki, 3001 epoker ved 1 Hz). Tre baner deler én tidsakse. Øverst: afstanden mellem den position, modtageren rapporterer, og fartøjets virkelige position, som holder sig inden for nogle få meter indtil omkring 1576 s, hvor logens indskrevne bortledning af positionen trækker den væk, mens modtageren bliver ved med at rapportere en gyldig positionsbestemmelse. I midten: tillidsscoren fra 0 til 100, ikke beregnet i de første 300 s af kalibreringen, i båndet nominal (mindst 90) indtil bortledningen, derefter faldende gennem båndet degraded (mindst 55) ned i båndet untrusted. Nederst: hver epokes bånd som et farvet bånd med sit navn. Scoren er vejledende. Vejledende software, ikke typegodkendt navigationsudstyr (IEC 61108, IEC 61162): operatøren er fortsat ansvarlig for fartøjets navigation. Loggen er opdigtet for at vise formatet og monitorerne; den er ikke en måling og siger intet om, hvordan nogen modtager ville yde.Tillidsscore over én syntetisk passage, fra en virkelig kørsel af motoren v0.40.0 på examples/maritime-trust (en opdigtet NMEA-log fra en færge på en rute fra Tallinn til Helsinki, 3001 epoker ved 1 Hz). Tre baner deler én tidsakse. Øverst: afstanden mellem den position, modtageren rapporterer, og fartøjets virkelige position, som holder sig inden for nogle få meter indtil omkring 1576 s, hvor logens indskrevne bortledning af positionen trækker den væk, mens modtageren bliver ved med at rapportere en gyldig positionsbestemmelse. I midten: tillidsscoren fra 0 til 100, ikke beregnet i de første 300 s af kalibreringen, i båndet nominal (mindst 90) indtil bortledningen, derefter faldende gennem båndet degraded (mindst 55) ned i båndet untrusted. Nederst: hver epokes bånd som et farvet bånd med sit navn. Scoren er vejledende. Vejledende software, ikke typegodkendt navigationsudstyr (IEC 61108, IEC 61162): operatøren er fortsat ansvarlig for fartøjets navigation. Loggen er opdigtet for at vise formatet og monitorerne; den er ikke en måling og siger intet om, hvordan nogen modtager ville yde. To syntetiske dage med interferenskort, tegnet ud fra de indcheckede eksempler i examples/interference-map/output, hver med sin egen syntetiske rute og de andele af ruteeksponering, som motoren rapporterer. Til venstre en ADS-B-dag: 1 forringet celle, 6 ikke forringede, 4 uvurderede (skraverede) og celler uden post, tegnet tomme, som ikke blev observeret. Ruten er 525 km: 11,5% af dens længde i forringede celler, 38,3% ikke forringet, 9,1% uvurderet og 41,1% ikke observeret. Til højre en AIS-dag: celler markeret af cirkel- og landdetektorerne, ikke-afvigende celler og tomme celler; ruten er 454 km med 10,5% i afvigende celler, 21,2% ikke afvigende, 0,0% uvurderet og 68,3% ikke observeret. ADS-B og AIS er separate lag, aldrig kombineret. En markeret celle er ikke et fund af interferens, og en celle uden farve blev ikke observeret, hvilket ikke er det samme som fri. Alle data er opdigtede, i det åbne Atlanterhav, og ikke en måling.To syntetiske dage med interferenskort, tegnet ud fra de indcheckede eksempler i examples/interference-map/output, hver med sin egen syntetiske rute og de andele af ruteeksponering, som motoren rapporterer. Til venstre en ADS-B-dag: 1 forringet celle, 6 ikke forringede, 4 uvurderede (skraverede) og celler uden post, tegnet tomme, som ikke blev observeret. Ruten er 525 km: 11,5% af dens længde i forringede celler, 38,3% ikke forringet, 9,1% uvurderet og 41,1% ikke observeret. Til højre en AIS-dag: celler markeret af cirkel- og landdetektorerne, ikke-afvigende celler og tomme celler; ruten er 454 km med 10,5% i afvigende celler, 21,2% ikke afvigende, 0,0% uvurderet og 68,3% ikke observeret. ADS-B og AIS er separate lag, aldrig kombineret. En markeret celle er ikke et fund af interferens, og en celle uden farve blev ikke observeret, hvilket ikke er det samme som fri. Alle data er opdigtede, i det åbne Atlanterhav, og ikke en måling. Træningsstrøm fra scenariet coastal-drag-off (motor v0.40.0, seed 22, 25 minutter med én positionsbestemmelse pr. 10 s fra instruktørloggen). Et kort viser fartøjets sande spor og det spor, modtageren rapporterer: de er enige, indtil en indskrevet positions-drag-off begynder ved 421 s; det rapporterede spor driver derefter væk fra det sande, mens modtageren beholder en gyldig positionsbestemmelse, og springer tilbage, når hændelsen slutter ved 1140 s. Ved siden af ses afstanden mellem de to spor over tid og den gennemsnitlige bærebølge-til-støj-tæthed, som modtageren rapporterer, og som stiger til ét forhøjet niveau, så længe hændelsen varer. Syntetiske træningsdata genereret af Kshana. Kun til træning og test: før aldrig denne strøm ind i et fartøjs levende navigationssystemer. Vejledende, ikke typegodkendt navigationsudstyr. Vejledende software, ikke typegodkendt navigationsudstyr (IEC 61108, IEC 61162): operatøren er fortsat ansvarlig for fartøjets navigation. Positioner, datoer og spor er opfundne.Træningsstrøm fra scenariet coastal-drag-off (motor v0.40.0, seed 22, 25 minutter med én positionsbestemmelse pr. 10 s fra instruktørloggen). Et kort viser fartøjets sande spor og det spor, modtageren rapporterer: de er enige, indtil en indskrevet positions-drag-off begynder ved 421 s; det rapporterede spor driver derefter væk fra det sande, mens modtageren beholder en gyldig positionsbestemmelse, og springer tilbage, når hændelsen slutter ved 1140 s. Ved siden af ses afstanden mellem de to spor over tid og den gennemsnitlige bærebølge-til-støj-tæthed, som modtageren rapporterer, og som stiger til ét forhøjet niveau, så længe hændelsen varer. Syntetiske træningsdata genereret af Kshana. Kun til træning og test: før aldrig denne strøm ind i et fartøjs levende navigationssystemer. Vejledende, ikke typegodkendt navigationsudstyr. Vejledende software, ikke typegodkendt navigationsudstyr (IEC 61108, IEC 61162): operatøren er fortsat ansvarlig for fartøjets navigation. Positioner, datoer og spor er opfundne. Strukturen i en bevispakke. En modtagerlog (NMEA, u-blox UBX, RINEX 3 eller en Android-log) og et tidsvindue går ind i kshana receiver-trust evidence, som skriver syv filer: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig og en valgfri timestamp.tsr. Manifestet registrerer SHA-256 af hele loggen og af hver fil samt en hashkæde over filerne; signaturen dækker manifestet. kshana evidence verify kontrollerer signaturen, hver fils hash, kæden og at ingen fil uden for listen findes, og afslutter med 0, når det er verificeret, 1, når noget fejlede, og 3, når underskriveren ikke var fastlåst. En pakke er en teknisk registrering, ikke en juridisk udtalelse.Strukturen i en bevispakke. En modtagerlog (NMEA, u-blox UBX, RINEX 3 eller en Android-log) og et tidsvindue går ind i kshana receiver-trust evidence, som skriver syv filer: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig og en valgfri timestamp.tsr. Manifestet registrerer SHA-256 af hele loggen og af hver fil samt en hashkæde over filerne; signaturen dækker manifestet. kshana evidence verify kontrollerer signaturen, hver fils hash, kæden og at ingen fil uden for listen findes, og afslutter med 0, når det er verificeret, 1, når noget fejlede, og 3, når underskriveren ikke var fastlåst. En pakke er en teknisk registrering, ikke en juridisk udtalelse.

Alle fire er opdigtede data og vejledende: de viser softwarens format og adfærd, ikke hvordan nogen modtager eller noget system klarer sig mod interferens. Kør den første med kshana receiver-trust examples/maritime-trust/session.toml, den anden med kshana route-exposure på eksemplerne i examples/interference-map/, den tredje med kshana nmea-scenario scenarios/training/coastal-drag-off.toml --out drag.nmea (kun til træning: før den aldrig ind i levende navigationsudstyr) og den fjerde som i docs/EVIDENCE-PACKS.md.

Den fulde funktionstabel, domæne for domæne

Den fulde detalje domæne for domæne følger; for et modenhedsregister pr. funktion se docs/CAPABILITY.md og docs/VALIDATION.md.

Domæne Funktion
Bane og geometri SGP4/SDP4-propagering (valideret til 4,12 mm mod alle 666 AIAA 2006-6753-vektorer); egentlige two-line elements (et indlagt, datostemplet øjebliksbillede fra Celestrak (gps-ops)) eller syntetiske Walker-delta-konstellationer, hvis middelelementer realiserer formlen i:T/P/F til under 1 km over en propagering på 24 h; multikonstellationssynlighed, præcisionsfortynding — geometrisk, position, horisontal, vertikal og tid (GDOP/PDOP/HDOP/VDOP/TDOP), valideret til 1e-6 mod gnss_lib_py 1.0.4, Stanford NAV Lab (Navigation and Autonomous Vehicles Laboratory), og GNSS-tilgængelighed; et gradientfrit optimeringsværktøj til konstellationsudformning, dimensionering af minimumsantal satellitter efter streets-of-coverage, et værktøj til sammenligning af flere konstellationer og en Walker-udformningssweep, der tabulerer dækning / PDOP / gensynstid over et gitter af planer × satellitter og rapporterer de Pareto-optimale udformninger.
Numerisk propagator En numerisk propagator af typen Cowell (src/propagator.rs), der supplerer den analytiske SGP4/SDP4-vej, med en hierarkisk kraftmodel med syv forstyrrelser (src/forces.rs): tolegeme + det fulde J2–J6 zonale felt (de zonale harmoniske koefficienter for Jordens fladtrykthed J2 til J6; den nøjagtige analytiske gradient af dets forstyrrende potentiale), et valgfrit EGM2008 tesseralt kuglefunktions-geopotentiale til grad/orden 70 (Earth Gravitational Model 2008; src/gravity_sh.rs; egentlige koefficienter fra NGA — US (United States) National Geospatial-Intelligence Agency —, Holmes–Featherstone normaliseret Legendre-rekursion, krydskontrolleret mod de lukkede Legendre-funktioner og den analytiske ∇V-identitet), epokestyret tredjelegemegravitation fra Solen og Månen (en indbygget efemeride med lav præcision, ingen DE/SPK — Development Ephemeris / SPICE Spacecraft and Planet Kernel — kerne), strålingstryk fra Solen (kanonkuglemodel med en konisk umbra+penumbra-skygge), atmosfærisk modstand (Vallados stykvis eksponentielle tæthed, medroterende atmosfære), den post-newtonske relativistiske Schwarzschild-korrektion og leddet for Lense–Thirring frame-dragging (IERS — International Earth Rotation and Reference Systems Service — Conventions 2010 §10, lineært i Jordens impulsmoment, ~1–2 størrelsesordener under Schwarzschild) — drevet af et valg mellem to adaptive integratorer (RK4 — fjerdeordens Runge–Kutta — med trindobling eller det indlejrede par Dormand–Prince RK5(4)). Valideret mod Orekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 — 278 epoker på tværs af LEO (lav jordbane) + GTO (geostationær transferbane), hvor de konservative kraftniveauer stemmer til en værste-tilfælde |Δr| 0,08 m over 24 h (tests/numerical_cowell_propagator_reference.rs); niveauet for atmosfærisk modstand karakteriseres separat (≈ 333 m / 24 h), og de absolutte input for efemeriderne for Solen og Månen og for tætheden forbliver ærligt modelleret. Yderligere intern evidens (ikke ekstern validering): den uforstyrrede bane er kontrolleret mod den nøjagtige universal-variable Kepler-løsning til under en meter over 24 h, energi/impulsmoment bevares til ~1e-9, og hver forstyrrelse svarer til en håndudledt lukket signatur.
Manøvrer og banedesign Impulsive ΔV-knuder med 6×6 kovariansudbredelse (ECI — Earth-centred inertial — / LVLH — local vertical, local horizontal — udførelsesfejlsystemer), integration af endelig brænding kontrolleret mod den lukkede raketligning af Tsiolkovsky til < 0,01 %, en løser af typen Lambert baseret på Izzo-2015 for enkelt omløb, en nøjagtig propagator med universal-variable af typen Kepler og en sweep af typen porkchop (opsendelse × ankomst) af C3 (opsendelsesenergi) / ankomst-V∞, udgivet som et JSON-konturgitter — præstationssimuleringslaget over GMAT/Orekit, hvor hvert Lambert-output er kørt rundt mod tolegemereference og porkchop-minimummet er kontrolleret mod det analytiske Hohmann-gulv.
Tidssystemer og referencesystemer IERS-skudsekund-skalaerne UTC / TAI / TT / UT1 (Coordinated Universal Time, International Atomic Time, Terrestrial Time og jordrotationstiden Universal Time 1), et API til Julian-datoer (application programming interface), den Earth Rotation Angle (ERA) fra IAU-2000 (International Astronomical Union), GMST-baseret (Greenwich Mean Sidereal Time) TEME ↔ ECEF (true equator, mean equinox ↔ Earth-centred, Earth-fixed) med geodætiske systemer fra WGS-84 (World Geodetic System 1984), præcession ifølge IAU 2006 (Fukushima–Williams), den fulde IAU 2000A/2000B-nutation, IERS polbevægelse og den ækvinoksfrie CIO-baserede IAU 2006/2000A GCRS↔ITRS-reduktion (CIO = Celestial Intermediate Origin) — alt valideret bit for bit mod SOFA/ERFA-vektorerne og uafhængigt krydskontrolleret mod ANISE (den rene Rust-genimplementering af NAIF/SPICE; NAIF = Navigation and Ancillary Information Facility hos NASA, den amerikanske National Aeronautics and Space Administration): Kshanas GCRS→ITRS mod ANISEs ITRF93 (International Terrestrial Reference Frame 1993) fra JPLs earth_latest_high_prec.bpc, med de samme IERS-jordorienteringsparametre givet til begge, stemmer til ≤ 0,86 m på jorden / ≤ 3,6 m ved GNSS-bane (maks. 0,028″) på tværs af otte epoker 2020–2023.
Inertial Tre-akset strapdown-INS — kvaternionattitude, WGS-84 NED-mekanisering (north-east-down), coning/sculling-kompensation og en deterministisk IMU-fejlmodel (skalafaktor, fejlretning, g-følsomhed, kvantisering, drift); et førsteprincip-baseret accelerometer med koldatom-interferometer (Mach–Zehnder-fase, kvanteprojektionsstøj, kontrastaftagning, vibrationskobling), der udleder koefficienten for hastighedsrandomwalk; og et partikelfilter med sekventiel vigtighedsresampling til kortstøttet (terræn-/tyngdereferencet) navigation uden GPS.
Alt-PNT (uden GPS) En målemodel for et koldatom-gravimeter, hvis hvidstøjsgulv (σ = ASD/√τ, ASD = amplitude spectral density) er udledt af fysikken i CAI-accelerometeret; et fuldt normaliseret kuglefunktions-tyngdeanomalifelt af lav grad (kontrolleret mod de lukkede Legendre-funktioner og en håndudledt anomali med ét led) plus syntetiske mascons; kernen til syntese af tyngdefunktionaler (gravity_sh::gravity_magnitude / gravity_disturbance_mgal) — "kortlæseren", som en tyngdestøttet navigator matcher mod — er valideret mod GRS80-normaltyngdestandarden (Geodetic Reference System 1980), idet den gengiver den lukkede Somigliana-normaltyngde og de offentliggjorte γ_e / γ_p til 3.5e-12 og frembringer et fysisk afgrænset forstyrrelseskort ud fra det egentlige ICGEM-felt (International Centre for Global Earth Models) EGM2008 (RMS — root mean square — ≈ 26 mGal, maks. ≈ 89 mGal ved d/o 70; tests/icgem_gravity_reference.rs); og et partikelfilter til tyngdekortmatchning, der genfinder et spor uden GPS ud fra den anomalisekvens, det flyver igennem. Det udvides til terrænreferencet navigation (TERCOM/SITAN — terrain contour matching / Sandia Inertial Terrain-Aided Navigation — mod en SRTM (Shuttle Radar Topography Mission) .hgt DEM (digital elevation model), src/altpnt/terrain.rs), et geomagnetisk IGRF-14-hovedfelt (14. generation af International Geomagnetic Reference Field) til grad/orden 13 (src/igrf.rs, kontrolleret mod den lukkede form for den skrå dipol og ∇V-finitte differenser), og en kombineret tyngde- + magnet- + terræn-navigator, der fusionerer alle tre skalare kanaler gennem ét partikelfilter (information er additiv — ingen kanal gør positionsbestemmelsen dårligere). Et 60-minutters benchmark uden GPS (et udfald på ~700 km / én time, hvor den inertielle løsning driver til ~70 km) genfindes til ~145 m (< 500 m) af en hierarkisk grov-til-fin matcher — målet for ESA NAVISP (Navigation Innovation and Support Programme) Quantum Wayfarer.
Fusion Løst koblet 15-tilstands GNSS/INS-fejltilstands-EKF (extended Kalman filter) med lukket feedback (pakken gnss-ins); en tæt koblet pseudoafstandsopdatering, der bliver ved med at korrigere med færre end fire satellitter; et koblet filter for ur + position; en generel estimator af typen unscented (sigma-punkt) Kalman til stærkt ikke-lineære målinger; en tæt koblet GNSS/INS-UKF-navigator (pseudoafstand + Doppler), hvis baneoverbrygning med kraftmodel er selvkonsistenskontrolleret til 0,77 m RMS over en 30-minutters krummende LEO-passage med et GNSS-udfald på 120 sekunder (et tal for filterkonsistens, ikke en validering mod en ekstern reference — denne navigator forbliver MODELLED); og en fuld 17-tilstands tæt koblet GNSS/INS-UKF (position, hastighed, attitudefejl, accelerometer- og gyrobiaser, urbias og -drift), hvis kvante-CAI-dødregning overbryger et udfald på 120 sekunder på det udledte hastighedsrandomwalk for koldatom-accelerometeret.
Banebestemmelse Genfinding af en banetilstand [r, v] ud fra afstandssporing fra jordstationer, sammensat af tolegeme- + J2-kraftmodellen og RK4-integratoren med en korrektor af typen Gauss–Newton batch (determine_orbit_batch, under en meter / mm·s⁻¹ ud fra støjfri afstande, ~2 m ved et støjgulv på 5 m) og en sekventiel variant med unscented-filter (determine_orbit_sequential).
Observerbarhed og estimationsteori Et generelt, genanvendeligt lag for Fisher-information / Cramér–Rao (src/fim.rs): informationsmatricen M = HᵀWH, den nedre Cramér–Rao-grænse, observabilitetens rang og nulrum for datumdefekt (Moore–Penrose-pseudoinvers) og D/A/E/T-optimale skalarer til forsøgsudformning fra en symmetrisk Jacobi-egenværdiløser. Valideret — egenværdier mod numpy.linalg.eigh, CRLB-kovariansen mod σ²(XᵀX)⁻¹ via numpy.linalg.inv, og GNSS-DOP ud fra informationsmatricen, alle matchet til 1e-9 (tests/fim_observability_reference.rs), og desuden krydskontrolleret mod de lukkede grænser fra Kay (1993) med Monte Carlo-opnåelse af CRLB. Det ligger under DOP-motoren, CRLB for passiv geolokalisering og observabilitetssætningen for absolutte stationer på Månen (nedenfor).
Måne og cislunart rum En propagator for det cirkulære begrænsede trelegemeproblem (CR3BP) Jord–Måne i det roterende system — bevaret Jacobi-konstant og alle fem Lagrange-punkter (src/cr3bp.rs) — nu med en 6×6 tilstandsovergangsmatrix (STM) og en differentialkorrektor med enkelt skydning (cr3bp_jacobian, propagate_state_stm, differential_correct_halo), der frembringer ægte periodiske baner af typen halo / NRHO (near-rectilinear halo orbit): STM'en er valideret mod finitte differenser, korrigerede baner lukker til maskinpræcision, og såning med den offentliggjorte apolun-tilstand gengiver L2 sydlig 9:2 NRHO (L2 = det andet Lagrange-punkt Jord–Måne; Gateway-banen) ved periode ≈ 6,57 d / perilun ≈ 3.250 km, i tråd med de offentliggjorte ≈ 6,56 d / ≈ 3.370 km (en CR3BP-løsning — cirkulær, uden Solen —, ikke valideret mod en egentlig LANS (Lunar Augmented Navigation Service)-/Gateway-efemeride; den selenocentriske MCI/MCMF-transformation (Moon-centred inertial / Moon-centred, Moon-fixed) af den korrigerede bane følger senere); plus LunaNet / LNIS (LunaNet Interoperability Specification) cislunar PNT-geometri (MCI↔MCMF-reduktion, selenografiske koordinater) med en ARAIM-passage ved Månens sydpol, der ærligt bringer integritetshullet frem: en σ_URE (user range error) på ~30 m driver beskyttelsesniveauet langt over en alarmgrænse på 50 m (src/lunar.rs, scenarios/lunanet-araim.toml); og en DOP-forøgelse med overfladebeacons (src/lunar_beacon.rs), der viser, hvordan nogle få opmålte afstandsmålende overfladebeacons leverer de rækker af sigtelinjer med lav elevation og bredt azimut, som et sæt med kun baner og alt overhead mangler — hvilket får den dårligt konditionerede GDOP ved sydpolen til at falde og, via et rod-sum-kvadrat-fejlbudget, den realiserede positionsnøjagtighed i meter (genbruger den med gnss_lib_py validerede DOP-kerne og den lukkede form for synlighed ved en luftløs horisont; analysen af præcisionsfortynding er skrevet op i arXiv:2607,06212).
Månens PNT-pakke En navigationspakke for Månen og det cislunare rum lagt oven på CR3BP-kernen, hver en kørbar kind: Lunar Coordinate Time (lunar-time-offset, src/lunar_time.rs — den sekulære rate LTC/TCL − TT (LTC = Lunar Coordinate Time; TCL = dens franske form, Temps-Coordonnée Lunaire) ud fra forskellen i selvpotentiale + et kinetisk led, rapporteret med det offentliggjorte bånd på 56–59 µs/dag); en geodætisk observabel for lunar VLBI-forsinkelse (very-long-baseline interferometry) (lunar-vlbi, src/lunar_vlbi.rs — en nærfelts forsinkelse + rate for to afstandsforskelle over en Jordbaseline, krydskontrolleret mod Δ-DOR (delta differential one-way ranging) for plane bølger i samme kodebase i fjernfeltsgrænsen, partielle afledte kontrolleret med finitte differenser); en fælles batchestimator for OD + ur med flere teknikker (lunar-joint-od-clock, src/lunar_combination.rs — en Gauss–Newton-tilpasning, der fusionerer VLBI + lokale afstandsmålinger på Månen + afstandsmålinger mellem satellitter) med et resultat om Fisher-information-observabilitet: intern afstandsmåling alene efterlader en datumdefekt for et stift legeme med seks frihedsgrader, så en overfladestations absolutte position er uobserverbar, indtil en forbindelse til Jordsystemet tilføjes — en VLBI-forsinkelse over en Jordbaseline genopretter observabilitet for en spredt konstellation og skærper Cramér–Rao-grænsen for en rig, idet det absolutte datum lukker ved tre ikke-kollineære jordstationer (observabilitetsresultatet er skrevet op i arXiv:2607,02566); realisering af referencesystem (lunar-frame-realisation, src/lunar_frame_realise.rs — en datumtilpasning med 7 Helmert-parametre + orienteringsforbindelse ifølge IAU 2015 WGCCRE — WGCCRE = IAU Working Group on Cartographic Coordinates and Rotational Elements); en analyse af servicevolumen af typen Moonlight/LCNS (LCNS = Lunar Communications and Navigation Services; moonlight-service-volume, src/lunar_service.rs — DOP / dækning / tilgængelighed + en generaliseret ARAIM HPL/VPL-envelope for Månen (horisontalt/vertikalt beskyttelsesniveau), der genbruger den med gnss_lib_py validerede DOP-kerne og LunaNet-maskineriet med σ_URE≈30 m); differentiel PNT på Månen (lunar-differential-pnt, src/lunar_dpnt.rs — en analogi til differentiel GNSS / satellitbaseret forstærkningssystem (SBAS) på Månen: nøjagtig udligning af fællesmodus-ur + førsteordens rumlig dekorrelation mod baseline, der genbruger DO-229E SBAS-beskyttelsesniveauet — DO-229E er RTCA's (tidligere Radio Technical Commission for Aeronautics) minimumsstandard for ydeevne for SBAS-modtagere); og en eksport til interoperabilitet på linje med LunaNet/IOAG (IOAG = Interagency Operations Advisory Group; lunar-interop-export, src/lunar_interop.rs — CCSDS-OEM (Orbit Ephemeris Message) + rundtur for månetidsskala i månelegemesystemet ifølge IAU 2015, pakket ind i KIF-konvolutten). Evidensniveauerne pr. del står i verifikationsmatrixen: Lunar Coordinate Time, den fælles OD + ur-estimator, realiseringen af referencesystemet og geometrien for servicevolumen er VALIDATED (hver mod den uafhængige reference, som dens række nævner, og det samme gælder kernestien for VLBI-forsinkelsen); VLBI-observablen, resultatet om observabilitet for datumdefekt, differentiel PNT og eksporten til interoperabilitet er MODELLED. Parametrene er illustrative værdier fra offentlige kilder — ikke valideret mod egentlig VLBI-/Gateway-sporing, ikke tilknyttet eller støttet af nogen myndighed, ingen påstand om TRL (technology readiness level) / arv.
PNT i dybt rum og på Mars En åben radiometrisk navigationsmotor: iterativ lystid + relativistisk Shapiro-forsinkelse, to-/en-/treveis Doppler & afstand (Moyer med to ben), koherente omsætningsforhold for transpondere, regenerativ/PN-afstandsmåling (pseudo-noise) (CCSDS 414, standarden for pseudo-støj-afstandsmåling) og Δ-DOR i himmelplanet (CCSDS 506, Delta-DOR-standarden), med medier for solplasma/troposfære/ionosfære; parsing og udsendelse af sporingsdatameddelelser i CCSDS-TDM (503); et reduceret-dynamisk Square-Root Information Filter (RTN — radial, transversal, normal — empiriske accelerationer + et ur om bord med 3 tilstande + atmosfærisk modstand på Mars), der foretager banebestemmelse i Mars-LMO til ≈ 0,2 m i en syntetisk lukket sløjfe; en fælles estimator til fusion af envejs + tovejs; en dynamikkerne for flere legemer (Body{μ, re, zonals, gravity, IAU-pole}, tyngde fra Mars GMM-3 (Goddard Mars Model 3), et IAU-legemefast Mars-system, en tilslutningsbar grænseflade EphemerisProvider, todelte Julian-datoer + TT↔TDB (Barycentric Dynamical Time)); og relæ-PNT-scenariet mars-pnt (en MARCONI-konstellation af areostationære relæer) med en ende-til-ende-GSE-præstationssimulator (GSE = ground-support equipment) (geometri → linkbudget → observabler → SRIF → kovarians). Simulationsvalideret (kovarians / kvalitetsmål for lukket sløjfe); Mars-dynamikken med Solen som centrum er krydskontrolleret mod JPL DE440 (137 m @ 1-dags bue, xval/anise-mars-od). Validering mod egentlige DSN/ESTRACK-sporingsdata står på køreplanen.
Solsystemet og PNT omkring et vilkårligt legeme En efemeride for hele solsystemet uden kerner (src/ephem.rs, src/ephem_provider.rs): hver planet ud fra JPL's Standish' Kepler-elementer (Tabel 1, 1800–2050 e.Kr.; Tabel 2a/2b, 3000 f.Kr.–3000 e.Kr.) med hver planets offentliggjorte nominelle fejl, Jorden og Månen adskilt af månerækken og Phobos, Deimos, Io, Europa, Ganymedes, Callisto og Titan ud fra JPL's middelelementer og IAU's rotationsmodel; ethvert legeme i forhold til ethvert andet i ICRF (International Celestial Reference Frame). Body rummer nu GM (gravitationsparameter), radier, J2 (den anden zonale harmoniske), hvor den er offentliggjort, og IAU-pol og nulmeridian for atten legemer. Typen solar-system rapporterer positioner, hastigheder, konstanter, lystid og envejs-/tovejsafstand mellem to vilkårlige legemer (den eksisterende radiometriske lystidsløser med Shapiro-forsinkelse fra Solen) og et sporingsforløb pr. legeme — nok til at tegne et interaktivt solsystem; typen body-pnt placerer en orbiter eller en lander omkring ethvert legeme (scenarios/mars-orbit-pnt.toml, scenarios/europa-surface-pnt.toml) med en lokal Walker-konstellation, maskineriet for præcisionsfortynding og Gauss–Newton og en afstand til dybt rum fra Jorden. Valideret mod JPL Horizons (DE441, JPL Development Ephemeris 441): Merkur–Saturn og Jorden fra Tabel 1 inden for to gange den nominelle fejl (værst 1,87×), alle otte planeter fra Tabel 2a/2b (værst 1,71×) og lystiden Jorden–Mars/Jupiter. Modelleret: Uranus og Neptun fra Tabel 1 (2,0× og 5,2× den angivne fejl mod DE441), Pluto, månerne og navigationsresultaterne fra body-pnt.
Fusioneret MEO + LEO PNT src/leo_fusion/: systemuafhængig LEO-positionering, -navigation og -tidssynkronisering over en vilkårlig konstellation (Walker-skaller, elementsæt, GNSS-forudindstillinger) og et vilkårligt signal (bærebølge, chiprate, C/N0-envelope, signal-i-rummet-afstandsfejl), med valgfrie forudindstillinger i én fil, der bærer deres kilder (Xona Pulsar X1/X5, Iridium STL, Starlink-opportunistiske signaler, CentiSpace, et repræsentativt C-bånds-system, ATOMIC-efemeridemodellen med nulur). leo-pvt: batch-Doppler-positionering ud fra afstandsrate (enkelt- og flersatellit, tilstande for urdrift og hastighed, geometri for enkelt passage langs/på tværs af sporet og spejlløsningen), fælles GNSS + LEO vægtede mindste kvadrater med intersystembiaser pr. system og sigmaer pr. signal givet af kalderen, DOP mod antallet af LEO-satellitter, dækning ved polerne og i Arktis og LEO-tidsoverførsel til UTC mod C/N0 og oscillatoren. leo-ppp: et float-EKF til PPP (precise point positioning; EKF = extended Kalman filter) kun med GNSS og med LEO, dets konvergenstid og en chi-i-anden-NEES-konsistenstest. ntn-positioning: 5G-positionering i ikke-terrestriske net ud fra Cramér–Rao-grænsen for båndbredden. Valideret: LEO-Doppler-envelopen mod de offentliggjorte Iridium- og Xona-tal. Modelleret: resten, med PPP-trenden sammenlignet med Li et al. (2019) — se docs/LEO-PNT-FUSION.md.
Integritet Snapshot- og løsningsseparations-RAIM (i ARAIM-stil) — receiver autonomous integrity monitoring — med horisontale/vertikale beskyttelsesniveauer (HPL/VPL), fejldetektion og -udelukkelse og Stanford-integritetsdiagrammer; et beskyttelsesniveau med eksplicit integritetsrisikobudget og multiple-hypothesis solution separation (MHSS), herunder fejltilstanden på tværs af hele konstellationen for dual-/multikonstellation (EU (Den Europæiske Union) ARAIM / DO-316, RTCA's præstationsstandard for GPS-udstyr i fly med flybaseret forstærkning), afprøvet på et egentligt GPS + Galileo-snapshot (scenarios/araim-gps-galileo.toml). Beskyttelsesniveauet anvender den ensidige projektion af nominel bias b_k = Σ_i|s_i|·b_nom pr. fejltilstand og integritets-sigmaet σ_URA (user range accuracy; adskilt fra nøjagtighedssigmaet σ_URE, user range error) fra Integrity Support Message — se docs/ARAIM_REFERENCE.md. Detektionskernen (tærsklerne for χ²/ikke-central χ²/normal og K-multiplikatorerne) er eksternt valideret mod SciPy på tværs af 171 tilfælde (tests/raim_reference.rs); geometrien genbruger den med gnss_lib_py validerede DOP-kerne. Selve ARAIM MHSS-fordelingen af integritetsrisikobudgettet har ingen offentliggjort numerisk uafhængig reference og forbliver ærligt modelleret.
Augmentation (SBAS) SBAS / WAAS-beskyttelsesniveauer (WAAS = Wide Area Augmentation System) i DO-229E-formen med vægtede mindste kvadrater (K-faktorer for præcisionsindflyvning og en route) og den ionosfærefri L1/L5-tofrekvenskombination (L1 og L5 er to civile GPS-signalbånd; IS-GPS-705, GPS-grænsefladespecifikationen for L5-signalet, γ₁₅ ≈ 1,793), der ligger under DO-316 — src/sbas.rs. Algoritmen for beskyttelsesniveauer er eksternt valideret mod RTKLIB's SBAS-PL-fork (RTKLIB = det åbne bibliotek til realtidskinematisk positionering; PL = protection level) (zsiki/rtklib_ws waasprotlevels(), Siki & Takács 2017, DO-229D — den foregående revision af DO-229 — App. J) kørt på egentlige EGNOS-data (European Geostationary Navigation Overlay Service), og den gengiver dens HPL til < 2e-3 m (tests/sbas_reference.rs); gLAB (GNSS Laboratory-værktøjspakken) v6.0.0 bekræftede den identiske konvention.
Ur og tidssynkronisering Holdover med Kalman-filter med to tilstande (kovarians i Joseph-form, NIS/NEES — normaliseret innovation i anden / normaliseret estimeringsfejl i anden — konsistenssundhed); stabilitet i Allan-familien (ADEV / MDEV / TDEV / HDEV / MTIE — Allan-, modificeret Allan-, tids- og Hadamard-afvigelse og maksimal tidsintervalfejl) med støjtypespecifikke konfidensintervaller og en fuld IEEE-1139 potenslovstilpasning med fem koefficienter (IEEE Std 1139, definitionerne af frekvens- og tidsmetrologi fra Institute of Electrical and Electronics Engineers) — estimatorerne er valideret på rigtig hardware mod Stable32: en egentlig 5071A-cæsiumprimærstandard mod en brintmaser (556.990 fasesamples, 16 midlingsfaktorer, OADEV/OHDEV — overlappende Allan-/Hadamard-afvigelse — til 1e-3; tests/cs5071a_reference.rs) og den kanoniske Stable32 PHASE.DAT-regressionsserie (139 midlingsfaktorer, OADEV/MDEV/TDEV til 1e-3; tests/phasedat_reference.rs); estimatorerne ADEV/MDEV/TDEV og telekom-målet for wander MTIE er desuden krydskontrolleret mod det uafhængige bibliotek allantools 2024,06 til < 1e-9 på NIST SP 1065-serien (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs); geometriske korrektioner (Sagnac, GNSS common-view); og de operationelle overførselsmetoder — TWSTFT (two-way satellite time and frequency transfer) med den lukkede Sagnac-form fra BIPM (Det Internationale Bureau for Mål og Vægt), GNSS common-view, ionosfærefri tidsoverførsel med PPP (precise point positioning), et optisk frirumslink med turbulensscintillation og en inverse-variance-urensemble-(papir-)tidsskala under det bedste bidragende ur. En beregner for holdover af ur uden GNSS (src/holdover.rs) viser den lukkede van Loan-vækst i fejl under overbrygning som en holdover-til-tærskel-inversion — hvor længe et ur kører frit, før dets tidsfejl overstiger budgettet — på tværs af repræsentative klasser af klassiske ure og kvanteure; modelleret (krydskontrolleret mod kovariansrekursionen clock_state med flere trin) og ærlig om, at holdover til en stram tærskel for et meget stabilt ur fastsættes af det antagne støjgulv ved lang tau, ikke af den citerede ADEV. Et betinget Timing Protection Level (src/tpl.rs) udvider holdover til spoofing: en grænse for den ikke-detekterede tidsfejl, givet en uafhængig krydskontrol, der sammensætter et k-sigma-monitorgulv, van Loan-overbrygningsvariansen over detektionsforsinkelsen og en CUSUM-tid-til-alarm (cumulative-sum). Kalibreret på en egentlig optaget spoof (JammerTest 2024) og reproducerbar via cargo run --example tpl_jammertest; MODELLED sammensætning (intet budget for integritetsrisiko pr. time), betinget af detektion — der findes ingen endelig ubetinget grænse.
GNSS-måledomæne Fremadrettet syntese af pseudoafstand / Doppler med ionosfære fra Klobuchar (broadcast) og IONEX / TEC-gitter (IONosphere map EXchange format / total electron content; målt) — herunder en IONEX-filparser, tidsinterpolation mellem kort og tyndskal-afbildningen af skråobliquitet — troposfæren fra Saastamoinen + Niell og snapshot-RAIM (HPL/VPL).
Robusthed Jamming i linkbudgettet (J/S → effektiv C/N₀ → tab af lås — jammer-til-signal-forhold, bærebølge-til-støj-tæthedsforhold — med anti-jam-spektralseparationsfaktoren Q nu udledt af de faktiske effektspektre for signal og jammer via src/navsignal.rs — Q = 1/(R_c·κ), krydskontrolleret i CI mod den tidligere repræsentative konstant); en stokastisk detektor for tidsspoofing (Neyman–Pearson / χ²₁-energitest med lukket form og Monte Carlo P_fa/P_md og et sikkerhedskvalitetsmål (FoM) på 1 − P_md); og en flerlags spoofingdetektor, der fusionerer en RAIM-konsistens-paritetstest (med den blinde vinkel for fællesmodus modelleret ærligt), en RF-monitor for AGC-effekt (automatic gain control) og en monitor for signalkvalitet (SQM — signal-quality monitoring, early-minus-late); og et fejlbudget for kvante-inertiel dødregning (QuantumNavBudget, src/inertial/quantum_imu.rs), der sammensætter hvidstøjshastighedsrandomwalk for koldatom-interferometeret med residual bias (krydskontrolleret mod den uafhængige integrator AccelModel) og skalafaktorfejl til et tal for positionsdrift over holdover — den inertielle tvilling til urets holdover. En resiliensscoremotor på linje med et rammeværk (src/resilience/) kortlægger en arkitekturs simulerede adfærd til delscorer pr. dimension på tværs af Kshanas egne syv resilienskategorier (ikke DHS-termer), på linje med US Department of Homeland Security Resilient PNT Conformance Framework, og undersøger derefter beslutningsstabiliteten af en enkelt sammensat score eller et modenhedsniveau under en Dirichlet-vægtningssimplex og et ensemble med fem trusler — Kendall-τ-rangustabilitet, hyppighed af skift af vinderen i top-1 og diversitetskollaps i fællesmodus (Hill-N2), med en integritets-hashet assurance-rapport (35 håndudledte tests mod uafhængig reference). Reproducerbar via cargo run --example resilience_report; MODELLED syntetiske arkitekturer, en selvvurdering på linje med RPCF v2.0, ikke en certificering. Se docs/RESILIENCE-CROSSWALK.md.
Passiv RF-geolokalisering TDOA/FDOA-geolokalisering af sendere (time-/frequency-difference of arrival; src/geolocation.rs) — find en jammer eller spoofer (eller en opportunistisk kilde til reverse-PNT) ud fra hyperboloider for time-difference-of-arrival på tværs af et netværk af modtagere, løst med Gauss–Newton mindste kvadrater; ved at tilføje frequency-difference-of-arrival med bevægelige modtagere genfindes senderens position og hastighed i fællesskab, med grænsen fra Cramér–Rao for positionskovariansen udledt af netværkets geometri. MODELLED (interne konsistensreferencer: fremad→invers-rundture, identiteten J·CRLB = I, monotoni af GDOP og estimatoren, der når sin egen CRLB under Monte Carlo) — en punktkildemodel med sigtelinje, uden led for multipath / NLOS (non-line-of-sight), modtagerurbias eller refraktion.
Navigationssignal og kodesporing Signalniveauet mellem linkbudgettet og måledomænet (src/navsignal.rs): effektspektraltætheder (PSD'er) med enhedsareal for BPSK-R(n) (binær faseskift med rektangulære chips) og sinus-BOC(m,n) (binær offset-bærebølge); den spektrale separationskoefficient (SSC) κ = ∫ G_s·G_i df, som udleder anti-jam-størrelsen Q, som jamming-modellen bruger (Q = 1/(R_c·κ)), ud fra de faktiske signal-/jammerspektre i stedet for en repræsentativ konstant; RMS-båndbredden (Gabor) (BOC > BPSK — målet for afstandsinformation / Cramér–Rao); den termiske støjjitter for kohærent early–late DLL-kodesporing (DLL = delay-lock loop; Kaplan & Hegarty; ~under en meter for C/A — GPS' grov-/erhvervelseskode — ved 45 dB-Hz); og envelopen for multipath-fejl (kohærent EML, early-minus-late — undertrykkelse med smal korrelator). Valideret mod lukkede ankre (BPSK-selv-SSC = 2/(3·R_c), PSD'er med enhedsareal, C/A-jitter under en meter). Dette er analyse af signal-ydeevne, ikke design af antenne- / RF-nyttelasthardware (en nyttelastpartners rolle).
Interoperabilitet Indlæsning af multi-GNSS broadcast-efemeride i RINEX-3 (GPS, Galileo, QZSS — Japans Quasi-Zenith Satellite System —, BeiDou MEO/IGSO — medium Earth orbit / inclined geosynchronous orbit — via IS-GPS-200, GPS-grænsefladespecifikationen; GLONASS, Ruslands Global Navigation Satellite System, via tilstandsvektor-RK4 i PZ-90 — det russiske datum Parametry Zemli 1990 —), der kan bruges som konstellationskilde (RINEX ind, PNT-geometri ud); en parser for observationer i RINEX-3 (pseudoafstand, bærebølgefase, Doppler, signalstyrke; observationslayoutet 4,00 forventes at kunne parses, men er utestet, og navigationsfiler i RINEX 4 afvises ved navn i stedet for at blive afkodet forkert), der nu føder en løser for single-point positioning (SPP) (pvt) — egentlige kodeobservationer ind, en egentlig modtagerposition ud, valideret på IGS-data; en læser/skriver af præcise efemerider i SP3-c/d med 9.-ordens Lagrange-interpolation; og eksport af CCSDS OEM 2,0 + OMM (Orbit Mean-elements Message) til flyvedynamikværktøjer (GMAT, Orekit, STK — Systems Tool Kit); og parsing og udsendelse af sporingsdatameddelelser i CCSDS-TDM (503) til radiometrisk sporing i dybt rum.
Missionsanalyse (systemteknik) Førsteordens budgetter for missionsudformning, hver en kørbar type: tolegeme-opsendelses- og opstigningsgeometri (launch-window — opsendelsesazimut sin Az = cos i/cos lat, minimumsinklination, bonus fra Jordens rotation, plandrejnings-ΔV ved dogleg, daglige muligheder; src/launch.rs); en ballistisk genindtrængningskorridor efter Allen–Eggers (reentry — maksimal deceleration, hastighed/højde ved maksimal g, hastighed ved maksimal opvarmning; src/reentry.rs); geometri for jordobservationsdækning (eo-coverage — swath / nadir-GSD (ground sample distance) / adgang uden for nadir / gensynstid via SMAD-rumtrekanten (Space Mission Analysis and Design); src/eo_payload.rs); et 3-DOF-fejlbudget for attitude og pegning (tre frihedsgrader; attitude-budget — værste-tilfælde-tyngdegradientmoment + RSS-pegebudget (root-sum-square); src/attitude_budget.rs); forudsigelse af passager over jordstationer (passes — AOS/TCA/LOS, acquisition of signal / time of closest approach / loss of signal, maksimal elevation, adgangstid; src/passes.rs); og et envejs linkbudget over linkligningen i CCSDS 401 / DSN 810-005 (CCSDS' standard for radiofrekvens og modulation / Deep Space Networks håndbog for linkdesign; link-budget — FSPL (free-space path loss), C/N₀, Eb/N₀ (energi pr. bit til støjtæthedsforhold), margen, lukning; src/linkbudget.rs). MODELLED analytiske førsteordensbudgetter — laget før hardware under STK/GMAT/Basilisk, ikke en erstatning for 6-DoF eller radiometri.
Beslutningsanalyse og afvejning (MCDA) En fuld pakke til multikriterie-beslutningsanalyse (MCDA) (src/mcda/), der spænder over alle fire metodefamilier — værdiaggregering (WSM, WPM, WASPAS — weighted sum model, weighted product model, weighted aggregated sum product assessment), afstand til idealet (TOPSIS, Technique for Order of Preference by Similarity to Ideal Solution), kompromisprogrammering (VIKOR, fra serbisk for multikriterieoptimering og kompromisløsning) og outranking (PROMETHEE II, Preference Ranking Organization Method for Enrichment of Evaluations; ELECTRE I, fra fransk for elimination og valg, der udtrykker virkeligheden), plus forholdssystemet MOORA (Multi-Objective Optimization on the basis of Ratio Analysis) og den proportionale COPRAS (Complex Proportional Assessment) — med prioritetsvægtning ved parvis sammenligning efter AHP (Analytic Hierarchy Process) (Consistency Ratio), en ikke-domineret front efter Pareto, følsomhedsanalyse af vægte og nyttescore for flere attributter. De ni aggregatorer gengiver de uafhængige tredjepartsbiblioteker pymcdm (WSM / WPM / WASPAS / MOORA / TOPSIS / VIKOR / PROMETHEE II) og pyDecision (ELECTRE I, COPRAS) til < 1e-9, og AHP-prioritetsvektoren + Consistency Ratio svarer til Saatys tabel over Random Index og SciPy/LAPACK's egenløser for hovedegenværdi til < 1e-9 (tests/mcda_*_reference.rs). VALIDATED — beslutningslaget under motoren til afvejningsstudier.
Rummiljø En miljømodel for rumvejr (space-weather, src/space_weather.rs): indekser for sol- (F10.7 / 81-dages centreret F10.7a — solradiofluxen på 10,7 cm) og geomagnetisk (Kp, det planetariske K-indeks, med den definitoriske Kp↔ap-tabel — ap er dets lineære planetariske amplitude) aktivitet, den eksosfæriske temperatur fra Jacchia-1971, som de driver (valideret mod offentliggjort solminimum/-middel/-maksimum), og den aktivitetskorrigerede mod den statiske termosfæriske neutraltæthed i højden — afhængigheden af tætheden af solcyklussen, som den statiske USSA76-atmosfære (US Standard Atmosphere 1976) udelader. MODELLED: en kalibreret førsteordens kobling af skalahøjde, ikke en datavalideret (NRLMSISE — US Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Exosphere-modellen) atmosfære.
Evaluering og afvejning med maskinlæring Et testmiljø til evaluering af detektion af RF-forringelser (impairment-eval, src/impairment_eval.rs): et mærket, parameterforankret syntetisk korpus (nominel / jamming / spoof-tid / spoof-position / multipath), en detektoragnostisk ramme for ROC/AUC (receiver operating characteristic / area under the curve), der scorer enhver detektor (energy | agc | sqm | parity | fused) med Pd pr. klasse (probability of detection) ved en mål-Pfa (probability of false alarm), og optimismegabet mellem fordelingen i og uden for træning (tilstand for fordelingsskift). Plus en afvejning mellem kvante og klassisk PNT (quantum-trade, src/quantum_trade.rs), der kvantificerer et kandidatburs fordel for tids-/inertiel holdover ud fra en kurve for målt ADEV mod en klassisk baseline, med forbeholdet om gulvet ved lang τ medsendt på artefaktet og en kurve for resiliens uden GNSS mod tid. De målinger for evaluering (AUC / forvekslingsmatrix / Pd-Pmd, Pmd er sandsynligheden for manglende detektion) er valideret til nøjagtigt match mod scikit-learn 1.9.0 — også på egentlig ESA OPS-SAT-telemetri (anomalidetektionsdatasættet OPSSAT-AD, Ruszczak et al. 2025, CC BY 4,0 — Creative Commons Attribution 4,0), hvor Kshanas Mann–Whitney ROC AUC gengiver scikit-learns roc_auc_score til < 1e-9 på den tilbageholdte testopdeling, og en gennemsigtig detektor, der tæller toppe, adskiller de mærkede anomalier ved AUC ≈ 0,85 (tests/opssat_ad_reference.rs) — og de numeriske kerner i afvejningsmotoren (ADEV NNLS — non-negative least squares — tilpasning, χ²-konsistensbånd, van Loan-ur-Q) mod scipy 1.17.1; de tal for enhedsfordel, der bygger ovenpå, forbliver MODELLED operationelle karakteristika — aldrig felt-/IQ-data (in-phase/quadrature sample), ingen god/dårlig-afgørelse. Ovenpå testmiljøet scorer en dybere undersøgelse af optimismegabet (src/impairment_study.rs, impairment_ml.rs, eval_stats.rs) et panel med 13 detektorer (energy/AGC/SQM/parity plus seedede detektorer med logistisk regression og et skjult lag MLP — multi-layer perceptron), tilpasser skaleringslove i og uden for fordelingen med en permutationsnul og lærer en leave-one-out-prædiktor for forringelse uden for fordelingen ud fra statistik i fordelingen (cargo run --example optimism_study). En front end til software-defined receiver (src/sdr.rs — rå IQ/IF (intermediate-frequency) → korrelatorernes early/prompt/late-taps → SQM) og adaptere til indlæsning af egentlige data (src/realdata/ — RINEX, u-blox UBX (u-blox' binære protokol), GnssLogger, JammerTest, Yunnan, SatGrid) lader de samme detektorer køre over optagelser, der leveres lokalt (ingen datasæt er indlagt). Det resiliens-krydsningskort mellem kvante og klassisk under parameterusikkerhed (src/crossover.rs; cargo run --bin crossover_study) genererer igen de inertielle studier og urstudier af krydsning bag figurerne under Resultater.
Demonstrator for kvanteunderstøttet PNT Tre kørbare, MODELLED anvendelsesområder bag den åbne motor, der hver udsender ærlige TradeEvidence + en registrering af repræsentativitet / huller til flyvning (src/representativeness.rs): pålidelig kvantetidsoverførsel (quantum-time-transfer, src/timetransfer_chain.rs — et ende-til-ende-budget med optisk gitterur + fotonisk link mod CSAC (chip-scale atomic clock) + RF-tovejs, med et genbrugt tidsbeskyttelsesniveau, et sikkerhedskvalitetsmål for angreb med forsinkelse/genafspilning (1 − P_md) og detektion af uranomalier + CUSUM-latens); kvantenavigation uden GNSS (quantum-gnss-free-nav, src/quantum_nav_od.rs — en inertiel overbrygning med koldatom-interferometer mod et INS af navigationskvalitet over et GNSS-udfald, ærligt om, at accelerometerbiasen uden en ekstern positionsbestemmelse er uobserverbar, så fejlen stadig vokser); og detektion af fejl/anomalier i kvantesystemer (quantum-anomaly-detect, src/quantum_faults.rs — et mærket fejlkatalog med en bootstrap-CI (konfidensinterval) ROC AUC fra den eksternt validerede eval_stats og en mindste detekterbar fejl ved en fast falsk-alarm-rate). Et delt bibliotek med fejlmodeller for kvanteenheder (src/quantum_devices.rs) og en samlet ramme til afvejning mellem kvante og klassisk (src/qtrade.rs) ligger under dem. De validerede kerner, de kører på (evalueringsmål mod scikit-learn, kerner til afvejning mod scipy), genbruges; de tal for enhedsfordel, der bygger ovenpå, forbliver MODELLED — illustrative parametre fra offentlige kilder for enhed/link, modellerer klassen, ingen TRL / flyvearv / certificering, ingen støtte fra nogen myndighed.
Sparsommelig ingeniørkunst og integritetspåvirkning Et perspektiv på omkostning pr. dækning (ROI — return on investment) (src/frugal.rs) — omkostning pr. enhed leveret dækning ved en afvejning af arkitektur — og en kortlægning fra manglende detektion → integritetspåvirkning (src/integrity_impact.rs), der omsætter en monitors rate for manglende detektion til dens bidrag til integritetsrisikoen. MODELLED budgetter til beslutningsstøtte, additive.
Udveksling af artefakter Kshana Interchange Format (KIF) (src/interchange.rs) — en versioneret, selvbeskrivende konvolut, der omslutter et scenarieresultat med dets type, skemaversion og etiketterne MODELLED/VALIDATED, så et gemt artefakt forbliver selvdokumenterende, og ældre konvolutter forbliver læsbare fremadkompatibelt.

Hver funktion kan nås som et Rust-API, som en kørbar scenarietype kind eller begge dele. Modenhed pr. funktion — valideret, kørbar eller bibliotek — følges i docs/CAPABILITY.md. En maskinkontrolleret verifikationsmatrix (src/verification.rs) gengiver krydsreferencen krav → modul → test → uafhængig reference → status, med enhedstestede ærlighedsinvarianter, der kun tillader en valideret-etiket, hvor en uafhængig ekstern reference bakker den op — og som registrerer de hardware-/PA-funktioner (product assurance), som Kshana bevidst ikke leverer.

De fire sensorpakker, som første gang offentliggjort (resultater)

Resultater#

Hvert scenarie sammenligner en kvantesensor med dens klassiske modstykke gennem et GNSS-udfald på ~1,8 h. Tallene er reproducerbare (scenario + seed + version).

Hvad kvantesensorer giver, når GNSS er væk, scenariet for urholdover: kvante holder 6600 s autonomi mod 2610 s klassisk, langt lavere tidsfejl og 100% mod 95,6% tilgængelighed
Hvad kvantesensorer giver, når GNSS er væk — clock-holdover · seed 42 · tegnet ved motor 0.40.0, og hvert tal ovenfor kontrolleres igen mod den aktuelle motor ved hver build af tests/published_figures_still_reproduce.rs · SVG

Fordelen afhænger af udfaldets længde og vibration med et eksplicit break-even-punkt, hvor klassisk vinder — vist ærligt på tværs af stigen for teknologisk modenhed (tal for optiske ure er mål for jordbaserede demonstratorer; intet optisk strontiumur har fløjet):

Krydsning mellem kvante og klassisk for urholdover på tværs af stigen for teknologisk modenhed, med konfidensbånd
Varmekort over inertiel fordel for kvante mod klassisk over udfaldets længde og vibration, med en break-even-kontur, hvor klassisk vinder
Krydsning i resiliens mellem kvante og klassisk — TRL-stige for urholdover (øverst) · kort over inertiel fordel med break-even-kontur (nederst). Kan genereres igen via cargo run --release --bin crossover_study.

Inertiel dødregning: positionsfejl under et GNSS-udfald — kvantesensoren (koldatom) holder sig nær specifikationslinjen, mens sensoren af navigationskvalitet divergerer til titusindvis af kilometer
Positionsfejl ved dødregning under et GNSS-udfald: kvantesensoren (blå) forbliver flad nær specifikationen; den klassiske sensor (rød) divergerer til titusindvis af kilometer. Genereret af Kshana ud fra scenarios/imu-deadreckoning.toml.

Pakke Scenarie Kvante Klassisk
1 — Urholdover clock-holdover.toml (20 ns specifikation) optisk ur holder hele udfaldet CSAC overskrider specifikationen midt i udfaldet
2 — Inertiel dødregning imu-deadreckoning.toml (100 m specifikation) koldatom: ~41 m, holder hele udfaldet navigationskvalitet: overskrider ved ~350 s → titusindvis af km
3 — Tidsoverførsel (optisk link mellem satellitter) timetransfer.toml optisk: ~0,3 mm afstandsmåling RF (TWSTFT): ~150 mm afstandsmåling
4 — Hybridfusion (afslutning) hybrid-pnt.toml fuld position + tid for hele udfaldet positionsbegrænset ved ~350 s

Afslutningen viser fusionstesen: optisk tidsoverførsel mellem satellitter holder selv et klassisk ur låst, så den inertielle sensor isoleres som den klassiske pakkes svage led — dvs. kvanteinertiel + optisk tidtagning sammen.

Urholdover: fasefejl under et GNSS-udfald — det optiske ur holder sig inden for specifikationen på 20 ns under hele udfaldet, mens chip-scale-uret overskrider den midt i udfaldet
Urholdover gennem et GNSS-udfald: det optiske ur (blå) holder sig inden for specifikationen på 20 ns under hele overbrygningen; chip-scale-uret (rød) overskrider den undervejs. Genereret af Kshana ud fra scenarios/clock-holdover.toml.

Et yderligere scenarie, orbit-gnss-challenged.toml, udleder GNSS-tilgængelighed ud fra banegeometri i stedet for manuelt forfattede vinduer: et rumfartøj inden for GNSS-skallen propageres mod en GPS-lignende Walker-konstellation, og antallet af synlige satellitter (sigtelinje, jordokkultation, elevationsmaske) fastsætter tilstanden for positionsbestemmelse i hvert trin. Over et døgn har brugeren kun positionsbestemmelse ~59% af tiden; kvanteuret holder en tidsløsning på 5 ns gennem hvert hul (tilgængelighed 1.0), chip-scale-uret kun ~0.83.

GNSS-udfordret bane: urets tidsfejl over et døgn for et rumfartøj inden for GNSS-skallen, hvor dækningshullerne er udledt af banegeometri — det optiske ur holder sig inden for specifikationen på 5 ns gennem hullerne, mens chip-scale-uret overskrider den
Tidsfejl over et døgn med GNSS-tilgængelighed udledt af banegeometri: antallet af synlige satellitter (sigtelinje, jordokkultation, elevationsmaske) fastsætter tilstanden for positionsbestemmelse i hvert trin, så uret må overbryge hvert hul — det optiske ur holder specifikationen på 5 ns, mens chip-scale-uret overskrider den. Genereret af Kshana ud fra scenarios/orbit-gnss-challenged.toml.

Konstellationen kan også gives som egentlige two-line element sets (TLE'er). Et fuldt TLE (linje 1 + linje 2) propageres med den fulde SGP4/SDP4-model — herunder atmosfærisk modstand og de dybrumsled for måne og sol og resonansled på 12 h / 24 h, som har betydning for GNSS-baner på ~12 h — valideret mod de officielle AIAA 2006-6753-vektorer til en værste-tilfælde ≈ 4 mm. scenarios/orbit-sgp4-gps.toml indeholder et egentligt øjebliksbillede fra Celestrak gps-ops af den operationelle GPS-konstellation (2021-07-28, 30 satellitter) og kræver gyldige TLE-kontrolsummer — two-line element sets er åbne data fra kataloget hos US Space Force / 18th Space Defense Squadron, videredistribueret af Celestrak (Dr T. S. Kelso, celestrak.org); opdatér med scripts/fetch_tles.sh. En blok med kun linje 2 beholder den analytiske tolegemepropagering (scenarios/orbit-real-tle.toml); de to former kan blandes i én konstellation. En konstellation kan lige så vel bygges af en blok med poster af typen RINEX-3 GPS broadcast-efemeride — formatet, en modtager afkoder — propageret med brugeralgoritmen i IS-GPS-200 og ført gennem den samme geometri (scenarios/orbit-rinex.toml).

Hvad det er / ikke er, i fuld form

Hvad det er / ikke er#

Det er: en deterministisk motor med få afhængigheder, der spænder over hele PNT-stakken — banegeometri, inertialnavigation, GNSS/INS-fusion, integritet, ure og tidssynkronisering. Den kører et scenarie (ofte et GNSS-udfald), lader kalibrerede sensorfejlmodeller udvikle sig gennem den passende estimator og scorer resultatet mod de operationelle kvalitetsmål — og udsender et reproducerbart JSON-resultat (JavaScript Object Notation) og et SVG-diagram, fra et Rust-bibliotek, en kommandolinjegrænseflade (CLI), en Python-udvidelse, et WebAssembly-modul i browseren, en Model Context Protocol (MCP)-server til AI-agenter eller et plugin til JetBrains IDE (integrated development environment).

Det er ikke: flyvehardware, et design af en kvantenyttelast, en fuld GNSS-signalmodtager, en simulator for radiofrekvenssignaler (RF) eller en hardware-in-the-loop-opstilling eller et certificeret avionikprodukt — og det erstatter ikke MATLAB/Simulink, STK (Systems Tool Kit) eller Orekit; det står ved siden af dem og udveksler filer med dem. Troværdighed for kvantehardware kommer fra offentliggjorte fejlmodeller, ikke fra dette værktøj. Den detaljerede modenhed af hver funktion er dokumenteret i docs/CAPABILITY.md.

Det er (endnu) ikke: en fuld fysikmotor for atominterferometri (de fleste kvantesensorer bruger offentliggjorte Allan-/støjbudgetkoefficienter; CAI-accelerometeret (cold-atom interferometer) har et lag fra første principper — Mach–Zehnder-fase, projektionsstøj, kontrastaftagning og vibrationskobling, plus systematiske effekter fra Coriolis og lysskift — men systematiske effekter fra bølgefronten og opløsning af interferensstribers heltalsmultiplicitet er fortsat et P2-lag på køreplanen (fase 2 på køreplanen, kvantefysiklaget), se ROADMAP.md og docs/QUANTUM-MODELS.md); en certificeret eller hardwarebaseret GNSS-modtager (den løser en positionsbestemmelse med enkeltpunkts-PVT (position, hastighed og tid) ud fra egentlige RINEX-kodeobservationer (Receiver Independent Exchange Format) — valideret på egentlige IGS-data (International GNSS Service) — og dens IQ-lag (kshana iq, siden 0.31.0) opfanger og sporer optagne eller genererede basisbåndssamples i software som en analysemodtager: den styrer ikke radiohardware og udsender ikke, er ikke en certificeret modtager og foretager ikke positionering på bærebølgefase (RTK eller PPP)); eller en fuld pakke til missionsudformning (den har byggeklodser til Lambert / porkchop / manøvre / banebestemmelse, men er laget for præstationssimulering over GMAT (General Mission Analysis Tool)/Orekit, ikke en erstatning). At eje dette omfang er bevidst. Hvis du har brug for fejlbudgetter for koldatom-interferometre fra første principper (f.eks. af kvalitet som CARIOQA-PMP — Cold Atom Rubidium Interferometry in Orbit for Quantum Accelerometry, Pathfinder Mission Preparation — eller validering i stil med X-37B), se køreplanen for P2 og tag kontakt for at samarbejde.

Navigation i lav jordbane#

Satellitter i lav jordbane (LEO) passerer hurtigt og højlydt. Typen leo-pnt-chain følger ét system gennem hvert trin: signalet, passagen og dens link, navigationsmeddelelsen og den fusionerede PVT-positionsbestemmelse (position, hastighed og tid) og precise point positioning (PPP). Hvert trin giver sine tal videre til det næste. Se docs/LEO-PNT.md.

LEO PNT-kæden fra en egentlig kørsel af leo-pnt-chain (leo-pnt-end-to-end.toml): signaltrinnet (generic-l ved 1191,795 MHz, pilot sporet ved 10,23 Mchip/s) giver videre til passagetrinnet (1080 km, sporet C/N0-top 58,2 dB-Hz), som giver videre til navigationsmeddelelsen (kepler-rac, 300 s tilpasning, repræsentations-SISRE 0,91 mm RMS, 0,250 m med banebestemmelse), som føder den fusionerede positionsbestemmelse (kun GNSS 1,60 m RMS 3D, GNSS plus LEO 0,43 m) og precise point positioning (konvergens 11,5 min kun GNSS, 7,5 min med 240 LEO-satellitter). 11 værdier gives videre mellem trinene.LEO PNT-kæden fra en egentlig kørsel af leo-pnt-chain (leo-pnt-end-to-end.toml): signaltrinnet (generic-l ved 1191,795 MHz, pilot sporet ved 10,23 Mchip/s) giver videre til passagetrinnet (1080 km, sporet C/N0-top 58,2 dB-Hz), som giver videre til navigationsmeddelelsen (kepler-rac, 300 s tilpasning, repræsentations-SISRE 0,91 mm RMS, 0,250 m med banebestemmelse), som føder den fusionerede positionsbestemmelse (kun GNSS 1,60 m RMS 3D, GNSS plus LEO 0,43 m) og precise point positioning (konvergens 11,5 min kun GNSS, 7,5 min med 240 LEO-satellitter). 11 værdier gives videre mellem trinene.

Alle scenarietyper efter familie#

Motorens scenarietyper, ordnet under familier. Hver familie har en side med én post pr. type (motorens beskrivelse og felter, en eksempelkommando, overskrifttal fra en kørsel, de rækker i verifikationsmatrixen, der nævner den, og det diagram, motoren selv skriver) og et kontaktark med disse diagrammer; docs/KINDS.md indekserer dem alle. Tabellen skrives af tools/gen_readme_blocks.py og siderne af tools/gen_kinds_index.py, og begge fejler, hvis motoren får en type, som ingen familie nævner.

Familie Hvad den besvarer Typer Kør én
Ure, tidssynkronisering og holdover hvor længe et ur holder tiden uden GNSS, og hvordan et system til tidssynkronisering klarer sig mod sine masker clock, sweep, sweep-nd, telecom-timing, slot-timing, timetransfer, time-transfer-budget, holdover-test, quantum-time-transfer kshana scenarios/clock-holdover.toml
Inertial, fusion og kvantesensorer dødregning og sensorfusion gennem et GNSS-udfald, med klassiske sensorer og kvantesensorer inertial, hybrid, fusion, hybrid-ukf, gnss-ins, ins-trn-coast, quantum-gnss-free-nav, quantum-anomaly-detect, quantum-trade kshana scenarios/gnss-ins.toml
GPS-nægtet alternativ PNT navigation ud fra tyngde, terræn og andre felter, når GNSS er væk gravity-map, terrain-nav, terrain-slam, combined-altpnt, conflict-resilience kshana scenarios/combined-altpnt.toml
Konstellationer, dækning og geometri hvor satellitterne er, hvem der ser dem, og hvor god geometrien er, rundt om Jorden, Månen eller Mars orbit, ephemeris, constellation-design, solar-system, body-pnt, mars-pnt, passes kshana scenarios/orbit-gnss-challenged.toml
GNSS-målinger, positionering og integritet pseudoafstande, positionsbestemmelser, beskyttelsesniveauer og rummiljøet integrity, gnss-sim, pvt, araim-reference-check, space-weather, realtime-frame-eop kshana scenarios/integrity-raim.toml
Jamming, spoofing og spektret hvordan interferens når en modtager, og om den detekteres jamming, spoof, spoof-detect, tracking-loop, spectrum, impairment-eval kshana scenarios/jamming-demo.toml
Navigation i lav jordbane en overflyvning, et link, en navigationsmeddelelse og en fusioneret positionsbestemmelse, trin for trin leo-signal, leo-pass, leo-navmsg, leo-pvt, leo-ppp, ntn-positioning, leo-pnt-chain kshana scenarios/leo-pnt-end-to-end.toml
Måne og cislunart rum navigation, tid, referencesystemer og geodæsi ved Månen 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
Navigation for rumbrugere GNSS-signaler til rumfartøjer over, omkring og hinsides GNSS-banerne gnss-ssv kshana scenarios/gnss-ssv-shell.toml
Optisk PNT optiske links gennem atmosfæren og kvalitetsmål for optisk-plus-RF optical-atmosphere, hybrid-optical-rf kshana scenarios/optical-atmosphere-network.toml
Missionsanalyse, forbindelser og rumoperationer opsendelse, opstigning, genindtrængning, attitude, links, kontaktplanlægning og filformater 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
Missionstråde fejlbudgettet for navigation og tidssynkronisering for en kæde af faser fra opsendelse til indflyvning mission-thread kshana scenarios/mission-thread-artemis-class.toml
Kampagner kædede missioner, sweeps og ensembler bygget af de andre typer campaign kshana scenarios/campaign-jam-spoof-holdover-integrity.toml

Alle kommandoer#

kshana <scenario.toml> kører et scenarie; hver anden kommando er en underkommando, og kshana --help udskriver brugen af dem alle. Kommandoerne er --study, --validate, kinds, example, receiver-trust (med live og 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 og skyline. docs/COMMANDS.md giver hver enkelts formål, et kontrolleret eksempel og dens dokumentationsside.

Alle flader#

Én motor, de samme resultater overalt: kommandolinjen, Rust-biblioteket, Python, JavaScript og WebAssembly, MCP-serveren med dens plugin-kommandoer og skills, Kshana Studio (hver side kører i browseren, uden installation, intet uploades), integrationerne med ROS 2, Signal K, OpenCPN, GNSS-SDR og gnss_lib_py, udrulningspakkerne til systemd, Docker og Grafana og JetBrains-pluginet. docs/ALL-SURFACES.md viser dem med, hvordan man får fat i hver, og navnene på alle plugin-kommandoer, skills og Studio-sider; docs/SURFACES.md siger for hver kommando og type, hvilken flade der bærer den, og hvilke der ikke gør, med begrundelsen.

Sådan fungerer en kørsel#

Et scenarie er en TOML-fil (Tom's Obvious, Minimal Language): en type, et seed og parametrene. Motoren kører den og skriver resultatet, et diagram og en rapport ved siden af samt de eksporter, du beder om.

Hvordan en kørsel forløber. En scenariofil i TOML (en type, et seed og dens parametre) går ind i motoren, kshana 0.40.0, gennem api::run_toml-fordelingen over 92 scenarietyper, deterministisk ud fra scenarie, seed og motorversion. Motoren skriver result.json, chart.svg, report.html og report.json, en table.csv for de typer, der definerer en, og på forlangende eksporter til SP3, CCSDS OMM og OEM, CZML, KML, GeoJSON, STK og SigMF; en suite skriver study.json og study.html. Disse filer fødes ind i Kshana Studio i browseren, en AI-assistent gennem serveren kshana-mcp og kontinuerlig integration.Hvordan en kørsel forløber. En scenariofil i TOML (en type, et seed og dens parametre) går ind i motoren, kshana 0.40.0, gennem api::run_toml-fordelingen over 92 scenarietyper, deterministisk ud fra scenarie, seed og motorversion. Motoren skriver result.json, chart.svg, report.html og report.json, en table.csv for de typer, der definerer en, og på forlangende eksporter til SP3, CCSDS OMM og OEM, CZML, KML, GeoJSON, STK og SigMF; en suite skriver study.json og study.html. Disse filer fødes ind i Kshana Studio i browseren, en AI-assistent gennem serveren kshana-mcp og kontinuerlig integration.

Dette medfølgende scenarie kører 2 h: 10 min med GNSS, derefter omkring 1,8 h uden GNSS. Det spørger, hvor længe et optisk strontium-gitterur og et chip-scale atomur (CSAC) hver holder tiden inden for 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

Det optiske ur holder budgettet på 20 ns under hele udfaldet på 6600 s; CSAC holder det i 2610 s og er inden for budgettet i 95,6% af kørslen mod 100% for det optiske ur. kshana example viser hvert medfølgende scenarie.

Missioner#

Ti sektorer stiller ti forskellige spørgsmål til den samme motor. Hver har medfølgende scenarier at starte med.

Sektor Start med
Forsvar og sikkerhed campaign-jam-spoof-holdover-integrity, spoof-meaconing
Rummet, Jordens bane orbit-gnss-challenged, leo-pnt-end-to-end
Månen, Mars og dybt rum lunar-relay-constellation, mars-orbit-pnt
Luftfart og droner small-uas-jammed-nav, araim-gps-galileo
Maritim maritime-strait-jamming, maritime-port-approach-coast
Vej automotive-urban-canyon
Jernbane rail-tunnel-coast
Kritisk infrastruktur og tidssynkronisering clock-holdover, clock-ensemble
Telekom og 5G (femte generation af mobilnet) telecom-prtc-holdover-24h, leo-vertical-5g-network-timing
Videnskab og forskning sweep-clock-stability, quantum-pnt-demonstrator.suite
Det spørgsmål, hver sektor stiller
Sektor Det spørgsmål, den stiller Start med
Forsvar og sikkerhed Hvor længe forbliver vores navigation og tidssynkronisering pålidelige under jamming og spoofing, og hvilke lag holder os inden for specifikationen? campaign-jam-spoof-holdover-integrity, spoof-meaconing
Rummet: Jordens bane Ser mit rumfartøj nok navigationssatellitter, hvor længe holder dets ur tiden mellem positionsbestemmelser, og hvad ville et navigationslag i lav bane tilføje? orbit-gnss-challenged, leo-pnt-end-to-end
Månen og dybt rum Får en lander, en rover eller en orbiter ved Månen, ved Mars eller længere ude en pålidelig position og tid? lunar-relay-constellation, mars-orbit-pnt
Luftfart og droner Når en jammer har taget GNSS fra mig, hvor længe forbliver mit ubemandede luftfartøjssystem (UAS) inden for sit positionsbudget, og er integritet tilgængelig på min rute? small-uas-jammed-nav, araim-gps-galileo
Maritim Hvor langt henover vandet rækker en jammer, ville et positionsskub blive fanget, og hvor længe kan et skib klare sig ind til havn på dødregning? maritime-strait-jamming, maritime-spoof-position-push, maritime-port-approach-coast
Vej og bil Hvor langt driver en bil under et viadukt eller forbi en jammer ved vejen? automotive-urban-canyon
Jernbane Hvor mange sekunder inde i en tunnel kan et tog stadig afgøre, hvilket spor det er på? rail-tunnel-coast
Kritisk infrastruktur og tidssynkronisering Hvis GNSS-tiden går tabt eller spoofes, hvor længe bevarer et elnet, et handelssted eller et datacenter sporbar tid? clock-holdover, clock-ensemble
Telekom og 5G Hvis GNSS-tidsreferencen går tabt, holder mit netværksur sig så inden for ITU-T-maskerne, og i hvor lang tid? telecom-prtc-holdover-24h, leo-vertical-5g-network-timing
Videnskab og forskning Kan jeg gengive, udvide og citere et PNT-resultat, helt ned til seedet? sweep-clock-stability, quantum-pnt-demonstrator.suite

Evidens#

SGP4 kontrolleret mod alle 666 referencevektorer i AIAA 2006-6753, værste positionsfejl 4,12 mm

176 af 401 funktioner valideret mod uafhængige eksterne referencer; 221 ærligt betegnet modelleret. Hver række i verifikationsmatricen nævner en funktion, den uafhængige reference, den kontrolleres mod, den test, der kører kontrollen, og den etiket, der følger. Kontinuerlig integration (CI) gør det umuligt at kalde en funktion VALIDATED uden en uafhængig ekstern reference.

Hvordan en funktion opnår sin etiket. Hver række i verifikationsmatricen nævner en funktion, den uafhængige reference, den kontrolleres mod, den test, der kører kontrollen i kontinuerlig integration, og den etiket, der følger. En række kan kun være VALIDATED med en uafhængig ekstern reference; ellers er den MODELLED, eller PARTNER, når en hardwarepartner ejer den. Eksempel: SGP4/SDP4, Cowell 6-DOF + forstyrrelser, batch-/sekventiel banebestemmelse, reference AIAA 2006-6753 SGP4-verifikationsvektorer, test tests/sgp4_verification.rs, etiket VALIDATED. Aktuelle antal: 176 VALIDATED, 221 MODELLED, 4 PARTNER af 401 rækker. I alt 176 funktioner valideret mod uafhængige eksterne referencer; 221 flere er ærligt betegnet MODELLED, og 4 er ejet af PARTNER.Hvordan en funktion opnår sin etiket. Hver række i verifikationsmatricen nævner en funktion, den uafhængige reference, den kontrolleres mod, den test, der kører kontrollen i kontinuerlig integration, og den etiket, der følger. En række kan kun være VALIDATED med en uafhængig ekstern reference; ellers er den MODELLED, eller PARTNER, når en hardwarepartner ejer den. Eksempel: SGP4/SDP4, Cowell 6-DOF + forstyrrelser, batch-/sekventiel banebestemmelse, reference AIAA 2006-6753 SGP4-verifikationsvektorer, test tests/sgp4_verification.rs, etiket VALIDATED. Aktuelle antal: 176 VALIDATED, 221 MODELLED, 4 PARTNER af 401 rækker. I alt 176 funktioner valideret mod uafhængige eksterne referencer; 221 flere er ærligt betegnet MODELLED, og 4 er ejet af PARTNER.
Mærkat Rækker Betydning
VALIDATED 176 en uafhængig ekstern reference er enig: egentlige data, en uafhængig implementering eller offentliggjorte referencevektorer
MODELLED 221 kontrolleret mod analytisk sandhed eller konsistens i simulationen, og sagt højt
PARTNER 4 ejet af en hardwarepartner; Kshana har ingen uafhængig reference for den

Nogle af kontrollerne: alle 666 AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 SGP4-vektorer (Simplified General Perturbations 4) til 4,12 mm; Cowell-kraftmodellen til 0,08 m mod Orekit 12,2; Galileo til 0,61 m og Swarm-A til 0,10 m mod virkelige præcise efemerider fra Den Europæiske Rumorganisation (ESA). Testene dækker omkring 95 % af linjerne i src/, med en grænse på 85 % i CI. Registeret er docs/VERIFICATION-MATRIX.md, genereret fra src/verification.rs: den fulde matrix med 401 rækker og hvorfor hver modellerede række ikke har nogen ekstern uafhængig reference i docs/MODELLED-RATIONALE.md.

Sådan fungerer validering, den kuraterede højdepunktstabel og evidensfigurerne

Validering, reproducerbarhed og ærlighed#

  • Hvert støjled er kalibreret til et offentliggjort, citeret tal og valideret mod den gængse relation (Allan-afvigelse for ure; Groves' vækst i dødregningsfejl for inertial; omregningen fra tidssynkronisering til afstandsmåling for tidsoverførsel). Status pr. led følges i docs/VALIDATION.md som validated eller not modeled — intet præsenteres som valideret, som ikke er det.
  • Reproducerbar ved konstruktion: scenario + seed + engine version → identical bits. scripts/check-reproducible.sh håndhæver det; kørsler med kvante og klassisk bruger uafhængige seeds, så deres støj er ukorreleret.
  • Modenhed angives ærligt: tal for optiske ure og optiske links er resultater af mål / jordbaserede demonstratorer, ikke fløjet.

Evidensetiketten på hvert tal#

Hvert tal og hver tabel, en kørsel skriver, siger, hvor meget det kan stoles på, og hvilke registerrækker det hviler på. Resultat-JSON har en nøgle evidence, diagram-SVG en linje under diagrammet (og et element <metadata id="kshana-evidence">), og CSV-tabellen # evidence: kommentarlinjer foran (læst med comment='#'). Den nævner et niveau, VALIDATED, MODELLED eller PARTNER, og id'erne (VM- og otte hex-cifre) på de verifikationsmatrixrækker, kørslen brugte. Niveauet er det svageste af disse rækker, så en kørsel, der læner sig op ad én modelleret række, er betegnet MODELLED, uanset hvor mange validerede rækker der står ved siden af; etiketten kan aldrig hævde mere end registeret. Rækker, statusser og id'er læses fra matricen og er ikke skrevet ind (docs/VERIFICATION-MATRIX.md, docs/SCHEMA.md), og tests/evidence_labels_doc_sync.rs fejler, hvis et tal ikke har en etiket, eller en etiket er uenig med matricen.

Validering i overblik#

Hver række håndhæves af en navngiven test i CI. Denne tabel er et udvalgt højdepunkt; den fulde maskinkontrollerede matrix er på 401 rækker — 176 VALIDATED, 221 MODELLED, 4 PARTNER (src/verification.rs), med den komplette evidens (og hvad der ærligt talt ikke endnu er valideret) i docs/VALIDATION.md og artefaktet kshana-validation-summary.html for hver udgivelse (genereret af cargo run --bin validation_report, SLSA-attesteret — Supply-chain Levels for Software Artifacts).

Kolonnen Status angiver evidensens art, svarende til valideringsstigen ovenfor: VALIDATED = kontrolleret mod en uafhængig ekstern reference (egentlige data, et uafhængigt bibliotek eller offentliggjorte referencevektorer); MODELLED = kontrolleret mod analytisk sandhed eller konsistens i simulationen (intet uafhængigt eksternt datasæt). VALIDATED beskriver metoden for kontrol, ikke bestået/ikke bestået — et ærligt svigt mod en egentlig ekstern reference forbliver VALIDATED, mens en sammenligning, som ingen matrixrække nævner som reference (LRO — Lunar Reconnaissance Orbiter — tilpasningen ovenfor), vises som MODELLED. Rækkerne for CI er procesværn, ikke kvalitetsmål. Nogle få øer med egentlige data (det målte cæsiumur, Stable32 PHASE.DAT og kontrollerne for OPS-SAT/ICGEM, hvor de rå input ikke har nogen licens til videredistribution) er datastyrede: testen udskriver en overspringsmeddelelse og forbliver grøn, når inputtet mangler, og de offentlige referencetal er indlagt under tests/fixtures/. Gengiv de rå input med den tilsvarende scripts/fetch_*.sh.

Status Funktion Enighed Reference / uafhængig reference
VALIDATED SGP4/SDP4-propagering 666/666 vektorer, værst 4,12 mm AIAA 2006-6753 (Vallado tcppver.out) + direkte sammenligning med den uafhængige crate sgp4
VALIDATED Referencesystemer — IAU 2000A/B-nutation, IAU 2006/2000A CIO-kæde, ERA bit for bit (X,Y til 1e-14, s til 1e-18, ERA til 1e-12) ERFA/SOFA eraXys06a · eraC2ixys · eraEra00 · eraNut00a/b
MODELLED GCRS→ITRS mod en uafhængig SPICE-motor maks. 0.028″ → ≤ 0,86 m på jorden, ≤ 3,6 m i GNSS-bane ANISE (ren Rust NAIF/SPICE), samme IERS finals2000A EOP, 8 epoker 2020–2023 (sammenlignet med denne reference; ingen række i verifikationsmatrixen nævner den som ekstern reference, så den er ikke mærket VALIDATED)
MODELLED EGM2008-geopotentiale (grad/orden 70) acceleration = ∇V til < 1e-6; zonal kollaps til valideret J2 NGA EGM2008-koefficienter + analytisk ∇V-identitet
VALIDATED Syntese af tyngdefunktionaler (tyngdestøttet / GNSS-frit navigationskort) GRS80 Somigliana + γ_e/γ_p til 3.5e-12; egentligt EGM2008-forstyrrelseskort fysisk (RMS ≈ 26 mGal, d/o 70) GRS80 (Moritz 1980, IAG — International Association of Geodesy) Somigliana-normaltyngde + egentlig ICGEM EGM2008 (tests/icgem_gravity_reference.rs)
VALIDATED Allan-estimatorer (ADEV/MDEV/TDEV/HDEV) + konfidensbånd gengiver referenceafvigelser; χ²-bånd stemmer NIST SP 1065 (Riley), tabel 31/32 med 1000 punkter
VALIDATED Allan-estimatorer på et egentligt målt cæsiumur OADEV/OHDEV til 1e-3 (observeret ≤ 3e-5), 16 midlingsfaktorer Stable32 på en egentlig 5071A Cs mod H-maser, 556.990 punkter (tests/cs5071a_reference.rs, datastyret)
VALIDATED Allan-estimatorer på den kanoniske Stable32 PHASE.DAT OADEV/MDEV/TDEV til 1e-3 (observeret ≤ 5e-5), 139 midlingsfaktorer Stable32-referenceafvigelser for PHASE.DAT (tests/phasedat_reference.rs, datastyret)
MODELLED IMU-fejlmodel — ARW / VRW / bias-ustabilitet genfundet til < 5 % (bias-ustabilitet < 15 %) Analog Devices ADIS16465-datablad; NaveGo-referenceprofil
VALIDATED Numerisk Cowell-propagator + kraftmodel (konservative niveauer) værste positionsfejl 0,08 m over 24 h, 278 epoker (LEO + GTO) Orekit 12,2 NumericalPropagator/DormandPrince853 (CS GROUP), tests/numerical_cowell_propagator_reference.rs
MODELLED Cowell-niveau for modstand + absolutte input for efemeride for Sol/Måne og tæthed modstandsniveauet karakteriseret ≈ 333 m / 24 h; uforstyrret matcher universal-variable Kepler under en meter, energi/impulsmoment ~1e-9 indbygget efemeride med lav præcision + analytisk Kepler
MODELLED Lambert · Tsiolkovsky · porkchop rundtur til tolegemereference; ΔV < 0.01 % Izzo 2015 · raketligningen · analytisk Hohmann-gulv
MODELLED Banebestemmelse (Gauss–Newton-batch) under en meter / mm·s⁻¹ uden støj; ~2 m ved et støjgulv på 5 m tolegeme + J2 over en RK4-bue
MODELLED Tilpasning af kraftmodel mod præcis efemeride for Galileo (fuld bue) 0,61 m 3D-RMS, 24 h, d/o-70, kun kraft ESA/ESOC's endelige bane ESA0MGNFIN (E11), egentlige finals2000A EOP (sammenlignet med denne reference; ingen række i verifikationsmatrixen nævner den som ekstern reference, så den er ikke mærket VALIDATED)
MODELLED Tilpasning af kraftmodel mod præcis efemeride for Swarm-A (reduceret-dynamisk) 0,10 m 3D-RMS (grænse for empirisk niveau, ikke et mål) ESA's præcise bane SW_OPER_SP3ACOM_2_ (sammenlignet med denne reference; ingen række i verifikationsmatrixen nævner den som ekstern reference, så den er ikke mærket VALIDATED)
MODELLED Tilpasning af kraftmodel mod LRO ved Månen (ærligt svigt) 6,67 m reduceret-dynamisk, over målet på 5 m JPL Horizons LRO (NAIF −85) + GRAIL (Gravity Recovery and Interior Laboratory) GRGM660PRIM (sammenlignet med denne reference; ingen række i verifikationsmatrixen nævner den som ekstern reference, så den er ikke mærket VALIDATED)
MODELLED Mars-OD i dybt rum (reduceret-dynamisk SRIF) ≈ 0,2 m Mars-LMO (kvalitetsmål i simulation, ikke egentlig mission) syntetisk lukket-sløjfe-OD — validering af estimatormaskineriet
MODELLED Mars-dynamik med Solen som centrum mod JPL DE440 137 m @ 1-dags bue (vokser med buen = ikke modelleret n-legeme) JPL DE440 via ANISE (xval/anise-mars-od, kernestyret) (sammenlignet med denne reference; ingen række i verifikationsmatrixen nævner den som ekstern reference, så den er ikke mærket VALIDATED)
VALIDATED Enkeltpunktspositionering mod en opmålt IGS-koordinat (egentlige observationer) 5,7 m 3D-RMS / 1,1 m horisontalt, SPP med tofrekvens ionosfærefri kode IGS-station ABMF-opmåling + GPS-broadcast-efemeride, 2018-05-13 (tests/pvt_abmf.rs)
MODELLED Tæt koblet GNSS/INS-UKF 0,77 m RMS over en LEO-passage på 30 min inkl. et udfald på 120 s overbrygning med kraftmodel, håndudledt
MODELLED Tyngdekortnavigation uden GPS ~70 km INS-drift → ~145 m genfundet ESA NAVISP-mål Quantum Wayfarer
MODELLED Terrænreferencenavigation (TERCOM/SITAN) 70 km drift → < 500 m (gitteropløsningens bundgrænse ~140 m) SRTM .hgt DEM; manuelt tilført drift (ikke-cirkulær kontrol)
MODELLED IGRF-14-hovedfelt (grad/orden 13) pol ~80,7°N, dipol ~29,7 µT, fysisk bånd på 22–67 µT IAGA (International Association of Geomagnetism and Aeronomy) igrf14coeffs.txt (Schmidt-seminormaliseret)
MODELLED Modulation af navigationssignal og kodesporing BPSK-egen-SSC = 2/(3·R_c); PSD'er pr. enhedsareal; submeter-jitter i C/A-DLL ved 45 dB-Hz Lukkede SSC/PSD-ankre samt Kaplan & Hegartys formel for DLL's termiske støj
MODELLED CR3BP-differentialkorrektor til halo/NRHO STM = differenskvotienter; banen lukker sig til maskinpræcision; L2 9:2 NRHO ≈ 6,57 d / perilune ≈ 3.250 km kontrol af STM med differenskvotienter samt den publicerede sydlige L2 9:2 NRHO (≈ 6,56 d / ≈ 3.370 km) — CR3BP, ikke en reel Gateway-efemeride
MODELLED ARAIM-integritet med to konstellationer fejltilstand for hele konstellationen på reelle GPS + Galileo EU ARAIM TR (teknisk rapport) / DO-316; Celestrak gps-ops 2021-07-28 (sammenlignet med denne reference; ingen række i verifikationsmatrixen nævner den som en ekstern uafhængig reference, så den er ikke mærket VALIDATED)
VALIDATED GNSS-geometri / DOP (GDOP/PDOP/HDOP/VDOP/TDOP) stemmer overens til 1e-6 relativt på tværs af 8 geometrier (veltilpasset → næsten singulær) gnss_lib_py 1.0.4 (Stanford NAV Lab) — uafhængigt bibliotek (tests/dop_reference.rs)
VALIDATED Evalueringsmål for ML-detektorer (AUC/ROC/forvekslingsmatrix/Pd-Pmd/præcision/F1) nøjagtige antal + < 1e-9 over 5 datasæt × 24 tærskler scikit-learn 1.9.0 (Pedregosa et al., JMLR — Journal of Machine Learning Research — 2011) — uafhængigt bibliotek (tests/eval_metrics_reference.rs)
VALIDATED ROC AUC for anomalidetektion på reel ESA OPS-SAT-telemetri AUC gengiver scikit-learn til < 1e-9; AUC for detektoren baseret på antal toppe ≈ 0.85 på den mærkede testdel scikit-learn roc_auc_score på OPSSAT-AD-testdelen (Ruszczak et al. 2025, CC BY 4,0) — reel OPS-SAT-telemetri (tests/opssat_ad_reference.rs)
VALIDATED Numeriske kerner til kvante-afvejning (ADEV NNLS-tilpasning · χ²-konsistensbånd · van-Loan-ur-Q) NNLS + Q nøjagtige; χ² < 5e-4 ved driftsfrihedsgrader ≥ 48 scipy 1.17.1 — optimize.nnls / stats.chi2.ppf / linalg.expm (tests/scipy_reference.rs)
VALIDATED MTIE / MDEV / TDEV-mål for telekommunikationens wander (ITU-T G.810/G.823/G.8261/G.811 — anbefalinger fra International Telecommunication Unions standardiseringssektor for telekommunikation) MTIE (9 middelværdifaktorer, bit-for-bit) og MDEV + TDEV (8 faktorer, < 1e-9 relativt) på NIST SP 1065-LCG-serien (lineær kongruensgenerator) allantools 2024,06 mtie / mdev / tdev — uafhængigt bibliotek (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs)
VALIDATED MCDA-metoder til afvejningsstudier — alle fire beslutningsfamilier, ni eksternt validerede aggregatorer (WSM · WPM · WASPAS · MOORA · COPRAS · TOPSIS · VIKOR · PROMETHEE II · ELECTRE I) samt AHP-prioritetsvægtning ved parvis sammenligning scorer / rangeringer / konkordansmatricer gengivet til < 1e-9 pymcdm + pyDecision (uafhængige MCDA-biblioteker fra tredjepart) + Saaty RI (Random Index) / SciPy-LAPACK eig (tests/mcda_*_reference.rs)
VALIDATED LEO-Doppler-envelope ud fra bane og bærebølge Iridium-maksimum inden for 5 % af de publicerede ±36 kHz; Xona Pulsar X1 inden for de publicerede 32–34 kHz RNTF LEO PNT-testresultater; Leclère, Marathe & Reid, arXiv:2509,19551 (tests/leo_doppler_reference.rs)
MODELLED PPP-konvergens med LEO-augmentering 7,4 → 4,8 / 3,2 / 2,7 / 2,3 min med 60 / 96 / 192 / 288 LEO-satellitter, monotont; filterets NEES inden for χ²-båndet tendens sammenlignet med Li et al., J. Geod. 93:749 (2019) (9,6 → 7,0 / 3,2 / 2,1 / 1,3 min); konstellationer og støj er ikke gengivet
MODELLED Betinget beskyttelsesniveau for tid (holdover-begrænset uopdaget tidsfejl under spoofing) sammensætningen gengiver den flertrins clock_state-kovariansrekursion; kalibreret på en reel optaget spoof JammerTest 2024 (Zenodo 15911589) skalarer + van-Loan / CUSUM på lukket form (examples/tpl_jammertest)
MODELLED Scoring af PNT-robusthed + beslutningsustabilitet 35 håndudledte tests mod uafhængig reference; byte-deterministisk studieartefakt (fast seed) DHS RPCF v2.0-afbildning + Dirichlet / Kendall-τ / Hill-N2 på lukket form — syntetiske arkitekturer, ikke en certificering
MODELLED Studie af optimismegabet ved RF-forstyrrelser (skaleringslove + leave-one-out-prædiktor) signifikans ved permutationsnul; byte-deterministisk artefakt (5 seeds) syntetisk, parameterforankret korpus — evalueringens mål er VALIDATED mod scikit-learn (ovenfor); studiet er MODELLED
CI Reproducerbarhed på tværs af platforme bit-identisk input + facitfiler for form på 3 operativsystemer CI-matrix for Linux / macOS / Windows, SHA-256-facitfiler
CI Testdækning ~95 % linjer på src/ uden src/*_data.rs og src/main.rs, med krav om ≥ 85 % cargo-tarpaulin (LLVM-motor)

Hvordan en funktion opnår sin etiket: Krav kobles til et modul i src, til en test i tests, til en ekstern uafhængig reference (virkeligt datasæt, uafhængig referenceimplementering eller offentliggjorte vektorer), til en status — med en CI-håndhævet sikring, så ingen funktion kan være Valideret uden en ekstern uafhængig reference. Aktuelle antal: 176 Valideret, 221 Modelleret, 4 Partner, 401 i alt
Hvordan en funktion opnår sin mærkning — den CI-håndhævede invariant: ingen ekstern uafhængig reference ⇒ kan ikke være valideret · SVG

Hvordan hver påstand understøttes: Kolonnen for validerede er 176 af 176 ExternalDataset pr. konstruktion (CI-håndhævet); modellerede rækker er ærligt mærket InternalConsistency, ReferenceImpl eller ExternalDataset; partnerrækker har ingen Kshana-reference
SGP4/SDP4 værste positionsfejl i forhold til AIAA 2006-6753-referencen pr. område, logaritmisk skala: hvert område ligger langt under AIAA's tolerance, værste tilfælde 4,12 mm i det dybrumsområde, der ikke er resonant
Øverst: hver valideret række understøttes af et eksternt datasæt, pr. konstruktion. Nederst: SGP4 stemmer overens med den officielle reference i hvert område (værst 4,12 mm). SVG · SVG

Verifikationsstatus på tværs af alle 401 funktioner: 176 Valideret (kontrolleret mod ekstern uafhængig reference), 221 Modelleret, 4 ejet af partnere
176 Valideret · 221 Modelleret · 4 Partner — SVG

Funktionsområder#

Alle funktioner i det offentlige kort, fordelt på område, med deres registermærkning. Områdetabellen skrives af tools/gen_readme_blocks.py ud fra web/capabilities.json, den samme fil som Studios kort over alt læser.

Kshana-funktioner efter område og modenhed: validerede og modellerede offentlige funktioner pr. område, tegnet ud fra web/capabilities.json af tools/gen_validation_figures.pyKshana-funktioner efter område og modenhed: validerede og modellerede offentlige funktioner pr. område, tegnet ud fra web/capabilities.json af tools/gen_validation_figures.py

Den fulde tabel, område for område med hver funktion og dens mærkning, findes i docs/CAPABILITY-DOMAINS.md.

Installation#

Én linje henter kommandolinjeværktøjet: cargo install kshana. Hver kanal leverer v0.40.0 fra den samme mærkede commit.

En passage, der nævner AI-klienter fra tredjepart, er udeladt her; den findes i README.md på GitHub.

En passage, der nævner AI-klienter fra tredjepart, er udeladt her; den findes i README.md på GitHub.

En passage, der nævner AI-klienter fra tredjepart, er udeladt her; den findes i README.md på GitHub.

Kanal Installation Vejledning
Prøv i browseren åbn https://kshana.dev Guide til Studio
Kommandolinje (Rust) cargo install kshana Brug af kommandolinjen
Rust-bibliotek cargo add kshana API-reference på docs.rs
Python pip install kshana Guide til Python-API'et
JavaScript og WebAssembly npm install kshana Guide til npm og WebAssembly
AI-assistent (MCP-server, cargo) cargo install kshana-mcp Guide til MCP-serveren
Docker-image docker run --rm -i ghcr.io/ashfordeou/kshana-mcp Guide til MCP-serveren: Docker
Cursor (ét klik) Føj til Cursor (npx) · Føj til Cursor (Docker) · npx -y kshana-mcp@0.40.0 Alle MCP-installationsuddrag
VS Code (ét klik) Installér i VS Code (npx) · Installér i VS Code (Docker) · npx -y kshana-mcp@0.40.0 Alle MCP-installationsuddrag
npx npx -y kshana-mcp@0.40.0 Alle MCP-installationsuddrag
uvx / pipx uvx kshana-mcp==0.40.0 Alle MCP-installationsuddrag
Homebrew brew install ashfordeOU/tap/kshana-mcp Alle MCP-installationsuddrag
Scoop scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket && scoop install kshana-mcp Alle MCP-installationsuddrag
winget winget install AshfordeOU.KshanaMcp Alle MCP-installationsuddrag
Færdigbygget binær fil download kshana-mcp-<target> fra udgivelsen, og kontrollér den mod SHA256SUMS Alle MCP-installationsuddrag
Officielt MCP-register søg efter io.github.ashfordeOU/kshana-mcp Alle MCP-installationsuddrag
Fjernadgang (streamable HTTP), selvhostet kshana-mcp --http 127.0.0.1:8080 Vejledning til selvhosting
JetBrains IDE-plugin Settings → Plugins → Marketplace → søg efter "Kshana" (plugin-ID dev.kshana.ide) Guide til pluginet
Signal K-plugin npm install signalk-kshana-trust Vejledning til Signal K-plugin
OpenCPN-plugin download plugin-tarballen fra udgivelsen Indsendelse til OpenCPN-kataloget
Grafana-dashboard importér kshana-grafana-*.json fra udgivelsen Dashboardets kilde
Image til referencebuild docker pull ghcr.io/ashfordeou/kshana-reference-build Maritime integrationer

Kshana på JetBrains Marketplace Bygger med Rust 1,88 eller nyere, rust-version i Cargo.toml

MCP er Model Context Protocol. Fastlås en udgivelse med cargo install kshana --version 0.40.0, pip install kshana==0.40.0 eller npm install kshana@0.40.0. Hvis du vil bygge fra kildekode, se Installation og bygning under Reference.

Kør et scenarie fra Python og fra 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

Ud over run udstiller modulet run_full (JSON, SVG og enlinjesammenfatningen på én gang), run_typed, validate_toml, list_kinds / scenario_kinds og error_kind; se docs/PYTHON_API.md.

npm-pakken er hele motoren kompileret til WebAssembly. I Node.js skal du give binærfilen til initSync; i en browser henter await init() den (se 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));

Arkitektur#

Én åben motor sidder i midten, og hver flade kører den: kommandolinjen, Rust-biblioteket, Python, WebAssembly og Kshana Studio, MCP-serveren, Docker-billedet og JetBrains-pluginnet. Den samme scenariefil giver de samme bytes på hver. Kshana Pro sidder ovenpå som et separat overlay, der afhænger af motoren og aldrig forgrener den.

Kshanas arkitektur: én åben motor i midten, kshana 0.40.0 under AGPL-3.0, med api::run_toml, en typet fordeling over hver type, og verifikationsregisteret med 401 funktioner (176 VALIDATED, 221 MODELLED, 4 PARTNER). Rundt om den kører hver flade den samme motor: Kommandolinje (cargo install kshana); Rust-bibliotek (cargo add kshana); Python (pip install kshana); WebAssembly + Kshana Studio (npm install kshana); MCP-server (cargo install kshana-mcp); Docker-image (ghcr.io/ashfordeou/kshana-mcp); JetBrains-plugin (Marketplace: "Kshana"). Under den Kshana Pro, et proprietært overlay, der afhænger af den åbne motor som bibliotek og aldrig forker den, og som ikke tilføjer nogen fysisk model.Kshanas arkitektur: én åben motor i midten, kshana 0.40.0 under AGPL-3.0, med api::run_toml, en typet fordeling over hver type, og verifikationsregisteret med 401 funktioner (176 VALIDATED, 221 MODELLED, 4 PARTNER). Rundt om den kører hver flade den samme motor: Kommandolinje (cargo install kshana); Rust-bibliotek (cargo add kshana); Python (pip install kshana); WebAssembly + Kshana Studio (npm install kshana); MCP-server (cargo install kshana-mcp); Docker-image (ghcr.io/ashfordeou/kshana-mcp); JetBrains-plugin (Marketplace: "Kshana"). Under den Kshana Pro, et proprietært overlay, der afhænger af den åbne motor som bibliotek og aldrig forker den, og som ikke tilføjer nogen fysisk model.
Inde i motoren: domænelagene og verifikationsregistret Kshanas arkitektur i lag. Fem indgange (kommandolinje, Python, JavaScript og WebAssembly, MCP-serveren og JetBrains-pluginet) når én api::run_toml, en typet fordeling over 92 typer. Nedenunder ligger otte domænelag: tid og referencesystemer, ure og tidssynkronisering, inertial og fusion, GNSS og integritet, astrodynamik, LEO-PNT, Månen, Mars og det dybe rum samt missioner og studier, på en fælles kerne, alle krydshenvist af verifikationsmodulet, den maskinkontrollerede matrix med 401 funktioner, der er eneste kilde til sandhed for hver etiket.Kshanas arkitektur i lag. Fem indgange (kommandolinje, Python, JavaScript og WebAssembly, MCP-serveren og JetBrains-pluginet) når én api::run_toml, en typet fordeling over 92 typer. Nedenunder ligger otte domænelag: tid og referencesystemer, ure og tidssynkronisering, inertial og fusion, GNSS og integritet, astrodynamik, LEO-PNT, Månen, Mars og det dybe rum samt missioner og studier, på en fælles kerne, alle krydshenvist af verifikationsmodulet, den maskinkontrollerede matrix med 401 funktioner, der er eneste kilde til sandhed for hver etiket.

Én motor, mange indgange. En enkelt Rust-kerne (kshana) kører hvert scenarie, nået gennem en CLI, en Python-udvidelse, et WebAssembly-modul i browseren, en MCP-server til AI-agenter og et JetBrains IDE-plugin — alle samlet i én api::run_toml-fordeling. Indeni tilsluttes sensorpakkerne en fælles fejlmodelgrænseflade; ved siden af ligger et referencesystemlag (IAU 2006/2000A-præcession–nutation og den CIO-baserede GCRS↔ITRS-reduktion), et astrodynamisk/numerisk lag (analytisk SGP4/SDP4 og en numerisk Cowell-propagator med sin EGM2008/perturbationskraftmodel, manøvreudformning og banebestemmelse), et integritets-/GNSS-lag (RAIM/ARAIM, SBAS, måledomænet, jamming, cislunar), et fusions-/alt-PNT-lag (GNSS/INS-estimatorerne og tyngde-/terræn-/magnetkortmatcherne), et lag for dybt rum og Månen (radiometrisk Mars-PNT og Månens PNT-suite, med evidensniveau pr. del i matrixen — LTC-tid, VLBI, fælles OD+ur, realisering af referencesystem, servicevolumen, differentiel PNT, interoperabilitet), et missionsanalyselag (opsendelse / genindtrængning / dækning / pegning / passage / linkbudgetter og rumvejrmiljøet) og det åbne studielag for robusthed og maskinlæring (RPCF-robusthedsscoring, optimismegabet ved RF-forstyrrelser og den kvanteunderstøttede PNT-demonstrator), hvis reproducerbare artefakter bygger på de validerede kerner.

To selvstændige workspace-ekskluderede crates ligger ved siden af kernen — mcp/kshana-mcp (MCP-serveren, bygget på edition-2024-SDK'en rmcp) og xval/anise-frames (ANISE/SPICE-krydskontrollen af referencesystemer, som trækker MPL-2.0-afhængigheder (Mozilla Public License 2,0) ind) — holdt uden for den publicerede crates afhængighedsgraf, Cargo.lock, licensport og MSRV-bygning (minimum supported Rust version) af rodens Cargo.toml-liste exclude. JetBrains-pluginnet (ide/jetbrains) er et separat Kotlin-projekt. Se docs/ARCHITECTURE.md for hele sættet af diagrammer.

De gengivne diagrammer (motorflow, modulkort, distribution) findes i docs/ARCHITECTURE.md.

Diagrammer#

Diagrammerne er Mermaid-kilder i docs/diagrams/, gengivet til SVG og PNG i docs/assets/diagrams/ (tools/render-diagram-chromium.sh <name> på Linux, de to andre render-diagram-scripts andre steder), og en post binder hver PNG til den nøjagtige SVG, den stammer fra. Tests fastlåser de antal, de angiver. Diagrammerne i afsnittene ovenfor er tegnet af værktøjer ud fra motorkørsler; disse viser, hvordan delene hænger sammen.

Systemet: seks indgange (kommandolinje, Python, WebAssembly og npm med Kshana Studio, MCP-server med plugins og skills, JetBrains-plugin, integrationer) kalder alle én fordeling over hver scenariekind, som kører én motor af fælles kerne, sensorpakker og referencesystemer samt domænemodeller, og skriver et reproducerbart resultat og diagram
Én fordeling, én motor, reproducerbart output · SVG · kilde system-overview.mmd

Fladerne: én deterministisk offline-motor forsyner kommandolinjen, Rust-biblioteket, Python, WebAssembly og npm samt MCP-serveren; Studio kører på WebAssembly-bygningen, plugin-kommandoer og skills på MCP-serveren, integrationer og udrulningssæt på kommandolinjen og JetBrains-pluginnet på biblioteket
Hver flade, fra den samme motor · SVG · kilde surfaces.mmd

Inde i én kørsel: en scenariefil med sit seed og sin GNSS-tidslinje forsyner motoren, som pr. tidsskridt udvikler fejlmodellen, kører estimatoren og scorer kvalitetsmålene og skriver et reproducerbart resultat og diagram
Den indre løkke i en kørsel · SVG · kilde engine-flow.mmd

Modtagertillid: en modtagerlog eller -strøm indlæses i observabler pr. epoke og modtagerens egne flag, passerer overvågningerne og bliver til en vejledende tillidsscore med et bånd og begrundelser, som forsyner Studio, telemetri, en signeret bevispakke, Jammertest- og bench-scoring og compliance-rapporten
Fra en modtagerlog til en tillidsscore og det, der bruger den · SVG · kilde trust-flow.mmd

Laboratorierundturen: et scenarie eksporteres med sine hændelser og testbetingelser, en operatør uden for Kshana afspiller en fil gennem en laboratoriesimulator, modtagerloggen scores mod de angivne hændelser, og bevisrundturen binder scenariets, betingelsernes og logfilens hashværdier og scoren sammen i en signeret pakke
Scenarie til signeret pakke; Kshana frembringer eller afspiller aldrig et signal · SVG · kilde lab-round-trip.mmd

Kshana Studio: browseren kører motoren kompileret til WebAssembly lokalt uden at uploade noget, tager medfølgende scenarier eller et scenarie eller en log, du åbner, og viser resultatet i den enkle visning, den avancerede visning og opgavesiderne, med eksport gemt af brugeren
Sådan kører Studio, lokalt · SVG · kilde studio-flow.mmd

Test- og udgivelsesflowet: lokale porte (formatering, clippy, kontrollen for ingen tilskrivning, dokumentationsdækningens skralde og scripts/gate.sh, som kører hele suiten og gentagne kørsler og skriver den kvittering, pre-push-krogen kontrollerer) fører til en CI-only pull request og en grøn fuld CI; ejeren spoler main frem til den grønne commit, og et annoteret tag lægges på den efter versionssynkroniseringskontrollen; udgivelsesworkflowet verificerer hele suiten på den mærkede commit, før noget publiceres, bygger binærfilerne med en SBOM, kontrolsummer og bygningsproveniens, publicerer til crates.io, PyPI, npm, containerregistret, MCP-registret og JetBrains Marketplace, poller hvert register, indtil det leverer den nye version, og udløser sitebygningen fra tagget; en separat sti kun til sitet udløser pages-workflowet med tagget main og afvises, medmindre intet uden for web/ og .github/ er ændret siden seneste udgivelse
Test- og udgivelsesflow, fra lokale porte til en verificeret udgivelse og stien kun til sitet · SVG · kilde release-flow.mmd · docs/RELEASING.md

Modulkortet: kommandolinjen, Python, WebAssembly, MCP-serveren og JetBrains-pluginnet kalder den typede fordeling over hver kind, som når den fælles kerne, tid og referencesystemer, sensorpakker, astrodynamik, integritet, spoofingdetektion, fusion, dybt rum og Månen, robusthed samt dommer- og benchmarkmodulerne, alle understøttet af verifikationsmatrixen
Hvor koden bor · SVG · kilde module-map.mmd

Distribution: ét repository leverer kernecrate'en, MCP-serveren, IDE-pluginnet og krydskontrolcrates til crates.io, PyPI, npm, GitHub Releases, Pages-playgroundet, containerregistret, MCP-registret og JetBrains Marketplace, med et Zenodo-arkiv
Hvad der leveres hvor, og hvad der kontrollerer det · SVG · kilde distribution.mmd

AI-assistent#

kshana-mcp er en MCP-server: din assistent kører den faktiske motor og læser dens JSON tilbage i stedet for at gætte på matematikken. Hvert af dens 49 værktøjer er en tynd indpakning om en offentlig funktion i kshana-biblioteket, så ingen simuleringslogik bor i serveren.

Installér MCP-serveren#

Vejledende, ikke typegodkendt navigationsudstyr: operatøren er fortsat ansvarlig for navigationen. Serveren kører på din computer; intet sendes til Ashforde OÜ.

En passage, der nævner AI-klienter fra tredjepart, er udeladt her; den findes i README.md på GitHub.

En passage, der nævner AI-klienter fra tredjepart, er udeladt her; den findes i README.md på GitHub.

En passage, der nævner AI-klienter fra tredjepart, er udeladt her; den findes i README.md på GitHub.

Kanal Kommando eller knap Kræver Fastlåst form
Cursor (ét klik) npx (Node) · Docker Node eller Docker kshana-mcp@0.40.0 / ghcr.io/ashfordeou/kshana-mcp:0.40.0
VS Code (ét klik) npx (Node) · Docker · Insiders (npx) Node eller 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+ med uv eller 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 formel for v0.40.0
Scoop scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket og derefter scoop install kshana-mcp Scoop (Windows) manifest for 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
Færdigbygget binær fil udgivelsessiden: kshana-mcp (Linux x86-64), kshana-mcp-<target>[.exe], kontrolleret med SHA256SUMS og gh attestation verify ingen v0.40.0
MCP-register io.github.ashfordeOU/kshana-mcp (findes af klienter, der kender registret) en klient, der kender registret 0.40.0
Fjernadgang (streamable HTTP) kshana-mcp --http 127.0.0.1:8080, selvhostet: se docs/deploy/mcp-http.md din egen vært v0.40.0

kshana-mcp på Glama, dens kvalitetsscore for MCP-servere

En passage, der nævner AI-klienter fra tredjepart, er udeladt her; den findes i README.md på GitHub.

Opsætning pr. klient findes i docs/integrations.md. Serveren er opført i det officielle MCP-register som io.github.ashfordeOU/kshana-mcp.

De 49 værktøjer

Scenarier og rapporter

Værktøj Hvad det gør
run_scenario Kør et scenarie ud fra en TOML-definition (Tom's Obvious, Minimal Language)
list_scenario_kinds De 92 indbyggede scenarietyper med beskrivelser + obligatoriske/valgfrie felter — så agenten kan konstruere et gyldigt scenarie
validate_scenario Kontrol før kørsel: parse TOML'en og find dens kind uden at køre
list_example_scenarios De medfølgende referencescenarier som JSON
get_example_scenario TOML-teksten for ét medfølgende referencescenarie, byte for byte filen under scenarios/
report_scenario Kør et scenarie og returnér dets rapport
animate_scenario Kør et scenarie og returnér dets tidsserie som en animation
sky_geometry Himmelgeometri under en azimutafhængig horisontlinje: de synlige og skjulte satellitter, DOP, øst-nord-op-kovariansen og den vandrette fejlellipse; eller en forudindstilling af horisontlinje med dens proveniens

Eksport og interoperabilitet

Værktøj Hvad det gør
list_export_formats Hvilke interoperabilitetsformater der gælder for et scenarie (czml, kml, geojson, stk, sigmf), årsagen, når et ikke gør det, og den specifikation, hver skriver følger
export_interop Eksportér et scenarie som CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, STK (Systems Tool Kit)-efemeride .e eller SigMF (Signal Metadata
import_route Skriv en GeoJSON-LineString-rute ind i et scenarie, der flyver et sporpunktsspor (terrain-nav, terrain-slam, gravity-map, combined-altpnt), og returnér den nye TOML
export_sp3 Eksportér konstellationen i et orbit-scenarie som præcis SP3-c-efemeride (Standard Product 3, revision c)
export_omm Eksportér elementerne i et orbit-scenarie som et CCSDS-katalog (Consultative Committee for Space Data Systems) 502.0-B-2 OMM (Orbit Mean-elements Message)
export_oem Eksportér tilstandsserien i et orbit-scenarie som CCSDS OEM-efemeride (Orbit Ephemeris Message) 2,0 — TEME-positionen (true equator, mean equinox) og
export_table_csv Kør et scenarie og returnér dets reproducerbarhedstabel som CSV (kommasepareret) — den byte-stabile tabel, CLI'en (kommandolinjegrænsefladen) skriver som <scenario>.table.csv
export_test_bench Et scenaries køretøjsbevægelse og hændelser til en GNSS-laboratoriesimulator (kshana bench-export)

Modtager- og fartøjstillid

Værktøj Hvad det gør
assess_receiver_log Vurdér en reel GNSS-modtagerlog (global navigation satellite system) for tillid
assess_vessel_stream Score et afgrænset NMEA 0183-udsnit (højst 2 MiB og 20.000 epoker
assess_vessel_log Et fartøjs NMEA 0183-log (højst 4 MiB) som batchkørsel, hvor sessions-TOML'en angiver fartøjets grænser
create_evidence_pack En signeret bevispakke for et vindue af et fartøjs log (kshana receiver-trust evidence)
attach_evidence_timestamp Bind et RFC 3161-tidsstempeltoken (base64 af .tsr-bytes) til en pakke, i hukommelsen (kshana evidence attach-timestamp)
verify_evidence_pack Verificér en pakke (kshana evidence verify)
generate_training_nmea Syntetisk bro-NMEA 0183 til besætningstræning ud fra en nmea-scenario-TOML (jamming, positionsafdrift, tidsspoofing, replay-forsinkelse) med instruktørloggen (kshana-nmea-training/1)
build_interference_map Et kort over GNSS-interferens ud fra ADS-B- eller AIS-positionsrapporter som CSV-tekst (højst 4 MiB)
route_exposure Andelen af en rutes længde i degraded, ikke-degraded, ikke-vurderede og ikke-observerede celler i et eller flere interferenskort, eventuelt inden for et datointerval
trust_telemetry En tillidsstrøm (JSON-linjer) eller et receiver-trust-resultat gengivet som Prometheus-tekst, CEF- eller LEEF-syslog-linjer eller en OTLP-JSON-nyttelast, med kshana trust-telemetry-kodererne
jammertest_import Læs den publicerede Jammertest-testkatalog og transmissionsplan (NPRA/jammertest-plan, MIT) som planlagt reference (kshana jammertest import): ét testområdes slots bliver til modtagertillidshændelser med katalog-id og år i hver etiket. Planlagte slots, ikke optagne sendetider; intet kontaktfelt i planen læses. MODELLED. Se docs/JAMMERTEST.md.
jammertest_score Scor en modtagerlog mod den tidsplan (kshana jammertest score): pr. test detektionsforsinkelse, oversete alarmer og tid til genopretning samt de falske alarmer uden for ethvert slot. Tekstlogs som log, binære (ubx, sbf) som log_base64. En signeret pakke kræver en nøgle: kommandolinje. Kun vejledende; MODELLED.
fit_imu_log Accelerometer- og gyroparametre for scenarierne hybrid og fusion, tilpasset ud fra en stationær IMU-log (CSV eller EuRoC) ved hjælp af Allan-deviation, med en klar til indsætning [accel_classical]-tabel og logens SHA-256 (kshana imu-fit). Tekst ind, JSON ud; MODELLED.

GNSS IQ (filer i arbejdsmappen; slået fra i HTTP-tilstand)

Værktøj Hvad det gør
iq_signals Opsætningen af GNSS IQ-laget
iq_info Beskriv én IQ-optagelse (in-phase og quadrature) i arbejdsmappen uden at behandle den
iq_scene Generér en GNSS IQ-scene med flere satellitter i arbejdsmappen (kshana iq scene)
iq_acquire FFT-erhvervelse (fast Fourier transform) af en eller flere PRN'er (pseudo-random noise codes) over en optagelse (kshana iq acquire), eventuelt bag front-end-trin
iq_track Erhverv, og spor derefter med DLL/PLL/FLL-banken (delay-, phase- og frequency-locked loop) (kshana iq track), med løkkerne fra en `kshana.loop-desig
iq_frontend Anvend modtagerens front-end og DSP til afhjælpning af interferens (digital signal processing
iq_sweep Afspil én IQ-optagelse i arbejdsmappen på tværs af flere udformninger af sporingsløkker (kshana iq sweep)
iq_monitor Kør overvågningerne for interferens og spoofing over en IQ-optagelse i arbejdsmappen (kshana iq monitor)
iq_labfit Tilpas modellen for tab af lås i sporingsløkken til laboratoriekørsler (kshana iq labfit) ud fra et iq-labfit-scenarie, hvis logfiler er inline (text eller base64
iq_test_conditions Validér en kshana.test-conditions/1-fil givet som tekst, og returnér de opløste betingelser med deres hash
iq_campaign Kør en kampagne med laboratoriereplay (kshana iq campaign)
iq_campaign_status Fremdriften i en kampagnes outputmappe

Compliance-kortlægning

Værktøj Hvad det gør
compliance_report Kortlægningen til de offentlige rammeværker udfyldt ud fra resultatdokumenter givet som tekst (kshana compliance-report)
compliance_mapping De statiske kortlægningstabeller (eller, med sources, de kildedokumenter, de citerer, med versioner og URL'er) som Markdown, indledt af den samme erklæring
list_standards_packs Standardpakkerne (kshana standards-pack list): scorede scenariesæt til testprofilerne i DHS Resilient PNT-rammeværket, IMO MSC.1/Circ.1575 og ICAO Doc 9849 bilag F
run_standards_pack Én pakke kørt mod tærskler fastsat på forhånd før kørslen: hver test MET, NOT MET eller NEEDS INPUT; MODELLED, vurderer intet produkt
lunanet_afs_check LunaNet Augmented Forward Signal kontrolleret mod LNIS V5 AD1 bind A (LSIS-AFS V1.0): kodene mod de trykte tabeller, eller en symbolstrøm mod rammeformatet; LDPC og CRC-24Q for delrammer 2 til 4 er ikke verificeret
create_round_trip_pack Den signerede rundturspakke fra laboratoriet: scenarie, kshana.test-conditions/1-dokument, modtagerlog og score bundet sammen med hash

Benchmark

Værktøj Hvad det gør
score_benchmark En indsendelse til kshana-bench scoret mod en referencefil, begge som JSON-tekst (kshana bench score, bench/SPEC.md): resultatfilen med specifikationsversion, opdeling, inputhashes og opgavens målinger. MODELLED; beskriver en log eller et korpus, aldrig et produkt.
render_leaderboard kshana-bench-resultatfiler gengivet som den statiske leaderboard-side (HTML-tekst), hver især valideret først.

Udgaver#

Hele motoren er gratis. Kshana Pro og skræddersyede studier er til programmer, der har brug for mere, og hver betalt vej starter med en henvendelse: her er ingen priser.

Gratis Kshana Pro Skræddersyet undersøgelse
Hvad det er hele den åbne motor, alle 92 scenarietyper, ingen funktionsspærring et proprietært overlay på den samme motor, under kontrakt et MODELLED studie af dit systems PNT-robusthed, udført for dig
Licens AGPL-3.0 (GNU Affero General Public License, version 3) eller en kommerciel licens proprietær kontrakt
Sådan kommer du i gang installér eller åbn kshana.dev anmod om en Pro-evaluering anmod om et studie

Hvad Pro er, med ordene fra docs/PRO.md:

En streng overmængde af åbne Kshana. Pro afhænger af den åbne motor som bibliotek og forgrener den aldrig. Hver åben scenariekind kører uændret i Pro, og et åbent scenarie kører i Pro helt uden licens.

Ingen ny fysik. Pro tilføjer ingen fysisk model og ændrer ingen. Hvert Pro-tal kommer fra kørsler af den åbne motor, så et Pro-tal er lige så troværdigt som den åbne scenariekind, det stammer fra, og aldrig mere.

Pro besvarer et programs næste spørgsmål: hvilken udformning der skal flyve (en udformningsoptimerer og dens Pareto-front), hvor sikkert svaret er (usikkerhed og følsomhed), og om missionen lever op til sine krav (et missionsdossier, sporbarhed af krav, afvejningsstudier, en regressionskontrol af scenarier, digitale tvillinger af ure, et studiedossier og en service i egne lokaler). Den holder også øje med en kampagne af tal og lader en pipeline fejle, når et tal bliver dårligere, afprøver kandidater til signalplaner mod de åbne satellitnavigationssignaler i begge retninger (spektrumkoeksistens) og sætter studier i kø i en jobservice i egne lokaler med et hashkædet leveringsregister. Hver af dem er beskrevet, med hvad den frembringer, og hvad den ikke gør, i docs/PRO.md. Intet, Pro frembringer, er en certificering, og et skræddersyet studie er heller ikke en certificering.

Hvad Kshana Pro læser fra den åbne motor, og support fra Ashforde® OÜ

Hvad Kshana Pro bygger på. Hver del af Pro arbejder ud fra den åbne motor og lader den være uændret:

  • Udformningsoptimereren, usikkerhedsstudiet og missionsdossieret kører scenarier fra den åbne motor gennem motorens offentlige grænseflade og beregner hvert tal ud fra kørslernes resultater. Hvert output beholder det evidensniveau, VALIDATED, MODELLED eller PARTNER, som den åbne motor gav hvert tal, aldrig et højere.
  • Digitale tvillinger af ure bruger den åbne motors urmodel og dens estimator af Allan-deviation: en tvilling kalibreres til enhedens publicerede Allan-budget og kontrolleres derefter ved at estimere tvillingens Allan-deviation med den åbne estimator.
  • Afvejningsstudier kører hver arkitekturmulighed som et scenarie i den åbne motor, uændret, og rangerer mulighederne efter et kvalitetsmål læst fra hver kørsels resultat.
  • Kampagneovervågning læser sine tal fra resultaterne af kørsler i den åbne motor af scenarierne i en pakke og sammenligner dem med den foregående bestående kørsel.
  • Spektrumkoeksistens læser hvert fysisk tal fra kørsler i den åbne motor af kinds leo-signal og constellation-design og tilføjer kun summen over de satellitter, der er i sigte, og rangeringen af planerne.
  • Jobservicen i egne lokaler kører åbne scenarier og Pro-scenarier gennem den samme motor og gemmer hvert resultat, som kørslen returnerede det.
  • Bevispakker registrerer for hver kørsel den scenariehash, som den åbne motor stempler på sit resultat, så et tal i en pakke kan gengives ved at køre dens scenarie igen.
  • Systemudvikling og programværktøjer. Kshana Pros modelbaserede systemudvikling (MBSE) og programværktøjer kontrollerer et programs krav mod kørsler af den åbne motor: de importerer krav som kommaseparerede værdier (CSV) eller som en dokumenteret delmængde af Requirements Interchange Format (ReqIF) eller af tekst i Systems Modeling Language version 2 (SysML v2), evaluerer hvert acceptkriterium med dets enhed mod de værdier, en kørsel skrev, og frembringer en verifikationskrydsreferencematrix (VCRM), en SysML v2-model, en ændringspåvirkningsrapport og en offline bevispakke. De kører intet igen og genberegner intet, og læser kun det, den åbne motor publicerer: hver kørsels result.json (de felter, et kriterium nævner, deres enheder, reproducerbarhedsstemplet med scenariehash, seed, motorversion og skemaversion samt kørslens mærkning og tal-niveauer), dens report.json (kind, reproducerbarhedspost og funktionsmærkninger), scenariefilen (dens hash, kind, seed og parametre), skemaet for feltenheder (hvert felts enhed, proveniens og evidensniveau) og verifikationsmatrixen (hver funktions mærkning VALIDATED, MODELLED eller PARTNER).

Support og professionelle tjenester#

Kshana er gratis og open source under AGPL-3.0 og professionelt udviklet og vedligeholdt af Ashforde® OÜ (Estland). Den åbne motor er komplet og kan bruges alene. Til organisationer, der har brug for mere, tilbyder Ashforde® OÜ:

  • Kommerciel support og integration — indlejring af Kshana i din værktøjskæde, skræddersyede scenarier og prioriterede rettelser.
  • Skræddersyede sensormodeller — kalibreret til din hardware, herunder eksportfølsomme robusthedsmodeller, der vedligeholdes i et privat overlay.
  • Kshana Pro — proprietær modelbaseret systemudvikling (MBSE) og programværktøjer, der kontrollerer et programs krav mod kørsler af den åbne motor og frembringer en verifikationskrydsreferencematrix (VCRM), en model i Systems Modeling Language version 2 (SysML v2), en ændringspåvirkningsrapport og en offline bevispakke. De kører intet igen og læser kun motorens publicerede output: hver kørsels result.json og report.json, scenariefilen, skemaet for feltenheder og verifikationsmatrixens mærkninger (den fulde liste findes under Udgaver).
  • Kshana Pro-værktøjer til udformning, usikkerhed og mission — Pareto-fronten for et udformningsrum, usikkerhed og følsomhed over tusindvis af kørsler og et missionsdossier med én kommando med en verifikationsmatrix og en PDF; se docs/PRO.md.
  • Kshana Pro: kampagneovervågning, spektrumkoeksistens og jobservice — en pipeline, der fejler, når et overvåget tal bliver dårligere, signalplaner afprøvet mod de åbne satellitnavigationssignaler i begge retninger og en jobkø i egne lokaler med et hashkædet leveringsregister; se docs/PRO.md.
  • Undervisning og rådgivning om analyse af kvante-/klassisk PNT-ydeevne.

Dette er open core-modellen: motoren er og forbliver åbent licenseret; den bærende forretning er ekspertise, support og de proprietære udvidelser — ikke licensgebyrer. Kontakt contact@ashforde.org · ashforde.org.

Forskning#

Studier bygget på den åbne motor publiceres på arXiv. Hvert nævner den motorkommando, der ligger bag, så dets tal kan genskabes ud fra et committet scenarie eller studieeksempel.

Forskning bygget på den åbne motor: seks artikler på arXiv, hvert kort angiver artiklen, dens dato og kategori samt den motorkommando, der genskaber dens tal. De samme seks artikler, med links og kommandoer, står i tabellen nedenfor.Forskning bygget på den åbne motor: seks artikler på arXiv, hvert kort angiver artiklen, dens dato og kategori samt den motorkommando, der genskaber dens tal. De samme seks artikler, med links og kommandoer, står i tabellen nedenfor.
Artikel Hvad den viser Motorkommando
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
Faldet i en GNSS-interferensdetektors score, når forholdene skifter, kan forudsiges alene ud fra statistik inden for fordelingen, på en åben syntetisk testbænk og derefter på åbne feltoptagelser. 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
En GNSS-modtager til tidssynkronisering under spoofing har ingen endelig ubetinget grænse for uopdaget tidsfejl, så artiklen angiver en betinget grænse, kalibreret på en optaget spoof over luften fra den offentlige JammerTest 2024-kampagne. 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
En enkelt sammensat robusthedsscore er kun et stabilt grundlag for en beslutning, hvor én udformning dominerer; hvor udformninger konkurrerer, kan ændret vægtning alene ændre vinderen. 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
Afstandsmåling inde i en månekonstellation efterlader en overfladestations absolutte position uobserverbar; en forsinkelse fra interferometri med meget lang baseline (VLBI) fra Jorden genopretter den, når konstellationen er tynd, og skærper den, når den er rig. lunar-joint-od-clock-kind: 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
Planlagte konstellationer på fire til seks satellitter giver dårlig geometri ved Månens sydpol, og nogle få afstandsmålende overfladebeacons afhjælper det langt billigere end flere satellitter. lunar-beacon-kind: 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
Dilution of precision er udefineret for cislunar sporing med kun afstandsmåling, fordi hastigheden ikke kan observeres i et øjebliksbillede, så artiklen bruger observerbarhedsgrammatrixen på fire plane fjerne retrograde baner: kun afstandsmåling har rang 2 af 4 i et øjebliksbillede og kræver en bue på omkring 2,09 h for at blive fuldt observerbar, hvor konditioneringen forbedres, jo længere buen er; afstandsrate (Doppler) giver straks rang 4; og samtidig estimering af en station sammen med satellitternes tilstande og ure forbliver rangdeficient med én, medmindre en ekstern interferometrisk observabel tilføjes. Krav hører hjemme i budgetter for buelængde, konditionering og målingstype, ikke i DOP. cislunar-observability-kind: kshana scenarios/cislunar-observability.toml (dens søsterkind cislunar-arc-recovery afprøver tærsklen med en uafhængig estimator med differenskvotienter)

De tre studieeksempler skriver byte-deterministiske artefakter (faste seeds), der registrerer deres motorversion, seeds og en konfigurationshash. De tre artikler om Månen og cislunar bygger på månesuiten (hver dels evidensniveau står i verifikationsmatrixen); deres påstande om geometri og dilution of precision er desuden krydskontrolleret mod separate uafhængige referencer i tests/validate_p*.rs. Mere under Reproducerbare studieartefakter under Reference.

Citér#

Hvis du bruger Kshana i akademisk eller teknisk arbejde, bedes du citere den version, du brugte, med scenarie og seed. CITATION.cff rummer de maskinlæsbare metadata, og GitHub viser en knap "Cite this repository" ud fra dem. Hver udgivelse arkiveres på Zenodo; koncept-DOI'en (Digital Object Identifier) 10.5281/zenodo.20528627 peger altid på den seneste version.

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

Artiklerne ovenfor:

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

Licens#

Kshana er dobbeltlicenseret: GNU AGPL-3.0-only (LICENSE) eller en kommerciel licens fra Ashforde® OÜ til lukket integration, som AGPL ikke passer til. LICENSING.md forklarer, hvilken der gælder. Bidrag licenseres indgående under AGPL og giver også Ashforde® OÜ ret til at medtage dem i den kommercielle udgave; underskriv hver commit med git commit -s (se CONTRIBUTING.md). "Kshana" og dets mærker er varemærker tilhørende Ashforde® OÜ: licensen dækker koden, ikke navnet, så omdøb venligst forks.

Reference#

Det lange stof, foldet sammen. Hvert dokument er opført i Dokumentation.

Installation og bygning fra kildekode

Installation og bygning#

Kræver en Rust-værktøjskæde (≥ 1,88, rust-version i Cargo.toml; udviklet på 1,93).

git clone https://github.com/ashfordeOU/kshana
cd kshana
cargo build --release
cargo test          # all tests pass
Brug: kommandolinjen i sin helhed

Brug#

Kør et vilkårligt scenarie; CLI'en fordeler efter scenariets kind-felt og skriver <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html og <scenario>.report.json ved siden af det — plus <scenario>.table.csv for de kinds, der publicerer en tabel. Rapporten (en HyperText Markup Language (HTML)-side og et JSON-dokument med samme indhold) indeholder et resumé for ledelsen, hvert input med sin enhed, resultaterne og diagrammerne, en kampagnes sweep-, Monte Carlo- eller kædetabeller, en tidslinje over hændelser, mærkningen VALIDATED / MODELLED / PARTNER og kilden for hver funktion, kørslen brugte, hvad der ikke er modelleret, og en reproducerbarhedspost (motorversion, Secure Hash Algorithm 256-bit (SHA-256)-digests, seed, platform og den nøjagtige kommando). Den udskrives til en ren PDF-fil (Portable Document Format) fra browseren på A4- eller Letter-papir; motoren skriver ingen PDF selv. Se 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> skriver CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON (Request for Comments 7946), Ansys STK (Systems Tool Kit) .e-efemerider og SigMF-optagelser (Signal Metadata Format) ved siden af scenariet, og --import-route <route.geojson> fører en GeoJSON-linje ind i de kinds, der flyver et spor. Hvert format valideres mod sin publicerede specifikation, og et scenarie, et format ikke gælder for, siger hvorfor: se docs/INTEROP.md.

Andre CLI-tilstande — lint et scenarie, tilfør reelle jordorienteringsdata eller kør en hel suite:

# 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

Animationseksport. --animate svg|html|frames|all skriver <scenario>.animation.svg (Cascading Style Sheets (CSS)-keyframes, intet script), <scenario>.animation.html (afspil, pause, scrub, hastighed og synkroniserede paneler, uden eksterne aktiver) og <scenario>.frames/ (frame_0000.svg, … plus manifest.json med billeder pr. sekund og varighed). En kampagne afspiller sine faser og alarmer, en spektrumkørsel sit vandfald; temaet følger prefers-color-scheme, og prefers-reduced-motion viser det færdige billede. Den gengiver kørslens egne sampler, byte-identisk ved ny kørsel, og tilføjer ingen evidens. Se docs/ANIMATION.md.

Et suite-manifest er en lille TOML-fil (Tom's Obvious, Minimal Language) — et title og et scenarios = [ … ]-array af scenariestier — som motoren kører efter hinanden, idet hvert resultat (med dets mærkning MODELLED / VALIDATED) samles i ét selvbeskrivende studieartefakt. Se scenarios/quantum-pnt-demonstrator.suite.toml.

Rolle i interoperabilitet. Kshana er ydeevnesimuleringslaget, der sidder ved siden af efterbehandlingsværktøjskæden og ikke erstatter den: før dens RINEX-output ind i RTKLIB eller gLAB for en positionsløsning, og brug dens SP3-output som præcist banedataprodukt til værktøjer som Ginan — Kshana svarer på hvilken robusthed en given PNT-arkitektur giver, før du har reelle signaler, i formater, som disse værktøjer allerede indlæser (--export-sp3, eller export_sp3 = true i et orbit-scenarie, skriver <scenario>.sp3). Den samme bane kan udgives som standardsporets CCSDS OMM-middelelementer (--export-omm, eller export_omm = true, skriver <scenario>.omm) — én OMM 502,0 KVN-meddelelse (keyword = value notation) pr. TLE-defineret satellit, med hvert objekts reelle NORAD-katalognummer (North American Aerospace Defense Command), COSPAR-internationale betegnelse (Committee on Space Research) og epoke, til enhver OMM-bevidst forbruger i stedet for et specialbygget to-linjers elementsæt.

Eksempel på output (urets holdover — bemærk, hvordan kvalitetsmålene for integritet og sikkerhed rapporteres):

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

Det optiske urs 95. percentil (p95) af tidsfejl er 1.20e-4 ns: oversigten udskriver små værdier med betydende cifre i stedet for at afrunde dem til 0.0. security viser n/a (no attack), fordi dette scenarie ikke konfigurerer noget angreb, så der intet er at opdage. JSON-resultatet rummer stadig hvert urs analytiske grænse for spoof-detekterbarhed i fom.security (0,997 for det optiske ur, 0,000 for det chipskala-atomur, hvis egen støj over overvågningsvinduet overstiger specifikationen på 20 ns), og dets figure_tiers-blok markerer dette tal applicable: false. Scenariekinden spoof scorer detektion mod et indsprøjtet angreb. figure_tiers giver også hvert rapporteret tal dets verifikationsniveau — VALIDATED (kontrolleret mod en ekstern uafhængig reference) eller MODELLED — og den række i verifikationsmatrixen, niveauet læses fra. Bane-scenariet rapporterer desuden en geometriblok — andelen af sampler med en positionsbestemmelse og bedste/median position dilution of precision (PDOP) og positionsnøjagtighed — ved siden af urets resultat.

Læs disse to tal omhyggeligt. security er en analytisk grænse for spoof-detekterbarhed udledt af hvert urs stabilitet — den har kun mening over for et konfigureret spoofingscenarie og er ikke en RAIM-detektor med flere satellitter. integrity er her filterets selvkonsistens (andelen af udfaldssampler inden for dets egen k-sigma-grænse), ikke et integritetstal for luftfart i form af HPL/VPL. Se docs/INTEGRITY.md.

Til ægte modtagerautonom integritet kører scenariekinden integrity (scenarios/integrity-raim.toml) ægte snapshot- og løsningsseparations-RAIM (ARAIM-lignende) over den propagerede konstellationsgeometri: den beregner vandrette/lodrette beskyttelsesniveauer (HPL/VPL) pr. epoke og rapporterer andelen af epoker, der ligger inden for de konfigurerede alarmgrænser, med et Stanford-integritetsdiagram til klassifikation af fejl mod PL (protection level).

Reproducerbare studieartefakter

Fire åbne studier genskaber hver et byte-deterministisk artefakt (fast seed) fra én kommando — tallene bag studierne af kvante- mod klassisk krydsningspunkt, optimismegab ved RF-forstyrrelser, scoring af PNT-robusthed og beskyttelsesniveau for tidssynkronisering:

# 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

Hvert artefakt registrerer sin motorversion, sine seeds og en konfigurationshash og bærer en ærlig mærkning MODELLED/VALIDATED. Probes med reelle data (*_probe) kører den samme pipeline over optagelser, du selv leverer lokalt; ingen datasæt følger med i repoet. Studiet af optimismegabet ved RF-forstyrrelser er skrevet op i preprinten arXiv:2606,22054, og det betingede beskyttelsesniveau for tidssynkronisering (tpl_jammertest ovenfor) i preprinten arXiv:2606,24210 (se Citér).

De publicerede studier af månens PNT (arXiv:2607,06212 DOP med overfladebeacons, arXiv:2607,02566 VLBI-observerbarhed og arXiv:2610,23871 cislunar observerbarhed af buelængde) har deres påstande om geometri, dilution of precision, realtidsforudsigelse af referencesystem / jordorienteringsparametre (EOP), fjerne retrograde baner og RF-afstandsmåling uafhængigt krydskontrolleret i tests/validate_p*.rs mod separate uafhængige referencer (scipy.special.j1, en uafhængig NumPy-DOP-løsning med (HᵀH)⁻¹, en NumPy-genindlæsning af de samme IERS finals2000A-rækker og NASA/JPL's Three-Body Periodic Orbit Database). Det er yderligere regressionskontroller over den modellerede månesuite; de ændrer ikke antallet i den maskinkontrollerede matrix.

Scenarieformat

Scenarieformat#

Scenarier er deklarativ TOML. Et kind på øverste niveau vælger pakken — i alt halvtreds (clock er standard, hvis det udelades): 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 (testbænk til evaluering af RF-forstyrrelsesdetektion med maskinlæring — mærket syntetisk korpus + detektoruafhængig ROC/AUC-harness + optimismegab i/uden for fordelingen), quantum-trade (afvejning mellem kvante og klassisk PNT med indlæsning af målt ADEV + robusthedskuvert uden GNSS; MODELLED), space-weather (sol-/geomagnetiske indekser + Jacchia-71 eksosfærisk temperatur + aktivitetsdreven termosfærisk tæthed oven på den statiske atmosfære; MODELLED), oem-interop (CCSDS OEM-import/rundturs-bro til GMAT/Orekit/STK-efemerider; MODELLED), missionsanalysetrioen launch-window (tolegemers opsendelsesazimut / planskift / muligheder), reentry (Allen-Eggers ballistisk genindtrængningskorridor), eo-coverage (EO-sporbredde / GSD / adgang / genbesøgsgeometri), space-packet (CCSDS 133,0 TM/TC — telemetri/telekommando — Space Packet-indramning — nøjagtigt bitlayout, rundtur verificeret) og attitude-budget (3-DOF-tyngdegradientmoment + RSS-budget for pegefejl), passes (forudsigelse af jordstationspassager ved opgang/nedgang — AOS/TCA/LOS, maksimal elevation, adgang) og link-budget (envejs CCSDS/DSN-linkligning — FSPL / Eb·N₀ / margin / lukning); telecom-timing (tidsfejl under holdover, MTIE og TDEV kontrolleret mod ITU-T-masker); spectrum (hele GNSS L-båndet som én effektspektraltæthed: et vandfald over frekvens og tid under en scriptet tidslinje for en jammer med kontinuert bølge, smalbånd, chirp eller matchet støj, jammer-til-signal-forhold pr. bånd og effektiv bærebølge-til-støjtæthed ud fra spektralseparationskoefficienten samt Signal Metadata Format (SigMF)-optagelse som input og output med Welch-spektralestimater; signalspektrene VALIDATED mod lærebogsværdier, jammerscenariet MODELLED; se docs/SPECTRUM.md; den samme kind tegner UHF-, S- og C-båndspaneler med udformede signaler fra lav jordbane); leo-signal (signaludformninger til positionering, navigation og tidssynkronisering fra lav jordbane for ethvert system: båndbegrænsede spektre, kodesporings-jitter og afstandsnøjagtighed, erhvervelsessøgning og -tid, spektralseparation mod GPS og Galileo, jammertolerance og en afvejning mellem UHF og C-bånd, ud fra offentlige forudindstillinger som Xona Pulsar, Iridium, Starlink og CentiSpace eller inline-udformninger; de lukkede former og LEO-Doppler VALIDATED, udformningerne MODELLED; se docs/LEO-SIGNAL.md); solar-system (Solen, planeterne, Pluto, Månen og syv store måner ved én epoke — positioner, konstanter, lystider og banespor; planetpositioner VALIDATED mod JPL Horizons) og body-pnt (positionering omkring hvert af disse legemer med en lokal navigationskonstellation og et dybrumslink fra Jorden; MODELLED); campaign (eksisterende kinds sammensat til en kædet missionstidslinje med tilstand overdraget mellem faser, en parametersweep, et seedet Monte Carlo-ensemble eller flere scenarier under én fælles betingelse; MODELLED, se docs/CAMPAIGNS.md); constellation-design (Walker-delta- og -stjernemønstre, elementlister og multi-shell-udformninger med forudindstillinger for GPS, Galileo, BeiDou og GLONASS samt dækning og dilution of precision over et bredde-/længdegradsgitter; generatoren og GPS' globale DOP VALIDATED mod de publicerede servicedokumenter, se docs/CONSTELLATION-DESIGN.md); leo-pass (en passage af en satellit til positionering, navigation og tidssynkronisering (PNT) i lav jordbane (LEO) og dens linkbudget bånd for bånd, fra enhver konstellation og ethvert signaldesign: synsvinkler, Doppler og Doppler-rate, ITU-R-tab ved regn, gas, scintillation og indtrængning i bygninger, bærebølge-til-støjtæthed mod de MEO GNSS-satellitter, der er i sigte, første ordens ionosfære og ionosfærefrie par og et lavenergibudget for positionsbestemmelse, ionosfærelodning fra hvert båndpar og spoofingovervågninger ved Doppler- og passagegeometrikonsistens og ved konsistens på tværs af bånd; ITU-R-leddene og Doppler-kuverten for statisk bruger VALIDATED, passagen MODELLED, se docs/LEO-PASS.md); leo-navmsg (udsendt efemeride- og urmeddelelse fra en PNT-satellit i lav jordbane (LEO), for enhver bane og bærebølge: en tilpasser fra en integreret reference-bane til Galileos Kepler-sæt, det sæt med langs-banen-, på-tværs- og radiale korrektionspolynomier, Liu et al. 2025 22-parametermodellen eller ATOMIC's nulur-ECEF-polynomium; signal-i-rummet-afstandsfejl (SISRE) mod tilpasningsinterval og opdateringsperiode, en kontrol af kontinuitet ved opdatering midt i passagen, Kshanas egen dokumenterede binære ramme med en CRC-24Q-cyklisk redundanskontrol og et kvantiseringsbudget samt en blok i RINEX-4-stil mærket som en Kshana-udvidelse; SISRE-vægtene, Galileo-brugeralgoritmen og CRC-24Q VALIDATED, tilpasningerne MODELLED; valgfrie forudindstillinger for Xona Pulsar, Iridium, Starlink, CentiSpace, et repræsentativt C-båndssystem, ATOMIC og Celeste IOD; se docs/LEO-NAVMSG.md); trioen med fusioneret MEO + LEO PNT leo-pvt (Doppler-positionering ud fra afstandsrate fra lav jordbane (LEO), fælles GNSS + LEO-pseudoafstandspositionsbestemmelser med intersystembiaser og DOP mod antallet af LEO-satellitter, polar- og arktisk dækning og LEO-tidsoverførsel til UTC — over enhver konstellation, med valgfrie forudindstillinger som Xona Pulsar-, Iridium- og Starlink-signaler af opportunity; LEO-Doppler-kuverten VALIDATED mod publicerede Iridium- og Xona-tal), leo-ppp (konvergens af præcis punktpositionering med kun GNSS og med LEO-augmentering, sammenlignet med Li et al. 2019) og ntn-positioning (5G-positionering via ikke-terrestriske net ud fra Cramér-Rao-grænsen for signalets båndbredde), MODELLED bortset fra den kuvert, se docs/LEO-PNT-FUSION.md; leo-pnt-chain (ét LEO-PNT-system fra ende til anden: en leo-signal-udformning båret af et leo-pass-bånd, passagens C/N0 og navigationsmeddelelsens signal-i-rummet-afstandsfejl overdraget til en fusioneret leo-pvt-positionsbestemmelse og leo-ppp-konvergens, hver overdragelse opført; MODELLED, se docs/LEO-PNT.md, som også er oversigten over hver LEO-PNT-kind og hvert scenarie, herunder robusthedskampagnerne, ét scenarie pr. eksperimentfokusområde og ét pr. slutbrugervertikal); månens PNT-suite lunar-vlbi, lunar-joint-od-clock, lunar-frame-realisation, moonlight-service-volume, lunar-differential-pnt, lunar-interop-export; den kvanteunderstøttede PNT-demonstrator quantum-time-transfer, quantum-gnss-free-nav, quantum-anomaly-detect; og forskningskinds for signalsikkerhed, cislunar og lagdelt robusthed lunar-attack-surface, realtime-frame-eop, lunar-time-budget, hybrid-optical-rf, cislunar-observability, conflict-resilience — missionsanalysetrioen og disse senere kinds alle MODELLED (hver med en valideret lukket kerne; se matrixen). Fælles felter: seed, et [time]-gitter, en [gnss]-tilgængelighedstidslinje (udfaldsdriveren) og blokke pr. sensor med provenance-strenge, der angiver kilden til hvert tal. Eksempel (ur):

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

Valgfrie felter (slået fra, når de mangler): et ur kan tilføje flicker_floor (1/f FM — frekvensmodulation — Allan-bundgrænse); en inertisensor kan tilføje gyro_bias og q_arw (gyrobias og vinkelrandomwalk) samt bias_instability og q_aa (Allan-bundgrænsen for biasustabilitet og accelerationsrandomwalk) — tilsammen et enkeltakset (1-DOF) fejlbudget for accelerometer (VRW/ARW — hastigheds-/vinkelrandomwalk — og biasustabilitet). Det er det fejlbudget, som den medfølgende pakke af scenariet inertial kører. Særskilt rummer biblioteket nu en verificeret 3-akset strapdown-navigator (src/inertial/{attitude,mechanization,imu_errors}.rs): kvaternionattitude med coning/sculling-kompensation, en fuld NED-mekanisering (led for jordrotation og transportrate, WGS-84 Somigliana-tyngde) og en deterministisk IMU-fejlmodel, hvor skalafaktor, fejljustering, g-følsomhed, kvantisering og rate-ramp er modelleret (IEEE Std 952-1997, IEEE's standard for gyrospecifikation og testprocedure, §A.2; Groves 2013 §4,3). Den 3-akse-vej er nu koblet til en kørbar løst koblet GNSS/INS-pakke (kind = "gnss-ins"): et 15-tilstands fejltilstands-EKF disciplinerer strapdown-løsningen mod støjfyldte positionsbestemmelser, mens GNSS er oppe, og kører derefter frit gennem udfaldet og rapporterer den fusionerede vandrette fejl mod den åbne sløjfes frie INS-kørsel. En tæt koblet pseudoafstands-opdatering er også tilgængelig (den danner innovationen i afstandsdomænet, så den fortsætter med at korrigere med færre end fire satellitter). Et scenarie med urets holdover kan tilføje runs (> 1) for at køre et Monte Carlo-ensemble — hvert kvalitetsmål rapporteres så som et gennemsnit med en spredning fra 5. til 95. percentil, og diagrammet skraverer fejlens konfidensbånd (se scenarios/clock-ensemble.toml).

Et fusion-scenarie (samme blokke som hybrid) kører to uafhængige Kalman-estimatorer — én for urets tilstand, én for positionstilstanden — disciplineret af GNSS og hjulpet af optisk tidsoverførsel, og rapporterer et samlet kvalitetsmål for holdover. De to blokke deler ingen krydskovarians: det er et stablet par fejlbudgetter, ikke et ægte koblet fælles filter for ur+position (krydskovarians mellem blokkene står på køreplanen). Se scenarios/fusion-pnt.toml.

Et spoof-scenarie indsprøjter en tidsspoof — én af fire [attack.shape]-kinds (linear_ramp, step_jump, meaconing, replay; en blot rate_ns_per_s accepteres stadig som en lineær rampe) — og kører hvert urs spoofdetektor. Detektoren er en tosidet χ²₁-energitest / Neyman–Pearson-test på urstøttet overvågningsstatistik: tærsklen fastsættes ud fra et mål for falsk alarm target_pfa, og sandsynligheden for mistet detektion P_md rapporteres både på lukket form og ved Monte Carlo (mc_runs forsøg pr. hypotese — de to stemmer overens inden for nogle få ×1/√N). Kvalitetsmålet for sikkerhed er 1 − P_md ved den operationelt skadelige (specifikations-)størrelse, så et roligt ur, der fanger en spoof af specifikationens størrelse, scorer ≈ 1, og et støjfyldt ur, der ofte overser den, scorer lavere (se scenarios/spoof-attack.toml, scenarios/spoof-meaconing.toml).

Et gnss-sim-scenarie er en simulering i måledomænet: for hver synlig satellit syntetiserer det pseudoafstanden ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath og L1-Doppler med Klobuchar-ionosfæren for enkelt frekvens ([iono], IS-GPS-200 §20.3.3.5.2.5) og Saastamoinen-zenittroposfæren projiceret med Niell (1996)-afbildningsfunktionen ([tropo]). Residualerne forsyner snapshot-RAIM med HPL/VPL pr. epoke, og hver satellits pseudoafstand, Doppler, C/N₀ og iono-/tropo-korrektioner udsendes i JSON-arrayet gnss_measurements. Det er en fremadrettet simulator (den genererer målinger ud fra en kendt reference), ikke en modtager/solver — en kørsel uden støj gengiver geometri plus korrektionerne til under en millimeter (se scenarios/gnss-sim-raim.toml).

Et jamming-scenarie modellerer RF-interferens som et linkbudget: en [jammer] (ECEF-position, sendt power_dbw, type) hæver jammer-til-signal-forholdet ved en [receiver], der iagttager en Walker-[constellation]. Ud fra geometrien (frirumstab og modtageantennens forstærkning pr. retning) beregner det hver satellits J/S, den effektive C/N₀ via standardligningen for anti-jam (afspredningsprocesgevinst × spektralseparationsfaktoren Q; Kaplan & Hegarty §9,4), og markerer tab af lås under en konfigurerbar sporingstærskel — og rapporterer et kvalitetsmål for availability_under_jamming. En bredbåndsjammer på 10 W ved 1 km nægter modtageren helt (J/S ≈ 72 dB); den samme jammer ved 100 km forringer kun linkene (se scenarios/jamming-demo.toml).

Et sweep-scenarie kører et afvejningsstudie: det varierer én parameter (threshold_ns, duration_s, quantum_q_wf eller classical_q_wf) fra start til stop over steps punkter på en lin- eller log-scale, registrerer en metric (f.eks. holdover_s) for begge ure og tegner de to kurver. Basisscenariet placeres under [base] (se scenarios/sweep-clock-stability.toml).

Et sweep-nd-scenarie generaliserer dette til enhver pakke og et vilkårligt antal akser: det varierer punkterede TOML-nøgler i et [base]-scenarie (af enhver kind) over det kartesiske produkt af [[axes]], kører hvert gitterpunkt igen og registrerer metrics angivet som punkterede JSON-stier ind i resultatet (f.eks. classical.fom.holdover_s). Det virker for hver pakke, fordi det opererer i grænsefladen mellem TOML og resultat; native kørsler evaluerer gitteret parallelt (ingen ekstra afhængighed, wasm falder tilbage til sekventielt), og outputtet er deterministisk og rækkevist (se scenarios/sweep-nd-inertial.toml).

Et orbit-scenarie udleder [gnss]-tidslinjen ud fra geometri i stedet for at forfatte den — angiv en [user]-bane, en [constellation], en elevationsmask_deg og de to urblokke. Det rapporterer også positionsnøjagtighed ud fra satellitgeometrien; den valgfrie sigma_uere_m (1-sigma brugerækvivalent afstandsfejl, standard 1 m) skalerer position dilution of precision til en positionssigma. Brugerbanen kan gøres excentrisk med eccentricity og argp_deg, og j2 = true tilføjer sekulær drift fra Jordens fladtrykthed (se scenarios/orbit-molniya.toml). Konstellationen kan i stedet være en reel: giv [constellation] en tle-blok med to-linjers elementsæt, og satellitterne parses ud fra den (se scenarios/orbit-real-tle.toml). Tilføj en eller flere [[constellations]]-blokke for multi-GNSS (f.eks. GPS + Galileo; se 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

GPS-nægtede alt-PNT-kinds navigerer helt uden GNSS og afstemmer en målt feltsekvens mod et kort gennem et partikelfilter. Et gravity-map-scenarie flyver et spor gennem et tyngdeanomalifelt i kugleharmoniske og genskaber det ud fra aflæsningen fra et koldatom-gravimeter (scenarios/gps-denied-gravity-nav.toml); et terrain-nav-scenarie gør det samme mod en SRTM-højdemodel (DEM) (TERCOM/SITAN, scenarios/terrain-nav.toml); og et combined-altpnt-scenarie fusionerer tyngde + IGRF-magnetisme + terræn i ét filter (scenarios/combined-altpnt.toml).

Et lunar-integrity-scenarie evaluerer cislunar PNT: det kører en ARAIM-beskyttelsesniveaupassage ved Månens sydpol mod et LunaNet/LNIS-relæsæt og rapporterer ærligt integritetsgabet — en lunar σ_URE på ~30 m driver beskyttelsesniveauet langt over en alarmgrænse på 50 m, så servicen er utilgængelig under integritetsregler i luftfartens stil (scenarios/lunanet-araim.toml).

Et lunar-time-offset-scenarie rapporterer den relativistiske ur-rate mellem Jorden og Månen — grundlaget for en månekoordinattidsskala (LTC/TCL). En post-newtonsk identitet ud fra første principper summerer forskellen i selvpotentiale (IAU L_G-geoidepotentiale minus Månens overfladeselvpotentiale) og Månens kinetiske led (andenordens Doppler) til en sekulær rate på ≈ 57 µs/dag, rapporteret med det publicerede bånd på 56–59 µs/dag; det giver også den akkumulerede LTC−TT-forskydning over en horisont og et ensemble med invers varians (et lunart papirur). MODELLED — hovedtallet er referenceafhængigt (jordens geoide mod månens selenoide, middelvindue), hvorfor der rapporteres et bånd og ikke et enkelt certificeret tal (scenarios/lunar-time-offset.toml).

Se scenarios/ for mindst ét udarbejdet eksempel på hver type (92 typer, 193 scenariefiler .toml + 1 suitemanifest — flere typer leveres med mere end ét eksempel). Ikke hver type har en fil opkaldt efter sig: lunar-integrity → scenarios/lunanet-araim.toml og gravity-map → scenarios/gps-denied-gravity-nav.toml er to af flere sådanne. Vis de fordelbare typer når som helst med cargo run -- --validate <file> fejl, Python-funktionen list_kinds() eller MCP-værktøjet list_scenario_kinds.

Output

Output#

Resultatartefaktet er versioneret, selvbeskrivende JSON: tidsserier pr. trin, de scorede kvalitetsmål, de aktive modelspecifikationer (med proveniens), seed, en scenariehash — så ethvert diagram kan genskabes ud fra filen — og for hvert ur en adev_curve ([{tau_s, adev, n_samples, noise, edf, ci_lo, ci_hi}]): den overlappende Allan-deviation over oktavfordelte middelværdityder — den gængse måde at aflæse et urs stabilitet på — nu med et støjtypespecifikt 95 %-konfidensbånd pr. punkt (postens potenslovstype identificeres ud fra dens modificerede Allan-hældning, og χ²-intervallet bruger de tilsvarende effektive frihedsgrader fra NIST SP 1065). Browserens playground gengiver det som et log-log-diagram "Clock stability (ADEV)". (MDEV, TDEV og HDEV er tilgængelige som bibliotekets estimatorer; den eksporterede resultatkurve er den overlappende ADEV.) Hvert felt, med enheder og en kildehenvisning, er dokumenteret i docs/SCHEMA.md.

Hvert diagram er selvbeskrivende. Browserens playground, CLI'ens *.chart.svg-eksport og HTML-resultatkortet (HyperText Markup Language) stempler alle hvert diagrambillede med en fodlinje, der lyder Kshana v<version> · scenario <hash> · kshana.dev. scenario <hash> er de første 12 hex-tegn af kørslens scenariehash — en SHA-256-digest (den 256-bit Secure Hash Algorithm) over den kanoniske scenariedefinition (seed, tærskler, modelparametre, GNSS-vinduer, …); integritets- og månerapporterne, som ikke bærer nogen egen hash, falder tilbage til en SHA-256 af scenariets kilde. Den er det samme fingeraftryk, som vises i enlinjesammenfatningen og resultat-JSON, så et gemt eller indsat diagram altid bærer sin version, det nøjagtige scenarie, der frembragte det (til bit-for-bit-gengivelse), og kilden — ændr et input, og hashen ændres.

Kvalitetsmålene følger de gængse operationelle kvalitetsmål for PNT:

Kvalitetsmål Hvordan Kshana beregner det
Tidsydelse (ur-/banepakker) RMS og 95. percentil af urfasefejl over udfaldet, i nanosekunder (timing_rms_ns) — et mål for tidssynkronisering, ikke for position
Positioneringsydelse (inerti-/hybridpakker) RMS og 95. percentil af 1-DOF-positionsfejl over udfaldet, i meter (pos_rms_m); enkeltakset. En enkelt kørsel markeres monte_carlo: false; angiv runs = N for et Monte Carlo-ensemble, der rapporterer hvert måls gennemsnit, spredning og bootstrap-95 %-CI (konfidensinterval). Stadig ikke en 2D-CEP/2DRMS (circular error probable / twice the distance root mean square) eller DOP-vægtet nøjagtighed (de kræver 3-akse-modellen — på køreplanen)
Autonomi holdover-varighed — tid inden for specifikationen efter tab af GNSS (kvantiseret til gitteret: en nedre grænse)
Robusthed hældning på fejlvæksten under udfaldet
Tilgængelighed andelen af kørslen med en løsning inden for specifikationen
Integritet filterets selvkonsistens — andelen af udfaldssampler, hvis fejl forbliver inden for Kalman-filterets egen k-sigma-grænse. Ikke et integritetstal for luftfart i form af HPL/VPL/RAIM (se docs/INTEGRITY.md)
Sikkerhed analytisk grænse for spoof-detekterbarhed ud fra urets stabilitet — hvor lille/langsom en tidsspoof en konsistensovervågning med ét ur kunne markere. Har kun mening med et konfigureret angreb; ikke en RAIM-detektor med flere satellitter

Ny med disse begreber? Hvert er defineret i klart sprog i ordlisten.

Repositoryets opbygning

Repositoryets opbygning#

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 (ofte stillede spørgsmål)

FAQ#

Skal jeg forstå kvantefysik for at bruge dette? Nej. Hvis du kan køre en kommandolinje, kan du køre Kshana. Start med primeren i klart sprog; slå begreber op i ordlisten.

Er dette en udformning af kvantehardware eller flyvesoftware? Nej. Det er en simulator af ydeevne. Kvantehardwarens troværdighed kommer fra publicerede fejlmodeller, ikke fra dette værktøj. Se Hvad det er / ikke er.

Er kvanteresultaterne realistiske, eller er det markedsføring? Hver parameter er henvist til et datablad eller en artikel, hver model er valideret mod en lærebogsrelation, og modenhed er ærligt mærket i VALIDATION.md — herunder at intet strontium-optisk ur har fløjet. Motoren er neutral: kvante og klassisk er den samme kode med forskellige publicerede tal.

Kan jeg stole på, at to kørsler stemmer overens? Ja — kørsler er deterministiske: scenario + seed + engine version → bit-identical output, håndhævet af scripts/check-reproducible.sh.

Kan jeg bruge det fra Python eller i en browser? Ja — se Installation: eksemplerne for Python og WebAssembly står under den. Begge kalder den samme motor.

Hvordan modellerer jeg min egen sensor? Skriv et scenarie .toml med din sensors publicerede tal i provenance-felterne. Se Scenarieformat og eksemplerne i scenarios/.

Er det gratis til kommerciel brug? Ja — under AGPL-3.0, også i kommercielle sammenhænge, så længe du respekterer AGPL's copyleft (især: hvis du ændrer Kshana og tilbyder det over et netværk, skal du tilbyde disse brugere din ændrede kildekode). Hvis det ikke passer dig — f.eks. hvis du skal indlejre Kshana i et proprietært produkt eller drive en lukket netværkstjeneste — fås en kommerciel licens fra Ashforde® OÜ; se LICENSING.md og Support.

Fejlfinding

Fejlfinding#

cargo build fejler på en gammel værktøjskæde. Kshana kræver Rust ≥ 1,88. Opdatér med rustup update.

Bygningen af Python-udvidelsen kan ikke linkes på macOS (Undefined symbols … _Py…). En Python-udvidelse opløser sine symboler ved indlæsning. maturin sætter automatisk det rigtige linker-flag — brug maturin develop --features python i stedet for en bar cargo build.

Python-bygningen klager over, at fortolkeren er nyere, end PyO3 kender. Sæt PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 (abi3-wheels er fremadkompatible på tværs af CPython-versioner).

WebAssembly-bygningen kan ikke finde målet. Installér det én gang med rustup target add wasm32-unknown-unknown, og kør derefter wasm-pack build --target web -- --features wasm.

Hvor blev mit output af? Hver kørsel skriver <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html og <scenario>.report.json ved siden af input-.toml, og også <scenario>.table.csv for de kinds, der publicerer en tabel. Alle er git-ignorerede af design.

Versionering og udgivelser

Versionering og udgivelser#

Kshana følger Semantic Versioning. Før 1.0 kan det offentlige scenarie-/resultatskema stadig ændre sig; brydende ændringer fremhæves udtrykkeligt i CHANGELOG.md. Hvert resultat kan genskabes ud fra scenario + seed + engine version.

Hvert vX.Y.Z-tag publicerer alle kanaler automatisk, i én rækkefølge — hele testsuiten kører først på den mærkede commit, intet publiceres, før den består, og bagefter kontrollerer pipelinen, at hvert register faktisk leverer den nye version (docs/RELEASING.md). Kanalerne:

En passage, der nævner AI-klienter fra tredjepart, er udeladt her; den findes i README.md på GitHub.

En passage, der nævner AI-klienter fra tredjepart, er udeladt her; den findes i README.md på GitHub.

Kanal Installér / hent Indhold
crates.io cargo install kshana · kshana = "0.35" Rust-bibliotek + CLI
crates.io cargo install kshana-mcp MCP-serveren
PyPI (Python Package Index) pip install kshana abi3-wheels (Linux/macOS/Windows) + sdist (kildedistribution)
npm npm install kshana WebAssembly-modul + JS-wrapper
ghcr.io docker run -i ghcr.io/ashfordeou/kshana-mcp OCI-billede til flere arkitekturer (Open Container Initiative) — ingen værktøjskæde nødvendig
npm npx -y kshana-mcp@0.40.0 launcher: henter udgivelsens binærfil, verificerer SHA256SUMS og kører den
PyPI uvx kshana-mcp==0.40.0 · pipx run kshana-mcp==0.40.0 den samme launcher til Python
Homebrew · Scoop · winget brew install ashfordeOU/tap/kshana-mcp · scoop install kshana-mcp · winget install AshfordeOU.KshanaMcp kshana-mcp-binærfilen, genereret ud fra hver udgivelses SHA256SUMS
officielt MCP-register opdages automatisk af MCP-klienter io.github.ashfordeOU/kshana-mcp (OCI-billede, npm- og PyPI-pakker)
JetBrains Marketplace IDE → Plugins → søg efter "Kshana" IDE-pluginnet Kshana — PNT simulator
Zenodo DOI et citérbart arkiv over hver udgivelse
kshana.dev åbn i en browser Kshana Studio, WebAssembly-appen i browseren, genbygget fra hvert udgivelsestag (så den version, den viser, er den version, den kører)

MCP-serverens crate-/billed-/registerversion følger motoren (den indeholder biblioteket); JetBrains-pluginnet versioneres uafhængigt (det kalder din installerede kshana-binærfil).

Køreplan

Køreplan#

Se ROADMAP.md for den fasede køreplan, CHANGELOG.md for udgivet historik og docs/CAPABILITY.md for køreplanen pr. funktion. Prioriteringsrækkefølgen er: først evidens for tidssynkronisering og holdover til kritisk infrastruktur (telekommunikationsmasker, længere holdover med ældning og flickerstøj, indlæsning af målte urdata); dernæst den neutrale afvejningsmetode mellem kvante og klassisk (resultater mærket MODELLED, indtil en partners målte data fremmer dem); og månens/cislunar og dybrumsnavigation vedligeholdt, ikke udvidet som det førende. Den ITRF-præcise referencesystemreduktion er nu leveret — hele den CIO-baserede IAU 2006/2000A GCRS↔ITRS-kæde (polarbevægelse + nutation under en buesekund), valideret bit for bit mod SOFA/ERFA og uafhængigt krydskontrolleret mod ANISE (ren Rust-SPICE) til ≤ 3,6 m ved GNSS-bane. Nærtidens punkter omfatter tæt koblet bærebølgefasefusion og at gøre den løst/tæt koblede GNSS/INS-navigator tilgængelig i flere pakker; motoren til dybt rum / radiometrisk Mars-navigation landede i v0.17.0 (valideret ved simulering). Kvantefysiklaget er et P2-punkt: CAI-accelerometeret simuleres nu ud fra første principper (Mach–Zehnder-fase, projektionsstøj, kontrastaftagen, vibrationskobling), mens ur-/tidsoverførselssensorerne stadig drives af publicerede Allan-/støjbudgetkoefficienter. GMST-baseret TEME&harr;ECEF, IERS' skudsekundtidssystemer (UTC/TAI/TT/UT1), SGP4/SDP4-banepropagering (v0.7.0, valideret mod AIAA 2006-6753-vektorerne) og den kørbare gnss-ins-fusionspakke er alle leveret, og inertihastigheden udstilles nedstrøms. En aktiv stokastisk detektor for tidsspoof (Neyman–Pearson / χ²₁-energitest med Monte Carlo P_fa/P_md og et sikkerhedskvalitetsmål på 1−P_md), en linkbudgetmodel for jamming (J/S → effektiv C/N₀ → tab af lås), tilgængelighed for flere konstellationer, et enkeltakset (1-DOF) IMU-fejlbudget, to uafhængige (ur + position) Kalman-estimatorer rapporteret som ét samlet kvalitetsmål, reel konstellationsgeometri fra TLE'er, en HTML-rapport med resultatkort, geometriafledt GNSS-tilgængelighed og dilution of precision fra Kepler-baner med excentricitet og J2-drift, Monte Carlo-konfidensbånd, parametersweeps til afvejningsstudier, et WebAssembly-playground i browseren og valgfri Python- (PyO3) og WebAssembly-bindinger (wasm-bindgen) er landet på main.

Bidrag

Bidrag#

Se CONTRIBUTING.md. Kort sagt: tests består (cargo test), de to kontrolscripts består, Conventional Commits og en CHANGELOG.md-post under [Unreleased] for hver ændring, som brugeren kan se. Deltagelse er underlagt vores adfærdskodeks. For at rapportere et sikkerhedsproblem, se sikkerhedspolitikken — åbn venligst ikke en offentlig issue om sårbarheder.

Dokumentation: hvert dokument, og hvem det er til

Dokumentation#

Dokument Til hvem Hvad der er i det
Begrebsintroduktion alle, start her hvad Kshana gør og hvorfor, fra nul til fysikken
Kshana Studio alle kør motoren i din browser (WebAssembly); noter om bygning og udrulning
Ordliste alle definitioner i klart sprog af hvert begreb
Scenarietyper alle hver kind, motoren fordeler: hvad den gør, dens felter, en eksempelkommando, dens registerrækker og det diagram, motoren skriver for den
Partnerdata laboratorier og producenter med målte data hvilke MODELLED-rækker en målt ur- eller IMU-optagelse kunne opgradere, formaterne, hvordan en indsendelse kontrolleres (kshana partner check), scores og krediteres
Arkitektur udviklere / reviewere modulkort, motorpipeline, fordeling og diagrammer
Valideringsstatus reviewere / citerende hvad der er validated mod not modeled, med evidens
Verifikationsmatrix reviewere / citerende det maskinkontrollerede evidensregister — hver funktionsrække med sin status, sit modul, sin test og sin eksterne uafhængige reference, genereret ud fra src/verification.rs
Begrundelse for modellerede rækker reviewere hvorfor hver modelleret række ikke har nogen ekstern uafhængig reference, anført række for række
Proveniens reviewere / citerende hver sensorparameter, model og hvert datasæt henført til sin publicerede kilde, i én citérbar tabel
Reproducerbarhed og proveniens reviewere / pakkere determinismegarantier, fastlåsning af facitfiler, SBOM (software bill of materials), bygningsproveniens
Platformtags for wheels pakkere matrixen for abi3-Python-wheels — hvilket platformtag pip install kshana opløser
Positionering evaluatorer hvor Kshana står i forhold til RTKLIB/gLAB (supplerende) og browserniveauet uden installation
Kshana Pro evaluatorer / programledere hvad det proprietære Pro-overlay tilføjer over den samme motor: udformningsoptimerer, usikkerhed og følsomhed, missionsdossier, kampagneovervågning, spektrumkoeksistens, jobservice i egne lokaler, sporbarhed af krav; hvad hver frembringer, og hvad den ikke gør
Teknisk rapport · JOSS-artikel reviewere / citerende / evaluatorer den fulde udvidede forskningsartikel — arkitektur, modeller pr. område, validering, casestudier og begrænsninger — plus det kortfattede JOSS-indlæg (Journal of Open Source Software)
SGP4-validering reviewere / citerende samstemmighed med AIAA 2006-6753-referencen (666 tilstande, ~4 mm) og en direkte sammenligning med den uafhængige crate sgp4 (stemmer overens til under en mikrometer / 4,12 mm)
Validering af kraftmodeller reviewere / citerende fuldkræftsmotoren (src/precise_od.rs) tilpasset agenturernes efemerider — metode og validerede residualer
Vejledning til reelle TLE'er brugere at drive scenarier med reelle Celestrak / Space-Track-konstellations-TLE'er (i stedet for det medfølgende syntetiske Walker-sæt)
Kvalitetsmål for integritet evaluatorer hvad tallene integrity / security betyder — og hvad de ikke er i forhold til luftfartens HPL/VPL
ARAIM-reference reviewere / integratorer den åbne MHSS ARAIM-implementering af beskyttelsesniveau — projektionen af nominel bias b_k, σ_URA mod σ_URE og a priori-sandsynlighederne for fejltilstande
Kvantemodeller · detaljer reviewere fysiklaget for koldatom-interferometeret, og hvor koefficienter stadig slås op
Compliance evaluatorer omfanget af DO-229E / DO-316-algoritmer, og hvad der ikke er et krav om overensstemmelse
Maritim tillid søfarende / integratorer GNSS-tillidsscoren 0-100 for et fartøjs NMEA, dens overvågninger og dens grænser (vejledende, ikke typegodkendt navigationsudstyr)
NMEA-træningsstrømme maritime undervisere syntetisk bro-NMEA med scriptet jamming og spoofing og en instruktørlog; kun tekst, aldrig til live navigation
Interferenskort analytikere / søfarende hvor fly og skibe har rapporteret forringede navigationsdata, og hvor meget af en rute det berører
Bevispakker operatører / forsikringsselskaber signerede tekniske optegnelser over en tillidshændelse og hvordan man verificerer én
Tillidstelemetri drifts- / sikkerhedsteams tillidsstrømmen som Prometheus-metrikker, SIEM-hændelser og OpenTelemetry, med et Grafana-dashboard
Maritime integrationer bådejere / integratorer Signal K-pluginnet, OpenCPN gate-tilstand og referencebygningen
Test bench modtagerproducenter at afspille et eksporteret scenarie gennem en laboratoriesimulator og score modtagerens log
Compliance-kortlægning evaluatorer offentlige robusthedsrammeværker afbildet på Kshana-output, med kilder og huller; kshana compliance-report
Notebooks brugere kørbare vejledninger med deres gengivne tekst
Standarder og interoperabilitet integratorer de udvekslingsformater for GNSS / flyvedynamik / agenturer, Kshana læser og skriver (RINEX, SP3, CCSDS OEM/OMM/TDM/Space-Packet, …)
LEO PNT-fusion brugere / evaluatorer fusioneret MEO + LEO positionering, navigation og tidssynkronisering: Doppler, fælles pseudoafstand, PPP-konvergens, 5G NTN, polardækning og LEO-tidsoverførsel over enhver konstellation; de valgfrie forudindstillinger og deres offentlige kilder
Kampagner brugere / evaluatorer sammensætning af scenarier: kædede missionstidslinjer, parametersweeps, Monte Carlo-ensembler og kørsler med fælles betingelser, med de sammensætningsidentiteter, som testene fastlåser
Scenariekatalog brugere / integratorer hver kind, der kan fordeles, med sine påkrævede og valgfrie TOML-felter — genereret ud fra api::list_scenario_kinds()
Resultatskema integratorer hvert felt i resultat-JSON, med enheder og en kildehenvisning
Python-API Python-brugere PyO3-bindingens flade — kald af motoren, scenarie- og resultattyperne samt eksempler
Påstande mod virkelighed reviewere registret over lukning af overdrevne påstande + CI-kontrollen (tests/no_overclaims.rs), der holder det løst
Køreplan alle den fasede køreplan — hvad der er leveret, og hvad der kommer næst
MCP-server · JetBrains-plugin agenter / IDE-brugere kør Kshana fra en AI-assistent eller en JetBrains IDE
Agentvejledning · Flader agenter / integratorer hvilket værktøj der besvarer hvilket spørgsmål, hvad man skal beholde med hvert svar; hvor hver funktion kan nås (CLI, Rust, Python, WASM, MCP, plugin, JetBrains, notebooks), og hvorfor en celle er N/A
Ændringslog alle udgivet historik (Keep a Changelog + SemVer, Semantic Versioning)
Bidrag bidragydere bygning, kontroller, disciplin for test/citering, DCO (Developer Certificate of Origin)
Styring bidragydere / fællesskab hvordan Kshana styres — hvem der beslutter, hvordan, og grænsen mellem åbent og lukket
Adfærdskodeks fællesskab forventet adfærd (Contributor Covenant)
Sikkerhedspolitik indberettere hvordan man rapporterer en sårbarhed; note om dobbelt anvendelse
Nøglereferencer

Nøglereferencer#

Uafhængige referencer til validering og standarder — de eksterne autoriteter, Kshanas kontroller er forankret i:

  • Vallado, Crawford, Hujsak & Kelso — Revisiting Spacetrack Report #3 (AIAA 2006-6753; testdata): det SGP4/SDP4-verifikationssæt, Kshana stemmer med til 4,12 mm, og de gennemarbejdede eksempler på referencesystemer, som TEME→ITRF-kæden kontrolleres mod.
  • IAU SOFA / ERFA — de tids- og referencesystemrutiner, som IAU 2000A-nutationen og CIO GCRS↔ITRS-reduktionen valideres mod bit for bit.
  • Petit & Luzum (red.) — IERS Conventions (2010), IERS TN (Technical Note) 36 (jordorientering, polarbevægelse og standarder for referencesystemer).
  • Riley — Handbook of Frequency Stability Analysis, NIST SP 1065 (Allan-deviationsrelationer og NBS14-referenceserien; NBS = det tidligere amerikanske National Bureau of Standards).
  • Pedregosa et al. — scikit-learn: Machine Learning in Python, JMLR 12 (2011): referenceimplementeringerne af ROC/AUC, forvekslingsmatrix og præcision/recall/F1, som testbænken til evaluering af RF-forstyrrelser afstemmes nøjagtigt efter (tests/eval_metrics_reference.rs).
  • Virtanen et al. — SciPy 1,0, Nature Methods 17 (2020): optimize.nnls, stats.chi2 og linalg.expm — de referencerutiner, som NNLS-tilpasningen af målt ADEV i kvante-afvejningen, χ²-konsistensbåndene og van-Loan-urets processtøjkovarians valideres mod (tests/scipy_reference.rs).
  • Knowles, Kanhere, Neamati & Gao — gnss_lib_py, SoftwareX 27 (2024): brugt både som åbent tidligere arbejde (se Sammenligning og åbent tidligere arbejde nedenfor) og som den uafhængige DOP-reference, som beregningen af GDOP/PDOP/HDOP/VDOP/TDOP afstemmes efter til 1e-6 (tests/dop_reference.rs).
  • Montenbruck & Gill — Satellite Orbits: Models, Methods and Applications (Springer): kraftmodellerne bag kraftmodeltilpasningen til agenturernes præcise efemerider.
  • 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 (de halo-/NRHO-familier, som CR3BP-differentialkorrektoren gengiver).

Fysik for enheder og metoder — de citerede kilder bag sensormodellerne:

  • Origlia, Schiller, Bongs et al. — arXiv:1503,08457 (strontium-optisk gitterur, rumorienteret mål).
  • Oelker et al., Nature Photonics (2019) — doi:10.1038/s41566-019-0493-4 (Sr-ur i laboratoriet, 4,8×10⁻¹⁷).
  • Templier et al., Science Advances (2022) — arXiv:2209,13209 (hybrid kvanteaccelerometertriade).
  • Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation — IEEE AESS (Aerospace and Electronic Systems Society)-tutorial (University College London Discovery-repository) (fejlvækst ved dødregning).
  • 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) (optisk tovejs overførsel af tid og frekvens; den optiske inter-satellit-forbindelse modellerer sit budget for ikke-reciprocitet efter disse).
  • Betz — Binary Offset Carrier Modulations for Radionavigation, NAVIGATION 48(4) (2001), doi:10.1002/j.2161-4296.2001.tb00247.x (BOC-modulationen og teorien om spektralseparation bag src/navsignal.rs).
  • Kaplan & Hegarty (red.) — Understanding GPS/GNSS: Principles and Applications (3. udg., Artech House, 2017): ligningen for effektiv C/N₀ ved anti-jam og den termiske støjjitter i early–late-DLL-kodesporingen, som navsignal- og jamningsmodellerne bruger.

Sammenligning og åbent tidligere arbejde — de værktøjer og oversigter, Kshana placeres i forhold til:

  • Humphreys et al. — TEXBAT (Texas Spoofing Test Battery; ION — Institute of Navigation — GNSS 2012): testbatteriets spoofingparametre, som den flerlagede detektor karakteriseres mod.
  • González et al. — NaveGo (2017): de åbne, validerede fejlprofiler for inertinavigation, der bruges som klassisk baseline.
  • Iiyama, Casadesús Vila & Gao — LuPNT (ION GNSS+ 2023, Stanford NavLab): åben simulator for månens PNT.
  • Knowles, Kanhere, Neamati & Gao — gnss_lib_py, SoftwareX 27 (2024), doi:10.1016/j.softx.2024.101811: åben analyse af GNSS-data.
  • 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: GRAIL reduceret-dynamisk OD, den empiriske accelerationsbundgrænse, som LRO-tilpasningen gengiver.