Maskinoversettelse, ikke gjennomgått av en morsmålsbruker. Engelsk er referansen.

Kom i gangRediger på GitHubKilde: README.md

Kshana: merket, et kompasshårkors som markerer det nøyaktige øyeblikket, ved siden av ordmerket kshanaKshana: merket, et kompasshårkors som markerer det nøyaktige øyeblikket, ved siden av ordmerket kshana

Kshana · क्षण · det presise øyeblikket
En åpen kildekode-simulator for PNT-robusthet (posisjonering, navigasjon og tidssynkronisering).

Status for kontinuerlig integrasjon på main Linjedekning nær 95 % av src/, målt i docs/COVERAGE.md og med en grense på 85 % i kontinuerlig integrasjon 176 av 401 funksjoner VALIDATED mot en uavhengig ekstern referanse, fra verifikasjonsmatrisen Status for SonarQube Cloud-kvalitetsporten Utgivelse v0.40.0 Lisens: AGPL-3.0-only
DOI 10.5281/zenodo.20528627, Zenodo-konseptposten for hver utgivelse En kommersiell lisens er tilgjengelig fra Ashforde® OÜ, se Utgaver kshana på crates.io, den gjeldende publiserte versjonen kshana på PyPI, den gjeldende publiserte versjonen kshana på npm, den gjeldende publiserte versjonen

Åpne Kshana Studio · Installasjon · Funksjoner · Evidens · Forskning · Dokumentasjon · Siter

Øv på minuttet GNSS går i svart. Kshanas oppdragskonsoll, tegnet fra en ekte kjøring av motor v0.40.0: den lenkede kampanjen campaign-jam-spoof-holdover-integrity (seed 20260928, 6 faser, 18 medlemskjøringer over T+01:16:10) og de 102 satellittene i GPS, Galileo, BeiDou og GLONASS fra constellation-multi-gnss-coverage, hver tegnet på den sirkulære totegemsbanen gjenvunnet fra motorens bakkespor, radier komprimert for visning. Klokkens tidsfeil topper på 62,7 ns mot en vakt på 50 ns, bærebølge-til-støy-tettheten faller til -12.2 dB-Hz mot et gulv på 25 dB-Hz, og det vertikale beskyttelsesnivået når 135,4 m mot en alarmgrense på 50 m.Øv på minuttet GNSS går i svart. Kshanas oppdragskonsoll, tegnet fra en ekte kjøring av motor v0.40.0: den lenkede kampanjen campaign-jam-spoof-holdover-integrity (seed 20260928, 6 faser, 18 medlemskjøringer over T+01:16:10) og de 102 satellittene i GPS, Galileo, BeiDou og GLONASS fra constellation-multi-gnss-coverage, hver tegnet på den sirkulære totegemsbanen gjenvunnet fra motorens bakkespor, radier komprimert for visning. Klokkens tidsfeil topper på 62,7 ns mot en vakt på 50 ns, bærebølge-til-støy-tettheten faller til -12.2 dB-Hz mot et gulv på 25 dB-Hz, og det vertikale beskyttelsesnivået når 135,4 m mot en alarmgrense på 50 m.
Innhold

Øv på minuttet GNSS går i svart#

Kshana spiller av jamming, spoofing og klokke-holdover når GNSS-signaler (Global Navigation Satellite System) svikter, og forteller deg hvor lenge et system holder tid og posisjon innenfor budsjettet, og hvilken klokke eller sensor som gir mest margin. Det er én Rust-motor. Den kjører i en terminal, en notebook, et IDE (integrert utviklingsmiljø), en AI-assistent (kunstig intelligens) eller i nettleseren din.

Hver kjøring er reproduserbar bit for bit fra scenarioet, seedet og motorversjonen. Hver funksjon bærer én av tre merkelapper i et maskinkontrollert register: VALIDATED (en uavhengig ekstern referanse er enig), MODELLED (internt konsistent, og sagt høyt) eller PARTNER (en maskinvarepartner eier den).

Status: v0.40.0. Et validert, reproduserbart simuleringsgrunnlag for PNT-robusthet. Tidssynkronisering og holdover kommer først, fordi det domenet er best validert. Kshana er et studie- og avveiningsinstrument: ikke radiofrekvens (RF) signalgeneratormaskinvare (den styrer ingen radio og sender ingenting; signalnivåutdataene er IQ-sampelfiler i basebånd for programvaremottakere), ikke en maskinvare- eller sertifisert GNSS-mottaker (programvaremottakeren er et analyseverktøy) og ikke et flyprodukt. Ny på feltet? Start med primeren i klarspråk og ordlisten.

Nytt i 0,40#

0,40 legger til et budsjett på oppdragsnivå for feil, merker hvert tall og hver tabell med sitt evidensnivå, leser målte klokkeloggere, kontrollerer innleveringer fra datapartnere, anslår hvor en interferenskilde kan befinne seg, og snakker sytten språk ved siden av engelsk. Registeret har nå 401 rader: 176 VALIDATED, 221 MODELLED, 4 PARTNER. Ingen rad ble oppgradert til VALIDATED, og hver bom nedenfor er festet av en test.

  • Oppdragstråd. Typen mission-thread kjeder sammen faser fra oppskyting til gjeninntreden (launch-ascent, leo-rendezvous, tli-and-cruise, entry og fire lunare typer) med oppgitte overleveringsregler, en margin mot oppgitte krav og det svakeste leddet; et ende-til-ende-eksempel i stil med Artemis-class over 11 faser (jord- og månesegmenter), 92 scenariotyper til sammen. Hvert tall er MODELLED. Den cislunare propageringen mot den offentlige banekurven for Artemis I bommer på sin forhåndsregistrerte terskel (45,3 km og 0,25 m/s mot 5 km og 0,05 m/s; årsaken er små manøvrer modellen ikke inkluderer), og den lunare propagatoren mot CAPSTONE-banen bommer (136,8 km mot 25 km ved slutten av én omløpstid); sammenligningen med LRO er oppfylt. Radene forblir MODELLED (Oppdragstråd, månesegmentet). I Studio leses tråden på /studio/mission-thread/.
  • Evidensetiketter. Hvert tall og hver tabell en kjøring skriver bærer nivået og register-radidene den bygger på, lest fra matrisen.
  • Målte klokker. Åtte klokkeloggformater leses (docs/CLOCK-LOG-FORMATS.md), og en tilpasset serie kan drive holdoveren. Mot forhåndsregistrerte terskler bommer tilpasningen på F1(a) for fem av seks registreringer og på F2 for én; begge forblir MODELLED (Endringslogg).
  • Datapartnere. kshana partner check kontrollerer formatet på en innlevering og skårer ingenting (docs/PARTNER-DATA.md).
  • Senderregion. kshana interference-map locate gir en region og en ellipse, aldri et enkelt punkt, ut fra ADS-B- eller AIS-rapporter. Sammenlignet én gang med senderstedene fra Jammertest 2025 er resultatet NOT ASSESSABLE for begge kildene (for få planlagte økter i de åpne dataene), så raden forblir MODELLED (Interferenskart).
  • Benchmark. Ny kampanje i 0,40 når A3, D3 (begge EXPLORATORY), R3 og R4; A2, D1 og R1 forblir NOT MET (Bench).
  • Språk. nl, pl, pt-BR, pt-PT, fi, sv, da, nb, cs, uk, ru, de, fr, es, et, ja og zh-Hans, som maskinoversettelser som ingen morsmålsbruker har gjennomgått; engelsk er referansen, og kjøringer på andre språk enn engelsk tar omtrent dobbelt så lang tid (docs/i18n.md).

Nytt i 0,39#

0,39 legger til ingen funksjon og endrer ikke noe resultat; motorens utdata er utdataene fra 0,38. Den fikser én ting på kommandolinjen, oppdaterer avhengigheter i kryssvalideringsverktøyene og oppgir benchmark-vurderingene i sin helhet.

  • Kommandolinje. kshana kinds | head (enhver lukket standardutdata) krasjer ikke lenger: programmet avslutter stille med status 141, slik andre verktøy gjør for et lukket rør. Andre skrivefeil melder seg fortsatt selv.
  • Dependencies. memmap2 0.9.11 i de to ANISE-kryssjekklåsene og pillow 13.0.0 og certifi 2026.10.19 i miljøfestene til den uavhengige referansen, alt under xval/: ingenting som leveres, endret seg.
  • kshana-bench, alle vurderinger. Mot de forhåndsregistrerte tersklene er tre NOT MET, hver festet av en test: A2 (agc_k_sigma AUC 0,766 mot minst 0,80), D1 (største gap 0,0301) og oppgave (b) R1 (overført, ikke kjørt på nytt). Ingen terskel ble løsnet (Bench).

Nytt i 0,38#

0,38 gjør den nøytrale dommeren målbar: den skårer mottakerlogger mot en publisert testplan, leser flere mottakere og sensorer, tester tidssynkroniseringssystemer og leverer en benchmark og et interferensobservatorium. Den forblir veiledende: ingenting her er sertifisert, ikke noe resultat er en typegodkjenning, og ingenting sender. Hver rad oppgir hva registeret holder for den (hvordan en merkelapp opptjenes); en status navngir bare det som ble kontrollert, og registerraden og den lenkede siden sier hva som ikke ble det.

Nytt i 0,38 Hva den gjør, og hvorfor Registerstatus Leses
Jammertest-skåring kshana jammertest import leser den publiserte NPRA-testkatalogen og sendeplanen som planlagt referanse; jammertest score skårer en mottakerlogg per test (deteksjonsforsinkelse, uteblitte alarmer, falske alarmer, tid til gjenoppretting), som en signert bevispakke hvis du oppgir en nøkkel MODELLED: én registerrad. Tersklene ble forhåndsregistrert før noen skåret kjøring; på JammerTest 2024-dataene feilet minimumsdataregelen i begge kjøringene (4 og 7 skårbare vinduer mot 10 påkrevd), så ingen terskel kan vurderes og ingenting påstås Jammertest
Mottakerens egne flagg UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG og NovAtel RXSTATUS leses inn i en self_report per epoke og sammenlignes med Kshanas alarmer (begge, bare mottakeren, bare Kshana, ingen av dem); en Septentrio SBF-leser og skrivebeskyttet --serial-inndata MODELLED; enighet mellom en mottakers detektor og Kshanas er ikke validering Mottakertillit
Flere mottakere og sensorer RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0 (fra de BSD-lisensierte pyrtcm-tabellene, ikke RTCM-teksten), GNSS-SDR-monitorstrømmer, en IMU-logg som andre sensor, en ROS 2-pakke, en gnss_lib_py-bro og imu-fit for hybride sensorparametre MODELLED: seks registerrader; bare selvskrevne testdata, ingen opptak fra en reell mottaker, IMU, GNSS-SDR-kjøring eller ROS-graf ble lest Maskininndata
Tidssynkroniserings- og holdover-tester typen holdover-test skårer en holdover-test (GNSS fjernet av operatøren, holdover, gjenoppretting) fra en målt tidsfeilrekke mot ITU-T-masker, «målt mot masken»; linuxptp- og chrony-loggleser; maskinvaretrinnene og feltet lab-attestation MODELLED: to registerrader; tidene er operatørens erklæring, ikke verifisert Tidssynkronisering HIL, Maskinvaresikkerhet
Standardpakker, LunaNet AFS, laboratorierunde skårede pakker for DHS RPCF, IMO MSC.1/Circ.1575 og ICAO Doc 9849 Appendix F mot terskler oppgitt før kjøringen, «gir belegg for»; en NIST IR 8323r1-krysstabell; en LunaNet AFS-kodegenerator og -kontroll; en signert pakke som knytter sammen et laboratoriums scenario, testbetingelser, mottakerlogg og skår MODELLED for pakkene og runden; AFS-kodekontrollen er VALIDATED mot de trykte kontrollkolonnene sine (se registerradene) Standarder, LunaNet AFS
kshana-bench og observatoriet faste oppgaver, delinger og målinger for interferensdeteksjon, IQ-deteksjon, holdover-prediksjon og optimismegapet, med et forseglet tilbakeholdt datasett og en statisk resultattavle; et reproduserbart daglig interferensprodukt med 24 t forsinkelse, grove celler og ingen årsakstilskriving ingen egen registerrad: den skårer innsendinger, og grunnlinjene er merket MODELLED i resultatfilene; mot de forhåndsregistrerte tersklene er skåreren, C1 til C3 og D2 nådd, og tre terskler er NOT MET (festet av tester): A2 (agc_k_sigma AUC 0,766 mot minst 0,80 på testdelingen), D1 (største gap 0,0301) og oppgave (b) R1 (overført, ikke kjørt på nytt); se xval/bench/RESULTS-v2.md Bench, Observatoriet
Eksportører tillitstelemetri som Home Assistant MQTT-oppdagelses- og tilstandsmeldinger (bare publisering, ingen legitimasjon) ved siden av Prometheus, CEF, LEEF og OTLP MODELLED: én registerrad Tillitstelemetri
Optisk lenkemargin mot tid typen optical-atmosphere kan skrive én seedet realisering av et steds vær som en lenkemarginserie MODELLED: én registerrad; ett trekk fra modellen, ikke klimaet Optisk atmosfære

Høydepunkter i 0,37: endringslogg. Hele listen for 0,38 står i endringsloggen.

0,38 i dybden#

Hver funksjon fra tabellen ovenfor, på noen få linjer: hva den gjør, én kommando for å kjøre den, ett bilde tegnet fra en ekte kjøring av motoren, og hva registeret holder for den. Bildene skrives av tools/gen_figures_038.py inn i docs/figures/0.38/ (aldri tegnet for hånd): python3 tools/gen_figures_038.py skriver dem om fra en bygget motor, og --check feiler hvis ett er utdatert eller bildeteksten her avviker. Der en inndata er en logg, er den en oppdiktet en skriptet skriver, fordi de reelle tredjepartsloggene aldri legges inn i depotet, og bildeteksten sier det. Alt nedenfor er veiledende: ikke sertifisert, ikke en typegodkjenning, og ingenting sender. En status navngir det som ble kontrollert og ikke mer; hvordan en merkelapp opptjenes.

Jammertest-skåring#

kshana jammertest import gjør den publiserte NPRA-testkatalogen og sendeplanen om til planlagt referanse, og kshana jammertest score skårer en mottakerlogg mot den: for hver planlagte test, om den ble oppdaget, hvor sent, og hvor lang tid mottakeren brukte på å gjenopprette seg, pluss falske alarmer utenfor hver luke. Katalogen hentes, aldri lagt inn i depotet.

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
Poengsetting av én syntetisk mottakerlogg mot en tidsplan med tre tester, fra en ekte kjøring av motoren v0.40.0 (`kshana jammertest score`). Loggen er funnet på: 1800 s med NMEA med et fall på 20 dB C/N0 over to intervaller. Tidsplanen har tre tidsluker; den midterste tidsluken har ingen jammer i loggen. Poengsettingen markerer 2 av 3 tester som oppdaget (median ventetid 0 s) og 1 som bommet, med 0 kjøringer med falsk alarm over 0,25 time ren tid. Ingenting her sier noe om en ekte mottaker. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon.Poengsetting av én syntetisk mottakerlogg mot en tidsplan med tre tester, fra en ekte kjøring av motoren v0.40.0 (`kshana jammertest score`). Loggen er funnet på: 1800 s med NMEA med et fall på 20 dB C/N0 over to intervaller. Tidsplanen har tre tidsluker; den midterste tidsluken har ingen jammer i loggen. Poengsettingen markerer 2 av 3 tester som oppdaget (median ventetid 0 s) og 1 som bommet, med 0 kjøringer med falsk alarm over 0,25 time ren tid. Ingenting her sier noe om en ekte mottaker. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon.

Registerstatus: MODELLED. Tersklene ble fastsatt før noen skåret kjøring; på JammerTest 2024-dataene feilet minimumsdataregelen i begge kjøringene, så ingen terskel kan vurderes og ingenting påstås. Jammertest.

Mottakerens egne flagg#

UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG og NovAtel RXSTATUS leses inn i en self_report per epoke og stilles ved siden av Kshanas alarmer: begge, bare mottakeren, bare Kshana eller ingen av dem. En Septentrio SBF-leser og en skrivebeskyttet --serial-inndata mater den samme sammenligningen. Ingen av sidene er referanse.

kshana receiver-trust session.toml     # [log] format = "ubx", path = "receiver.ubx"
Mottakerens eget spoofingflagg satt mot Kshanas alarmer, fra en ekte kjøring av motor v0.40.0 på en oppdiktet UBX-logg (200 epoker ved 1 Hz). C/N0 faller 20 dB ved 80 til 90 s og 120 til 130 s; mottakeren flagger 120 til 130 s og 160 til 165 s. Av 140 epoker sammenlignet etter kalibrering hadde 11 begge som flagget, 6 bare mottakeren, 11 bare Kshana og 112 ingen av dem. Ingen av sidene er referanse, og enighet er ikke validering. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Mottakerens eget spoofingflagg satt mot Kshanas alarmer, fra en ekte kjøring av motor v0.40.0 på en oppdiktet UBX-logg (200 epoker ved 1 Hz). C/N0 faller 20 dB ved 80 til 90 s og 120 til 130 s; mottakeren flagger 120 til 130 s og 160 til 165 s. Av 140 epoker sammenlignet etter kalibrering hadde 11 begge som flagget, 6 bare mottakeren, 11 bare Kshana og 112 ingen av dem. Ingen av sidene er referanse, og enighet er ikke validering. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.

Registerstatus: MODELLED. Enighet mellom en mottakers detektor og Kshanas er ikke validering. Mottakertillit.

Flere mottakere og sensorer#

RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0, GNSS-SDR-monitorstrømmer, en IMU-logg som andre sensor, en ROS 2-pakke og en gnss_lib_py-bro ender alle i den samme mottakertillitstidslinjen. imu-fit leser sensorparametrene de hybride scenarioene og fusjonsscenarioene trenger ut av en stillestående IMU-logg, slik at et scenario kan kjøres med sensoren du faktisk har.

kshana imu-fit still.csv --format csv --axis x --expected-mean 0 --id bench-imu
Hva `kshana imu-fit` leser ut av en IMU-logg i ro, fra en reell kjøring av motoren v0.40.0 på en oppdiktet logg (20 000 sampler ved 100 Hz, 200 s): akselerometerets hastighetsrandomvandring q_va = 4.02e-06, gyroets vinkelrandomvandring q_arw = 9e-08, biasustabiliteten 0,00296 og de tidlige Allan-stigningstallene (-0.51 og -0.49; omtrent -0.5 der hvit støy dominerer). Tabellen ved siden av er TOML-en kommandoen skriver ut. Estimatoren er bare kontrollert på syntetiske logger. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Hva `kshana imu-fit` leser ut av en IMU-logg i ro, fra en reell kjøring av motoren v0.40.0 på en oppdiktet logg (20 000 sampler ved 100 Hz, 200 s): akselerometerets hastighetsrandomvandring q_va = 4.02e-06, gyroets vinkelrandomvandring q_arw = 9e-08, biasustabiliteten 0,00296 og de tidlige Allan-stigningstallene (-0.51 og -0.49; omtrent -0.5 der hvit støy dominerer). Tabellen ved siden av er TOML-en kommandoen skriver ut. Estimatoren er bare kontrollert på syntetiske logger. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.

Registerstatus: MODELLED. Bare selvskrevne testdata; ingen opptak fra en reell mottaker, IMU, GNSS-SDR-kjøring eller ROS-graf ble lest. Maskininndata.

Tidssynkroniserings- og holdover-tester#

Typen holdover-test skårer en holdover-test (GNSS fjernet av operatøren, holdover, gjenoppretting) fra en målt tidsfeilrekke mot ITU-T-masker, og sier det med de ordene: målt mot masken. Loggleserne for linuxptp og chrony mater den; maskinvaretrinnene og feltet lab-attestation sier hvem som erklærte hva.

kshana scenarios/holdover-test-example.toml
En holdover-test skåret fra en tidsfeilrekke, fra en ekte kjøring av motor v0.40.0 på scenarios/holdover-test-example.toml (601 sampler hvert 5 s). GNSS fjernes av operatøren ved 600 s og gjenopprettes ved 2400 s; tidsfeilen driver til 299 ns ved slutten av holdover, forbi budsjettet på 100 ns etter 675 s, og går tilbake innenfor båndet på 100 ns 70 s etter gjenopprettingen. Vurderinger: grunnlinjemasker PASS, holdover-masker FAIL, holdover-envelope FAIL, gjenoppretting RECOVERED. Målt mot masken, ikke en godkjenning. Tidene er operatørens erklæring, ikke verifisert av Kshana. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.En holdover-test skåret fra en tidsfeilrekke, fra en ekte kjøring av motor v0.40.0 på scenarios/holdover-test-example.toml (601 sampler hvert 5 s). GNSS fjernes av operatøren ved 600 s og gjenopprettes ved 2400 s; tidsfeilen driver til 299 ns ved slutten av holdover, forbi budsjettet på 100 ns etter 675 s, og går tilbake innenfor båndet på 100 ns 70 s etter gjenopprettingen. Vurderinger: grunnlinjemasker PASS, holdover-masker FAIL, holdover-envelope FAIL, gjenoppretting RECOVERED. Målt mot masken, ikke en godkjenning. Tidene er operatørens erklæring, ikke verifisert av Kshana. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.

Registerstatus: MODELLED. Tidene GNSS ble fjernet og gjenopprettet, er operatørens erklæring, ikke verifisert. Tidssynkronisering HIL, Maskinvaresikkerhet.

Standardpakker#

Skårede pakker for DHS Resilient PNT-testprofilene, IMO MSC.1/Circ.1575 og ICAO Doc 9849 Appendix F, pluss en NIST IR 8323r1-krysstabell i compliance-report. Hver test kjører et medfølgende scenario og sammenligner et resultatfelt med en terskel oppgitt før kjøringen; en test som trenger en mottakerlogg, er oppført som å trenge en inndata, ikke skåret. Ordlyden er «gir belegg for».

kshana standards-pack list
kshana standards-pack run imo-circ-1575
Hver test i de tre standardpakkene med poengsum, fra virkelige kjøringer av motoren v0.40.0 (`kshana standards-pack run`): dhs-rpcf: 6 nådd, 1 ikke nådd, 2 trenger en inndata; imo-circ-1575: 1 nådd, 4 ikke nådd, 2 trenger en inndata; icao-doc9849-appf: 6 nådd, 0 ikke nådd, 2 trenger en inndata. Til sammen 13 nådd, 5 ikke nådd og 6 trenger en inndata som motoren ikke har (en mottakerlogg eller utstyrsdokumentasjon). Hver terskel ble fastsatt før kjøringen; en bom forblir en bom. En nådd terskel sier at et modellert scenario nådde en oppgitt terskel, ingenting om et produkt. Pakkene gir belegg for radene de viser til; de er ikke en vurdering. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet; det må ikke være eneste grunnlag for noen navigasjons- eller sikkerhetsbeslutning.Hver test i de tre standardpakkene med poengsum, fra virkelige kjøringer av motoren v0.40.0 (`kshana standards-pack run`): dhs-rpcf: 6 nådd, 1 ikke nådd, 2 trenger en inndata; imo-circ-1575: 1 nådd, 4 ikke nådd, 2 trenger en inndata; icao-doc9849-appf: 6 nådd, 0 ikke nådd, 2 trenger en inndata. Til sammen 13 nådd, 5 ikke nådd og 6 trenger en inndata som motoren ikke har (en mottakerlogg eller utstyrsdokumentasjon). Hver terskel ble fastsatt før kjøringen; en bom forblir en bom. En nådd terskel sier at et modellert scenario nådde en oppgitt terskel, ingenting om et produkt. Pakkene gir belegg for radene de viser til; de er ikke en vurdering. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet; det må ikke være eneste grunnlag for noen navigasjons- eller sikkerhetsbeslutning.

Registerstatus: MODELLED. En nådd terskel sier at et modellert scenario nådde en oppgitt terskel, ingenting om et produkt; hver bom beholdes og festes av en test. Standarder.

LunaNet AFS#

LunaNet Augmented Forward Signal-kodegeneratoren (Gold-, Weil- og tertiærkoder, meldingsrammen og feilkodingen dens) og en kontroll for en innspilt eller generert symbolstrøm, festet til én utgave av spesifikasjonen.

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 kontrollert mot de trykte kolonnene i spesifikasjonen, fra en reell kjøring av motoren v0.40.0 (`kshana lunanet-afs-check spec`, låst til LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 January 2025; dokumentet merker kodetabellene sine {LSIS-TBC}). 9 av 10 kontroller er nådd; B4 er NOT MET (420 av 421 stemte). Den kontrollerer en symbolstrøm mot én utgave av en publisert spesifikasjon og sier ingenting om noen LunaNet-node eller -tjeneste. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet. Den kontrollerer en symbolstrøm mot én utgave av en publisert spesifikasjon og sier ingenting om noen LunaNet-node eller -tjeneste.LunaNet AFS-kodegeneratoren kontrollert mot de trykte kolonnene i spesifikasjonen, fra en reell kjøring av motoren v0.40.0 (`kshana lunanet-afs-check spec`, låst til LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29 January 2025; dokumentet merker kodetabellene sine {LSIS-TBC}). 9 av 10 kontroller er nådd; B4 er NOT MET (420 av 421 stemte). Den kontrollerer en symbolstrøm mot én utgave av en publisert spesifikasjon og sier ingenting om noen LunaNet-node eller -tjeneste. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet. Den kontrollerer en symbolstrøm mot én utgave av en publisert spesifikasjon og sier ingenting om noen LunaNet-node eller -tjeneste.

Registerstatus: VALIDATED for kode- og synkroniseringskontrollene, mot verdiene spesifikasjonen trykker (som den merker TBC); én kontroll er NOT MET, beholdt og festet (én trykt tertiærkodekolonne avviker: dokumentet trykker den samme verdien for to PRN-er). LDPC- og CRC-ordene i underramme 2 til 4 kontrolleres ikke. Registerradene sier nøyaktig hvilke. LunaNet AFS.

Laboratorierunde#

kshana.test-conditions/1 er en publisert beskrivelse av hva et laboratorium gjorde (hendelser, tider, effekter). kshana evidence round-trip knytter scenario-hashen, betingelseshashen, mottakerloggens hash og skåren sammen i én signert pakke, og avviser en pakke der betingelsene og skåringsscenarioet er uenige om hendelsene. Kshana produserer eller spiller aldri av et signal: hvordan et scenario nådde en mottaker, er operatørens ansvar.

kshana evidence --help
Strukturen til en bevispakke. En mottakerlogg (NMEA, u-blox UBX, RINEX 3 eller en Android-logg) og et tidsvindu går inn i kshana receiver-trust evidence, som skriver sju filer: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig og en valgfri timestamp.tsr. Manifestet registrerer SHA-256 av hele loggen og av hver fil og en hashkjede over filene; signaturen dekker manifestet. kshana evidence verify kontrollerer signaturen, hver fils hash, kjeden og at ingen ulistet fil finnes, og avslutter med 0 når den er bekreftet, 1 når noe feilet og 3 når signereren ikke var festet. En pakke er en teknisk registrering, ikke en juridisk vurdering.Strukturen til en bevispakke. En mottakerlogg (NMEA, u-blox UBX, RINEX 3 eller en Android-logg) og et tidsvindu går inn i kshana receiver-trust evidence, som skriver sju filer: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig og en valgfri timestamp.tsr. Manifestet registrerer SHA-256 av hele loggen og av hver fil og en hashkjede over filene; signaturen dekker manifestet. kshana evidence verify kontrollerer signaturen, hver fils hash, kjeden og at ingen ulistet fil finnes, og avslutter med 0 når den er bekreftet, 1 når noe feilet og 3 når signereren ikke var festet. En pakke er en teknisk registrering, ikke en juridisk vurdering.

Bildet er oppsettet til en pakke. Registerstatus: MODELLED. Testbetingelser, Testbenk.

kshana-bench#

Faste oppgaver, delinger og målinger for interferensdeteksjon, IQ-deteksjon, holdover-prediksjon og optimismegapet, med et forseglet tilbakeholdt datasett og en statisk resultattavle. Den skårer innsendinger; den er ikke en rangering av mottakere.

kshana bench baseline --task d --split test --out results/
De innebygde grunnlinjene for kshana-bench oppgave D (optimismegapet) på testdelen, fra en faktisk kjøring av motoren v0.40.0 (`kshana bench baseline`). Hvert søylepar er arealet under ROC-kurven for tilfellene i fordelingen og for de forskjøvede tilfellene. Gapet mellom dem er optimismegapet, mot en toleranse på 0,05. fused-max-z: 0,998 og 0,983 (gap 0,015); sqm-imbalance: 0,882 og 0,882 (gap 0,001); agc-excess: 0,848 og 0,819 (gap 0,030); raim-parity: 0,682 og 0,672 (gap 0,010); energy-cn0-drop: 0,595 og 0,565 (gap 0,030). Etikettene er etiketter fra en generativ modell for et syntetisk korpus, aldri feltdata: MODELLED. Veiledende: modellert eller målt mot oppgitte referanser, ikke en godkjenning, sertifisering eller erklæring om samsvar. En skår beskriver en logg eller et korpus, aldri et produkt.De innebygde grunnlinjene for kshana-bench oppgave D (optimismegapet) på testdelen, fra en faktisk kjøring av motoren v0.40.0 (`kshana bench baseline`). Hvert søylepar er arealet under ROC-kurven for tilfellene i fordelingen og for de forskjøvede tilfellene. Gapet mellom dem er optimismegapet, mot en toleranse på 0,05. fused-max-z: 0,998 og 0,983 (gap 0,015); sqm-imbalance: 0,882 og 0,882 (gap 0,001); agc-excess: 0,848 og 0,819 (gap 0,030); raim-parity: 0,682 og 0,672 (gap 0,010); energy-cn0-drop: 0,595 og 0,565 (gap 0,030). Etikettene er etiketter fra en generativ modell for et syntetisk korpus, aldri feltdata: MODELLED. Veiledende: modellert eller målt mot oppgitte referanser, ikke en godkjenning, sertifisering eller erklæring om samsvar. En skår beskriver en logg eller et korpus, aldri et produkt.

Registerstatus: ingen egen registerrad; grunnlinjene er merket MODELLED i resultatfilene. Mot de forhåndsregistrerte tersklene er skåreren, C1 til C3 og D2 nådd, og tre terskler er NOT MET, hver festet av en test: A2 (agc_k_sigma AUC 0,766 mot minst 0,80 på testdelingen), D1 (største gap 0,0301) og oppgave (b) R1 (overført fra den tidligere kampanjen, ikke kjørt på nytt). Tallene står i xval/bench/RESULTS-v2.md. Bench.

Interferensobservatoriet#

Ett produkt per UTC-dag og region fra et åpent arkiv over flyposisjoner, på et fast grovt rutenett: hver celle er degradert, ikke degradert eller ikke observert (som ikke er «klar»). Utgitt tidligst 24 t etter at dagen er slutt, med små celler undertrykt og ingen tilskriving av årsak.

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 dager i interferenskartet, tegnet fra de innsjekkede eksemplene i examples/interference-map/output, hver med sin egen syntetiske rute og eksponeringsandelene motoren rapporterer. Til venstre en ADS-B-dag: 1 degradert celle, 6 ikke degradert, 4 uvurdert (skravert) og celler uten oppføring, tegnet tomme, som ikke ble observert. Ruten er 525 km: 11,5 % av lengden i degraderte celler, 38,3 % ikke degradert, 9,1 % uvurdert og 41,1 % ikke observert. Til høyre en AIS-dag: celler flagget av sirkel- og landdetektorene, ikke-avvikende celler og tomme celler; ruten er 454 km med 10,5 % i avvikende celler, 21,2 % ikke avvikende, 0,0 % uvurdert og 68,3 % ikke observert. ADS-B og AIS er separate lag og blir aldri slått sammen. En flagget celle er ikke et funn av interferens, og en celle uten farge ble ikke observert, noe som ikke er det samme som klar. Alle data er funnet på, i åpent hav midt i Atlanteren, og er ikke en måling.To syntetiske dager i interferenskartet, tegnet fra de innsjekkede eksemplene i examples/interference-map/output, hver med sin egen syntetiske rute og eksponeringsandelene motoren rapporterer. Til venstre en ADS-B-dag: 1 degradert celle, 6 ikke degradert, 4 uvurdert (skravert) og celler uten oppføring, tegnet tomme, som ikke ble observert. Ruten er 525 km: 11,5 % av lengden i degraderte celler, 38,3 % ikke degradert, 9,1 % uvurdert og 41,1 % ikke observert. Til høyre en AIS-dag: celler flagget av sirkel- og landdetektorene, ikke-avvikende celler og tomme celler; ruten er 454 km med 10,5 % i avvikende celler, 21,2 % ikke avvikende, 0,0 % uvurdert og 68,3 % ikke observert. ADS-B og AIS er separate lag og blir aldri slått sammen. En flagget celle er ikke et funn av interferens, og en celle uten farge ble ikke observert, noe som ikke er det samme som klar. Alle data er funnet på, i åpent hav midt i Atlanteren, og er ikke en måling.

