Kshana · क्षण · tarkka hetki
Avoimen lähdekoodin PNT-kestävyyssimulaattori (paikannus, navigointi ja ajanmääritys).
Jatkuvan integroinnin tila haarassa main
Rivikattavuus lähellä 95 % hakemistosta src/, mitattu tiedostossa docs/COVERAGE.md ja jatkuvassa integroinnissa kynnyksenä 85 %
176 / 401 kyvykkyydestä VALIDATED riippumatonta ulkoista oraakkelia vasten, varmennusmatriisista
SonarQube Cloudin laatuportin tila
Julkaisu v0.40.0
Lisenssi: AGPL-3.0-only
DOI 10.5281/zenodo.20528627, jokaisen julkaisun Zenodo-konseptitietue
Kaupallinen lisenssi on saatavilla yritykseltä Ashforde® OÜ, ks. Versiot
kshana palvelussa crates.io, nykyinen julkaistu versio
kshana palvelussa PyPI, nykyinen julkaistu versio
kshana palvelussa npm, nykyinen julkaistu versio
Avaa Kshana Studio · Asennus · Ominaisuudet · Todisteet · Tutkimus · Dokumentaatio · Viittaa
Sisältö
- Harjoittele hetkeä, kun GNSS sammuu
- Uutta versiossa 0,40, Uutta versiossa 0,39, Uutta versiossa 0,38 ja 0,38 syvällisesti: jammertest-pisteytys, vastaanottimen omat liput, konesyötteet, ajoitus ja holdover, standardipaketit, LunaNet AFS, laboratorion kierros, kshana-bench, observatorio, viejät, optinen, avaruuskäyttäjän navigointi ja Kuun infrastruktuuri
- Kshana Studio ja jokainen Studio-sivu
- Ominaisuudet: alueiden taulukko, jokainen skenaariolaji perheittäin, jokainen komento, jokainen pinta
- Miten ajo toimii, Tehtävät
- Todisteet: kirjanpito (ledger), ominaisuusalueet
- Asennus, Arkkitehtuuri (ja kaaviot), tekoälyavustaja
- Versiot, Tutkimus, Viittaa, Lisenssi
- Viite: käyttö, skenaarioformaatti, tuloste, arkiston rakenne, UKK, vianmääritys, versiointi, tiekartta, osallistuminen, dokumentaatio
Harjoittele hetkeä, kun GNSS sammuu#
Kshana toistaa häirintää (jamming), harhautusta (spoofing) ja kellon holdoveria (ajanpito ilman ulkoista viitettä), kun GNSS-signaalit (maailmanlaajuinen satelliittinavigointijärjestelmä) pettävät, ja kertoo, kuinka kauan järjestelmä pitää ajan ja paikan budjettinsa sisällä sekä mikä kello tai anturi tuo eniten marginaalia. Se on yksi Rust-moottori. Se toimii päätteessä, muistikirjassa, IDE:ssä (integroitu kehitysympäristö), tekoälyavustajassa tai selaimessasi.
Jokainen ajo on toistettavissa bitti bitiltä skenaarion, siemenluvun ja moottoriversion perusteella. Jokaisella ominaisuudella on yksi kolmesta tunnisteesta koneellisesti tarkistetussa kirjanpidossa (ledger): VALIDATED (riippumaton ulkoinen oraakkeli on samaa mieltä), MODELLED (sisäisesti johdonmukainen, ja se sanotaan ääneen) tai PARTNER (laitteistokumppani vastaa).
Tila: v0.40.0. Validoitu, toistettava simulaatioalusta PNT-kestävyydelle. Ajoitus ja holdover tulevat ensin, koska se ala on parhaiten validoitu. Kshana on tutkimus- ja kompromissityökalu: ei radiotaajuinen (RF) signaaligeneraattorilaitteisto (se ei ohjaa radiota eikä lähetä mitään; sen signaalitason tuloste on kantataajuisia IQ-näytetiedostoja ohjelmistovastaanottimille), ei laitteistovastaanotin eikä sertifioitu GNSS-vastaanotin (sen ohjelmistovastaanotin on analyysityökalu) eikä lentotuote. Oletko uusi alalla? Aloita selkokielisestä johdannosta ja sanastosta.
Uutta versiossa 0,40#
Versio 0,40 lisää tehtävätason virhebudjetin, merkitsee jokaisen luvun ja taulukon todistetasollaan, lukee mitattuja kellolokeja, tarkistaa datakumppanien toimitukset, arvioi, missä häiriölähetin voi olla, ja tukee seitsemääntoista kieltä englannin rinnalla. Kirjanpidossa on nyt 401 riviä: 176 VALIDATED, 221 MODELLED, 4 PARTNER. Mitään riviä ei ole ylennetty tasolle VALIDATED, ja jokainen alla oleva ohitus on lukittu testillä.
- Tehtäväketju. Laji
mission-threadketjuttaa vaiheet laukaisusta paluuseen (launch-ascent,leo-rendezvous,tli-and-cruise,entryja neljä Kuun lajia) määriteltyine siirtosääntöineen, marginaalilla määriteltyihin vaatimuksiin nähden ja heikoimmalla lenkillä; päästä päähän ulottuva Artemis-luokan esimerkki 11 vaiheella (Maan ja Kuun osuudet), yhteensä 92 skenaariolajia. Jokainen luku on MODELLED. Kuunläheinen propagointi julkista Artemis I:n lentorataa vasten jää vajaaksi ennakkorekisteröidystä kynnyksestään (45,3 km ja 0,25 m/s kynnyksiä 5 km ja 0,05 m/s vasten; syynä ovat pienet ohjausliikkeet, joita malli ei sisällä), ja Kuun propagaattori CAPSTONE-rataa vasten jää vajaaksi (136,8 km kynnystä 25 km vasten yhden kierroksen lopussa); LRO-vertailu täyttyy. Rivit pysyvät MODELLED-tasolla (Tehtäväketju, Kuun osuus). Studiossa ketju luetaan osoitteessa/studio/mission-thread/. - Todistenimikkeet. Jokainen ajon kirjoittama luku ja taulukko kantaa tason ja ne kirjanpidon rivitunnisteet, joihin se nojaa, luettuna matriisista.
- Mitatut kellot. Kahdeksan kellolokiformaattia luetaan (
docs/CLOCK-LOG-FORMATS.md), ja sovitettu sarja voi ohjata holdoveria. Ennakkorekisteröityjä kynnyksiä vasten sovite jää vajaaksi kynnyksestä F1(a) viidellä kuudesta tallenteesta ja kynnyksestä F2 yhdellä; molemmat pysyvät MODELLED-tasolla (Muutosloki). - Datakumppanit.
kshana partner checktarkistaa toimituksen formaatin eikä pisteytä mitään (docs/PARTNER-DATA.md). - Lähettimen alue.
kshana interference-map locateantaa alueen ja ellipsin, ei koskaan pelkkää pistettä, ADS-B- tai AIS-raporteista. Kun tulosta verrattiin kerran Jammertest 2025 -lähetinkohteisiin, se on NOT ASSESSABLE molemmille lähteille (avoimessa datassa liian vähän aikataulutettuja istuntoja), joten rivi pysyy MODELLED-tasolla (Häiriökartta). - Vertailukokeilu. Uusintakampanja 0,40 täyttää kynnykset A3, D3 (molemmat EXPLORATORY), R3 ja R4; A2, D1 ja R1 jäävät NOT MET (Bench).
- Kielet. nl, pl, pt-BR, pt-PT, fi, sv, da, nb, cs, uk, ru, de, fr, es, et, ja ja zh-Hans, konekäännöksinä, joita yksikään äidinkielinen puhuja ei ole tarkistanut; englanti on viite, ja ei-englanninkieliset ajot kestävät noin kaksi kertaa niin kauan (
docs/i18n.md).
Uutta versiossa 0,39#
Versio 0,39 ei lisää ominaisuuksia eikä muuta tuloksia; moottorin tuloste on version 0,38 tuloste. Se korjaa yhden asian komentorivillä, päivittää ristiinvalidointityökalujen riippuvuudet ja esittää benchmark-tulokset kokonaisuudessaan.
- Komentorivi.
kshana kinds | head(mikä tahansa suljettu vakiotuloste) ei enää kaadu: ohjelma poistuu hiljaa tilalla 141, kuten muut työkalut tekevät suljetun putken kohdalla. Muut kirjoitusvirheet ilmoittavat edelleen itsensä. - Dependencies.
memmap20.9.11 kahdessa ANISE-ristiintarkistuksen lukossa sekäpillow13.0.0 jacertifi2026.10.19 oraakkelin ympäristön kiinnityksissä, kaikki hakemistonxval/alla: mikään toimitettava ei muuttunut. - kshana-bench, kaikki tulokset. Ennakkorekisteröityjä kynnyksiä vastaan kolme on NOT MET, kukin testillä lukittu: A2 (
agc_k_sigmaAUC 0,766 vastaan vähintään 0,80), D1 (suurin ero 0,0301) ja tehtävän (b) R1 (siirretty, ei ajettu uudelleen). Mitään kynnystä ei höllennetty (Bench).
Uutta versiossa 0,38#
Versio 0,38 tekee puolueettomasta erotuomarista mitattavan: se pisteyttää vastaanottimen lokit julkaistua testiaikataulua vastaan, lukee useampia vastaanottimia ja antureita, testaa ajoitusjärjestelmiä ja toimittaa benchmarkin ja häiriöobservatorion. Se pysyy ohjeellisena: mikään tässä ei ole sertifioitua, mikään tulos ei ole tyyppihyväksyntä, eikä mikään lähetä. Jokainen rivi kertoo, mitä kirjanpito (ledger) siitä pitää (miten tunniste ansaitaan); tila nimeää vain sen, mikä tarkistettiin, ja kirjanpidon rivi sekä linkitetty sivu kertovat, mitä ei tarkistettu.
| Uutta versiossa 0,38 | Mitä se tekee ja miksi | Kirjanpidon tila (ledger) | Luettu |
|---|---|---|---|
| Jammertest-pisteytys | kshana jammertest import lukee julkaistun NPRA-testiluettelon ja lähetyssuunnitelman aikataulutettuna totuutena; jammertest score pisteyttää vastaanottimen lokin testi kerrallaan (havaitsemisviive, havaitsematta jääneet tapahtumat, väärät hälytykset, palautumisaika), allekirjoitettuna todistepakettina, jos annat avaimen |
MODELLED: yksi kirjanpidon rivi. Kynnykset ennakkorekisteröitiin ennen mitään pisteytettyä ajoa; JammerTest 2024 -datalla vähimmäisdatasääntö epäonnistui molemmissa ajoissa (4 ja 7 pisteytettävää ikkunaa vaaditun 10:n sijaan), joten mitään kynnystä ei voi arvioida eikä mitään väitetä | Jammertest |
| Vastaanottimen omat liput | UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG ja NovAtel RXSTATUS luetaan epookkikohtaiseen kenttään self_report ja verrataan Kshanan hälytyksiin (molemmat, vain vastaanotin, vain Kshana, ei kumpikaan); Septentrio SBF -lukija ja vain luku -syöte --serial |
MODELLED; vastaanottimen ilmaisimen ja Kshanan ilmaisimen yhtäpitävyys ei ole validointia | Vastaanottimen luottamus |
| Useampia vastaanottimia ja antureita | RTKLIB-tiedostomuoto .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0 (BSD-lisensoiduista pyrtcm-taulukoista, ei RTCM-tekstistä), GNSS-SDR-monitorivirrat, IMU-loki toisena anturina, ROS 2 -paketti, silta kirjastoon gnss_lib_py ja imu-fit hybridianturien parametreille |
MODELLED: kuusi kirjanpidon riviä; vain itse kirjoitettua testiaineistoa, mitään tallennetta oikeasta vastaanottimesta, IMU:sta, GNSS-SDR-ajosta tai ROS-graafista ei luettu | Konesyötteet |
| Ajoitus- ja holdover-testit | laji holdover-test pisteyttää holdover-testin (operaattori poistaa GNSS:n, holdover, palautuminen) mitatusta aikavirhetallenteesta ITU-T-maskeja vastaan, ”mitattu maskia vastaan”; linuxptp- ja chrony-lokilukijat; laitteistovaiheet ja kenttä lab-attestation |
MODELLED: kaksi kirjanpidon riviä; ajat ovat operaattorin ilmoitus, eivät varmennettuja | Ajoituksen HIL, Laitteistoturvallisuus |
| Standardipaketit, LunaNet AFS, laboratorion kiertoajo | pisteytetyt paketit DHS RPCF:lle, IMO MSC.1/Circ.1575:lle ja ICAO Doc 9849 liitteelle F ennen ajoa ilmoitettuja kynnyksiä vastaan, ”tukee todisteita (supports evidence for)”; NIST IR 8323r1 -vastaavuustaulukko; LunaNet AFS -koodigeneraattori ja -tarkistin; allekirjoitettu paketti, joka linkittää laboratorioajon skenaarion, testiolosuhteet, vastaanottimen lokin ja pistemäärän | MODELLED paketeille ja kiertoajolle; AFS-koodin tarkistus on VALIDATED painettuja tarkistussarakkeitaan vastaan (ks. kirjanpidon rivit) | Standardit, LunaNet AFS |
| kshana-bench ja observatorio | kiinteät tehtävät, jaot ja mittarit häiriöiden havaitsemiselle, IQ-havaitsemiselle, holdover-ennusteelle ja optimismikuilulle, sinetöidyllä holdout-aineistolla ja staattisella tulostaululla; toistettava päivittäinen häiriötuote 24 h viiveellä, karkeilla soluilla ja ilman syyn osoitusta | ei omaa kirjanpitoriviä: se pisteyttää ehdotuksia, ja sen lähtötasot on merkitty tunnisteella MODELLED tulostiedostoissa; ennalta rekisteröityjä kynnyksiä vasten pisteyttäjä, C1–C3 ja D2 täyttyvät, ja kolme kynnystä on NOT MET (testeillä lukittu): A2 (agc_k_sigma AUC 0,766, kun vaatimus on vähintään 0,80 testijaolla), D1 (suurin ero 0,0301) ja tehtävä (b) R1 (siirretty sellaisenaan, ei ajettu uudelleen); ks. xval/bench/RESULTS-v2.md |
Bench, Observatorio |
| Viejät | luottamustelemetria Home Assistantin MQTT-löytö- ja tilaviesteinä (vain julkaisu, ei tunnistetietoja) Prometheuksen, CEF:n, LEEF:n ja OTLP:n rinnalla | MODELLED: yksi kirjanpitorivi | Luottamustelemetria |
| Optisen linkin marginaali ajan funktiona | tyyppi optical-atmosphere voi kirjoittaa yhden siemenluvulla tuotetun toteuman paikan säästä linkkimarginaalisarjana |
MODELLED: yksi kirjanpitorivi; yksi otos mallista, ei ilmastoa | Optinen ilmakehä |
Version 0,37 kohokohdat: muutosloki. Version 0,38 koko luettelo on muutoslokissa.
Versio 0,38 tarkemmin#
Jokainen yllä olevan taulukon ominaisuus muutamalla rivillä: mitä se tekee, yksi komento sen ajamiseksi, yksi kuva, joka on piirretty moottorin todellisesta ajosta, ja mitä kirjanpito sisältää siitä. Kuvat kirjoittaa tools/gen_figures_038.py hakemistoon docs/figures/0.38/ (niitä ei koskaan piirretä käsin): python3 tools/gen_figures_038.py kirjoittaa ne uudelleen rakennetulla moottorilla, ja --check epäonnistuu, jos jokin kuva on vanhentunut tai sen tähän kirjoitettu kuvateksti poikkeaa. Jos syöte on loki, se on keksitty loki, jonka skripti kirjoittaa, koska oikeita kolmansien osapuolten lokeja ei koskaan toimiteta mukana, ja kuvateksti kertoo tämän. Kaikki alla oleva on ohjeellista: ei sertifioitua, ei tyyppihyväksyntää, eikä mikään lähetä mitään. Tila kertoo, mitä tarkistettiin, eikä mitään muuta; miten tunniste ansaitaan.
Jammertest-pisteytys#
kshana jammertest import muuntaa julkaistun NPRA:n testiluettelon ja lähetyssuunnitelman aikataulutetuksi totuudeksi, ja kshana jammertest score pisteyttää vastaanottimen lokin sitä vasten: jokaisesta aikataulutetusta testistä, havaittiinko se, kuinka myöhään ja kuinka kauan vastaanottimella meni toipumiseen, sekä väärät hälytykset kaikkien aikavälien ulkopuolella. Luettelo haetaan, sitä ei koskaan toimiteta mukana.
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
Kirjanpidon tila: MODELLED. Kynnykset lukittiin ennen yhtäkään pisteytettyä ajoa; JammerTest 2024 -datassa vähimmäisdatan sääntö epäonnistui molemmissa ajoissa, joten mitään kynnystä ei voi arvioida eikä mitään väitetä. Jammertest.
Vastaanottimen omat liput#
UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG ja NovAtel RXSTATUS luetaan epookkikohtaiseen self_report-tietueeseen ja asetetaan Kshanan hälytysten rinnalle: molemmat, vain vastaanotin, vain Kshana tai ei kumpikaan. Septentrio SBF -lukija ja vain luku -tilassa toimiva --serial-syöte syöttävät samaa vertailua. Kumpikaan puoli ei ole totuus.
kshana receiver-trust session.toml # [log] format = "ubx", path = "receiver.ubx"
Kirjanpidon tila: MODELLED. Vastaanottimen ilmaisimen ja Kshanan ilmaisimen yhdenmukaisuus ei ole validointia. Vastaanottimen luottamus.
Useampia vastaanottimia ja antureita#
RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0, GNSS-SDR:n monitorivirrat, IMU-loki toisena anturina, ROS 2 -paketti ja gnss_lib_py-silta päätyvät kaikki samaan vastaanottimen luottamuksen aikajanaan. imu-fit lukee hybridi- ja fuusioskenaarioiden tarvitsemat anturiparametrit paikallaan olevasta IMU-lokista, joten skenaarion voi ajaa sillä anturilla, joka sinulla todella on.
kshana imu-fit still.csv --format csv --axis x --expected-mean 0 --id bench-imu
Kirjanpidon tila: MODELLED. Vain itse kirjoitettuja testiaineistoja; mitään tallennetta todellisesta vastaanottimesta, IMU:sta, GNSS-SDR-ajosta tai ROS-graafista ei luettu. Koneelliset syötteet.
Ajoitus- ja holdover-testit#
Tyyppi holdover-test pisteyttää holdover-testin (operaattori poistaa GNSS:n, holdover, toipuminen) mitatusta aikavirhetallenteesta ITU-T-maskeja vasten ja sanoo sen juuri näillä sanoilla: mitattu maskia vasten. linuxptp- ja chrony-lokilukijat syöttävät sitä; laitteistovaiheet ja kenttä lab-attestation kertovat, kuka väitti mitäkin.
kshana scenarios/holdover-test-example.toml
Kirjanpidon tila: MODELLED. Ajat, jolloin GNSS poistettiin ja palautettiin, ovat operaattorin ilmoitus, eivät varmennettuja. Ajoituksen HIL, Laitteistoturvallisuus.
Standardipaketit#
Pisteytetyt paketit DHS:n Resilient PNT -testiprofiileille, IMO MSC.1/Circ.1575:lle ja ICAO Doc 9849 liitteelle F sekä NIST IR 8323r1 -vastaavuustaulukko tiedostossa compliance-report. Jokainen testi ajaa mukana tulevan skenaarion ja vertaa tuloskenttää ennen ajoa asetettuun kynnykseen; testi, joka tarvitsee vastaanottimen lokin, on listattu syötettä tarvitsevaksi, ei pisteytetty. Sanamuoto on ”tukee todisteita (supports evidence for)”.
kshana standards-pack list
kshana standards-pack run imo-circ-1575
Kirjanpidon tila: MODELLED. Täyttynyt kynnys kertoo, että mallinnettu skenaario täytti ilmoitetun kynnyksen, ei mitään tuotteesta; jokainen epäonnistuminen säilytetään ja lukitaan testillä. Standardit.
LunaNet AFS#
LunaNet Augmented Forward Signal -koodigeneraattori (Gold-, Weil- ja tertiäärikoodit, viestikehys ja sen virheenkorjauskoodaus) sekä tarkistin tallennetulle tai generoidulle symbolivirralle, lukittuna yhteen määrittelyn painokseen.
kshana lunanet-afs-check spec
kshana lunanet-afs-check generate --frames 2 --out afs.sym
kshana lunanet-afs-check symbols afs.sym
Kirjanpidon tila: VALIDATED koodi- ja synkronointitarkistuksille, määrittelyn painamia arvoja vasten (jotka se merkitsee TBC); yksi tarkistus on NOT MET, säilytetty ja lukittu (yksi painettu tertiäärikoodin sarake poikkeaa: asiakirja painaa saman arvon kahdelle PRN:lle). Alikehysten 2–4 LDPC- ja CRC-sanoja ei tarkisteta. Kirjanpitorivit kertovat tarkasti, mitkä. LunaNet AFS.
Laboratorion kiertokulku#
kshana.test-conditions/1 on julkaistu kuvaus siitä, mitä laboratorio teki (tapahtumat, ajat, tehot). kshana evidence round-trip yhdistää skenaarion tiivisteen, olosuhteiden tiivisteen, vastaanottimen lokin tiivisteen ja pistemäärän yhdeksi allekirjoitetuksi paketiksi ja hylkää paketin, jonka olosuhteet ja pisteytysskenaario ovat tapahtumista eri mieltä. Kshana ei koskaan tuota tai toista signaalia: se, miten skenaario saatiin vastaanottimelle, on operaattorin vastuulla.
kshana evidence --help
Kuva esittää paketin rakenteen. Kirjanpidon tila: MODELLED. Testiolosuhteet, Testipenkki.
kshana-bench#
Kiinteät tehtävät, jaot ja mittarit häiriön havaitsemiselle, IQ-havaitsemiselle, holdover-ennusteelle ja optimismiaukolle, sinetöidyllä holdout-aineistolla ja staattisella tulostaululla. Se pisteyttää ehdotuksia; se ei ole vastaanottimien paremmuusjärjestys.
kshana bench baseline --task d --split test --out results/
Kirjanpidon tila: ei omaa kirjanpitoriviä; lähtötasot on merkitty tunnisteella MODELLED tulostiedostoissa. Ennalta rekisteröityjä kynnyksiä vasten pisteyttäjä, C1–C3 ja D2 täyttyvät ja kolme kynnystä on NOT MET, kukin testillä lukittu: A2 (agc_k_sigma AUC 0,766, kun vaatimus on vähintään 0,80 testijaolla), D1 (suurin ero 0,0301) ja tehtävä (b) R1 (siirretty aiemmasta kampanjasta, ei ajettu uudelleen). Luvut ovat tiedostossa xval/bench/RESULTS-v2.md. Bench.
Häiriöobservatorio#
Yksi tuote UTC-vuorokautta ja aluetta kohti avoimesta ilma-alusten sijaintiarkistosta, kiinteällä karkealla ruudukolla: jokainen solu on heikentynyt, ei heikentynyt tai ei havaittu (mikä ei tarkoita ”selvä”). Julkaistaan aikaisintaan 24 h vuorokauden päättymisen jälkeen, pienet solut tukahdutettuina ja ilman syyn osoittamista.
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/
Kuva esittää tallennetut esimerkkipäivät, ei observatorion tuotetta. Kirjanpidon tila: MODELLED: ei ulkoista oraakkelia, ei totuusdataa eikä syyn osoittamista; solua, jota ei havaittu, ei arvioitu, mikä ei ole sama asia kuin selvä. Observatorion menetelmä.
Viejät#
Luottamustelemetria Prometheus-tekstinä, CEF-, LEEF- ja OTLP-muodossa sekä Home Assistantin MQTT-löytö- ja tilaviesteinä. Komento julkaisee vain antamaasi kohteeseen eikä pidä hallussaan tunnistetietoja.
kshana trust-telemetry --result session.result.json --print-metrics
kshana trust-telemetry --result session.result.json --print-syslog --format cef
Kirjanpidon tila: MODELLED. Luottamustelemetria.
Optisen linkin marginaali ajan funktiona#
Tyyppi optical-atmosphere voi kirjoittaa yhden siemenluvulla tuotetun toteuman paikan säästä linkkimarginaalisarjana: pilvijaksot, kunkin nestevesipatsas ja yksi tuikintanäyte askelta kohti. Studion Optical PNT -sivu avaa optical-atmosphere-skenaariot.
kshana scenarios/optical-atmosphere-network.toml
Kirjanpidon tila: MODELLED. Yksi otos mallista, ei ilmastoa. Optinen ilmakehä.
Uudet Studio-näkymät#
kshana.dev/studio saa Bridge replay -näkymän (kaksi ajoa rinnakkain yhdellä tehtäväkellolla, osoitteessa /studio/replay/), Optical PNT -sivun (/studio/optical/), Holdover test -sivun (/studio/holdover/) ja observatorionäkymän (/studio/observatory/). Ne ajavat samaa moottoria selaimessa, mitään ei lähetetä palvelimelle, ja niissä on sama ohjeellinen ilmoitus. Yllä olevat kuvat on piirretty skriptillä moottorin omasta tulosteesta; ne eivät ole kuvakaappauksia näistä sivuista.
Avaruuskäyttäjän navigointi (gnss-ssv)#
Avaruusalukselle GNSS-ratojen yläpuolella, ympärillä tai kaukana niiden takana: kuinka monta GNSS-signaalia se voi käyttää, kuinka voimakkaita ne ovat, kuinka hyvä geometria on ja mitä aluksen suodatin voi niillä tehdä. Yksi tyyppi, neljä tilaa, valittuna skenaarion taulukoilla: käyttäjien kuori (ajan osuus, jolloin signaaleja on yksi ja neljä, satelliittitähdistöittäin), rata (signaalit, C/N0, tarkkuuden heikkenemiskerroin ja reunasäteen väliaine radan varrella), navigointi-ajo (yhdeksän tilan suodatin pseudoetäisyyksillä, Kuuhun asti) ja formaatio (apulaisten suhteellinen navigointi johtajan ympärillä). Saatavuusvertailun julkinen lähde on yhteentoimiva GNSS Space Service Volume -vihkonen (UN OOSA ST/SPACE/75, International Committee on GNSS:ltä), joka on itsekin simulaatio; se haetaan, sitä ei koskaan toimiteta mukana. Koko sivu: 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
Kirjanpidon tila: MODELLED, ja vertailu vihkosen kanssa epäonnistuu enimmäkseen. Kynnykset lukittiin ennen ajoa. Kahdeksasta vain S0 (käänteinen linkkibudjetti, 13/13 arvoa) ja S6 (Kuun tehtävä) täyttyvät. S1–S5 ja S7 ovat NOT MET: ylemmän ja alemman palvelualueen geometria (43/52 ja 48/52 solua), 15/20/25 dB-Hz:n ylempi palvelualue, kuusi GEO-tehtävää, HEO-tehtävä sekä parametrinen sivukeilakuvio mitattuja GPS-paneelikuvioita vasten. Lähes jokainen S1–S5:n epäonnistuminen liittyy GLONASSiin, ja vihkonen painaa sille kaksi eri vertailukulmaa; diagnostinen muunnelma, joka käyttää toista paria, tuo S1:n, S2:n ja S4:n jokaiseen soluun, mutta se ei korvaa ennätysajoa eikä yksikään rivi ole VALIDATED. Formaatioajon absoluuttinen suodatin on myös ylivarma (normalisoidun virheen neliön keskiarvo selvästi yli arvon noin 3, jonka johdonmukainen suodatin antaa).
Avaruuskäyttäjän navigointi, mitä vertailu osoittaa.
Kuun infrastruktuuri (lunar-infrastructure)#
Kuun rata ja pinta navigoinnin ja geodesian infrastruktuurina, viitenä tutkimuksena, jotka valitaan kentällä study: od-consistency (aluksella tehty Maa-GNSS-radanmääritys halo-radalla riippumatonta maassa tehtyä vasten), carrier-phase (kokonaislukuepävarmuuden kiinnitys pinta-asemien ja kiertäjän välillä), frame-coestimation (Kuun datum Maa-asemien etäisyysmittauksesta kiertäjän linkeillä ja ilman), space-tie (laser-, VLBI- ja GNSS-siirtymät yhdellä avaruusaluksella paikallista sidosvirhettä vasten) ja geodesy-sensitivity (mikä havaintosuureiden perhe näkee Love-luvut h2, k2 ja l2). Malli on rajoitettu kolmen kappaleen malli, jossa on ilmoitetut yksinkertaistukset ja havainnollistavat syötteet. Koko sivu: 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
Kirjanpidon tila: MODELLED, ja kolme kynnystä on NOT MET. Numeriikka on tarkistettu riippumattomilla numpy- ja scipy-ohjelmilla; mitään ei verrata Kuun suureen tehtyyn mittaukseen, eikä mikään ole VALIDATED. Täyttyi: kaksi ratkaisua radalle ovat johdonmukaisia (keskiarvo q 5,81, odotettu 6), ja kiertäjän linkit nostavat pienintä datumin ominaisarvoa noin 111-kertaiseksi, kun rata oletetaan tunnetuksi. Ei täyttynyt: syötetty 3e-10 m/s2 mallivirhe ei tule havaituksi (C3: aluksella tehty ratkaisu tunnetaan noin 350 m:n tarkkuudella, joten noin kymmenen metriä piiloutuu sen kovarianssiin); kokonaislukuepävarmuuden kiinnitystä ei saavuteta (1–3 % onnistumisaste kohdassa 25 dBi, ja rekisteröidyllä 12 dBi:llä ongelmaa ei voi muodostaa); sekä G3:n jälkipuolisko havaintosuureperheen lisäämiselle (jälki kasvoi 12/28 lisäyksessä, joka kerta siksi, että perhe nosti asteluvun). Jokainen epäonnistuminen on lukittu testillä. Kuun infrastruktuuri.
Kshana Studio#
Avaa kshana.dev/studio, niin koko moottori toimii selaimessasi, käännettynä WebAssemblyksi. Mitään ei tarvitse asentaa, eikä mitään lähetetä palvelimelle. Studiossa on kaksi näkymää samaan moottoriin, ja otsakkeen kytkin siirtää niiden välillä säilyttäen skenaarion, näkymän ja muuttamasi asetukset.
Yksinkertainen näkymä on se, jossa Studio avautuu. Se alkaa kysymyksistä (kuinka monta satelliittia näen, voinko luottaa paikannukseeni, kuinka kauan kello pitää aikaa, mitä häirintälähetin tekee vastaanottimelleni) ja kartasta kaikesta, mitä moottori osaa, jokaisen alueen validoitujen menetelmien osuuden kanssa. Avaa skenaario, niin vastaus tulee ensin: yksi selkeä lause, kirjoitettu sille, mitä skenaario mittaa, sitten sen keskeiset luvut ja kaavio. Enintään viisi asetusta on esillä, ne jotka muuttavat vastausta eniten; loput odottavat kohdassa Lisäasetukset. Näin tämä lasketaan selittää menetelmän, ja Tutkijoille antaa moottorin omat luvut, skenaariotiedoston, koodin sen ajamiseksi Pythonista ja viitteen.