Bildet er de innsjekkede eksempeldagene, ikke et observatorieprodukt. Registerstatus: MODELLED: ingen ekstern uavhengig referanse, ingen referansesannhet og ingen årsakstilskriving; en celle som ikke er observert, ble ikke vurdert, og det er ikke det samme som klar. Observatoriemetode.

Eksportører#

Tillitstelemetri som Prometheus-tekst, CEF, LEEF, OTLP og Home Assistant MQTT-oppdagelses- og tilstandsmeldinger. Kommandoen publiserer bare til en destinasjon du oppgir, og holder ingen legitimasjon.

kshana trust-telemetry --result session.result.json --print-metrics
kshana trust-telemetry --result session.result.json --print-syslog --format cef
Ett tillitsresultat i tre eksportformater, fra ekte kjøringer av motor v0.40.0 (`kshana trust-telemetry`) på examples/maritime-trust: Prometheus-tekstvisning (den siste tillitsscoren er 5,9 og det ikke-betrodde båndet er det som er satt), og de siste CEF- og LEEF-meldingene. Kommandoen publiserer ingenting med mindre den får en destinasjon, holder ingen legitimasjon og sender ikke noe radiosignal. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon.Ett tillitsresultat i tre eksportformater, fra ekte kjøringer av motor v0.40.0 (`kshana trust-telemetry`) på examples/maritime-trust: Prometheus-tekstvisning (den siste tillitsscoren er 5,9 og det ikke-betrodde båndet er det som er satt), og de siste CEF- og LEEF-meldingene. Kommandoen publiserer ingenting med mindre den får en destinasjon, holder ingen legitimasjon og sender ikke noe radiosignal. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon.

Registerstatus: MODELLED. Tillitstelemetri.

Typen optical-atmosphere kan skrive én seedet realisering av et steds vær som en lenkemarginserie: skyepisoder, en væskevannskolonne for hver, ett scintillasjonssampel per steg. Studioets side Optisk PNT åpner optical-atmosphere-scenarioene.

kshana scenarios/optical-atmosphere-network.toml
Én seedet realisering av lenkemarginen til stedet «northern» over 336 t, fra en ekte kjøring av motor v0.40.0 på scenarios/optical-atmosphere-network.toml (seed 37, et steg på 600 s). Marginen faller under null under skyepisoder; i dette trekket er lenken oppe 40,5 % av tiden, med 27 avbrudd og et lengste avbrudd på 30,7 t. Inndataene er illustrative, serien er ett trekk fra modellen og ikke klimaet, og den avviker fra den statistiske tilgjengeligheten (37,8 %) med trekkets samplingsfeil. Kun veiledende analyse: ikke et sertifisert tilgjengelighets-, integritets- eller navigasjonsprodukt, og ikke en prediksjon for noe reelt sted med mindre klimainndataene kommer fra et oppgitt datasett.Én seedet realisering av lenkemarginen til stedet «northern» over 336 t, fra en ekte kjøring av motor v0.40.0 på scenarios/optical-atmosphere-network.toml (seed 37, et steg på 600 s). Marginen faller under null under skyepisoder; i dette trekket er lenken oppe 40,5 % av tiden, med 27 avbrudd og et lengste avbrudd på 30,7 t. Inndataene er illustrative, serien er ett trekk fra modellen og ikke klimaet, og den avviker fra den statistiske tilgjengeligheten (37,8 %) med trekkets samplingsfeil. Kun veiledende analyse: ikke et sertifisert tilgjengelighets-, integritets- eller navigasjonsprodukt, og ikke en prediksjon for noe reelt sted med mindre klimainndataene kommer fra et oppgitt datasett.

Registerstatus: MODELLED. Ett trekk fra modellen, ikke klimaet. Optisk atmosfære.

Nye Studio-visninger#

kshana.dev/studio får en Bridge-gjenspilling (to kjøringer side om side på én oppdragsklokke, på /studio/replay/), en side for Optisk PNT (/studio/optical/), en side for Holdover-test (/studio/holdover/) og en observatorievisning (/studio/observatory/). De kjører den samme motoren i nettleseren, ingenting lastes opp, og de bærer den samme veiledende erklæringen. Bildene ovenfor er tegnet av et skript fra motorens egne utdata; de er ikke skjermbilder av disse sidene.

Rombrukernavigasjon (gnss-ssv)#

For et romfartøy over, rundt eller langt forbi GNSS-banene: hvor mange GNSS-signaler det kan bruke, hvor sterke de er, hvor god geometrien er, og hva et filter om bord kan gjøre med dem. Én type, fire moduser, valgt av scenarioets tabeller: et skall av brukere (andelen av tiden med ett og fire signaler, per konstellasjon), en bane (signaler, C/N0, presisjonsfortynning og limbstrålemediet langs en bane), en navigasjonskjøring (et filter med ni tilstander på pseudoavstander, til Månen) og en formasjon (relativ navigasjon for deputies rundt en chief). Den offentlige kilden for tilgjengelighetssammenligningen er den interoperable GNSS Space Service Volume-boken (UN OOSA ST/SPACE/75, fra International Committee on GNSS), som selv er en simulering; den hentes, aldri lagt inn i depotet. Full 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
Signaltilgjengelighet for en bruker på en sfære i 36000 km høyde med en halvkuleantenne, fra en ekte kjøring av motor v0.40.0 på scenarios/gnss-ssv-shell.toml (en redusert kjøring: 162 brukere, 3 dager, steg på 10 min), ved en terskel på 20 dB-Hz. For hver konstellasjon og hvert bånd to søyler: andelen (bruker, epoke)-par med minst ett signal og med minst fire. Kombinert, L1: 99,4 % minst ett, 73,2 % minst fire, lengste avbrudd under fire signaler 160 min. Kombinert, L5: 100,0 % minst ett, 99,9 % minst fire, lengste avbrudd under fire signaler 20 min. MODELLED: en modellert studie fra oppgitte inndata, ikke en måling og ikke en påstand om tjenestevolum for noe system. Den reduserte størrelsen er ikke boksammenligningen. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Signaltilgjengelighet for en bruker på en sfære i 36000 km høyde med en halvkuleantenne, fra en ekte kjøring av motor v0.40.0 på scenarios/gnss-ssv-shell.toml (en redusert kjøring: 162 brukere, 3 dager, steg på 10 min), ved en terskel på 20 dB-Hz. For hver konstellasjon og hvert bånd to søyler: andelen (bruker, epoke)-par med minst ett signal og med minst fire. Kombinert, L1: 99,4 % minst ett, 73,2 % minst fire, lengste avbrudd under fire signaler 160 min. Kombinert, L5: 100,0 % minst ett, 99,9 % minst fire, lengste avbrudd under fire signaler 20 min. MODELLED: en modellert studie fra oppgitte inndata, ikke en måling og ikke en påstand om tjenestevolum for noe system. Den reduserte størrelsen er ikke boksammenligningen. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet. Signaler langs én høy jordbane (perigeum 497 km, apogeum 58622 km, periode 18,8 t), fra en ekte kjøring av motor v0.40.0 på scenarios/gnss-ssv-heo.toml, bånd L1. Øverst: den beste bærebølge-til-støy-tettheten blant signalene i sikte, mot terskelen på 20 dB-Hz. I midten: antall signaler i sikte fra alle konstellasjoner, fra 4 til 55 langs de samplede punktene. Av lenkene som ble mottatt, kom 2252 gjennom en hovedlobe og 696 gjennom sidelober, med et merket parametrisk stand-in-mønster, ikke noe systems målte mønster. Median PDOP 67, 95. persentil 358. MODELLED: en modellert studie fra oppgitte inndata, ikke en måling og ikke en påstand om tjenestevolum for noe system. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Signaler langs én høy jordbane (perigeum 497 km, apogeum 58622 km, periode 18,8 t), fra en ekte kjøring av motor v0.40.0 på scenarios/gnss-ssv-heo.toml, bånd L1. Øverst: den beste bærebølge-til-støy-tettheten blant signalene i sikte, mot terskelen på 20 dB-Hz. I midten: antall signaler i sikte fra alle konstellasjoner, fra 4 til 55 langs de samplede punktene. Av lenkene som ble mottatt, kom 2252 gjennom en hovedlobe og 696 gjennom sidelober, med et merket parametrisk stand-in-mønster, ikke noe systems målte mønster. Median PDOP 67, 95. persentil 358. MODELLED: en modellert studie fra oppgitte inndata, ikke en måling og ikke en påstand om tjenestevolum for noe system. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet. Et filter med ni tilstander om bord på en overføring fra lav bane mot Månen, fra en ekte kjøring av motor v0.40.0 på scenarios/gnss-ssv-nav-lunar.toml (289 epoker, 13 punkter tegnet). På en logaritmisk akse, den sanne posisjonsfeilen og filterets eget ett-sigma-bånd mot tid siden starten. Innenfor GNSS-banene er posisjons-RMS 1,4 m; over dem er den 90 m, med sluttfeil 184 m i 193 330 km høyde med 1 måling. Gjennomsnittlig normalisert estimeringsfeil i annen over hele kjøringen er 4,4 (omtrent 3 for en konsistent posisjonsblokk). Referanse og filter deler stand-in-ene sine for Sola og Månen. MODELLED: en modellert studie fra oppgitte inndata, ikke en måling og ikke en påstand om tjenestevolum for noe system. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Et filter med ni tilstander om bord på en overføring fra lav bane mot Månen, fra en ekte kjøring av motor v0.40.0 på scenarios/gnss-ssv-nav-lunar.toml (289 epoker, 13 punkter tegnet). På en logaritmisk akse, den sanne posisjonsfeilen og filterets eget ett-sigma-bånd mot tid siden starten. Innenfor GNSS-banene er posisjons-RMS 1,4 m; over dem er den 90 m, med sluttfeil 184 m i 193 330 km høyde med 1 måling. Gjennomsnittlig normalisert estimeringsfeil i annen over hele kjøringen er 4,4 (omtrent 3 for en konsistent posisjonsblokk). Referanse og filter deler stand-in-ene sine for Sola og Månen. MODELLED: en modellert studie fra oppgitte inndata, ikke en måling og ikke en påstand om tjenestevolum for noe system. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet. Relativ navigasjon for 2 deputies rundt en chief i en høy bane, fra en ekte kjøring av motor v0.40.0 på scenarios/gnss-ssv-formation-heo.toml (401 epoker). For hver deputy to søyler: relativ posisjons-RMS fra å trekke de to uavhengige absolutte estimatene fra hverandre, og fra det relative filteret på enkeltdifferensierte pseudoavstander. Grunnlinje 0,8 km: 5,1 m og 1,2 m. Grunnlinje 2,0 km: 4,1 m og 2,1 m. Det absolutte filteret er ikke konsistent her: gjennomsnittlig normalisert estimeringsfeil i annen 187 mot omtrent 3 for et konsistent filter, så den oppgitte usikkerheten er langt for liten. MODELLED: en modellert studie fra oppgitte inndata, ikke en måling og ikke en påstand om tjenestevolum for noe system. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Relativ navigasjon for 2 deputies rundt en chief i en høy bane, fra en ekte kjøring av motor v0.40.0 på scenarios/gnss-ssv-formation-heo.toml (401 epoker). For hver deputy to søyler: relativ posisjons-RMS fra å trekke de to uavhengige absolutte estimatene fra hverandre, og fra det relative filteret på enkeltdifferensierte pseudoavstander. Grunnlinje 0,8 km: 5,1 m og 1,2 m. Grunnlinje 2,0 km: 4,1 m og 2,1 m. Det absolutte filteret er ikke konsistent her: gjennomsnittlig normalisert estimeringsfeil i annen 187 mot omtrent 3 for et konsistent filter, så den oppgitte usikkerheten er langt for liten. MODELLED: en modellert studie fra oppgitte inndata, ikke en måling og ikke en påstand om tjenestevolum for noe system. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.

Registerstatus: MODELLED, og sammenligningen med boken bommer for det meste. Tersklene ble fastsatt før kjøringen. Av åtte er bare S0 (det inverse lenkebudsjettet, 13 av 13 verdier) og S6 (månemisjonen) nådd. S1 til S5 og S7 er NOT MET: geometrien for øvre og nedre tjenestevolum (43 av 52 og 48 av 52 celler), øvre tjenestevolum på 15/20/25 dB-Hz, de seks GEO-misjonene, HEO-misjonen og det parametriske sidelobemønsteret mot målte GPS-panelmønstre. Nesten hver bom i S1 til S5 involverer GLONASS, og boken trykker to ulike referansevinkler for det; en diagnostisk variant som bruker det andre paret, bringer S1, S2 og S4 til hver celle, men den erstatter ikke kjøringen som gjelder, og ingen rad er VALIDATED. Formasjonskjøringens absolutte filter er også overmodig (gjennomsnittlig normalisert feil i annen langt over verdien på omtrent 3 som et konsistent filter gir).

Den registrerte sammenligningen av tilgjengelighetsmodellen for rombrukere med den offentlige Space Service Volume-boken, fra de innsjekkede resultatene av den forhåndsregistrerte kjøringen (xval/gnss-ssv/results-run1.json, skrevet av eksempelet ssv_booklet_check i motor v0.40.0). Terskel for terskel, cellene innenfor toleransen: S0 13 av 13 (MET); S1 43 av 52 (NOT MET); S2 48 av 52 (NOT MET); S3 122 av 155 (NOT MET); S4 132 av 156 (NOT MET); S5 18 av 26 (NOT MET); S6 26 av 26 (MET); S7 0 av 20 panelmønstre (NOT MET). Bare S0 og S6 er nådd under den forhåndsregistrerte lesningen. En diagnostisk variant som bruker bokens andre GLONASS-vinkler, bringer S1, S2 og S4 til hver celle, men erstatter ikke kjøringen som gjelder. Ingen registerrad er VALIDATED. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Den registrerte sammenligningen av tilgjengelighetsmodellen for rombrukere med den offentlige Space Service Volume-boken, fra de innsjekkede resultatene av den forhåndsregistrerte kjøringen (xval/gnss-ssv/results-run1.json, skrevet av eksempelet ssv_booklet_check i motor v0.40.0). Terskel for terskel, cellene innenfor toleransen: S0 13 av 13 (MET); S1 43 av 52 (NOT MET); S2 48 av 52 (NOT MET); S3 122 av 155 (NOT MET); S4 132 av 156 (NOT MET); S5 18 av 26 (NOT MET); S6 26 av 26 (MET); S7 0 av 20 panelmønstre (NOT MET). Bare S0 og S6 er nådd under den forhåndsregistrerte lesningen. En diagnostisk variant som bruker bokens andre GLONASS-vinkler, bringer S1, S2 og S4 til hver celle, men erstatter ikke kjøringen som gjelder. Ingen registerrad er VALIDATED. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.

Rombrukernavigasjon, hva sammenligningen viser.

Månens infrastruktur (lunar-infrastructure)#

Månens bane og overflate som navigasjons- og geodetisk infrastruktur, i fem studier valgt av study: od-consistency (en banebestemmelse om bord med jord-GNSS i en halobane mot en uavhengig fra bakken), carrier-phase (fastsetting av heltallsflertydighet mellom overflatestasjoner og en orbiter), frame-coestimation (månens datum fra avstandsmåling fra jordstasjoner med og uten orbiterlenker), space-tie (laser-, VLBI- og GNSS-forskyvninger på ett romfartøy mot lokalbindingsfeilen) og geodesy-sensitivity (hvilken observabelfamilie som ser Love-tallene h2, k2 og l2). Modellen er en begrenset tre-legemers modell med oppgitte forenklinger og illustrative inndata. Full 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
Samsvar mellom en banebestemmelse om bord med jord-GNSS i en nesten rettlinjet halobane og en uavhengig bakkebasert banebestemmelse, fra reelle kjøringer av motoren v0.40.0 på scenarios/lunar-infrastructure-od-consistency.toml og varianten med modellfeil (400 forsøk hver). Gjennomsnittlig normalisert differanse q er 5,81 uten modellfeil og 5,95 med en injisert akselerasjonsfeil på 3e-10 m/s2, mot 6 forventet: de to banebestemmelsene er innbyrdes konsistente (terskel C1 MET). Andelen forsøk over 95 %-punktet er 0,040 og 0,052; terskelen for å oppdage den injiserte feilen var minst 0,5, så den er NOT MET (C3): løsningen om bord er kjent til omtrent 352 m mot 23 m for bakkeløsningen, så en forskyvning på ti meter skjuler seg inne i kovariansen. MODELLED: en begrenset tre-legemers modell med oppgitte forenklinger og illustrative inndata, ikke en måling av noen måneparameter. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Samsvar mellom en banebestemmelse om bord med jord-GNSS i en nesten rettlinjet halobane og en uavhengig bakkebasert banebestemmelse, fra reelle kjøringer av motoren v0.40.0 på scenarios/lunar-infrastructure-od-consistency.toml og varianten med modellfeil (400 forsøk hver). Gjennomsnittlig normalisert differanse q er 5,81 uten modellfeil og 5,95 med en injisert akselerasjonsfeil på 3e-10 m/s2, mot 6 forventet: de to banebestemmelsene er innbyrdes konsistente (terskel C1 MET). Andelen forsøk over 95 %-punktet er 0,040 og 0,052; terskelen for å oppdage den injiserte feilen var minst 0,5, så den er NOT MET (C3): løsningen om bord er kjent til omtrent 352 m mot 23 m for bakkeløsningen, så en forskyvning på ti meter skjuler seg inne i kovariansen. MODELLED: en begrenset tre-legemers modell med oppgitte forenklinger og illustrative inndata, ikke en måling av noen måneparameter. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet. Fastsetting av heltallsflertydighet i bærebølgefasen mellom månens overflatestasjoner og en orbiter, fra det innsjekkede resultatet av den skårede kjøringen av motor v0.40.0 (tests/fixtures/lunar_infra/phase_full_run.json: 3 buelengder, en Monte Carlo med 401 trekk hver, skrevet av scenarios/carrier-phase-scored.toml). 1 døgn: suksess 1,0 % (standardfeil 0,5 %), 134 flertydigheter, orbiterens posisjonssigma 45,6 m flytende og 18,5 m fastsatt; 2 døgn: suksess 0,5 % (standardfeil 0,4 %), 259 flertydigheter, orbiterens posisjonssigma 21,5 m flytende og 8,7 m fastsatt; 3 døgn: suksess 2,8 % (standardfeil 0,8 %), 375 flertydigheter, orbiterens posisjonssigma 6,3 m flytende og 2,1 m fastsatt. Heltallsfastsetting oppnås ikke: suksessen holder seg mellom 1 % og 3 % ved 25 dBi, og ved de registrerte 12 dBi kan ikke problemet formuleres. MODELLED: en begrenset trelegememodell med oppgitte forenklinger og illustrative inndata, ikke en måling av noen lunar størrelse. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en safety-of-life-tjeneste.Fastsetting av heltallsflertydighet i bærebølgefasen mellom månens overflatestasjoner og en orbiter, fra det innsjekkede resultatet av den skårede kjøringen av motor v0.40.0 (tests/fixtures/lunar_infra/phase_full_run.json: 3 buelengder, en Monte Carlo med 401 trekk hver, skrevet av scenarios/carrier-phase-scored.toml). 1 døgn: suksess 1,0 % (standardfeil 0,5 %), 134 flertydigheter, orbiterens posisjonssigma 45,6 m flytende og 18,5 m fastsatt; 2 døgn: suksess 0,5 % (standardfeil 0,4 %), 259 flertydigheter, orbiterens posisjonssigma 21,5 m flytende og 8,7 m fastsatt; 3 døgn: suksess 2,8 % (standardfeil 0,8 %), 375 flertydigheter, orbiterens posisjonssigma 6,3 m flytende og 2,1 m fastsatt. Heltallsfastsetting oppnås ikke: suksessen holder seg mellom 1 % og 3 % ved 25 dBi, og ved de registrerte 12 dBi kan ikke problemet formuleres. MODELLED: en begrenset trelegememodell med oppgitte forenklinger og illustrative inndata, ikke en måling av noen lunar størrelse. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en safety-of-life-tjeneste. Presisjonen til det lunare datumet med sju parametere (tre translasjoner, en skala og tre rotasjoner) fra avstandsmåling fra jordstasjoner, med og uten avstander fra orbiter til overflatestasjon, fra en reell kjøring av motoren v0.40.0 på scenarios/lunar-infrastructure-frame-coestimation.toml. Cramer-Rao-sigma for translasjonene og rotasjonene synker med orbiterlinkene (for eksempel t_z fra 0,98 m til 0,046 m); den minste informasjonsegenverdien øker 111 ganger og CRLB-sporet synker til 1,0 % (terskel F3 MET). Dette forutsetter at banen er kjent i månens akser, med feilen båret av orbiterens avstandssigma på 1 m. MODELLED: en begrenset tre-legemers modell med oppgitte forenklinger og illustrative inndata, ikke en måling av noen måneparameter. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Presisjonen til det lunare datumet med sju parametere (tre translasjoner, en skala og tre rotasjoner) fra avstandsmåling fra jordstasjoner, med og uten avstander fra orbiter til overflatestasjon, fra en reell kjøring av motoren v0.40.0 på scenarios/lunar-infrastructure-frame-coestimation.toml. Cramer-Rao-sigma for translasjonene og rotasjonene synker med orbiterlinkene (for eksempel t_z fra 0,98 m til 0,046 m); den minste informasjonsegenverdien øker 111 ganger og CRLB-sporet synker til 1,0 % (terskel F3 MET). Dette forutsetter at banen er kjent i månens akser, med feilen båret av orbiterens avstandssigma på 1 m. MODELLED: en begrenset tre-legemers modell med oppgitte forenklinger og illustrative inndata, ikke en måling av noen måneparameter. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet. Presisjonen til forskjellene mellom laseravstandsmåling, VLBI og GNSS-posisjoner for ett romfartøy, mot feilen i den lokale koblingen på bakken, fra en reell kjøring av motoren v0.40.0 på scenarios/lunar-infrastructure-space-tie.toml (én bue på 6.56 døgn, teknikk-sigmaer GNSS 10 m, VLBI 1 m, laser 0,1 m). Med en lokal kobling fra 1 mm til 1 m holder sigma for laser-minus-GNSS-translasjonen seg nær 1,04 m helt til koblingen når 1 m: den begrenses av teknikkenes målestøy, ikke av den lokale koblingen. Gulvet som koblingen alene setter er kvadratroten av to ganger dens sigma. MODELLED: en begrenset tre-legemers modell med oppgitte forenklinger og illustrative inndata, ikke en måling av noen måneparameter. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Presisjonen til forskjellene mellom laseravstandsmåling, VLBI og GNSS-posisjoner for ett romfartøy, mot feilen i den lokale koblingen på bakken, fra en reell kjøring av motoren v0.40.0 på scenarios/lunar-infrastructure-space-tie.toml (én bue på 6.56 døgn, teknikk-sigmaer GNSS 10 m, VLBI 1 m, laser 0,1 m). Med en lokal kobling fra 1 mm til 1 m holder sigma for laser-minus-GNSS-translasjonen seg nær 1,04 m helt til koblingen når 1 m: den begrenses av teknikkenes målestøy, ikke av den lokale koblingen. Gulvet som koblingen alene setter er kvadratroten av to ganger dens sigma. MODELLED: en begrenset tre-legemers modell med oppgitte forenklinger og illustrative inndata, ikke en måling av noen måneparameter. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet. Hvilken observabelfamilie som er følsom for Love-tallene h2, k2 og l2 for Månen, fra en reell kjøring av motoren v0.40.0 på scenarios/lunar-infrastructure-geodesy-sensitivity.toml. Hver celle er RMS-partiellderiverten av en families observasjoner med hensyn til en parameter, i familiens egne enheter (så celler sammenlignes langs en rad, ikke nedover en kolonne); en strek betyr at familien ikke har noen følsomhet. laseravstandsmåling: h2 7,6, k2 ingen, l2 9,8. orbitersporing: h2 ingen, k2 0,00086, l2 ingen. overflategravimeter: h2 2.9e+03, k2 4.3e+03, l2 ingen. overflateklokke: h2 2.8e-17, k2 2.8e-17, l2 ingen. Med alle fire familiene er Cramer-Rao-sigma 0,36 % av nominell h2, 0,52 % av k2 og 1,16 % av l2. Å legge til en familie senket aldri den minste egenverdien (28 av 28 tillegg), men sporet av pseudoinversen var ikke større i bare 16 av 28: den halvdelen av terskel G3 er NOT MET. Orbiterfamilien ser linjeintegralet langs siktlinjen av k2-akselerasjonen, et tall i den øvre enden. MODELLED: en begrenset tre-legemers modell med oppgitte forenklinger og illustrative inndata, ikke en måling av noen måneparameter. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.Hvilken observabelfamilie som er følsom for Love-tallene h2, k2 og l2 for Månen, fra en reell kjøring av motoren v0.40.0 på scenarios/lunar-infrastructure-geodesy-sensitivity.toml. Hver celle er RMS-partiellderiverten av en families observasjoner med hensyn til en parameter, i familiens egne enheter (så celler sammenlignes langs en rad, ikke nedover en kolonne); en strek betyr at familien ikke har noen følsomhet. laseravstandsmåling: h2 7,6, k2 ingen, l2 9,8. orbitersporing: h2 ingen, k2 0,00086, l2 ingen. overflategravimeter: h2 2.9e+03, k2 4.3e+03, l2 ingen. overflateklokke: h2 2.8e-17, k2 2.8e-17, l2 ingen. Med alle fire familiene er Cramer-Rao-sigma 0,36 % av nominell h2, 0,52 % av k2 og 1,16 % av l2. Å legge til en familie senket aldri den minste egenverdien (28 av 28 tillegg), men sporet av pseudoinversen var ikke større i bare 16 av 28: den halvdelen av terskel G3 er NOT MET. Orbiterfamilien ser linjeintegralet langs siktlinjen av k2-akselerasjonen, et tall i den øvre enden. MODELLED: en begrenset tre-legemers modell med oppgitte forenklinger og illustrative inndata, ikke en måling av noen måneparameter. Veiledende: analyseresultat fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for liv og sikkerhet.

Registerstatus: MODELLED, og tre terskler er NOT MET. Tallbehandlingen er kontrollert mot uavhengige numpy- og scipy-programmer; ingenting er sammenlignet med en måling av en månestørrelse, og ingenting er VALIDATED. Nådd: de to baneløsningene er konsistente (gjennomsnittlig q 5,81 mot 6 forventet), og orbiterlenker hever den minste datumegenverdien omtrent 111 ganger, forutsatt en kjent bane. Ikke nådd: den injiserte modellfeilen på 3e-10 m/s2 oppdages ikke (C3: løsningen om bord er kjent til omtrent 350 m, så omtrent ti meter skjuler seg i kovariansen); heltallsfastsetting oppnås ikke (1 til 3 % suksess ved 25 dBi, og ved den registrerte 12 dBi kan ikke problemet formes); og sporhalvdelen av G3 for å legge til en observabelfamilie (sporet økte i 12 av 28 tillegg, hver gang fordi familien hevet rangen). Hver bom er festet av en test. Månens infrastruktur.

Kshana Studio#

Åpne kshana.dev/studio, så kjører hele motoren i nettleseren din, kompilert til WebAssembly. Ingenting å installere, og ingenting lastes opp. Studioet har to visninger av den samme motoren, og en bryter i toppen flytter mellom dem og beholder scenarioet, visningen og alle innstillinger du endret.

Den enkle visningen er der Studioet åpner. Den starter fra spørsmål (hvor mange satellitter kan jeg se, kan jeg stole på posisjonsbestemmelsen min, hvor lenge kan en klokke holde tid, hva gjør en jammer med mottakeren min) og fra et kart over alt motoren kan gjøre, hvert område med sin andel validerte metoder. Åpne et scenario, og svaret kommer først: én enkel setning, skrevet for det scenarioet måler, deretter nøkkeltallene og et diagram. Høyst fem innstillinger vises, de som endrer svaret mest; resten venter under Avanserte innstillinger. Hvordan dette beregnes forklarer metoden, og For forskere gir motorens egne tall, scenariofilen, koden for å kjøre det fra Python og siteringen.

Kshana Studio, enkel visning, på det medfølgende scenarioet integrity-raim, motor v0.40.0 kjører lokalt. Spørsmålet: oppfyller geometrien alarmgrensene (horisontalt og vertikalt beskyttelsesnivå)? Svaret først, merket Levende resultat: Ja, for det meste: for 95,3 % av de 12 t. Mottakerens feilgrense holdt seg under alarmgrensene (40 m horisontalt og 50 m vertikalt) ved 344 av 361 kontroller, og ingen posisjonsbestemmelse var villedende. Nøkkeltall: tid posisjonsbestemmelsen kan stoles på 95,3 %, lengste gap 10 min, typisk feilgrense 6,5 / 13 m, villedende posisjonsbestemmelser 0. Ved siden av, Prøv andre innstillinger med fem av dem (avstandsfeilen, de to alarmgrensene, varigheten og elevasjonsmasken) og Kjør igjen, så de sammenfoldede seksjonene Avanserte innstillinger (13 flere), Hvordan dette beregnes (8 validert, 6 modellert) og For forskere. Under, visningene av dette resultatet og beskyttelsesnivåene plottet mot alarmgrensen.Kshana Studio, enkel visning, på det medfølgende scenarioet integrity-raim, motor v0.40.0 kjører lokalt. Spørsmålet: oppfyller geometrien alarmgrensene (horisontalt og vertikalt beskyttelsesnivå)? Svaret først, merket Levende resultat: Ja, for det meste: for 95,3 % av de 12 t. Mottakerens feilgrense holdt seg under alarmgrensene (40 m horisontalt og 50 m vertikalt) ved 344 av 361 kontroller, og ingen posisjonsbestemmelse var villedende. Nøkkeltall: tid posisjonsbestemmelsen kan stoles på 95,3 %, lengste gap 10 min, typisk feilgrense 6,5 / 13 m, villedende posisjonsbestemmelser 0. Ved siden av, Prøv andre innstillinger med fem av dem (avstandsfeilen, de to alarmgrensene, varigheten og elevasjonsmasken) og Kjør igjen, så de sammenfoldede seksjonene Avanserte innstillinger (13 flere), Hvordan dette beregnes (8 validert, 6 modellert) og For forskere. Under, visningene av dette resultatet og beskyttelsesnivåene plottet mot alarmgrensen.

Den avanserte visningen er hele dashbordet: scenariobiblioteket, fem nummererte trinn (Velg, Sett, Kjør, Les resultater, Del eller eksporter), nøkkeltallene med PASS- og FAIL-merker der kjøringen oppgir en terskel, og hvert panel: oversikt, diagrammer, kart, gjenspilling, motorens rapport og eksport. Én søkeboks når scenarioer, domener og feltene i dem, og du kan feste opptil fire kjøringer og sammenligne dem side om side.

Åpningsskjermen i den enkle visningen, og den avanserte visningen etter en kjøring
Kshana Studio, enkel visning, åpningsskjermen, med tittelen Hva vil du finne ut?, med motor v0.40.0 levende og, i toppfeltet, tre lenker: Treningsdebrief, Interferenskart og Mottakertillit. Fire spørsmål: hvor mange satellitter kan jeg se hvor som helst på jorden, kan jeg stole på posisjonsbestemmelsen min, hvor lenge kan en klokke holde tid uten satellitter, og hva gjør en jammer med mottakeren min. Under det første, det registrerte resultatet: minst 22 satellitter i sikte på hvert sted og 31 i gjennomsnitt med GPS, Galileo, BeiDou og GLONASS sammen, en posisjonsbestemmelse mulig på 100 % av stedene og tidene, på et verdenskart over satellitter i sikte, med en knapp Åpne dette resultatet. Ved siden av, Alt Kshana kan gjøre: 16 områder og 139 ferdigkjørbare scenarioer, hver flis med et lite diagram fra en registrert kjøring og sin andel validerte metoder, og registerets 173 av 350 funksjoner validert.Kshana Studio, enkel visning, åpningsskjermen, med tittelen Hva vil du finne ut?, med motor v0.40.0 levende og, i toppfeltet, tre lenker: Treningsdebrief, Interferenskart og Mottakertillit. Fire spørsmål: hvor mange satellitter kan jeg se hvor som helst på jorden, kan jeg stole på posisjonsbestemmelsen min, hvor lenge kan en klokke holde tid uten satellitter, og hva gjør en jammer med mottakeren min. Under det første, det registrerte resultatet: minst 22 satellitter i sikte på hvert sted og 31 i gjennomsnitt med GPS, Galileo, BeiDou og GLONASS sammen, en posisjonsbestemmelse mulig på 100 % av stedene og tidene, på et verdenskart over satellitter i sikte, med en knapp Åpne dette resultatet. Ved siden av, Alt Kshana kan gjøre: 16 områder og 139 ferdigkjørbare scenarioer, hver flis med et lite diagram fra en registrert kjøring og sin andel validerte metoder, og registerets 173 av 350 funksjoner validert. Kshana Studio, avansert visning, etter en kjøring av det medfølgende scenarioet constellation-multi-gnss-coverage (Fire GNSS-konstellasjoner, ett kart), motor v0.40.0 kjører lokalt. Til venstre scenariobiblioteket, 139 scenarioer i 16 domener. De fem trinnene Velg, Sett, Kjør, Les resultater og Del eller eksporter, med trinn 4 gjeldende. Nøkkeltall: 102 satellitter, tilgjengelighet 100 % (PASS), median posisjonspresisjonsfortynning (PDOP) 0,95 (PASS), PDOP 95. persentil 1,105 (PASS), 31,03 satellitter i sikte i gjennomsnitt og 22 som færrest. Under, panelraden med Dekning valgt, gjenspillingslinjen, et verdenskart over gjennomsnittlig PDOP fra 0,831 til 1,0853 med hver satellitt tegnet, og de globale dekningstallene.Kshana Studio, avansert visning, etter en kjøring av det medfølgende scenarioet constellation-multi-gnss-coverage (Fire GNSS-konstellasjoner, ett kart), motor v0.40.0 kjører lokalt. Til venstre scenariobiblioteket, 139 scenarioer i 16 domener. De fem trinnene Velg, Sett, Kjør, Les resultater og Del eller eksporter, med trinn 4 gjeldende. Nøkkeltall: 102 satellitter, tilgjengelighet 100 % (PASS), median posisjonspresisjonsfortynning (PDOP) 0,95 (PASS), PDOP 95. persentil 1,105 (PASS), 31,03 satellitter i sikte i gjennomsnitt og 22 som færrest. Under, panelraden med Dekning valgt, gjenspillingslinjen, et verdenskart over gjennomsnittlig PDOP fra 0,831 til 1,0853 med hver satellitt tegnet, og de globale dekningstallene.

Studioets kildekode og byggenotatene står i web/README.md.

Nettstedet#

Resten av kshana.dev er bygget fra dette depotets egne filer og motorkjøringer: oppdrag, funksjoner, evidensregisteret, den publiserte forskningen og utgavene.

Tre sider fra kshana.dev side om side. Forsiden: navnelinjen Kshana · क्षण · det presise øyeblikket over overskriften Øv på minuttet GNSS går i svart, med oppdragskonsollen fra en ekte kjøring av motor v0.40.0 (en globus og tre levende diagrammer: klokkens tidsfeil, bærebølge-til-støy-tetthet og beskyttelsesnivå). Evidens, Publisert forskning: de seks arXiv-artiklene bygget på den åpne motoren, den nyeste med et motortall. Utgaver, Kshana Pro, den samme motoren, forsterket: Free kjører ett scenario, Pro besvarer programmets spørsmål.Tre sider fra kshana.dev side om side. Forsiden: navnelinjen Kshana · क्षण · det presise øyeblikket over overskriften Øv på minuttet GNSS går i svart, med oppdragskonsollen fra en ekte kjøring av motor v0.40.0 (en globus og tre levende diagrammer: klokkens tidsfeil, bærebølge-til-støy-tetthet og beskyttelsesnivå). Evidens, Publisert forskning: de seks arXiv-artiklene bygget på den åpne motoren, den nyeste med et motortall. Utgaver, Kshana Pro, den samme motoren, forsterket: Free kjører ett scenario, Pro besvarer programmets spørsmål.

Funksjoner#

Én motor dekker hele feilkjeden, fra den første jammede satellitten til den siste nanosekunden av klokke-holdover. Motoren har 92 scenariotyper; kshana kinds lister dem, og docs/SCENARIOS.md dokumenterer hvert felt.

Funksjon Hva den besvarer
Spektrum hvordan en jammer tar GNSS L-båndet, bånd for bånd, sekund for sekund
Klokker og tidssynkronisering hvor lenge hver klokke holder tid etter at GNSS er tapt
Konstellasjoner rundt et hvilket som helst legeme dekning, presisjonsfortynning og tilgjengelighet rundt jorden, Månen eller Mars
Solsystemet hvor hver planet er, og lystiden for en hvilken som helst lenke
Navigasjon i lav jordbane en passering, en lenke, en navigasjonsmelding og en fusjonert posisjonsbestemmelse, trinn for trinn
Kampanjer et lenket oppdrag, et sveip eller et Monte Carlo-ensemble i ett scenario
Animasjon en kjørings tidsserie som en animert tegning, en spiller eller bilder
Rapporter hvert tall med enhet og merkelapp, i HTML (HyperText Markup Language) og JSON (JavaScript Object Notation)
Interoperabilitetseksporter baner og geometri for andre verktøy: SP3, CCSDS OMM og OEM, CZML, KML, GeoJSON, STK og SigMF
Maritim tillit kan broen stole på denne posisjonsbestemmelsen: en score fra 0 til 100 og begrunnelser for et fartøys NMEA, live eller fra en logg (veiledende, ikke typegodkjent navigasjonsutstyr)
NMEA-treningsstrømmer syntetisk bro-NMEA med skriptet jamming og spoofing og en instruktørlogg, for mannskapstrening (bare tekst; aldri for et fartøys levende navigasjonssystemer; veiledende, ikke typegodkjent navigasjonsutstyr)
Interferenskart hvor fly og skip meldte degraderte navigasjonsdata, og hvor mye av en rute det berører
Senderregion hvor, under oppgitte forutsetninger, en kilde til degraderte posisjonsrapporter kan befinne seg: regioner ved oppgitt konfidensnivå, et tyngdepunkt med sin ellipse, aldri et punkt (MODELLED; kshana interference-map locate)
Bevispakker en signert, offline-verifiserbar teknisk oppføring av et fartøys loggvindu og hva motoren beregnet fra det, for en hendelsesrapport (veiledende, ikke typegodkjent navigasjonsutstyr)
Tillitstelemetri tillitsstrømmen som Prometheus-metrikker, SIEM-hendelser og valgfri OpenTelemetry, med et eksempel på Grafana-dashbord (deploy/grafana/kshana-gnss-trust.json)
Signal K og OpenCPN tillitsscoren på en båts Signal K-server og i OpenCPN, med et referansebygg for en liten datamaskin ved siden av mottakeren (veiledende, ikke typegodkjent navigasjonsutstyr)
Eksport til testbenk kshana bench-export: et scenarios kjøretøybevegelse og hendelser for en GNSS-simulator i laboratoriet (ingen signal skrives), og hvordan mottakerens logg skåres etterpå
Compliance-kartlegging og -rapport kshana compliance-report: hvilke rader i offentlige robusthetsrammeverk et sett kjøringer gir belegg for, og gapet som blir igjen
Notebooks kjørbare veiledninger: fartøystillit og treningsstrømmer, ruteeksponering i interferenskart, compliance-kartlegging og testbenken, kvante mot klassisk GDOP
Verifikator for Galileo OSNMA hvilke satellitters navigasjonsdata en mottaker kan autentisere kryptografisk, og hvorfor en kontroll feiler; Kshana gir ingen rettigheter under EUs OSNMA ICD IPRs (se MERKNADEN på siden)

Eksportformatene i sin helhet: 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 lenkede kampanjen campaign-jam-spoof-holdover-integrity, én ekte kjøring av motoren (seed 20260928): 6 faser (Nominal → Jamming → Spoofing → Holdover → Integrity alarm → Recovery) og 18 medlemskjøringer på et 10 s-rutenett over T+01:16:10. Tre felt: klokkens tidsfeil mot en vakt på 50 ns (topp 62,7 ns), effektiv bærebølge-til-støy-tetthet mot et gulv på 25 dB-Hz (minimum -12.2 dB-Hz), og vertikalt beskyttelsesnivå mot en alarmgrense på 50 m (topp 135,4 m), med kjøringens alarmhendelser: T+00:20:00 alarmer fra RF-spoofingdetektoren (fusjonerte monitorer for konsistens, effekt og signalkvalitet); T+00:26:10 alarmer fra den klokkestøttede spoofingmonitoren.Den lenkede kampanjen campaign-jam-spoof-holdover-integrity, én ekte kjøring av motoren (seed 20260928): 6 faser (Nominal → Jamming → Spoofing → Holdover → Integrity alarm → Recovery) og 18 medlemskjøringer på et 10 s-rutenett over T+01:16:10. Tre felt: klokkens tidsfeil mot en vakt på 50 ns (topp 62,7 ns), effektiv bærebølge-til-støy-tetthet mot et gulv på 25 dB-Hz (minimum -12.2 dB-Hz), og vertikalt beskyttelsesnivå mot en alarmgrense på 50 m (topp 135,4 m), med kjøringens alarmhendelser: T+00:20:00 alarmer fra RF-spoofingdetektoren (fusjonerte monitorer for konsistens, effekt og signalkvalitet); T+00:26:10 alarmer fra den klokkestøttede spoofingmonitoren.
Hver funksjon, tegnet fra en ekte kjøring: L-bånd-vannfallet, dekningskartet, solsystemet og en passering i lav jordbane
GNSS L-båndet som én effekttetthetsspekter over 60 s, fra en ekte kjøring av spectrum-typen (l-band-waterfall-jamming.toml, seed 7, motor v0.40.0): frekvens på tvers, tid nedover, farge for effekt over støygulvet på -202.0 dBW/Hz. Jammere: chirp-personvernenhet (chirp, på ved 10 s, av ved 40 s); CW-tone på L1 (cw, på ved 30 s); L2 smalbåndsstøy (narrowband, på ved 45 s). Verste bånd GPS L1 C/A: minimum effektiv C/N0 3,2 dB-Hz ved 31 s mot 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åndet som én effekttetthetsspekter over 60 s, fra en ekte kjøring av spectrum-typen (l-band-waterfall-jamming.toml, seed 7, motor v0.40.0): frekvens på tvers, tid nedover, farge for effekt over støygulvet på -202.0 dBW/Hz. Jammere: chirp-personvernenhet (chirp, på ved 10 s, av ved 40 s); CW-tone på L1 (cw, på ved 30 s); L2 smalbåndsstøy (narrowband, på ved 45 s). Verste bånd GPS L1 C/A: minimum effektiv C/N0 3,2 dB-Hz ved 31 s mot 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 sikte over hele jorden i ett døgn, fra en ekte kjøring av constellation-design (constellation-multi-gnss-coverage.toml, motoren kjørt av denne generatoren): 102 satellitter (GPS 24, Galileo 24, BeiDou 30, GLONASS 24). Hver celle på 10 grader er skyggelagt etter gjennomsnittlig antall satellitter over masken på 10 grader (27,2 til 36,5); prikkene er motorens bakkesporsampler, ett per time per satellitt. Global tilgjengelighet 100,00 % ved PDOP på eller under 6, median PDOP 0,95, gjennomsnitt 31,0 og minimum 22 satellitter i sikte.Satellitter i sikte over hele jorden i ett døgn, fra en ekte kjøring av constellation-design (constellation-multi-gnss-coverage.toml, motoren kjørt av denne generatoren): 102 satellitter (GPS 24, Galileo 24, BeiDou 30, GLONASS 24). Hver celle på 10 grader er skyggelagt etter gjennomsnittlig antall satellitter over masken på 10 grader (27,2 til 36,5); prikkene er motorens bakkesporsampler, ett per time per satellitt. Global tilgjengelighet 100,00 % ved PDOP på eller under 6, median PDOP 0,95, gjennomsnitt 31,0 og minimum 22 satellitter i sikte. Solsystemet ved scenarioets epoke 2026-09-28T00:00:00, fra en ekte kjøring av solar-system-typen (solar-system-tour.toml): Sola, 9 planeter og dvergplaneten Pluto sett ovenfra ekliptikken, avstander komprimert logaritmisk for visning, med hvert legemes enveis 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. Lenker: Mars til Jupiter enveis 2193,5 s; Saturn til jorden enveis 4212,2 s; Europa til Jupiter enveis 2,2 s.Solsystemet ved scenarioets epoke 2026-09-28T00:00:00, fra en ekte kjøring av solar-system-typen (solar-system-tour.toml): Sola, 9 planeter og dvergplaneten Pluto sett ovenfra ekliptikken, avstander komprimert logaritmisk for visning, med hvert legemes enveis 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. Lenker: Mars til Jupiter enveis 2193,5 s; Saturn til jorden enveis 4212,2 s; Europa til Jupiter enveis 2,2 s. Én passering i lav jordbane (LEO) fra en ekte kjøring av leo-pass-typen (leo-pass-iridium.toml, motoren kjørt av denne generatoren): Iridium-pass i 781 km, STL-bånd ved 1621 MHz, sett av en luftbruker ved 50° N 30° V. Over masken på 5° i 750 s, maksimal elevasjon 65,0° ved 444 s. Bærebølge-til-støy-tettheten topper på 80,5 dB-Hz (median 71,3), 34,3 dB over GNSS-medianen på 46,2 dB-Hz fra 8 GPS-satellitter i sikte (38,2 til 51,1 dB-Hz); Doppler når 35,4 kHz.Én passering i lav jordbane (LEO) fra en ekte kjøring av leo-pass-typen (leo-pass-iridium.toml, motoren kjørt av denne generatoren): Iridium-pass i 781 km, STL-bånd ved 1621 MHz, sett av en luftbruker ved 50° N 30° V. Over masken på 5° i 750 s, maksimal elevasjon 65,0° ved 444 s. Bærebølge-til-støy-tettheten topper på 80,5 dB-Hz (median 71,3), 34,3 dB over GNSS-medianen på 46,2 dB-Hz fra 8 GPS-satellitter i sikte (38,2 til 51,1 dB-Hz); Doppler når 35,4 kHz.

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

De maritime funksjonene og interferensfunksjonene, tegnet fra innsjekkede syntetiske inndata: en tillitsscore, et interferenskart med ruteeksponering, en treningsstrøm og en bevispakke
Tillitsscore over én syntetisk overfart, fra en reell kjøring av motoren v0.40.0 på examples/maritime-trust (en oppdiktet NMEA-logg fra en ferje på ruten Tallinn til Helsinki, 3001 epoker ved 1 Hz). Tre felt deler én tidsakse. Øverst: avstanden mellom posisjonen mottakeren rapporterer og fartøyets virkelige posisjon, som holder seg innenfor noen få meter til omtrent 1576 s, da loggens innskrevne posisjonsbortdrag trekker den bort, mens mottakeren hele tiden rapporterer en gyldig posisjonsbestemmelse. I midten: tillitsscoren fra 0 til 100, ikke beregnet de første 300 s av kalibreringen, i det nominelle båndet (minst 90) fram til bortdraget, deretter fallende gjennom det degraderte båndet (minst 55) og ned i det upålitelige båndet. Nederst: båndet for hver epoke som et farget bånd med navnet sitt. Scoren er veiledende. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon. Loggen er oppdiktet for å vise formatet og monitorene; den er ikke en måling og sier ingenting om hvordan en mottaker ville prestert.Tillitsscore over én syntetisk overfart, fra en reell kjøring av motoren v0.40.0 på examples/maritime-trust (en oppdiktet NMEA-logg fra en ferje på ruten Tallinn til Helsinki, 3001 epoker ved 1 Hz). Tre felt deler én tidsakse. Øverst: avstanden mellom posisjonen mottakeren rapporterer og fartøyets virkelige posisjon, som holder seg innenfor noen få meter til omtrent 1576 s, da loggens innskrevne posisjonsbortdrag trekker den bort, mens mottakeren hele tiden rapporterer en gyldig posisjonsbestemmelse. I midten: tillitsscoren fra 0 til 100, ikke beregnet de første 300 s av kalibreringen, i det nominelle båndet (minst 90) fram til bortdraget, deretter fallende gjennom det degraderte båndet (minst 55) og ned i det upålitelige båndet. Nederst: båndet for hver epoke som et farget bånd med navnet sitt. Scoren er veiledende. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon. Loggen er oppdiktet for å vise formatet og monitorene; den er ikke en måling og sier ingenting om hvordan en mottaker ville prestert. To syntetiske dager i interferenskartet, tegnet fra de innsjekkede eksemplene i examples/interference-map/output, hver med sin egen syntetiske rute og eksponeringsandelene motoren rapporterer. Til venstre en ADS-B-dag: 1 degradert celle, 6 ikke degradert, 4 uvurdert (skravert) og celler uten oppføring, tegnet tomme, som ikke ble observert. Ruten er 525 km: 11,5 % av lengden i degraderte celler, 38,3 % ikke degradert, 9,1 % uvurdert og 41,1 % ikke observert. Til høyre en AIS-dag: celler flagget av sirkel- og landdetektorene, ikke-avvikende celler og tomme celler; ruten er 454 km med 10,5 % i avvikende celler, 21,2 % ikke avvikende, 0,0 % uvurdert og 68,3 % ikke observert. ADS-B og AIS er separate lag og blir aldri slått sammen. En flagget celle er ikke et funn av interferens, og en celle uten farge ble ikke observert, noe som ikke er det samme som klar. Alle data er funnet på, i åpent hav midt i Atlanteren, og er ikke en måling.To syntetiske dager i interferenskartet, tegnet fra de innsjekkede eksemplene i examples/interference-map/output, hver med sin egen syntetiske rute og eksponeringsandelene motoren rapporterer. Til venstre en ADS-B-dag: 1 degradert celle, 6 ikke degradert, 4 uvurdert (skravert) og celler uten oppføring, tegnet tomme, som ikke ble observert. Ruten er 525 km: 11,5 % av lengden i degraderte celler, 38,3 % ikke degradert, 9,1 % uvurdert og 41,1 % ikke observert. Til høyre en AIS-dag: celler flagget av sirkel- og landdetektorene, ikke-avvikende celler og tomme celler; ruten er 454 km med 10,5 % i avvikende celler, 21,2 % ikke avvikende, 0,0 % uvurdert og 68,3 % ikke observert. ADS-B og AIS er separate lag og blir aldri slått sammen. En flagget celle er ikke et funn av interferens, og en celle uten farge ble ikke observert, noe som ikke er det samme som klar. Alle data er funnet på, i åpent hav midt i Atlanteren, og er ikke en måling. Treningsstrøm fra scenarioet coastal-drag-off (motor v0.40.0, seed 22, 25 minutter med én posisjonsbestemmelse per 10 s i instruktørloggen). Et kart viser fartøyets sanne spor og sporet mottakeren rapporterer: de stemmer overens til en skriptet posisjons-drag-off begynner ved 421 s, deretter går det rapporterte sporet bort fra det sanne mens mottakeren beholder en gyldig posisjonsbestemmelse, og det hopper tilbake når hendelsen slutter ved 1140 s. Ved siden av vises avstanden mellom de to sporene over tid og den midlere bærebølge-til-støy-tettheten mottakeren rapporterer, som stiger til ett hevet nivå mens hendelsen varer. Syntetiske treningsdata generert av Kshana. Kun for trening og testing: mat aldri denne strømmen inn i et fartøys levende navigasjonssystemer. Veiledende, ikke typegodkjent navigasjonsutstyr. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon. Posisjoner, datoer og spor er oppdiktet.Treningsstrøm fra scenarioet coastal-drag-off (motor v0.40.0, seed 22, 25 minutter med én posisjonsbestemmelse per 10 s i instruktørloggen). Et kart viser fartøyets sanne spor og sporet mottakeren rapporterer: de stemmer overens til en skriptet posisjons-drag-off begynner ved 421 s, deretter går det rapporterte sporet bort fra det sanne mens mottakeren beholder en gyldig posisjonsbestemmelse, og det hopper tilbake når hendelsen slutter ved 1140 s. Ved siden av vises avstanden mellom de to sporene over tid og den midlere bærebølge-til-støy-tettheten mottakeren rapporterer, som stiger til ett hevet nivå mens hendelsen varer. Syntetiske treningsdata generert av Kshana. Kun for trening og testing: mat aldri denne strømmen inn i et fartøys levende navigasjonssystemer. Veiledende, ikke typegodkjent navigasjonsutstyr. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon. Posisjoner, datoer og spor er oppdiktet. Strukturen til en bevispakke. En mottakerlogg (NMEA, u-blox UBX, RINEX 3 eller en Android-logg) og et tidsvindu går inn i kshana receiver-trust evidence, som skriver sju filer: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig og en valgfri timestamp.tsr. Manifestet registrerer SHA-256 av hele loggen og av hver fil og en hashkjede over filene; signaturen dekker manifestet. kshana evidence verify kontrollerer signaturen, hver fils hash, kjeden og at ingen ulistet fil finnes, og avslutter med 0 når den er bekreftet, 1 når noe feilet og 3 når signereren ikke var festet. En pakke er en teknisk registrering, ikke en juridisk vurdering.Strukturen til en bevispakke. En mottakerlogg (NMEA, u-blox UBX, RINEX 3 eller en Android-logg) og et tidsvindu går inn i kshana receiver-trust evidence, som skriver sju filer: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig og en valgfri timestamp.tsr. Manifestet registrerer SHA-256 av hele loggen og av hver fil og en hashkjede over filene; signaturen dekker manifestet. kshana evidence verify kontrollerer signaturen, hver fils hash, kjeden og at ingen ulistet fil finnes, og avslutter med 0 når den er bekreftet, 1 når noe feilet og 3 når signereren ikke var festet. En pakke er en teknisk registrering, ikke en juridisk vurdering.

Alle fire er oppdiktede data og veiledende: de viser formatet og oppførselen til programvaren, ikke hvordan noen mottaker eller noe system presterer mot interferens. Kjør den første med kshana receiver-trust examples/maritime-trust/session.toml, den andre med kshana route-exposure på eksemplene i examples/interference-map/, den tredje med kshana nmea-scenario scenarios/training/coastal-drag-off.toml --out drag.nmea (bare til trening: aldri mat den inn i levende navigasjonsutstyr), og den fjerde som i docs/EVIDENCE-PACKS.md.

Hele funksjonstabellen, domene for domene

Hele detaljeringen domene for domene følger; for et modenhetsregister per funksjon, se docs/CAPABILITY.md og docs/VALIDATION.md.