Laaja näkymä on koko hallintanäkymä: skenaariokirjasto, viisi numeroitua vaihetta (Choose, Set, Run, Read results, Share or export), keskeiset luvut PASS- ja FAIL-merkeillä, kun ajo ilmoittaa kynnyksen, sekä jokainen paneeli: yleiskuva, kaaviot, kartat, toisto, moottorin raportti ja viennit. Yhdellä hakukentällä pääsee skenaarioihin, alueisiin ja niiden sisällä oleviin kenttiin, ja voit kiinnittää enintään neljä ajoa ja verrata niitä rinnakkain.
Yksinkertaisen näkymän aloitusnäyttö ja Laaja näkymä ajon jälkeen


Studion lähdekoodi ja sen rakennusmuistiinpanot ovat tiedostossa web/README.md.
Sivusto#
Loput sivustosta kshana.dev rakennetaan tämän tietovaraston omista tiedostoista ja moottoriajoista: tehtävät, ominaisuudet, todistekirjanpito, julkaistu tutkimus ja versiot.

Ominaisuudet#
Yksi moottori kattaa koko vikaketjun, ensimmäisestä häirityistä satelliitista kellon holdoverin viimeiseen nanosekuntiin. Moottorissa on 92 skenaariolajia; kshana kinds luettelee ne ja docs/SCENARIOS.md dokumentoi jokaisen kentän.
| Ominaisuus | Mihin se vastaa |
|---|---|
| Spektri | miten häirintälähetin valtaa GNSS:n L-kaistan, kaista kaistalta, sekunti sekunnilta |
| Kellot ja ajoitus | kuinka kauan kukin kello pitää aikaa GNSS:n menettämisen jälkeen |
| Tähdistöt minkä tahansa kappaleen ympärillä | kattavuus, tarkkuuden heikkenemiskerroin ja saatavuus Maan, Kuun tai Marsin ympärillä |
| Aurinkokunta | missä jokainen planeetta on ja minkä tahansa linkin valoaika |
| Matalan Maan kiertoradan navigointi | ylilento, linkki, navigointiviesti ja fuusioitu paikannus, vaihe vaiheelta |
| Kampanjat | ketjutettu tehtävä, pyyhkäisy tai Monte Carlo -ensemble yhdessä skenaariossa |
| Animaatio | ajon aikasarja animoituna piirroksena, soittimena tai kuvina |
| Raportit | jokainen luku yksikköineen ja nimiöineen, HTML-muodossa (HyperText Markup Language) ja JSON-muodossa (JavaScript Object Notation) |
| Yhteentoimivuusviennit | radat ja geometria muille työkaluille: SP3, CCSDS OMM ja OEM, CZML, KML, GeoJSON, STK ja SigMF |
| Merenkulun luottamus | voiko silta luottaa tähän paikannukseen: 0–100 pistemäärä ja syyt aluksen NMEA-datalle, reaaliaikaisena tai lokista (ohjeellinen, ei tyyppihyväksytty navigointilaite) |
| NMEA-harjoitusvirrat | synteettinen sillan NMEA-data käsikirjoitetulla häirinnällä ja harhautuksella sekä ohjaajan loki, miehistön koulutukseen (vain teksti; ei koskaan aluksen reaaliaikaisiin navigointijärjestelmiin; ohjeellinen, ei tyyppihyväksytty navigointilaite) |
| Häiriökartta | missä ilma-alukset ja laivat ilmoittivat heikentyneestä navigointidatasta ja kuinka suuren osan reitistä se koskee |
| Lähettimen alue | missä, ilmoitetuin oletuksin, huononnettujen paikkaraporttien lähde voi olla: alueet ilmoitetulla luottamuksella, painopiste ellipsinsä kanssa, ei koskaan piste (MODELLED; kshana interference-map locate) |
| Todistepaketit | allekirjoitettu, offline-tilassa varmennettava tekninen tallenne aluksen lokiikkunasta ja siitä, mitä moottori laski siitä, poikkeamaraporttia varten (ohjeellinen, ei tyyppihyväksytty navigointilaite) |
| Luottamustelemetria | luottamusvirta Prometheus-mittareina, SIEM-tapahtumina ja valinnaisena OpenTelemetryna sekä esimerkkinä Grafana-kojelauta (deploy/grafana/kshana-gnss-trust.json) |
| Signal K ja OpenCPN | luottamuspistemäärä veneen Signal K -palvelimella ja OpenCPN:ssä sekä vertailurakenne vastaanottimen vieressä olevalle pienelle tietokoneelle (ohjeellinen, ei tyyppihyväksytty navigointilaite) |
| Test-bench-vienti | kshana bench-export: skenaarion ajoneuvon liike ja tapahtumat laboratorion GNSS-simulaattoria varten (signaalia ei kirjoiteta) sekä miten vastaanottimen loki pisteytetään jälkeenpäin |
| Vastaavuuskartoitus ja raportti (compliance) | kshana compliance-report: mitä julkisten kestävyyskehysten rivejä ajojoukko tukee todisteilla (supports evidence for) ja mikä aukko jää jäljelle |
| Muistikirjat | ajettavat opastukset: aluksen luottamus- ja koulutusvirrat, häiriökartan reittialtistus, vastaavuuskartoitus (compliance) ja testipenkki, kvantti vastaan klassinen GDOP |
| Galileo OSNMA -varmennin | minkä satelliittien navigointidatan vastaanotin voi todentaa kryptografisesti ja miksi tarkistus epäonnistuu; Kshana ei myönnä oikeuksia EU:n OSNMA ICD IPR -oikeuksiin (ks. sivun NOTICE) |
Vientimuodot kokonaisuudessaan: SP3 on Standard Product 3; CCSDS OMM ja OEM ovat Consultative Committee for Space Data Systemsin Orbit Mean-elements- ja Orbit Ephemeris -viestit; CZML ja KML ovat Cesium- ja Keyhole-merkintäkielet; STK on Systems Tool Kit; SigMF on Signal Metadata Format.
Jokainen ominaisuus piirrettynä todellisesta ajosta: L-kaistan vesiputous, kattavuuskartta, aurinkokunta ja matalan Maan kiertoradan ylilento
Aja mikä tahansa niistä komennolla kshana example <scenario> > s.toml && kshana s.toml: skenaariot ovat l-band-waterfall-jamming, constellation-multi-gnss-coverage, solar-system-tour ja leo-pass-iridium.
Meri- ja häiriöominaisuudet piirrettynä tallennetuista synteettisistä syötteistä: luottamuspistemäärä, häiriökartta reittialtistuksella, koulutusvirta ja todistepaketti
Kaikki neljä ovat keksittyä dataa ja ohjeellisia: ne näyttävät ohjelmiston muodon ja käyttäytymisen, eivät sitä, miten mikään vastaanotin tai järjestelmä suoriutuu häiriötä vastaan. Aja ensimmäinen komennolla kshana receiver-trust examples/maritime-trust/session.toml, toinen komennolla kshana route-exposure hakemiston examples/interference-map/ näytteillä, kolmas komennolla kshana nmea-scenario scenarios/training/coastal-drag-off.toml --out drag.nmea (vain koulutuskäyttöön: älä koskaan syötä sitä reaaliaikaisiin navigointilaitteisiin) ja neljäs kuten tiedostossa docs/EVIDENCE-PACKS.md.
Koko ominaisuustaulukko, alue alueelta
Koko yksityiskohtainen kuvaus alue alueelta seuraa; ominaisuuskohtaisen kypsyyskirjanpidon löydät tiedostoista docs/CAPABILITY.md ja docs/VALIDATION.md.
| Alue | Ominaisuus |
|---|---|
| Rata ja geometria | SGP4/SDP4-propagointi (validoitu 4,12 mm:iin kaikkia 666 AIAA 2006-6753 -vektoria vasten); todelliset kaksirivielementit (tallennettu, päivämääräleimattu Celestrakin gps-ops-otos) tai synteettiset Walker-delta-satelliittitähdistöt, joiden keskimääräiset elementit toteuttavat kaavan i:T/P/F alle 1 km:n tarkkuudella 24 h propagoinnin yli; usean satelliittitähdistön näkyvyys, tarkkuuden heikkenemiskerroin — geometrinen, paikka-, vaaka-, pysty- ja aikakerroin (GDOP/PDOP/HDOP/VDOP/TDOP), validoitu 1e-6:iin gnss_lib_py 1.0.4:ää, Stanford NAV Labia, vasten (Navigation and Autonomous Vehicles Laboratory) ja GNSS:n saatavuus; gradienttivapaa satelliittitähdistön suunnitteluoptimoija, streets-of-coverage-menetelmän vähimmäissatelliittimitoitus, usean satelliittitähdistön vertailutyökalu sekä Walker-suunnittelupyyhkäisy, joka taulukoi kattavuuden / PDOP:n / uudelleenkäyntiajan tasojen × satelliittien ruudukolla ja raportoi Pareto-optimaaliset mallit. |
| Numeerinen etenemislaskija | Cowell-numeerinen propagaattori (src/propagator.rs), joka täydentää analyyttistä SGP4/SDP4-polkua, hierarkkisella seitsemän häiriön voimamallilla (src/forces.rs): kaksikappaleongelma + koko J2–J6-zonaalikenttä (Maan litistyneisyyden zonaaliset harmoniset kertoimet J2–J6; sen häiriöpotentiaalin tarkka analyyttinen gradientti), valinnainen EGM2008-tesseraalinen pallofunktiogeopotentiaali asteeseen/kertalukuun 70 (Earth Gravitational Model 2008; src/gravity_sh.rs; todelliset NGA:n — US (United States) National Geospatial-Intelligence Agency — kertoimet, Holmes–Featherstone-normalisoitu Legendre-rekursio, ristiintarkistettu suljetun muodon Legendre-funktioita ja analyyttistä ∇V-identiteettiä vasten), epookkiohjattu Auringon ja Kuun kolmannen kappaleen gravitaatio (sisäänrakennettu matalan tarkkuuden efemeridi, ei DE/SPK — Development Ephemeris / SPICE Spacecraft and Planet Kernel — kerneliä), auringon säteilypaine (kanuunankuulamalli kartiomaisella umbra+penumbra-varjolla), ilmakehän vastus (Vallado paloittain eksponentiaalinen tiheys, mukana pyörivä ilmakehä), post-Newtonin Schwarzschildin relativistinen korjaus ja Lense–Thirring-vetäytymistermi (IERS — International Earth Rotation and Reference Systems Service — Conventions 2010 §10, lineaarinen Maan liikemäärämomentissa, ~1–2 suuruusluokkaa Schwarzschildia pienempi) — ajettuna kahdesta mukautuvasta integraattorista valitulla (RK4 — neljännen asteen Runge–Kutta — askelkaksinnus tai Dormand–Prince RK5(4) -upotettu pari). Validoitu Orekit 12,2:ta (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 vasten — 278 epookkia LEO:lla (matala Maan kiertorata) + GTO:lla (geostationaarinen siirtorata), konservatiivisten voimien tasot täsmäävät pahimmassa tapauksessa |Δr| 0,08 m 24 h:n yli (tests/numerical_cowell_propagator_reference.rs); ilmakehän vastuksen taso on kuvattu erikseen (≈ 333 m / 24 h), ja absoluuttiset Auringon/Kuun efemeridi- ja tiheyssyötteet pysyvät rehellisesti mallinnettuina. Lisäsisäistä näyttöä (ei ulkoista validointia): häiriötön rata on tarkistettu tarkkaa universaalimuuttuja-Kepler-ratkaisua vasten alle metrin 24 h:n yli, energia/liikemäärämomentti säilyvät ~1e-9:iin, ja jokainen häiriö vastaa käsin johdettua suljetun muodon tunnusta. |
| Ratamuutokset ja lentoradan suunnittelu | Impulsiiviset ΔV-solmut 6×6 kovarianssin propagoinnilla (ECI — Earth-centred inertial — / LVLH — local vertical, local horizontal — suoritusvirhekoordinaatistot), äärellinen polttointegrointi tarkistettuna suljetun muodon Tsiolkovskin rakettiyhtälöä vasten tarkkuudella < 0,01 %, Izzo-2015-yhden kierroksen Lambert-ratkaisija, tarkka universaalimuuttuja-Kepler-propagaattori sekä porkchop (lähtö × saapuminen) C3 (lähtöenergia) / saapumis-V∞ -pyyhkäisy JSON-korkeuskäyräruudukkona — suorituskykysimulaation kerros GMAT:n/Orekitin yläpuolella, jossa jokainen Lambert-tulos on kierrätetty kaksikappaletotuutta vasten ja porkchopin minimi tarkistettu analyyttistä Hohmannin alarajaa vasten. |
| Aikajärjestelmät ja koordinaatistot | IERS:n karkaussekunnilliset UTC / TAI / TT / UT1 -aika-asteikot (Coordinated Universal Time, International Atomic Time, Terrestrial Time ja Maan pyörimiseen perustuva Universal Time 1), Julian-päivämäärä-API (application programming interface), IAU-2000 (International Astronomical Union) Earth Rotation Angle (ERA), GMST-pohjainen (Greenwich Mean Sidereal Time) TEME ↔ ECEF (true equator, mean equinox ↔ Earth-centred, Earth-fixed) WGS-84:n (World Geodetic System 1984) geodeettisilla koordinaatistoilla, IAU 2006 -prekessio (Fukushima–Williams), täysi IAU 2000A/2000B -nutaatio, IERS:n napaliike sekä equinoksivapaa CIO-pohjainen IAU 2006/2000A GCRS↔ITRS -reduktio (CIO = Celestial Intermediate Origin) — kaikki validoitu bitti bitiltä SOFA/ERFA-vektoreita vasten ja riippumattomasti ristiintarkistettu ANISEa vasten (puhdas Rust-uudelleentoteutus NAIF/SPICE:stä; NAIF = NASA:n, Yhdysvaltain ilmailu- ja avaruushallinnon, Navigation and Ancillary Information Facility): Kshanan GCRS→ITRS vs. ANISEn ITRF93 (International Terrestrial Reference Frame 1993) JPL:n tiedostosta earth_latest_high_prec.bpc, samat IERS:n Maan orientaatioparametrit molemmille, täsmäävät ≤ 0,86 m maanpinnalla / ≤ 3,6 m GNSS-radalla (maks. 0,028″) kahdeksalla epookilla 2020–2023. |
| Inertia | Kolmiakselinen strapdown-INS — kvaternioasento, WGS-84 NED (north-east-down) -mekanisaatio, coning/sculling-kompensaatio ja deterministinen IMU-virhemalli (asteikkokerroin, kohdistusvirhe, g-herkkyys, kvantisointi, ajautuma); ensiperiaatteista johdettu kylmäatomi-interferometrikiihtyvyysanturi (Mach–Zehnder-vaihe, kvanttiprojektiokohina, kontrastin vaimeneminen, tärinäkytkentä), joka johtaa nopeuden satunnaiskävelykertoimen; sekä sekventiaalinen tärkeysotanta-uudelleenotanta-partikkelisuodatin karttatuettuun (maasto-/painovoimaviitteiseen) GPS-estettyyn navigointiin. |
| Vaihtoehtoinen PNT (GPS-vapaa) | Kylmäatomi-gravimetrin mittausmalli, jonka valkoisen kohinan lattia (σ = ASD/√τ, ASD = amplitudispektritiheys) johdetaan CAI-kiihtyvyysanturin fysiikasta; matala-asteinen, täysin normalisoitu pallofunktiopainovoima-anomaliakenttä (tarkistettu suljetun muodon Legendre-funktioita ja käsin johdettua yhden termin anomaliaa vasten) sekä synteettiset mascon-massat; painovoimafunktionaalin synteesiydin (gravity_sh::gravity_magnitude / gravity_disturbance_mgal) — ”karttalukija”, jota painovoima-avusteinen navigaattori vasten sovittaa — validoidaan GRS80-normaalipainovoimastandardia (Geodetic Reference System 1980) vasten, toistaen suljetun muodon Somiglianan normaalipainovoiman ja julkaistut γ_e / γ_p tarkkuudella 3.5e-12 ja tuottaen fysikaalisesti rajatun häiriökartan todellisesta ICGEM:n (International Centre for Global Earth Models) EGM2008-kentästä (RMS — root mean square — ≈ 26 mGal, maks. ≈ 89 mGal asteella/kertaluvulla 70; tests/icgem_gravity_reference.rs); sekä painovoimakartan sovittava partikkelisuodatin, joka palauttaa GPS-estetyn radan sen läpi lennettävästä anomaliajonosta. Se laajenee maastoviitteiseen navigointiin (TERCOM/SITAN — terrain contour matching / Sandia Inertial Terrain-Aided Navigation — SRTM:n (Shuttle Radar Topography Mission) .hgt-DEM-mallia (digital elevation model) vasten, src/altpnt/terrain.rs), IGRF-14-geomagneettiseen pääkenttään (International Geomagnetic Reference Fieldin 14. sukupolvi) asteeseen/kertalukuun 13 (src/igrf.rs, tarkistettu kallistetun dipolin suljettua muotoa ja ∇V-äärellisiä differenssejä vasten) sekä yhdistettyyn painovoima + magneetti + maasto -navigaattoriin, joka fuusioi kaikki kolme skalaarikanavaa yhdellä partikkelisuodattimella (tieto on additiivista — mikään kanava ei huononna paikannusta). 60 minuutin GPS-estetty vertailukohde (~700 km / yhden tunnin katko, jossa inertiaratkaisu ajautuu ~70 km:iin) palautetaan tarkkuuteen ~145 m (< 500 m) hierarkkisella karkeasta hienoon -sovittimella — ESA NAVISP:n (Navigation Innovation and Support Programme) Quantum Wayfarer -tavoite. |
| Fuusio | Löyhästi kytketty 15-tilainen GNSS/INS-virhetila-EKF (extended Kalman filter) suljetun silmukan takaisinkytkennällä (paketti gnss-ins); tiukasti kytketty pseudoetäisyyspäivitys, joka jatkaa korjaamista alle neljällä satelliitilla; kytketty kello + paikka -suodatin; yleinen unscented (sigmapiste) Kalman -estimaattori voimakkaasti epälineaarisille mittauksille; tiukasti kytketty GNSS/INS-UKF-navigaattori (pseudoetäisyys + Doppler), jonka voimamallilla laskettu ratalento ilman mittauksia on itsejohdonmukaisuustarkistettu tarkkuuteen 0,77 m RMS 30 minuutin kaarevan LEO-ylilennon yli, joka sisältää 120 sekunnin GNSS-katkon (suodattimen johdonmukaisuusluku, ei ulkoisen oraakkelin validointi — tämä navigaattori pysyy MODELLED); sekä täysi 17-tilainen tiukasti kytketty GNSS/INS-UKF (paikka, nopeus, asentovirhe, kiihtyvyys- ja gyroanturin biasit, kellon bias ja ajautuma), jonka kvantti-CAI-dead-reckoning liukuu 120 sekunnin katkon kylmäatomikiihtyvyysanturin johdetulla nopeuden satunnaiskävelyllä. |
| Radanmääritys | Kiertoratatilan [r, v] palautus maa-aseman etäisyysseurannasta, yhdistäen kaksikappale + J2 -voimamallin ja RK4-integraattorin Gauss–Newton-eräkorjaajaan (determine_orbit_batch, alle metri / mm·s⁻¹ kohinattomista etäisyyksistä, ~2 m kohinalattialla 5 m) ja sekventiaaliseen unscented-suodatinvariaattiin (determine_orbit_sequential). |
| Havaittavuus ja estimointiteoria | Yleinen, uudelleenkäytettävä Fisher-informaatio / Cramér–Rao -kerros (src/fim.rs): informaatiomatriisi M = HᵀWH, Cramér–Raon alaraja, havaittavuuden aste ja datumvian nolla-avaruus (Moore–Penrose-pseudoinverssi) sekä D/A/E/T-optimaaliset koesuunnittelun skalaarit symmetrisellä Jacobin ominaisarvoratkaisijalla. Validoitu — ominaisarvot vs. numpy.linalg.eigh, CRLB-kovarianssi vs. σ²(XᵀX)⁻¹ komennolla numpy.linalg.inv ja GNSS-DOP informaatiomatriisista, kaikki täsmäävät tarkkuudella 1e-9 (tests/fim_observability_reference.rs), ja lisäksi ristiintarkistettu Kayn (1993) suljetun muodon rajoja vasten Monte Carlo -CRLB:n saavuttamisella. Se on DOP-moottorin, passiivisen geopaikannuksen CRLB:n ja Kuun absoluuttisen aseman havaittavuuslauseen (alla) perusta. |
| Kuu ja Maa–Kuu-avaruus | Maa–Kuu ympyrämäisen rajoitetun kolmen kappaleen ongelman (CR3BP) propagaattori pyörivässä koordinaatistossa — säilyvä Jacobin vakio ja kaikki viisi Lagrangen pistettä (src/cr3bp.rs) — nyt 6×6 tilansiirtymämatriisilla (STM) ja yhden ammunnan differentiaalikorjaajalla (cr3bp_jacobian, propagate_state_stm, differential_correct_halo), joka tuottaa aidosti jaksollisia halo / NRHO -ratoja (near-rectilinear halo orbit): STM validoidaan äärellisiä differenssejä vasten, korjatut radat sulkeutuvat koneen tarkkuudella, ja julkaistun apolunetilan siementäminen toistaa L2:n eteläisen 9:2 NRHO:n (L2 = Maa–Kuu-järjestelmän toinen Lagrangen piste; Gateway-rata) jaksolla ≈ 6,57 d / perilunella ≈ 3 250 km, johdonmukaisesti julkaistun ≈ 6,56 d / ≈ 3 370 km kanssa (CR3BP — ympyrämäinen, Auringoton — ratkaisu, ei validoitu todellista LANS:n (Lunar Augmented Navigation Service)/Gatewayn efemeridiä vasten; korjatun radan selenosentrinen MCI/MCMF (Moon-centred inertial / Moon-centred, Moon-fixed) -muunnos on jatkotyö); sekä LunaNet / LNIS (LunaNet Interoperability Specification) -kuunläheinen PNT-geometria (MCI↔MCMF-reduktio, selenografiset koordinaatit) Kuun etelänavan ARAIM -ylilennolla, joka tuo rehellisesti esiin eheysaukon: ~30 m σ_URE (user range error) nostaa suojaustason selvästi 50 m hälytysrajan yläpuolelle (src/lunar.rs, scenarios/lunanet-araim.toml); sekä pintamajakoiden DOP-täydennys (src/lunar_beacon.rs), joka näyttää, miten muutama mitattu pinnan etäisyysmajakka tuo matalan korkeuskulman, laajan atsimuutin näkölinjarivit, joita pelkkä ylhäältä tuleva ratajoukko ei tarjoa — romahduttaen huonosti ehdollistetun etelänapa-GDOP:n ja neliösummavirhebudjetin kautta toteutuneen paikkatarkkuuden metreinä (uudelleenkäyttäen gnss_lib_py:llä validoitua DOP-ydintä ja ilmattoman horisontin näkyvyyden suljettua muotoa; tarkkuuden heikkenemiskerroin -analyysi on kirjoitettu auki artikkelissa arXiv:2607,06212). |
| Kuun PNT-sarja | CR3BP-ytimen päälle rakennettu Kuun/kuunläheinen navigointisarja, kukin ajettavana tyyppinä kind: Lunar Coordinate Time (lunar-time-offset, src/lunar_time.rs — maallinen LTC/TCL − TT -nopeus potentiaalieron + liike-energiatermin perusteella, raportoituna julkaistun 56–59 µs/vrk -haarukan kanssa (LTC = Lunar Coordinate Time; TCL = sen ranskankielinen muoto, Temps-Coordonnée Lunaire)); geodeettinen Kuun VLBI-viive (very-long-baseline interferometry) -havaintosuure (lunar-vlbi, src/lunar_vlbi.rs — Maa-peruslinjan lähikentän kahden etäisyyden erotuksen viive + nopeus, ristiintarkistettu saman koodikannan tasoaalto-Δ-DOR:ia (delta differential one-way ranging) vasten kaukokentän rajalla, osittaisderivaatat varmennettu äärellisillä differensseillä); yhteinen monitekniikka-OD + kello -eräestimaattori (lunar-joint-od-clock, src/lunar_combination.rs — Gauss–Newton-sovitus, joka fuusioi VLBI:n + Kuun paikalliset etäisyydet + satelliittien väliset etäisyydet), joka kantaa Fisher-informaatio-havaittavuustuloksen: pelkkä sisäinen etäisyysmittaus jättää kuuden vapausasteen jäykän kappaleen datumvian, joten pinta-aseman absoluuttinen paikka on havaitsematon, kunnes Maa-koordinaatiston sidos lisätään — Maa-peruslinjan VLBI-viive palauttaa havaittavuuden harvalle satelliittijoukolle ja terävöittää Cramér–Rao-rajaa rikkaalle, ja absoluuttinen datum sulkeutuu kolmella ei-kollineaarisella Maa-asemalla (havaittavuustulos on kirjoitettu auki artikkelissa arXiv:2607,02566); koordinaatiston realisointi (lunar-frame-realisation, src/lunar_frame_realise.rs — 7-parametrinen Helmert-datumsovitus + IAU 2015 WGCCRE-orientaatiosidos — WGCCRE = IAU:n Working Group on Cartographic Coordinates and Rotational Elements); Moonlight/LCNS-luokan palvelualue -analyysi (LCNS = Lunar Communications and Navigation Services; moonlight-service-volume, src/lunar_service.rs — DOP / kattavuus / saatavuus + yleistetty Kuun ARAIM HPL/VPL (vaaka-/pystysuuntainen suojaustaso) -verhokäyrä, uudelleenkäyttäen gnss_lib_py:llä validoitua DOP-ydintä ja LunaNetin σ_URE≈30 m -koneistoa); Kuun differentiaalinen PNT (lunar-differential-pnt, src/lunar_dpnt.rs — Kuun differentiaalinen GNSS / satellite-based-augmentation-system (SBAS) -vastine: tarkka yhteismuotoisen kellon kumoutuminen + ensimmäisen kertaluvun spatiaalinen dekorrelaatio peruslinjan funktiona, uudelleenkäyttäen DO-229E SBAS -suojaustasoa — DO-229E on RTCA:n (aiemmin Radio Technical Commission for Aeronautics) SBAS-vastaanottimien vähimmäistoimintastandardi); sekä LunaNet/IOAG-yhteensopiva yhteentoimivuusvienti (IOAG = Interagency Operations Advisory Group; lunar-interop-export, src/lunar_interop.rs — CCSDS-OEM (Orbit Ephemeris Message) + Kuun aika-asteikon edestakainen muunnos IAU 2015 Kuun kappalekoordinaatistossa, kääritty KIF-kuoreen). Todisteiden tasot kohdittain ovat varmennusmatriisissa: Lunar Coordinate Time, yhteinen OD + kello -estimaattori, koordinaatiston realisointi ja palvelualueen geometria ovat VALIDATED (kukin rivinsä nimeämää riippumatonta oraakkelia vasten, samoin VLBI-viiveen ydinpolku); VLBI-havaintosuure, datumvian havaittavuustulos, differentiaalinen PNT ja yhteentoimivuusvienti ovat MODELLED. Parametrit ovat havainnollistavia julkisen lähteen arvoja — ei validoitu todellista VLBI/Gateway-seurantaa vasten, ei minkään viraston omistamia tai hyväksymiä, ei TRL (technology readiness level) / perintöväitettä. |
| Kaukoavaruuden ja Marsin PNT | Avoin radiometrinen navigointimoottori: iteratiivinen valoaika + Shapiro-relativistinen viive, kaksi-/yksi-/kolmisuuntainen Doppler & etäisyys (Moyer kaksihaarainen), koherentit transponderin kääntösuhteet, regeneratiivinen/PN (pseudo-noise) -etäisyysmittaus (CCSDS 414, pseudokohinaetäisyysmittausstandardi) ja Δ-DOR taivaantason (CCSDS 506, Delta-DOR-standardi) sekä aurinkoplasma-/tropo-/ionovaikutuksilla; CCSDS-TDM (503) seurantadataviestin jäsennys + tuotto; pelkistetyn dynamiikan neliöjuuri-informaatiosuodatin (RTN — radial, transverse, normal — empiiriset kiihtyvyydet + 3-tilainen aluksella oleva kello + Marsin ilmakehän vastus), joka tekee Mars-LMO-radanmäärityksen tarkkuudella ≈ 0,2 m synteettisessä suljetussa silmukassa; yhteinen yksisuuntainen + kaksisuuntainen fuusio -estimaattori; moniruumisdynamiikan ydin (Body{μ, re, zonals, gravity, IAU-pole}, Mars GMM-3 (Goddard Mars Model 3) -gravitaatio, IAU:n kappalekiinteä Mars-koordinaatisto, liitettävä EphemerisProvider-rajapinta, kaksiosaiset Julian-päivämäärät + TT↔TDB (Barycentric Dynamical Time)); sekä mars-pnt-releen PNT-skenaario (MARCONI-areostationaarinen releen satelliittijoukko) ja päästä päähän -GSE-suorituskykysimulaattori (GSE = ground-support equipment) (geometria → linkkibudjetti → havaintosuureet → SRIF → kovarianssi). Simulaatiolla validoitu (kovarianssin / suljetun silmukan laatumittarit); Aurinko-keskinen Marsin dynamiikka on ristiintarkistettu JPL:n DE440:ää vasten (137 m @ 1 vuorokauden kaari, xval/anise-mars-od). Todellinen DSN/ESTRACK-seurantadatan validointi on tiekartalla. |
| Aurinkokunta ja minkä tahansa kappaleen PNT | Kernelitön koko aurinkokunnan efemeridi (src/ephem.rs, src/ephem_provider.rs): jokainen planeetta JPL:n Standishin Kepler-elementeistä (taulukko 1, 1800–2050 jKr.; taulukot 2a/2b, 3000 eKr.–3000 jKr.) kunkin planeetan julkaistun nimellisvirheen kanssa, Maa ja Kuu eroteltuina Kuun sarjalla sekä Phobos, Deimos, Io, Europa, Ganymede, Callisto ja Titan JPL:n keskielementeistä ja IAU:n (International Astronomical Union) pyörimismallista; mikä tahansa kappale suhteessa mihin tahansa toiseen ICRF-koordinaatistossa (International Celestial Reference Frame). Body kantaa nyt GM:n (gravitaatioparametri), säteet, J2:n (toinen zonaalinen harmoninen) julkaistuna sekä IAU:n navan ja nollameridiaanin kahdeksalletoista kappaleelle. Tyyppi solar-system raportoi paikat, nopeudet, vakiot, valoajan ja yksi-/kaksisuuntaisen etäisyyden minkä tahansa kahden kappaleen välillä (olemassa oleva radiometrinen valoaikaratkaisija, Auringon Shapiro-viiveellä) ja kunkin kappaleen ratajäljen — riittävästi interaktiivisen aurinkokunnan piirtämiseen; tyyppi body-pnt sijoittaa kiertäjän tai laskeutujan minkä tahansa kappaleen ympärille (scenarios/mars-orbit-pnt.toml, scenarios/europa-surface-pnt.toml) paikallisella Walker-satelliittitähdistöllä, tarkkuuden heikkenemiskerroin- ja Gauss–Newton-koneistolla sekä syväavaruuden etäisyydellä Maasta. Validoitu JPL Horizonsia (DE441, JPL Development Ephemeris 441) vasten: Merkurius–Saturnus ja Maa taulukosta 1 kaksinkertaisen nimellisvirheen sisällä (pahin 1,87×), kaikki kahdeksan planeettaa taulukoista 2a/2b (pahin 1,71×) sekä Maa–Mars/Jupiter-valoaika. Mallinnettu: Uranus ja Neptunus taulukosta 1 (2,0× ja 5,2× ilmoitettu virhe DE441:tä vasten), Pluto, kuut ja body-pnt-navigointitulokset. |
| Fuusioitu MEO + LEO PNT | src/leo_fusion/: järjestelmäriippumaton LEO-paikannus, -navigointi ja -ajanmääritys mille tahansa satelliittitähdistön (Walker-kuoret, elementtijoukot, GNSS-esiasetukset) ja minkä tahansa signaalin (kantoaalto, siruvauhti, C/N0-verhokäyrä, avaruudessa olevan signaalin etäisyysvirhe) yli, valinnaisilla yhden tiedoston esiasetuksilla, jotka kantavat lähteensä (Xona Pulsar X1/X5, Iridium STL, Starlinkin opportunistiset signaalit, CentiSpace, edustava C-kaistan järjestelmä, ATOMIC-nollakello-efemeridimalli). leo-pvt: erä-Doppler-paikannus etäisyysnopeudesta (yksi- ja usean satelliitin, kellon ajautuman ja nopeuden tilat, yhden ylilennon radan suuntainen/poikittainen geometria ja peiliratkaisu), yhteinen GNSS + LEO painotettu pienimmän neliösumman menetelmä järjestelmäkohtaisilla järjestelmien välisillä biaseilla ja kutsujan antamilla signaalikohtaisilla sigmoilla, DOP suhteessa LEO-satelliittien määrään, napa- ja arktinen kattavuus sekä LEO-ajansiirto UTC:hen suhteessa C/N0:aan ja oskillaattoriin. leo-ppp: float-PPP-EKF (precise point positioning, extended Kalman filter) pelkällä GNSS:llä ja LEO:n kanssa, sen konvergenssiaika ja khiin neliön NEES-johdonmukaisuustesti. ntn-positioning: 5G:n ei-maanpäällisen verkon paikannus kaistanleveyden Cramér–Rao-rajasta. Validoitu: LEO-Dopplerin verhokäyrä julkaistuja Iridium- ja Xona-lukuja vasten. Mallinnettu: loput, PPP-trendi verrattuna lähteeseen Li ym. (2019) — ks. docs/LEO-PNT-FUSION.md. |
| Eheys | Hetkellinen ja ratkaisuerotteluun perustuva (ARAIM-tyylinen) RAIM — receiver autonomous integrity monitoring — vaaka-/pystysuuntaisilla suojaustasoilla (HPL/VPL), vian havaitseminen ja poissulkeminen sekä Stanford-eheyskaaviot; eksplisiittisellä eheysriskibudjetilla varustettu usean hypoteesin ratkaisuerottelu (MHSS) -suojaustaso, mukaan lukien kaksois-/monisatelliittitähdistön satelliittitähdistön laajuinen vikatila (EU (Euroopan unioni) ARAIM / DO-316, RTCA:n suorituskykystandardi GPS-ilma-alusvarusteille ilma-aluspohjaisella täydennyksellä), harjoiteltuna todellisella GPS + Galileo -hetkellä (scenarios/araim-gps-galileo.toml). Suojaustaso soveltaa yksipuolista nimellisbiaksen projektiota b_k = Σ_i|s_i|·b_nom vikatilaa kohti ja eheys-sigmaa σ_URA (user range accuracy; eri asia kuin tarkkuus-sigma σ_URE, user range error) Integrity Support Messagesta — ks. docs/ARAIM_REFERENCE.md. Havaitsemisydin (χ²/ei-sentraalinen χ²/normaalijakauman kynnysarvot ja K-kertoimet) on ulkoisesti validoitu SciPyta vasten 171 tapauksessa (tests/raim_reference.rs); geometria käyttää uudelleen gnss_lib_py:llä validoitua DOP-ydintä. ARAIM MHSS -eheysriskin budjetin jako sellaisenaan ei ole julkaistua numeerista oraakkelia ja pysyy rehellisesti mallinnettuna. |
| Täydennys (SBAS) | SBAS / WAAS -suojaustasot (WAAS = Wide Area Augmentation System) DO-229E:n painotetun pienimmän neliösumman muodossa (tarkkuuslähestymisen ja lentoreitin K-kertoimet) sekä L1/L5-kaksitaajuinen ionosfäärivapaa yhdistelmä (L1 ja L5 ovat kaksi GPS:n siviilisignaalikaistaa; IS-GPS-705, GPS:n L5-signaalin rajapintamäärittely, γ₁₅ ≈ 1,793), joka on DO-316:n perusta — src/sbas.rs. Suojaustasoalgoritmi on ulkoisesti validoitu RTKLIB SBAS-PL -haaraa vasten (RTKLIB = avoin reaaliaikainen kinemaattinen paikannuskirjasto; PL = suojaustaso) (zsiki/rtklib_ws waasprotlevels(), Siki & Takács 2017, DO-229D — DO-229:n edellinen versio — liite J) ajettuna todellisella EGNOS-datalla (European Geostationary Navigation Overlay Service), toistaen sen HPL:n tarkkuudella < 2e-3 m (tests/sbas_reference.rs); gLAB (GNSS Laboratory -työkalusarja) v6.0.0 vahvisti saman käytännön. |
| Kello ja ajoitus | Kaksitilainen Kalman-holdover (Joseph-muotoinen kovarianssi, NIS/NEES — normalisoitu innovaation neliö / normalisoitu estimointivirheen neliö — johdonmukaisuusterveys); Allan-perheen vakaus (ADEV / MDEV / TDEV / HDEV / MTIE — Allanin, modifioitu Allanin, aika- ja Hadamardin poikkeama sekä suurin aikaintervallivirhe) kohinatyyppikohtaisilla luottamusväleillä ja täysi IEEE-1139:n viiden kertoimen potenssilakisovitus (IEEE Std 1139, Institute of Electrical and Electronics Engineersin taajuus- ja aikametrologian määritelmät) — estimaattorit on validoitu oikealla laitteistolla Stable32:ta vasten: oikea 5071A-cesiumprimäärinormaali vs. vetymaser (556 990 vaihenäytettä, 16 keskiarvoistuskerrointa, OADEV/OHDEV — päällekkäinen Allanin/Hadamardin poikkeama — tarkkuuteen 1e-3; tests/cs5071a_reference.rs) ja kanoninen Stable32 PHASE.DAT -regressiosarja (139 keskiarvoistuskerrointa, OADEV/MDEV/TDEV tarkkuuteen 1e-3; tests/phasedat_reference.rs); ADEV/MDEV/TDEV-estimaattorit ja telekommunikaation MTIE-vaelluksen mittari on lisäksi ristiintarkistettu riippumatonta allantools 2024,06 -kirjastoa vasten tarkkuuteen < 1e-9 NIST SP 1065 -sarjalla (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs); geometriset korjaukset (Sagnac, GNSS common-view); sekä operatiiviset siirtomenetelmät — TWSTFT (kaksisuuntainen satelliittiaika- ja taajuussiirto) BIPM:n (International Bureau of Weights and Measures) Sagnacin suljetulla muodolla, GNSS common-view, PPP (precise point positioning) ionosfäärivapaa ajansiirto, vapaan avaruuden optinen linkki turbulenssituikinnalla ja käänteisvarianssipainotettu kelloyhtye (paperi-) aika-asteikko parasta osallistuvaa kelloa pienempänä. GNSS-estetty kellon holdover -laskuri (src/holdover.rs) paljastaa suljetun muodon van Loanin liukumavirheen kasvun holdoverista kynnykseen -käänteisenä — kuinka kauan kello käy vapaasti, ennen kuin sen aikavirhe ylittää budjetin — edustavissa klassisissa ja kvanttikelloluokissa; mallinnettu (ristiintarkistettu monivaiheista clock_state-kovarianssirekursiota vasten) ja rehellisesti sitä mieltä, että hyvin vakaalle kellolle holdover tiukkaan kynnykseen määräytyy oletetusta pitkän tau:n kohinalattiasta, ei siteeratusta ADEV:stä. Ehdollinen ajoituksen suojaustaso (src/tpl.rs) laajentaa holdoverin harhautukseen: raja havaitsemattomalle aikavirheelle, kun käytössä on riippumaton ristiintarkistus, joka yhdistää k-sigma-monitorin lattian, van Loanin liukumavarianssin havaitsemisviiveen yli ja CUSUM-hälytysajan (cumulative-sum). Kalibroitu todellisella tallennetulla harhautuksella (JammerTest 2024) ja toistettavissa komennolla cargo run --example tpl_jammertest; MODELLED-koostumus (ei eheysriskiä tunnissa -budjettia), ehdollinen havaitsemiselle — mitään äärellistä ehdotonta rajaa ei ole. |
| GNSS-mittausalue | Pseudoetäisyyden / Dopplerin eteenpäinsynteesi Klobuchar-(lähetetty) ja IONEX / TEC-ruudukko -ionosfäärillä (IONosphere map EXchange format / elektronien kokonaismäärä; mitattu) — mukaan lukien IONEX-tiedostojäsennin, aikainterpolointi karttojen välillä ja ohutkuoren vinouskartoitus — Saastamoinen + Niell -troposfääri sekä hetkellinen RAIM (HPL/VPL). |
| Kestävyys | Linkkibudjetin häirintä (J/S → tehollinen C/N₀ → lukituksen menetys — häirintälähettimen ja signaalin suhde, kantoaalto-kohinatiheyssuhde — siten, että häiriönestoa kuvaava spektrierotuskerroin Q on nyt johdettu varsinaisista signaalin ja häirintälähettimen tehospektreistä kautta src/navsignal.rs — Q = 1/(R_c·κ), ristiintarkistettuna CI:ssä aiempaa edustavaa vakiota vasten); stokastinen aikaharhautuksen ilmaisin (Neyman–Pearson / χ²₁-energiatesti suljetun muodon ja Monte Carlo -P_fa/P_md:llä sekä turvallisuuden laatumittari (FoM) 1 − P_md); monikerroksinen harhautuksen ilmaisin, joka fuusioi RAIM-johdonmukaisuuden pariteettitestin (yhteismuotoinen sokea piste mallinnettuna rehellisesti), RF-AGC-tehomonitorin (automatic gain control) ja signaalilaatumonitorin (SQM — signal-quality monitoring, early-minus-late); sekä kvantti-inertia-dead-reckoning-virhebudjetti (QuantumNavBudget, src/inertial/quantum_imu.rs), joka yhdistää kylmäatomi-interferometrin valkoisen kohinan nopeuden satunnaiskävelyn jäännösbiakseen (ristiintarkistettu riippumatonta AccelModel-integraattoria vasten) ja asteikkokerroinvirheeseen paikka-ajautumaluvuksi holdoverin yli — kellon holdoverin inertiakaksonen. Kehykseen kohdistettu kestävyyspisteytysmoottori (src/resilience/) kuvaa arkkitehtuurin simuloidun käyttäytymisen ulottuvuuskohtaisiksi osapistemääriksi Kshanan omissa seitsemässä kestävyysluokassa (ei DHS:n termejä), kohdistettuna Yhdysvaltain Department of Homeland Securityn Resilient PNT Conformance Frameworkiin, ja tutkii sitten minkä tahansa yksittäisen yhdistelmäpistemäärän tai kypsyystason päätösvakautta Dirichlet-painosimpleksillä ja viiden uhan ensemblellä — Kendall-τ-järjestyksen epävakaus, top-1-voittajan vaihtumisaste ja yhteismuotoinen monimuotoisuuden romahdus (Hill-N2), eheyshajautetulla varmuusraportilla (35 käsin johdettua oraakkelitestiä). Toistettavissa komennolla cargo run --example resilience_report; MODELLED synteettiset arkkitehtuurit, RPCF v2.0:aan kohdistettu itsearviointi, ei sertifiointi. Ks. docs/RESILIENCE-CROSSWALK.md. |
| Passiivinen RF-paikannus | TDOA/FDOA-lähteen geopaikannus (saapumisaikaero / saapumistaajuusero; src/geolocation.rs) — paikanna häirintälähetin tai harhauttaja (tai opportunistinen lähde käänteistä PNT:tä varten) vastaanotinverkon saapumisaikaero-hyperboloideista, ratkaistuna Gauss–Newtonin pienimmän neliösumman menetelmällä; saapumistaajuusero liikkuvilla vastaanottimilla yhdessä palauttaa lähteen paikan ja nopeuden, ja paikkakovarianssin Cramér–Rao-raja johdetaan verkon geometriasta. MODELLED (sisäisen johdonmukaisuuden oraakkelit: eteenpäin→käänteinen edestakaisuus, J·CRLB = I -identiteetti, GDOP:n monotonisuus ja estimaattori, joka saavuttaa oman CRLB:nsä Monte Carlo -ajossa) — pistelähteen näkölinjamalli, ei monitie-/NLOS- (non-line-of-sight), vastaanottimen kellobias- tai taittumatermejä. |
| Navigointisignaali ja koodiseuranta | Signaalitaso linkkibudjetin ja mittausalueen välillä (src/navsignal.rs): yksikköpinta-alaiset tehospektritiheydet (PSD) BPSK-R(n):lle (binäärinen vaihesiirtoavainnus suorakulmaisilla siruilla) ja sini-BOC(m,n):lle (binary offset carrier); spektrierotuskerroin (SSC) κ = ∫ G_s·G_i df, joka johtaa häiriönestoa kuvaavan Q-kertoimen, jota häirintämalli käyttää (Q = 1/(R_c·κ)) varsinaisista signaali-/häirintälähetinspektreistä edustavan vakion sijaan; RMS (Gabor) -kaistanleveys (BOC > BPSK — etäisyystiedon / Cramér–Rao-mitta); koherentti early–late DLL-koodiseurannan lämpökohinan värinä (DLL = delay-lock loop; Kaplan & Hegarty; ~alle metri C/A:lle — GPS:n karkea/hankintakoodi — kohdassa 45 dB-Hz); sekä monitie-etenemisen virheverhokäyrä (koherentti EML, early-minus-late — kapean korrelaattorin vaimennus). Validoitu suljetun muodon ankkureita vasten (BPSK:n oma SSC = 2/(3·R_c), yksikköpinta-alaiset PSD:t, alle metrin C/A-värinä). Tämä on signaalin suorituskykyanalyysi, ei antennin / RF-hyötykuorman laitteistosuunnittelua (hyötykuormakumppanin rooli). |
| Yhteentoimivuus | RINEX-3 usean GNSS:n lähetetyn efemeridin sisäänluku (GPS, Galileo, QZSS — Japanin Quasi-Zenith Satellite System —, BeiDou MEO/IGSO — keskikorkea Maan kiertorata / kalteva geosynkroninen kiertorata — IS-GPS-200:n kautta, GPS:n rajapintamäärittely; GLONASS, Venäjän Global Navigation Satellite System, PZ-90:n — venäläinen Parametry Zemli 1990 -datum — tilavektori-RK4:n kautta) käytettävissä satelliittitähdistön lähteenä (RINEX sisään, PNT-geometria ulos); RINEX-3-havaintojäsennin (pseudoetäisyys, kantoaallon vaihe, Doppler, signaalin voimakkuus; 4,00-havaintoasettelun odotetaan jäsentyvän mutta sitä ei ole testattu, ja RINEX 4 -navigointitiedostot hylätään nimen perusteella sen sijaan, että ne tulkittaisiin väärin), joka nyt syöttää yhden pisteen paikannus (SPP) -ratkaisijaa (pvt) — todelliset koodihavainnot sisään, todellinen vastaanottimen paikka ulos, validoitu IGS-datalla; SP3-c/d-tarkkaefemeridilukija/-kirjoittaja 9. asteen Lagrange-interpolaatiolla; sekä CCSDS OEM 2,0 + OMM (Orbit Mean-elements Message) -vienti lentodynamiikkatyökaluille (GMAT, Orekit, STK — Systems Tool Kit); ja CCSDS-TDM (503) seurantadataviestin jäsennys + tuotto syväavaruuden radiometriseen seurantaan. |
| Tehtäväanalyysi (järjestelmätekniikka) | Ensimmäisen kertaluvun tehtäväsuunnittelun budjetit, kukin ajettava tyyppi: kaksikappale-laukaisu- ja nousugeometria (launch-window — laukaisuazimuutti sin Az = cos i/cos lat, vähimmäiskaltevuus, Maan pyörimisbonus, dogleg-tasonmuutos-Δv, päivittäiset mahdollisuudet; src/launch.rs); Allen–Eggers-ballistinen paluukäytävä (reentry — huippuhidastuvuus, huippu-g:n nopeus/korkeus, huippulämmityksen nopeus; src/reentry.rs); Maan havainnoinnin kattavuusgeometria (eo-coverage — kaista / nadiirin GSD (ground sample distance) / nadiirista poikkeava pääsy / uudelleenkäyntiaika SMAD-avaruuskolmion (Space Mission Analysis and Design) kautta; src/eo_payload.rs); 3-DOF-asento- ja osoitusvirhebudjetti (kolme vapausastetta; attitude-budget — pahimman tapauksen gravitaatiogradienttimomentti + RSS (root-sum-square) -osoitusbudjetti; src/attitude_budget.rs); maa-aseman ylilentoennuste (passes — AOS/TCA/LOS, signaalin saanti / lähin ohitusaika / signaalin menetys, suurin korkeuskulma, yhteysaika; src/passes.rs); sekä yksisuuntainen linkkibudjetti CCSDS 401 / DSN 810-005 -linkkiyhtälöllä (CCSDS:n radiotaajuus- ja modulaatiostandardi / Deep Space Networkin linkkisuunnittelun käsikirja; link-budget — FSPL (vapaan avaruuden etenemishäviö), C/N₀, Eb/N₀ (bittienergian ja kohinatiheyden suhde), marginaali, sulkeutuminen; src/linkbudget.rs). MODELLED ensimmäisen kertaluvun analyyttiset budjetit — laitteistoa edeltävä kerros STK:n/GMAT:n/Basiliskin alla, ei 6-DoF- tai radiometrinen korvike. |
| Päätösanalyysi ja kompromissit (MCDA) | Täysi monikriteeripäätösanalyysi (MCDA) -sarja (src/mcda/), joka kattaa kaikki neljä menetelmäperhettä — arvoaggregointi (WSM, WPM, WASPAS — painotettu summamalli, painotettu tulomalli, painotettu aggregoitu summa-tuloarviointi), etäisyys ihanteeseen (TOPSIS, Technique for Order of Preference by Similarity to Ideal Solution), kompromissiohjelmointi (VIKOR, serbiankielisestä monikriteerioptimoinnin ja kompromissiratkaisun nimestä) ja ohitusjärjestys (PROMETHEE II, Preference Ranking Organization Method for Enrichment of Evaluations; ELECTRE I, ranskankielisestä todellisuutta ilmaisevan eliminoinnin ja valinnan nimestä) sekä suhdelukujärjestelmä MOORA (Multi-Objective Optimization on the basis of Ratio Analysis) ja suhteellinen COPRAS (Complex Proportional Assessment) — AHP:n (Analytic Hierarchy Process) parittaisvertailuun perustuva prioriteettipainotus (johdonmukaisuussuhde), Pareto-ei-dominoitu rintama, painojen herkkyysanalyysi ja monitahoinen hyötypisteytys. Yhdeksän aggregaattoria toistavat riippumattomat kolmannen osapuolen kirjastot pymcdm (WSM / WPM / WASPAS / MOORA / TOPSIS / VIKOR / PROMETHEE II) ja pyDecision (ELECTRE I, COPRAS) tarkkuudella < 1e-9, ja AHP:n prioriteettivektori + johdonmukaisuussuhde vastaavat Saatyn satunnaisindeksitaulukkoa ja SciPyn/LAPACKin pääominaisarvoratkaisijaa tarkkuudella < 1e-9 (tests/mcda_*_reference.rs). VALIDATED — päätöskerros kompromissitutkimusmoottorin alla. |
| Avaruusympäristö | Avaruussäämalli (space-weather, src/space_weather.rs): aurinko- (F10.7 / keskitetty 81 vuorokauden F10.7a — 10,7 cm:n auringon radiovuo) ja geomagneettiset (Kp, planetaarinen K-indeksi, määritelmällisellä Kp↔ap-taulukolla — ap on sen lineaarinen planetaarinen amplitudi) aktiivisuusindeksit, niiden ohjaama Jacchia-1971-eksosfäärin lämpötila (validoitu julkaistuja aurinkominimiä/keskiarvoa/maksimia vasten) sekä aktiivisuuskorjattu vs. staattinen termosfäärin neutraalitiheys korkeudella — auringon syklin tiheysriippuvuus, jonka staattinen USSA76 (US Standard Atmosphere 1976) -ilmakehä jättää pois. MODELLED: kalibroitu ensimmäisen kertaluvun skaalakorkeuskytkentä, ei datalla validoitu (NRLMSISE — US Naval Research Laboratoryn Mass Spectrometer and Incoherent Scatter Radar Exosphere -malli) ilmakehä. |
| Koneoppimisen arviointi ja vertailu | RF-häiriön havaitsemisen arviointitestialusta (impairment-eval, src/impairment_eval.rs): nimetty, parametreihin perustuva synteettinen aineisto (nimellinen / häirintä / aikaharhautus / paikkaharhautus / monitie-eteneminen), ilmaisimesta riippumaton ROC/AUC-työkalu (receiver operating characteristic / käyrän alle jäävä pinta-ala), joka pisteyttää minkä tahansa ilmaisimen (energy | agc | sqm | parity | fused) luokkakohtaisella Pd:llä (havaitsemistodennäköisyys) tavoitteena olevalla Pfa:lla (väärän hälytyksen todennäköisyys), sekä jakauman sisäisen vs. ulkopuolisen optimismiaukon (jakaumasiirtymätila). Lisäksi kvantti vs. klassinen PNT -kompromissi (quantum-trade, src/quantum_trade.rs), joka määrittää ehdokaskellon ajoitus-/inertiaholdover-hyödyn mitatusta ADEV:stä -käyrästä klassista lähtötasoa vasten, pitkän τ:n lattiavaroituksella tuotoksessa sekä GNSS-estetyllä kestävyys vs. aika -verhokäyrällä. Arviointimittarit (AUC / sekaannus / Pd-Pmd, Pmd on havaitsematta jäämisen todennäköisyys) on validoitu tarkkaan vastaavuuteen scikit-learn 1.9.0:aa vasten — myös todellisella ESA OPS-SAT -telemetrialla (OPSSAT-AD-poikkeamantunnistusaineisto, Ruszczak ym. 2025, CC BY 4,0 — Creative Commons Attribution 4,0), jossa Kshanan Mann–Whitney ROC AUC toistaa scikit-learnin roc_auc_score-arvon tarkkuudella < 1e-9 pidätetyllä testijaolla ja läpinäkyvä huippulukumääräilmaisin erottaa nimetyt poikkeamat AUC ≈ 0,85 (tests/opssat_ad_reference.rs) — ja kompromissimoottorin numeeriset ytimet (ADEV NNLS — ei-negatiivinen pienimmän neliösumman — sovitus, χ²-johdonmukaisuuskaistat, van Loanin kellon Q) scipy 1.17.1:ää vasten; niiden päälle rakennetut laitehyötyluvut pysyvät MODELLED toimintaominaisuuksina — ei koskaan kenttä-/IQ- (in-phase/quadrature-näyte) dataa, ei hyvä/huono-tuomiota. Testialustan päälle rakennettu syvempi optimismiaukkotutkimus (src/impairment_study.rs, impairment_ml.rs, eval_stats.rs) pisteyttää 13 ilmaisimen paneelin (energy/AGC/SQM/parity sekä siemenluvulla ajetut logistisen regression ja yhden piilokerroksen MLP- — multi-layer perceptron — ilmaisimet), sovittaa jakauman sisäiset vs. ulkopuoliset skaalauslait permutaationollalla ja oppii jätä-yksi-pois-ennustimen jakauman ulkopuoliselle heikkenemiselle jakauman sisäisistä tilastoista (cargo run --example optimism_study). Ohjelmistomääritelty vastaanottimen etupää (src/sdr.rs — raaka IQ/IF (intermediate-frequency) → korrelaattorin early/prompt/late-haarat → SQM) ja todellisen datan sisäänluvun adapterit (src/realdata/ — RINEX, u-bloxin UBX (u-bloxin binääriprotokolla), GnssLogger, JammerTest, Yunnan, SatGrid) antavat samojen ilmaisimien ajaa paikallisesti toimitettuja tallenteita (mitään aineistoja ei ole tallennettu mukaan). Kvantti vs. klassinen kestävyyden risteyskartta parametriepävarmuudessa (src/crossover.rs; cargo run --bin crossover_study) tuottaa uudelleen inertia- ja kelloristeystutkimukset Tulokset-kuvien takana. |
| Kvanttiavusteisen PNT:n demonstraattori | Kolme ajettavaa, MODELLED-sovellusaluetta avoimen moottorin takana, kukin tuottaa rehellisen TradeEvidence-tuotoksen + edustavuus- / lentoon-puuttuvat-aukot -tallenteen (src/representativeness.rs): luotettu kvanttiajansiirto (quantum-time-transfer, src/timetransfer_chain.rs — päästä päähän optinen hilakello + fotoninen linkki vs. CSAC (chip-scale atomic clock) + RF-kaksisuuntainen budjetti, uudelleenkäytetyllä ajoituksen suojaustasolla, viive-/toistohyökkäyksen turvallisuuden FoM:llä (1 − P_md) sekä kelloanomalian havaitsemisella + CUSUM-viiveellä); GNSS-vapaa kvanttinavigointi (quantum-gnss-free-nav, src/quantum_nav_od.rs — kylmäatomi-interferometrinen inertialento vs. navigointiluokan INS GNSS-katkon yli, rehellisenä siitä, että ilman ulkoista paikannusta kiihtyvyysanturin bias on havaitsematon, joten virhe silti kasvaa); sekä kvanttijärjestelmän vika-/poikkeamahavaitseminen (quantum-anomaly-detect, src/quantum_faults.rs — nimetty vikaluettelo bootstrap-luottamusvälillä (CI) varustetulla ROC AUC:lla ulkoisesti validoidusta eval_stats-työkalusta ja pienin havaittava vika kiinteällä väärien hälytysten asteella). Jaettu kvanttilaitteiden virhemallikirjasto (src/quantum_devices.rs) ja yhtenäinen kvantti vs. klassinen kompromissityökalu (src/qtrade.rs) tukevat niitä. Niiden käyttämät validoidut ytimet (arviointimittarit vs. scikit-learn, kompromissiytimet vs. scipy) käytetään uudelleen; niiden päälle rakennetut laitehyötyluvut pysyvät MODELLED — havainnollistavia julkisen lähteen laite-/linkkiparametreja, mallintaa luokkaa, ei TRL:ää / lentoperintöä / sertifiointia, ei viraston hyväksyntää. |
| Säästäväinen suunnittelu ja eheysvaikutus | Hinta per kattavuus -ROI (return on investment) -näkökulma (src/frugal.rs) — hinta toimitettua kattavuusyksikköä kohti arkkitehtuurikompromississa — sekä havaitsematta jääminen → eheysvaikutus -kartoitus (src/integrity_impact.rs), joka muuttaa monitorin havaitsematta jäämisen asteen sen eheysriskipanokseksi. MODELLED päätöstukibudjetit, additiiviset. |
| Artefaktien siirtomuoto | Kshana Interchange Format (KIF) (src/interchange.rs) — versioitu, itsensä kuvaava kuori, joka käärii skenaariotuloksen sen tyypin, skeemaversion ja MODELLED/VALIDATED-tunnisteiden kanssa, jotta tallennettu artefakti pysyy itsedokumentoivana ja vanhemmat kuoret pysyvät eteenpäin yhteensopivasti luettavina. |
Jokainen ominaisuus on käytettävissä Rust-API:na, ajettavana skenaariona kind tai molempina. Kunkin ominaisuuden kypsyys — validoitu, ajettava tai kirjasto — on seurattuna tiedostossa docs/CAPABILITY.md. Koneellisesti tarkistettu varmennusmatriisi (src/verification.rs) esittää vaatimus → moduuli → testi → oraakkeli → tila -ristiviittauksen, yksikkötestatuilla rehellisyysinvarianteilla, jotka sallivat validoitu-tunnisteen vain siellä, missä sitä tukee riippumaton ulkoinen oraakkeli — ja jotka kirjaavat laitteisto-/PA- (tuotevarmistus) -ominaisuudet, joita Kshana tarkoituksella ei tarjoa.
Neljä anturipakettia sellaisina kuin ne ensin julkaistiin (tulokset)
Tulokset#
Jokainen skenaario vertaa kvanttianturia sen klassiseen vastineeseen ~1,8 h GNSS-katkon läpi. Luvut ovat toistettavissa (scenario + seed + version).
Mitä kvanttianturit antavat, kun GNSS on poissa — clock-holdover · siemenluku 42 · piirretty moottorilla 0.40.0, ja jokainen yllä oleva luku tarkistetaan uudelleen nykyistä moottoria vasten jokaisessa rakennuksessa testillä tests/published_figures_still_reproduce.rs · SVG
Etu on katkosta ja tärinästä riippuvainen, ja selkeä tasapainopiste, jossa klassinen voittaa — esitettynä rehellisesti teknologiavalmiusportaiden yli (optisen kellon luvut ovat maassa tehtävän demonstraattorin tavoitteita; mikään strontiumoptinen kello ei ole lentänyt):
Kvantti vs. klassinen kestävyysristeys — kellon holdover TRL-portaat (ylhäällä) · inertiaetukartta tasapainopistekäyrällä (alhaalla). Uudelleentuotettavissa komennolla cargo run --release --bin crossover_study.
Dead-reckoning-paikkavirhe GNSS-katkon aikana: kvanttianturi (sininen) pysyy tasaisena lähellä määrittelyä; klassinen anturi (punainen) ajautuu kymmenien kilometrien päähän. Kshanan tuottama tiedostosta scenarios/imu-deadreckoning.toml.
| Paketti | Skenaario | Kvantti | Klassinen |
|---|---|---|---|
| 1 — Kellon holdover | clock-holdover.toml (20 ns määrittely) |
optinen kello pitää koko katkon | CSAC ylittää määrittelyn katkon puolivälissä |
| 2 — Inertia-dead-reckoning | imu-deadreckoning.toml (100 m määrittely) |
kylmäatomi: ~41 m, pitää koko katkon | navigointiluokka: ylittää ~350 s:ssa → kymmeniä km |
| 3 — Ajansiirto (optinen satelliittien välinen linkki) | timetransfer.toml |
optinen: ~0,3 mm etäisyysmittaus | RF (TWSTFT): ~150 mm etäisyysmittaus |
| 4 — Hybridifuusio (huipentuma) | hybrid-pnt.toml |
täysi paikka + ajoitus koko katkon ajan | paikan osalta rajoittunut noin 350 s:iin |
Huipentuma osoittaa fuusiotesin: optinen satelliittien välinen ajansiirto pitää jopa klassisen kellon lukittuna ja eristää inertiaanturin klassisen sarjan heikoksi lenkiksi — eli kvantti-inertia ja optinen ajoitus yhdessä.
Kellon holdover GNSS-katkon läpi: optinen kello (sininen) pysyy 20 ns määrittelyn sisällä koko liukuman ajan; sirutason kello (punainen) ylittää sen puolivälissä. Kshanan tuottama tiedostosta scenarios/clock-holdover.toml.
Toinen skenaario, orbit-gnss-challenged.toml, johtaa GNSS-saatavuuden ratageometriasta käsin kirjoitettujen ikkunoiden sijaan: GNSS-kuoren sisällä oleva avaruusalus propagoidaan GPS:n kaltaista Walker-satelliittitähdistöä vasten, ja näkyvien satelliittien määrä (näkölinja, Maan peitto, korkeuskulmamaski) määrää paikannustilan jokaisella askeleella. Vuorokauden aikana käyttäjällä on paikannus vain ~59 % ajasta; kvanttikello pitää 5 ns ajoitusratkaisun jokaisen aukon läpi (saatavuus 1.0), sirutason kello vain ~0.83.
Aikavirhe vuorokauden yli, kun GNSS-saatavuus johdetaan ratageometriasta: näkyvien satelliittien määrä (näkölinja, Maan peitto, korkeuskulmamaski) määrää paikannustilan jokaisella askeleella, joten kellon on liu'uttava jokaisen aukon läpi — optinen kello pitää 5 ns määrittelyn, kun sirutason kello ylittää sen. Kshanan tuottama tiedostosta scenarios/orbit-gnss-challenged.toml.
Satelliittitähdistö voidaan antaa myös todellisina kaksirivielementteinä (TLE). Täysi TLE (rivi 1 + rivi 2) propagoidaan täydellä SGP4/SDP4-mallilla — mukaan lukien ilmakehän vastus sekä syväavaruuden Kuun ja Auringon sekä 12 h / 24 h resonanssitermit, jotka ovat tärkeitä ~12 h GNSS-radoilla — validoituna virallisia AIAA 2006-6753 -vektoreita vasten pahimmassa tapauksessa ≈ 4 mm:iin. scenarios/orbit-sgp4-gps.toml sisältää todellisen Celestrakin gps-ops-otoksen operatiivisesta GPS-satelliittitähdistöstä (2021-07-28, 30 satelliittia) ja vaatii kelvolliset TLE-tarkistussummat — kaksirivielementit ovat avointa dataa Yhdysvaltain avaruusvoimien / 18th Space Defense Squadronin luettelosta, jota Celestrak jakaa edelleen (Dr T. S. Kelso, celestrak.org); päivitä komennolla scripts/fetch_tles.sh. Pelkän rivin 2 lohko säilyttää analyyttisen kaksikappalepropagoinnin (scenarios/orbit-real-tle.toml); molempia muotoja voi sekoittaa yhdessä satelliittitähdistössä. Satelliittitähdistön voi yhtä hyvin rakentaa RINEX-3 GPS:n lähetetyn efemeridin tietueiden lohkosta — muoto, jonka vastaanotin dekoodaa — propagoituna IS-GPS-200:n käyttäjäalgoritmilla ja syötettynä saman geometrian läpi (scenarios/orbit-rinex.toml).
Mikä se on / ei ole, kokonaisuudessaan
Mikä se on / ei ole#
Se on: deterministinen, vähäriippuvuuksinen moottori, joka kattaa PNT-pinon — ratageometria, inertianavigointi, GNSS/INS-fuusio, eheys, kellot ja ajoitus. Se ajaa skenaarion (usein GNSS-katkon), kehittää kalibroidut anturivirhemallit asianmukaisen estimaattorin läpi ja pisteyttää tuloksen operatiivisia laatumittareita vasten — tuottaen toistettavan JSON-tuloksen (JavaScript Object Notation) ja SVG-kaavion Rust-kirjastosta, komentorivikäyttöliittymästä (CLI), Python-laajennuksesta, selaimen WebAssembly-moduulista, tekoälyagenteille tarkoitetusta Model Context Protocol (MCP) -palvelimesta tai JetBrains-IDE (integrated development environment) -laajennuksesta.
Se ei ole: lentolaitteisto, kvanttihyötykuorman suunnitelma, täysi GNSS-signaalivastaanotin, radiotaajuinen (RF) signaalisimulaattori tai hardware-in-the-loop-laitteisto, eikä sertifioitu avioniikkatuote — eikä se korvaa MATLABia/Simulinkiä, STK:ta (Systems Tool Kit) tai Orekitia; se on niiden rinnalla ja vaihtaa tiedostoja niiden kanssa. Kvanttilaitteiston tarkkuus tulee julkaistuista virhemalleista, ei tästä työkalusta. Kunkin ominaisuuden tarkka kypsyys on dokumentoitu tiedostossa docs/CAPABILITY.md.
Se ei (vielä) ole: täysi atomi-interferometriafysiikan moottori (useimmat kvanttianturit käyttävät julkaistuja Allanin/kohinabudjetin kertoimia; CAI (cold-atom interferometer) -kiihtyvyysanturilla on ensiperiaatteista johdettu kerros — Mach–Zehnder-vaihe, projektiokohina, kontrastin vaimeneminen ja tärinäkytkentä sekä Coriolis- ja valosiirtymäsysteematiikka — mutta aaltorintaman systematiikka ja vyöhykeepäselvyyden ratkaisu ovat edelleen P2-tiekarttakerros (tiekartan vaihe 2, kvanttifysiikan kerros), ks. ROADMAP.md ja docs/QUANTUM-MODELS.md); sertifioitu tai laitteistopohjainen GNSS-vastaanotin (se ratkaisee yhden pisteen PVT-paikannuksen (position, velocity and time) todellisista RINEX-koodihavainnoista (Receiver Independent Exchange Format) — validoitu todellisella IGS-datalla (International GNSS Service) — ja sen IQ-kerros (kshana iq, versiosta 0.31.0) hankkii ja seuraa tallennettuja tai generoituja kantataajuusnäytteitä ohjelmistossa analyysivastaanottimena: se ei ohjaa radiolaitteistoa eikä lähetä, ei ole sertifioitu vastaanotin eikä tee kantoaallon vaiheeseen perustuvaa paikannusta (RTK tai PPP)); eikä täysi tehtäväsuunnittelusarja (siinä on Lambert / porkchop / ohjailu / radanmääritys -rakennuspalikat, mutta se on suorituskykysimulaation kerros GMAT:n (General Mission Analysis Tool)/Orekitin yläpuolella, ei korvike). Tämän rajauksen omistaminen on tarkoituksellista. Jos tarvitset ensiperiaatteista johdettuja kylmäatomi-interferometrin virhebudjetteja (esim. CARIOQA-PMP-luokan — Cold Atom Rubidium Interferometry in Orbit for Quantum Accelerometry, Pathfinder Mission Preparation — tai X-37B-tyyppistä validointia), katso P2-tiekartta ja ota yhteyttä yhteistyötä varten.
Matalan Maan kiertoradan navigointi#
Matalan Maan kiertoradan (LEO) satelliitit ohittavat nopeasti ja voimakkaasti. Tyyppi leo-pnt-chain seuraa yhtä järjestelmää jokaisen vaiheen läpi: signaali, ylilento ja sen linkki, navigointiviesti sekä fuusioitu paikka-, nopeus- ja aikaratkaisu (PVT) ja tarkka pistepaikannus (PPP). Jokainen vaihe välittää lukunsa seuraavalle. Ks. docs/LEO-PNT.md.
Jokainen skenaariotyyppi perheittäin#
Moottorin skenaariotyypit perheisiin lajiteltuina. Jokaisella perheellä on sivu, jossa on yksi merkintä tyyppiä kohti (moottorin kuvaus ja kentät, esimerkkikomento, ajon kärkiluvut, ne varmennusmatriisin rivit, jotka nimeävät sen, sekä kaavio, jonka moottori itse kirjoittaa) ja kontaktiarkki näistä kaavioista; docs/KINDS.md indeksoi ne kaikki. Taulukon kirjoittaa tools/gen_readme_blocks.py ja sivut tools/gen_kinds_index.py, ja molemmat epäonnistuvat, jos moottori saa tyypin, jota mikään perhe ei nimeä.
| Perhe | Mihin se vastaa | Lajit | Aja yksi |
|---|---|---|---|
| Kellot, ajoitus ja holdover | kuinka kauan kello pitää aikaa ilman GNSS:ää ja miten ajoitusjärjestelmä pärjää maskejaan vasten | clock, sweep, sweep-nd, telecom-timing, slot-timing, timetransfer, time-transfer-budget, holdover-test, quantum-time-transfer |
kshana scenarios/clock-holdover.toml |
| Inertia-, fuusio- ja kvanttianturit | dead reckoning ja anturifuusio GNSS-katkon läpi, klassisilla ja kvanttiantureilla | inertial, hybrid, fusion, hybrid-ukf, gnss-ins, ins-trn-coast, quantum-gnss-free-nav, quantum-anomaly-detect, quantum-trade |
kshana scenarios/gnss-ins.toml |
| GPS-estetty vaihtoehtoinen PNT | navigointi painovoimasta, maastosta ja muista kentistä, kun GNSS on poissa | gravity-map, terrain-nav, terrain-slam, combined-altpnt, conflict-resilience |
kshana scenarios/combined-altpnt.toml |
| Satelliittitähdistöt, kattavuus ja geometria | missä satelliitit ovat, ketkä näkevät ne ja kuinka hyvä geometria on, Maan, Kuun tai Marsin ympärillä | orbit, ephemeris, constellation-design, solar-system, body-pnt, mars-pnt, passes |
kshana scenarios/orbit-gnss-challenged.toml |
| GNSS-mittaukset, paikannus ja eheys | pseudoetäisyydet, paikannukset, suojaustasot ja avaruusympäristö | integrity, gnss-sim, pvt, araim-reference-check, space-weather, realtime-frame-eop |
kshana scenarios/integrity-raim.toml |
| Häirintä, harhautus ja spektri | miten häiriö saavuttaa vastaanottimen ja havaitaanko se | jamming, spoof, spoof-detect, tracking-loop, spectrum, impairment-eval |
kshana scenarios/jamming-demo.toml |
| Matalan Maan kiertoradan navigointi | ylilento, linkki, navigointiviesti ja fuusioitu paikannus, vaihe vaiheelta | leo-signal, leo-pass, leo-navmsg, leo-pvt, leo-ppp, ntn-positioning, leo-pnt-chain |
kshana scenarios/leo-pnt-end-to-end.toml |
| Kuu ja Maa–Kuu-avaruus | navigointi, aika, koordinaatistot ja geodesia Kuussa | 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 |
| Avaruuskäyttäjän navigointi | GNSS-signaalit avaruusaluksille GNSS-ratojen yläpuolella, ympärillä ja niiden tuolla puolen | gnss-ssv |
kshana scenarios/gnss-ssv-shell.toml |
| Optinen PNT | optiset linkit ilmakehän läpi ja optisen ja RF:n yhdistetyt laatumittarit | optical-atmosphere, hybrid-optical-rf |
kshana scenarios/optical-atmosphere-network.toml |
| Tehtäväanalyysi, yhteydet ja avaruusoperaatiot | laukaisu, nousu, paluu, asento, linkit, yhteydenpidon suunnittelu ja tiedostomuodot | 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 |
| Tehtäväketjut | vaiheiden ketjun navigointi- ja ajoitusvirhebudjetti laukaisusta paluuseen | mission-thread |
kshana scenarios/mission-thread-artemis-class.toml |
| Kampanjat | ketjutetut tehtävät, pyyhkäisyt ja ensemblet, jotka on rakennettu muista tyypeistä | campaign |
kshana scenarios/campaign-jam-spoof-holdover-integrity.toml |
Kaikki komennot#
kshana <scenario.toml> ajaa skenaarion; jokainen muu komento on alikomento, ja kshana --help tulostaa kaikkien käyttöohjeen. Komennot ovat --study, --validate, kinds, example, receiver-trust (komennoilla live ja 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 ja skyline. docs/COMMANDS.md antaa kunkin tarkoituksen, varmennetun esimerkin ja sen dokumenttisivun.
Kaikki pinnat#
Yksi moottori, samat tulokset kaikkialla: komentorivi, Rust-kirjasto, Python, JavaScript ja WebAssembly, MCP-palvelin liitännäiskomentoineen ja taitoineen, Kshana Studio (jokainen sivu toimii selaimessa, ei asennusta, mitään ei lähetetä palvelimelle), ROS 2-, Signal K-, OpenCPN-, GNSS-SDR- ja gnss_lib_py-integraatiot, systemd-, Docker- ja Grafana-käyttöönottopaketit sekä JetBrains-laajennus. docs/ALL-SURFACES.md listaa ne ja kertoo, miten kunkin saa, sekä kaikkien liitännäiskomentojen, taitojen ja Studio-sivujen nimet; docs/SURFACES.md kertoo jokaisesta komennosta ja tyypistä, mikä pinta sen kantaa ja mikä ei, syineen.
Miten ajo toimii#
Skenaario on TOML-tiedosto (Tom's Obvious, Minimal Language): tyyppi, siemenluku ja parametrit. Moottori ajaa sen ja kirjoittaa tuloksen, kaavion ja raportin sen viereen sekä pyytämäsi viennit.
Tämä mukana tuleva skenaario kestää 2 h: 10 min GNSS:ää, sitten noin 1,8 h GNSS estettynä. Se kysyy, kuinka kauan strontiumoptinen hilakello ja sirutason atomikello (CSAC) kumpikin pitävät ajan 20 ns:n sisällä.
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
Optinen kello pitää 20 ns budjetin koko 6600 s katkon ajan; CSAC pitää sen 2610 s ajan ja on budjetin sisällä 95,6 % ajosta, kun optisella kellolla luku on 100 %. kshana example listaa jokaisen mukana tulevan skenaarion.
Tehtävät#
Kymmenen alaa esittää kymmenen eri kysymystä samalle moottorille. Kullakin on mukana tulevia skenaarioita, joista aloittaa.
| Ala | Aloita tästä |
|---|---|
| Puolustus ja turvallisuus | campaign-jam-spoof-holdover-integrity, spoof-meaconing |
| Avaruus, Maan kiertorata | orbit-gnss-challenged, leo-pnt-end-to-end |
| Kuu, Mars ja syväavaruus | lunar-relay-constellation, mars-orbit-pnt |
| Ilmailu ja droonit | small-uas-jammed-nav, araim-gps-galileo |
| Merenkulku | maritime-strait-jamming, maritime-port-approach-coast |
| Tie | automotive-urban-canyon |
| Raide | rail-tunnel-coast |
| Kriittinen infrastruktuuri ja ajoitus | clock-holdover, clock-ensemble |
| Telekommunikaatio ja 5G (viides matkaviestinverkkojen sukupolvi) | telecom-prtc-holdover-24h, leo-vertical-5g-network-timing |
| Tiede ja tutkimus | sweep-clock-stability, quantum-pnt-demonstrator.suite |
Kysymys, jonka kukin ala esittää
| Ala | Kysymys, jonka se esittää | Aloita tästä |
|---|---|---|
| Puolustus ja turvallisuus | Kuinka kauan navigointimme ja ajoituksemme pysyvät luotettavina häirinnässä ja harhautuksessa, ja mitkä kerrokset pitävät meidät määrittelyn sisällä? | campaign-jam-spoof-holdover-integrity, spoof-meaconing |
| Avaruus: Maan kiertorata | Näkeekö avaruusaluksemme tarpeeksi navigointisatelliitteja, kuinka kauan sen kello pitää aikaa paikannusten välillä ja mitä matalan kiertoradan navigointikerros toisi lisää? | orbit-gnss-challenged, leo-pnt-end-to-end |
| Kuu ja syväavaruus | Saako laskeutuja, mönkijä tai kiertäjä Kuussa, Marsissa tai kauempana luotettavan paikan ja ajan? | lunar-relay-constellation, mars-orbit-pnt |
| Ilmailu ja droonit | Kun häirintälähetin vie GNSS:n pois, kuinka kauan miehittämätön ilma-alukseni (UAS) pysyy paikkabudjetissaan, ja onko eheys saatavilla reitilläni? | small-uas-jammed-nav, araim-gps-galileo |
| Merenkulku | Kuinka pitkälle veden yli häirintälähetin yltää, jäisikö paikan työntö kiinni ja kuinka kauan laiva voi liukua satamaan? | maritime-strait-jamming, maritime-spoof-position-push, maritime-port-approach-coast |
| Tie ja autoteollisuus | Kuinka pitkälle auto ajautuu ylikulkusillan alla tai tienvarsihäirintälähettimen ohi? | automotive-urban-canyon |
| Raide | Kuinka monta sekuntia tunneliin juna vielä tietää, millä raiteella se on? | rail-tunnel-coast |
| Kriittinen infrastruktuuri ja ajoitus | Jos GNSS-aika menetetään tai sitä harhautetaan, kuinka kauan sähköverkko, kauppapaikka tai datakeskus säilyttää jäljitettävän ajan? | clock-holdover, clock-ensemble |
| Telekommunikaatio ja 5G | Jos GNSS-aikaviite menetetään, pysyykö verkkokelloni ITU-T-maskien sisällä ja kuinka kauan? | telecom-prtc-holdover-24h, leo-vertical-5g-network-timing |
| Tiede ja tutkimus | Voinko toistaa, laajentaa ja siteerata PNT-tuloksen aina siemenlukuun asti? | sweep-clock-stability, quantum-pnt-demonstrator.suite |
Todisteet#
SGP4 tarkistettu kaikkia 666 AIAA 2006-6753 -vertailuvektoria vasten, suurin paikkavirhe 4,12 mm
176 / 401 ominaisuutta validoitu riippumattomia ulkoisia oraakkeleita vastaan; 221 on rehellisesti merkitty mallinnetuiksi. Varmennusmatriisin jokainen rivi nimeää ominaisuuden, oraakkelin, jota vastaan se tarkistetaan, tarkistuksen ajavan testin ja siitä seuraavan merkinnän. Jatkuva integrointi (CI) tekee mahdottomaksi merkitä ominaisuutta tasolle VALIDATED ilman riippumatonta ulkoista oraakkelia.
| Merkintä | Rivit | Merkitys |
|---|---|---|
| VALIDATED | 176 | riippumaton ulkoinen oraakkeli on samaa mieltä: todellinen data, riippumaton toteutus tai julkaistut vertailuvektorit |
| MODELLED | 221 | tarkistettu analyyttistä totuutta tai simulaation itsejohdonmukaisuutta vasten, ja sanottu ääneen |
| PARTNER | 4 | laitteistokumppanin omistama; Kshanalla ei ole siitä oraakkelia |
Muutama tarkistus: kaikki 666 AIAA:n (American Institute of Aeronautics and Astronautics) 2006-6753 SGP4-vektoria (Simplified General Perturbations 4) tarkkuudella 4,12 mm; Cowell-voimamalli tarkkuudella 0,08 m Orekit-versiota 12,2 vastaan; Galileo tarkkuudella 0,61 m ja Swarm-A tarkkuudella 0,10 m Euroopan avaruusjärjestön (ESA) todellisia tarkkoja efemeridejä vastaan. Testit pitävät noin 95 % rivikattavuuden hakemistolle src/, ja CI:ssä rajana on 85 %. Kirjanpito (ledger) on docs/VERIFICATION-MATRIX.md, tuotettu tiedostosta src/verification.rs: koko 401 rivin matriisi, ja syy siihen, miksi millään mallinnetulla rivillä ei ole ulkoista oraakkelia, on tiedostossa docs/MODELLED-RATIONALE.md.
Miten validointi toimii, valikoitu kohokohtataulukko ja todistekuvat
Validointi, toistettavuus ja rehellisyys#
- Jokainen kohinatermi on kalibroitu julkaistuun, siteerattuun lukuun ja validoitu vakiosuhdetta vasten (Allanin poikkeama kelloille; Grovesin dead-reckoning-virheen kasvu inertialle; ajoituksesta etäisyyteen -muunnos ajansiirrolle). Kunkin termin tila on seurattuna tiedostossa
docs/VALIDATION.mdmerkinnällävalidatedtainot modeled— mitään ei esitetä validoituna, mikä ei ole. - Toistettavissa rakenteen ansiosta:
scenario + seed + engine version → identical bits.scripts/check-reproducible.shvalvoo sitä; kvantti- ja klassiset ajot käyttävät riippumattomia siemenlukuja, jotta niiden kohina ei korreloi. - Kypsyys ilmoitetaan rehellisesti: optisen kellon ja optisen linkin luvut ovat tavoitteita / maassa tehtyjä demonstraattorituloksia, eivät lennettyjä.
Todistemerkintä jokaisessa luvussa#
Jokainen ajon kirjoittama luku ja taulukko kertoo, kuinka paljon siihen voi luottaa ja mihin kirjanpidon (ledger) riveihin se perustuu. Tulos-JSONissa on avain evidence, kaavion SVG:ssä rivi kuvaajan alla (sekä elementti <metadata id="kshana-evidence">), ja CSV-taulukon alussa on kommenttirivit # evidence: (luettavissa asetuksella comment='#'). Merkintä nimeää tason, VALIDATED, MODELLED tai PARTNER, sekä ajon käyttämien varmennusmatriisin rivien tunnisteet (VM- ja kahdeksan heksadesimaalinumeroa). Taso on näistä riveistä heikoin, joten ajo, joka nojaa yhteen mallinnettuun riviin, saa merkinnän MODELLED riippumatta siitä, kuinka monta validoitua riviä sen vieressä on; merkintä ei voi koskaan väittää enempää kuin kirjanpito (ledger). Rivit, tilat ja tunnisteet luetaan matriisista, ei kirjoiteta käsin (docs/VERIFICATION-MATRIX.md, docs/SCHEMA.md), ja tests/evidence_labels_doc_sync.rs epäonnistuu, jos luvulla ei ole merkintää tai merkintä on ristiriidassa matriisin kanssa.
Validointi yhdellä silmäyksellä#
Jokaista riviä valvoo nimetty testi CI:ssä. Tämä taulukko on valikoitu poiminta; koko koneellisesti tarkistettu matriisi on 401 riviä — 176 VALIDATED, 221 MODELLED, 4 PARTNER (src/verification.rs), ja täydet todisteet (sekä se, mitä rehellisesti ei vielä ole validoitu) ovat tiedostossa docs/VALIDATION.md ja julkaisukohtaisessa artefaktissa kshana-validation-summary.html (tuottaja cargo run --bin validation_report, SLSA-todennettu — Supply-chain Levels for Software Artifacts).
Status-sarake kertoo todisteen lajin, yllä olevan validointiportaikon mukaisesti: VALIDATED = tarkistettu riippumatonta ulkoista oraakkelia vasten (todellinen data, riippumaton kirjasto tai julkaistut vertailuvektorit); MODELLED = tarkistettu analyyttistä totuutta tai simulaation itsejohdonmukaisuutta vasten (ei riippumatonta ulkoista aineistoa). VALIDATED kuvaa tarkistuksen menetelmää, ei läpäisyä tai hylkäystä — rehellinen epäonnistuminen todellista ulkoista oraakkelia vasten pysyy VALIDATED, kun taas vertailu, jota mikään matriisin rivi ei nimeä oraakkeliksi (yllä oleva LRO-sovitus), näytetään tunnisteella MODELLED. CI-rivit ovat prosessisuojia, eivät laatumittareita. Muutama todellisen datan saareke (mitattu cesiumkello, Stable32 PHASE.DAT sekä OPS-SAT/ICGEM-tarkistukset, joissa raakasyötteillä ei ole uudelleenjakelulupaa) on datan portittamia: testi tulostaa ohitusilmoituksen ja pysyy vihreänä, kun syöte puuttuu, ja julkiset vertailuluvut on tallennettu hakemistoon tests/fixtures/. Toista raakasyötteet vastaavalla scripts/fetch_*.sh-komennolla.
| Tila | Ominaisuus | Vastaavuus | Vertailu / oraakkeli |
|---|---|---|---|
| VALIDATED | SGP4/SDP4-propagointi | 666/666 vektoria, pahin 4,12 mm | AIAA 2006-6753 (Vallado tcppver.out) + suora vertailu riippumattomaan sgp4-crateen |
| VALIDATED | Koordinaatistot — IAU 2000A/B -nutaatio, IAU 2006/2000A CIO -ketju, ERA | bitti bitiltä (X,Y tarkkuuteen 1e-14, s tarkkuuteen 1e-18, ERA tarkkuuteen 1e-12) | ERFA/SOFA eraXys06a · eraC2ixys · eraEra00 · eraNut00a/b |
| MODELLED | GCRS→ITRS vs. riippumaton SPICE-moottori | maks. 0.028″ → ≤ 0,86 m maanpinnalla, ≤ 3,6 m GNSS-radalla | ANISE (puhdas Rust-NAIF/SPICE), samat IERS:n finals2000A-EOP-parametrit, 8 epookkia 2020–2023 (verrattu tähän vertailuun; mikään varmennusmatriisin rivi ei nimeä sitä ulkoiseksi oraakkeliksi, joten sitä ei ole merkitty VALIDATED) |
| MODELLED | EGM2008-geopotentiaali (aste/kertaluku 70) | kiihtyvyys = ∇V tarkkuuteen < 1e-6; zonaalinen romahdus validoituun J2:een | NGA:n EGM2008-kertoimet + analyyttinen ∇V-identiteetti |
| VALIDATED | Painovoimafunktionaalin synteesi (painovoima-avusteinen / GNSS-vapaa navigointikartta) | GRS80 Somigliana + γ_e/γ_p tarkkuuteen 3.5e-12; todellinen EGM2008-häiriökartta fysikaalinen (RMS ≈ 26 mGal, a/k 70) | GRS80 (Moritz 1980, IAG — International Association of Geodesy) Somiglianan normaalipainovoima + todellinen ICGEM EGM2008 (tests/icgem_gravity_reference.rs) |
| VALIDATED | Allanin estimaattorit (ADEV/MDEV/TDEV/HDEV) + luottamuskaistat | toistavat vertailupoikkeamat; χ²-kaistat täsmäävät | NIST SP 1065 (Riley), 1000 pisteen taulukko 31/32 |
| VALIDATED | Allanin estimaattorit todellisella mitatulla cesiumkellolla | OADEV/OHDEV tarkkuuteen 1e-3 (havaittu ≤ 3e-5), 16 keskiarvoistuskerrointa | Stable32 todellisella 5071A Cs vs. H-maser, 556 990 pistettä (tests/cs5071a_reference.rs, datan portittama) |
| VALIDATED | Allanin estimaattorit kanonisella Stable32 PHASE.DAT -aineistolla | OADEV/MDEV/TDEV tarkkuuteen 1e-3 (havaittu ≤ 5e-5), 139 keskiarvoistuskerrointa | Stable32-vertailupoikkeamat PHASE.DAT:lle (tests/phasedat_reference.rs, datan portittama) |
| MODELLED | IMU-virhemalli — ARW / VRW / bias-instabiliteetti | palautettu tarkkuuteen < 5 % (bias-instabiliteetti < 15 %) | Analog Devices ADIS16465 -datalehti; NaveGo-vertailuprofiili |
| VALIDATED | Numeerinen Cowell-propagaattori + voimamalli (konservatiiviset tasot) | pahin paikkavirhe 0,08 m 24 h:n yli, 278 epookkia (LEO + GTO) | Orekit 12,2 NumericalPropagator/DormandPrince853 (CS GROUP), tests/numerical_cowell_propagator_reference.rs |
| MODELLED | Cowellin vastustaso + absoluuttiset Auringon/Kuun efemeridi- ja tiheyssyötteet | vastustaso kuvattu ≈ 333 m / 24 h; häiriötön täsmää universaalimuuttuja-Kepleriin alle metrin tarkkuudella, energia/liikemäärä ~1e-9 | sisäänrakennettu matalan tarkkuuden efemeridi + analyyttinen Kepler |
| MODELLED | Lambert · Tsiolkovski · porkchop | edestakainen kaksikappaletotuuteen; ΔV < 0.01 % | Izzo 2015 · rakettiyhtälö · analyyttinen Hohmannin alaraja |
| MODELLED | Radanmääritys (Gauss–Newton-erä) | alle m / mm·s⁻¹ kohinattomista; ~2 m kohinalattialla 5 m | kaksikappale + J2 RK4-kaaren yli |
| MODELLED | Voimamallin sovitus vs. Galileon tarkka efemeridi (koko kaari) | 0,61 m 3D RMS, 24 h, a/k-70, vain voimat | ESA/ESOC:n ESA0MGNFIN-lopullinen rata (E11), todellinen finals2000A EOP (verrattu tähän vertailuun; mikään varmennusmatriisin rivi ei nimeä sitä ulkoiseksi oraakkeliksi, joten sitä ei ole merkitty VALIDATED) |
| MODELLED | Voimamallin sovitus vs. Swarm-A:n tarkka efemeridi (pelkistetty dynamiikka) | 0,10 m 3D RMS (empiirisen tason yläraja, ei mitta) | ESA:n SW_OPER_SP3ACOM_2_-tarkka rata (verrattu tähän vertailuun; mikään varmennusmatriisin rivi ei nimeä sitä ulkoiseksi oraakkeliksi, joten sitä ei ole merkitty VALIDATED) |
| MODELLED | Voimamallin sovitus vs. LRO Kuussa (rehellinen epäonnistuminen) | 6,67 m pelkistetty dynamiikka, yli 5 m tavoitteen | JPL Horizons LRO (NAIF −85) + GRAIL (Gravity Recovery and Interior Laboratory) GRGM660PRIM (verrattu tähän vertailuun; mikään varmennusmatriisin rivi ei nimeä sitä ulkoiseksi oraakkeliksi, joten sitä ei ole merkitty VALIDATED) |
| MODELLED | Syväavaruuden Mars-OD (pelkistetyn dynamiikan SRIF) | ≈ 0,2 m Mars-LMO (simulaation laatumittari, ei todellinen tehtävä) | synteettinen suljetun silmukan OD — estimaattorikoneiston validointi |
| MODELLED | Aurinko-keskinen Marsin dynamiikka vs. JPL DE440 | 137 m @ 1 vuorokauden kaari (kasvaa kaaren mukana = mallintamaton n-kappale) | JPL DE440 ANISEn kautta (xval/anise-mars-od, kernelin portittama) (verrattu tähän vertailuun; mikään varmennusmatriisin rivi ei nimeä sitä ulkoiseksi oraakkeliksi, joten sitä ei ole merkitty VALIDATED) |
| VALIDATED | Yhden pisteen paikannus vs. mitattu IGS-koordinaatti (todelliset havainnot) | 5,7 m 3D RMS / 1,1 m vaaka, kaksitaajuinen ionosfäärivapaa koodi-SPP | IGS-aseman ABMF mittaus + GPS:n lähetetty efemeridi, 2018-05-13 (tests/pvt_abmf.rs) |
| MODELLED | Tiukasti kytketty GNSS/INS-UKF | 0,77 m RMS 30 min LEO-ylilennon yli, sisältäen 120 s katkon | voimamallilla laskettu liuku, käsin johdettu |
| MODELLED | GPS-estetty painovoimakarttanavigointi | ~70 km INS-ajautuma → ~145 m palautettu | ESA NAVISP Quantum Wayfarer -tavoite |
| MODELLED | Maastoon perustuva navigointi (TERCOM/SITAN) | ajautuma 70 km → < 500 m (ruudukon erottelukyvyn alaraja ~140 m) | SRTM .hgt DEM; käsin lisätty ajautuma (ei-kehämäinen tarkistus) |
| MODELLED | IGRF-14-päämagneettikenttä (aste/kertaluku 13) | napa ~80,7°N, dipoli ~29,7 µT, fysikaalinen kaista 22–67 µT | IAGA (International Association of Geomagnetism and Aeronomy) igrf14coeffs.txt (Schmidtin osittain normalisoitu) |
| MODELLED | Navigointisignaalin modulaatio ja koodin seuranta | BPSK itse-SSC = 2/(3·R_c); yksikköalan PSD:t; alle metrin C/A-DLL-värinä, kun 45 dB-Hz | Suljetun muodon SSC/PSD-ankkurit sekä Kaplanin ja Hegartyn DLL:n terminen kohinakaava |
| MODELLED | CR3BP:n halo-/NRHO-differentiaalikorjain | STM = äärelliset erotukset; rata sulkeutuu koneen tarkkuudella; L2 9:2 NRHO ≈ 6,57 d / perilune ≈ 3 250 km | äärellisten erotusten STM-tarkistus sekä julkaistu L2:n eteläinen 9:2 NRHO (≈ 6,56 d / ≈ 3 370 km) — CR3BP, ei todellinen Gatewayn efemeridi |
| MODELLED | ARAIM:n kahden satelliittitähdistön eheys | koko satelliittitähdistöä koskeva vikatila todellisilla GPS- ja Galileo-tiedoilla | EU ARAIM TR (technical report) / DO-316; Celestrak gps-ops 2021-07-28 (verrattu tähän vertailuun; mikään varmennusmatriisin rivi ei nimeä sitä ulkoiseksi oraakkeliksi, joten sitä ei ole merkitty VALIDATED) |
| VALIDATED | GNSS-geometria / DOP (GDOP/PDOP/HDOP/VDOP/TDOP) | vastaa 1e-6 suhteellisella tarkkuudella 8 geometriassa (hyvin ehdollistetusta lähes singulaariseen) | gnss_lib_py 1.0.4 (Stanford NAV Lab) — riippumaton kirjasto (tests/dop_reference.rs) |
| VALIDATED | Koneoppimisen ilmaisinten arviointimittarit (AUC/ROC/sekaannusmatriisi/Pd-Pmd/tarkkuus/F1) | tarkat lukumäärät + < 1e-9 5 aineistossa × 24 kynnysarvolla | scikit-learn 1.9.0 (Pedregosa et al., JMLR — Journal of Machine Learning Research — 2011) — riippumaton kirjasto (tests/eval_metrics_reference.rs) |
| VALIDATED | Poikkeamien havaitsemisen ROC AUC todellisella ESA OPS-SAT -telemetrialla | AUC toistaa scikit-learnin tuloksen tarkkuudella < 1e-9; huippulukumääräilmaisimen AUC ≈ 0.85 merkityllä testijaolla | scikit-learn roc_auc_score OPSSAT-AD-testijaolla (Ruszczak et al. 2025, CC BY 4,0) — todellinen OPS-SAT-telemetria (tests/opssat_ad_reference.rs) |
| VALIDATED | Kvanttikauppatutkimuksen numeeriset ytimet (ADEV NNLS -sovitus · χ²-johdonmukaisuuskaistat · van-Loanin kellon Q) | NNLS + Q täsmälleen; χ² < 5e-4 käyttöpisteen vapausasteilla ≥ 48 | scipy 1.17.1 — optimize.nnls / stats.chi2.ppf / linalg.expm (tests/scipy_reference.rs) |
| VALIDATED | MTIE / MDEV / TDEV -telealan ajautumamittarit (ITU-T G.810/G.823/G.8261/G.811 — International Telecommunication Unionin telestandardointisektorin suositukset) | MTIE (9 keskiarvotuskerrointa, bitintarkka) sekä MDEV + TDEV (8 kerrointa, < 1e-9 suhteellinen) NIST SP 1065 LCG-sarjalla (lineaarinen kongruenssigeneraattori) | allantools 2024,06 mtie / mdev / tdev — riippumaton kirjasto (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs) |
| VALIDATED | MCDA-kauppatutkimusmenetelmät — kaikki neljä päätösperhettä, yhdeksän ulkoisesti validoitua aggregaattoria (WSM · WPM · WASPAS · MOORA · COPRAS · TOPSIS · VIKOR · PROMETHEE II · ELECTRE I) sekä AHP-parivertailuun perustuva prioriteettipainotus | pisteet / järjestykset / konkordanssimatriisit toistettu tarkkuudella < 1e-9 | pymcdm + pyDecision (riippumattomat kolmannen osapuolen MCDA-kirjastot) + Saatyn RI (Random Index) / SciPy-LAPACK eig (tests/mcda_*_reference.rs) |
| VALIDATED | LEO-Dopplerin vaihteluväli radasta ja kantoaallosta | Iridiumin maksimi 5 % sisällä julkaistusta ±36 kHz:stä; Xona Pulsar X1 julkaistun 32–34 kHz sisällä | RNTF LEO PNT -testitulokset; Leclère, Marathe & Reid, arXiv:2509,19551 (tests/leo_doppler_reference.rs) |
| MODELLED | PPP:n konvergenssi LEO-täydennyksellä | 7,4 → 4,8 / 3,2 / 2,7 / 2,3 min, kun LEO-satelliitteja on 60 / 96 / 192 / 288, monotoninen; suodattimen NEES χ²-kaistan sisällä | trendiä verrattu julkaisuun Li et al., J. Geod. 93:749 (2019) (9,6 → 7,0 / 3,2 / 2,1 / 1,3 min); satelliittitähdistöjä ja kohinaa ei toistettu |
| MODELLED | Ehdollinen ajoituksen suojaustaso (holdover-rajoitteinen havaitsematta jäävä aikavirhe harhautuksen aikana) | koostumus toistaa monivaiheisen clock_state-kovarianssirekursion; kalibroitu todelliseen tallennettuun harhautukseen |
JammerTest 2024 (Zenodo 15911589) skalaarit + van-Loanin / CUSUMin suljetun muodon kaavat (examples/tpl_jammertest) |
| MODELLED | PNT-kestävyyden pisteytys + päätösepävakaus | 35 käsin johdettua oraakkelitestiä; tavutasolla deterministinen tutkimusartefakti (kiinteä siemenluku) | DHS RPCF v2.0 -kartoitus + Dirichlet / Kendall-τ / Hill-N2 -suljetun muodon kaavat — synteettisiä arkkitehtuureja, ei sertifiointi |
| MODELLED | RF-häiriöiden optimismikuilun tutkimus (skaalauslait + leave-one-out-ennustin) | permutaationollahypoteesin merkitsevyys; tavutasolla deterministinen artefakti (5 siemenlukua) | synteettinen parametreihin perustuva aineisto — arviointimittarit on VALIDATED scikit-learnia vastaan (yllä); tutkimus on MODELLED |
| CI | Alustojen välinen toistettavuus | bitti bitiltä identtinen syöte + muotoa koskevat golden-tiedostot 3 käyttöjärjestelmässä | Linux / macOS / Windows CI -matriisi, SHA-256-golden-tiedostot |
| CI | Testikattavuus | ~95 % rivikattavuus kohteessa src/ ilman tiedostoja src/*_data.rs ja src/main.rs, vaatimus ≥ 85 % |
cargo-tarpaulin (LLVM-moottori) |
Miten ominaisuus ansaitsee merkintänsä — CI:n valvoma invariantti: ei ulkoista oraakkelia ⇒ ei voi olla validoitu · SVG
Ylhäällä: jokaisen validoidun rivin tukena on ulkoinen aineisto rakenteen perusteella. Alhaalla: SGP4 vastaa virallista viitettä kaikilla alueilla (pahin 4,12 mm). SVG · SVG
176 validoitu · 221 mallinnettu · 4 kumppanin omistama — SVG
Ominaisuusalueet#
Julkisen kartan jokainen ominaisuus toimialueittain ja sen kirjanpidon (ledger) merkintä. Toimialuetaulukon kirjoittaa tools/gen_readme_blocks.py tiedostosta web/capabilities.json; saman tiedoston lukee myös Studion kaiken kartta.
Koko taulukko, toimialue kerrallaan jokaisen ominaisuuden ja sen merkinnän kanssa, on tiedostossa docs/CAPABILITY-DOMAINS.md.
Asennus#
Yksi rivi asentaa komentorivityökalun: cargo install kshana. Jokainen jakelukanava toimittaa version v0.40.0 samasta merkitystä commitista.
| Kanava | Asennus | Opas |
|---|---|---|
| Kokeile selaimessa | avaa https://kshana.dev | Studion opas |
| Komentorivi (Rust) | cargo install kshana |
Komentorivin käyttö |
| Rust-kirjasto | cargo add kshana |
API-viite sivustolla docs.rs |
| Python | pip install kshana |
Python-API-opas |
| JavaScript ja WebAssembly | npm install kshana |
npm- ja WebAssembly-opas |
| Tekoälyavustaja (MCP-palvelin, cargo) | cargo install kshana-mcp |
MCP-palvelinopas |
| Docker-image | docker run --rm -i ghcr.io/ashfordeou/kshana-mcp |
MCP-palvelinopas: Docker |
| Cursor (yksi napsautus) | Lisää Cursor-sovellukseen (npx) · Lisää Cursor-sovellukseen (Docker) · npx -y kshana-mcp@0.40.0 |
Kaikki MCP-asennuskatkelmat |
| VS Code (yksi napsautus) | Asenna VS Code -sovellukseen (npx) · Asenna VS Code -sovellukseen (Docker) · npx -y kshana-mcp@0.40.0 |
Kaikki MCP-asennuskatkelmat |
| npx | npx -y kshana-mcp@0.40.0 |
Kaikki MCP-asennuskatkelmat |
| uvx / pipx | uvx kshana-mcp==0.40.0 |
Kaikki MCP-asennuskatkelmat |
| Homebrew | brew install ashfordeOU/tap/kshana-mcp |
Kaikki MCP-asennuskatkelmat |
| Scoop | scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket && scoop install kshana-mcp |
Kaikki MCP-asennuskatkelmat |
| winget | winget install AshfordeOU.KshanaMcp |
Kaikki MCP-asennuskatkelmat |
| Valmis binääri | lataa julkaisusta kshana-mcp-<target> ja tarkista se tiedostoa SHA256SUMS vasten | Kaikki MCP-asennuskatkelmat |
| Virallinen MCP-rekisteri | hae io.github.ashfordeOU/kshana-mcp | Kaikki MCP-asennuskatkelmat |
| Etä (suoratoistettava HTTP), itse ylläpidetty | kshana-mcp --http 127.0.0.1:8080 |
Itseylläpidon opas |
| JetBrains-IDE-liitännäinen | Asetukset → Lisäosat → Marketplace → hae ”Kshana” (lisäosan tunniste dev.kshana.ide) | Liitännäisopas |
| Signal K -lisäosa | npm install signalk-kshana-trust |
Signal K -lisäosan opas |
| OpenCPN-lisäosa | lataa lisäosan tarball-paketti julkaisusta | OpenCPN-luetteloon lähettäminen |
| Grafana-koontinäyttö | tuo kshana-grafana-*.json julkaisusta | Koontinäytön lähde |
| Viitekokoonpanon konttikuva | docker pull ghcr.io/ashfordeou/kshana-reference-build |
Meriliikenteen integraatiot |
Kshana: JetBrains Marketplace Rakentuu Rustin versiolla 1,88 tai uudemmalla; vaatimus on kenttä rust-version tiedostossa Cargo.toml
MCP on Model Context Protocol. Kiinnitä julkaisu komennolla cargo install kshana --version 0.40.0, pip install kshana==0.40.0 tai npm install kshana@0.40.0. Lähdekoodista rakentamisesta kerrotaan Viite-osiossa kohdassa Asennus ja rakentaminen.
Skenaarion ajo Pythonista ja WebAssemblysta
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
Funktion run lisäksi moduuli tarjoaa seuraavat: run_full (JSON, SVG ja yhden rivin yhteenveto kerralla), run_typed, validate_toml, list_kinds / scenario_kinds ja error_kind; katso docs/PYTHON_API.md.
npm-paketti on koko moottori käännettynä WebAssembly-muotoon. Node.js-ympäristössä anna binääri funktiolle initSync; selaimessa await init() hakee sen (katso 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));
Arkkitehtuuri#
Keskellä on yksi avoin moottori, ja jokainen pinta ajaa sitä: komentorivi, Rust-kirjasto, Python, WebAssembly ja Kshana Studio, MCP-palvelin, Docker-kuva ja JetBrains-lisäosa. Sama skenaariotiedosto tuottaa jokaisella samat tavut. Kshana Pro on päällä erillisenä kerroksena, joka riippuu moottorista eikä koskaan haarauta sitä.
Moottorin sisällä: toimialuekerrokset ja varmennuskirjanpito
Yksi moottori, monta sisäänkäyntiä. Yksi Rust-ydin (kshana) ajaa jokaisen skenaarion, ja siihen pääsee CLI:llä, Python-laajennuksella, selaimessa toimivalla WebAssembly-moduulilla, tekoälyagenteille tarkoitetulla MCP-palvelimella ja JetBrains IDE -lisäosalla — kaikki johtavat yhteen api::run_toml-jakeluun. Sisällä anturipaketit liitetään yhteiseen virhemallirajapintaan; niiden rinnalla ovat koordinaatistokerros (IAU 2006/2000A -prekessio–nutaatio ja CIO-pohjainen GCRS↔ITRS-redusointi), astrodynamiikka- ja numeriikkakerros (analyyttinen SGP4/SDP4 sekä numeerinen Cowell-propagaattori EGM2008-/häiriövoimamalleineen, ohjaussuunnittelu ja radanmääritys), eheys-/GNSS-kerros (RAIM/ARAIM, SBAS, mittausalue, häirintä, kuunläheinen), fuusio- / alt-PNT-kerros (GNSS/INS-estimaattorit sekä gravitaatio-, maasto- ja magneettikarttasovittimet), syvän avaruuden ja Kuun kerros (radiometrinen Mars-PNT ja Kuun PNT-paketti, jonka jokaisen osan todistetaso on matriisissa — LTC-aika, VLBI, yhteinen OD+kello, koordinaatiston toteutus, palvelutilavuus, differentiaalinen PNT, yhteentoimivuus), tehtävänanalyysikerros (laukaisu / paluu / kattavuus / suuntaus / ohitus / linkkibudjetit ja avaruussääympäristö) sekä avoin kestävyys- ja koneoppimistutkimusten kerros (RPCF-kestävyyspisteytys, RF-häiriöiden optimismikuilu ja kvantti-PNT-demonstraattori), jonka toistettavat artefaktit nojaavat validoituihin ytimiin.
Ytimen vierellä on kaksi itsenäistä, työtilasta suljettua crate-pakettia — mcp/kshana-mcp (MCP-palvelin, rakennettu edition-2024 rmcp -SDK:lla) ja xval/anise-frames (ANISE/SPICE-koordinaatiston ristiintarkistus, joka vetää mukaan MPL-2.0-riippuvuuksia (Mozilla Public License 2,0)) — jotka juuren Cargo.toml-tiedoston exclude-luettelo pitää poissa julkaistun paketin riippuvuuskaaviosta, tiedostosta Cargo.lock, lisenssiportista ja MSRV-rakennuksesta (minimum supported Rust version). JetBrains-lisäosa (ide/jetbrains) on erillinen Kotlin-projekti. Koko kaaviojoukko on tiedostossa docs/ARCHITECTURE.md.
Piirretyt kaaviot (moottorin kulku, moduulikartta, jakelu) ovat tiedostossa docs/ARCHITECTURE.md.
Kaaviot#
Kaaviot ovat Mermaid-lähteitä hakemistossa docs/diagrams/, ja ne piirretään SVG:ksi ja PNG:ksi hakemistoon docs/assets/diagrams/ (tools/render-diagram-chromium.sh <name> Linuxilla, kaksi muuta render-diagram-skriptiä muualla), ja tietue sitoo jokaisen PNG:n tarkasti siihen SVG:hen, josta se on peräisin. Testit lukitsevat niiden ilmoittamat lukumäärät. Yllä olevien osioiden kaaviot työkalut piirtävät moottorin ajoista; nämä näyttävät, miten osat sopivat yhteen.

Yksi jakelu, yksi moottori, toistettava tuloste · SVG · lähde system-overview.mmd

Jokainen pinta samasta moottorista · SVG · lähde surfaces.mmd

Ajon sisäinen silmukka · SVG · lähde engine-flow.mmd

Vastaanottimen lokista luottamuspistemäärään ja siihen, mikä sitä käyttää · SVG · lähde trust-flow.mmd

Skenaariosta allekirjoitettuun pakettiin; Kshana ei koskaan tuota eikä toista signaalia · SVG · lähde lab-round-trip.mmd

Miten Studio toimii paikallisesti · SVG · lähde studio-flow.mmd

Testi- ja julkaisuvirta paikallisista porteista varmennettuun julkaisuun ja vain sivustoa koskevaan polkuun · SVG · lähde release-flow.mmd · docs/RELEASING.md

Missä koodi sijaitsee · SVG · lähde module-map.mmd

Mitä toimitetaan minne ja mikä sen tarkistaa · SVG · lähde distribution.mmd
Tekoälyavustaja#
kshana-mcp on MCP-palvelin: avustajasi ajaa varsinaista moottoria ja lukee sen JSON-tulosteen sen sijaan, että arvailisi matematiikkaa. Sen 49 työkalua ovat kukin ohut kääre kirjaston kshana julkisen funktion ympärillä, joten palvelimessa ei ole lainkaan simulointilogiikkaa.
Asenna MCP-palvelin#
Ohjeellinen, ei tyyppihyväksytty navigointilaite: käyttäjä vastaa edelleen navigoinnista. Palvelin toimii tietokoneellasi; Ashforde OÜ:lle ei lähetetä mitään.
Kolmannen osapuolen tekoälyasiakkaita nimeävä kohta on jätetty tästä pois; se on GitHubissa tiedostossa README.md.
| Kanava | Komento tai painike | Vaatii | Kiinnitetty muoto |
|---|---|---|---|
| Cursor (yksi napsautus) | npx (Node) · Docker | Node tai Docker | kshana-mcp@0.40.0 / ghcr.io/ashfordeou/kshana-mcp:0.40.0 |
| VS Code (yksi napsautus) | npx (Node) · Docker · Insiders (npx) | Node tai 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+ ja uv tai 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 | kaava (v0.40.0) |
| Scoop | scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket ja sen jälkeen scoop install kshana-mcp |
Scoop (Windows) | manifesti (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 |
| Valmis binääri | julkaisusivu: kshana-mcp (Linux x86-64), kshana-mcp-<target>[.exe], tarkistetaan komennoilla SHA256SUMS ja gh attestation verify |
ei mitään | v0.40.0 |
| MCP-rekisteri | io.github.ashfordeOU/kshana-mcp (rekisteritietoiset asiakkaat löytävät) |
rekisteritietoinen asiakas | 0.40.0 |
| Etäkäyttö (streamable HTTP) | kshana-mcp --http 127.0.0.1:8080, itse ylläpidetty: katso docs/deploy/mcp-http.md |
oma isäntä | v0.40.0 |
kshana-mcp Glamassa, sen MCP-palvelimen laatupisteet
Kolmannen osapuolen tekoälyasiakkaita nimeävä kohta on jätetty tästä pois; se on GitHubissa tiedostossa README.md.
Asiakaskohtainen käyttöönotto on tiedostossa docs/integrations.md. Palvelin on listattu virallisessa MCP-rekisterissä tunnuksella io.github.ashfordeOU/kshana-mcp.
49 työkalua
Skenaariot ja raportit
| Työkalu | Mitä se tekee |
|---|---|
run_scenario |
Aja skenaario TOML-määrityksestä (Tom's Obvious, Minimal Language) |
list_scenario_kinds |
92 sisäänrakennettua skenaariotyyppiä kuvauksineen sekä pakollisine ja valinnaisine kenttineen, jotta agentti voi rakentaa kelvollisen skenaarion |
validate_scenario |
Ennakkotarkistus: jäsennä TOML ja tunnista sen laji ajamatta sitä |
list_example_scenarios |
Mukana tulevat vertailuskenaariot JSON-muodossa |
get_example_scenario |
Yhden mukana tulevan vertailuskenaarion TOML-teksti, tavu tavulta sama kuin hakemiston scenarios/ tiedosto |
report_scenario |
Aja skenaario ja palauta sen raportti |
animate_scenario |
Aja skenaario ja palauta sen aikasarja animaationa |
sky_geometry |
Taivaan geometria atsimutista riippuvan horisonttiprofiilin alla: näkyvät ja piilossa olevat satelliitit, DOP, itä-pohjoinen-ylös-kovarianssi ja vaakavirheen ellipsi; tai horisonttiprofiilin esiasetus alkuperätietoineen |
Vienti ja yhteentoimivuus
| Työkalu | Mitä se tekee |
|---|---|
list_export_formats |
Mitkä yhteentoimivuusmuodot soveltuvat skenaarioon (czml, kml, geojson, stk, sigmf), syy jos jokin ei sovellu, sekä kunkin kirjoittajan noudattama määrittely |
export_interop |
Vie skenaario CZML (Cesium Language) -, KML (Keyhole Markup Language) -, GeoJSON-muotoon, STK (Systems Tool Kit) -efemeridinä .e tai SigMF (Signal Metadata |
import_route |
Kirjoita GeoJSON-reitti LineString skenaarioon, joka lentää reittipistepolun (terrain-nav, terrain-slam, gravity-map, combined-altpnt), ja palauta uusi TOML |
export_sp3 |
Vie orbit-skenaarion satelliittitähdistö SP3-c (Standard Product 3, revisio c) -tarkkana efemeridinä |
export_omm |
Vie orbit-skenaarion elementit CCSDS (Consultative Committee for Space Data Systems) 502.0-B-2 OMM (Orbit Mean-elements Message) -luettelona |
export_oem |
Vie orbit-skenaarion tilasarja CCSDS OEM (Orbit Ephemeris Message) 2,0 -efemeridinä — TEME (true equator, mean equinox) -sijainti ja |
export_table_csv |
Aja skenaario ja palauta sen toistettavuustaulukko CSV-muodossa (comma-separated values) — tavutasolla vakaa taulukko, jonka CLI (command-line interface) kirjoittaa tiedostona <scenario>.table.csv |
export_test_bench |
Skenaarion ajoneuvon liike ja tapahtumat laboratorion GNSS-simulaattoria varten (kshana bench-export) |
Vastaanottimen ja aluksen luottamus
| Työkalu | Mitä se tekee |
|---|---|
assess_receiver_log |
Arvioi todellisen GNSS-vastaanottimen (global navigation satellite system) lokin luottamus |
assess_vessel_stream |
Pisteytä rajattu NMEA 0183 -ote (enintään 2 MiB ja 20 000 epookkia |
assess_vessel_log |
Aluksen NMEA 0183 -loki (enintään 4 MiB) erä-ajona, ja istunnon TOML ilmoittaa aluksen rajat |
create_evidence_pack |
Allekirjoitettu todistepaketti aluksen lokin ikkunasta (kshana receiver-trust evidence) |
attach_evidence_timestamp |
Sido RFC 3161 -aikaleimatunniste (.tsr-tavujen base64) pakettiin muistissa (kshana evidence attach-timestamp) |
verify_evidence_pack |
Varmenna paketti (kshana evidence verify) |
generate_training_nmea |
Synteettinen sillan NMEA 0183 miehistön koulutukseen nmea-scenario-TOML:stä (häirintä, sijainnin ajautuminen pois, aikaharhautus, toistoviive) ohjaajan lokin kanssa (kshana-nmea-training/1) |
build_interference_map |
GNSS-häiriökartta ADS-B- tai AIS-sijaintiraporteista CSV-tekstinä (enintään 4 MiB) |
route_exposure |
Reitin pituuden osuus yhden tai useamman häiriökartan heikentyneissä, ei-heikentyneissä, arvioimattomissa ja ei-havaituissa soluissa, tarvittaessa päivämääräväliltä |
trust_telemetry |
Luottamusvirta (JSON-rivit) tai receiver-trust-tulos esitettynä Prometheus-tekstinä, CEF- tai LEEF-syslog-riveinä tai OTLP JSON -sisältönä, kshana trust-telemetry-enkoodereilla |
jammertest_import |
Lue julkaistu Jammertest-testiluettelo ja lähetyssuunnitelma (NPRA/jammertest-plan, MIT) aikataulutettuna totuutena (kshana jammertest import): yhden testialueen aikaikkunoista tulee vastaanottimen luottamustapahtumia, ja luettelotunniste ja vuosi ovat kunkin nimikkeessä. Suunnitellut aikaikkunat, ei tallennettuja lähetysaikoja; suunnitelman yhteystietokenttiä ei lueta. MODELLED. Katso docs/JAMMERTEST.md. |
jammertest_score |
Pisteytä vastaanottimen loki tätä aikataulua vastaan (kshana jammertest score): testikohtaisesti havaitsemisviive, havaitsematta jääneet hälytykset ja palautumisaika sekä väärät hälytykset kaikkien aikaikkunoiden ulkopuolella. Tekstilokit muodossa log, binääriset (ubx, sbf) muodossa log_base64. Allekirjoitettu paketti tarvitsee avaimen: komentorivi. Vain ohjeellinen; MODELLED. |
fit_imu_log |
Skenaariolajien hybrid ja fusion kiihtyvyysanturin ja gyron parametrit sovitettuna paikallaan olevasta IMU-lokista (CSV tai EuRoC) Allanin poikkeamalla, valmiilla liitettävällä taulukolla [accel_classical] ja lokin SHA-256-tiivisteellä (kshana imu-fit). Teksti sisään, JSON ulos; MODELLED. |
GNSS IQ (työhakemiston tiedostot; pois päältä HTTP-tilassa)
| Työkalu | Mitä se tekee |
|---|---|
iq_signals |
GNSS IQ -kerroksen asetukset |
iq_info |
Kuvaa yksi IQ-tallenne (in-phase ja quadrature) työhakemistossa käsittelemättä sitä |
iq_scene |
Tuota usean satelliitin GNSS IQ -kohtaus työhakemistoon (kshana iq scene) |
iq_acquire |
FFT-hankinta (fast Fourier transform) yhdelle tai useammalle PRN:lle (pseudo-random noise code) tallenteella (kshana iq acquire), tarvittaessa etuasteiden takana |
iq_track |
Hanki ja seuraa sitten DLL/PLL/FLL-pankilla (viive-, vaihe- ja taajuuslukittu silmukka) (kshana iq track), silmukat `kshana.loop-desig |
iq_frontend |
Käytä vastaanottimen etuasteen ja häiriönvaimennuksen DSP:tä (digital signal processing |
iq_sweep |
Toista yksi IQ-tallenne työhakemistossa usealla seurantasilmukkasuunnitelmalla (kshana iq sweep) |
iq_monitor |
Aja häiriö- ja harhautusmonitorit IQ-tallenteelle työhakemistossa (kshana iq monitor) |
iq_labfit |
Sovita seurantasilmukan lukituksen menetyksen malli laboratorioajoihin (kshana iq labfit) iq-labfit-skenaariosta, jonka lokit ovat sisäisinä (text tai base64 |
iq_test_conditions |
Validoi tekstinä annettu kshana.test-conditions/1-tiedosto ja palauta ratkaistut olosuhteet tiivisteineen |
iq_campaign |
Aja laboratoriotoistokampanja (kshana iq campaign) |
iq_campaign_status |
Kampanjan tulostekansion edistyminen |
Compliance-kartoitus
| Työkalu | Mitä se tekee |
|---|---|
compliance_report |
Julkisten viitekehysten kartoitus täytettynä tekstinä annetuista tulosasiakirjoista (kshana compliance-report) |
compliance_mapping |
Staattiset kartoitustaulukot (tai, kun on sources, niiden lainaamat lähdeasiakirjat versioineen ja URL-osoitteineen) Markdown-muodossa, ja alussa sama lausuma |
list_standards_packs |
Standardipaketit (kshana standards-pack list): pisteytetyt skenaariojoukot DHS Resilient PNT -viitekehyksen testiprofiileille, IMO MSC.1/Circ.1575:lle ja ICAO Doc 9849 Appendix F:lle |
run_standards_pack |
Yksi paketti ajettuna ennen ajoa ilmoitettuja kynnyksiä vastaan: jokainen testi on MET, NOT MET tai NEEDS INPUT; MODELLED, ei arvioi yhtään tuotetta |
lunanet_afs_check |
LunaNet Augmented Forward Signal tarkistettuna LNIS V5 AD1 Volume A:ta (LSIS-AFS V1.0) vasten: koodit painettuja taulukoita vasten tai symbolivirta kehysmuotoa vasten; alikehysten 2–4 LDPC:tä ja CRC-24Q:ta ei varmenneta |
create_round_trip_pack |
Allekirjoitettu laboratorion kiertopaketti: skenaario, kshana.test-conditions/1-asiakirja, vastaanottimen loki ja pisteytys linkitettyinä tiivisteellä |
Benchmark
| Työkalu | Mitä se tekee |
|---|---|
score_benchmark |
kshana-bench-lähetys pisteytettynä totuustiedostoa vasten, molemmat JSON-tekstinä (kshana bench score, bench/SPEC.md): tulostiedosto, jossa on spesifikaatioversio, jako, syötetiivisteet ja tehtävän mittarit. MODELLED; kuvaa lokia tai korpusta, ei koskaan tuotetta. |
render_leaderboard |
kshana-bench-tulostiedostot renderöitynä staattiseksi tulostaulusivuksi (HTML-teksti), kukin validoitu ensin. |
Versiot#
Koko moottori on ilmainen. Kshana Pro ja räätälöidyt tutkimukset on tarkoitettu ohjelmille, jotka tarvitsevat enemmän, ja jokainen maksullinen reitti alkaa viestillä: täällä ei ole hintoja.
| Ilmainen | Kshana Pro | Räätälöity tutkimus | |
|---|---|---|---|
| Mikä se on | koko avoin moottori, kaikki 92 skenaariotyyppiä, ei ominaisuusrajoitusta | suljettu kerros samalla moottorilla, sopimuksella | MODELLED PNT-kestävyystutkimus järjestelmästäsi, tehtynä puolestasi |
| Lisenssi | AGPL-3.0 (GNU Affero General Public License, versio 3) tai kaupallinen lisenssi | suljettu | sopimus |
| Miten aloittaa | asenna tai avaa kshana.dev | pyydä Pro-arviointia | pyydä tutkimusta |
Mitä Pro on, tiedoston docs/PRO.md sanoin:
Avoimen Kshanan tiukka ylijoukko. Pro käyttää avointa moottoria kirjastona eikä koskaan haarauta sitä. Jokainen avoin skenaariolaji toimii Prossa muuttumattomana, ja avoin skenaario toimii Prossa ilman lisenssiä lainkaan.
Ei uutta fysiikkaa. Pro ei lisää fysikaalista mallia eikä muuta mitään. Jokainen Pron luku tulee avoimen moottorin ajoista, joten Pron luku on yhtä luotettava kuin se avoin skenaariolaji, josta se on peräisin, eikä koskaan luotettavampi.
Pro vastaa ohjelman seuraaviin kysymyksiin: mikä suunnitelma lennetään (suunnitteluoptimoija ja sen Pareto-rintama), kuinka varma vastaus on (epävarmuus ja herkkyys) ja täyttääkö tehtävä vaatimuksensa (tehtäväasiakirja, vaatimusten jäljitettävyys, kauppatutkimukset, skenaarioregressiotarkistus, kellojen digitaaliset kaksoset, tutkimusasiakirja ja paikan päällä toimiva palvelu). Se myös tarkkailee lukujen kampanjaa ja kaataa putken, kun jokin luku huononee, testaa ehdokkaiden signaalisuunnitelmia avoimia satelliittinavigointisignaaleja vastaan molempiin suuntiin (spektrin rinnakkaiselo) ja jonottaa tutkimukset paikan päällä toimivassa työpalvelussa, jossa on tiivisteketjutettu toimituskirjanpito. Kukin on kuvattu tuotteineen ja rajoituksineen tiedostossa docs/PRO.md. Mikään Pron tuottama ei ole sertifiointi, eikä räätälöity tutkimus ole sertifiointi.
Mitä Kshana Pro lukee avoimesta moottorista, ja tuki Ashforde® OÜ:ltä
Mihin Kshana Pro nojaa. Jokainen Pron osa toimii avoimen moottorin pohjalta ja jättää sen muuttumattomaksi:
- Suunnitteluoptimoija, epävarmuustutkimus ja tehtäväasiakirja ajavat avoimen moottorin skenaarioita moottorin julkisen rajapinnan kautta ja laskevat jokaisen luvun ajojen tuloksista. Jokainen tuloste säilyttää sen VALIDATED-, MODELLED- tai PARTNER-tason, jonka avoin moottori antoi kullekin luvulle, eikä koskaan korkeampaa.
- Kellojen digitaaliset kaksoset käyttävät avoimen moottorin kellomallia ja sen Allanin poikkeaman estimaattoria: kaksonen kalibroidaan laitteen julkaistuun Allan-budjettiin ja tarkistetaan sitten estimoimalla kaksosen Allanin poikkeama avoimella estimaattorilla.
- Kauppatutkimukset ajavat jokaisen arkkitehtuurivaihtoehdon avoimen moottorin skenaariona muuttumattomana ja asettavat vaihtoehdot järjestykseen kunkin ajon tuloksesta luetun laatumittarin mukaan.
- Kampanjan seuranta lukee lukunsa paketin skenaarioiden avoimen moottorin ajojen tuloksista ja vertaa niitä edelliseen läpäisseeseen ajoon.
- Spektrin rinnakkaiselo lukee jokaisen fysikaalisen luvun lajien
leo-signaljaconstellation-designavoimen moottorin ajoista ja lisää vain näkyvissä olevien satelliittien summan ja suunnitelmien järjestyksen. - Paikan päällä toimiva työpalvelu ajaa avoimia ja Pro-skenaarioita saman moottorin kautta ja tallentaa jokaisen tuloksen sellaisena kuin ajo sen palautti.
- Todistepaketit tallentavat jokaisesta ajosta skenaarion tiivisteen, jonka avoin moottori leimaa tulokseensa, joten paketin luku voidaan toistaa ajamalla sen skenaario uudelleen.
- Järjestelmäsuunnittelun ja ohjelman työkalut. Kshana Pron mallipohjaisen järjestelmäsuunnittelun (MBSE) ja ohjelman työkalut tarkistavat ohjelman vaatimukset avoimen moottorin ajoja vasten: ne tuovat vaatimukset pilkulla erotettuina arvoina (CSV) tai Requirements Interchange Formatin (ReqIF) dokumentoituna osajoukkona tai Systems Modeling Language version 2 (SysML v2) -tekstinä, arvioivat jokaisen hyväksymiskriteerin yksiköineen ajon kirjoittamia arvoja vasten ja tuottavat varmennuksen ristiviitematriisin (VCRM), SysML v2 -mallin, muutosvaikutusraportin ja offline-todistepaketin. Ne eivät aja uudelleen eivätkä laske mitään uudelleen, ja lukevat vain sen, minkä avoin moottori julkaisee: kunkin ajon tiedoston
result.json(kriteerin nimeämät kentät, niiden yksiköt, toistettavuusleima eli skenaarion tiiviste, siemenluku, moottorin versio ja skeeman versio sekä ajon merkintä ja lukujen tasot), sen tiedostonreport.json(laji, toistettavuustietue ja ominaisuusmerkinnät), skenaariotiedoston (sen tiiviste, laji, siemenluku ja parametrit), kenttäyksikköskeeman (kunkin kentän yksikkö, alkuperä ja todistetaso) ja varmennusmatriisin (kunkin ominaisuuden VALIDATED-, MODELLED- tai PARTNER-merkintä).
Tuki ja ammattipalvelut#
Kshana on ilmainen ja avoimen lähdekoodin AGPL-3.0:n alainen, ja sen kehittää ja ylläpitää ammattimaisesti Ashforde® OÜ (Viro). Avoin moottori on täydellinen ja käyttökelpoinen sellaisenaan. Organisaatioille, jotka tarvitsevat enemmän, Ashforde® OÜ tarjoaa:
- Kaupallinen tuki ja integrointi — Kshanan upottaminen työkaluketjuusi, räätälöidyt skenaariot ja ensisijaiset korjaukset.
- Räätälöidyt anturimallit — kalibroituna laitteistoosi, mukaan lukien vientirajoitteiset kestävyysmallit, joita ylläpidetään yksityisessä kerroksessa.
- Kshana Pro — suljetut mallipohjaisen järjestelmäsuunnittelun (MBSE) ja ohjelman työkalut, jotka tarkistavat ohjelman vaatimukset avoimen moottorin ajoja vasten ja tuottavat varmennuksen ristiviitematriisin (VCRM), Systems Modeling Language version 2 (SysML v2) -mallin, muutosvaikutusraportin ja offline-todistepaketin. Ne eivät aja mitään uudelleen ja lukevat vain moottorin julkaistut tulosteet: kunkin ajon tiedostot
result.jsonjareport.json, skenaariotiedoston, kenttäyksikköskeeman ja varmennusmatriisin merkinnät (täysi luettelo on kohdassa Versiot). - Kshana Pron suunnittelu-, epävarmuus- ja tehtävätyökalut — suunnittelutilan Pareto-rintama, epävarmuus ja herkkyys tuhansien ajojen yli sekä yhden komennon tehtäväasiakirja varmennusmatriisin ja PDF:n kanssa; katso
docs/PRO.md. - Kshana Pron kampanjan seuranta, spektrin rinnakkaiselo ja työpalvelu — putki, joka kaatuu, kun seurattu luku huononee, signaalisuunnitelmat testattuna avoimia satelliittinavigointisignaaleja vastaan molempiin suuntiin sekä paikan päällä toimiva työjono tiivisteketjutetulla toimituskirjanpidolla; katso
docs/PRO.md. - Koulutus ja konsultointi kvantti- ja klassisen PNT:n suorituskykyanalyysistä.
Tämä on avoimen ytimen malli: moottori on ja pysyy avoimesti lisensoituna; kestävä liiketoiminta on asiantuntemus, tuki ja suljetut laajennukset — ei lisenssimaksut. Ota yhteyttä: contact@ashforde.org · ashforde.org.
Tutkimus#
Avoimen moottorin pohjalle rakennetut tutkimukset julkaistaan arXivissa. Jokainen nimeää sen takana olevan moottorikomennon, joten sen luvut voi luoda uudelleen sitoutetusta skenaariosta tai tutkimusesimerkistä.
| Artikkeli | Mitä se osoittaa | Moottorikomento |
|---|---|---|
| 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 |
GNSS-häiriöilmaisimen pisteiden lasku olosuhteiden muuttuessa voidaan ennustaa pelkästään jakauman sisäisistä tilastoista, avoimella synteettisellä testialustalla ja sen jälkeen avoimilla kenttätallenteilla. | 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 |
Harhautuksen kohteena olevalla GNSS-ajoitusvastaanottimella ei ole äärellistä ehdotonta rajaa havaitsematta jäävälle aikavirheelle, joten artikkeli antaa ehdollisen rajan, kalibroituna julkisen JammerTest 2024 -kampanjan tallennettuun radioteitse tulleeseen harhautukseen. | 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 |
Yksittäinen yhdistetty kestävyyspistemäärä on vakaa päätöksen perusta vain siellä, missä yksi suunnitelma on ylivoimainen; missä suunnitelmat kilpailevat, pelkkä painotuksen muutos voi vaihtaa voittajan. | 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 |
Etäisyysmittaus Kuun satelliittitähdistön sisällä jättää pinta-aseman absoluuttisen sijainnin havaitsemattomaksi; Maasta tuleva pitkän kantaviivan interferometrian (VLBI) viive palauttaa sen, kun satelliittitähdistö on harva, ja tarkentaa sitä, kun se on tiheä. | laji 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 |
Suunnitellut neljän–kuuden satelliitin satelliittitähdistöt antavat huonon geometrian Kuun etelänavalla, ja muutama pinnalla oleva etäisyysmittausmajakka korjaa sen paljon halvemmalla kuin lisäsatelliitit. | laji 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 |
DOP on määrittelemätön pelkkää etäisyyttä mittaavalle kuunläheiselle seurannalle, koska nopeus ei ole havaittavissa yksittäisellä hetkellä, joten artikkeli käyttää havaittavuuden Gramin matriisia neljällä tasomaisella kaukaisella vastakulkuisella radalla: pelkän etäisyyden asteluku on 2, kun täysi on 4 yksittäisellä hetkellä, ja täysi havaittavuus vaatii noin 2,09 h:n kaaren, ja ehdollisuus paranee kaaren pidentyessä; etäisyysnopeus (Doppler) antaa asteluvun 4 heti; ja aseman yhteisestimointi satelliittien tilojen ja kellojen kanssa jää asteluvultaan yhden vajaaksi, ellei lisätä ulkoista interferometristä havaintosuuretta. Vaatimukset kuuluvat kaaren pituuden, ehdollisuuden ja mittaustyyppien budjetteihin, ei DOP:iin. | laji cislunar-observability: kshana scenarios/cislunar-observability.toml (sen sisar cislunar-arc-recovery testaa kynnyksen riippumattomalla äärellisten erotusten estimaattorilla) |
Kolme tutkimusesimerkkiä kirjoittavat tavutasolla deterministisiä artefakteja (kiinteät siemenluvut), jotka tallentavat moottorin version, siemenluvut ja konfiguraation tiivisteen. Kolme Kuuta ja kuunläheistä avaruutta koskevaa artikkelia perustuvat Kuun pakettiin (kunkin osan todistetaso on varmennusmatriisissa); niiden geometria- ja DOP-väitteet on myös ristiintarkistettu erillisiä oraakkeleita vasten tiedostoissa tests/validate_p*.rs. Lisää kohdassa Toistettavat tutkimusartefaktit Viite-osiossa.
Siteeraa#
Jos käytät Kshanaa akateemisessa tai teknisessä työssä, siteeraa käyttämäsi versio sekä skenaario ja siemenluku. Tiedosto CITATION.cff sisältää koneluettavat metatiedot, ja GitHub näyttää sen perusteella ”Cite this repository” -painikkeen. Jokainen julkaisu arkistoidaan Zenodoon; konsepti-DOI (Digital Object Identifier) 10.5281/zenodo.20528627 osoittaa aina uusimpaan versioon.
Baweja, C. (2026). Kshana — a PNT-resilience simulator with quantum-sensor performance models. Ashforde OÜ. https://doi.org/10.5281/zenodo.20528627
Yllä olevat artikkelit:
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
Lisenssi#
Kshana on kaksoislisensoitu: GNU AGPL-3.0-only (LICENSE) tai Ashforde® OÜ:n kaupallinen lisenssi suljettuun integrointiin, johon AGPL ei sovi. Tiedosto LICENSING.md selittää, kumpi pätee. Kontribuutiot lisensoidaan sisäänpäin AGPL:llä ja ne antavat lisäksi Ashforde® OÜ:lle oikeuden sisällyttää ne kaupalliseen versioon; allekirjoita jokainen commit komennolla git commit -s (katso CONTRIBUTING.md). ”Kshana” ja sen tavaramerkit ovat Ashforde® OÜ:n tavaramerkkejä: lisenssi kattaa koodin, ei nimeä, joten nimeä haarat uudelleen.
Hakuteos#
Pitkä aineisto, kokoon taitettuna. Jokainen asiakirja on lueteltu kohdassa Dokumentaatio.
Asennus ja rakentaminen lähdekoodista
Asennus ja rakentaminen#
Vaatii Rust-työkaluketjun (≥ 1,88, kenttä rust-version tiedostossa Cargo.toml; kehitetty versiolla 1,93).
git clone https://github.com/ashfordeOU/kshana
cd kshana
cargo build --release
cargo test # all tests pass
Käyttö: komentorivi kokonaisuudessaan
Käyttö#
Aja mikä tahansa skenaario; CLI jakaa skenaarion kentän kind mukaan ja kirjoittaa sen viereen tiedostot <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html ja <scenario>.report.json — sekä <scenario>.table.csv lajeille, jotka julkaisevat taulukon. Raportti (HyperText Markup Language (HTML) -sivu ja JSON-asiakirja samalla sisällöllä) sisältää tiivistelmän, jokaisen syötteen yksikköineen, tulokset ja kaaviot, kampanjan pyyhkäisy-, Monte Carlo- tai ketjutaulukot, tapahtuma-aikajanan, jokaisen ajossa käytetyn ominaisuuden VALIDATED / MODELLED / PARTNER -merkinnän ja lähteen, sen mitä ei mallinneta sekä toistettavuustietueen (moottorin versio, Secure Hash Algorithm 256-bit (SHA-256) -tiivisteet, siemenluku, alusta ja tarkka komento). Se tulostuu selaimesta siistiksi PDF-tiedostoksi (Portable Document Format) A4- tai Letter-paperille; moottori ei kirjoita PDF:ää itse. Katso 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> kirjoittaa skenaarion viereen CZML (Cesium Language) -, KML (Keyhole Markup Language) -, GeoJSON (Request for Comments 7946) -, Ansys STK (Systems Tool Kit) -efemeridit .e ja SigMF (Signal Metadata Format) -tallenteet, ja --import-route <route.geojson> syöttää GeoJSON-viivan reittiä seuraaville lajeille. Jokainen muoto validoidaan julkaistua määrittelyä vasten, ja skenaario, johon muoto ei sovellu, kertoo miksi: katso docs/INTEROP.md.
Muut CLI-tilat — skenaarion linttaus, todellisen Maan orientaatiodatan syöttö tai kokonaisen sarjan ajo:
# 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
Animaation vienti. --animate svg|html|frames|all kirjoittaa <scenario>.animation.svg (Cascading Style Sheets (CSS) -avainkehykset, ei skriptiä), <scenario>.animation.html (toisto, tauko, kelaus, nopeus ja synkronoidut paneelit, ilman ulkoista resurssia) ja <scenario>.frames/ (frame_0000.svg, … sekä manifest.json, jossa on kuvataajuus ja kesto). Kampanja toistaa vaiheensa ja hälytyksensä, spektriajo vesiputouksensa; teema seuraa asetusta prefers-color-scheme, ja prefers-reduced-motion näyttää valmiin kuvan. Se piirtää ajon omat näytteet, tavu tavulta samat uusinta-ajossa, eikä lisää todisteita. Katso docs/ANIMATION.md.
Sarjan manifesti on pieni TOML-tiedosto (Tom's Obvious, Minimal Language) — kenttä title ja taulukko scenarios = [ … ] skenaariopoluista — jonka moottori ajaa vuorotellen ja kokoaa jokaisen tuloksen (MODELLED / VALIDATED -merkintöineen) yhdeksi itsekuvaavaksi tutkimusartefaktiksi. Katso scenarios/quantum-pnt-demonstrator.suite.toml.
Yhteentoimivuuden rooli. Kshana on suorituskyvyn simulointikerros, joka istuu jälkikäsittelytyökaluketjun rinnalla eikä korvaa sitä: syötä sen RINEX-tuloste RTKLIBiin tai gLABiin sijaintiratkaisua varten ja käytä sen SP3-tulostetta tarkkana ratatuotteena työkaluille kuten Ginan — Kshana vastaa kysymykseen minkä kestävyyden tietty PNT-arkkitehtuuri tuo ennen kuin sinulla on todellisia signaaleja, muodoissa, joita nämä työkalut jo ottavat vastaan (--export-sp3 tai export_sp3 = true skenaariossa orbit kirjoittaa <scenario>.sp3). Saman radan voi julkaista standardipolun CCSDS OMM -keskiarvoelementteinä (--export-omm tai export_omm = true kirjoittaa <scenario>.omm) — yksi OMM 502,0 KVN (keyword = value notation) -viesti TLE:llä määriteltyä satelliittia kohti, jokaisen kohteen todellisella NORAD (North American Aerospace Defense Command) -luettelonumerolla, COSPAR (Committee on Space Research) -kansainvälisellä tunnuksella ja epookilla, mille tahansa OMM:ää ymmärtävälle kuluttajalle erillisen kaksirivisen elementtijoukon sijaan.
Esimerkkituloste (kellon holdover — huomaa, miten Eheys- ja Turvallisuus-laatumittarit raportoidaan):
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
Optisen kellon 95. persentiilin (p95) ajoitusvirhe on 1.20e-4 ns: yhteenveto tulostaa pienet arvot merkitsevinä numeroina sen sijaan, että pyöristäisi ne arvoon 0.0. security lukee n/a (no attack), koska tämä skenaario ei määritä hyökkäystä, joten havaittavaa ei ole. JSON-tulos sisältää silti kunkin kellon analyyttisen harhautuksen havaittavuusrajan kentässä fom.security (0,997 optiselle kellolle, 0,000 sirutason atomikellolle, jonka oma kohina seurantaikkunassa ylittää 20 ns:n vaatimuksen), ja sen figure_tiers-lohko merkitsee tämän luvun applicable: false. Skenaariolaji spoof pisteyttää havaitsemisen ruiskutettua hyökkäystä vastaan. figure_tiers antaa myös jokaiselle raportoidulle luvulle sen varmennustason — VALIDATED (tarkistettu ulkoista oraakkelia vastaan) tai MODELLED — ja varmennusmatriisin rivin, josta taso luetaan. Rata-skenaario raportoi lisäksi geometrialohkon — ratkaisun saaneiden näytteiden osuus sekä paras/mediaani sijainnin DOP (PDOP) ja sijaintitarkkuus — kellotuloksen rinnalla.
Lue nämä kaksi lukua huolellisesti.
securityon kunkin kellon vakaudesta johdettu analyyttinen harhautuksen havaittavuusraja — se on mielekäs vain määritettyä harhautusskenaariota vasten, ja se ei ole usean satelliitin RAIM-ilmaisin.integrityon tässä suodattimen itsejohdonmukaisuus (oman k-sigma-rajansa sisällä olevien katkonäytteiden osuus), ei ilmailun HPL/VPL-eheysluku. Katsodocs/INTEGRITY.md.Aitoon vastaanottimen itsenäiseen eheyteen skenaariolaji
integrity(scenarios/integrity-raim.toml) ajaa todellista tilannekuva- ja ratkaisuerotus-RAIMia (ARAIM-tyyppinen) edenneen satelliittitähdistön geometrialla: se laskee vaaka-/pystysuuntaiset suojaustasot (HPL/VPL) epookeittain ja raportoi niiden epookkien osuuden, jotka täyttävät määritetyt hälytysrajat, sekä Stanfordin eheyskaavion virhe–PL-luokitteluun (suojaustaso).
Toistettavat tutkimusartefaktit
Neljä avointa tutkimusta luo kukin tavutasolla deterministisen artefaktin (kiinteä siemenluku) yhdellä komennolla — luvut kvantti–klassinen-ylityskohdan, RF-häiriöiden optimismikuilun, PNT-kestävyyden pisteytyksen ja ajoituksen suojaustason tutkimusten takana:
# 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
Jokainen artefakti tallentaa moottorin version, siemenluvut ja konfiguraation tiivisteen ja sisältää rehellisen MODELLED/VALIDATED-merkinnän. Todellisen datan koettimet (*_probe) ajavat saman putken paikallisesti toimittamillesi tallenteille; repositorioon ei toimiteta aineistoja. RF-häiriöiden optimismikuilun tutkimus on kirjoitettu esipainokseen arXiv:2606,22054 ja ehdollinen ajoituksen suojaustaso (tpl_jammertest yllä) esipainokseen arXiv:2606,24210 (katso Siteeraa).
Julkaistujen Kuun PNT -tutkimusten (arXiv:2607,06212 pintamajakan DOP, arXiv:2607,02566 VLBI-havaittavuus ja arXiv:2610,23871 kuunläheisen kaaren pituuden havaittavuus) geometria-, DOP-, reaaliaikaisen koordinaatiston / Maan orientaatioparametrien (EOP) ennusteen, kaukaisen vastakulkuisen radan ja RF-etäisyysmittauksen väitteet on ristiintarkistettu itsenäisesti tiedostoissa tests/validate_p*.rs erillisiä oraakkeleita vasten (scipy.special.j1, riippumaton NumPy-pohjainen (HᵀH)⁻¹ DOP-ratkaisu, samojen IERS finals2000A -rivien NumPy-uudelleenjäsennys ja NASA/JPL:n Three-Body Periodic Orbit Database). Nämä ovat lisäregressiotarkistuksia mallinnetulle Kuun paketille; ne eivät muuta koneellisesti tarkistettua matriisin lukumäärää.
Skenaarion muoto
Skenaarion muoto#
Skenaariot ovat deklaratiivista TOMLia. Ylätason kind valitsee paketin — yhteensä viisikymmentä (clock on oletus, jos jätetään pois): 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 (koneoppimisen RF-häiriöiden havaitsemisen arviointitestialusta — merkitty synteettinen aineisto + ilmaisimesta riippumaton ROC/AUC-ympäristö + jakauman sisäinen/ulkopuolinen optimismikuilu), quantum-trade (kvantti–klassinen PNT-kauppatutkimus mitatun ADEV:n syötöllä + GNSS:stä riippumaton kestävyysverhokäyrä; MODELLED), space-weather (aurinko- ja geomagneettiset indeksit + Jacchia-71-eksosfäärin lämpötila + aktiivisuuden ohjaama termosfäärin tiheys staattisen ilmakehän päälle; MODELLED), oem-interop (CCSDS OEM:n tuonti- ja edestakaissiltaus GMAT-, Orekit- ja STK-efemerideille; MODELLED), tehtäväanalyysin kolmikko launch-window (kahden kappaleen laukaisuazimutti / tasonmuutos / mahdollisuudet), reentry (Allen–Eggersin ballistinen paluukäytävä), eo-coverage (EO-kaistan / GSD:n / pääsyn / uudelleenkäynnin geometria), space-packet (CCSDS 133,0 TM/TC — telemetria/kaukokäsky — Space Packet -kehystys — tarkka bittirakenne, edestakaisin varmennettu) ja attitude-budget (3-DOF-gravitaatiogradienttimomentti + RSS-suuntausvirhebudjetti), passes (maa-aseman nousu-/laskuohitusten ennuste — AOS/TCA/LOS, suurin korkeuskulma, pääsy) ja link-budget (yksisuuntainen CCSDS/DSN-linkkiyhtälö — FSPL / Eb·N₀ / marginaali / sulkeutuminen); telecom-timing (holdover-aikavirhe, MTIE ja TDEV tarkistettuna ITU-T-maskeja vasten); spectrum (koko GNSS L-kaista yhtenä tehospektritiheytenä: taajuus–aika-vesiputous käsikirjoitetun jatkuva-aaltoisen, kapeakaistaisen, chirp- tai sovitetun kohinan häirintäaikajanan alla, kaistakohtainen häirintä–signaali-suhde ja efektiivinen kantoaalto–kohinatiheys spektrierotuskertoimesta sekä Signal Metadata Format (SigMF) -tallenteen syöttö ja tulostus Welchin spektriestimaateilla; signaalispektrit VALIDATED oppikirja-arvoja vasten, häirintäskenaario MODELLED; katso docs/SPECTRUM.md; sama laji piirtää myös UHF-, S- ja C-kaistan paneelit suunnitelluilla matalan Maan radan signaaleilla); leo-signal (matalan Maan radan paikannus-, navigointi- ja ajanmääritysjärjestelmien signaalisuunnitelmat mille tahansa järjestelmälle: kaistarajoitetut spektrit, koodinseurannan värinä ja etäisyysmittauksen tarkkuus, hankintahaku ja -aika, spektrierotus GPS:ään ja Galileoon nähden, häirinnän sietokyky ja UHF–C-kaistan kauppatutkimus, julkisista esiasetuksista kuten Xona Pulsar, Iridium, Starlink ja CentiSpace tai sisäisistä suunnitelmista; suljetun muodon kaavat ja LEO-Doppler VALIDATED, suunnitelmat MODELLED; katso docs/LEO-SIGNAL.md); solar-system (Aurinko, planeetat, Pluto, Kuu ja seitsemän suurta kuuta yhdellä epookilla — sijainnit, vakiot, valoajat ja ratajäljet; planeettojen sijainnit VALIDATED JPL Horizonsia vasten) ja body-pnt (paikannus minkä tahansa näiden kappaleiden ympärillä paikallisella navigointisatelliittitähdistöllä ja syvän avaruuden linkillä Maasta; MODELLED); campaign (olemassa olevat lajit koottuna ketjutetuksi tehtäväaikajanaksi, jossa tila siirretään vaiheiden välillä, parametripyyhkäisyksi, siemennetyksi Monte Carlo -joukoksi tai usean skenaarion ajoksi yhden jaetun olosuhteen alla; MODELLED, katso docs/CAMPAIGNS.md); constellation-design (Walker-delta- ja -tähtikuviot, elementtiluettelot ja monikuoriset suunnitelmat GPS-, Galileo-, BeiDou- ja GLONASS-esiasetuksin sekä kattavuus ja DOP leveys–pituus-ruudukolla; generaattori ja GPS:n globaali DOP VALIDATED julkaistuja palveluasiakirjoja vasten, katso docs/CONSTELLATION-DESIGN.md); leo-pass (matalan Maan radan (LEO) paikannus-, navigointi- ja ajanmääritys (PNT) -satelliitin ohitus ja sen linkkibudjetti kaista kerrallaan, mistä tahansa satelliittitähdistöstä ja signaalisuunnitelmasta: katselukulmat, Doppler ja Dopplerin muutosnopeus, ITU-R:n sade-, kaasu-, tuike- ja rakennuksen läpäisyvaimennus, kantoaalto–kohinatiheys näkyvissä oleviin MEO-GNSS-satelliitteihin nähden, ensimmäisen kertaluvun ionosfääri ja ionosfääristä vapaat parit sekä pienienergiaisen paikannusratkaisun budjetti, ionosfäärin luotaus jokaisesta kaistaparista ja harhautuksen monitorit Dopplerin ja ohitusgeometrian johdonmukaisuuden sekä kaistojen välisen johdonmukaisuuden perusteella; ITU-R-termit ja staattisen käyttäjän Dopplerin vaihteluväli VALIDATED, ohitus MODELLED, katso docs/LEO-PASS.md); leo-navmsg (matalan Maan radan (LEO) PNT-satelliitin lähettämä efemeridi- ja kelloviesti mille tahansa radalle ja kantoaallolle: sovitin integroidusta totuusradasta Galileon Kepler-joukkoon, tuo joukko kulkusuuntaisin, poikittaisin ja radiaalisin korjauspolynomein, Liu et al. 2025 22 parametrin malli tai ATOMICin nollakelloinen ECEF-polynomi; signaalin avaruusosuuden etäisyysvirhe (SISRE) suhteessa sovitusväliin ja päivitysjaksoon, ohituksen keskellä tehtävän päivityksen jatkuvuustarkistus, Kshanan oma dokumentoitu binäärikehys CRC-24Q-syklisellä redundanssitarkistuksella ja kvantisointibudjetilla sekä RINEX-4-tyylinen lohko, joka on merkitty Kshana-laajennukseksi; SISRE-painot, Galileon käyttäjäalgoritmi ja CRC-24Q VALIDATED, sovitukset MODELLED; valinnaiset esiasetukset Xona Pulsarille, Iridiumille, Starlinkille, CentiSpacelle, edustavalle C-kaistan järjestelmälle, ATOMICille ja Celeste IODille; katso docs/LEO-NAVMSG.md); yhdistetyn MEO + LEO PNT:n kolmikko leo-pvt (Doppler-paikannus LEO:n etäisyysnopeudesta, yhteiset GNSS + LEO -pseudoetäisyysratkaisut järjestelmien välisine harhoineen ja DOP suhteessa LEO-satelliittien määrään, napa- ja arktinen kattavuus sekä LEO-ajansiirto UTC:hen — mille tahansa satelliittitähdistölle, valinnaisilla esiasetuksilla kuten Xona Pulsarin, Iridiumin ja Starlinkin opportunistiset signaalit; LEO-Dopplerin vaihteluväli VALIDATED julkaistuja Iridium- ja Xona-lukuja vasten), leo-ppp (tarkan pistepaikannuksen konvergenssi pelkällä GNSS:llä ja LEO-täydennyksellä, verrattuna julkaisuun Li et al. 2019) ja ntn-positioning (5G:n ei-maanpäällisen verkon paikannus signaalin kaistanleveyden Cramér–Rao-rajasta), MODELLED lukuun ottamatta tuota vaihteluväliä, katso docs/LEO-PNT-FUSION.md; leo-pnt-chain (yksi LEO-PNT-järjestelmä päästä päähän: leo-pass-kaistan kuljettama leo-signal-suunnitelma, ohituksen C/N0 ja navigointiviestin signaalin avaruusosuuden etäisyysvirhe luovutettuna yhdistetylle leo-pvt-ratkaisulle ja leo-ppp-konvergenssille, jokainen luovutus lueteltuna; MODELLED, katso docs/LEO-PNT.md, joka on myös yleiskatsaus jokaiseen LEO-PNT-lajiin ja -skenaarioon, mukaan lukien kestävyyskampanjat, yksi skenaario kutakin koealuetta kohti ja yksi kutakin loppukäyttäjäalaa kohti); Kuun PNT-paketti lunar-vlbi, lunar-joint-od-clock, lunar-frame-realisation, moonlight-service-volume, lunar-differential-pnt, lunar-interop-export; kvanttipohjaisen PNT:n demonstraattori quantum-time-transfer, quantum-gnss-free-nav, quantum-anomaly-detect; sekä signaaliturvallisuuden, kuunläheisen avaruuden ja kerrostetun kestävyyden tutkimuslajit lunar-attack-surface, realtime-frame-eop, lunar-time-budget, hybrid-optical-rf, cislunar-observability, conflict-resilience — tehtäväanalyysin kolmikko ja nämä myöhemmät lajit kaikki MODELLED (kullakin on validoitu suljetun muodon ydin; katso matriisi). Yhteiset kentät: seed, [time]-ruudukko, [gnss]-saatavuusaikajana (katkon ohjain) ja anturikohtaiset lohkot, joissa on provenance-merkkijonot, jotka mainitsevat jokaisen luvun lähteen. Esimerkki (kello):
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
Valinnaiset kentät (pois päältä, kun puuttuvat): kello voi lisätä kentän flicker_floor (1/f FM — taajuusmodulaatio — Allanin lattia); inertia-anturi voi lisätä kentät gyro_bias ja q_arw (gyroskoopin harha ja kulman satunnaiskävely) sekä bias_instability ja q_aa (Allanin harhan epävakauden lattia ja kiihtyvyyden satunnaiskävely) — yhdessä yksiakselinen (1-DOF) kiihtyvyysanturin virhebudjetti (VRW/ARW — nopeuden/kulman satunnaiskävely — ja harhan epävakaus). Tämän virhebudjetin ajaa toimitettu inertial-skenaariopaketti. Erikseen kirjasto sisältää nyt varmennetun 3-akselisen strapdown-navigaattorin (src/inertial/{attitude,mechanization,imu_errors}.rs): kvaternioasenne coning-/sculling-kompensaatiolla, täysi NED-mekanisaatio (Maan pyörimis- ja kuljetusnopeustermit, WGS-84 Somiglianan painovoima) ja deterministinen IMU-virhemalli, jossa mittakaavakerroin, kohdistusvirhe, g-herkkyys, kvantisointi ja kulmanopeusramppi on mallinnettu (IEEE Std 952-1997, IEEE:n gyroskooppien määrittely- ja testimenettelystandardi, §A.2; Groves 2013 §4,3). Tuo 3-akselinen polku on nyt kytketty ajettavaan löyhästi kytkettyyn GNSS/INS-pakettiin (kind = "gnss-ins"): 15-tilainen virhetila-EKF kurinalaistaa strapdown-ratkaisun kohinaisilla paikannusratkaisuilla GNSS:n ollessa käytettävissä ja liukuu sitten katkon läpi, ja raportoi fuusioidun vaakavirheen avosilmukkaista vapaata INS-liukumaa vasten. Saatavilla on myös tiukasti kytketty pseudoetäisyyspäivitys (se muodostaa innovaation etäisyysalueella, joten se korjaa edelleen alle neljällä satelliitilla). Kellon holdover-skenaario voi lisätä kentän runs (> 1) ajaakseen Monte Carlo -joukon — jokainen laatumittari raportoidaan silloin keskiarvona ja 5.–95. persentiilin hajontana, ja kaavio varjostaa virheen luottamuskaistan (katso scenarios/clock-ensemble.toml).
fusion-skenaario (samat lohkot kuin hybrid) ajaa kahta riippumatonta Kalman-estimaattoria — toista kellon tilalle, toista sijaintitilalle — GNSS:n kurinalaistamina ja optisen ajansiirron avustamina, ja raportoi yhdistetyn holdover-laatumittarin. Kaksi lohkoa eivät jaa ristikovarianssia: tämä on pinottu pari virhebudjetteja, ei todellinen kytketty kello+sijainti-yhteissuodatin (lohkojen välinen kovarianssi on tiekarttakohde). Katso scenarios/fusion-pnt.toml.
spoof-skenaario ruiskuttaa aikaharhautuksen — yksi neljästä [attack.shape]-lajista (linear_ramp, step_jump, meaconing, replay; pelkkä rate_ns_per_s hyväksytään edelleen lineaarisena rampina) — ja ajaa kunkin kellon harhautuksen ilmaisimen. Ilmaisin on kaksipuolinen χ²₁-energia- / Neyman–Pearson-testi kellolla avustetulle monitoritilastolle: kynnys asetetaan tavoitellusta väärän hälytyksen budjetista target_pfa, ja havaitsematta jäämisen todennäköisyys P_md raportoidaan sekä suljetussa muodossa että Monte Carlolla (mc_runs koetta hypoteesia kohti — nämä ovat samaa luokkaa muutaman ×1/√N:n tarkkuudella). Turvallisuuden laatumittari on 1 − P_md operatiivisesti haitallisella (vaatimuksen) suuruudella, joten hiljainen kello, joka havaitsee vaatimuksen kokoisen harhautuksen, saa ≈ 1 ja kohiseva, joka usein ohittaa sen, pienemmän (katso scenarios/spoof-attack.toml, scenarios/spoof-meaconing.toml).
gnss-sim-skenaario on mittausalueen simulaatio: jokaiselle näkyvälle satelliitille se synteesoi pseudoetäisyyden ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath ja L1-Dopplerin, Klobuchar-yksitaajuusionosfäärillä ([iono], IS-GPS-200 §20.3.3.5.2.5) ja Saastamoinen-troposfäärin zeniittiviiveellä, joka projisoidaan Niellin (1996) kuvausfunktiolla ([tropo]). Residuaalit syöttävät tilannekuva-RAIMia epookkikohtaisille HPL/VPL-arvoille, ja jokaisen satelliitin pseudoetäisyys, Doppler, C/N₀ sekä iono-/tropokorjaukset tulostetaan JSON-taulukkoon gnss_measurements. Se on eteenpäinsimulaattori (se tuottaa mittauksia tunnetusta totuudesta), ei vastaanotin/ratkaisija — nollakohinainen ajo toistaa geometrian ja korjaukset alle millimetrin tarkkuudella (katso scenarios/gnss-sim-raim.toml).
jamming-skenaario mallintaa RF-häiriön linkkibudjettina: [jammer] (ECEF-sijainti, lähetyksen power_dbw, tyyppi) nostaa häirintä–signaali-suhdetta kohteessa [receiver], joka tarkkailee Walker-satelliittitähdistöä ([constellation]). Geometriasta (vapaan tilan etenemisvaimennus ja suuntakohtainen vastaanottoantennin vahvistus) se laskee jokaisen satelliitin J/S:n, efektiivisen C/N₀:n tavallisella häirinnänvastaisella yhtälöllä (hajotuksen prosessointivahvistus × spektrierotuskerroin Q; Kaplan & Hegarty §9,4) ja merkitsee lukituksen menetyksen säädettävän seurantakynnyksen alapuolella — ja raportoi laatumittarin availability_under_jamming. 10 W:n laajakaistahäirintälähetin 1 km:n päässä estää vastaanotinta kokonaan (J/S ≈ 72 dB); sama häirintälähetin 100 km:n päässä vain heikentää linkkejä (katso scenarios/jamming-demo.toml).
sweep-skenaario ajaa kauppatutkimuksen: se vaihtelee yhtä parameter-arvoa (threshold_ns, duration_s, quantum_q_wf tai classical_q_wf) arvosta start arvoon stop steps pisteen yli lin- tai log-arvoisella kentällä scale, tallentaa metric-suureen (esim. holdover_s) molemmille kelloille ja piirtää kaksi käyrää. Perusskenaario sijoitetaan lohkoon [base] (katso scenarios/sweep-clock-stability.toml).
sweep-nd-skenaario yleistää tämän mille tahansa paketille ja mille tahansa määrälle akseleita: se vaihtelee [base]-skenaarion pisteillä erotettuja TOML-avaimia (minkä tahansa kind-lajin) [[axes]]-lohkojen karteesisen tulon yli, ajaa jokaisen ruudukon solmun uudelleen ja tallentaa metrics-suureet, jotka on annettu pisteillä erotettuina JSON-polkuina tulokseen (esim. classical.fom.holdover_s). Se toimii jokaiselle paketille, koska se toimii TOML/tulos-rajapinnassa; natiiviajot arvioivat ruudukon rinnakkain (ei lisäriippuvuutta, wasm palaa peräkkäiseen ajoon) ja tuloste on deterministinen ja rivijärjestyksessä (katso scenarios/sweep-nd-inertial.toml).
orbit-skenaario johtaa [gnss]-aikajanan geometriasta sen kirjoittamisen sijaan — anna [user]-rata, [constellation], korkeuskulman mask_deg ja kaksi kellolohkoa. Se raportoi myös sijaintitarkkuuden satelliittigeometriasta; valinnainen sigma_uere_m (1-sigma-käyttäjäekvivalentti etäisyysvirhe, oletus 1 m) skaalaa sijainnin DOP:n sijainnin sigmaksi. Käyttäjän radan voi tehdä eksentriseksi kentillä eccentricity ja argp_deg, ja j2 = true lisää Maan litistyneisyyden sekulaarisen ajautuman (katso scenarios/orbit-molniya.toml). Satelliittitähdistö voi olla myös todellinen: anna kohteelle [constellation] tle-lohko kaksirivisiä elementtijoukkoja, ja satelliitit jäsennetään siitä (katso scenarios/orbit-real-tle.toml). Lisää yksi tai useampi [[constellations]]-lohko usean GNSS:n käyttöön (esim. GPS + Galileo; katso scenarios/orbit-multignss.toml):
kind = "orbit"
seed = 7
threshold_ns = 5.0
mask_deg = 10.0
sigma_uere_m = 1.0 # optional; position sigma = position-DOP * this
[time]
step_s = 60.0
duration_s = 86400.0
[user] # spacecraft (altitude in km, angles in deg)
altitude_km = 8000.0
inclination_deg = 0.0
[constellation] # Walker-delta GNSS (GPS-like)
altitude_km = 20180.0
inclination_deg = 55.0
planes = 6
sats_per_plane = 4
phasing_f = 1.0
[clock_quantum] # ... as above
[clock_classical] # ... as above
GPS:stä riippumattomat alt-PNT-lajit navigoivat ilman GNSS:ää lainkaan sovittamalla mitatun kenttäsarjan karttaan hiukkassuodattimella. gravity-map-skenaario lentää reitin pallofunktiokehitelmällä kuvatun painovoimapoikkeamakentän läpi ja palauttaa sen kylmäatomigravimetrin lukemasta (scenarios/gps-denied-gravity-nav.toml); terrain-nav-skenaario tekee saman SRTM-korkeusmallia vasten (TERCOM/SITAN, scenarios/terrain-nav.toml); ja combined-altpnt-skenaario fuusioi painovoiman + IGRF-magneettikentän + maaston yhdessä suodattimessa (scenarios/combined-altpnt.toml).
lunar-integrity-skenaario arvioi kuunläheisen PNT:n: se ajaa Kuun etelänavan ARAIM-suojaustasokierroksen LunaNet/LNIS-releiden joukkoa vasten ja raportoi rehellisesti eheyskuilun — noin 30 m:n Kuun σ_URE nostaa suojaustason selvästi 50 m:n hälytysrajan yläpuolelle, joten palvelu on ei saatavilla ilmailutyyppisillä eheyssäännöillä (scenarios/lunanet-araim.toml).
lunar-time-offset-skenaario raportoi relativistisen Maa–Kuu-kellonopeuden — Kuun koordinaattiaika-asteikon (LTC/TCL) perustan. Perusperiaatteista johdettu post-Newtonin identiteetti summaa itsepotentiaalien eron (IAU L_G -geoidin potentiaali miinus Kuun pinnan itsepotentiaali) ja Kuun liike-energiatermin (toisen kertaluvun Doppler) sekulaarinopeudeksi ≈ 57 µs/vrk, raportoituna julkaistun 56–59 µs/vrk -kaistan kanssa; se antaa myös kertyneen LTC−TT-siirtymän aikajänteellä sekä käänteisvarianssijoukon (Kuun paperikello). MODELLED — pääluku on vertailusta riippuva (Maan geoidi vs. Kuun selenoidi, keskiarvotusikkuna), minkä vuoksi raportoidaan kaista eikä yksittäinen sertifioitu luku (scenarios/lunar-time-offset.toml).
Katso hakemisto scenarios/: vähintään yksi toimiva esimerkki jokaisesta tyypistä (92 tyyppiä, 193 skenaariotiedostoa (.toml) + 1 sarjan manifesti — useilla tyypeillä on useampi kuin yksi esimerkki). Kaikilla tyypeillä ei ole niiden mukaan nimettyä tiedostoa: lunar-integrity → scenarios/lunanet-araim.toml ja gravity-map → scenarios/gps-denied-gravity-nav.toml ovat kaksi useista tällaisista. Ajettavat tyypit saa luetteloksi milloin tahansa: komennon cargo run -- --validate <file> virheistä, Pythonin funktiolla list_kinds() tai MCP-työkalulla list_scenario_kinds.
Tuloste
Tuloste#
Tulosartefakti on versioitu, itsekuvaava JSON: askelkohtainen aikasarja, pisteytetyt laatumittarit, aktiiviset mallimäärittelyt (alkuperätietoineen), siemenluku, skenaarion tiiviste — jotta mikä tahansa kaavio voidaan toistaa tiedostosta — ja kullekin kellolle adev_curve ([{tau_s, adev, n_samples, noise, edf, ci_lo, ci_hi}]): limittyvä Allanin poikkeama oktaavivälein valituilla keskiarvotusajoilla — vakiotapa lukea kellon vakautta — nyt kohinatyyppikohtaisella 95 %:n luottamuskaistalla pisteittäin (tallenteen potenssilakityyppi tunnistetaan sen muunnetusta Allan-kaltevuudesta, ja χ²-väli käyttää vastaavia NIST SP 1065 -efektiivisiä vapausasteita). Selaimen leikkikenttä piirtää sen log-log-kaaviona ”Clock stability (ADEV)”. (MDEV, TDEV ja HDEV ovat saatavilla kirjastoestimaattoreina; viety tulosraja on limittyvä ADEV.) Jokainen kenttä yksiköineen ja lähdeviitteineen on dokumentoitu tiedostossa docs/SCHEMA.md.
Jokainen kaavio on itsekuvaava. Selaimen leikkikenttä, CLI:n *.chart.svg-vienti ja HTML (HyperText Markup Language) -tuloskortti leimaavat jokaisen kaaviokuvan alatunnisteella Kshana v<version> · scenario <hash> · kshana.dev. Osa scenario <hash> on ajon skenaariotiivisteen 12 ensimmäistä heksamerkkiä — SHA-256 (256-bittinen Secure Hash Algorithm) -tiiviste kanonisesta skenaariomäärittelystä (siemenluku, kynnykset, mallin parametrit, GNSS-ikkunat, …); eheys- ja Kuun raportit, joilla ei ole omaa tiivistettä, käyttävät varana skenaarion lähteen SHA-256:ta. Se on sama sormenjälki, joka näkyy yhden rivin yhteenvedossa ja tulos-JSONissa, joten tallennettu tai liitetty kaavio kantaa aina versionsa, täsmällisen skenaarion, joka sen tuotti (bitti bitiltä -toistoa varten) ja lähteen — muuta mitä tahansa syötettä, ja tiiviste muuttuu.
Laatumittarit noudattavat tavallisia operatiivisia PNT-laatumittareita:
| Laatumittari | Miten Kshana sen laskee |
|---|---|
| Ajoituksen suorituskyky (kello-/ratapaketit) | kellovaiheen virheen RMS + 95. persentiili katkon yli nanosekunteina (timing_rms_ns) — ajoitusmittari, ei sijainti |
| Paikannuksen suorituskyky (inertia-/hybridipaketit) | 1-DOF-sijaintivirheen RMS + 95. persentiili katkon yli metreinä (pos_rms_m); yksiakselinen. Yksittäinen ajo merkitään monte_carlo: false; aseta runs = N Monte Carlo -joukolle, joka raportoi kunkin mittarin keskiarvon, hajonnan ja bootstrap-95 %:n luottamusvälin (CI). Edelleen ei 2-D CEP/2DRMS (circular error probable / twice the distance root mean square) eikä DOP-painotettu tarkkuus (nämä vaativat 3-akselisen mallin — tiekartalla) |
| Autonomia | holdover-kesto — GNSS:n menetyksen jälkeinen aika vaatimuksen sisällä (ruudukkoon kvantisoitu: alaraja) |
| Kestävyys | virheen kasvun kulmakerroin katkon aikana |
| Saatavuus | ajon osuus, jolla on vaatimuksen mukainen ratkaisu |
| Eheys | suodattimen itsejohdonmukaisuus — katkonäytteiden osuus, joiden virhe pysyy Kalman-suodattimen oman k-sigma-rajan sisällä. Ei ilmailun HPL/VPL/RAIM-eheysluku (katso docs/INTEGRITY.md) |
| Tietoturva | kellon vakaudesta johdettu analyyttinen harhautuksen havaittavuusraja — kuinka pienen/hitaan aikaharhautuksen yhden kellon johdonmukaisuusmonitori voisi lipuuttaa. Mielekäs vain määritetyllä hyökkäyksellä; ei usean satelliitin RAIM-ilmaisin |
Termit uusia? Jokainen on määritelty selkokielellä sanastossa.
Repositorion rakenne
Repositorion rakenne#
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
UKK (usein kysytyt kysymykset)
FAQ#
Tarvitsenko kvanttifysiikan ymmärrystä tämän käyttöön? Ei. Jos osaat ajaa komentorivin komennon, osaat ajaa Kshanan. Aloita selkokielisestä alustuksesta; katso termejä sanastosta.
Onko tämä kvanttilaitteiston suunnitelma tai lentoohjelmisto? Ei. Se on suorituskyvyn simulaattori. Kvanttilaitteiston tarkkuus tulee julkaistuista virhemalleista, ei tästä työkalusta. Katso Mitä se on / ei ole.
Ovatko kvanttitulokset realistisia vai markkinointia? Jokaiselle parametrille on lähteenä datalehti tai artikkeli, jokainen malli on validoitu oppikirjasuhdetta vasten, ja kypsyystaso on merkitty rehellisesti tiedostossa VALIDATION.md — mukaan lukien se, ettei yhtään strontiumoptista kelloa ole lennetty. Moottori on neutraali: kvantti ja klassinen ovat sama koodi eri julkaistuilla luvuilla.
Voinko luottaa siihen, että kaksi ajoa täsmäävät? Kyllä — ajot ovat deterministisiä: scenario + seed + engine version → bit-identical output, ja sen varmistaa scripts/check-reproducible.sh.
Voinko käyttää sitä Pythonista tai selaimessa? Kyllä — katso Asennus: Python- ja WebAssembly-esimerkit ovat sen alla. Molemmat kutsuvat samaa moottoria.
Miten mallinnan oman anturini? Kirjoita skenaario .toml, jonka provenance-kentissä on anturisi julkaistut luvut. Katso Skenaarion muoto ja esimerkit hakemistossa scenarios/.
Onko se ilmainen kaupalliseen käyttöön? Kyllä — AGPL-3.0:n alaisena, myös kaupallisissa ympäristöissä, kunhan noudatat AGPL:n copyleft-ehtoja (erityisesti: jos muokkaat Kshanaa ja tarjoat sitä verkon yli, sinun on tarjottava näille käyttäjille muokattu lähdekoodisi). Jos tämä ei sovi — esim. tarvitset Kshanan upotettuna suljettuun tuotteeseen tai ajat suljettua verkkopalvelua — Ashforde® OÜ tarjoaa kaupallisen lisenssin; katso LICENSING.md ja Tuki.
Vianmääritys
Vianmääritys#
cargo build epäonnistuu vanhalla työkaluketjulla. Kshana vaatii Rustin ≥ 1,88. Päivitä komennolla rustup update.
Python-laajennuksen rakentaminen epäonnistuu linkitykseen macOS:llä (Undefined symbols … _Py…). Python-laajennus ratkaisee symbolinsa latausaikana. maturin asettaa oikean linkkerilipun automaattisesti — käytä komentoa maturin develop --features python pelkän cargo build sijaan.
Python-rakennus valittaa, että tulkki on uudempi kuin PyO3 tuntee. Aseta PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 (abi3-wheel-paketit ovat eteenpäin yhteensopivia CPython-versioiden yli).
WebAssembly-rakennus ei löydä kohdetta. Asenna se kerran komennolla rustup target add wasm32-unknown-unknown ja sitten wasm-pack build --target web -- --features wasm.
Minne tulosteeni meni? Jokainen ajo kirjoittaa tiedostot <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html ja <scenario>.report.json syötteen .toml viereen sekä myös <scenario>.table.csv lajeille, jotka julkaisevat taulukon. Kaikki ne on tarkoituksella jätetty git-ignore-listalle.
Versiointi ja julkaisut
Versiointi ja julkaisut#
Kshana noudattaa semanttista versiointia. Ennen versiota 1.0 julkinen skenaario-/tulosskeema voi vielä muuttua; rikkovat muutokset mainitaan erikseen tiedostossa CHANGELOG.md. Jokainen tulos on toistettavissa kohteesta scenario + seed + engine version.
Jokainen vX.Y.Z-tagi julkaisee kaikki kanavat automaattisesti yhdessä järjestyksessä — koko testisarja ajetaan ensin merkityllä commitilla, mitään ei julkaista ennen kuin se menee läpi, ja sen jälkeen putki tarkistaa, että jokainen rekisteri todella tarjoaa uuden version (docs/RELEASING.md). Kanavat:
| Kanava | Asenna / hae | Sisältö |
|---|---|---|
| crates.io | cargo install kshana · kshana = "0.35" |
Rust-kirjasto + CLI |
| crates.io | cargo install kshana-mcp |
MCP-palvelin |
| PyPI (Python Package Index) | pip install kshana |
abi3-wheel-paketit (Linux/macOS/Windows) + sdist (lähdekoodijakelu) |
| npm | npm install kshana |
WebAssembly-moduuli + JS-kääre |
| ghcr.io | docker run -i ghcr.io/ashfordeou/kshana-mcp |
monialustainen OCI (Open Container Initiative) -kuva — työkaluketjua ei tarvita |
| npm | npx -y kshana-mcp@0.40.0 |
käynnistin: lataa julkaisubinäärin, varmentaa SHA256SUMS, ajaa sen |
| PyPI | uvx kshana-mcp==0.40.0 · pipx run kshana-mcp==0.40.0 |
sama käynnistin Pythonille |
| Homebrew · Scoop · winget | brew install ashfordeOU/tap/kshana-mcp · scoop install kshana-mcp · winget install AshfordeOU.KshanaMcp |
kshana-mcp-binääri, luotu kunkin julkaisun tiedostosta SHA256SUMS |
| virallinen MCP-rekisteri | MCP-asiakkaat löytävät automaattisesti | io.github.ashfordeOU/kshana-mcp (OCI-kuva, npm- ja PyPI-paketit) |
| JetBrains Marketplace | IDE → Lisäosat → hae ”Kshana” | IDE-lisäosa Kshana — PNT simulator |
| Zenodo | DOI | siteerattava arkisto jokaisesta julkaisusta |
| kshana.dev | avaa selaimessa | Kshana Studio, selaimessa toimiva WebAssembly-sovellus, rakennettuna uudelleen jokaisesta julkaisutagista (joten näkyvä versio on sama kuin ajettava versio) |
MCP-palvelimen crate-/kuva-/rekisteriversio seuraa moottoria (se sisältää kirjaston); JetBrains-lisäosa versioituu itsenäisesti (se kutsuu asennettua binääriä kshana).
Etenemissuunnitelma
Etenemissuunnitelma#
Katso vaiheistettu tiekartta tiedostosta ROADMAP.md, julkaistu historia tiedostosta CHANGELOG.md ja ominaisuuskohtainen tiekartta tiedostosta docs/CAPABILITY.md. Prioriteettijärjestys on: ensin kriittisen infrastruktuurin ajoitus- ja holdover-todisteet (telealan maskit, pidempi holdover ikääntymisen ja flicker-kohinan kanssa, mitatun kellodatan syöttö); toiseksi neutraali kvantti–klassinen-kauppatutkimusmenetelmä (tulokset merkitty MODELLED, kunnes kumppanin mitattu data nostaa ne); ja Kuun / kuunläheinen ja syvän avaruuden navigointi ylläpidetään, ei laajenneta kärkenä. ITRF-tarkka koordinaatistoredusointi on nyt toimitettu — täysi CIO-pohjainen IAU 2006/2000A GCRS↔ITRS-ketju (napaliike + kaarisekuntia pienempi nutaatio), validoitu bitti bitiltä SOFA/ERFA:a vasten ja riippumattomasti ristiintarkistettu ANISEa (puhdas Rust-SPICE) vasten ≤ 3,6 m GNSS-radalla. Lähiajan kohteisiin kuuluvat tiukasti kytketty kantoaaltovaihefuusio ja löyhästi/tiukasti kytketyn GNSS/INS-navigaattorin tuominen useampiin paketteihin; syvän avaruuden / Marsin radiometrinen navigointi -moottori valmistui versiossa v0.17.0 (simulaatiolla validoitu). Kvanttifysiikkakerros on P2-kohde: CAI-kiihtyvyysanturi simuloidaan nyt perusperiaatteista (Mach–Zehnder-vaihe, projektiokohina, kontrastin heikkeneminen, tärinäkytkentä), kun taas kello-/ajansiirtoanturit perustuvat yhä julkaistuihin Allan-/kohinabudjettikertoimiin. GMST-pohjainen TEME↔ECEF, IERS:n karkaussekuntiaikajärjestelmät (UTC/TAI/TT/UT1), SGP4/SDP4-radan propagointi (v0.7.0, validoitu AIAA 2006-6753 -vektoreita vasten) ja ajettava gnss-ins-fuusiopaketti on kaikki toimitettu, ja inertianopeus on tarjolla jatkokäyttöön. Aktiivinen stokastinen aikaharhautuksen ilmaisin (Neyman–Pearson / χ²₁-energiatesti Monte Carlo P_fa/P_md -arvoilla ja Turvallisuuden laatumittari 1−P_md), linkkibudjettipohjainen häirintämalli (J/S → efektiivinen C/N₀ → lukituksen menetys), usean satelliittitähdistön saatavuus, yksiakselinen (1-DOF) IMU-virhebudjetti, kaksi riippumatonta (kello + sijainti) Kalman-estimaattoria raportoituna yhdistettynä laatumittarina, todellinen satelliittitähdistön geometria TLE:istä, HTML-tuloskortti, geometriasta johdettu GNSS-saatavuus ja DOP Kepler-radoista eksentrisyydellä ja J2-ajautumalla, Monte Carlo -luottamuskaistat, kauppatutkimusten parametripyyhkäisyt, selaimessa toimiva WebAssembly-leikkikenttä sekä valinnaiset Python (PyO3) ja WebAssembly (wasm-bindgen) -sidokset on viety haaraan main.
Osallistuminen
Osallistuminen#
Katso CONTRIBUTING.md. Lyhyesti: testit läpäisevät (cargo test), kaksi vartiointiskriptiä läpäisevät, Conventional Commits, ja CHANGELOG.md-tiedoston [Unreleased]-merkintä jokaisesta käyttäjälle näkyvästä muutoksesta. Osallistumista ohjaa käytösohjeemme. Tietoturvaongelman raportoimiseksi katso tietoturvakäytäntö — älä avaa julkista ongelmailmoitusta haavoittuvuuksista.
Dokumentaatio: jokainen asiakirja ja kenelle se on tarkoitettu
Dokumentaatio#
| Asiakirja | Kenelle | Mitä siinä on |
|---|---|---|
| Käsitteiden perusteet | kaikille, aloita tästä | mitä Kshana tekee ja miksi, nollasta fysiikkaan |
| Kshana Studio | kaikille | aja moottoria selaimessasi (WebAssembly); rakennus- ja käyttöönottohuomautukset |
| Sanasto | kaikille | selkokieliset määritelmät jokaiselle termille |
| Skenaariotyypit | kaikille | jokainen laji, jonka moottori jakelee: mitä se tekee, sen kentät, esimerkkikomento, sen kirjanpitorivit ja kaavio, jonka moottori sille kirjoittaa |
| Kumppanidata | laboratoriot ja valmistajat, joilla on mitattua dataa | mitkä rivit, joiden taso on MODELLED, mitattu kello- tai IMU-tallenne voisi nostaa, muodot, miten lähetys tarkistetaan (kshana partner check), pisteytetään ja hyvitetään |
| Arkkitehtuuri | kehittäjille / tarkastajille | moduulikartta, moottorin putki, jakelu ja kaaviot |
| Validoinnin tila | tarkastajille / siteeraajille | mikä on validated vs. not modeled, todisteineen |
| Varmennusmatriisi | tarkastajille / siteeraajille | koneellisesti tarkistettu todistekirjanpito — jokainen ominaisuusrivi tilansa, moduulinsa, testinsä ja ulkoisen oraakkelinsa kanssa, luotu tiedostosta src/verification.rs |
| Mallinnuksen perustelu | tarkastajille | miksi jokaisella mallinnetulla rivillä ei ole ulkoista oraakkelia, ilmoitettuna rivi riviltä |
| Alkuperä | tarkastajille / siteeraajille | jokainen anturiparametri, malli ja aineisto jäljitettynä julkaistuun lähteeseen yhdessä siteerattavassa taulukossa |
| Toistettavuus ja alkuperä | tarkastajille / paketoijille | determinismin takeet, golden-lukitus, SBOM (software bill of materials), rakennuksen alkuperätieto |
| Wheel-alustatunnisteet | paketoijille | abi3-Python-wheel-matriisi — minkä alustatunnisteen pip install kshana ratkaisee |
| Asemointi | arvioijille | missä Kshana sijaitsee RTKLIBiin/gLABiin nähden (täydentävä), ja asennusta vaatimaton selainkerros |
| Kshana Pro | arvioijille / ohjelmapäälliköille | mitä suljettu Pro-kerros lisää samaan moottoriin: suunnitteluoptimoija, epävarmuus ja herkkyys, tehtäväasiakirja, kampanjan seuranta, spektrin rinnakkaiselo, paikan päällä toimiva työpalvelu, vaatimusten jäljitettävyys; mitä kukin tuottaa ja mitä se ei tee |
| Tekninen raportti · JOSS-artikkeli | tarkastajille / siteeraajille / arvioijille | koko laajennettu tutkimusartikkeli — arkkitehtuuri, toimialuekohtaiset mallit, validointi, tapaustutkimukset ja rajoitukset — sekä tiivis JOSS (Journal of Open Source Software) -esitys |
| SGP4-validointi | tarkastajille / siteeraajille | vastaavuus AIAA 2006-6753 -viitteeseen (666 tilaa, ~4 mm) ja suora vertailu riippumattomaan crate-pakettiin sgp4 (vastaavat alle mikrometrin / 4,12 mm tarkkuudella) |
| Voimamallin validointi | tarkastajille / siteeraajille | täyden voiman moottori (src/precise_od.rs) sovitettuna virastojen efemerideihin — menetelmä ja validoidut residuaalit |
| Todellisten TLE:iden opas | käyttäjille | skenaarioiden ajaminen todellisilla Celestrak- / Space-Track-satelliittitähdistöjen TLE:illä (mukana tulevan synteettisen Walker-joukon sijaan) |
| Eheyden laatumittari | arvioijille | mitä integrity- / security-luvut tarkoittavat — ja mitä ne eivät ole ilmailun HPL/VPL:ään verrattuna |
| ARAIM-viite | tarkastajille / integroijille | avoin MHSS ARAIM -suojaustasototeutus — nimellinen harhaprojektio b_k, σ_URA vs. σ_URE ja vikatilojen priorit |
| Kvanttimallit · lisätiedot | tarkastajille | kylmäatomi-interferometrin fysiikkakerros, ja missä kertoimet haetaan yhä taulukosta |
| Compliance | arvioijille | DO-229E / DO-316 -algoritmien laajuus, ja mikä ei ole vaatimustenmukaisuusväite |
| Merenkulun luottamus | merenkulkijoille / integroijille | aluksen NMEA:n GNSS-luottamuspistemäärä asteikolla 0–100, sen monitorit ja rajat (ohjeellinen, ei tyyppihyväksytty navigointilaite) |
| NMEA-harjoitusvirrat | merenkulun kouluttajille | synteettinen sillan NMEA käsikirjoitetulla häirinnällä ja harhautuksella sekä ohjaajan loki; vain tekstinä, ei koskaan todelliseen navigointiin |
| Häiriökartta | analyytikoille / merenkulkijoille | missä ilma-alukset ja laivat ilmoittivat heikentyneestä navigointidatasta ja kuinka suuren osan reitistä se koskee |
| Todistepaketit | operaattoreille / vakuuttajille | allekirjoitetut tekniset tietueet luottamustapahtumasta ja miten sellainen varmennetaan |
| Luottamustelemetria | operatiivisille / tietoturvatiimeille | luottamusvirta Prometheus-mittareina, SIEM-tapahtumina ja OpenTelemetrynä, Grafana-kojelaudan kanssa |
| Meriliikenteen integraatiot | veneenomistajille / integroijille | Signal K -lisäosa, OpenCPN:n porttitila ja viiteversio |
| Test bench | vastaanottimien valmistajille | viedyn skenaarion toisto laboratoriosimulaattorin kautta ja vastaanottimen lokin pisteytys |
| Compliance-kartoitus | arvioijille | julkiset kestävyysviitekehykset kartoitettuna Kshanan tulosteisiin, lähteineen ja puutteineen; kshana compliance-report |
| Muistikirjat | käyttäjille | ajettavat opastukset renderöityine teksteineen |
| Standardit ja yhteentoimivuus | integroijille | GNSS-, lentodynamiikka- ja virastojen vaihtoformaatit, joita Kshana lukee ja kirjoittaa (RINEX, SP3, CCSDS OEM/OMM/TDM/Space-Packet, …) |
| LEO PNT -fuusio | käyttäjille / arvioijille | yhdistetty MEO + LEO -paikannus, -navigointi ja -ajanmääritys: Doppler, yhteinen pseudoetäisyys, PPP-konvergenssi, 5G NTN, napa-alueen kattavuus ja LEO-ajansiirto mille tahansa satelliittitähdistölle; valinnaiset esiasetukset ja niiden julkiset lähteet |
| Kampanjat | käyttäjille / arvioijille | skenaarioiden kokoaminen: ketjutetut tehtäväaikajanat, parametripyyhkäisyt, Monte Carlo -joukot ja jaetun olosuhteen ajot, sekä koostamisidentiteetit, jotka testit lukitsevat |
| Skenaariokatalogi | käyttäjille / integroijille | jokainen jaettava laji pakollisine ja valinnaisine TOML-kenttineen — luotu funktiosta api::list_scenario_kinds() |
| Tulosskeema | integroijille | tulos-JSONin jokainen kenttä yksiköineen ja lähdeviitteineen |
| Python API | Python-käyttäjille | PyO3-sidoksen pinta — moottorin kutsuminen, skenaario- ja tulostyypit sekä esimerkit |
| Väitteet vs. todellisuus | tarkastajille | ylilupausten sulkemiskirjanpito + CI-vartija (tests/no_overclaims.rs), joka pitää ne ratkaistuina |
| Etenemissuunnitelma | kaikille | vaiheistettu tiekartta — mitä on toimitettu ja mitä tulee seuraavaksi |
| MCP-palvelin · JetBrains-lisäosa | agenteille / IDE-käyttäjille | aja Kshanaa tekoälyavustajasta tai JetBrains-IDE:stä |
| Agenttiopas · Pinnat | agenteille / integroijille | mikä työkalu vastaa mihinkin kysymykseen, mitä kunkin vastauksen mukana säilytetään; missä kukin ominaisuus on tavoitettavissa (CLI, Rust, Python, WASM, MCP, lisäosa, JetBrains, muistikirjat) ja miksi solu on N/A |
| Muutosloki | kaikille | julkaistu historia (Keep a Changelog + SemVer, semanttinen versiointi) |
| Osallistuminen | kontribuuttoreille | rakennus, vartijat, testi- ja siteerauskäytäntö, DCO (Developer Certificate of Origin) |
| Hallintomalli | kontribuuttoreille / yhteisölle | miten Kshanaa hallinnoidaan — kuka päättää, miten, ja avoimen ja suljetun raja |
| Käytösohjeet | yhteisölle | odotettu käytös (Contributor Covenant) |
| Tietoturvakäytäntö | ilmoittajille | miten haavoittuvuus ilmoitetaan; kaksoiskäyttöä koskeva huomautus |
Keskeiset lähteet
Keskeiset lähteet#
Validointioraakkelit ja standardit — ulkoiset auktoriteetit, joihin Kshanan tarkistukset on ankkuroitu:
- Vallado, Crawford, Hujsak & Kelso — Revisiting Spacetrack Report #3 (AIAA 2006-6753; testidata): SGP4/SDP4-varmennusjoukko, johon Kshana vastaa 4,12 mm:n tarkkuudella, sekä esimerkkilaskut, joita TEME→ITRF-ketju vasten tarkistetaan.
- IAU SOFA / ERFA — aika- ja koordinaatistorutiinit, joita vasten IAU 2000A -nutaatio ja CIO-pohjainen GCRS↔ITRS-redusointi on validoitu bitti bitiltä.
- Petit & Luzum (toim.) — IERS Conventions (2010), IERS TN (Technical Note) 36 (Maan orientaatio, napaliike ja koordinaatistostandardit).
- Riley — Handbook of Frequency Stability Analysis, NIST SP 1065 (Allanin poikkeaman suhteet ja NBS14-viitesarja; NBS = entinen Yhdysvaltain National Bureau of Standards).
- Pedregosa et al. — scikit-learn: Machine Learning in Python, JMLR 12 (2011): ROC/AUC-, sekaannusmatriisi- ja tarkkuus/saanto/F1-viitetoteutukset, joihin RF-häiriöiden arviointitestialusta täsmää tarkasti (
tests/eval_metrics_reference.rs). - Virtanen et al. — SciPy 1,0, Nature Methods 17 (2020):
optimize.nnls,stats.chi2jalinalg.expm— viiterutiinit, joita vasten kvanttikauppatutkimuksen mitattu ADEV NNLS -sovitus, χ²-johdonmukaisuuskaistat ja van-Loanin kellon prosessikohinakovarianssi on validoitu (tests/scipy_reference.rs). - Knowles, Kanhere, Neamati & Gao — gnss_lib_py, SoftwareX 27 (2024): käytetään sekä avoimena aiempana tekniikkana (katso Comparison & open prior art alla) että riippumattomana DOP-oraakkelina, johon GDOP/PDOP/HDOP/VDOP/TDOP-laskenta täsmää 1e-6 tarkkuudella (
tests/dop_reference.rs). - Montenbruck & Gill — Satellite Orbits: Models, Methods and Applications (Springer): voimamallit virastojen tarkkoihin efemerideihin tehdyn voimamallisovituksen takana.
- 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-perheet, jotka CR3BP-differentiaalikorjain toistaa).
Laitteiden ja menetelmien fysiikka — anturimallien takana olevat lähteet:
- Origlia, Schiller, Bongs et al. — arXiv:1503,08457 (strontiumoptinen hilakello, avaruuteen suuntautuva tavoite).
- Oelker et al., Nature Photonics (2019) — doi:10.1038/s41566-019-0493-4 (laboratorion Sr-kello, 4,8×10⁻¹⁷).
- Templier et al., Science Advances (2022) — arXiv:2209,13209 (hybridikvanttikiihtyvyysanturikolmikko).
- Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation — IEEE AESS (Aerospace and Electronic Systems Society) -tutoriaali (University College London Discovery -repositorio) (dead reckoning -virheen kasvu).
- 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) (optinen kaksisuuntainen aika-taajuussiirto; optisen satelliittienvälisen linkin malli mallintaa epäresiprookkisuusbudjettinsa näiden mukaan).
- Betz — Binary Offset Carrier Modulations for Radionavigation, NAVIGATION 48(4) (2001), doi:10.1002/j.2161-4296.2001.tb00247.x (BOC-modulaatio ja spektrierotusteoria, jotka ovat kohteen
src/navsignal.rstaustalla). - Kaplan & Hegarty (toim.) — Understanding GPS/GNSS: Principles and Applications (3. painos, Artech House, 2017): häirinnänvastainen efektiivinen C/N₀-yhtälö ja early–late-DLL:n koodinseurannan terminen kohinavärinä, joita navigointisignaali- ja häirintämallit käyttävät.
Vertailu ja avoin aiempi tekniikka — työkalut ja katsaukset, joihin Kshana asemoidaan:
- Humphreys et al. — TEXBAT (Texas Spoofing Test Battery; ION — Institute of Navigation — GNSS 2012): harhautuksen testipatteriston parametrit, joita vasten monikerroksinen ilmaisin on karakterisoitu.
- González et al. — NaveGo (2017): avoimet, validoidut inertianavigoinnin virheprofiilit, joita käytetään klassisena lähtötasona.
- Iiyama, Casadesús Vila & Gao — LuPNT (ION GNSS+ 2023, Stanford NavLab): avoin Kuun PNT -simulaattori.
- Knowles, Kanhere, Neamati & Gao — gnss_lib_py, SoftwareX 27 (2024), doi:10.1016/j.softx.2024.101811: avoin GNSS-data-analyysi.
- 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: GRAILin reduced-dynamic OD, empiirisen kiihtyvyyden lattia, jonka LRO-sovitus toistaa.