Område Funksjon
Bane og geometri SGP4/SDP4-propagering (validert til 4,12 mm mot alle 666 AIAA 2006-6753-vektorer); ekte to-linjers elementer (et innsjekket, datostemplet Celestrak gps-ops-øyeblikksbilde) eller syntetiske Walker-delta-konstellasjoner hvis midlere elementer realiserer formelen i:T/P/F til under 1 km over en 24 t propagering; multikonstellasjonssikt, presisjonsfortynning, geometrisk, posisjon, horisontal, vertikal og tid (GDOP/PDOP/HDOP/VDOP/TDOP), validert til 1e-6 mot gnss_lib_py 1.0.4, Stanford NAV Lab (Navigation and Autonomous Vehicles Laboratory), og GNSS-tilgjengelighet; en gradientfri optimerer for konstellasjonsutforming, dimensjonering av minste antall satellitter med streets-of-coverage, et sammenligningsverktøy for flere konstellasjoner og et Walker-utformingssveip som tabulerer dekning / PDOP / revisitt-tid over et rutenett av baneplan × satellitter og rapporterer de Pareto-optimale utformingene.
Numerisk propagator En numerisk Cowell-propagator (src/propagator.rs) som utfyller den analytiske SGP4/SDP4-stien, med en hierarkisk kraftmodell med sju perturbasjoner (src/forces.rs): to-legeme + hele J2–J6 sonale feltet (de sonale harmoniske koeffisientene J2 til J6 for jordens flattrykking; den eksakte analytiske gradienten av det forstyrrende potensialet), et valgfritt EGM2008 tesseralt sfærisk-harmonisk geopotensial til grad/orden 70 (Earth Gravitational Model 2008; src/gravity_sh.rs; ekte koeffisienter fra NGA, US (United States) National Geospatial-Intelligence Agency, Holmes–Featherstone normalisert Legendre-rekursjon, kryssjekket mot de lukkede Legendre-funksjonene og den analytiske ∇V-identiteten), epokedrevet tredjelegemegravitasjon fra Sola og Månen (en innebygd lavpresisjonsefemeride, ingen DE/SPK-kjerne, Development Ephemeris / SPICE Spacecraft and Planet Kernel), solstrålingstrykk (kanonkulemodell med en konisk umbra+penumbra-skygge), atmosfærisk luftmotstand (Vallado stykkevis eksponentiell tetthet, medroterende atmosfære), den post-newtonske Schwarzschild-relativistiske korreksjonen og Lense–Thirring-rammedragingsleddet (IERS, International Earth Rotation and Reference Systems Service, Conventions 2010 §10, lineært i jordens spinnmoment, ~1–2 størrelsesordener under Schwarzschild), drevet av et valg mellom to adaptive integratorer (RK4, fjerdeordens Runge–Kutta, med stegdobling eller det innebygde paret Dormand–Prince RK5(4)). Validert mot Orekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853, 278 epoker over LEO (lav jordbane) + GTO (geostasjonær overføringsbane), der de konservative kraftnivåene stemmer til en verste-fall |Δr| 0,08 m over 24 t (tests/numerical_cowell_propagator_reference.rs); nivået med atmosfærisk luftmotstand karakteriseres separat (≈ 333 m / 24 t), og de absolutte inndataene for Sol/Måne-efemeride og tetthet forblir ærlig Modellert. Ytterligere intern evidens (ikke ekstern validering): den uforstyrrede banen er kontrollert mot den eksakte universelle-variabel-Kepler-løsningen til under en meter over 24 t, energi/spinnmoment bevares til ~1e-9, og hver perturbasjon stemmer med en håndavledet lukket signatur.
Manøvrer og banedesign Impulsive ΔV-noder med 6×6 kovarianspropagering (ECI, jordsentrert treg, / LVLH, lokal vertikal, lokal horisontal, rammer for utførelsesfeil), integrasjon av endelige brenninger kontrollert mot den lukkede Tsiolkovsky-rakettligningen til < 0,01 %, en Izzo-2015-Lambert-løser for én omdreining, en eksakt universelle-variabel-Kepler-propagator og et porkchop-sveip (oppskyting × ankomst) av C3 (oppskytingsenergi) / ankomst-V∞ gitt ut som et JSON-konturrutenett, ytelsessimuleringslaget over GMAT/Orekit, med hver Lambert-utdata rundturskontrollert mot to-legeme-referansen og porkchop-minimumet kontrollert mot det analytiske Hohmann-gulvet.
Tidssystemer og referansesystemer IERS-skuddsekund-UTC / TAI / TT / UT1-skalaer (Coordinated Universal Time, International Atomic Time, Terrestrial Time og jordrotasjonstiden Universal Time 1), et Julian-dato-API (application programming interface), IAU-2000 (International Astronomical Union) jordrotasjonsvinkel (ERA), GMST-baserte (Greenwich Mean Sidereal Time) TEME ↔ ECEF (sann ekvator, midlere jevndøgn ↔ jordsentrert, jordfast) med geodetiske WGS-84-system (World Geodetic System 1984), IAU 2006-presesjon (Fukushima–Williams), full IAU 2000A/2000B-nutasjon, IERS-polbevegelse og den jevndøgnsfrie CIO-baserte IAU 2006/2000A GCRS↔ITRS-reduksjonen (CIO = Celestial Intermediate Origin), alt validert bit for bit mot SOFA/ERFA-vektorene, og uavhengig kryssjekket mot ANISE (den rene Rust-gjenimplementeringen av NAIF/SPICE; NAIF = Navigation and Ancillary Information Facility hos NASA, USAs luft- og romfartsorganisasjon): kshanas GCRS→ITRS mot ANISEs ITRF93 (International Terrestrial Reference Frame 1993) fra JPLs earth_latest_high_prec.bpc, med de samme IERS-jordorienteringsparametrene matet til begge, stemmer til ≤ 0,86 m på bakken / ≤ 3,6 m i GNSS-bane (maks 0,028″) over åtte epoker 2020–2023.
Treghet Tre-akset strapdown-INS, med kvaternionholdning, WGS-84 NED-mekanisering (nord-øst-ned), coning/sculling-kompensasjon og en deterministisk IMU-feilmodell (skalafaktor, skjevstilling, g-følsomhet, kvantisering, drift); en førsteprinsipp kaldatom-interferometer-akselerometer (Mach–Zehnder-fase, kvanteprojeksjonsstøy, kontrastforfall, vibrasjonskobling) som utleder koeffisienten for hastighetsrandomvandring; og et partikkelfilter med sekvensiell viktighetsresampling for kartstøttet (terreng-/gravitasjonsreferert) GPS-fornektet navigasjon.
Alt-PNT (uten GPS) En målemodell for kaldatom-gravimeter hvis hvitstøygulv (σ = ASD/√τ, ASD = amplitudespektraltetthet) er utledet fra fysikken til CAI-akselerometeret; et sfærisk-harmonisk gravitasjonsanomalifelt av lav grad, fullt normalisert (kontrollert mot de lukkede Legendre-funksjonene og en håndutledet enkeltleddsanomali) pluss syntetiske mascons; syntesekjernen for gravitasjonsfunksjonaler (gravity_sh::gravity_magnitude / gravity_disturbance_mgal), «kartleseren» en gravitasjonsstøttet navigator tilpasser seg mot, er validert mot GRS80-normalgravitasjonsstandarden (Geodetic Reference System 1980), gjengir den lukkede Somigliana-normalgravitasjonen og de publiserte γ_e / γ_p til 3.5e-12 og gir et fysisk begrenset forstyrrelseskart fra det ekte ICGEM-feltet (International Centre for Global Earth Models) EGM2008 (RMS, rotmiddelkvadrat, ≈ 26 mGal, maks ≈ 89 mGal ved d/o 70; tests/icgem_gravity_reference.rs); og et partikkelfilter for tilpasning til gravitasjonskart som gjenvinner et GPS-fornektet spor fra anomalisekvensen det flyr gjennom. Det utvides til terrengreferert navigasjon (TERCOM/SITAN, terrain contour matching / Sandia Inertial Terrain-Aided Navigation, mot en SRTM (Shuttle Radar Topography Mission) .hgt DEM (digital høydemodell), src/altpnt/terrain.rs), et IGRF-14 geomagnetisk hovedfelt (14. generasjon av International Geomagnetic Reference Field) til grad/orden 13 (src/igrf.rs, kontrollert mot den lukkede formen for tiltet dipol og ∇V-endelige differanser), og en kombinert gravitasjon + magnetisk + terreng-navigator som fusjonerer alle tre skalare kanaler gjennom ett partikkelfilter (informasjon er additiv: ingen kanal gjør posisjonsbestemmelsen verre). En 60-minutters GPS-fornektet benchmark (et ~700 km / én times avbrudd der inertialløsningen driver til ~70 km) gjenvinnes til ~145 m (< 500 m) av en hierarkisk grov-til-fin tilpasser, målet for ESA NAVISP (Navigation Innovation and Support Programme) Quantum Wayfarer.
Fusjon Løst koblet 15-tilstands GNSS/INS feiltilstands-EKF (extended Kalman filter) med lukket tilbakekobling (pakken gnss-ins); en tett koblet pseudoavstandsoppdatering som fortsetter å korrigere med færre enn fire satellitter; et koblet klokke + posisjon-filter; en generell unscented (sigmapunkt) Kalman-estimator for sterkt ikke-lineære målinger; en tett koblet GNSS/INS UKF-navigator (pseudoavstand + Doppler) hvis kraftmodellbaserte baneglid er selvkonsistenskontrollert til 0,77 m RMS over en 30-minutters krummende LEO-passering som inkluderer et GNSS-avbrudd på 120 sekunder (et filterkonsistenstall, ikke en validering mot en ekstern uavhengig referanse: denne navigatoren forblir MODELLED); og en full 17-tilstands tett koblet GNSS/INS UKF (posisjon, hastighet, holdningsfeil, akselerometer- og gyrobiaser, klokkebias og -drift) hvis kvante-CAI-dødregning går gjennom et avbrudd på 120 sekunder på kaldatom-akselerometerets utledede hastighetsrandomvandring.
Banebestemmelse Gjenvinning av en banetilstand [r, v] fra avstandssporing fra bakkestasjoner, ved å sette sammen to-legeme + J2-kraftmodellen og RK4-integratoren med en Gauss–Newton-batch-korrektor (determine_orbit_batch, under en meter / mm·s⁻¹ fra støyfrie avstander, ~2 m ved et støygulv på 5 m) og en sekvensiell unscented-filtervariant (determine_orbit_sequential).
Observerbarhet og estimeringsteori Et generelt, gjenbrukbart Fisher-informasjon / Cramér–Rao-lag (src/fim.rs): informasjonsmatrisen M = HᵀWH, den nedre Cramér–Rao-grensen, observerbarhetsrang og nullrom for datumdefekt (Moore–Penrose-pseudoinvers), og D/A/E/T-optimale forsøksutformingsskalarer fra en symmetrisk Jacobi-egenløser. Validert: egenverdier mot numpy.linalg.eigh, CRLB-kovariansen mot σ²(XᵀX)⁻¹ via numpy.linalg.inv, og GNSS-DOP fra informasjonsmatrisen, alt stemt til 1e-9 (tests/fim_observability_reference.rs), og i tillegg kryssjekket mot de lukkede grensene til Kay (1993) med Monte Carlo-oppnåelse av CRLB. Det ligger under DOP-motoren, CRLB for passiv geolokalisering og månens observerbarhetsteorem for absolutte stasjoner (nedenfor).
Månen og cislunart rom En sirkulær begrenset tre-legemers (CR3BP)-propagator for jord–måne i det roterende systemet, med bevart Jacobi-konstant og alle fem Lagrange-punktene (src/cr3bp.rs), nå med en 6×6 tilstandsovergangsmatrise (STM) og en enkeltskyting differensialkorrektor (cr3bp_jacobian, propagate_state_stm, differential_correct_halo) som gir virkelig periodiske halo / NRHO-baner (nesten rettlinjet halobane): STM-en er validert mot endelige differanser, korrigerte baner lukkes til maskinpresisjon, og å så den publiserte apolune-tilstanden gjengir den sørlige L2 9:2 NRHO (L2 = det andre Lagrange-punktet for jord–måne; Gateway-banen) med periode ≈ 6,57 d / perilune ≈ 3 250 km, i tråd med de publiserte ≈ 6,56 d / ≈ 3 370 km (en CR3BP-løsning, sirkulær og uten Sola, ikke validert mot en reell LANS (Lunar Augmented Navigation Service)/Gateway-efemeride; den selenosentriske MCI/MCMF-transformasjonen (Moon-centred inertial / Moon-centred, Moon-fixed) av den korrigerte banen er en oppfølger); pluss LunaNet / LNIS (LunaNet Interoperability Specification) cislunar PNT-geometri (MCI↔MCMF-reduksjon, selenografiske koordinater) med en ARAIM-passering ved månens sørpol som ærlig viser integritetsgapet: en σ_URE (brukeravstandsfeil) på ~30 m driver beskyttelsesnivået langt over en alarmgrense på 50 m (src/lunar.rs, scenarios/lunanet-araim.toml); og en DOP-forsterkning med overflatebeacons (src/lunar_beacon.rs) som viser hvordan noen få innmålte avstandsmålende overflatebeacons gir de siktlinjeradene med lav elevasjon og bred asimut som et rent overhead-sett med bare bane mangler, og som kollapser den dårlig betingede sørpolare GDOP og, via et rot-sum-kvadrat-feilbudsjett, den realiserte posisjonsnøyaktigheten i meter (gjenbruker den gnss_lib_py-validerte DOP-kjernen og den lukkede formen for sikt over en luftløs horisont; analysen av presisjonsfortynning er skrevet opp i arXiv:2607,06212).
Månens PNT-pakke En navigasjonspakke for Månen/cislunar lagt på CR3BP-kjernen, hver en kjørbar kind: Lunar Coordinate Time (lunar-time-offset, src/lunar_time.rs, den sekulære LTC/TCL − TT-raten (LTC = Lunar Coordinate Time; TCL = den franske formen, Temps-Coordonnée Lunaire) fra egenpotensialforskjellen + kinetisk ledd, rapportert med det publiserte båndet 56–59 µs/dag); et geodetisk VLBI-forsinkelsesobservabel for Månen (very-long-baseline interferometry) (lunar-vlbi, src/lunar_vlbi.rs, en nærfelts to-avstandsdifferanse-forsinkelse + rate for jordgrunnlinje, kryssjekket mot den planbølge-Δ-DOR (delta differential one-way ranging) i samme kodebase i fjernfeltsgrensen, med partiellene bekreftet ved endelige differanser); en felles flerteknikk-OD + klokke-batchestimator (lunar-joint-od-clock, src/lunar_combination.rs, en Gauss–Newton-tilpasning som fusjonerer VLBI + månelokale avstander + avstander mellom satellitter) som bærer et Fisher-informasjon-observerbarhetsresultat: intern avstandsmåling alene etterlater en datumdefekt for stivt legeme med seks frihetsgrader, så en overflatestasjons absolutte posisjon er uobserverbar til en jordramme-binding legges til: en VLBI-forsinkelse for jordgrunnlinje gjenoppretter observerbarhet for en tynn konstellasjon og skjerper Cramér–Rao-grensen for en rik, der det absolutte datumet lukkes ved tre ikke-kollineære jordstasjoner (observerbarhetsresultatet er skrevet opp i arXiv:2607,02566); realisering av referansesystem (lunar-frame-realisation, src/lunar_frame_realise.rs, en 7-parameter Helmert-datumtilpasning + IAU 2015 WGCCRE-orienteringsbinding; WGCCRE = IAU Working Group on Cartographic Coordinates and Rotational Elements); en Moonlight/LCNS-klasse tjenestevolum-analyse (LCNS = Lunar Communications and Navigation Services; moonlight-service-volume, src/lunar_service.rs, DOP / dekning / tilgjengelighet + en generalisert ARAIM HPL/VPL-envelope for Månen (horisontalt/vertikalt beskyttelsesnivå), som gjenbruker den gnss_lib_py-validerte DOP-kjernen og LunaNet-maskineriet med σ_URE≈30 m); differensiell PNT for Månen (lunar-differential-pnt, src/lunar_dpnt.rs, en månemessig analog til differensiell GNSS / satellittbasert forsterkningssystem (SBAS): eksakt felles klokkekansellering + førsteordens romlig dekorrelasjon mot grunnlinje, som gjenbruker SBAS-beskyttelsesnivået i DO-229E; DO-229E er RTCA-standarden (tidligere Radio Technical Commission for Aeronautics) for minimum operasjonell ytelse for SBAS-mottakere); og en LunaNet/IOAG-tilpasset interoperabilitetseksport (IOAG = Interagency Operations Advisory Group; lunar-interop-export, src/lunar_interop.rs, CCSDS-OEM (Orbit Ephemeris Message) + rundtur i månetidsskala i IAU 2015 månelegemesystemet, pakket i KIF-konvolutten). Evidensnivåene per del står i verifikasjonsmatrisen: Lunar Coordinate Time, den felles OD + klokke-estimatoren, realiseringen av referansesystem og tjenestevolumgeometrien er VALIDATED (hver mot den uavhengige referansen raden navngir, det samme gjelder kjernestien til VLBI-forsinkelsen); VLBI-observabelen, observerbarhetsresultatet for datumdefekt, differensiell PNT og interoperabilitetseksporten er MODELLED. Parametrene er illustrative verdier fra offentlige kilder, ikke validert mot reell VLBI/Gateway-sporing, ikke tilknyttet eller anbefalt av noe byrå, ingen påstand om TRL (technology readiness level) eller arv.
PNT i dypt rom og ved Mars En åpen radiometrisk navigasjonsmotor: iterativ lystid + relativistisk Shapiro-forsinkelse, to-/én-/tre-veis Doppler og avstand (Moyer to-ben), koherente transponderomvendingsforhold, regenerativ/PN-avstandsmåling (pseudo-noise) (CCSDS 414, standarden for pseudo-noise-avstandsmåling), og Δ-DOR i himmelplanet (CCSDS 506, Delta-DOR-standarden), med solplasma-/tropo-/ionomedier; CCSDS-TDM (503) parsing og utskrift av sporingsdatamelding; et redusert-dynamisk kvadratrot-informasjonsfilter (RTN, radial, transversal, normal, empiriske akselerasjoner + en klokke med 3 tilstander om bord + atmosfærisk luftmotstand fra Mars) som gjør banebestemmelse for Mars-LMO til ≈ 0,2 m i en syntetisk lukket sløyfe; en felles enveis + toveis fusjons-estimator; en flerlegemedynamikkkjerne (Body{μ, re, zonals, gravity, IAU-pole}, Mars GMM-3 (Goddard Mars Model 3)-gravitasjon, et IAU kroppsfast Mars-system, en koblingsbar EphemerisProvider-søm, todelte Julian-datoer + TT↔TDB (Barycentric Dynamical Time)); og relé-PNT-scenarioet mars-pnt (en MARCONI areostasjonær relékonstellasjon) med en ende-til-ende GSE-ytelsessimulator (GSE = bakkestøtteutstyr) (geometri → lenkebudsjett → observabler → SRIF → kovarians). Simuleringsvalidert (kovarians-/lukket-sløyfe-kvalitetsmål); Mars-dynamikken med Sola i sentrum er kryssjekket mot JPL DE440 (137 m @ 1-dagers bue, xval/anise-mars-od). Validering mot reelle DSN/ESTRACK-sporingsdata står på veikartet.
Solsystemet og PNT for hvilket som helst legeme En kjernefri efemeride for hele solsystemet (src/ephem.rs, src/ephem_provider.rs): hver planet fra JPL Standish Kepler-elementer (Tabell 1, 1800–2050 e.Kr.; tabell 2a/2b, 3000 f.Kr.–3000 e.Kr.) med hver plantes publiserte nominelle feil, jorden og Månen delt av den lunare serien, og Phobos, Deimos, Io, Europa, Ganymedes, Callisto og Titan fra JPL midlere elementer og IAU (International Astronomical Union) rotasjonsmodellen; hvilket som helst legeme relativt til et annet i ICRF (International Celestial Reference Frame). Body bærer nå GM (gravitasjonsparameter), radier, J2 (den andre sonale harmoniske) der den er publisert og IAU-polen og nullmeridianen for atten legemer. Typen solar-system rapporterer posisjoner, hastigheter, konstanter, lystid og én-/toveis avstand mellom to hvilke som helst legemer (den eksisterende radiometriske lystidsløseren, med solens Shapiro-forsinkelse) og et banespor per legeme, nok til å tegne et interaktivt solsystem; typen body-pnt plasserer en orbiter eller en lander rundt hvilket som helst legeme (scenarios/mars-orbit-pnt.toml, scenarios/europa-surface-pnt.toml) med en lokal Walker-konstellasjon, maskineriet for presisjonsfortynning og Gauss–Newton, og en dypromsavstand fra jorden. Validert mot JPL Horizons (DE441, JPL Development Ephemeris 441): Merkur–Saturn og jorden fra tabell 1 innenfor to ganger den nominelle feilen (verst 1,87×), alle åtte planetene fra tabell 2a/2b (verst 1,71×), og lystiden jorden–Mars/Jupiter. Modellert: Uranus og Neptun fra tabell 1 (2,0× og 5,2× den oppgitte feilen mot DE441), Pluto, månene og navigasjonsresultatene fra body-pnt.
Fusjonert MEO + LEO PNT src/leo_fusion/: systemuavhengig LEO-posisjonering, -navigasjon og -tidssynkronisering over en vilkårlig konstellasjon (Walker-skall, elementsett, GNSS-forhåndsinnstillinger) og et vilkårlig signal (bærebølge, brikkerate, C/N0-envelope, avstandsfeil for signal i rommet), med valgfrie forhåndsinnstillinger i én fil som bærer kildene sine (Xona Pulsar X1/X5, Iridium STL, Starlink-signaler ved anledning, CentiSpace, et representativt C-bånd-system, ATOMIC-efemeridemodellen uten klokke). leo-pvt: Doppler-posisjonsbestemmelse i batch fra avstandsrate (én og flere satellitter, tilstander for klokkedrift og hastighet, geometri for ett enkelt overflyvning langs/på tvers av sporet og speilløsningen), felles GNSS + LEO vektet minste kvadraters metode med intersystembiaser per system og sigmaer per signal oppgitt av kalleren, DOP mot antall LEO-satellitter, dekning ved polene og i Arktis og LEO-tidsoverføring til UTC mot C/N0 og oscillatoren. leo-ppp: et PPP-EKF (presis punktposisjonering, utvidet Kalman-filter) med flyttall, kun med GNSS og med LEO, konvergenstiden og en kjikvadrat-NEES-konsistenstest. ntn-positioning: 5G-posisjonering i ikke-terrestriske nett fra Cramér-Rao-grensen for båndbredden. Validert: LEO-Doppler-envelopen mot de publiserte Iridium- og Xona-tallene. Modellert: resten, med PPP-trenden sammenlignet med Li et al. (2019) – se docs/LEO-PNT-FUSION.md.
Integritet Snapshot- og løsningsseparasjons-RAIM (ARAIM-stil) – autonom integritetsovervåking i mottakeren – med horisontale/vertikale beskyttelsesnivåer (HPL/VPL), feildeteksjon og -eksklusjon og Stanford-integritetsdiagrammer; et eksplisitt beskyttelsesnivå med integritetsrisikobudsjett etter multiple-hypothesis solution separation (MHSS), inkludert den konstellasjonsomfattende feilmodusen for to eller flere konstellasjoner (EU (Den europeiske union) ARAIM / DO-316, RTCA-ytelsesstandarden for GPS-utstyr i fly med flybasert augmentering), kjørt på et reelt GPS + Galileo-snapshot (scenarios/araim-gps-galileo.toml). Beskyttelsesnivået bruker den ensidige projeksjonen av nominell bias b_k = Σ_i|s_i|·b_nom per feilmodus og integritets-sigmaen σ_URA (brukerens avstandsnøyaktighet; skilt fra nøyaktighets-sigmaen σ_URE, brukerens avstandsfeil) fra Integrity Support Message – se docs/ARAIM_REFERENCE.md. Deteksjonskjernen (χ²-/ikke-sentral-χ²-/normalterskler og K-multiplikatorer) er eksternt validert mot SciPy over 171 tilfeller (tests/raim_reference.rs); geometrien gjenbruker DOP-kjernen som er validert mot gnss_lib_py. Selve budsjettfordelingen av ARAIM MHSS-integritetsrisikoen har ingen publisert numerisk uavhengig referanse og forblir ærlig modellert.
Utvidelse (SBAS) SBAS-/WAAS-beskyttelsesnivåer (WAAS = Wide Area Augmentation System) i DO-229E-formen med vektet minste kvadraters metode (K-faktorer for presisjonsinnflyging og enroute) og den ionosfærefrie L1/L5-tofrekvenskombinasjonen (L1 og L5 er to sivile GPS-signalbånd; IS-GPS-705, GPS-grensesnittspesifikasjonen for L5-signalet, γ₁₅ ≈ 1,793) som ligger til grunn for DO-316 — src/sbas.rs. Algoritmen for beskyttelsesnivå er eksternt validert mot RTKLIB SBAS-PL-forgreningen (RTKLIB = det åpne biblioteket for sanntids kinematisk posisjonering; PL = beskyttelsesnivå) (zsiki/rtklib_ws waasprotlevels(), Siki & Takács 2017, DO-229D – forrige revisjon av DO-229 – vedlegg J) kjørt på reelle EGNOS-data (European Geostationary Navigation Overlay Service), og gjengir HPL med mindre enn 2e-3 m avvik (tests/sbas_reference.rs); gLAB (GNSS Laboratory-verktøysuiten) v6.0.0 bekreftet den samme konvensjonen.
Klokke og tidssynkronisering Kalman-holdover med to tilstander (kovarians på Joseph-form, NIS/NEES – normalisert innovasjon i kvadrat / normalisert estimeringsfeil i kvadrat – konsistenshelse); stabilitet i Allan-familien (ADEV / MDEV / TDEV / HDEV / MTIE – Allan-, modifisert Allan-, tids- og Hadamard-avvik og maksimal tidsintervallfeil) med konfidensintervaller som er spesifikke for støytype og en full potenslovtilpasning med fem koeffisienter etter IEEE-1139 (IEEE Std 1139, definisjonene fra Institute of Electrical and Electronics Engineers for frekvens- og tidsmetrologi) — estimatorene er validert på reell maskinvare mot Stable32: en reell primærstandard med cesium 5071A mot en hydrogenmaser (556 990 fasesampler, 16 midlingsfaktorer, OADEV/OHDEV – overlappende Allan-/Hadamard-avvik – til 1e-3; tests/cs5071a_reference.rs) og den kanoniske Stable32 PHASE.DAT-regresjonsserien (139 midlingsfaktorer, OADEV/MDEV/TDEV til 1e-3; tests/phasedat_reference.rs); estimatorene ADEV/MDEV/TDEV og telekom-målet for vandring MTIE er i tillegg kryssjekket mot det uavhengige biblioteket allantools 2024,06 til < 1e-9 på NIST SP 1065-serien (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs); geometriske korreksjoner (Sagnac, GNSS common-view); og de operative overføringsmetodene — TWSTFT (toveis tids- og frekvensoverføring via satellitt) med BIPMs (Det internasjonale byrå for mål og vekt) lukkede Sagnac-form, GNSS common-view, PPP-tidsoverføring (presis punktposisjonering) uten ionosfære, en optisk fririomsforbindelse med turbulensscintillasjon og en klokkeensemble-tidsskala (papirskala) med invers varians som ligger under den beste bidragende klokken. En klokke-holdover-kalkulator for GNSS-nektet miljø (src/holdover.rs) gir den lukkede van Loan-veksten i feil under frittløp som en invertering fra holdover til terskel — hvor lenge en klokke går fritt før tidsfeilen overskrider budsjettet — over representative klassiske og kvanteklokkeklasser; modellert (kryssjekket mot den flertrinns kovariansrekursjonen clock_state), og ærlig på at for en svært stabil klokke settes holdover til en stram terskel av den antatte støygulvet ved lang tau, ikke av den siterte ADEV-en. Et betinget tidsbeskyttelsesnivå (src/tpl.rs) utvider holdover til spoofing: en grense for den uoppdagede tidsfeilen, gitt en uavhengig kryssjekk, som setter sammen et k-sigma-gulv for monitoren, van Loan-variansen under frittløp over deteksjonsforsinkelsen og en CUSUM-tid til alarm (kumulativ sum). Kalibrert på en reell innspilt spoof (JammerTest 2024) og kan gjengis via cargo run --example tpl_jammertest; MODELLED sammensetning (ikke noe integritetsrisikobudsjett per time), betinget av deteksjon — det finnes ingen endelig ubetinget grense.
Målingsdomenet i GNSS Fremover-syntese av pseudoavstand / Doppler med ionosfære fra Klobuchar (kringkastet) og IONEX / TEC-rutenett (IONosphere map EXchange-format / totalt elektroninnhold; målt) — inkludert en IONEX-filparser, tidsinterpolasjon mellom kart og slant-obliquity-avbildningen i tynt skall — troposfære fra Saastamoinen + Niell og snapshot-RAIM (HPL/VPL).
Robusthet Jamming i linkbudsjett (J/S → effektiv C/N₀ → tap av lås — forhold mellom jammer og signal, forhold mellom bærebølge og støytetthet — der spektralseparasjonsfaktoren mot jamming Q nå er utledet fra de faktiske effektspektrene til signalet og jammeren via src/navsignal.rs — Q = 1/(R_c·κ), kryssjekket i CI mot den tidligere representative konstanten); en stokastisk tidsspoof-detektor (Neyman–Pearson / χ²₁-energitest med lukket form og Monte Carlo for P_fa/P_md og en sikkerhetskvalitetsmåling (FoM) på 1 − P_md); og en flerlags spoof-detektor som fusjonerer en RAIM-konsistensparitetstest (med blindsonen for felles modus modellert ærlig), en RF-AGC-effektmonitor (automatisk forsterkningsregulering) og en monitor for signalkvalitet (SQM — overvåking av signalkvalitet, tidlig minus sen); og et feilbudsjett for kvanteinertial dødregning (QuantumNavBudget, src/inertial/quantum_imu.rs) som setter sammen hastighetsrandomvandringen med hvit støy fra kaldatominterferometeret med restbias (kryssjekket mot den uavhengige AccelModel-integratoren) og skalafaktorfeil til et mål for posisjonsdrift over holdover — den inertiale tvillingen til klokkens holdover. En rammeverkjustert robusthetsscoremotor (src/resilience/) avbilder en arkitekturs simulerte oppførsel på delscorer per dimensjon over Kshanas egne sju robusthetskategorier (ikke DHS-termer), tilpasset US Department of Homeland Security Resilient PNT Conformance Framework, og studerer deretter beslutningsstabiliteten til en enkelt sammensatt score eller et modenhetsnivå under et Dirichlet-vektingssimpleks og et ensemble med fem trusler — Kendall-τ-rangeringsustabilitet, hyppighet for bytte av vinner på topp 1 og diversitetskollaps i felles modus (Hill-N2), med en integritetshashet sikringsrapport (35 håndutledede tester mot uavhengig referanse). Kan gjengis via cargo run --example resilience_report; MODELLED syntetiske arkitekturer, en egenvurdering justert mot RPCF v2.0, ikke en sertifisering. Se docs/RESILIENCE-CROSSWALK.md.
Passiv RF-geolokalisering TDOA/FDOA-geolokalisering av sendere (ankomsttidsforskjell / ankomstfrekvensforskjell; src/geolocation.rs) — finn en jammer eller spoofer (eller en tilfeldig kilde for omvendt PNT) fra hyperboloider av ankomsttidsforskjell over et mottakernettverk, løst med minste kvadraters metode etter Gauss–Newton; ved å legge til ankomstfrekvensforskjell med bevegelige mottakere finnes senderens posisjon og hastighet samtidig, med Cramér–Rao-grensen for posisjonskovariansen utledet fra nettverksgeometrien. MODELLED (interne konsistenskontroller mot uavhengig referanse: runder fra fremover til invers, identiteten J·CRLB = I, monotoni i GDOP og at estimatoren når sin egen CRLB under Monte Carlo) — en punktkildemodell med fri sikt, uten ledd for flerveis / NLOS (ikke fri sikt), mottakerklokkebias eller refraksjon.
Navigasjonssignal og kodesporing Signalnivået mellom linkbudsjettet og måledomenet (src/navsignal.rs): effekttetthetsspektre (PSD) med enhetsareal for BPSK-R(n) (binær faseskiftmodulasjon med rektangulære brikker) og sinus-BOC(m,n) (binær offset-bærebølge); den spektrale separasjonskoeffisienten (SSC) κ = ∫ G_s·G_i df, som utleder Q mot jamming som jamming-modellen bruker (Q = 1/(R_c·κ)) fra de faktiske signal- og jammerspektrene i stedet for en representativ konstant; den effektive (Gabor-)båndbredden (BOC > BPSK — målet for avstandsinformasjon / Cramér–Rao); den termiske støyjitteren i koherent tidlig–sen DLL-kodesporing (DLL = delay-lock loop; Kaplan & Hegarty; ~submeter for C/A — GPS-koden for grov innhenting — ved 45 dB-Hz); og envelopen for flerveisfeil (koherent EML, tidlig minus sen — undertrykkelse med smal korrelator). Validert mot analytiske ankerpunkter i lukket form (BPSK egen-SSC = 2/(3·R_c), PSD-er med enhetsareal, submeter C/A-jitter). Dette er analyse av signal-ytelse, ikke maskinvareutforming av antenne / RF-nyttelast (en rolle for en nyttelastpartner).
Interoperabilitet RINEX-3-innlesing av kringkastet efemeride for flere GNSS (GPS, Galileo, QZSS — Japans Quasi-Zenith Satellite System —, BeiDou MEO/IGSO — middels høy jordbane / skråstilt geosynkron bane — via IS-GPS-200, GPS-grensesnittspesifikasjonen; GLONASS, Russlands Global Navigation Satellite System, via PZ-90 — det russiske datumet Parametry Zemli 1990 — RK4 med tilstandsvektor) som kan brukes som konstellasjonskilde (RINEX inn, PNT-geometri ut); en RINEX-3-parser for observasjoner (pseudoavstand, bærebølgefase, Doppler, signalstyrke; observasjonsoppsettet 4,00 forventes å kunne parses, men er ikke testet, og RINEX 4-navigasjonsfiler avvises med navns nevnelse i stedet for å dekodes feil) som nå mater en løser for enkeltpunktsposisjonering (SPP) (pvt) — reelle kodeobservasjoner inn, en reell mottakerposisjon ut, validert på IGS-data; en lese-/skrivefunksjon for presis efemeride i SP3-c/d med Lagrange-interpolasjon av 9. orden; og CCSDS OEM 2,0 + OMM-eksport (Orbit Mean-elements Message) for flydynamikkverktøy (GMAT, Orekit, STK — Systems Tool Kit); og parsing og utsending av CCSDS-TDM (503) sporingsdatameldinger for radiometrisk sporing i dypt rom.
Oppdragsanalyse (systemutvikling) Førsteordens budsjetter for oppdragsutforming, hvert et kjørbart slag: oppskytings- og stigegeometri med to legemer (launch-window — oppskytingsazimut sin Az = cos i/cos lat, minimum inklinasjon, bonus fra jordrotasjonen, Δv for planendring med dogleg, daglige muligheter; src/launch.rs); en ballistisk innstigningskorridor etter Allen–Eggers (reentry — maksimal retardasjon, hastighet/høyde ved maksimal g, hastighet ved maksimal oppvarming; src/reentry.rs); dekningsgeometri for jordobservasjon (eo-coverage — svatbredde / GSD i nadir (bakkeoppløsning) / tilgang utenfor nadir / revisitt via SMAD-romtrekanten (Space Mission Analysis and Design); src/eo_payload.rs); et 3-DOF-budsjett for holdning og pekefeil (tre frihetsgrader; attitude-budget — gravitasjonsgradientmoment i verste tilfelle + RSS-pekebudsjett (kvadratroten av kvadratsummen); src/attitude_budget.rs); prediksjon av bakkestasjonsoverflyvninger (passes — AOS/TCA/LOS, signalinnhenting / tid for nærmeste passering / tap av signal, maksimal elevasjon, tilgangstid; src/passes.rs); og et enveis linkbudsjett over linkligningen i CCSDS 401 / DSN 810-005 (CCSDS-standarden for radiofrekvens og modulasjon / håndboken for linkutforming i Deep Space Network; link-budget — FSPL (fririomstap), C/N₀, Eb/N₀ (energi per bit i forhold til støytetthet), margin, lukking; src/linkbudget.rs). MODELLED analytiske førsteordens budsjetter — laget før maskinvare, under STK/GMAT/Basilisk, ikke en erstatning for 6-DoF eller radiometri.
Beslutningsanalyse og avveining (MCDA) En full flerkriterie-beslutningsanalyse (MCDA)-suite (src/mcda/) som dekker alle fire metodefamilier — verdiaggregering (WSM, WPM, WASPAS — vektet summodell, vektet produktmodell, vektet aggregert vurdering av sumprodukt), avstand til ideal (TOPSIS, Technique for Order of Preference by Similarity to Ideal Solution), kompromissprogrammering (VIKOR, fra serbisk for flerkriterieoptimering og kompromissløsning) og rangering (PROMETHEE II, Preference Ranking Organization Method for Enrichment of Evaluations; ELECTRE I, fra fransk for eliminering og valg som uttrykker virkeligheten), pluss forholdssystemet MOORA (Multi-Objective Optimization on the basis of Ratio Analysis) og proporsjonale COPRAS (Complex Proportional Assessment) — med AHP (Analytic Hierarchy Process), prioritetsvekting ved parvis sammenligning (konsistensforhold), en Pareto-front av ikke-dominerte løsninger, sensitivitetsanalyse av vekter og nyttescoring med flere attributter. De ni aggregatorene gjengir de uavhengige tredjepartsbibliotekene pymcdm (WSM / WPM / WASPAS / MOORA / TOPSIS / VIKOR / PROMETHEE II) og pyDecision (ELECTRE I, COPRAS) til < 1e-9, og AHP-prioritetsvektoren + konsistensforholdet stemmer overens med Saatys tabell over tilfeldig indeks og den principale egenverdiløseren i SciPy/LAPACK til < 1e-9 (tests/mcda_*_reference.rs). VALIDATED — beslutningslaget under avveiningsmotoren.
Rommiljø En miljømodell for romvær (space-weather, src/space_weather.rs): indekser for sol- (F10.7 / sentrert F10.7a over 81 dager — solens radiofluks på 10,7 cm) og geomagnetisk aktivitet (Kp, den planetariske K-indeksen, med den definisjonsmessige Kp↔ap-tabellen — ap er dens lineære planetariske amplitude), den eksosfæriske Jacchia-1971-temperaturen de driver (validert mot publiserte verdier for solminimum/-middel/-maksimum) og den aktivitetskorrigerte mot den statiske nøytraltettheten i termosfæren i høyden — solsyklusavhengigheten i tettheten som den statiske USSA76-atmosfæren (US Standard Atmosphere 1976) utelater. MODELLED: en kalibrert førsteordens kobling til skalahøyden, ikke en datavalidert atmosfære (NRLMSISE — modellen for eksosfæren fra US Naval Research Laboratory med massespektrometer og inkoherent spredningsradar).
Evaluering og avveining for maskinlæring En testbenk for evaluering av deteksjon av RF-forstyrrelser (impairment-eval, src/impairment_eval.rs): et merket, parameterforankret syntetisk korpus (nominell / jamming / tidsspoof / posisjonsspoof / flerveis), en detektoragnostisk ROC/AUC-løype (mottakerens driftskarakteristikk / areal under kurven) som scorer en vilkårlig detektor (energi | agc | sqm | paritet | fusjonert) med Pd per klasse (deteksjonssannsynlighet) ved en Pfa-mål (sannsynlighet for falsk alarm), og optimismegapet mellom i og utenfor fordelingen (modus for fordelingsskift). Dessuten en kvante-mot-klassisk PNT-avveining (quantum-trade, src/quantum_trade.rs) som tallfester fordelen i tid/inertial holdover for en kandidatklokke fra en målt ADEV-kurve mot en klassisk grunnlinje, med forbeholdet om gulvet ved lang τ ført på artefakten og en konvolutt for robusthet mot tid i GNSS-nektet miljø. Evalueringsmetrikkene (AUC / forvekslingsmatrise / Pd-Pmd, der Pmd er sannsynligheten for utelatt deteksjon) er validert til eksakt likhet med scikit-learn 1.9.0 — også på reell ESA OPS-SAT-telemetri (anomalideteksjonsdatasettet OPSSAT-AD, Ruszczak et al. 2025, CC BY 4,0 — Creative Commons Attribution 4,0), der Kshanas Mann–Whitney ROC AUC gjengir scikit-learns roc_auc_score til < 1e-9 på det tilbakeholdte testutvalget og en gjennomsiktig toppteller-detektor skiller de merkede anomaliene ved AUC ≈ 0,85 (tests/opssat_ad_reference.rs) — og avveiningsmotorens numeriske kjerner (ADEV NNLS — ikke-negativ minste kvadraters metode — tilpasning, χ²-konsistensbånd, van Loan-klokke Q) mot scipy 1.17.1; tallene for enhetsfordel som er bygget oppå forblir MODELLED driftskarakteristikker — aldri felt- eller IQ-data (sampler i fase/kvadratur), ingen dom om bra/dårlig. På testbenken bygger en dypere studie av optimismegapet (src/impairment_study.rs, impairment_ml.rs, eval_stats.rs) som scorer et panel med 13 detektorer (energi/AGC/SQM/paritet pluss detektorer med logistisk regresjon og enlags skjult MLP — flerlags perceptron — med seed), tilpasser skaleringslover i og utenfor fordelingen med en permutasjonsnull og lærer en leave-one-out-prediktor for degradering utenfor fordelingen fra statistikk i fordelingen (cargo run --example optimism_study). En frontend for programvaredefinert mottaker (src/sdr.rs — rå IQ/IF (mellomfrekvens) → korrelatorens tidlig-/prompt-/sen-uttak → SQM) og adaptere for innlesing av reelle data (src/realdata/ — RINEX, u-blox UBX (u-bloxs binære protokoll), GnssLogger, JammerTest, Yunnan, SatGrid) lar de samme detektorene kjøre over opptak som leveres lokalt (ingen datasett er sjekket inn). Kartet over krysningspunkt for robusthet, kvante mot klassisk, under parameterusikkerhet (src/crossover.rs; cargo run --bin crossover_study) regenererer krysningsstudiene for inertial og klokke bak figurene under Resultater.
Demonstrator for kvanteaktivert PNT Tre kjørbare, MODELLED bruksområder bak den åpne motoren, som hver gir ærlig TradeEvidence + en post om representativitet / gap mot flyging (src/representativeness.rs): pålitelig kvantetidsoverføring (quantum-time-transfer, src/timetransfer_chain.rs — et ende-til-ende-budsjett for optisk gitterklokke + fotonisk link mot CSAC (atomklokke i brikkeformat) + toveis RF, med et gjenbrukt tidsbeskyttelsesnivå, en sikkerhets-FoM mot forsinkelses-/replay-angrep (1 − P_md) og klokkeanomalideteksjon + CUSUM-latens); GNSS-fri kvantenavigasjon (quantum-gnss-free-nav, src/quantum_nav_od.rs — en inertial frittgang med kaldatominterferometer mot et INS i navigasjonsklasse over et GNSS-bortfall, ærlig på at uten ekstern posisjonsbestemmelse er akselerometerbiasen uobserverbar, slik at feilen fortsatt vokser); og feil-/anomalideteksjon i kvantesystemer (quantum-anomaly-detect, src/quantum_faults.rs — en merket feilkatalog med en ROC AUC med bootstrap-konfidensintervall fra den eksternt validerte eval_stats og en minste detekterbare feil ved en fast falsk-alarmrate). Et felles feilmodellbibliotek for kvanteenheter (src/quantum_devices.rs) og en samlet løype for avveining mellom kvante og klassisk (src/qtrade.rs) ligger under dem. De validerte kjernene de bygger på (evalueringsmetrikker mot scikit-learn, avveiningskjerner mot scipy) gjenbrukes; tallene for enhetsfordel som er bygget oppå forblir MODELLED — illustrative offentlig tilgjengelige parametere for enheter/linker, modellerer klassen, ingen TRL / flyarv / sertifisering, ingen støtte fra noe byrå.
Gjennomtenkt ingeniørkunst og integritetspåvirkning Et perspektiv på avkastning på kostnad per dekning (ROI) (src/frugal.rs) — kostnad per enhet levert dekning for en arkitekturavveining — og en avbilding fra utelatt deteksjon → integritetspåvirkning (src/integrity_impact.rs) som gjør en monitors rate for utelatt deteksjon om til dens bidrag til integritetsrisikoen. MODELLED budsjetter som beslutningsstøtte, additive.
Utveksling av artefakter Kshana Interchange Format (KIF) (src/interchange.rs) — en versjonert, selvbeskrivende konvolutt rundt et scenarioresultat med slag, skjemaversjon og MODELLED/VALIDATED-merkelapper, slik at en lagret artefakt forblir selvdokumenterende og eldre konvolutter forblir lesbare med fremoverkompatibilitet.

Hver funksjon er tilgjengelig som et Rust-API, et kjørbart scenario kind eller begge deler. Modenhet per funksjon — validert, kjørbar eller bibliotek — føres i docs/CAPABILITY.md. En maskinkontrollert verifikasjonsmatrise (src/verification.rs) gjengir kryssreferansen krav → modul → test → uavhengig referanse → status, med enhetstestede ærlighetsinvarianter som kun tillater merkelappen validert der en uavhengig ekstern referanse støtter den — og som registrerer maskinvare- og PA-funksjonene (produktsikring) som Kshana bevisst ikke tilbyr.

De fire sensorpakkene, slik de først ble publisert (resultater)

Resultater#

Hvert scenario sammenligner en kvantesensor med sin klassiske motpart gjennom et GNSS-bortfall på ~1,8 t. Tallene kan gjengis (scenario + seed + version).

Hva kvantesensorer gir når GNSS er borte, scenario for klokkens holdover: kvante holder 6600 s autonomi mot 2610 s klassisk, langt lavere tidsfeil og 100 % mot 95,6 % tilgjengelighet
Hva kvantesensorer gir når GNSS er borte — clock-holdover · seed 42 · tegnet med motor 0.40.0, og hver figur ovenfor kontrolleres på nytt mot gjeldende motor ved hvert bygg av tests/published_figures_still_reproduce.rs · SVG

Fordelen er avhengig av bortfallets varighet og av vibrasjon, med et eksplisitt balansepunkt der klassisk vinner — vist ærlig over stigen for teknologisk modenhet (tallene for optiske klokker er mål for bakkedemonstratorer; ingen strontium-optisk klokke har fløyet):

Krysningspunkt for klokkens holdover, kvante mot klassisk, over stigen for teknologisk modenhet, med konfidensbånd
Varmekart over inertialfordelen, kvante mot klassisk, over bortfallets varighet og vibrasjon, med en balansekontur der klassisk vinner
Krysningspunkt for robusthet, kvante mot klassisk — TRL-stige for klokkens holdover (øverst) · kart over inertialfordel med balansekontur (nederst). Kan regenereres via cargo run --release --bin crossover_study.

Inertial dødregning: posisjonsfeil under et GNSS-bortfall — kvantesensoren (kaldatom) holder seg nær spesifikasjonslinjen mens sensoren i navigasjonsklasse divergerer til titalls kilometer
Posisjonsfeil ved dødregning under et GNSS-bortfall: kvantesensoren (blå) holder seg flat nær spesifikasjonen; den klassiske sensoren (rød) divergerer til titalls kilometer. Generert av Kshana fra scenarios/imu-deadreckoning.toml.

Pakke Scenario Kvante Klassisk
1 — Klokkens holdover clock-holdover.toml (spesifikasjon 20 ns) den optiske klokken holder hele bortfallet CSAC bryter spesifikasjonen midt i bortfallet
2 — Inertial dødregning imu-deadreckoning.toml (spesifikasjon 100 m) kaldatom: ~41 m, holder hele bortfallet navigasjonsklasse: bryter etter ~350 s → titalls km
3 — Tidsoverføring (optisk inter-satellittlink) timetransfer.toml optisk: ~0,3 mm avstandsmåling RF (TWSTFT): ~150 mm avstandsmåling
4 — Hybrid fusjon (sluttsteinen) hybrid-pnt.toml full posisjon + tid for hele bortfallet begrenset av posisjonen ved ~350 s

Sluttsteinen viser fusjonstesen: optisk tidsoverføring mellom satellitter holder selv en klassisk klokke låst og isolerer den inertiale sensoren som det svake leddet i den klassiske pakken — altså kvanteinertial og optisk tidssynkronisering sammen.

Klokkens holdover: fasefeil under et GNSS-bortfall — den optiske klokken holder seg innenfor spesifikasjonen på 20 ns under hele bortfallet mens klokken i brikkeformat bryter den midt i bortfallet
Klokkens holdover gjennom et GNSS-bortfall: den optiske klokken (blå) holder seg innenfor spesifikasjonen på 20 ns under hele frittløpet; klokken i brikkeformat (rød) bryter den underveis. Generert av Kshana fra scenarios/clock-holdover.toml.

Et ytterligere scenario, orbit-gnss-challenged.toml, utleder GNSS-tilgjengelighet fra banegeometri i stedet for håndskrevne vinduer: et romfartøy inne i GNSS-skallet propageres mot en GPS-lignende Walker-konstellasjon, og antallet synlige satellitter (fri sikt, jordokkultasjon, elevasjonsmaske) bestemmer posisjonsbestemmelsens tilstand i hvert trinn. Over et døgn har brukeren posisjonsbestemmelse bare ~59 % av tiden; kvanteklokken holder en tidsløsning på 5 ns gjennom hvert opphold (tilgjengelighet 1.0), klokken i brikkeformat bare ~0.83.

Orbit GNSS-challenged: tidsfeil for klokken over et døgn for et romfartøy inne i GNSS-skallet, der dekningshullene er utledet fra banegeometri — den optiske klokken holder seg innenfor spesifikasjonen på 5 ns gjennom hullene mens klokken i brikkeformat bryter den
Tidsfeil over et døgn med GNSS-tilgjengelighet utledet fra banegeometri: antallet synlige satellitter (fri sikt, jordokkultasjon, elevasjonsmaske) bestemmer posisjonsbestemmelsens tilstand i hvert trinn, slik at klokken må gå fritt gjennom hvert opphold — den optiske klokken holder spesifikasjonen på 5 ns mens klokken i brikkeformat bryter den. Generert av Kshana fra scenarios/orbit-gnss-challenged.toml.

Konstellasjonen kan også oppgis som reelle to-linjers elementsett (TLE). Et fullt TLE (linje 1 + linje 2) propageres med den fulle SGP4/SDP4-modellen — inkludert atmosfærisk luftmotstand og termene for måne-sol i dypt rom og for resonans på 12 t / 24 t som betyr noe for GNSS-baner på ~12 t — validert mot de offisielle AIAA 2006-6753-vektorene til et verste tilfelle på ≈ 4 mm. scenarios/orbit-sgp4-gps.toml leveres med et reelt Celestrak-snapshot av gps-ops av den operative GPS-konstellasjonen (2021-07-28, 30 satellitter) og krever gyldige TLE-kontrollsummer — to-linjers elementsett er åpne data fra katalogen til US Space Force / 18th Space Defense Squadron, videredistribuert av Celestrak (Dr T. S. Kelso, celestrak.org); oppdater med scripts/fetch_tles.sh. En blokk med bare linje 2 beholder den analytiske propageringen for to legemer (scenarios/orbit-real-tle.toml); de to formene kan blandes i én konstellasjon. En konstellasjon kan like godt bygges fra en blokk med RINEX-3 GPS-poster for kringkastet efemeride — formatet en mottaker dekoder — propagert med IS-GPS-200-brukeralgoritmen og ført gjennom den samme geometrien (scenarios/orbit-rinex.toml).

Hva den er og ikke er, i sin helhet

Hva den er og ikke er#

Den er: en deterministisk motor med få avhengigheter som spenner over hele PNT-stakken — banegeometri, inertialnavigasjon, GNSS/INS-fusjon, integritet, klokker og tidssynkronisering. Den kjører et scenario (ofte et GNSS-bortfall), utvikler kalibrerte feilmodeller for sensorer gjennom en passende estimator og scorer resultatet mot de operative kvalitetsmålene — og gir et reproduserbart JSON-resultat (JavaScript Object Notation) og et SVG-diagram, fra et Rust-bibliotek, et kommandolinjegrensesnitt (CLI), en Python-utvidelse, en WebAssembly-modul i nettleseren, en Model Context Protocol (MCP)-server for AI-agenter eller en programtillegg for JetBrains IDE (integrert utviklingsmiljø).

Den er ikke: flymaskinvare, en utforming av kvantenyttelast, en full GNSS-signalmottaker, en simulator for radiofrekvenssignaler (RF) eller en maskinvare-i-løkken-rigg, eller et sertifisert avionikkprodukt — og den erstatter ikke MATLAB/Simulink, STK (Systems Tool Kit) eller Orekit; den står ved siden av dem og utveksler filer med dem. Troverdigheten til kvantemaskinvare kommer fra publiserte feilmodeller, ikke fra dette verktøyet. Den detaljerte modenheten til hver funksjon er dokumentert i docs/CAPABILITY.md.

Den er (ennå) ikke: en full fysikkmotor for atominterferometri (de fleste kvantesensorer bruker publiserte Allan-/støybudsjettkoeffisienter; akselerometeret med CAI (kaldatominterferometer) har et førsteprinsipplag — Mach–Zehnder-fase, projeksjonsstøy, kontrastavtak og vibrasjonskobling, pluss Coriolis- og lysforskyvningssystematikk — men bølgefrontsystematikk og oppløsning av fringe-flertydighet forblir et veikartlag på P2 (veikartfase 2, kvantefysikklaget), se ROADMAP.md og docs/QUANTUM-MODELS.md); en sertifisert eller maskinvarebasert GNSS-mottaker (den løser en PVT-posisjonsbestemmelse (posisjon, hastighet og tid) i enkeltpunkt fra reelle RINEX-kodeobservasjoner (Receiver Independent Exchange Format) — validert på reelle IGS-data (International GNSS Service) — og IQ-laget (kshana iq, siden 0.31.0) innhenter og sporer innspilte eller genererte basebåndsampler i programvare, som en analysemottaker: det styrer ikke radiomaskinvare og sender ikke, er ikke en sertifisert mottaker og gjør ingen posisjonsbestemmelse med bærebølgefase (RTK eller PPP)); eller en full suite for oppdragsutforming (den har byggeklosser for Lambert / porkchop / manøver / banebestemmelse, men er laget for ytelsessimulering over GMAT (General Mission Analysis Tool)/Orekit, ikke en erstatning). Å eie denne avgrensningen er bevisst. Hvis du trenger førsteprinsippbudsjetter for feil i kaldatominterferometre (for eksempel validering på CARIOQA-PMP-nivå — Cold Atom Rubidium Interferometry in Orbit for Quantum Accelerometry, Pathfinder Mission Preparation — eller i X-37B-stil), se P2-veikartet og ta kontakt for å samarbeide.

Navigasjon i lav jordbane#

Satellitter i lav jordbane (LEO) passerer raskt og støyende. Slaget leo-pnt-chain følger ett system gjennom hvert trinn: signalet, overflyvningen og linken, navigasjonsmeldingen og den fusjonerte posisjonsbestemmelsen for posisjon, hastighet og tid (PVT) og presis punktposisjonering (PPP). Hvert trinn gir tallene sine videre til det neste. Se docs/LEO-PNT.md.

LEO PNT-kjeden fra en reell kjøring av leo-pnt-chain (leo-pnt-end-to-end.toml): signaltrinnet (generic-l ved 1191,795 MHz, pilot sporet ved 10,23 Mchip/s) gir videre til overflyvningstrinnet (1080 km, sporet C/N0-topp 58,2 dB-Hz), som gir videre til navigasjonsmeldingen (kepler-rac, tilpasning på 300 s, representasjon SISRE 0,91 mm RMS, 0,250 m med banebestemmelse), som mater den fusjonerte posisjonsbestemmelsen (bare GNSS 1,60 m RMS 3D, GNSS pluss LEO 0,43 m) og presis punktposisjonering (konvergens 11,5 min bare GNSS, 7,5 min med 240 LEO-satellitter). 11 verdier gis videre mellom trinnene.LEO PNT-kjeden fra en reell kjøring av leo-pnt-chain (leo-pnt-end-to-end.toml): signaltrinnet (generic-l ved 1191,795 MHz, pilot sporet ved 10,23 Mchip/s) gir videre til overflyvningstrinnet (1080 km, sporet C/N0-topp 58,2 dB-Hz), som gir videre til navigasjonsmeldingen (kepler-rac, tilpasning på 300 s, representasjon SISRE 0,91 mm RMS, 0,250 m med banebestemmelse), som mater den fusjonerte posisjonsbestemmelsen (bare GNSS 1,60 m RMS 3D, GNSS pluss LEO 0,43 m) og presis punktposisjonering (konvergens 11,5 min bare GNSS, 7,5 min med 240 LEO-satellitter). 11 verdier gis videre mellom trinnene.

Alle scenarioslag etter familie#

Scenarioslagene til motoren, ordnet i familier. Hver familie har en side med én post per slag (motorens beskrivelse og felt, en eksempelkommando, hovedtall fra en kjøring, radene i verifikasjonsmatrisen som nevner det og diagrammet motoren selv skriver) og et kontaktark med diagrammene; docs/KINDS.md indekserer dem alle. Tabellen skrives av tools/gen_readme_blocks.py og sidene av tools/gen_kinds_index.py, og begge feiler hvis motoren får et slag som ingen familie nevner.

Familie Hva den besvarer Typer Kjør ett
Klokker, tidssynkronisering og holdover hvor lenge en klokke holder tiden uten GNSS, og hvordan et tidssynkroniseringssystem holder seg mot sine masker clock, sweep, sweep-nd, telecom-timing, slot-timing, timetransfer, time-transfer-budget, holdover-test, quantum-time-transfer kshana scenarios/clock-holdover.toml
Treghets-, fusjons- og kvantesensorer dødregning og sensorfusjon gjennom et GNSS-bortfall, 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
Alternativ PNT uten GPS navigere ut fra tyngdekraft, terreng og andre felt når GNSS er borte gravity-map, terrain-nav, terrain-slam, combined-altpnt, conflict-resilience kshana scenarios/combined-altpnt.toml
Konstellasjoner, dekning og geometri hvor satellittene er, hvem som ser dem og hvor god geometrien er, rundt 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, posisjonsbestemmelse og integritet pseudoavstander, posisjonsbestemmelser, beskyttelsesnivåer og romvær integrity, gnss-sim, pvt, araim-reference-check, space-weather, realtime-frame-eop kshana scenarios/integrity-raim.toml
Jamming, spoofing og spekteret hvordan interferens når en mottaker og om den oppdages jamming, spoof, spoof-detect, tracking-loop, spectrum, impairment-eval kshana scenarios/jamming-demo.toml
Navigasjon i lav jordbane en passering, en lenke, en navigasjonsmelding og en fusjonert posisjonsbestemmelse, trinn for trinn leo-signal, leo-pass, leo-navmsg, leo-pvt, leo-ppp, ntn-positioning, leo-pnt-chain kshana scenarios/leo-pnt-end-to-end.toml
Månen og cislunart rom navigasjon, tid, referansesystemer og geodesi 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
Navigasjon for rombrukere GNSS-signaler for romfartøy over, rundt og utenfor GNSS-banene gnss-ssv kshana scenarios/gnss-ssv-shell.toml
Optisk PNT optiske linker gjennom atmosfæren og optiske pluss RF-kvalitetsmål optical-atmosphere, hybrid-optical-rf kshana scenarios/optical-atmosphere-network.toml
Oppdragsanalyse, lenker og romoperasjoner oppskyting, stigning, innstigning, holdning, linker, kontaktplanlegging 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
Oppdragstråder budsjettet for navigasjons- og tidsfeil for en kjede av faser fra oppskyting til gjeninntreden mission-thread kshana scenarios/mission-thread-artemis-class.toml
Kampanjer lenkede oppdrag, sveip og ensembler bygget av de andre slagene campaign kshana scenarios/campaign-jam-spoof-holdover-integrity.toml

Alle kommandoer#

kshana <scenario.toml> kjører et scenario; hver annen kommando er en underkommando, og kshana --help skriver ut bruken av dem alle. Kommandoene 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 gir formålet med hver, et verifisert eksempel og dokumentasjonssiden.

Alle flater#

Én motor, de samme resultatene overalt: kommandolinjen, Rust-biblioteket, Python, JavaScript og WebAssembly, MCP-serveren med sine programtilleggskommandoer og ferdigheter, Kshana Studio (hver side kjører i nettleseren, uten installasjon og uten at noe lastes opp), integrasjonene med ROS 2, Signal K, OpenCPN, GNSS-SDR og gnss_lib_py, installasjonspakkene for systemd, Docker og Grafana og JetBrains-programtillegget. docs/ALL-SURFACES.md lister dem med hvordan du får tak i hver og navnene på alle programtilleggskommandoer, ferdigheter og Studio-sider; docs/SURFACES.md sier, for hver kommando og hvert slag, hvilken flate som bærer det og hvilke som ikke gjør det, med begrunnelsen.

Hvordan en kjøring fungerer#

Et scenario er en TOML-fil (Tom's Obvious, Minimal Language): et slag, en seed og parametrene. Motoren kjører det og skriver resultatet, et diagram og en rapport ved siden av, samt eksportene du ber om.

Hvordan en kjøring flyter. En scenario-TOML-fil (en type, en seed og parametrene) går inn i motoren, kshana 0.40.0, gjennom api::run_toml-dispatchen over 92 scenariotyper, deterministisk ut fra scenario, seed og motorversjon. Motoren skriver result.json, chart.svg, report.html og report.json, en table.csv for typene som definerer en, og på forespørsel eksport til SP3, CCSDS OMM og OEM, CZML, KML, GeoJSON, STK og SigMF; en suite skriver study.json og study.html. Disse filene mater Kshana Studio i nettleseren, en AI-assistent gjennom kshana-mcp-serveren og kontinuerlig integrasjon.Hvordan en kjøring flyter. En scenario-TOML-fil (en type, en seed og parametrene) går inn i motoren, kshana 0.40.0, gjennom api::run_toml-dispatchen over 92 scenariotyper, deterministisk ut fra scenario, seed og motorversjon. Motoren skriver result.json, chart.svg, report.html og report.json, en table.csv for typene som definerer en, og på forespørsel eksport til SP3, CCSDS OMM og OEM, CZML, KML, GeoJSON, STK og SigMF; en suite skriver study.json og study.html. Disse filene mater Kshana Studio i nettleseren, en AI-assistent gjennom kshana-mcp-serveren og kontinuerlig integrasjon.

Dette medfølgende scenarioet varer 2 t: 10 min med GNSS, deretter omtrent 1,8 t med GNSS nektet. Det spør hvor lenge en optisk gitterklokke med strontium og en atomklokke i brikkeformat (CSAC) hver holder tiden innenfor 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

Den optiske klokken holder budsjettet på 20 ns gjennom hele bortfallet på 6600 s; CSAC holder det i 2610 s og er innenfor budsjettet i 95,6 % av kjøringen mot 100 % for den optiske klokken. kshana example lister alle medfølgende scenarioer.

Oppdrag#

Ti sektorer stiller ti ulike spørsmål til den samme motoren. Hver har medfølgende scenarioer å starte fra.

Sektor Start med
Forsvar og sikkerhet campaign-jam-spoof-holdover-integrity, spoof-meaconing
Rom, jordbane orbit-gnss-challenged, leo-pnt-end-to-end
Månen, Mars og dypt rom lunar-relay-constellation, mars-orbit-pnt
Luftfart og droner small-uas-jammed-nav, araim-gps-galileo
Maritim maritime-strait-jamming, maritime-port-approach-coast
Vei automotive-urban-canyon
Bane rail-tunnel-coast
Kritisk infrastruktur og tidssynkronisering clock-holdover, clock-ensemble
Telekom og 5G (femte generasjon mobilnett) telecom-prtc-holdover-24h, leo-vertical-5g-network-timing
Vitenskap og forskning sweep-clock-stability, quantum-pnt-demonstrator.suite
Spørsmålet hver sektor stiller
Sektor Spørsmålet den stiller Start med
Forsvar og sikkerhet Hvor lenge forblir navigasjonen og tidssynkroniseringen vår pålitelig under jamming og spoofing, og hvilke lag holder oss innenfor spesifikasjonen? campaign-jam-spoof-holdover-integrity, spoof-meaconing
Rom: jordbane Ser romfartøyet mitt nok navigasjonssatellitter, hvor lenge holder klokken tiden mellom posisjonsbestemmelser, og hva ville et navigasjonslag i lav bane tilføre? orbit-gnss-challenged, leo-pnt-end-to-end
Månen og dypt rom Får en lander, rover eller orbiter ved Månen, ved Mars eller lenger ut en pålitelig posisjon og tid? lunar-relay-constellation, mars-orbit-pnt
Luftfart og droner Etter at en jammer tar GNSS fra meg, hvor lenge holder mitt ubemannede luftfartøysystem (UAS) seg innenfor posisjonsbudsjettet, og er integritet tilgjengelig på ruten min? small-uas-jammed-nav, araim-gps-galileo
Maritim Hvor langt over vannet rekker en jammer, ville et posisjonsskift bli oppdaget, og hvor lenge kan et skip seile på dødregning inn til havn? maritime-strait-jamming, maritime-spoof-position-push, maritime-port-approach-coast
Vei og bil Hvor langt driver en bil under en overgang eller forbi en jammer ved veikanten? automotive-urban-canyon
Bane Hvor mange sekunder inn i en tunnel kan et tog fortsatt avgjøre hvilket spor det er på? rail-tunnel-coast
Kritisk infrastruktur og tidssynkronisering Hvis GNSS-tiden går tapt eller spoofes, hvor lenge beholder et kraftnett, en handelsplass eller et datasenter sporbar tid? clock-holdover, clock-ensemble
Telekom og 5G Hvis GNSS-tidsreferansen går tapt, holder nettverksklokken min seg innenfor ITU-T-maskene, og hvor lenge? telecom-prtc-holdover-24h, leo-vertical-5g-network-timing
Vitenskap og forskning Kan jeg gjengi, utvide og sitere et PNT-resultat, helt ned til seeden? sweep-clock-stability, quantum-pnt-demonstrator.suite

Evidens#

SGP4 kontrollert mot alle 666 referansevektorer i AIAA 2006-6753, verste posisjonsfeil 4,12 mm

176 av 401 funksjoner validert mot uavhengige eksterne referanser; 221 ærlig merket modellert. Hver rad i verifikasjonsmatrisen navngir en funksjon, den uavhengige referansen den kontrolleres mot, testen som kjører kontrollen og merkelappen som følger. Kontinuerlig integrasjon (CI) gjør det umulig å kalle en funksjon VALIDATED uten en uavhengig ekstern referanse.

Hvordan en funksjon får merkelappen sin. Hver rad i verifikasjonsmatrisen navngir en funksjon, den uavhengige referansen den kontrolleres mot, testen som kjører kontrollen i kontinuerlig integrasjon og merkelappen som følger. En rad kan bare være VALIDATED med en uavhengig ekstern referanse; ellers er den MODELLED, eller PARTNER når en maskinvarepartner eier den. Eksempel: SGP4/SDP4, Cowell 6-DOF + perturbasjoner, batch/sekvensiell OD, uavhengig referanse AIAA 2006-6753 SGP4-verifikasjonsvektorer, test tests/sgp4_verification.rs, merkelapp VALIDATED. Levende tall: 176 VALIDATED, 221 MODELLED, 4 PARTNER av 401 rader. Til sammen er 176 funksjoner validert mot uavhengige eksterne referanser; 221 til er ærlig merket MODELLED og 4 er PARTNER-eide.Hvordan en funksjon får merkelappen sin. Hver rad i verifikasjonsmatrisen navngir en funksjon, den uavhengige referansen den kontrolleres mot, testen som kjører kontrollen i kontinuerlig integrasjon og merkelappen som følger. En rad kan bare være VALIDATED med en uavhengig ekstern referanse; ellers er den MODELLED, eller PARTNER når en maskinvarepartner eier den. Eksempel: SGP4/SDP4, Cowell 6-DOF + perturbasjoner, batch/sekvensiell OD, uavhengig referanse AIAA 2006-6753 SGP4-verifikasjonsvektorer, test tests/sgp4_verification.rs, merkelapp VALIDATED. Levende tall: 176 VALIDATED, 221 MODELLED, 4 PARTNER av 401 rader. Til sammen er 176 funksjoner validert mot uavhengige eksterne referanser; 221 til er ærlig merket MODELLED og 4 er PARTNER-eide.
Merkelapp Rader Betydning
VALIDATED 176 en uavhengig ekstern referanse stemmer overens: reelle data, en uavhengig implementasjon eller publiserte referansevektorer
MODELLED 221 kontrollert mot analytisk fasit eller simuleringens egenkonsistens, og sagt høyt
PARTNER 4 eid av en maskinvarepartner; Kshana har ingen uavhengig referanse for den

Noen av kontrollene: 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 mot Orekit 12,2; Galileo til 0,61 m og Swarm-A til 0,10 m mot reelle presise efemerider fra European Space Agency (ESA). Testene holder omtrent 95 % linjedekning av src/, med en port på 85 % i CI. Registeret er docs/VERIFICATION-MATRIX.md, generert fra src/verification.rs: den fulle matrisen med 401 rader og hvorfor hver modellerte rad mangler en ekstern uavhengig referanse i docs/MODELLED-RATIONALE.md.

Hvordan validering fungerer, den utvalgte tabellen med høydepunkter og evidensfigurene

Validering, reproduserbarhet og ærlighet#

  • Hvert støyledd er kalibrert mot en publisert, sitert verdi og validert mot den vanlige sammenhengen (Allan-avvik for klokker; Groves' feilvekst ved dødregning for inertial; konverteringen fra tidssynkronisering til avstandsmåling for tidsoverføring). Status per ledd føres i docs/VALIDATION.md som validated eller not modeled — ingenting presenteres som validert som ikke er det.
  • Reproduserbar fra grunnen av: scenario + seed + engine version → identical bits. scripts/check-reproducible.sh håndhever det; kvante- og klassiske kjøringer bruker uavhengige seeder slik at støyen deres er ukorrelert.
  • Modenheten oppgis ærlig: tallene for optiske klokker og optiske linker er mål / resultater fra bakkedemonstratorer, ikke fløyet.

Bevismerkelappen på hvert tall#

Hvert tall og hver tabell en kjøring skriver, sier hvor langt det kan stoles på, og hvilke registerrader det hviler på. Resultat-JSON har en evidence-nøkkel, diagram-SVG-en en linje under plottet (og et <metadata id="kshana-evidence">-element), og CSV-tabellen har # evidence:-kommentarlinjer foran (les dem med comment='#'). Den navngir et nivå, VALIDATED, MODELLED eller PARTNER, og id-ene (VM- og åtte heksadesimale sifre) til de verifikasjonsmatriserradene kjøringen brukte. Nivået er det svakeste av disse radene, så en kjøring som støtter seg på én modellert rad, merkes MODELLED uansett hvor mange validerte rader som står ved siden av; merkelappen kan aldri hevde mer enn registeret gjør. Rader, statuser og id-er leses fra matrisen og skrives ikke for hånd (docs/VERIFICATION-MATRIX.md, docs/SCHEMA.md), og tests/evidence_labels_doc_sync.rs feiler hvis et tall mangler merkelapp eller en merkelapp ikke stemmer med matrisen.

Validering på et blikk#

Hver rad håndheves av en navngitt test i CI. Denne tabellen er et utvalg av høydepunkter; den fulle maskinkontrollerte matrisen er 401 rader — 176 VALIDATED, 221 MODELLED, 4 PARTNER (src/verification.rs), med det fullstendige beviset (og hva som ærlig talt ikke er validert ennå) i docs/VALIDATION.md og artefakten kshana-validation-summary.html for hver utgivelse (generert av cargo run --bin validation_report, SLSA-attestert — Supply-chain Levels for Software Artifacts).

Kolonnen Status oppgir slaget evidens, i tråd med valideringsstigen ovenfor: VALIDATED = kontrollert mot en uavhengig ekstern referanse (reelle data, et uavhengig bibliotek eller publiserte referansevektorer); MODELLED = kontrollert mot analytisk fasit eller simuleringens egenkonsistens (uten uavhengig eksternt datasett). VALIDATED beskriver metoden for kontroll, ikke bestått/ikke bestått — en ærlig bom mot en reell ekstern referanse forblir VALIDATED, mens en sammenligning som ingen matriserad navngir som referanse (LRO — Lunar Reconnaissance Orbiter — tilpasningen ovenfor) vises som MODELLED. CI-rader er prosessvern, ikke kvalitetsmål. Noen få øyer med reelle data (den målte cesiumklokken, Stable32 PHASE.DAT og OPS-SAT/ICGEM-kontrollene der rådataene ikke har lisens for videredistribusjon) er datastyrte: testen skriver ut et hoppvarsel og forblir grønn når inndataene mangler, og de offentlige referansetallene er sjekket inn under tests/fixtures/. Gjenskap rådataene med det tilhørende scripts/fetch_*.sh.

Status Funksjon Overensstemmelse Referanse / uavhengig referanse
VALIDATED SGP4/SDP4-propagering 666/666 vektorer, verst 4,12 mm AIAA 2006-6753 (Vallado tcppver.out) + direkte sammenligning mot den uavhengige sgp4-craten
VALIDATED Referansesystemer — IAU 2000A/B-nutasjon, IAU 2006/2000A CIO-kjede, 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 mot en uavhengig SPICE-motor maks. 0.028″ → ≤ 0,86 m bakke, ≤ 3,6 m GNSS-bane ANISE (ren Rust, NAIF/SPICE), samme IERS finals2000A EOP, 8 epoker 2020–2023 (sammenlignet mot denne referansen; ingen rad i verifikasjonsmatrisen navngir den som ekstern uavhengig referanse, så den er ikke merket VALIDATED)
MODELLED EGM2008-geopotensial (grad/orden 70) akselerasjon = ∇V til < 1e-6; sonal kollaps til validert J2 NGA EGM2008-koeffisienter + analytisk ∇V-identitet
VALIDATED Syntese av tyngdefunksjonaler (tyngdestøttet / GNSS-fritt navigasjonskart) GRS80 Somigliana + γ_e/γ_p til 3.5e-12; reelt EGM2008-forstyrrelseskart fysisk (RMS ≈ 26 mGal, g/o 70) GRS80 (Moritz 1980, IAG — International Association of Geodesy) Somigliana normaltyngde + reell ICGEM EGM2008 (tests/icgem_gravity_reference.rs)
VALIDATED Allan-estimatorer (ADEV/MDEV/TDEV/HDEV) + konfidensbånd gjengir referanseavvikene; χ²-bånd stemmer overens NIST SP 1065 (Riley), 1000-punkts tabell 31/32
VALIDATED Allan-estimatorer på en reell målt cesiumklokke OADEV/OHDEV til 1e-3 (observert ≤ 3e-5), 16 midlingsfaktorer Stable32 på en reell 5071A Cs mot H-maser, 556 990 punkter (tests/cs5071a_reference.rs, datastyrt)
VALIDATED Allan-estimatorer på den kanoniske Stable32 PHASE.DAT OADEV/MDEV/TDEV til 1e-3 (observert ≤ 5e-5), 139 midlingsfaktorer Referanseavvik fra Stable32 for PHASE.DAT (tests/phasedat_reference.rs, datastyrt)
MODELLED Feilmodell for IMU — ARW / VRW / bias-ustabilitet gjenfunnet til < 5 % (bias-ustabilitet < 15 %) Databladet til Analog Devices ADIS16465; referanseprofil fra NaveGo
VALIDATED Numerisk Cowell-propagator + kraftmodell (konservative nivåer) verste posisjonsfeil 0,08 m over 24 t, 278 epoker (LEO + GTO) Orekit 12,2 NumericalPropagator/DormandPrince853 (CS GROUP), tests/numerical_cowell_propagator_reference.rs
MODELLED Cowell-nivå for luftmotstand + absolutte inndata for sol-/måne-efemeride og tetthet nivået for luftmotstand karakterisert til ≈ 333 m / 24 t; uforstyrret stemmer med Kepler med universell variabel under meter, energi/bevegelsesmengde ~1e-9 innebygd efemeride med lav presisjon + analytisk Kepler
MODELLED Lambert · Tsiolkovskij · porkchop runde til fasiten for to legemer; ΔV < 0.01 % Izzo 2015 · rakettligningen · analytisk Hohmann-gulv
MODELLED Banebestemmelse (Gauss–Newton batch) under meter / mm·s⁻¹ uten støy; ~2 m ved et støygulv på 5 m to legemer + J2 over en RK4-bue
MODELLED Tilpasning av kraftmodellen mot presis Galileo-efemeride (full bue) 0,61 m 3D RMS, 24 t, g/o-70, bare kraft ESA/ESOC ESA0MGNFIN endelig bane (E11), reell finals2000A EOP (sammenlignet mot denne referansen; ingen rad i verifikasjonsmatrisen navngir den som ekstern uavhengig referanse, så den er ikke merket VALIDATED)
MODELLED Tilpasning av kraftmodellen mot presis Swarm-A-efemeride (redusert dynamikk) 0,10 m 3D RMS (empirisk nivågrense, ikke et mål) ESA SW_OPER_SP3ACOM_2_ presis bane (sammenlignet mot denne referansen; ingen rad i verifikasjonsmatrisen navngir den som ekstern uavhengig referanse, så den er ikke merket VALIDATED)
MODELLED Tilpasning av kraftmodellen mot LRO ved Månen (ærlig bom) 6,67 m redusert dynamikk, over målet på 5 m JPL Horizons LRO (NAIF −85) + GRAIL (Gravity Recovery and Interior Laboratory) GRGM660PRIM (sammenlignet mot denne referansen; ingen rad i verifikasjonsmatrisen navngir den som ekstern uavhengig referanse, så den er ikke merket VALIDATED)
MODELLED Banebestemmelse ved Mars i dypt rom (redusert dynamikk, SRIF) ≈ 0,2 m Mars-LMO (kvalitetsmål fra simulering, ikke fra reelt oppdrag) syntetisk lukket-sløyfe-OD — validering av estimatormaskineriet
MODELLED Solsentrert Mars-dynamikk mot JPL DE440 137 m ved 1-døgns bue (vokser med buen = ikke modellerte n-legemer) JPL DE440 via ANISE (xval/anise-mars-od, styrt av kjerne) (sammenlignet mot denne referansen; ingen rad i verifikasjonsmatrisen navngir den som ekstern uavhengig referanse, så den er ikke merket VALIDATED)
VALIDATED Enkeltpunktsposisjonering mot en oppmålt IGS-koordinat (reelle observasjoner) 5,7 m 3D RMS / 1,1 m horisontalt, SPP med ionosfærefri tofrekvenskode IGS-stasjon ABMF oppmåling + GPS kringkastet efemeride, 2018-05-13 (tests/pvt_abmf.rs)
MODELLED Tett koblet GNSS/INS UKF 0,77 m RMS over en LEO-overflyvning på 30 min inkludert et bortfall på 120 s frittgang med kraftmodell, utledet for hånd
MODELLED Tyngdekartnavigasjon uten GPS ~70 km INS-drift → ~145 m gjenfunnet Mål for ESA NAVISP Quantum Wayfarer
MODELLED Terrengreferert navigasjon (TERCOM/SITAN) 70 km drift → < 500 m (gulv for rutenettoppløsning ~140 m) SRTM .hgt DEM; håndinjisert drift (ikke-sirkulær kontroll)
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-seminormalisert)
MODELLED Modulasjon av navigasjonssignal og kodesporing BPSK egen-SSC = 2/(3·R_c); PSD-er med enhetsareal; submeter C/A DLL-jitter @ 45 dB-Hz Analytiske ankerpunkter for SSC/PSD i lukket form + formelen for termisk støy i DLL fra Kaplan & Hegarty
MODELLED CR3BP halo/NRHO differensialkorrektor STM = endelige differanser; banen lukkes til maskinpresisjon; L2 9:2 NRHO ≈ 6,57 d / perilune ≈ 3 250 km kontroll av STM med endelige differanser + publisert sørlig L2 9:2 NRHO (≈ 6,56 d / ≈ 3 370 km) — CR3BP, ikke en reell Gateway-efemeride
MODELLED ARAIM-integritet med to konstellasjoner konstellasjonsomfattende feilmodus på reell GPS + Galileo EU ARAIM TR (teknisk rapport) / DO-316; Celestrak gps-ops 2021-07-28 (sammenlignet mot denne referansen; ingen rad i verifikasjonsmatrisen navngir den som ekstern uavhengig referanse, så den er ikke merket VALIDATED)
VALIDATED GNSS-geometri / DOP (GDOP/PDOP/HDOP/VDOP/TDOP) stemmer overens til 1e-6 relativt over 8 geometrier (godt betinget → nær singulær) gnss_lib_py 1.0.4 (Stanford NAV Lab) — uavhengig bibliotek (tests/dop_reference.rs)
VALIDATED ML-metrikker for evaluering av detektorer (AUC/ROC/forvekslingsmatrise/Pd-Pmd/presisjon/F1) eksakte antall + < 1e-9 over 5 datasett × 24 terskler scikit-learn 1.9.0 (Pedregosa et al., JMLR — Journal of Machine Learning Research — 2011) — uavhengig bibliotek (tests/eval_metrics_reference.rs)
VALIDATED ROC AUC for anomalideteksjon på reell ESA OPS-SAT-telemetri AUC gjengir scikit-learn til < 1e-9; AUC for toppteller-detektoren ≈ 0.85 på det merkede testutvalget scikit-learn roc_auc_score på testutvalget i OPSSAT-AD (Ruszczak et al. 2025, CC BY 4,0) — reell OPS-SAT-telemetri (tests/opssat_ad_reference.rs)
VALIDATED Numeriske kjerner for kvanteavveining (ADEV NNLS-tilpasning · χ²-konsistensbånd · van Loan-klokke Q) NNLS + Q eksakt; χ² < 5e-4 ved operativ dof ≥ 48 scipy 1.17.1 — optimize.nnls / stats.chi2.ppf / linalg.expm (tests/scipy_reference.rs)
VALIDATED Telekom-metrikker for vandring MTIE / MDEV / TDEV (ITU-T G.810/G.823/G.8261/G.811 — anbefalingene fra International Telecommunication Unions standardiseringssektor for telekommunikasjon) MTIE (9 midlingsfaktorer, bit-eksakt) og MDEV + TDEV (8 faktorer, < 1e-9 relativt) på NIST SP 1065 LCG-serien (lineær kongruensgenerator) allantools 2024,06 mtie / mdev / tdev — uavhengig bibliotek (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs)
VALIDATED MCDA-metoder for avveiningsstudier — alle fire beslutningsfamilier, ni eksternt validerte aggregatorer (WSM · WPM · WASPAS · MOORA · COPRAS · TOPSIS · VIKOR · PROMETHEE II · ELECTRE I) pluss prioritetsvekting ved parvis sammenligning med AHP scorer / rangeringer / konkordansmatriser gjengitt til < 1e-9 pymcdm + pyDecision (uavhengige MCDA-biblioteker fra tredjepart) + Saaty RI (tilfeldig indeks) / SciPy-LAPACK eig (tests/mcda_*_reference.rs)
VALIDATED LEO-Doppler-envelope fra banen og bærebølgen Iridium-maksimum innenfor 5 % av publiserte ±36 kHz; Xona Pulsar X1 innenfor publiserte 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 innenfor χ²-båndet trend sammenlignet med Li et al., J. Geod. 93:749 (2019) (9,6 → 7,0 / 3,2 / 2,1 / 1,3 min); konstellasjoner og støy er ikke gjengitt
MODELLED Betinget tidsbeskyttelsesnivå (uoppdaget tidsfeil begrenset av holdover under spoofing) sammensetningen gjengir den flertrinns kovariansrekursjonen clock_state; kalibrert på en reell innspilt spoof JammerTest 2024 (Zenodo 15911589) skalarer + van Loan / CUSUM i lukket form (examples/tpl_jammertest)
MODELLED Scoring av PNT-robusthet + beslutningsustabilitet 35 håndutledede tester mot uavhengig referanse; bytedeterministisk studieartefakt (fast seed) DHS RPCF v2.0-kartlegging + Dirichlet / Kendall-τ / Hill-N2 i lukket form — syntetiske arkitekturer, ikke en sertifisering
MODELLED Studie av optimismegapet for RF-forstyrrelser (skaleringslover + leave-one-out-prediktor) signifikans mot permutasjonsnull; bytedeterministisk artefakt (5 seeder) syntetisk parameterforankret korpus — evalueringens metrikker er VALIDATED mot scikit-learn (ovenfor); studien er MODELLED
CI Reproduserbarhet på tvers av plattformer bit-identisk inndata + fasiter for form på 3 operativsystemer CI-matrise for Linux / macOS / Windows, SHA-256-fasiter
CI Testdekning ~95 % linjer på src/ unntatt src/*_data.rs og src/main.rs, med port på ≥ 85 % cargo-tarpaulin (LLVM-motor)

Hvordan en funksjon får merkelappen sin: et krav peker til en modul i src, til en test i tests, til en ekstern uavhengig referanse (reelle data, en uavhengig referanseimplementering eller publiserte vektorer), til en status — med en CI-håndhevet vakt som sikrer at ingen funksjon kan være validert uten en ekstern uavhengig referanse. Levende tall: 176 validert, 221 modellert, 4 eid av partnere, 401 totalt
Hvordan en funksjon får merkelappen sin — den CI-håndhevede invarianten: ingen ekstern uavhengig referanse ⇒ kan ikke være Validated · SVG

Hvordan hver påstand støttes: kolonnen Validated er 176 av 176 ExternalDataset per konstruksjon (CI-håndhevet); Modelled-rader er ærlig merket InternalConsistency, ReferenceImpl eller ExternalDataset; Partner-rader har ingen Kshana-referanse
Verste posisjonsfeil for SGP4/SDP4 mot AIAA 2006-6753-referansen etter regime, logaritmisk skala: hvert regime ligger langt under AIAA-toleransen, verste tilfelle 4,12 mm i regimet for dypt rom uten resonans
Øverst: hver Validated-rad støttes av et eksternt datasett, per konstruksjon. Nederst: SGP4 stemmer overens med den offisielle referansen i hvert regime (verst 4,12 mm). SVG · SVG

Verifikasjonsstatus for alle 401 funksjoner: 176 validert (kontrollert mot ekstern uavhengig referanse), 221 modellert, 4 eid av partnere
176 validert · 221 modellert · 4 partner — SVG

Funksjonsdomener#

Hver funksjon i det offentlige kartet, etter domene, med sin merkelapp i registeret. Domenetabellen skrives av tools/gen_readme_blocks.py fra web/capabilities.json, den samme filen som Studios kart over alt leser.

Kshana-funksjoner etter domene og modenhet: validerte og modellerte offentlige funksjoner per domene, tegnet fra web/capabilities.json av tools/gen_validation_figures.pyKshana-funksjoner etter domene og modenhet: validerte og modellerte offentlige funksjoner per domene, tegnet fra web/capabilities.json av tools/gen_validation_figures.py

Den fulle tabellen, domene for domene med hver funksjon og dens merkelapp, er docs/CAPABILITY-DOMAINS.md.

Installasjon#

Én linje gir deg kommandolinjeverktøyet: cargo install kshana. Hver kanal leverer v0.40.0 fra den samme merkede commiten.

En passasje som nevner AI-klienter fra tredjepart er utelatt her; den står i README.md på GitHub.

En passasje som nevner AI-klienter fra tredjepart er utelatt her; den står i README.md på GitHub.

En passasje som nevner AI-klienter fra tredjepart er utelatt her; den står i README.md på GitHub.

Kanal Installasjon Veiledning
Prøv i nettleseren åpne https://kshana.dev Studioguide
Kommandolinje (Rust) cargo install kshana Bruk på kommandolinjen
Rust-bibliotek cargo add kshana API-referanse på docs.rs
Python pip install kshana Guide til Python-API-et
JavaScript og WebAssembly npm install kshana Guide til npm og WebAssembly
KI-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 (ett klikk) Legg til i Cursor (npx) · Legg til i Cursor (Docker) · npx -y kshana-mcp@0.40.0 Alle MCP-installasjonsutdrag
VS Code (ett klikk) Installer i VS Code (npx) · Installer i VS Code (Docker) · npx -y kshana-mcp@0.40.0 Alle MCP-installasjonsutdrag
npx npx -y kshana-mcp@0.40.0 Alle MCP-installasjonsutdrag
uvx / pipx uvx kshana-mcp==0.40.0 Alle MCP-installasjonsutdrag
Homebrew brew install ashfordeOU/tap/kshana-mcp Alle MCP-installasjonsutdrag
Scoop scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket && scoop install kshana-mcp Alle MCP-installasjonsutdrag
winget winget install AshfordeOU.KshanaMcp Alle MCP-installasjonsutdrag
Ferdigbygd binærfil last ned kshana-mcp-<target> fra utgivelsen og kontroller den mot SHA256SUMS Alle MCP-installasjonsutdrag
Offisielt MCP-register søk etter io.github.ashfordeOU/kshana-mcp Alle MCP-installasjonsutdrag
Ekstern (streambar HTTP), selvdrevet kshana-mcp --http 127.0.0.1:8080 Veiledning for selvdrift
JetBrains IDE-plugin Settings → Plugins → Marketplace → søk etter "Kshana" (programtillegg-ID dev.kshana.ide) Plugin-guide
Signal K-plugin npm install signalk-kshana-trust Veiledning for Signal K-plugin
OpenCPN-plugin last ned tarballen for programtillegget fra utgivelsen Innsending til OpenCPN-katalogen
Grafana-dashbord importer kshana-grafana-*.json fra utgivelsen Dashbordkilde
Image for referansebygget docker pull ghcr.io/ashfordeou/kshana-reference-build Marineintegrasjoner

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

MCP er Model Context Protocol. Lås en utgivelse med cargo install kshana --version 0.40.0, pip install kshana==0.40.0 eller npm install kshana@0.40.0. For å bygge fra kildekode, se Installer og bygg under Referanse.

Kjør et scenario 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

Ved siden av run tilbyr modulen run_full (JSON, SVG og enlinjesammendraget på én gang), run_typed, validate_toml, list_kinds / scenario_kinds og error_kind; se docs/PYTHON_API.md.

npm-pakken er hele motoren kompilert til WebAssembly. I Node.js gir du binærfilen til initSync; i en nettleser 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 åpen motor står i sentrum, og hver flate kjører den: kommandolinjen, Rust-biblioteket, Python, WebAssembly og Kshana Studio, MCP-serveren, Docker-avbildningen og JetBrains-programtillegget. Den samme scenariofilen gir de samme bytene på hver. Kshana Pro ligger oppå som et eget overlegg som avhenger av motoren og aldri forgrener den.

Kshanas arkitektur: én åpen motor i sentrum, kshana 0.40.0 under AGPL-3.0, med api::run_toml, en typet dispatch over hver type, og verifikasjonsregisteret med 401 funksjoner (176 VALIDATED, 221 MODELLED, 4 PARTNER). Rundt den kjører hver flate den samme motoren: 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-avbildning (ghcr.io/ashfordeou/kshana-mcp); JetBrains-programtillegg (Marketplace: "Kshana"). Under den ligger Kshana Pro, et proprietært overlegg som avhenger av den åpne motoren som bibliotek og aldri forgrener den, og som ikke legger til noen fysisk modell.Kshanas arkitektur: én åpen motor i sentrum, kshana 0.40.0 under AGPL-3.0, med api::run_toml, en typet dispatch over hver type, og verifikasjonsregisteret med 401 funksjoner (176 VALIDATED, 221 MODELLED, 4 PARTNER). Rundt den kjører hver flate den samme motoren: 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-avbildning (ghcr.io/ashfordeou/kshana-mcp); JetBrains-programtillegg (Marketplace: "Kshana"). Under den ligger Kshana Pro, et proprietært overlegg som avhenger av den åpne motoren som bibliotek og aldri forgrener den, og som ikke legger til noen fysisk modell.
Inne i motoren: domenelagene og verifikasjonsregisteret Kshanas arkitektur i lag. Fem innganger (kommandolinje, Python, JavaScript og WebAssembly, MCP-serveren og JetBrains-programtillegget) når én api::run_toml, en typet dispatch over 92 typer. Under ligger åtte domenelag: tid og referansesystemer, klokker og tidssynkronisering, treghet og fusjon, GNSS og integritet, astrodynamikk, LEO PNT, Månen, Mars og dypt rom, og oppdrag og studier, på en felles kjerne, alle kryssreferert av verifikasjonsmodulen, den maskinkontrollerte matrisen med 401 funksjoner som er den eneste kilden til sannhet for hver merkelapp.Kshanas arkitektur i lag. Fem innganger (kommandolinje, Python, JavaScript og WebAssembly, MCP-serveren og JetBrains-programtillegget) når én api::run_toml, en typet dispatch over 92 typer. Under ligger åtte domenelag: tid og referansesystemer, klokker og tidssynkronisering, treghet og fusjon, GNSS og integritet, astrodynamikk, LEO PNT, Månen, Mars og dypt rom, og oppdrag og studier, på en felles kjerne, alle kryssreferert av verifikasjonsmodulen, den maskinkontrollerte matrisen med 401 funksjoner som er den eneste kilden til sannhet for hver merkelapp.

Én motor, mange inngangsdører. En enkelt Rust-kjerne (kshana) kjører hvert scenario, nådd gjennom en CLI, en Python-utvidelse, en WebAssembly-modul i nettleseren, en MCP-server for AI-agenter og et JetBrains IDE-programtillegg — som alle munner ut i én api::run_toml-dispatch. Inne i den kobles sensorpakkene til et felles grensesnitt for feilmodeller; ved siden av dem ligger et referansesystemlag (IAU 2006/2000A presesjon–nutasjon og den CIO-baserte GCRS↔ITRS-reduksjonen), et astrodynamikk-/numerisk lag (analytisk SGP4/SDP4 og en numerisk Cowell-propagator med sin EGM2008-/perturbasjonskraftmodell, manøverutforming og banebestemmelse), et integritets-/GNSS-lag (RAIM/ARAIM, SBAS, måledomenet, jamming, cislunar), et fusjons-/alt-PNT-lag (GNSS/INS-estimatorene og kartsammenstillerne for tyngde/terreng/magnetfelt), et lag for dypt rom og Månen (radiometrisk Mars-PNT og månens PNT-suite, med evidensnivået for hver del i matrisen — LTC-tid, VLBI, felles OD+klokke, realisering av referansesystem, tjenestevolum, differensiell PNT, interoperabilitet), et oppdragsanalyselag (budsjetter for oppskyting / innstigning / dekning / peking / overflyvning / link og romværmiljøet) og det åpne laget for robusthets- og maskinlæringsstudier (RPCF-robusthetsscoring, optimismegapet for RF-forstyrrelser og demonstratoren for kvanteaktivert PNT) hvis reproduserbare artefakter bygger på de validerte kjernene.

To frittstående crater utenfor workspace står ved siden av kjernen — mcp/kshana-mcp (MCP-serveren, bygget på edition-2024-SDK-en rmcp) og xval/anise-frames (kryssjekken av ANISE/SPICE-referansesystemer, som trekker inn avhengigheter under MPL-2.0 (Mozilla Public License 2,0)) — holdt utenfor avhengighetsgrafen til den publiserte craten, Cargo.lock, lisensporten og MSRV-bygget (minste støttede Rust-versjon) av listen exclude i rotens Cargo.toml. JetBrains-programtillegget (ide/jetbrains) er et eget Kotlin-prosjekt. Se docs/ARCHITECTURE.md for hele settet med diagrammer.

De gjengitte diagrammene (motorflyt, modulkart, distribusjon) står i docs/ARCHITECTURE.md.

Diagrammer#

Diagrammene er Mermaid-kilder i docs/diagrams/, gjengitt til SVG og PNG i docs/assets/diagrams/ (tools/render-diagram-chromium.sh <name> på Linux, de to andre render-diagram-skriptene ellers), og en post binder hver PNG til den nøyaktige SVG-en den kom fra. Testene låser tallene de oppgir. Diagrammene i seksjonene ovenfor tegnes av verktøy fra motorkjøringer; disse viser hvordan delene henger sammen.

Systemet: seks inngangsdører (kommandolinje, Python, WebAssembly og npm med Kshana Studio, MCP-server med programtillegg og ferdigheter, JetBrains-programtillegg, integrasjoner) kaller alle én dispatch over hvert scenarioslag, som kjører én motor av felles kjerne, sensorpakker og referansesystemer og domenemodeller, og skriver et reproduserbart resultat og diagram
Én dispatch, én motor, reproduserbar utdata · SVG · kilde system-overview.mmd

Flatene: én deterministisk frakoblet motor mater kommandolinjen, Rust-biblioteket, Python, WebAssembly og npm og MCP-serveren; Studio kjører på WebAssembly-bygget, programtilleggskommandoer og ferdigheter på MCP-serveren, integrasjoner og installasjonspakker på kommandolinjen og JetBrains-programtillegget på biblioteket
Hver flate, fra den samme motoren · SVG · kilde surfaces.mmd

Inne i én kjøring: en scenariofil med seed og GNSS-tidslinje mater motoren, som per tidstrinn utvikler feilmodellen, kjører estimatoren og scorer kvalitetsmålene, og skriver et reproduserbart resultat og diagram
Den indre løkken i en kjøring · SVG · kilde engine-flow.mmd

Mottakertillit: en mottakerlogg eller -strøm leses inn som observerbare størrelser per epoke og mottakerens egne flagg, passerer monitorene og blir en veiledende tillitsscore med et bånd og begrunnelser, som mater Studio, telemetri, en signert bevispakke, Jammertest- og bench-scoring og compliance-rapporten
Fra en mottakerlogg til en tillitsscore og hva som bruker den · SVG · kilde trust-flow.mmd

Laboratorierundturen: et scenario eksporteres med hendelser og testbetingelser, en operatør utenfor Kshana spiller av en fil gjennom en laboratoriesimulator, mottakerloggen scores mot de oppgitte hendelsene, og evidensrundturen kobler scenarioet, betingelsene og loggens hasher og scoren til en signert pakke
Scenario til signert pakke; Kshana produserer eller spiller aldri av et signal · SVG · kilde lab-round-trip.mmd

Kshana Studio: nettleseren kjører motoren kompilert til WebAssembly lokalt uten at noe lastes opp, tar medfølgende scenarioer eller et scenario eller en logg du åpner, og viser resultatet i den enkle visningen, den avanserte visningen og oppgavesidene, med eksporter lagret av brukeren
Hvordan Studio kjører, lokalt · SVG · kilde studio-flow.mmd

Test- og utgivelsesflyten: lokale porter (formatering, clippy, kontrollen mot attribusjon, ratchet for dokumentasjonsdekning og scripts/gate.sh, som kjører hele suiten og gjentatte kjøringer og skriver kvitteringen som pre-push-kroken kontrollerer) fører til en pull request bare i CI og en grønn full CI; eieren spoler main fremover til den grønne commiten og en annotert tag legges på den etter versjonssynkroniseringskontrollen; utgivelsesarbeidsflyten verifiserer hele suiten på den merkede commiten før noe publiseres, bygger binærfilene med SBOM, kontrollsummer og byggeproveniens, publiserer til crates.io, PyPI, npm, containerregisteret, MCP-registeret og JetBrains Marketplace, poller hvert register til det serverer den nye versjonen og utløser områdebygget fra taggen; en egen sti bare for området utløser pages-arbeidsflyten med taggen main og avvises med mindre ingenting utenfor web/ og .github/ er endret siden siste utgivelse
Test- og utgivelsesflyt, fra lokale porter til en verifisert utgivelse og stien bare for området · SVG · kilde release-flow.mmd · docs/RELEASING.md

Modulkartet: kommandolinjen, Python, WebAssembly, MCP-serveren og JetBrains-programtillegget kaller den typede dispatchen over hvert slag, som når den felles kjernen, tid og referansesystemer, sensorpakker, astrodynamikk, integritet, spoofdeteksjon, fusjon, dypt rom og Månen, robusthet og modulene for dommer og benchmark, alle båret av verifikasjonsmatrisen
Hvor koden bor · SVG · kilde module-map.mmd

Distribusjon: ett repositorium leverer kjernecraten, MCP-serveren, IDE-programtillegget og kryssjekk-cratene til crates.io, PyPI, npm, GitHub Releases, Pages-lekeplassen, containerregisteret, MCP-registeret og JetBrains Marketplace, med et Zenodo-arkiv
Hva som leveres hvor, og hva som kontrollerer det · SVG · kilde distribution.mmd

KI-assistent#

kshana-mcp er en MCP-server: assistenten din kjører den faktiske motoren og leser tilbake JSON-en, i stedet for å gjette matematikken. Hvert av de 49 verktøyene er en tynn innpakning rundt en offentlig funksjon i biblioteket kshana, så ingen simuleringslogikk bor i serveren.

Installer MCP-serveren#

Veiledende, ikke typegodkjent navigasjonsutstyr: operatøren er fortsatt ansvarlig for navigasjonen. Serveren kjører på din datamaskin; ingenting sendes til Ashforde OÜ.

En passasje som nevner AI-klienter fra tredjepart er utelatt her; den står i README.md på GitHub.

En passasje som nevner AI-klienter fra tredjepart er utelatt her; den står i README.md på GitHub.

En passasje som nevner AI-klienter fra tredjepart er utelatt her; den står i README.md på GitHub.

Kanal Kommando eller knapp Krever Festet form
Cursor (ett klikk) npx (Node) · Docker Node, eller Docker kshana-mcp@0.40.0 / ghcr.io/ashfordeou/kshana-mcp:0.40.0
VS Code (ett klikk) 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 deretter 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
Ferdigbygd binærfil utgivelsessiden: kshana-mcp (Linux x86-64), kshana-mcp-<target>[.exe], kontrollert med SHA256SUMS og gh attestation verify ingen v0.40.0
MCP-register io.github.ashfordeOU/kshana-mcp (finnes av klienter som støtter registeret) en klient som støtter registeret 0.40.0
Fjernbruk (streamable HTTP) kshana-mcp --http 127.0.0.1:8080, selvdrevet: se docs/deploy/mcp-http.md din egen vert v0.40.0

kshana-mcp på Glama, kvalitetsscoren for MCP-serveren

En passasje som nevner AI-klienter fra tredjepart er utelatt her; den står i README.md på GitHub.

Oppsett per klient står i docs/integrations.md. Serveren er oppført i det offisielle MCP-registeret som io.github.ashfordeOU/kshana-mcp.

De 49 verktøyene

Scenarioer og rapporter

Verktøy Hva den gjør
run_scenario Kjør et scenario fra en TOML-definisjon (Tom's Obvious, Minimal Language)
list_scenario_kinds De 92 innebygde scenariotypene med beskrivelser og obligatoriske/valgfrie felt, slik at agenten kan bygge et gyldig scenario
validate_scenario Forhåndskontroll: parse TOML-en og finn slaget, uten å kjøre
list_example_scenarios De medfølgende referansescenarioene som JSON
get_example_scenario TOML-teksten til ett medfølgende referansescenario, byte for byte filen under scenarios/
report_scenario Kjør et scenario og returner rapporten
animate_scenario Kjør et scenario og returner tidsserien som en animasjon
sky_geometry Himmelgeometri under en azimutavhengig horisontlinje: de synlige og skjulte satellittene, DOP, øst-nord-opp-kovariansen og den horisontale feilellipsen; eller en forhåndsinnstilling for horisontlinje med proveniens

Eksport og interoperabilitet

Verktøy Hva den gjør
list_export_formats Hvilke interoperabilitetsformater som gjelder for et scenario (czml, kml, geojson, stk, sigmf), begrunnelsen når ett ikke gjør det, og spesifikasjonen hver skriver følger
export_interop Eksporter et scenario som CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, STK-efemeride (Systems Tool Kit) .e eller SigMF (Signal Metadata
import_route Skriv en GeoJSON-rute LineString inn i et scenario som flyr et veipunktspor (terrain-nav, terrain-slam, gravity-map, combined-altpnt) og returner den nye TOML-en
export_sp3 Eksporter konstellasjonen til et orbit-scenario som presis efemeride i SP3-c (Standard Product 3, revisjon c)
export_omm Eksporter elementene til et orbit-scenario som en CCSDS (Consultative Committee for Space Data Systems) 502.0-B-2 OMM-katalog (Orbit Mean-elements Message)
export_oem Eksporter tilstandsserien til et orbit-scenario som CCSDS OEM-efemeride (Orbit Ephemeris Message) 2,0 — TEME-posisjonen (true equator, mean equinox) og
export_table_csv Kjør et scenario og returner reproduserbarhetstabellen som CSV (kommaseparerte verdier) — den bytestabile tabellen CLI-en (kommandolinjegrensesnittet) skriver som <scenario>.table.csv
export_test_bench Et scenarios kjøretøybevegelse og hendelser for en GNSS-simulator i laboratorium (kshana bench-export)

Mottaker- og fartøytillit

Verktøy Hva den gjør
assess_receiver_log Vurder en reell GNSS-mottakerlogg (global navigasjonssatellittsystem) for tillit
assess_vessel_stream Score et avgrenset NMEA 0183-utdrag (høyst 2 MiB og 20 000 epoker
assess_vessel_log En NMEA 0183-logg fra et fartøy (høyst 4 MiB) som en batchkjøring, med økt-TOML-en som oppgir fartøyets grenser
create_evidence_pack En signert bevispakke for et vindu av et fartøys logg (kshana receiver-trust evidence)
attach_evidence_timestamp Bind et RFC 3161-tidsstempeltoken (base64 av .tsr-bytene) til en pakke, i minnet (kshana evidence attach-timestamp)
verify_evidence_pack Verifiser en pakke (kshana evidence verify)
generate_training_nmea Syntetisk NMEA 0183 for bro til mannskapstrening fra en nmea-scenario-TOML (jamming, posisjonsdrag, tidsspoof, replay-forsinkelse) med instruktørloggen (kshana-nmea-training/1)
build_interference_map Et GNSS-interferenskart fra ADS-B- eller AIS-posisjonsrapporter som CSV-tekst (høyst 4 MiB)
route_exposure Andelen av en rutes lengde i degraderte, ikke-degraderte, ikke vurderte og ikke observerte celler i ett eller flere interferenskart, eventuelt innenfor et datointervall
trust_telemetry En tillitsstrøm (JSON-linjer) eller et receiver-trust-resultat gjengitt som Prometheus-tekst, CEF- eller LEEF-syslog-linjer eller en OTLP JSON-nyttelast, med kshana trust-telemetry-enkoderne
jammertest_import Les den publiserte Jammertest-testkatalogen og sendeplanen (NPRA/jammertest-plan, MIT) som planlagt referanse (kshana jammertest import): ett testområdes tidsluker blir mottakertillit-hendelser med katalog-id og år i hver etikett. Planlagte tidsluker, ikke registrerte sendetider; ingen kontaktfelt i planen leses. MODELLED. Se docs/JAMMERTEST.md.
jammertest_score Skår en mottakerlogg mot den planen (kshana jammertest score): per test deteksjonsforsinkelse, uteblitte alarmer og tid til gjenoppretting, og falske alarmer utenfor alle tidsluker. Tekstlogger som log, binære (ubx, sbf) som log_base64. En signert pakke trenger en nøkkel: kommandolinjen. Kun veiledende; MODELLED.
fit_imu_log Akselerometer- og gyroparametere for scenarioene hybrid og fusion, tilpasset fra en stasjonær IMU-logg (CSV eller EuRoC) med Allan-deviasjon, med en ferdig tabell [accel_classical] som kan limes inn og loggens SHA-256 (kshana imu-fit). Tekst inn, JSON ut; MODELLED.

GNSS IQ (filer i arbeidsmappen; av i HTTP-modus)

Verktøy Hva den gjør
iq_signals Oppsettet av GNSS IQ-laget
iq_info Beskriv ett IQ-opptak (fase og kvadratur) i arbeidsmappen uten å behandle det
iq_scene Generer en GNSS IQ-scene med flere satellitter i arbeidsmappen (kshana iq scene)
iq_acquire FFT-innhenting (rask Fourier-transform) av én eller flere PRN-er (pseudotilfeldige støykoder) over et opptak (kshana iq acquire), eventuelt bak frontend-trinn
iq_track Innhent, og spor deretter med DLL/PLL/FLL-banken (forsinkelses-, fase- og frekvenslåst sløyfe) (kshana iq track), med sløyfene fra en `kshana.loop-desig
iq_frontend Bruk DSP (digital signalbehandling) for mottakerens frontend og dempning av interferens
iq_sweep Spill av ett IQ-opptak i arbeidsmappen på nytt over flere utforminger av sporingssløyfer (kshana iq sweep)
iq_monitor Kjør monitorene for deteksjon av interferens og spoofing over et IQ-opptak i arbeidsmappen (kshana iq monitor)
iq_labfit Tilpass modellen for tap av lås i sporingssløyfen til laboratoriekjøringer (kshana iq labfit) fra et iq-labfit-scenario der loggene er innebygd (text eller base64
iq_test_conditions Valider en kshana.test-conditions/1-fil gitt som tekst og returner de løste betingelsene med hashen
iq_campaign Kjør en kampanje for avspilling i laboratorium (kshana iq campaign)
iq_campaign_status Fremdriften i en kampanjes utdatamappe

Compliance-kartlegging

Verktøy Hva den gjør
compliance_report Kartleggingen mot det offentlige rammeverket, fylt ut fra resultatdokumenter gitt som tekst (kshana compliance-report)
compliance_mapping De statiske kartleggingstabellene (eller, med sources, kildedokumentene de siterer med versjoner og URL-er) som Markdown, med samme utsagn først
list_standards_packs Standardpakkene (kshana standards-pack list): scorede scenariosett for testprofilene i DHS Resilient PNT-rammeverket, IMO MSC.1/Circ.1575 og ICAO Doc 9849 vedlegg F
run_standards_pack Én pakke kjørt mot terskler oppgitt før kjøringen: hver test MET, NOT MET eller NEEDS INPUT; MODELLED, vurderer ikke noe produkt
lunanet_afs_check LunaNet Augmented Forward Signal kontrollert mot LNIS V5 AD1 bind A (LSIS-AFS V1.0): kodene mot de trykte tabellene, eller en symbolstrøm mot rammeformatet; LDPC og CRC-24Q for delrammene 2 til 4 er ikke verifisert
create_round_trip_pack Den signerte laboratoriepakken for rundtur: scenario, kshana.test-conditions/1-dokument, mottakerlogg og score knyttet sammen med hasher

Benchmark

Verktøy Hva den gjør
score_benchmark En innsending til kshana-bench scoret mot en referansefil, begge som JSON-tekst (kshana bench score, bench/SPEC.md): resultatfilen med spesifikasjonsversjon, deling, inndatahasjer og oppgavens målinger. MODELLED; beskriver en logg eller et korpus, aldri et produkt.
render_leaderboard Resultatfiler fra kshana-bench gjengitt som den statiske ledertavlesiden (HTML-tekst), hver validert først.

Utgaver#

Hele motoren er gratis. Kshana Pro og skreddersydde studier er for programmer som trenger mer, og hver betalt vei begynner med en melding: det finnes ingen priser her.

Gratis Kshana Pro Skreddersydd studie
Hva det er hele den åpne motoren, alle 92 scenariotyper, ingen funksjonsbegrensning et proprietært overlegg på den samme motoren, under kontrakt en MODELLED studie av PNT-robustheten i systemet ditt, utført for deg
Lisens AGPL-3.0 (GNU Affero General Public License, versjon 3), eller en kommersiell lisens proprietær kontrakt
Slik kommer du i gang installer eller åpne kshana.dev be om en Pro-evaluering be om en studie

Hva Pro er, med ordene til docs/PRO.md:

Et strengt supersett av åpne Kshana. Pro avhenger av den åpne motoren som bibliotek og forgrener den aldri. Hvert åpne scenarioslag kjører uendret i Pro, og et åpent scenario kjører i Pro helt uten lisens.

Ingen ny fysikk. Pro legger ikke til noen fysisk modell og endrer ingen. Hvert tall i Pro kommer fra kjøringer av den åpne motoren, slik at et Pro-tall er like pålitelig som det åpne scenarioslaget det kom fra, og aldri mer.

Pro svarer på et programs neste spørsmål: hvilken utforming som skal flys (en optimerer for utforming og dens Pareto-front), hvor sikkert svaret er (usikkerhet og sensitivitet), og om oppdraget tilfredsstiller sine krav (et oppdragsdossier, sporbarhet for krav, avveiningsstudier, en regresjonskontroll av scenarioer, digitale tvillinger av klokker, et studiedossier og en tjeneste på egen server). Den følger også en kampanje av tall og feiler en pipeline når ett blir dårligere, tester kandidater til signalplaner mot de åpne satellittnavigasjonssignalene i begge retninger (spektrumsameksistens) og setter studier i kø i en jobbtjeneste på egen server med et leveringsregister med hashkjede. Hver av dem er beskrevet, med hva den produserer og hva den ikke gjør, i docs/PRO.md. Ingenting Pro produserer er en sertifisering, og en skreddersydd studie er heller ikke en sertifisering.

Hva Kshana Pro leser fra den åpne motoren, og støtte fra Ashforde® OÜ

Hva Kshana Pro bygger på. Hver del av Pro arbeider ut fra den åpne motoren og lar den stå uendret:

  • Optimereren for utforming, usikkerhetsstudien og oppdragsdossieret kjører scenarioer for den åpne motoren gjennom motorens offentlige grensesnitt og beregner hvert tall fra resultatene av kjøringene. Hvert resultat beholder nivået VALIDATED, MODELLED eller PARTNER som den åpne motoren ga hvert tall, aldri et høyere.
  • Digitale tvillinger av klokker bruker den åpne motorens klokkemodell og dens estimator for Allan-avvik: en tvilling kalibreres mot enhetens publiserte Allan-budsjett og kontrolleres deretter ved å estimere tvillingens Allan-avvik med den åpne estimatoren.
  • Avveiningsstudier kjører hvert arkitekturalternativ som et scenario for den åpne motoren, uendret, og rangerer alternativene på et kvalitetsmål lest fra resultatet av hver kjøring.
  • Kampanjefølging leser tallene sine fra resultatene av kjøringer i den åpne motoren av scenarioene i en pakke, og sammenligner dem med den forrige kjøringen som besto.
  • Spektrumsameksistens leser hvert fysiske tall fra kjøringer i den åpne motoren av slagene leo-signal og constellation-design, og legger bare til summen over satellittene i sikte og rangeringen av planene.
  • Jobbtjenesten på egen server kjører åpne scenarioer og Pro-scenarioer gjennom den samme motoren og lagrer hvert resultat slik kjøringen returnerte det.
  • Bevispakker registrerer, for hver kjøring, scenariohashen som den åpne motoren stempler på resultatet, slik at et tall i en pakke kan gjengis ved å kjøre scenarioet på nytt.
  • Verktøy for systemutvikling og programmer. Kshana Pros verktøy for modellbasert systemutvikling (MBSE) og programmer kontrollerer et programs krav mot kjøringer av den åpne motoren: det importerer krav som kommaseparerte verdier (CSV), eller som en dokumentert delmengde av Requirements Interchange Format (ReqIF) eller av tekst i Systems Modeling Language versjon 2 (SysML v2), evaluerer hvert akseptkriterium, med enhet, mot verdiene en kjøring skrev, og lager en verifikasjonskryssreferansematrise (VCRM), en SysML v2-modell, en rapport om endringspåvirkning og en frakoblet bevispakke. Det kjører ingenting på nytt og beregner ingenting på nytt, og leser bare det den åpne motoren publiserer: hver kjørings result.json (feltene et kriterium navngir, enhetene deres, reproduserbarhetsstempelet med scenariohash, seed, motorversjon og skjemaversjon, og kjøringens merkelapp og nivåer for tallene), dens report.json (slag, reproduserbarhetspost og funksjonsmerkelapper), scenariofilen (hash, slag, seed og parametere), skjemaet for feltenheter (hvert felts enhet, proveniens og evidensnivå) og verifikasjonsmatrisen (hver funksjons merkelapp VALIDATED, MODELLED eller PARTNER).

Støtte og profesjonelle tjenester#

Kshana er gratis og åpen kildekode under AGPL-3.0 og profesjonelt utviklet og vedlikeholdt av Ashforde® OÜ (Estland). Den åpne motoren er komplett og kan brukes alene. For organisasjoner som trenger mer, tilbyr Ashforde® OÜ:

  • Kommersiell støtte og integrasjon — å bygge Kshana inn i verktøykjeden din, skreddersydde scenarioer og prioriterte rettelser.
  • Egne sensormodeller — kalibrert mot maskinvaren din, inkludert eksportsensitive robusthetsmodeller som vedlikeholdes i et privat overlegg.
  • Kshana Pro — proprietære verktøy for modellbasert systemutvikling (MBSE) og programmer som kontrollerer et programs krav mot kjøringer av den åpne motoren og lager en verifikasjonskryssreferansematrise (VCRM), en modell i Systems Modeling Language versjon 2 (SysML v2), en rapport om endringspåvirkning og en frakoblet bevispakke. Det kjører ingenting på nytt og leser bare motorens publiserte utdata: hver kjørings result.json og report.json, scenariofilen, skjemaet for feltenheter og merkelappene i verifikasjonsmatrisen (hele listen står under Utgaver).
  • Kshana Pro-verktøy for utforming, usikkerhet og oppdrag — Pareto-fronten for et utformingsrom, usikkerhet og sensitivitet over tusenvis av kjøringer og et oppdragsdossier med én kommando med en verifikasjonsmatrise og en PDF; se docs/PRO.md.
  • Kshana Pro kampanjefølging, spektrumsameksistens og jobbtjeneste — en pipeline som feiler når et fulgt tall blir dårligere, signalplaner testet mot de åpne satellittnavigasjonssignalene i begge retninger og en jobbkø på egen server med et leveringsregister med hashkjede; se docs/PRO.md.
  • Opplæring og rådgivning om ytelsesanalyse av kvante- og klassisk PNT.

Dette er åpen-kjerne-modellen: motoren er, og forblir, åpent lisensiert; virksomheten som bærer den er ekspertise, støtte og de proprietære utvidelsene — ikke lisensavgifter. Kontakt contact@ashforde.org · ashforde.org.

Forskning#

Studier bygget på den åpne motoren publiseres på arXiv. Hver navngir motorkommandoen bak seg, slik at tallene kan regenereres fra et innsjekket scenario eller studieeksempel.

Forskning bygget på den åpne motoren: seks artikler på arXiv, der hvert kort navngir artikkelen, datoen og kategorien og motorkommandoen som regenererer tallene. De samme seks artiklene, med lenker og kommandoer, står i tabellen nedenfor.Forskning bygget på den åpne motoren: seks artikler på arXiv, der hvert kort navngir artikkelen, datoen og kategorien og motorkommandoen som regenererer tallene. De samme seks artiklene, med lenker og kommandoer, står i tabellen nedenfor.
Artikkel Hva 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
Fallet i scoren til en detektor for GNSS-interferens når forholdene skifter kan forutsies fra statistikk i fordelingen alene, på en åpen syntetisk testbenk og deretter på åpne feltopptak. 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-tidsmottaker under spoofing har ingen endelig ubetinget grense for uoppdaget tidsfeil, så artikkelen gir en betinget, kalibrert på en innspilt spoof over luften fra den offentlige JammerTest 2024-kampanjen. 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 sammensatt robusthetsscore er et stabilt grunnlag for en beslutning bare der én utforming dominerer; der utformingene konkurrerer kan ny vekting alene endre vinneren. 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
Avstandsmåling inne i en månekonstellasjon etterlater den absolutte posisjonen til en overflatestasjon uobserverbar; en forsinkelse fra interferometri med svært lang grunnlinje (VLBI) fra jorden gjenoppretter den når konstellasjonen er tynn, og skjerper den når den er rik. slaget lunar-joint-od-clock: kshana example lunar-joint-od-clock > s.toml && kshana s.toml
The Cost of Lunar South-Polar Geometry, and Surface Beacons as the Efficient Fix: A Dilution-of-Precision Analysis
arXiv:2607,06212 · doi:10.48550/arXiv.2607.06212
Planlagte konstellasjoner på fire til seks satellitter gir dårlig geometri ved månens sørpol, og noen få fyrlykter for avstandsmåling på overflaten løser det langt billigere enn flere satellitter. slaget lunar-beacon: kshana example lunar-beacon > s.toml && kshana s.toml
Cislunar navigation is an observability problem: arc-length thresholds, Gramian conditioning, and the Doppler lever
arXiv:2610,23871 · doi:10.48550/arXiv.2610.23871
Dilution of precision er udefinert for cislunar sporing med bare avstand, fordi hastighet er uobserverbar i et snapshot, så artikkelen bruker observerbarhetsgramianen på fire plane distante retrograde baner: bare avstand har rang 2 av 4 i et snapshot og trenger en bue på omtrent 2,09 t for å bli fullt observerbar, med betingelsen som bedres etter hvert som buen blir lengre; avstandsrate (Doppler) gir rang 4 umiddelbart; og samtidig estimering av en stasjon sammen med satellitttilstander og klokker forblir rangmangelfull med én med mindre en ekstern interferometrisk observabel legges til. Krav hører hjemme i budsjetter for buelengde, betingelse og måletype, ikke DOP. slaget cislunar-observability: kshana scenarios/cislunar-observability.toml (søsterslaget cislunar-arc-recovery tester terskelen med en uavhengig estimator med endelige differanser)

De tre studieeksemplene skriver bytedeterministiske artefakter (faste seeder) som registrerer motorversjon, seeder og en konfigurasjonshash. De tre månenære og cislunare artiklene er bygget på månesuiten (evidensnivået til hver del står i verifikasjonsmatrisen); påstandene om geometri og dilution of precision er også kryssjekket mot separate uavhengige referanser i tests/validate_p*.rs. Mer under Reproduserbare studieartefakter under Referanse.

Siter#

Hvis du bruker Kshana i akademisk eller teknisk arbeid, siter versjonen du brukte, med scenario og seed. CITATION.cff inneholder de maskinlesbare metadataene, og GitHub viser en knapp "Cite this repository" ut fra den. Hver utgivelse arkiveres på Zenodo; konsept-DOI-en (Digital Object Identifier) 10.5281/zenodo.20528627 løses alltid til den nyeste versjonen.

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

Artiklene 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

Lisens#

Kshana er dobbeltlisensiert: GNU AGPL-3.0-only (LICENSE), eller en kommersiell lisens fra Ashforde® OÜ for lukket integrasjon som AGPL ikke passer for. LICENSING.md forklarer hvilken som gjelder. Bidrag lisensieres inngående under AGPL og gir i tillegg Ashforde® OÜ rett til å ta dem med i den kommersielle utgaven; signer hver commit med git commit -s (se CONTRIBUTING.md). "Kshana" og merkene tilhører Ashforde® OÜ som varemerker: lisensen dekker koden, ikke navnet, så gi forgreninger nytt navn.

Referanse#

Det lange materialet, sammenfoldet. Hvert dokument er oppført i Dokumentasjon.

Installer og bygg fra kildekode

Installer og bygg#

Krever en Rust-verktøykjede (≥ 1,88, rust-version i Cargo.toml; utviklet på 1,93).

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

Bruk#

Kjør et hvilket som helst scenario; CLI-en sender på feltet kind i scenarioet og skriver <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html og <scenario>.report.json ved siden av det — pluss <scenario>.table.csv for slagene som publiserer en tabell. Rapporten (en HyperText Markup Language (HTML)-side og et JSON-dokument med samme innhold) har et sammendrag for ledelsen, hver inndata med enhet, resultatene og diagrammene, en kampanjes sveip-, Monte Carlo- eller kjedetabeller, en hendelsestidslinje, merkelappen VALIDATED / MODELLED / PARTNER og kilden for hver funksjon kjøringen brukte, hva som ikke er modellert og en reproduserbarhetspost (motorversjon, Secure Hash Algorithm 256-bit (SHA-256)-sammendrag, seed, plattform og den nøyaktige kommandoen). Den skrives ut til en ren PDF-fil (Portable Document Format) fra nettleseren 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-opptak (Signal Metadata Format) ved siden av scenarioet, og --import-route <route.geojson> mater en GeoJSON-linje inn i slagene som flyr et spor. Hvert format valideres mot sin publiserte spesifikasjon, og et scenario et format ikke gjelder for sier hvorfor: se docs/INTEROP.md.

Andre CLI-moduser — lint et scenario, mat inn reelle data om jordens orientering eller kjø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

Animasjonseksport. --animate svg|html|frames|all skriver <scenario>.animation.svg (Cascading Style Sheets (CSS)-keyframes, uten skript), <scenario>.animation.html (avspilling, pause, skrubbing, hastighet og synkroniserte paneler, uten ekstern ressurs) og <scenario>.frames/ (frame_0000.svg, … pluss manifest.json med bilder per sekund og varighet). En kampanje spiller av fasene og alarmene sine, en spektrumkjøring sitt fossefall; temaet følger prefers-color-scheme og prefers-reduced-motion viser det ferdige bildet. Den gjengir kjøringens egne sampler, byte-identisk ved ny kjøring, og legger ikke til noen evidens. Se docs/ANIMATION.md.

Et suite-manifest er en liten TOML-fil (Tom's Obvious, Minimal Language) — en title og en scenarios = [ … ]-tabell med scenariostier — som motoren kjører i tur og orden, og som samler hvert resultat (med merkelappene MODELLED / VALIDATED) i én selvbeskrivende studieartefakt. Se scenarios/quantum-pnt-demonstrator.suite.toml.

Rolle i interoperabilitet. Kshana er laget for ytelsessimulering ved siden av verktøykjeden for etterbehandling, ikke som en erstatning for den: mat RINEX-utdataene inn i RTKLIB eller gLAB for en posisjonsløsning, og bruk SP3-utdataene som presist banedata for verktøy som Ginan — Kshana svarer på hvilken robusthet en gitt PNT-arkitektur gir før du har reelle signaler, i formater disse verktøyene allerede tar inn (--export-sp3, eller export_sp3 = true i et orbit-scenario, skriver <scenario>.sp3). Den samme banen kan publiseres som CCSDS OMM-middelelementer på standardiseringsspor (--export-omm, eller export_omm = true, skriver <scenario>.omm) — én OMM 502,0 KVN-melding (nøkkelord = verdi-notasjon) per TLE-definert satellitt, med hvert objekts reelle NORAD-katalognummer (North American Aerospace Defense Command), internasjonale COSPAR-betegnelse (Committee on Space Research) og epoke, for enhver OMM-bevisst mottaker i stedet for et skreddersydd to-linjers elementsett.

Eksempel på utdata (klokkens holdover — legg merke til hvordan kvalitetsmålene for integritet og sikkerhet 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

Den optiske klokkens timingfeil på 95-persentilen (p95) er 1.20e-4 ns: sammendraget skriver ut små verdier med gjeldende siffer i stedet for å avrunde dem til 0.0. security viser n/a (no attack) fordi dette scenarioet ikke konfigurerer noe angrep, så det er ingenting å oppdage. JSON-resultatet har likevel hver klokkes analytiske grense for deteksjon av spoofing i fom.security (0,997 for den optiske klokken, 0,000 for atomklokken i brikkeformat, hvis egen støy over overvåkingsvinduet overskrider spesifikasjonen på 20 ns), og blokken figure_tiers merker det tallet applicable: false. Scenarioslaget spoof scorer deteksjon mot et injisert angrep. figure_tiers gir også hvert rapporterte tall sitt verifikasjonsnivå — VALIDATED (kontrollert mot en ekstern uavhengig referanse) eller MODELLED — og raden i verifikasjonsmatrisen nivået leses fra. Banescenarioet rapporterer i tillegg en geometriblokk — andel av sampler med posisjonsbestemmelse, og beste/median posisjons-dilution of precision (PDOP) og posisjonsnøyaktighet — ved siden av klokkeresultatet.

Les disse to tallene nøye. security er en analytisk grense for deteksjon av spoofing utledet fra hver klokkes stabilitet — den er bare meningsfull mot et konfigurert spoofingscenario og er ikke en RAIM-detektor med flere satellitter. integrity her er filterets egenkonsistens (andelen av bortfallssampler innenfor filterets egen k-sigma-grense), ikke et integritetstall for HPL/VPL i luftfart. Se docs/INTEGRITY.md.

For ekte autonom integritet i mottakeren kjører scenarioslaget integrity (scenarios/integrity-raim.toml) ekte snapshot- og løsningsseparasjons-RAIM (ARAIM-stil) over geometrien til den propagerte konstellasjonen: det beregner horisontale/vertikale beskyttelsesnivåer (HPL/VPL) per epoke og rapporterer andelen epoker som oppfyller de konfigurerte alarmgrensene, med et Stanford-integritetsdiagram for klassifisering av feil mot PL (beskyttelsesnivå).

Reproduserbare studieartefakter

Fire åpne studier regenererer hver en bytedeterministisk artefakt (fast seed) fra én kommando — tallene bak studiene av krysningspunktet mellom kvante og klassisk, optimismegapet for RF-forstyrrelser, scoring av PNT-robusthet og tidsbeskyttelsesnivå:

# 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

Hver artefakt registrerer motorversjon, seeder og en konfigurasjonshash og bærer en ærlig merkelapp MODELLED/VALIDATED. Probene med reelle data (*_probe) kjører den samme pipelinen over opptak du leverer lokalt; ingen datasett følger med i repositoriet. Studien av optimismegapet for RF-forstyrrelser er skrevet opp i preprinten arXiv:2606,22054, og det betingede tidsbeskyttelsesnivået (tpl_jammertest ovenfor) i preprinten arXiv:2606,24210 (se Siter).

De publiserte månestudiene for PNT (arXiv:2607,06212 DOP for fyrlykter på overflaten, arXiv:2607,02566 observerbarhet med VLBI og arXiv:2610,23871 observerbarhet av buelengde i cislunar rom) har påstandene sine om geometri, dilution of precision, sanntidsprediksjon av referansesystem / parametere for jordens orientering (EOP), distante retrograde baner og RF-avstandsmåling uavhengig kryssjekket i tests/validate_p*.rs mot separate uavhengige referanser (scipy.special.j1, en uavhengig NumPy-løsning av DOP med (HᵀH)⁻¹, en NumPy-omparsing av de samme IERS-radene finals2000A og databasen NASA/JPL Three-Body Periodic Orbit Database). Dette er ekstra regresjonskontroller over den modellerte månesuiten; de endrer ikke antallet i den maskinkontrollerte matrisen.

Scenarioformat

Scenarioformat#

Scenarioer er deklarative TOML. Et kind på toppnivå velger pakken — femti i alt (clock er standard hvis det utelates): 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 (testbenk for evaluering av deteksjon av RF-forstyrrelser med maskinlæring — merket syntetisk korpus + detektoragnostisk ROC/AUC-løype + optimismegap i og utenfor fordelingen), quantum-trade (kvante-mot-klassisk PNT-avveining med innlesing av målt ADEV + konvolutt for robusthet i GNSS-nektet miljø; MODELLED), space-weather (sol-/geomagnetiske indekser + eksosfærisk temperatur etter Jacchia-71 + aktivitetsdrevet termosfærisk tetthet over den statiske atmosfæren; MODELLED), oem-interop (CCSDS OEM-bro for import/rundtur for efemerider fra GMAT/Orekit/STK; MODELLED), trioen for oppdragsanalyse launch-window (oppskytingsazimut / planendring / muligheter for to legemer), reentry (ballistisk innstigningskorridor etter Allen-Eggers), eo-coverage (EO-geometri for svatbredde / GSD / tilgang / revisitt), space-packet (CCSDS 133,0 TM/TC — telemetri/telekommando — Space Packet-innramming — eksakt bitlayout, verifisert ved rundtur) og attitude-budget (3-DOF gravitasjonsgradientmoment + RSS-budsjett for pekefeil), passes (prediksjon av bakkestasjonsoverflyvninger med soloppgang/-nedgang — AOS/TCA/LOS, maksimal elevasjon, tilgang) og link-budget (enveis CCSDS/DSN-linkligning — FSPL / Eb·N₀ / margin / lukking); telecom-timing (tidsfeil i holdover, MTIE og TDEV kontrollert mot ITU-T-masker); spectrum (hele GNSS L-båndet som én effekttetthetsspekter: et fossefall av frekvens mot tid under en skriptet tidslinje for jammer med kontinuerlig bølge, smalbånd, chirp eller matchet støy, forhold mellom jammer og signal per bånd og effektiv bærebølge-til-støytetthet fra den spektrale separasjonskoeffisienten, og inn- og utdata av opptak i Signal Metadata Format (SigMF) med Welch-spektralestimater; signalspektrene VALIDATED mot lærebokverdier, jammerscenarioet MODELLED; se docs/SPECTRUM.md; det samme slaget tegner paneler for UHF-, S- og C-bånd med utformede signaler for lav jordbane); leo-signal (signalutforminger for posisjonering, navigasjon og tidssynkronisering i lav jordbane for et hvilket som helst system: båndbegrensede spektre, jitter i kodesporing og nøyaktighet i avstandsmåling, innhentingssøk og -tid, spektral separasjon mot GPS og Galileo, jammertoleranse og en avveining mellom UHF og C-bånd, fra offentlige forhåndsinnstillinger som Xona Pulsar, Iridium, Starlink og CentiSpace eller innebygde utforminger; formene i lukket form og LEO-Doppler VALIDATED, utformingene MODELLED; se docs/LEO-SIGNAL.md); solar-system (Solen, planetene, Pluto, Månen og sju store måner ved én epoke — posisjoner, konstanter, lystider og banespor; planetposisjoner VALIDATED mot JPL Horizons) og body-pnt (posisjonering rundt et hvilket som helst av disse legemene med en lokal navigasjonskonstellasjon og en dypromslink fra jorden; MODELLED); campaign (eksisterende slag satt sammen til en lenket oppdragstidslinje med tilstand gitt videre mellom fasene, et parametersveip, et Monte Carlo-ensemble med seed eller flere scenarioer under én felles betingelse; MODELLED, se docs/CAMPAIGNS.md); constellation-design (Walker-delta- og stjernemønstre, elementlister og utforminger med flere skall med forhåndsinnstillinger for GPS, Galileo, BeiDou og GLONASS, og dekning og dilution of precision over et breddegrad/lengdegrad-rutenett; generatoren og global GPS-DOP VALIDATED mot de publiserte tjenestedokumentene, se docs/CONSTELLATION-DESIGN.md); leo-pass (en overflyvning av en satellitt for posisjonering, navigasjon og tidssynkronisering (PNT) i lav jordbane (LEO) og dens linkbudsjett bånd for bånd, fra en hvilken som helst konstellasjon og signalutforming: synsvinkler, Doppler og Doppler-rate, ITU-R-tap fra regn, gass, scintillasjon og innendørs bygningstap, bærebølge-til-støytetthet mot MEO GNSS-satellittene i sikte, førsteordens ionosfære og ionosfærefrie par og et lavenergibudsjett for posisjonsbestemmelse, ionosfæresondering fra hvert båndpar og spoofingmonitorer ved konsistens i Doppler og overflyvningsgeometri og ved konsistens mellom bånd; ITU-R-leddene og Doppler-envelopen for statisk bruker VALIDATED, overflyvningen MODELLED, se docs/LEO-PASS.md); leo-navmsg (kringkastet efemeride- og klokkemelding fra en PNT-satellitt i lav jordbane (LEO), for en hvilken som helst bane og bærebølge: en tilpasser fra en integrert referansebane til Galileos keplerske sett, det settet med korreksjonspolynomer langs sporet, på tvers av sporet og radialt, modellen med 22 parametere fra Liu et al. 2025 eller ATOMIC-polynomet i ECEF uten klokke; avstandsfeil for signal i rommet (SISRE) mot tilpasningsintervall og oppdateringsperiode, en kontinuitetskontroll for oppdatering midt i overflyvningen, Kshanas egen dokumenterte binære ramme med en syklisk redundanskontroll CRC-24Q og et kvantiseringsbudsjett og en blokk i RINEX-4-stil merket som en Kshana-utvidelse; SISRE-vektene, Galileo-brukeralgoritmen og CRC-24Q VALIDATED, tilpasningene MODELLED; valgfrie forhåndsinnstillinger for Xona Pulsar, Iridium, Starlink, CentiSpace, et representativt C-bånd-system, ATOMIC og Celeste IOD; se docs/LEO-NAVMSG.md); trioen for fusjonert MEO + LEO PNT leo-pvt (Doppler-posisjonsbestemmelse fra avstandsrate i lav jordbane (LEO), felles pseudoavstandsløsninger for GNSS + LEO med intersystembiaser og DOP mot antall LEO-satellitter, dekning ved polene og i Arktis og LEO-tidsoverføring til UTC — over en hvilken som helst konstellasjon, med valgfrie forhåndsinnstillinger som Xona Pulsar, Iridium og Starlink-signaler ved anledning; LEO-Doppler-envelopen VALIDATED mot publiserte Iridium- og Xona-tall), leo-ppp (konvergens i presis punktposisjonering med bare GNSS og med LEO-augmentering, sammenlignet med Li et al. 2019) og ntn-positioning (5G-posisjonering i ikke-terrestriske nett fra Cramér-Rao-grensen for signalbåndbredden), MODELLED bortsett fra den envelopen, se docs/LEO-PNT-FUSION.md; leo-pnt-chain (ett LEO-PNT-system fra ende til ende: en utforming leo-signal båret av et bånd leo-pass, overflyvningens C/N0 og navigasjonsmeldingens avstandsfeil for signal i rommet gitt videre til en fusjonert posisjonsbestemmelse leo-pvt og konvergens leo-ppp, hver overlevering listet; MODELLED, se docs/LEO-PNT.md, som også er oversikten over hvert LEO-PNT-slag og -scenario, inkludert robusthetskampanjene, ett scenario per fokusområde i eksperimentet og ett per sluttbrukervertikal); PNT-suiten for Månen lunar-vlbi, lunar-joint-od-clock, lunar-frame-realisation, moonlight-service-volume, lunar-differential-pnt, lunar-interop-export; demonstratoren for kvanteaktivert PNT quantum-time-transfer, quantum-gnss-free-nav, quantum-anomaly-detect; og forskningsslagene for signalsikkerhet, cislunar og lagdelt robusthet lunar-attack-surface, realtime-frame-eop, lunar-time-budget, hybrid-optical-rf, cislunar-observability, conflict-resilience — trioen for oppdragsanalyse og disse senere slagene alle MODELLED (hver med en validert kjerne i lukket form; se matrisen). Felles felt: seed, et [time]-rutenett, en [gnss]-tidslinje for tilgjengelighet (det som driver bortfallet) og blokker per sensor med provenance-strenger som siterer kilden for hvert tall. Eksempel (klokke):

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 felt (av når de mangler): en klokke kan legge til flicker_floor (1/f FM – frekvensmodulasjon – Allan-gulv); en treghetssensor kan legge til gyro_bias og q_arw (gyrobias og angulær tilfeldig gange), og bias_instability og q_aa (Allan-gulvet for biasustabilitet og akselerasjonens tilfeldige gange) – til sammen et enakset (1-DOF) feilbudsjett for akselerometer (VRW/ARW – hastighetens og vinkelens tilfeldige gange – og biasustabilitet). Dette er feilbudsjettet som den medfølgende scenario-pakken inertial kjører. I tillegg har biblioteket nå en verifisert 3-akset strapdown-navigator (src/inertial/{attitude,mechanization,imu_errors}.rs): kvaternionbasert orientering med coning/sculling-kompensasjon, en full NED-mekanisering (ledd for jordrotasjon og transportrate, WGS-84 Somigliana-tyngde) og en deterministisk IMU-feilmodell der skalafaktor, skjevstilling, g-følsomhet, kvantisering og ratterampe er modellert (IEEE Std 952-1997, IEEE-standarden for spesifikasjon og testprosedyre for gyroer, §A.2; Groves 2013 §4,3). Denne 3-akse-banen er nå koblet inn i en kjørbar, løst koblet GNSS/INS-pakke (kind = "gnss-ins"): et feiltilstands-EKF med 15 tilstander styrer strapdown-løsningen mot støyende posisjonsbestemmelser mens GNSS er tilgjengelig, og ruller deretter gjennom bortfallet og rapporterer den fusjonerte horisontale feilen mot den åpne sløyfens frie INS-rulling. En tett koblet pseudorange-oppdatering er også tilgjengelig (den danner innovasjonen i avstandsdomenet og fortsetter derfor å korrigere med færre enn fire satellitter). Et scenario for klokke-holdover kan legge til runs (> 1) for å kjøre et Monte Carlo-ensemble – hvert kvalitetsmål rapporteres da som et gjennomsnitt med en spredning mellom 5. og 95. persentil, og diagrammet skraverer konfidensbåndet for feilen (se scenarios/clock-ensemble.toml).

Et fusion-scenario (samme blokker som hybrid) kjører to uavhengige Kalman-estimatorer – én for klokketilstanden og én for posisjonstilstanden – styrt av GNSS og støttet av optisk tidsoverføring, og rapporterer et samlet kvalitetsmål for holdover. De to blokkene deler ingen kryssovarians: dette er et sammenstilt par av feilbudsjetter, ikke et ekte koblet felles filter for klokke og posisjon (kovarians på tvers av blokkene står på veikartet). Se scenarios/fusion-pnt.toml.

Et spoof-scenario injiserer en tidsspoofing – én av fire [attack.shape]-typer (linear_ramp, step_jump, meaconing, replay; en enkelt rate_ns_per_s godtas fortsatt som en lineær rampe) – og kjører spoofingdetektoren til hver klokke. Detektoren er en tosidig χ²₁-energitest / Neyman–Pearson-test på klokkestøttet overvåkingsstatistikk: terskelen settes ut fra et mål for falsk-alarm-budsjettet target_pfa, og sannsynligheten for udetektert hendelse P_md rapporteres både på lukket form og med Monte Carlo (mc_runs forsøk per hypotese – de to stemmer overens innenfor noen få ganger 1/√N). Kvalitetsmålet for sikkerhet er 1 − P_md ved den operativt skadelige (spesifiserte) størrelsen, slik at en stille klokke som fanger opp en spoofing av spesifisert størrelse får ≈ 1, mens en støyende klokke som ofte går glipp av den får lavere (se scenarios/spoof-attack.toml, scenarios/spoof-meaconing.toml).

Et gnss-sim-scenario er en simulering i målingsdomenet: for hver synlige satellitt syntetiserer det pseudoranget ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath og L1-Doppler, med den enfrekvente Klobuchar-ionosfæren ([iono], IS-GPS-200 §20.3.3.5.2.5) og Saastamoinen-zenittroposfæren projisert med mappingfunksjonen Niell (1996) ([tropo]). Residualene mates inn i snapshot-RAIM for HPL/VPL per epoke, og hver satellitts pseudorange, Doppler, C/N₀ og iono-/tropo-korreksjoner sendes ut i JSON-tabellen gnss_measurements. Det er en foroverrettet simulator (den genererer målinger ut fra en kjent referanse), ikke en mottaker eller løser – en kjøring uten støy gjenskaper geometrien pluss korreksjonene ned på submillimeternivå (se scenarios/gnss-sim-raim.toml).

Et jamming-scenario modellerer RF-interferens som et linkbudsjett: en [jammer] (ECEF-posisjon, sendt power_dbw, type) øker forholdet mellom jammer og signal hos en [receiver] som observerer en Walker-[constellation]. Ut fra geometrien (frirom-banetap og mottaksantennens forsterkning i hver retning) beregner det hver satellitts J/S og den effektive C/N₀ med standard anti-jam-ligning (prosesseringsgevinst fra spredning × spektralseparasjonsfaktoren Q; Kaplan & Hegarty §9,4), og markerer tap av lås under en konfigurerbar sporingsterskel – og rapporterer et kvalitetsmål availability_under_jamming. En bredbånds-jammer på 10 W på 1 km avstand gjør mottakeren helt ubrukelig (J/S ≈ 72 dB); den samme jammeren på 100 km svekker bare linkene (se scenarios/jamming-demo.toml).

Et sweep-scenario kjører en avveiningsstudie: 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 (for eksempel holdover_s) for begge klokkene og tegner de to kurvene. Basisscenarioet legges under [base] (se scenarios/sweep-clock-stability.toml).

Et sweep-nd-scenario generaliserer dette til en hvilken som helst pakke og et hvilket som helst antall akser: det varierer TOML-nøkler med punktum i et [base]-scenario (av en hvilken som helst kind) over det kartesiske produktet av [[axes]], kjører hver rutenettnode på nytt og registrerer metrics oppgitt som JSON-stier med punktum inn i resultatet (for eksempel classical.fom.holdover_s). Det fungerer for alle pakker fordi det virker i grensesnittet mellom TOML og resultat; native kjøringer evaluerer rutenettet parallelt (uten ekstra avhengighet, wasm faller tilbake til sekvensiell kjøring), og utdataene er deterministiske og radvis (se scenarios/sweep-nd-inertial.toml).

Et orbit-scenario utleder [gnss]-tidslinjen fra geometri i stedet for å skrive den inn – oppgi en [user]-bane, en [constellation], en elevasjonsmask_deg og de to klokkeblokkene. Det rapporterer også posisjonsnøyaktighet ut fra satellittgeometrien; den valgfrie sigma_uere_m (1-sigma brukerekvivalent avstandsfeil, standard 1 m) skalerer posisjonens presisjonsfortynning til et posisjonssigma. Brukerbanen kan gjøres eksentrisk med eccentricity og argp_deg, og j2 = true legger til sekulær drift fra jordens avplatning (se scenarios/orbit-molniya.toml). Konstellasjonen kan i stedet være en ekte: gi [constellation] en tle-blokk med to-linjers elementsett, så leses satellittene derfra (se scenarios/orbit-real-tle.toml). Legg til én eller flere [[constellations]]-blokker for multi-GNSS (for eksempel 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

Typene for GPS-denied alt-PNT navigerer helt uten GNSS og matcher en målt feltsekvens mot et kart gjennom et partikkelfilter. Et gravity-map-scenario flyr et spor gjennom et gravitasjonsanomalifelt av sfæriske harmoniske og gjenfinner det ut fra avlesningen til et kaldatom-gravimeter (scenarios/gps-denied-gravity-nav.toml); et terrain-nav-scenario gjør det samme mot en SRTM-høydemodell (TERCOM/SITAN, scenarios/terrain-nav.toml); og et combined-altpnt-scenario fusjonerer gravitasjon + IGRF-magnetfelt + terreng i ett filter (scenarios/combined-altpnt.toml).

Et lunar-integrity-scenario evaluerer cislunar PNT: det kjører en ARAIM-beskyttelsesnivåberegning ved månens sørpol mot et sett LunaNet/LNIS-relé og rapporterer ærlig integritetsgapet – en lunar σ_URE på ~30 m driver beskyttelsesnivået godt over en varslingsgrense på 50 m, slik at tjenesten er utilgjengelig under integritetsregler i luftfartsstil (scenarios/lunanet-araim.toml).

Et lunar-time-offset-scenario rapporterer den relativistiske klokkeraten mellom jorden og månen – grunnlaget for en tidsskala for lunar koordinattid (LTC/TCL). En post-newtonsk identitet fra første prinsipper summerer forskjellen i selvpotensial (IAU L_G geoidepotensial minus månens overflatepotensial) og månens kinetiske ledd (andre ordens Doppler) til en sekulær rate på ≈ 57 µs/døgn, rapportert sammen med det publiserte båndet på 56–59 µs/døgn; det gir også den akkumulerte LTC−TT-forskjellen over en horisont og et ensemble med invers varians (en lunar papirklokke). MODELLED – hovedtallet er referanseavhengig (jordens geoide mot månens selenoide, midlingsvindu), og derfor rapporteres et bånd, ikke ett enkelt sertifisert tall (scenarios/lunar-time-offset.toml).

Se scenarios/ for minst ett gjennomarbeidet eksempel på hver type (92 typer, 193 scenario-.toml-filer + 1 suitemanifest – flere typer har mer enn ett eksempel). Ikke alle typer har en fil oppkalt etter seg: lunar-integrity → scenarios/lunanet-araim.toml og gravity-map → scenarios/gps-denied-gravity-nav.toml er to av flere slike. Du kan når som helst liste de tilgjengelige typene med cargo run -- --validate <file>-feil, Python-funksjonen list_kinds() eller MCP-verktøyet list_scenario_kinds.

Utdata

Utdata#

Resultatartefakten er versjonert, selvbeskrivende JSON: tidsserier per steg, de beregnede kvalitetsmålene, de aktive modellspesifikasjonene (med proveniens), seedet, en scenario-hash – slik at ethvert diagram kan gjenskapes fra filen – og, for hver klokke, en adev_curve ([{tau_s, adev, n_samples, noise, edf, ci_lo, ci_hi}]): den overlappende Allan-deviasjonen over middelingstider med oktavavstand – den vanlige måten å lese en klokkes stabilitet på – nå med et støytypespesifikt 95 %-konfidensbånd per punkt (postens potenslovtype identifiseres fra den modifiserte Allan-helningen, og χ²-intervallet bruker de tilsvarende effektive frihetsgradene fra NIST SP 1065). Nettleser-playgrounden viser den som et log-log-diagram «Clock stability (ADEV)». (MDEV, TDEV og HDEV finnes som bibliotekestimatorer; den eksporterte resultatkurven er den overlappende ADEV.) Hvert felt, med enheter og en kildehenvisning, er dokumentert i docs/SCHEMA.md.

Hvert diagram er selvbeskrivende. Nettleser-playgrounden, CLI-ens *.chart.svg-eksport og HTML-resultatkortet (HyperText Markup Language) stempler alle diagrambilder med en bunntekst som lyder Kshana v<version> · scenario <hash> · kshana.dev. scenario <hash> er de første 12 heksadesimale tegnene i kjøringens scenario-hash – en SHA-256-sammendrag (256-biters Secure Hash Algorithm) over den kanoniske scenariodefinisjonen (seed, terskler, modellparametere, GNSS-vinduer, …); integritets- og månerapportene, som ikke har noen egen hash, faller tilbake til en SHA-256 av scenariokilden. Det er det samme fingeravtrykket som vises i enlinjesammendraget og i resultat-JSON-en, slik at et lagret eller limt inn diagram alltid bærer versjonen, det nøyaktige scenarioet som produserte det (for bit-for-bit-gjenskaping) og kilden – endrer du en inndata, endres hashen.

Kvalitetsmålene følger de vanlige operative kvalitetsmålene for PNT:

Kvalitetsmål Hvordan Kshana beregner det
Tidsytelse (klokke-/banepakker) RMS og 95. persentil av klokkefasefeilen over bortfallet, i nanosekunder (timing_rms_ns) – et mål for tidssynkronisering, ikke for posisjon
Posisjonsytelse (treghets-/hybridpakker) RMS og 95. persentil av 1-DOF-posisjonsfeilen over bortfallet, i meter (pos_rms_m); enakset. En enkelt kjøring markeres med monte_carlo: false; sett runs = N for et Monte Carlo-ensemble som rapporterer hvert måls gjennomsnitt, spredning og bootstrap-95 %-KI (konfidensintervall). Fortsatt ikke en 2-D CEP/2DRMS (circular error probable / dobbelt rot av middelkvadrat for avstanden) eller DOP-vektet nøyaktighet (de krever 3-akse-modellen – står på veikartet)
Autonomi holdover-varighet – tid innenfor spesifikasjonen etter GNSS-tap (kvantisert til rutenettet: en nedre grense)
Robusthet feilvekstens stigning under bortfallet
Tilgjengelighet andel av kjøringen med en løsning innenfor spesifikasjonen
Integritet filterets selvkonsistens – andel av bortfallsprøvene der feilen holder seg innenfor Kalman-filterets egen k-sigma-grense. Ikke et integritetsmål for luftfart av typen HPL/VPL/RAIM (se docs/INTEGRITY.md)
Sikkerhet analytisk grense for påvisbarhet av spoofing ut fra klokkestabilitet – hvor liten eller langsom en tidsspoofing en konsistensmonitor for én klokke kunne flagge. Meningsfull bare med et konfigurert angrep; ikke en RAIM-detektor for flere satellitter

Ny med disse begrepene? Hvert av dem er forklart på vanlig språk i ordlisten.

Oppbygging av depotet

Oppbygging av depotet#

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 stilte spørsmål)

FAQ#

Må jeg forstå kvantefysikk for å bruke dette? Nei. Hvis du kan kjøre en kommandolinje, kan du kjøre Kshana. Begynn med innføringen på vanlig språk; slå opp begreper i ordlisten.

Er dette en utforming av kvantemaskinvare eller flyprogramvare? Nei. Det er en simulator for ytelse. Kvantemaskinvarens nøyaktighet kommer fra publiserte feilmodeller, ikke fra dette verktøyet. Se Hva det er og ikke er.

Er kvanteresultatene realistiske, eller markedsføring? Hver parameter er sitert til et datablad eller en artikkel, hver modell er validert mot en lærebokrelasjon, og modenhet er merket ærlig i VALIDATION.md – inkludert at ingen strontium-optisk klokke har fløyet. Motoren er nøytral: kvante og klassisk er den samme koden med ulike publiserte tall.

Kan jeg stole på at to kjøringer gir det samme? Ja – kjøringene er deterministiske: scenario + seed + engine version → bit-identical output, håndhevet av scripts/check-reproducible.sh.

Kan jeg bruke det fra Python eller i en nettleser? Ja – se Installasjon: Python- og WebAssembly-eksemplene står under den. Begge kaller den samme motoren.

Hvordan modellerer jeg min egen sensor? Skriv et scenario-.toml med sensorens publiserte tall i provenance-feltene. Se Scenarioformat og eksemplene i scenarios/.

Er det gratis til kommersiell bruk? Ja – under AGPL-3.0, også i kommersielle sammenhenger, så lenge du respekterer AGPLs copyleft (særlig: hvis du endrer Kshana og tilbyr det over et nettverk, må du tilby de brukerne den endrede kildekoden). Hvis det ikke passer deg – for eksempel fordi du må bygge Kshana inn i et proprietært produkt eller drive en lukket nettverkstjeneste – kan du få en kommersiell lisens fra Ashforde® OÜ; se LICENSING.md og Støtte.

Feilsøking

Feilsøking#

cargo build feiler med en gammel verktøykjede. Kshana krever Rust ≥ 1,88. Oppdater med rustup update.

Bygging av Python-utvidelsen feiler under lenking på macOS (Undefined symbols … _Py…). En Python-utvidelse løser symbolene sine ved innlasting. maturin setter riktig lenkerflagg automatisk – bruk maturin develop --features python i stedet for en bar cargo build.

Python-bygget klager over at tolken er nyere enn PyO3 kjenner til. Sett PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 (abi3-hjul er framoverkompatible på tvers av CPython-versjoner).

WebAssembly-bygget finner ikke målet. Installer det én gang med rustup target add wasm32-unknown-unknown, og kjør deretter wasm-pack build --target web -- --features wasm.

Hvor ble det av utdataene mine? Hver kjøring skriver <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html og <scenario>.report.json ved siden av inndata-.toml, og <scenario>.table.csv i tillegg for de typene som publiserer en tabell. Alle disse er git-ignorert med vilje.

Versjonering og utgivelser

Versjonering og utgivelser#

Kshana følger semantisk versjonering. Før 1.0 kan det offentlige scenario-/resultatskjemaet fortsatt endres; brytende endringer pekes ut eksplisitt i CHANGELOG.md. Hvert resultat kan gjenskapes fra scenario + seed + engine version.

Hver vX.Y.Z-tagg publiserer alle kanaler automatisk, i én bestemt rekkefølge – hele testsuiten kjøres først på den taggede commiten, ingenting publiseres før den består, og etterpå kontrollerer pipelinen at hvert register faktisk leverer den nye versjonen (docs/RELEASING.md). Kanalene:

En passasje som nevner AI-klienter fra tredjepart er utelatt her; den står i README.md på GitHub.

En passasje som nevner AI-klienter fra tredjepart er utelatt her; den står i README.md på GitHub.

Kanal Installer / hent Innhold
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-hjul (Linux/macOS/Windows) + sdist (kildedistribusjon)
npm npm install kshana WebAssembly-modul + JS-omslag
ghcr.io docker run -i ghcr.io/ashfordeou/kshana-mcp OCI-image (Open Container Initiative) for flere arkitekturer – ingen verktøykjede nødvendig
npm npx -y kshana-mcp@0.40.0 starter: laster ned binærfilen for utgivelsen, verifiserer SHA256SUMS, kjører den
PyPI uvx kshana-mcp==0.40.0 · pipx run kshana-mcp==0.40.0 den samme starteren for Python
Homebrew · Scoop · winget brew install ashfordeOU/tap/kshana-mcp · scoop install kshana-mcp · winget install AshfordeOU.KshanaMcp kshana-mcp-binærfilen, generert fra hver utgivelses SHA256SUMS
det offisielle MCP-registeret oppdages automatisk av MCP-klienter io.github.ashfordeOU/kshana-mcp (OCI-image, npm- og PyPI-pakker)
JetBrains Marketplace IDE → Plugins → søk etter «Kshana» IDE-pluginen Kshana — PNT simulator
Zenodo DOI et siterbart arkiv av hver utgivelse
kshana.dev åpne i en nettleser Kshana Studio, WebAssembly-appen i nettleseren, bygget på nytt fra hver utgivelsestagg (slik at versjonen den viser er versjonen den kjører)

MCP-serverens crate-, image- og registerversjon følger motoren (den bundler biblioteket); JetBrains-pluginen har uavhengig versjonering (den kaller den installerte kshana-binærfilen din).

Veikart

Veikart#

Se ROADMAP.md for det trinnvise veikartet, CHANGELOG.md for utgitt historikk og docs/CAPABILITY.md for veikartet per funksjon. Prioriteringsrekkefølgen er: først evidens for tidssynkronisering og holdover for kritisk infrastruktur (telekommasker, lengre holdover med aldring og flickerstøy, innlesing av målte klokkedata); deretter den nøytrale avveiningsmetoden mellom kvante og klassisk (resultater merket MODELLED til en partners målte data løfter dem); og lunar/cislunar og dypromsnavigasjon vedlikeholdes, men utvides ikke som hovedsatsing. Den ITRF-presise referanserammereduksjonen er nå levert – hele CIO-baserte IAU 2006/2000A GCRS↔ITRS-kjeden (polbevegelse + nutasjon på under en buesekund), validert bit-for-bit mot SOFA/ERFA og uavhengig kryssjekket mot ANISE (SPICE i ren Rust) til ≤ 3,6 m i GNSS-bane. Nærliggende punkter omfatter tett koblet bærebølgefase-fusjon og å gjøre den løst/tett koblede GNSS/INS-navigatoren tilgjengelig i flere pakker; motoren for radiometrisk navigasjon i dypt rom / til Mars kom i v0.17.0 (validert i simulering). Kvantefysikklaget er et P2-punkt: CAI-akselerometeret simuleres nå fra første prinsipper (Mach–Zehnder-fase, projeksjonsstøy, kontrastavtak, vibrasjonskobling), mens klokke- og tidsoverføringssensorene fortsatt drives av publiserte Allan-/støybudsjettkoeffisienter. GMST-basert TEME&harr;ECEF, IERS-skuddsekundets tidssystemer (UTC/TAI/TT/UT1), SGP4/SDP4-banepropagering (v0.7.0, validert mot AIAA 2006-6753-vektorene) og den kjørbare gnss-ins-fusjonspakken er alle levert, og treghetshastigheten er gjort tilgjengelig videre nedstrøms. En aktiv stokastisk tidsspoofingdetektor (Neyman–Pearson / χ²₁-energitest med Monte Carlo-P_fa/P_md og et sikkerhetskvalitetsmål på 1−P_md), en linkbudsjettmodell for jamming (J/S → effektiv C/N₀ → tap av lås), tilgjengelighet for flere konstellasjoner, et enakset (1-DOF) IMU-feilbudsjett, to uavhengige Kalman-estimatorer (klokke + posisjon) rapportert som ett samlet kvalitetsmål, reell konstellasjonsgeometri fra TLE-er, en HTML-resultatrapport, geometriavledet GNSS-tilgjengelighet og presisjonsfortynning fra Kepler-baner med eksentrisitet og J2-drift, Monte Carlo-konfidensbånd, parametersveip for avveiningsstudier, en WebAssembly-playground i nettleseren og valgfrie bindinger for Python (PyO3) og WebAssembly (wasm-bindgen) er landet på main.

Bidra

Bidra#

Se CONTRIBUTING.md. Kort sagt: testene består (cargo test), de to vaktskriptene består, Conventional Commits, og en oppføring i CHANGELOG.md under [Unreleased] for hver endring som er synlig for brukeren. Deltakelse styres av vår atferdskodeks. For å rapportere et sikkerhetsproblem, se sikkerhetspolicyen – ikke åpne en offentlig sak for sårbarheter.

Dokumentasjon: hvert dokument og hvem det er for

Dokumentasjon#

Dokument For hvem Hva det inneholder
Grunnleggende om konsepter alle, begynn her hva Kshana gjør og hvorfor, fra bunnen av til fysikken
Kshana Studio alle kjør motoren i nettleseren din (WebAssembly); merknader om bygging og utrulling
Ordliste alle definisjoner på vanlig språk av hvert begrep
Scenariotyper alle hver type motoren kjører: hva den gjør, feltene, et eksempel på en kommando, registerradene og diagrammet motoren skriver for den
Partnerdata laboratorier og produsenter som har målte data hvilke MODELLED-rader en målt klokke- eller IMU-registrering kan løfte, formatene, hvordan en innsending kontrolleres (kshana partner check), skåres og krediteres
Arkitektur utviklere / gjennomgangspersoner modulkart, motorens pipeline, dispatch og diagrammer
Valideringsstatus gjennomgangspersoner / siterere hva som er validated og not modeled, med evidens
Verifikasjonsmatrise gjennomgangspersoner / siterere det maskinkontrollerte evidensregisteret – hver funksjonsrad med status, modul, test og ekstern uavhengig referanse, generert fra src/verification.rs
Begrunnelse for modellert gjennomgangspersoner hvorfor hver modellert-rad mangler en ekstern uavhengig referanse, forklart rad for rad
Opphav gjennomgangspersoner / siterere hver sensorparameter, modell og hvert datasett sporet til sin publiserte kilde, i én siterbar tabell
Reproduserbarhet og proveniens gjennomgangspersoner / pakkeansvarlige determinismegarantier, golden-festing, SBOM (software bill of materials), byggeproveniens
Plattformtagger for hjul pakkeansvarlige abi3-matrisen for Python-hjul – hvilken plattformtagg pip install kshana velger
Posisjonering vurderere hvor Kshana står i forhold til RTKLIB/gLAB (utfyllende), og nettleserlaget uten installasjon
Kshana Pro vurderere / programledere hva det proprietære Pro-laget legger til over den samme motoren: utformingsoptimerer, usikkerhet og følsomhet, oppdragsdossier, kampanjeovervåking, spektrumsameksistens, tjeneste for jobber på eget anlegg, sporbarhet mot krav; hva hver av dem produserer og hva den ikke gjør
Teknisk rapport · JOSS-artikkel gjennomgangspersoner / siterere / vurderere hele den utvidede forskningsartikkelen – arkitektur, modeller per domene, validering, casestudier og begrensninger – pluss den korte JOSS-innsendingen (Journal of Open Source Software)
SGP4-validering gjennomgangspersoner / siterere overensstemmelse med AIAA 2006-6753-referansen (666 tilstander, ~4 mm) og en direkte sammenligning med den uavhengige sgp4-cratet (stemmer overens på submikrometernivå / 4,12 mm)
Validering av kraftmodellen gjennomgangspersoner / siterere motoren med full kraftmodell (src/precise_od.rs) tilpasset byråefemerider – metodikk og validerte residualer
Veiledning for ekte TLE-er brukere å drive scenarioer med ekte Celestrak/Space-Track-TLE-er for konstellasjoner (i stedet for det medfølgende syntetiske Walker-settet)
Kvalitetsmål for integritet vurderere hva tallene for integrity og security betyr – og hva de ikke er i forhold til HPL/VPL for luftfart
ARAIM-referanse gjennomgangspersoner / integratorer den åpne MHSS-implementasjonen av ARAIM-beskyttelsesnivåer – projeksjonen av nominell bias b_k, σ_URA mot σ_URE og a priori-sannsynlighetene for feilmodi
Kvantemodeller · detaljer gjennomgangspersoner fysikklaget for kaldatom-interferometer, og hvor koeffisientene fortsatt slås opp
Compliance vurderere omfanget av DO-229E / DO-316-algoritmene, og hva som ikke er en påstand om overensstemmelse
Maritim tillit sjøfolk / integratorer tillitsscoren 0-100 for GNSS i et fartøys NMEA, overvåkingene og begrensningene (veiledende, ikke typegodkjent navigasjonsutstyr)
NMEA-treningsstrømmer maritime instruktører syntetisk NMEA fra broen med skriptet jamming og spoofing og en instruktørlogg; bare tekst, aldri til levende navigasjon
Interferenskart analytikere / sjøfolk hvor fly og skip meldte degraderte navigasjonsdata, og hvor mye av en rute det berører
Bevispakker operatører / forsikringsselskaper signerte tekniske registreringer av en tillitshendelse og hvordan en slik verifiseres
Tillitstelemetri drifts- og sikkerhetsteam tillitsstrømmen som Prometheus-metrikker, SIEM-hendelser og OpenTelemetry, med et Grafana-dashbord
Marineintegrasjoner båteiere / integratorer Signal K-pluginen, OpenCPN-gatemodus og referansebygget
Test bench mottakerprodusenter å spille av et eksportert scenario gjennom en laboratoriesimulator og skåre mottakerens logg
Compliance-kartlegging vurderere offentlige robusthetsrammeverk koblet til Kshanas utdata, med kilder og hull; kshana compliance-report
Notebooks brukere kjørbare veiledninger med den gjengitte teksten
Standarder og interoperabilitet integratorer utvekslingsformatene for GNSS, flydynamikk og byråer som Kshana leser og skriver (RINEX, SP3, CCSDS OEM/OMM/TDM/Space-Packet, …)
LEO PNT-fusjon brukere / vurderere fusjonert MEO + LEO posisjonering, navigasjon og tidssynkronisering: Doppler, felles pseudorange, PPP-konvergens, 5G NTN, polardekning og LEO-tidsoverføring over en hvilken som helst konstellasjon; de valgfrie forhåndsinnstillingene og deres offentlige kilder
Kampanjer brukere / vurderere å sette sammen scenarioer: kjedede oppdragstidslinjer, parametersveip, Monte Carlo-ensembler og kjøringer med felles betingelser, med sammensetningsidentitetene testene fester
Scenariokatalog brukere / integratorer hver tilgjengelige type med obligatoriske og valgfrie TOML-felt – generert fra api::list_scenario_kinds()
Resultatskjema integratorer hvert felt i resultat-JSON-en, med enheter og en kildehenvisning
Python-API Python-brukere PyO3-bindingens overflate – å kalle motoren, scenario- og resultattypene og eksempler
Påstander mot virkeligheten gjennomgangspersoner registeret over lukkede overdrivelser + CI-vakten (tests/no_overclaims.rs) som holder det løst
Veikart alle det trinnvise veikartet – hva som er levert og hva som kommer
MCP-server · JetBrains-plugin agenter / IDE-brukere kjør Kshana fra en AI-assistent eller en JetBrains-IDE
Agentveiledning · Flater agenter / integratorer hvilket verktøy som svarer på hvilket spørsmål, hva du bør ta vare på sammen med hvert svar; hvor hver funksjon er tilgjengelig (CLI, Rust, Python, WASM, MCP, plugin, JetBrains, notatbøker) og hvorfor en celle er N/A
Endringslogg alle utgitt historikk (Keep a Changelog + SemVer, semantisk versjonering)
Bidra bidragsytere bygging, vakter, disiplin for tester og siteringer, DCO (Developer Certificate of Origin)
Styring bidragsytere / fellesskap hvordan Kshana styres – hvem som bestemmer, hvordan, og grensen mellom åpent og lukket
Atferdskodeks fellesskap forventet atferd (Contributor Covenant)
Sikkerhetspolicy varslere hvordan du melder en sårbarhet; merknad om dobbel bruk
Viktige referanser

Viktige referanser#

Uavhengige referanser og standarder for validering – de eksterne autoritetene Kshanas kontroller er forankret i:

  • Vallado, Crawford, Hujsak & Kelso – Revisiting Spacetrack Report #3 (AIAA 2006-6753; testdata): verifikasjonssettet for SGP4/SDP4 som Kshana stemmer overens med til 4,12 mm, og de gjennomarbeidede referansesystemeksemplene TEME→ITRF-kjeden kontrolleres mot.
  • IAU SOFA / ERFA – rutinene for tid og referansesystem som IAU 2000A-nutasjonen og CIO GCRS↔ITRS-reduksjonen er validert bit-for-bit mot.
  • Petit & Luzum (red.) – IERS Conventions (2010), IERS TN (Technical Note) 36 (standarder for jordorientering, polbevegelse og referansesystem).
  • Riley – Handbook of Frequency Stability Analysis, NIST SP 1065 (Allan-deviasjonsrelasjoner og NBS14-referanseserien; NBS = det tidligere amerikanske National Bureau of Standards).
  • Pedregosa et al. – scikit-learn: Machine Learning in Python, JMLR 12 (2011): referanseimplementasjonene av ROC/AUC, forvekslingsmatrise og presisjon/gjenkalling/F1 som testbenken for evaluering av RF-forstyrrelser er avstemt nøyaktig mot (tests/eval_metrics_reference.rs).
  • Virtanen et al. – SciPy 1,0, Nature Methods 17 (2020): optimize.nnls, stats.chi2 og linalg.expm – referanserutinene som NNLS-tilpasningen av målt ADEV i kvanteavveiningen, χ²-konsistensbåndene og van Loan-kovariansen for klokkens prosessstøy er validert mot (tests/scipy_reference.rs).
  • Knowles, Kanhere, Neamati & Gao – gnss_lib_py, SoftwareX 27 (2024): brukt både som åpen tidligere teknikk (se Comparison & open prior art nedenfor) og som den uavhengige DOP-referansen som beregningen av GDOP/PDOP/HDOP/VDOP/TDOP er avstemt mot til 1e-6 (tests/dop_reference.rs).
  • Montenbruck & Gill – Satellite Orbits: Models, Methods and Applications (Springer): kraftmodellene bak tilpasningen av kraftmodellen til byråenes presise 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 (halo-/NRHO-familiene som CR3BP-differensialkorrektoren gjenskaper).

Fysikk for komponenter og metoder – de siterte kildene bak sensormodellene:

  • Origlia, Schiller, Bongs et al. – arXiv:1503,08457 (optisk gitterklokke med strontium, mål for bruk i rommet).
  • Oelker et al., Nature Photonics (2019) – doi:10.1038/s41566-019-0493-4 (Sr-klokke i laboratorium, 4,8×10⁻¹⁷).
  • Templier et al., Science Advances (2022) – arXiv:2209,13209 (hybrid kvanteakselerometer-triade).
  • Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation – IEEE AESS-veiledning (Aerospace and Electronic Systems Society; University College London Discovery repository) (feilvekst 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 toveis overføring av tid og frekvens; den optiske inter-satellittlinken modellerer budsjettet for ikke-resiprositet etter disse).
  • Betz – Binary Offset Carrier Modulations for Radionavigation, NAVIGATION 48(4) (2001), doi:10.1002/j.2161-4296.2001.tb00247.x (BOC-modulasjonen og teorien om spektralseparasjon bak src/navsignal.rs).
  • Kaplan & Hegarty (red.) – Understanding GPS/GNSS: Principles and Applications (3. utg., Artech House, 2017): ligningen for effektiv C/N₀ under anti-jam og den termiske støyjitteren i tidlig–sen-DLL-kodesporing som navigasjonssignal- og jammingmodellene bruker.

Sammenligning og åpen tidligere teknikk – verktøyene og oversiktene Kshana posisjoneres mot:

  • Humphreys et al. – TEXBAT (Texas Spoofing Test Battery; ION – Institute of Navigation – GNSS 2012): parametrene i testbatteriet for spoofing som flerlagsdetektoren er karakterisert mot.
  • González et al. – NaveGo (2017): de åpne, validerte feilprofilene for treghetsnavigasjon som brukes som klassisk grunnlinje.
  • Iiyama, Casadesús Vila & Gao – LuPNT (ION GNSS+ 2023, Stanford NavLab): åpen simulator for lunar PNT.
  • Knowles, Kanhere, Neamati & Gao – gnss_lib_py, SoftwareX 27 (2024), doi:10.1016/j.softx.2024.101811: åpen analyse av 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 redusert-dynamisk banebestemmelse, gulvet for empirisk akselerasjon som LRO-tilpasningen gjenskaper.