Maschinelle Übersetzung, nicht von einem Muttersprachler geprüft. Englisch ist die maßgebliche Fassung.

Erste SchritteAuf GitHub bearbeitenQuelle: README.md

Kshana: die Marke, ein Kompass-Fadenkreuz, das den genauen Augenblick markiert, neben dem Wortzeichen kshanaKshana: die Marke, ein Kompass-Fadenkreuz, das den genauen Augenblick markiert, neben dem Wortzeichen kshana

Kshana · क्षण · der präzise Augenblick
Ein quelloffener Simulator für die Resilienz von PNT (Positionierung, Navigation und Zeitgebung).

Status der kontinuierlichen Integration auf main Zeilenabdeckung von nahezu 95 % von src/, gemessen in docs/COVERAGE.md und in der kontinuierlichen Integration bei 85 % als Schwelle erzwungen 176 von 401 Fähigkeiten VALIDATED gegen eine unabhängige externe Referenz, aus der Verifikationsmatrix Status des Qualitätstors von SonarQube Cloud Version v0.40.0 Lizenz: AGPL-3.0-only
DOI 10.5281/zenodo.20528627, der Zenodo-Konzeptdatensatz jeder Veröffentlichung Eine kommerzielle Lizenz ist von Ashforde® OÜ erhältlich, siehe Editionen kshana auf crates.io, die aktuell veröffentlichte Version kshana auf PyPI, die aktuell veröffentlichte Version kshana auf npm, die aktuell veröffentlichte Version

Kshana Studio öffnen · Installieren · Fähigkeiten · Nachweise · Forschung · Dokumentation · Zitieren

Die Minute proben, in der GNSS ausfällt. Die Missionskonsole von Kshana, gezeichnet aus einem echten Lauf der Engine v0.40.0: die verkettete Kampagne campaign-jam-spoof-holdover-integrity (Seed 20260928, 6 Phasen, 18 Mitgliedsläufe über T+01:16:10) und die 102 Satelliten von GPS, Galileo, BeiDou und GLONASS aus constellation-multi-gnss-coverage, jeweils auf der kreisförmigen Zweikörperbahn gezeichnet, die aus der Bodenspur der Engine gewonnen wurde, Radien für die Darstellung gestaucht. Der Uhren-Zeitfehler erreicht 62,7 ns gegenüber einer Schutzgrenze von 50 ns, die Trägerleistungsdichte fällt auf -12.2 dB-Hz gegenüber einer Untergrenze von 25 dB-Hz, und das vertikale Schutzniveau erreicht 135,4 m gegenüber einer Alarmgrenze von 50 m.Die Minute proben, in der GNSS ausfällt. Die Missionskonsole von Kshana, gezeichnet aus einem echten Lauf der Engine v0.40.0: die verkettete Kampagne campaign-jam-spoof-holdover-integrity (Seed 20260928, 6 Phasen, 18 Mitgliedsläufe über T+01:16:10) und die 102 Satelliten von GPS, Galileo, BeiDou und GLONASS aus constellation-multi-gnss-coverage, jeweils auf der kreisförmigen Zweikörperbahn gezeichnet, die aus der Bodenspur der Engine gewonnen wurde, Radien für die Darstellung gestaucht. Der Uhren-Zeitfehler erreicht 62,7 ns gegenüber einer Schutzgrenze von 50 ns, die Trägerleistungsdichte fällt auf -12.2 dB-Hz gegenüber einer Untergrenze von 25 dB-Hz, und das vertikale Schutzniveau erreicht 135,4 m gegenüber einer Alarmgrenze von 50 m.
Inhalt

Proben Sie die Minute, in der GNSS ausfällt#

Kshana spielt Jamming, Spoofing und Uhren-Holdover nach, wenn GNSS-Signale (Global Navigation Satellite System) ausfallen, und sagt Ihnen, wie lange ein System Zeit und Position innerhalb seines Budgets hält und welche Uhr oder welcher Sensor die größte Marge bringt. Es ist eine Rust-Engine. Sie läuft in einem Terminal, einem Notebook, einer IDE (integrierte Entwicklungsumgebung), einem KI-Assistenten (künstliche Intelligenz) oder in Ihrem Browser.

Jeder Lauf ist aus Szenario, Seed und Engine-Version Bit für Bit reproduzierbar. Jede Fähigkeit trägt in einem maschinell geprüften Register eine von drei Kennzeichnungen: VALIDATED (eine unabhängige externe Referenz stimmt überein), MODELLED (in sich konsistent, und das wird offen gesagt) oder PARTNER (ein Hardwarepartner verantwortet sie).

Status: v0.40.0. Ein validiertes, reproduzierbares Simulationsfundament für PNT-Resilienz. Zeitgebung und Holdover kommen zuerst, weil dieser Bereich am besten validiert ist. Kshana ist ein Studien- und Abwägungsinstrument: keine Hardware zur Erzeugung von Hochfrequenzsignalen (HF) (es steuert keinen Funk und sendet nichts; seine Ausgabe auf Signalebene sind Basisband-IQ-Abtastdateien für Software-Empfänger), kein Hardware-Empfänger und kein zertifizierter GNSS-Empfänger (sein Software-Empfänger ist ein Analysewerkzeug) und kein Flugprodukt. Neu in diesem Feld? Beginnen Sie mit der allgemeinverständlichen Einführung und dem Glossar.

Was neu ist in 0,40#

0,40 fügt ein Fehlerbudget auf Missionsebene hinzu, kennzeichnet jede Zahl und Tabelle mit ihrer Evidenzstufe, liest gemessene Uhrenlogs, prüft Einreichungen von Datenpartnern, schätzt, wo sich ein Störsender befinden kann, und spricht siebzehn Sprachen neben Englisch. Das Register hat nun 401 Zeilen: 176 VALIDATED, 221 MODELLED, 4 PARTNER. Keine Zeile wurde zu VALIDATED befördert, und jede Verfehlung unten ist durch einen Test festgeschrieben.

  • Missionsstrang. Die Art mission-thread verkettet Phasen vom Start bis zum Wiedereintritt (launch-ascent, leo-rendezvous, tli-and-cruise, entry und vier Mondarten) mit genannten Übergaberegeln, einer Marge gegenüber genannten Anforderungen und dem schwächsten Glied; ein durchgängiges Beispiel im Stil von Artemis über 11 Phasen (Erd- und Mondsegmente), insgesamt 92 Szenarioarten. Jede Zahl ist MODELLED. Die cislunare Fortschreibung gegen die öffentliche Trajektorie von Artemis I verfehlt ihren vorab festgelegten Zielwert (45,3 km und 0,25 m/s gegenüber 5 km und 0,05 m/s; die Ursache sind kleine Manöver, die das Modell nicht enthält), und der Mondpropagator gegen die CAPSTONE-Umlaufbahn verfehlt ihn (136,8 km gegenüber 25 km am Ende eines Umlaufs); der Vergleich mit LRO ist erreicht. Die Zeilen bleiben MODELLED (Missionsstrang, Mondsegment). Im Studio wird der Strang unter /studio/mission-thread/ gelesen.
  • Nachweiskennzeichnungen. Jede Zahl und Tabelle, die ein Lauf schreibt, trägt die Stufe und die Kennungen der Registerzeilen, auf denen sie beruht, aus der Matrix gelesen.
  • Gemessene Uhren. Acht Uhrenlog-Formate werden gelesen (docs/CLOCK-LOG-FORMATS.md), und eine angepasste Reihe kann den holdover antreiben. Gegen vorab festgelegte Zielwerte verfehlt die Anpassung F1(a) bei fünf von sechs Aufzeichnungen und F2 bei einer; beide bleiben MODELLED (Changelog).
  • Datenpartner. kshana partner check prüft das Format einer Einreichung und bewertet nichts (docs/PARTNER-DATA.md).
  • Senderregion. kshana interference-map locate gibt aus ADS-B- oder AIS-Meldungen eine Region und eine Ellipse an, nie einen bloßen Punkt. Einmal mit den Senderstandorten des Jammertests 2025 verglichen, ist das Ergebnis für beide Quellen NOT ASSESSABLE (zu wenige geplante Sitzungen in den offenen Daten), sodass die Zeile MODELLED bleibt (Störungskarte).
  • Benchmark. Die Neukampagne 0,40 erreicht A3, D3 (beide EXPLORATORY), R3 und R4; A2, D1 und R1 bleiben NOT MET (Bench).
  • Sprachen. nl, pl, pt-BR, pt-PT, fi, sv, da, nb, cs, uk, ru, de, fr, es, et, ja und zh-Hans, als maschinelle Übersetzungen, die kein Muttersprachler geprüft hat; Englisch ist die Referenz, und Läufe in anderen Sprachen dauern etwa doppelt so lange (docs/i18n.md).

Neu in 0,39#

0,39 fügt keine Funktion hinzu und ändert kein Ergebnis; die Ausgabe der Engine ist die Ausgabe von 0,38. Es behebt eine Sache auf der Kommandozeile, aktualisiert Abhängigkeiten der Werkzeuge für die Kreuzvalidierung und nennt die Urteile des Benchmarks vollständig.

  • Kommandozeile. kshana kinds | head (jede geschlossene Standardausgabe) bricht nicht mehr mit einer Panik ab: Das Programm beendet sich leise mit Status 141, wie andere Werkzeuge bei einer geschlossenen Pipe. Andere Schreibfehler melden sich weiterhin selbst.
  • Dependencies. memmap2 0.9.11 in den beiden ANISE-Kreuzprüfungs-Sperrdateien und pillow 13.0.0 und certifi 2026.10.19 in den Versionsfestlegungen der Umgebung für die unabhängige Referenz, alles unter xval/: Nichts, was ausgeliefert wird, hat sich geändert.
  • kshana-bench, alle Urteile. Gegen die vorregistrierten Zielwerte sind drei NOT MET, jeder durch einen Test festgehalten: A2 (agc_k_sigma AUC 0,766 gegenüber mindestens 0,80), D1 (größte Lücke 0,0301) und Aufgabe (b) R1 (übernommen, nicht erneut ausgeführt). Kein Zielwert wurde gelockert (Bench).

Neu in 0,38#

0,38 macht den neutralen Schiedsrichter messbar: Es bewertet Empfängerprotokolle gegen einen veröffentlichten Testplan, liest mehr Empfänger und Sensoren, testet Zeitgebungssysteme und liefert einen Benchmark und ein Störungsobservatorium. Es bleibt beratend: Nichts davon ist zertifiziert, kein Ergebnis ist eine Typzulassung, und nichts sendet. Jede Zeile nennt, was das Register dafür enthält (wie eine Kennzeichnung erworben wird); ein Status nennt nur, was geprüft wurde, und die Registerzeile und die verlinkte Seite sagen, was nicht geprüft wurde.

Neu in 0,38 Was es tut und warum Registerstatus Gelesen
Jammertest-Bewertung kshana jammertest import liest den veröffentlichten NPRA-Testkatalog und Sendeplan als geplante Referenzwahrheit; jammertest score bewertet ein Empfängerprotokoll je Test (Erkennungslatenz, verpasste Alarme, Fehlalarme, Zeit bis zur Erholung), als signiertes Nachweispaket, wenn Sie einen Schlüssel angeben MODELLED: eine Registerzeile. Die Zielwerte wurden vor jedem bewerteten Lauf vorregistriert; bei den Daten von JammerTest 2024 scheiterte die Mindestdatenregel in beiden Läufen (4 und 7 bewertbare Fenster gegenüber 10 verlangten), sodass kein Zielwert beurteilbar ist und nichts beansprucht wird Jammertest
Die eigenen Flags des Empfängers UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG und NovAtel RXSTATUS werden in einen self_report je Epoche gelesen und mit den Alarmen von Kshana verglichen (beide, nur Empfänger, nur Kshana, keiner); ein Septentrio-SBF-Leser und eine schreibgeschützte Eingabe --serial MODELLED; die Übereinstimmung zwischen dem Detektor eines Empfängers und dem von Kshana ist keine Validierung Empfängervertrauen
Mehr Empfänger und Sensoren RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0 (aus den BSD-lizenzierten pyrtcm-Tabellen, nicht aus dem RTCM-Text), GNSS-SDR-Monitorströme, ein IMU-Protokoll als zweiter Sensor, ein ROS-2-Paket, eine Brücke gnss_lib_py und imu-fit für hybride Sensorparameter MODELLED: sechs Registerzeilen; nur selbst geschriebene Testdaten, es wurde keine Aufzeichnung von einem echten Empfänger, einer IMU, einem GNSS-SDR-Lauf oder einem ROS-Graphen gelesen Maschineneingaben
Zeitgebungs- und Holdover-Tests Der Typ holdover-test bewertet einen Holdover-Test (GNSS vom Betreiber entfernt, Holdover, Erholung) aus einer gemessenen Zeitfehleraufzeichnung gegen ITU-T-Masken, „gegen die Maske gemessen“; Leser für linuxptp- und chrony-Protokolle; die Hardwarestufen und das Feld lab-attestation MODELLED: zwei Registerzeilen; die Zeiten sind die Angabe des Betreibers, nicht verifiziert Zeitgebungs-HIL, Hardwaresicherheit
Standards-Pakete, LunaNet AFS, Laborkreislauf bewertete Pakete für DHS RPCF, IMO MSC.1/Circ.1575 und ICAO Doc 9849 Appendix F gegen vor dem Lauf festgelegte Zielwerte, „liefert Belege für“; eine Querverbindung zu NIST IR 8323r1; ein Codegenerator und Prüfer für LunaNet AFS; ein signiertes Paket, das Szenario, Testbedingungen, Empfängerprotokoll und Bewertung eines Laborlaufs verknüpft MODELLED für die Pakete und den Kreislauf; die AFS-Codeprüfung ist VALIDATED gegen ihre gedruckten Prüfspalten (siehe die Registerzeilen) Standards, LunaNet AFS
kshana-bench und das Observatorium feste Aufgaben, Aufteilungen und Metriken für Störungserkennung, IQ-Erkennung, Holdover-Vorhersage und die Optimismuslücke, mit einem versiegelten zurückgehaltenen Datensatz und einer statischen Rangliste; ein reproduzierbares tägliches Störungsprodukt mit 24 h Verzögerung, groben Zellen und ohne Zuschreibung keine eigene Registerzeile: Es bewertet Einreichungen, und seine Basislinien sind in den Ergebnisdateien als MODELLED gekennzeichnet; gegen die vorregistrierten Zielwerte sind der Bewerter, C1 bis C3 und D2 erreicht, und drei Zielwerte sind NOT MET (durch Tests festgehalten): A2 (agc_k_sigma AUC 0,766 gegenüber mindestens 0,80 auf dem Testsplit), D1 (größte Lücke 0,0301) und Aufgabe (b) R1 (übernommen, nicht erneut ausgeführt); siehe xval/bench/RESULTS-v2.md Bench, Observatorium
Exporter Vertrauenstelemetrie als Home-Assistant-MQTT-Discovery- und Zustandsnachrichten (nur Veröffentlichung, keine Zugangsdaten) neben Prometheus, CEF, LEEF und OTLP MODELLED: eine Registerzeile Vertrauens-Telemetrie
Optische Verbindungsmarge über die Zeit Der Typ optical-atmosphere kann eine mit Seed erzeugte Realisierung des Wetters eines Standorts als Reihe der Verbindungsmarge schreiben MODELLED: eine Registerzeile; eine Ziehung aus dem Modell, nicht das Klima Optische Atmosphäre

Die Höhepunkte von 0,37: Änderungsprotokoll. Die vollständige Liste von 0,38 steht im Änderungsprotokoll.

0,38 im Detail#

Jede Fähigkeit aus der Tabelle oben, in wenigen Zeilen: was sie tut, ein Befehl, um sie auszuführen, ein Bild aus einem echten Lauf der Engine und was das Register dafür enthält. Die Bilder werden von tools/gen_figures_038.py nach docs/figures/0.38/ geschrieben (nie von Hand gezeichnet): python3 tools/gen_figures_038.py schreibt sie aus einer gebauten Engine neu, und --check schlägt fehl, wenn eines veraltet ist oder seine Bildunterschrift hier abweicht. Wo eine Eingabe ein Protokoll ist, ist es ein erfundenes, das das Skript schreibt, weil die echten Protokolle Dritter nie mitgeliefert werden, und die Bildunterschrift sagt das. Alles Folgende ist beratend: nicht zertifiziert, keine Typzulassung, und nichts sendet. Ein Status nennt, was geprüft wurde, und nichts weiter; wie eine Kennzeichnung erworben wird.

Jammertest-Bewertung#

kshana jammertest import macht aus dem veröffentlichten NPRA-Testkatalog und Sendeplan eine geplante Referenzwahrheit, und kshana jammertest score bewertet ein Empfängerprotokoll dagegen: für jeden geplanten Test, ob er erkannt wurde, wie spät und wie lange der Empfänger zur Erholung brauchte, dazu Fehlalarme außerhalb jedes Slots. Der Katalog wird abgerufen, nie mitgeliefert.

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
Bewertung eines synthetischen Empfängerprotokolls gegen einen Zeitplan mit drei Tests, aus einem echten Lauf der Engine v0.40.0 (`kshana jammertest score`). Das Protokoll ist erfunden: 1800 s NMEA mit einem Abfall von 20 dB C/N0 über zwei Intervalle. Der Zeitplan listet drei Slots; im mittleren Slot gibt es im Protokoll keinen Jammer. Die Bewertung markiert 2 von 3 Tests als erkannt (mediane Latenz 0 s) und 1 als verpasst, mit 0 Fehlalarm-Läufen über 0,25 h sauberer Zeit. Nichts hiervon sagt etwas über einen echten Empfänger aus. Beratende Software, keine typzugelassene Navigationsausrüstung (IEC 61108, IEC 61162): Der Betreiber bleibt für die Navigation des Schiffes verantwortlich.Bewertung eines synthetischen Empfängerprotokolls gegen einen Zeitplan mit drei Tests, aus einem echten Lauf der Engine v0.40.0 (`kshana jammertest score`). Das Protokoll ist erfunden: 1800 s NMEA mit einem Abfall von 20 dB C/N0 über zwei Intervalle. Der Zeitplan listet drei Slots; im mittleren Slot gibt es im Protokoll keinen Jammer. Die Bewertung markiert 2 von 3 Tests als erkannt (mediane Latenz 0 s) und 1 als verpasst, mit 0 Fehlalarm-Läufen über 0,25 h sauberer Zeit. Nichts hiervon sagt etwas über einen echten Empfänger aus. Beratende Software, keine typzugelassene Navigationsausrüstung (IEC 61108, IEC 61162): Der Betreiber bleibt für die Navigation des Schiffes verantwortlich.

Registerstatus: MODELLED. Die Zielwerte wurden vor jedem bewerteten Lauf festgelegt; bei den Daten von JammerTest 2024 scheiterte die Mindestdatenregel in beiden Läufen, sodass kein Zielwert beurteilbar ist und nichts beansprucht wird. Jammertest.

Die eigenen Flags des Empfängers#

UBX-NAV-STATUS spoofDetState, UBX-SEC-SIG und NovAtel RXSTATUS werden in einen self_report je Epoche gelesen und neben die Alarme von Kshana gestellt: beide, nur Empfänger, nur Kshana oder keiner. Ein Septentrio-SBF-Leser und eine schreibgeschützte Eingabe --serial speisen denselben Vergleich. Keine der beiden Seiten ist Referenzwahrheit.

kshana receiver-trust session.toml     # [log] format = "ubx", path = "receiver.ubx"
Das eigene Spoofing-Flag des Empfängers gegen die Alarme von Kshana, aus einem echten Lauf der Engine v0.40.0 auf einem erfundenen UBX-Protokoll (200 Epochen bei 1 Hz). C/N0 fällt bei 80 bis 90 s und 120 bis 130 s um 20 dB; der Empfänger markiert 120 bis 130 s und 160 bis 165 s. Von 140 nach der Kalibrierung verglichenen Epochen markierten 11 beide, 6 nur der Empfänger, 11 nur Kshana und 112 keiner. Keine der beiden Seiten ist Referenzwahrheit, und Übereinstimmung ist keine Validierung. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.Das eigene Spoofing-Flag des Empfängers gegen die Alarme von Kshana, aus einem echten Lauf der Engine v0.40.0 auf einem erfundenen UBX-Protokoll (200 Epochen bei 1 Hz). C/N0 fällt bei 80 bis 90 s und 120 bis 130 s um 20 dB; der Empfänger markiert 120 bis 130 s und 160 bis 165 s. Von 140 nach der Kalibrierung verglichenen Epochen markierten 11 beide, 6 nur der Empfänger, 11 nur Kshana und 112 keiner. Keine der beiden Seiten ist Referenzwahrheit, und Übereinstimmung ist keine Validierung. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.

Registerstatus: MODELLED. Die Übereinstimmung zwischen dem Detektor eines Empfängers und dem von Kshana ist keine Validierung. Empfängervertrauen.

Mehr Empfänger und Sensoren#

RTKLIB .pos, NovAtel OEM7, RTCM 3 MSM4/MSM7 C/N0, GNSS-SDR-Monitorströme, ein IMU-Protokoll als zweiter Sensor, ein ROS-2-Paket und eine Brücke gnss_lib_py münden alle in dieselbe Zeitleiste des Empfängervertrauens. imu-fit liest die Sensorparameter, die die Hybrid- und Fusionsszenarien brauchen, aus einem Protokoll einer ruhenden IMU, sodass ein Szenario mit dem Sensor ausgeführt werden kann, den Sie tatsächlich haben.

kshana imu-fit still.csv --format csv --axis x --expected-mean 0 --id bench-imu
Was `kshana imu-fit` aus einem Log einer ruhenden IMU abliest, aus einem echten Lauf der Engine v0.40.0 auf einem erfundenen Log (20.000 Samples bei 100 Hz, 200 s): der Geschwindigkeits-Random-Walk des Beschleunigungsmessers q_va = 4.02e-06, der Winkel-Random-Walk des Gyroskops q_arw = 9e-08, die Bias-Instabilität 0,00296 und die frühen Allan-Steigungen (-0.51 und -0.49; etwa -0.5, wo weißes Rauschen dominiert). Die Tabelle daneben ist das TOML, das der Befehl ausgibt. Der Schätzer wird nur an synthetischen Logs geprüft. Beratend: Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst.Was `kshana imu-fit` aus einem Log einer ruhenden IMU abliest, aus einem echten Lauf der Engine v0.40.0 auf einem erfundenen Log (20.000 Samples bei 100 Hz, 200 s): der Geschwindigkeits-Random-Walk des Beschleunigungsmessers q_va = 4.02e-06, der Winkel-Random-Walk des Gyroskops q_arw = 9e-08, die Bias-Instabilität 0,00296 und die frühen Allan-Steigungen (-0.51 und -0.49; etwa -0.5, wo weißes Rauschen dominiert). Die Tabelle daneben ist das TOML, das der Befehl ausgibt. Der Schätzer wird nur an synthetischen Logs geprüft. Beratend: Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst.

Registerstatus: MODELLED. Nur selbst geschriebene Testdaten; es wurde keine Aufzeichnung von einem echten Empfänger, einer IMU, einem GNSS-SDR-Lauf oder einem ROS-Graphen gelesen. Maschinelle Eingaben.

Zeitgebungs- und Holdover-Tests#

Der Typ holdover-test bewertet einen Holdover-Test (GNSS vom Betreiber entfernt, Holdover, Erholung) aus einer gemessenen Zeitfehleraufzeichnung gegen ITU-T-Masken und sagt das mit diesen Worten: gegen die Maske gemessen. Leser für linuxptp- und chrony-Protokolle speisen ihn; die Hardwarestufen und das Feld lab-attestation sagen, wer was angegeben hat.

kshana scenarios/holdover-test-example.toml
Ein Holdover-Test, bewertet aus einer Zeitfehleraufzeichnung, aus einem echten Lauf der Engine v0.40.0 auf scenarios/holdover-test-example.toml (601 Proben alle 5 s). GNSS wird vom Betreiber bei 600 s entfernt und bei 2400 s wiederhergestellt; der Zeitfehler driftet am Ende des Holdovers auf 299 ns, überschreitet das Budget von 100 ns nach 675 s und kehrt 70 s nach der Wiederherstellung in das Band von 100 ns zurück. Urteile: Basismasken PASS, Holdover-Masken FAIL, Holdover-Hüllkurve FAIL, Erholung RECOVERED. Gegen die Maske gemessen, keine Zulassung. Die Zeiten sind die Angabe des Betreibers, von Kshana nicht verifiziert. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.Ein Holdover-Test, bewertet aus einer Zeitfehleraufzeichnung, aus einem echten Lauf der Engine v0.40.0 auf scenarios/holdover-test-example.toml (601 Proben alle 5 s). GNSS wird vom Betreiber bei 600 s entfernt und bei 2400 s wiederhergestellt; der Zeitfehler driftet am Ende des Holdovers auf 299 ns, überschreitet das Budget von 100 ns nach 675 s und kehrt 70 s nach der Wiederherstellung in das Band von 100 ns zurück. Urteile: Basismasken PASS, Holdover-Masken FAIL, Holdover-Hüllkurve FAIL, Erholung RECOVERED. Gegen die Maske gemessen, keine Zulassung. Die Zeiten sind die Angabe des Betreibers, von Kshana nicht verifiziert. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.

Registerstatus: MODELLED. Die Zeiten, zu denen GNSS entfernt und wiederhergestellt wurde, sind die Angabe des Betreibers, nicht verifiziert. Zeitgebungs-HIL, Hardwaresicherheit.

Standardpakete#

Bewertete Pakete für die Resilient-PNT-Testprofile des DHS, IMO MSC.1/Circ.1575 und ICAO Doc 9849 Appendix F, dazu eine Querverbindung zu NIST IR 8323r1 in compliance-report. Jeder Test führt ein mitgeliefertes Szenario aus und vergleicht ein Ergebnisfeld mit einem vor dem Lauf festgelegten Zielwert; ein Test, der ein Empfängerprotokoll braucht, wird als eingabebedürftig aufgeführt, nicht bewertet. Die Formulierung lautet „liefert Belege für“.

kshana standards-pack list
kshana standards-pack run imo-circ-1575
Jeder Test der drei bewerteten Standardpakete aus echten Läufen der Engine v0.40.0 (`kshana standards-pack run`): dhs-rpcf: 6 erreicht, 1 nicht erreicht, 2 benötigen eine Eingabe; imo-circ-1575: 1 erreicht, 4 nicht erreicht, 2 benötigen eine Eingabe; icao-doc9849-appf: 6 erreicht, 0 nicht erreicht, 2 benötigen eine Eingabe. Insgesamt 13 erreicht, 5 nicht erreicht und 6 benötigen eine Eingabe, die der Engine fehlt (ein Empfängerlog oder Ausrüstungsdokumentation). Jeder Zielwert wurde vor dem Lauf festgelegt; ein Verfehlen bleibt ein Verfehlen. Ein erreichter Zielwert besagt, dass ein modelliertes Szenario einen festgelegten Zielwert erreicht hat, nichts über ein Produkt. Die Pakete liefern Belege für die Zeilen, die sie nennen; sie sind keine Bewertung. Nur beratend: Analyseausgabe eines Forschungs- und Engineering-Werkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für Menschenleben (safety of life); sie darf nicht die alleinige Grundlage einer Navigations- oder Sicherheitsentscheidung sein.Jeder Test der drei bewerteten Standardpakete aus echten Läufen der Engine v0.40.0 (`kshana standards-pack run`): dhs-rpcf: 6 erreicht, 1 nicht erreicht, 2 benötigen eine Eingabe; imo-circ-1575: 1 erreicht, 4 nicht erreicht, 2 benötigen eine Eingabe; icao-doc9849-appf: 6 erreicht, 0 nicht erreicht, 2 benötigen eine Eingabe. Insgesamt 13 erreicht, 5 nicht erreicht und 6 benötigen eine Eingabe, die der Engine fehlt (ein Empfängerlog oder Ausrüstungsdokumentation). Jeder Zielwert wurde vor dem Lauf festgelegt; ein Verfehlen bleibt ein Verfehlen. Ein erreichter Zielwert besagt, dass ein modelliertes Szenario einen festgelegten Zielwert erreicht hat, nichts über ein Produkt. Die Pakete liefern Belege für die Zeilen, die sie nennen; sie sind keine Bewertung. Nur beratend: Analyseausgabe eines Forschungs- und Engineering-Werkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für Menschenleben (safety of life); sie darf nicht die alleinige Grundlage einer Navigations- oder Sicherheitsentscheidung sein.

Registerstatus: MODELLED. Ein erreichter Zielwert besagt, dass ein modelliertes Szenario einen genannten Zielwert erreicht hat, nichts über ein Produkt; jede Verfehlung bleibt erhalten und ist durch einen Test festgehalten. Standards.

LunaNet AFS#

Der Codegenerator für das LunaNet Augmented Forward Signal (Gold-, Weil- und Tertiärcodes, der Nachrichtenrahmen und seine Fehlerkodierung) und ein Prüfer für einen aufgezeichneten oder erzeugten Symbolstrom, festgelegt auf eine Ausgabe der Spezifikation.

kshana lunanet-afs-check spec
kshana lunanet-afs-check generate --frames 2 --out afs.sym
kshana lunanet-afs-check symbols afs.sym
Der Codegenerator von LunaNet AFS, geprüft gegen die gedruckten Spalten der Spezifikation, aus einem echten Lauf der Engine v0.40.0 (`kshana lunanet-afs-check spec`, festgelegt auf LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29. Januar 2025; das Dokument kennzeichnet seine Codetabellen mit {LSIS-TBC}). 9 von 10 Prüfungen sind erfüllt; B4 ist NOT MET (420 von 421 stimmten überein). Sie prüft einen Symbolstrom gegen eine Ausgabe einer veröffentlichten Spezifikation und sagt nichts über einen LunaNet-Knoten oder -Dienst. Hinweis (beratend): Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit menschlichen Lebens. Sie prüft einen Symbolstrom gegen eine Ausgabe einer veröffentlichten Spezifikation und sagt nichts über einen LunaNet-Knoten oder -Dienst.Der Codegenerator von LunaNet AFS, geprüft gegen die gedruckten Spalten der Spezifikation, aus einem echten Lauf der Engine v0.40.0 (`kshana lunanet-afs-check spec`, festgelegt auf LNIS V5, AD1 Volume A (LSIS-AFS) V1.0, 29. Januar 2025; das Dokument kennzeichnet seine Codetabellen mit {LSIS-TBC}). 9 von 10 Prüfungen sind erfüllt; B4 ist NOT MET (420 von 421 stimmten überein). Sie prüft einen Symbolstrom gegen eine Ausgabe einer veröffentlichten Spezifikation und sagt nichts über einen LunaNet-Knoten oder -Dienst. Hinweis (beratend): Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit menschlichen Lebens. Sie prüft einen Symbolstrom gegen eine Ausgabe einer veröffentlichten Spezifikation und sagt nichts über einen LunaNet-Knoten oder -Dienst.

Registerstatus: VALIDATED für die Code- und Synchronisationsprüfungen, gegen die Werte, die die Spezifikation druckt (und als TBC kennzeichnet); eine Prüfung ist NOT MET, beibehalten und durch einen Test festgehalten (eine gedruckte Tertiärcode-Spalte weicht ab: Das Dokument druckt denselben Wert für zwei PRNs). Die LDPC- und CRC-Wörter der Subframes 2 bis 4 werden nicht geprüft. Die Registerzeilen sagen genau, welche. LunaNet AFS.

Laborkreislauf#

kshana.test-conditions/1 ist eine veröffentlichte Beschreibung dessen, was ein Labor getan hat (Ereignisse, Zeiten, Leistungen). kshana evidence round-trip verknüpft den Szenario-Hash, den Bedingungs-Hash, den Hash des Empfängerprotokolls und die Bewertung zu einem signierten Paket und weist ein Paket zurück, dessen Bedingungen und Bewertungsszenario bei den Ereignissen nicht übereinstimmen. Kshana erzeugt oder spielt nie ein Signal ab: Wie ein Szenario einen Empfänger erreichte, liegt in der Verantwortung des Betreibers.

kshana evidence --help
Der Aufbau eines Nachweispakets. Ein Empfängerlog (NMEA, u-blox UBX, RINEX 3 oder ein Android-Log) und ein Zeitfenster gehen in kshana receiver-trust evidence ein, das sieben Dateien schreibt: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig und eine optionale timestamp.tsr. Das Manifest hält den SHA-256 des gesamten Logs und jeder Datei sowie eine Hash-Kette über die Dateien fest; die Signatur deckt das Manifest ab. kshana evidence verify prüft die Signatur, den Hash jeder Datei, die Kette und dass keine nicht aufgeführte Datei vorhanden ist, und beendet sich mit 0, wenn verifiziert, mit 1, wenn etwas fehlgeschlagen ist, und mit 3, wenn der Signierende nicht gepinnt war. Ein Paket ist ein technischer Bericht, keine Rechtsauffassung.Der Aufbau eines Nachweispakets. Ein Empfängerlog (NMEA, u-blox UBX, RINEX 3 oder ein Android-Log) und ein Zeitfenster gehen in kshana receiver-trust evidence ein, das sieben Dateien schreibt: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig und eine optionale timestamp.tsr. Das Manifest hält den SHA-256 des gesamten Logs und jeder Datei sowie eine Hash-Kette über die Dateien fest; die Signatur deckt das Manifest ab. kshana evidence verify prüft die Signatur, den Hash jeder Datei, die Kette und dass keine nicht aufgeführte Datei vorhanden ist, und beendet sich mit 0, wenn verifiziert, mit 1, wenn etwas fehlgeschlagen ist, und mit 3, wenn der Signierende nicht gepinnt war. Ein Paket ist ein technischer Bericht, keine Rechtsauffassung.

Das Bild zeigt den Aufbau eines Pakets. Registerstatus: MODELLED. Testbedingungen, Prüfstand.

kshana-bench#

Feste Aufgaben, Aufteilungen und Metriken für Störungserkennung, IQ-Erkennung, Holdover-Vorhersage und die Optimismuslücke, mit einem versiegelten zurückgehaltenen Datensatz und einer statischen Rangliste. Es bewertet Einreichungen; es ist keine Rangfolge von Empfängern.

kshana bench baseline --task d --split test --out results/
Die eingebauten Basislinien der Aufgabe D von kshana-bench (die Optimismuslücke) auf der Testaufteilung, aus einem echten Lauf der Engine v0.40.0 (`kshana bench baseline`). Jedes Balkenpaar ist die Fläche unter der ROC-Kurve für die Fälle innerhalb der Verteilung und für die verschobenen Fälle; die Lücke dazwischen ist die Optimismuslücke, gemessen an einer Toleranz von 0,05. fused-max-z: 0,998 und 0,983 (Lücke 0,015); sqm-imbalance: 0,882 und 0,882 (Lücke 0,001); agc-excess: 0,848 und 0,819 (Lücke 0,030); raim-parity: 0,682 und 0,672 (Lücke 0,010); energy-cn0-drop: 0,595 und 0,565 (Lücke 0,030). Die Labels sind Labels eines generativen Modells eines synthetischen Korpus, nie Felddaten: MODELLED. Beratend: modelliert oder gegen genannte Referenzen gemessen, keine Zulassung, keine Zertifizierung und keine Konformitätserklärung. Eine Bewertung beschreibt ein Protokoll oder einen Korpus, nie ein Produkt.Die eingebauten Basislinien der Aufgabe D von kshana-bench (die Optimismuslücke) auf der Testaufteilung, aus einem echten Lauf der Engine v0.40.0 (`kshana bench baseline`). Jedes Balkenpaar ist die Fläche unter der ROC-Kurve für die Fälle innerhalb der Verteilung und für die verschobenen Fälle; die Lücke dazwischen ist die Optimismuslücke, gemessen an einer Toleranz von 0,05. fused-max-z: 0,998 und 0,983 (Lücke 0,015); sqm-imbalance: 0,882 und 0,882 (Lücke 0,001); agc-excess: 0,848 und 0,819 (Lücke 0,030); raim-parity: 0,682 und 0,672 (Lücke 0,010); energy-cn0-drop: 0,595 und 0,565 (Lücke 0,030). Die Labels sind Labels eines generativen Modells eines synthetischen Korpus, nie Felddaten: MODELLED. Beratend: modelliert oder gegen genannte Referenzen gemessen, keine Zulassung, keine Zertifizierung und keine Konformitätserklärung. Eine Bewertung beschreibt ein Protokoll oder einen Korpus, nie ein Produkt.

Registerstatus: keine eigene Registerzeile; die Basislinien sind in den Ergebnisdateien als MODELLED gekennzeichnet. Gegen die vorregistrierten Zielwerte sind der Bewerter, C1 bis C3 und D2 erreicht, und drei Zielwerte sind NOT MET, jeder durch einen Test festgehalten: A2 (agc_k_sigma AUC 0,766 gegenüber mindestens 0,80 auf dem Testsplit), D1 (größte Lücke 0,0301) und Aufgabe (b) R1 (aus der früheren Kampagne übernommen, nicht erneut ausgeführt). Die Zahlen stehen in xval/bench/RESULTS-v2.md. Bench.

Störungsobservatorium#

Ein Produkt pro UTC-Tag und Region aus einem offenen Archiv von Flugzeugpositionen, auf einem festen groben Gitter: Jede Zelle ist degraded, not degraded oder not observed (was nicht „unauffällig“ bedeutet). Freigegeben frühestens 24 h nach Ende des Tages, mit unterdrückten kleinen Zellen und ohne Zuschreibung der Ursache.

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/
Zwei synthetische Tage der Störungskarte, gezeichnet aus den eingecheckten Beispielen in examples/interference-map/output, jeweils mit eigener synthetischer Route und den Routenexpositionsanteilen, die die Engine meldet. Links ein ADS-B-Tag: 1 beeinträchtigte Zelle, 6 nicht beeinträchtigt, 4 nicht bewertet (schraffiert) und Zellen ohne Eintrag, leer gezeichnet, die nicht beobachtet wurden. Die Route ist 525 km lang: 11,5 % ihrer Länge in beeinträchtigten Zellen, 38,3 % nicht beeinträchtigt, 9,1 % nicht bewertet und 41,1 % nicht beobachtet. Rechts ein AIS-Tag: Zellen, die vom Kreis- und vom An-Land-Detektor markiert wurden, nicht anomale Zellen und leere Zellen; die Route ist 454 km lang, mit 10,5 % in anomalen Zellen, 21,2 % nicht anomal, 0,0 % nicht bewertet und 68,3 % nicht beobachtet. ADS-B und AIS sind getrennte Ebenen und werden nie kombiniert. Eine markierte Zelle ist kein Befund einer Störung, und eine Zelle ohne Farbe wurde nicht beobachtet, was nicht dasselbe ist wie unauffällig. Alle Daten sind erfunden, im offenen mittleren Atlantik, und keine Messung.Zwei synthetische Tage der Störungskarte, gezeichnet aus den eingecheckten Beispielen in examples/interference-map/output, jeweils mit eigener synthetischer Route und den Routenexpositionsanteilen, die die Engine meldet. Links ein ADS-B-Tag: 1 beeinträchtigte Zelle, 6 nicht beeinträchtigt, 4 nicht bewertet (schraffiert) und Zellen ohne Eintrag, leer gezeichnet, die nicht beobachtet wurden. Die Route ist 525 km lang: 11,5 % ihrer Länge in beeinträchtigten Zellen, 38,3 % nicht beeinträchtigt, 9,1 % nicht bewertet und 41,1 % nicht beobachtet. Rechts ein AIS-Tag: Zellen, die vom Kreis- und vom An-Land-Detektor markiert wurden, nicht anomale Zellen und leere Zellen; die Route ist 454 km lang, mit 10,5 % in anomalen Zellen, 21,2 % nicht anomal, 0,0 % nicht bewertet und 68,3 % nicht beobachtet. ADS-B und AIS sind getrennte Ebenen und werden nie kombiniert. Eine markierte Zelle ist kein Befund einer Störung, und eine Zelle ohne Farbe wurde nicht beobachtet, was nicht dasselbe ist wie unauffällig. Alle Daten sind erfunden, im offenen mittleren Atlantik, und keine Messung.

Das Bild zeigt die festgeschriebenen Beispieltage, kein Produkt des Observatoriums. Registerstatus: MODELLED: keine externe unabhängige Referenz, keine Referenzwahrheit und keine Ursachenzuschreibung; eine Zelle, die not observed ist, wurde nicht bewertet, was nicht dasselbe ist wie unauffällig. Methode des Observatoriums.

Exporter#

Vertrauenstelemetrie als Prometheus-Text, CEF, LEEF, OTLP sowie Home-Assistant-MQTT-Discovery- und Zustandsnachrichten. Der Befehl veröffentlicht nur an ein von Ihnen angegebenes Ziel und hält keine Zugangsdaten.

kshana trust-telemetry --result session.result.json --print-metrics
kshana trust-telemetry --result session.result.json --print-syslog --format cef
Ein Vertrauensergebnis in drei Exportformaten, aus echten Läufen der Engine v0.40.0 (`kshana trust-telemetry`) auf examples/maritime-trust: Prometheus-Textdarstellung (der letzte Vertrauenswert ist 5,9 und das nicht vertrauenswürdige Band ist das gesetzte) sowie die letzten CEF- und LEEF-Nachrichten. Der Befehl veröffentlicht nichts, wenn kein Ziel angegeben ist, hält keine Zugangsdaten und sendet kein Funksignal. Beratende Software, keine typzugelassene Navigationsausrüstung (IEC 61108, IEC 61162): Der Betreiber bleibt für die Navigation des Schiffes verantwortlich.Ein Vertrauensergebnis in drei Exportformaten, aus echten Läufen der Engine v0.40.0 (`kshana trust-telemetry`) auf examples/maritime-trust: Prometheus-Textdarstellung (der letzte Vertrauenswert ist 5,9 und das nicht vertrauenswürdige Band ist das gesetzte) sowie die letzten CEF- und LEEF-Nachrichten. Der Befehl veröffentlicht nichts, wenn kein Ziel angegeben ist, hält keine Zugangsdaten und sendet kein Funksignal. Beratende Software, keine typzugelassene Navigationsausrüstung (IEC 61108, IEC 61162): Der Betreiber bleibt für die Navigation des Schiffes verantwortlich.

Registerstatus: MODELLED. Vertrauenstelemetrie.

Der Typ optical-atmosphere kann eine mit Seed erzeugte Realisierung des Wetters eines Standorts als Reihe der Verbindungsmarge schreiben: Wolkenepisoden, je eine Flüssigwassersäule, eine Szintillationsprobe pro Schritt. Die Seite Optical PNT des Studios öffnet die Szenarien der optischen Atmosphäre.

kshana scenarios/optical-atmosphere-network.toml
Eine mit Seed erzeugte Realisierung der Verbindungsmarge des Standorts „northern“ über 336 h, aus einem echten Lauf der Engine v0.40.0 auf scenarios/optical-atmosphere-network.toml (Seed 37, Schritt von 600 s). Die Marge fällt während Wolkenepisoden unter null; in dieser Ziehung ist die Verbindung 40,5 % der Zeit aktiv, mit 27 Ausfällen und einem längsten Ausfall von 30,7 h. Die Eingaben sind illustrativ, die Reihe ist eine Ziehung aus dem Modell und nicht das Klima, und sie weicht von der statistischen Verfügbarkeit (37,8 %) um den Stichprobenfehler der Ziehung ab. Nur beratende Analyse: kein zertifiziertes Verfügbarkeits-, Integritäts- oder Navigationsprodukt und keine Vorhersage für einen realen Standort, sofern seine Klimaeingaben nicht aus einem genannten Datensatz stammen.Eine mit Seed erzeugte Realisierung der Verbindungsmarge des Standorts „northern“ über 336 h, aus einem echten Lauf der Engine v0.40.0 auf scenarios/optical-atmosphere-network.toml (Seed 37, Schritt von 600 s). Die Marge fällt während Wolkenepisoden unter null; in dieser Ziehung ist die Verbindung 40,5 % der Zeit aktiv, mit 27 Ausfällen und einem längsten Ausfall von 30,7 h. Die Eingaben sind illustrativ, die Reihe ist eine Ziehung aus dem Modell und nicht das Klima, und sie weicht von der statistischen Verfügbarkeit (37,8 %) um den Stichprobenfehler der Ziehung ab. Nur beratende Analyse: kein zertifiziertes Verfügbarkeits-, Integritäts- oder Navigationsprodukt und keine Vorhersage für einen realen Standort, sofern seine Klimaeingaben nicht aus einem genannten Datensatz stammen.

Registerstatus: MODELLED. Eine Ziehung aus dem Modell, nicht das Klima. Optische Atmosphäre.

Neue Studio-Ansichten#

kshana.dev/studio erhält ein Bridge-Replay (zwei Läufe nebeneinander auf einer Missionsuhr, unter /studio/replay/), eine Seite Optical PNT (/studio/optical/), eine Seite Holdover-Test (/studio/holdover/) und einen Observatoriums-Betrachter (/studio/observatory/). Sie führen dieselbe Engine im Browser aus, nichts wird hochgeladen, und sie tragen dieselbe Hinweisaussage. Die Bilder oben werden von einem Skript aus der eigenen Ausgabe der Engine gezeichnet; sie sind keine Screenshots dieser Seiten.

Navigation für Raumfahrzeugnutzer (gnss-ssv)#

Für ein Raumfahrzeug oberhalb, im Bereich oder weit jenseits der GNSS-Umlaufbahnen: wie viele GNSS-Signale es nutzen kann, wie stark sie sind, wie gut die Geometrie ist und was ein Bordfilter damit tun kann. Ein Typ, vier Modi, gewählt durch die Tabellen des Szenarios: eine Schale von Nutzern (der Zeitanteil mit einem und mit vier Signalen, je Konstellation), eine Trajektorie (Signale, C/N0, Dilution of Precision und das Limb-Strahl-Medium entlang einer Umlaufbahn), ein Navigationslauf (ein Neun-Zustands-Filter auf Pseudoentfernungen, bis zum Mond) und eine Formation (Relativnavigation von Deputies um einen Chief). Die öffentliche Quelle für den Verfügbarkeitsvergleich ist das Heft zum interoperablen GNSS Space Service Volume (UN OOSA ST/SPACE/75, vom International Committee on GNSS), das selbst eine Simulation ist; es wird abgerufen, nie mitgeliefert. Vollständige Seite: 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
Signalverfügbarkeit für einen Nutzer auf einer Kugel in 36000 km Höhe mit Halbkugelantenne, aus einem echten Lauf der Engine v0.40.0 auf scenarios/gnss-ssv-shell.toml (ein verkleinerter Lauf: 162 Nutzer, 3 Tage, Schritte von 10 min), bei einer Schwelle von 20 dB-Hz. Für jede Konstellation und jedes Band zwei Balken: der Anteil der Paare (Nutzer, Epoche) mit mindestens einem Signal und mit mindestens vier. Kombiniert, L1: 99,4 % mindestens eines, 73,2 % mindestens vier, längster Ausfall unter vier Signalen 160 min. Kombiniert, L5: 100,0 % mindestens eines, 99,9 % mindestens vier, längster Ausfall unter vier Signalen 20 min. MODELLED: eine modellierte Studie aus genannten Eingaben, keine Messung und keine Aussage zum Service Volume irgendeines Systems. Die verkleinerte Größe ist nicht der Vergleich mit dem Heft. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.Signalverfügbarkeit für einen Nutzer auf einer Kugel in 36000 km Höhe mit Halbkugelantenne, aus einem echten Lauf der Engine v0.40.0 auf scenarios/gnss-ssv-shell.toml (ein verkleinerter Lauf: 162 Nutzer, 3 Tage, Schritte von 10 min), bei einer Schwelle von 20 dB-Hz. Für jede Konstellation und jedes Band zwei Balken: der Anteil der Paare (Nutzer, Epoche) mit mindestens einem Signal und mit mindestens vier. Kombiniert, L1: 99,4 % mindestens eines, 73,2 % mindestens vier, längster Ausfall unter vier Signalen 160 min. Kombiniert, L5: 100,0 % mindestens eines, 99,9 % mindestens vier, längster Ausfall unter vier Signalen 20 min. MODELLED: eine modellierte Studie aus genannten Eingaben, keine Messung und keine Aussage zum Service Volume irgendeines Systems. Die verkleinerte Größe ist nicht der Vergleich mit dem Heft. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben. Signale entlang einer hohen Erdumlaufbahn (Perigäum 497 km, Apogäum 58622 km, Umlaufzeit 18,8 h), aus einem echten Lauf der Engine v0.40.0 auf scenarios/gnss-ssv-heo.toml, Band L1. Oben: die beste Trägerleistungsdichte unter den sichtbaren Signalen, gegen die Schwelle von 20 dB-Hz. Mitte: die Anzahl der sichtbaren Signale aller Konstellationen, von 4 bis 55 entlang der abgetasteten Punkte. Von den empfangenen Verbindungen kamen 2252 durch eine Hauptkeule und 696 durch Nebenkeulen, mit einem gekennzeichneten parametrischen Ersatzdiagramm, nicht dem gemessenen Diagramm irgendeines Systems. Median-PDOP 67, 95. Perzentil 358. MODELLED: eine modellierte Studie aus genannten Eingaben, keine Messung und keine Aussage zum Service Volume irgendeines Systems. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.Signale entlang einer hohen Erdumlaufbahn (Perigäum 497 km, Apogäum 58622 km, Umlaufzeit 18,8 h), aus einem echten Lauf der Engine v0.40.0 auf scenarios/gnss-ssv-heo.toml, Band L1. Oben: die beste Trägerleistungsdichte unter den sichtbaren Signalen, gegen die Schwelle von 20 dB-Hz. Mitte: die Anzahl der sichtbaren Signale aller Konstellationen, von 4 bis 55 entlang der abgetasteten Punkte. Von den empfangenen Verbindungen kamen 2252 durch eine Hauptkeule und 696 durch Nebenkeulen, mit einem gekennzeichneten parametrischen Ersatzdiagramm, nicht dem gemessenen Diagramm irgendeines Systems. Median-PDOP 67, 95. Perzentil 358. MODELLED: eine modellierte Studie aus genannten Eingaben, keine Messung und keine Aussage zum Service Volume irgendeines Systems. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben. Ein Neun-Zustands-Bordfilter auf einem Transfer von niedriger Umlaufbahn zum Mond, aus einem echten Lauf der Engine v0.40.0 auf scenarios/gnss-ssv-nav-lunar.toml (289 Epochen, 13 Punkte gezeichnet). Auf einer logarithmischen Achse der wahre Positionsfehler und die eigene Ein-Sigma-Schranke des Filters gegen die Zeit seit dem Start. Innerhalb der GNSS-Umlaufbahnen beträgt der Positions-RMS 1,4 m; oberhalb davon 90 m, mit einem Endfehler von 184 m bei 193.330 km Höhe mit 1 Messung. Der mittlere normierte quadrierte Schätzfehler über den ganzen Lauf ist 4,4 (etwa 3 für einen konsistenten Positionsblock). Wahrheit und Filter teilen ihre Sonne- und Mond-Ersatzmodelle. MODELLED: eine modellierte Studie aus genannten Eingaben, keine Messung und keine Aussage zum Service Volume irgendeines Systems. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.Ein Neun-Zustands-Bordfilter auf einem Transfer von niedriger Umlaufbahn zum Mond, aus einem echten Lauf der Engine v0.40.0 auf scenarios/gnss-ssv-nav-lunar.toml (289 Epochen, 13 Punkte gezeichnet). Auf einer logarithmischen Achse der wahre Positionsfehler und die eigene Ein-Sigma-Schranke des Filters gegen die Zeit seit dem Start. Innerhalb der GNSS-Umlaufbahnen beträgt der Positions-RMS 1,4 m; oberhalb davon 90 m, mit einem Endfehler von 184 m bei 193.330 km Höhe mit 1 Messung. Der mittlere normierte quadrierte Schätzfehler über den ganzen Lauf ist 4,4 (etwa 3 für einen konsistenten Positionsblock). Wahrheit und Filter teilen ihre Sonne- und Mond-Ersatzmodelle. MODELLED: eine modellierte Studie aus genannten Eingaben, keine Messung und keine Aussage zum Service Volume irgendeines Systems. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben. Relativnavigation von 2 Deputies um einen Chief auf einer hohen Umlaufbahn, aus einem echten Lauf der Engine v0.40.0 auf scenarios/gnss-ssv-formation-heo.toml (401 Epochen). Für jeden Deputy zwei Balken: der relative Positions-RMS aus der Subtraktion der beiden unabhängigen absoluten Schätzungen und aus dem Relativfilter auf einfach differenzierten Pseudoentfernungen. Basislinie 0,8 km: 5,1 m und 1,2 m. Basislinie 2,0 km: 4,1 m und 2,1 m. Der Absolutfilter ist hier nicht konsistent: mittlerer normierter quadrierter Schätzfehler 187 gegenüber etwa 3 bei einem konsistenten Filter, seine angegebene Unsicherheit ist also viel zu klein. MODELLED: eine modellierte Studie aus genannten Eingaben, keine Messung und keine Aussage zum Service Volume irgendeines Systems. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.Relativnavigation von 2 Deputies um einen Chief auf einer hohen Umlaufbahn, aus einem echten Lauf der Engine v0.40.0 auf scenarios/gnss-ssv-formation-heo.toml (401 Epochen). Für jeden Deputy zwei Balken: der relative Positions-RMS aus der Subtraktion der beiden unabhängigen absoluten Schätzungen und aus dem Relativfilter auf einfach differenzierten Pseudoentfernungen. Basislinie 0,8 km: 5,1 m und 1,2 m. Basislinie 2,0 km: 4,1 m und 2,1 m. Der Absolutfilter ist hier nicht konsistent: mittlerer normierter quadrierter Schätzfehler 187 gegenüber etwa 3 bei einem konsistenten Filter, seine angegebene Unsicherheit ist also viel zu klein. MODELLED: eine modellierte Studie aus genannten Eingaben, keine Messung und keine Aussage zum Service Volume irgendeines Systems. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.

Registerstatus: MODELLED, und der Vergleich mit dem Heft verfehlt überwiegend. Die Zielwerte wurden vor dem Lauf festgelegt. Von acht sind nur S0 (das inverse Linkbudget, 13 von 13 Werten) und S6 (die Mondmission) erreicht. S1 bis S5 und S7 sind NOT MET: die Geometrie des oberen und unteren Service Volume (43 von 52 und 48 von 52 Zellen), das obere Service Volume bei 15/20/25 dB-Hz, die sechs GEO-Missionen, die HEO-Mission und das parametrische Nebenkeulendiagramm gegen gemessene GPS-Panel-Diagramme. Fast jede Verfehlung in S1 bis S5 betrifft GLONASS, und das Heft druckt dafür zwei verschiedene Bezugswinkel; eine Diagnosevariante, die das andere Paar verwendet, bringt S1, S2 und S4 auf jede Zelle, ersetzt aber nicht den Lauf der Aufzeichnung, und keine Zeile ist VALIDATED. Auch der Absolutfilter des Formationslaufs ist überzuversichtlich (mittlerer normierter quadrierter Fehler weit über dem Wert von etwa 3, den ein konsistenter Filter ergibt).

Der aufgezeichnete Vergleich des Verfügbarkeitsmodells für Raumfahrzeugnutzer mit dem öffentlichen Heft zum Space Service Volume, aus den festgeschriebenen Ergebnissen des vorregistrierten Laufs (xval/gnss-ssv/results-run1.json, geschrieben vom Beispiel ssv_booklet_check der Engine v0.40.0). Zielwert für Zielwert die Zellen innerhalb der Toleranz: S0 13 von 13 (MET); S1 43 von 52 (NOT MET); S2 48 von 52 (NOT MET); S3 122 von 155 (NOT MET); S4 132 von 156 (NOT MET); S5 18 von 26 (NOT MET); S6 26 von 26 (MET); S7 0 von 20 Panel-Diagrammen (NOT MET). Nur S0 und S6 sind unter der vorregistrierten Lesart erreicht. Eine Diagnosevariante, die die anderen GLONASS-Winkel des Hefts verwendet, bringt S1, S2 und S4 auf jede Zelle, ersetzt aber nicht den Lauf der Aufzeichnung. Keine Registerzeile ist VALIDATED. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.Der aufgezeichnete Vergleich des Verfügbarkeitsmodells für Raumfahrzeugnutzer mit dem öffentlichen Heft zum Space Service Volume, aus den festgeschriebenen Ergebnissen des vorregistrierten Laufs (xval/gnss-ssv/results-run1.json, geschrieben vom Beispiel ssv_booklet_check der Engine v0.40.0). Zielwert für Zielwert die Zellen innerhalb der Toleranz: S0 13 von 13 (MET); S1 43 von 52 (NOT MET); S2 48 von 52 (NOT MET); S3 122 von 155 (NOT MET); S4 132 von 156 (NOT MET); S5 18 von 26 (NOT MET); S6 26 von 26 (MET); S7 0 von 20 Panel-Diagrammen (NOT MET). Nur S0 und S6 sind unter der vorregistrierten Lesart erreicht. Eine Diagnosevariante, die die anderen GLONASS-Winkel des Hefts verwendet, bringt S1, S2 und S4 auf jede Zelle, ersetzt aber nicht den Lauf der Aufzeichnung. Keine Registerzeile ist VALIDATED. Beratend: Analyseausgabe eines Forschungs- und Entwicklungswerkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit von Menschenleben.

Navigation für Raumfahrzeugnutzer, was der Vergleich zeigt.

Mondinfrastruktur (lunar-infrastructure)#

Die Mondumlaufbahn und die Mondoberfläche als Navigations- und geodätische Infrastruktur, in fünf Studien, gewählt durch study: od-consistency (eine Bahnbestimmung an Bord aus Erd-GNSS in einer Halo-Umlaufbahn gegen eine unabhängige am Boden), carrier-phase (Festlegung der ganzzahligen Mehrdeutigkeit zwischen Oberflächenstationen und einem Orbiter), frame-coestimation (das Mond-Datum aus Entfernungsmessung von Erdstationen mit und ohne Orbiter-Verbindungen), space-tie (Laser-, VLBI- und GNSS-Versätze an einem Raumfahrzeug gegen den Fehler der lokalen Anbindung) und geodesy-sensitivity (welche Observablenfamilie die Love-Zahlen h2, k2 und l2 sieht). Das Modell ist ein eingeschränktes Dreikörpermodell mit genannten Vereinfachungen und illustrativen Eingaben. Vollständige Seite: 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
Konsistenz einer bordseitigen Erde-GNSS-Bahnbestimmung in einem nahezu geradlinigen Halo-Orbit mit einer unabhängigen bodengestützten Bahnbestimmung, aus echten Läufen der Engine v0.40.0 auf scenarios/lunar-infrastructure-od-consistency.toml und der Variante mit Modellfehler (400 Versuche je Lauf). Die mittlere normierte Differenz q beträgt 5,81 ohne Modellfehler und 5,95 mit einem eingespeisten Beschleunigungsfehler von 3e-10 m/s2, bei erwarteten 6: Die beiden Bahnlösungen sind konsistent (Zielwert C1 MET). Der Anteil der Versuche oberhalb des 95-%-Punkts beträgt 0,040 und 0,052; der Zielwert für das Erkennen des eingespeisten Fehlers lag bei mindestens 0,5, daher ist er NOT MET (C3): Die bordseitige Lösung ist auf etwa 352 m bekannt gegenüber 23 m bei der bodengestützten, sodass sich eine Verschiebung von zehn Metern in ihrer Kovarianz verbirgt. MODELLED: ein eingeschränktes Dreikörpermodell mit angegebenen Vereinfachungen und illustrativen Eingaben, keine Messung einer Mondgröße. Beratend: Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst.Konsistenz einer bordseitigen Erde-GNSS-Bahnbestimmung in einem nahezu geradlinigen Halo-Orbit mit einer unabhängigen bodengestützten Bahnbestimmung, aus echten Läufen der Engine v0.40.0 auf scenarios/lunar-infrastructure-od-consistency.toml und der Variante mit Modellfehler (400 Versuche je Lauf). Die mittlere normierte Differenz q beträgt 5,81 ohne Modellfehler und 5,95 mit einem eingespeisten Beschleunigungsfehler von 3e-10 m/s2, bei erwarteten 6: Die beiden Bahnlösungen sind konsistent (Zielwert C1 MET). Der Anteil der Versuche oberhalb des 95-%-Punkts beträgt 0,040 und 0,052; der Zielwert für das Erkennen des eingespeisten Fehlers lag bei mindestens 0,5, daher ist er NOT MET (C3): Die bordseitige Lösung ist auf etwa 352 m bekannt gegenüber 23 m bei der bodengestützten, sodass sich eine Verschiebung von zehn Metern in ihrer Kovarianz verbirgt. MODELLED: ein eingeschränktes Dreikörpermodell mit angegebenen Vereinfachungen und illustrativen Eingaben, keine Messung einer Mondgröße. Beratend: Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst. Festlegung der ganzzahligen Mehrdeutigkeit der Trägerphase zwischen Stationen auf der Mondoberfläche und einem Orbiter, aus dem eingecheckten Ergebnis des bewerteten Laufs der Engine v0.40.0 (tests/fixtures/lunar_infra/phase_full_run.json: 3 Bogenlängen, je ein Monte Carlo mit 401 Ziehungen, geschrieben von scenarios/carrier-phase-scored.toml). 1 Tag: Erfolg 1,0 % (Standardfehler 0,5 %), 134 Mehrdeutigkeiten, Positionssigma des Orbiters 45,6 m float und 18,5 m fixiert; 2 Tage: Erfolg 0,5 % (Standardfehler 0,4 %), 259 Mehrdeutigkeiten, Positionssigma des Orbiters 21,5 m float und 8,7 m fixiert; 3 Tage: Erfolg 2,8 % (Standardfehler 0,8 %), 375 Mehrdeutigkeiten, Positionssigma des Orbiters 6,3 m float und 2,1 m fixiert. Die ganzzahlige Festlegung wird nicht erreicht: Der Erfolg bleibt bei 25 dBi zwischen 1 % und 3 %, und bei den registrierten 12 dBi lässt sich das Problem nicht aufstellen. MODELLED: ein eingeschränktes Dreikörpermodell mit genannten Vereinfachungen und illustrativen Eingaben, keine Messung irgendeiner Mondgröße. Hinweis: Analyseausgabe eines Forschungs- und Engineering-Werkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit des Lebens.Festlegung der ganzzahligen Mehrdeutigkeit der Trägerphase zwischen Stationen auf der Mondoberfläche und einem Orbiter, aus dem eingecheckten Ergebnis des bewerteten Laufs der Engine v0.40.0 (tests/fixtures/lunar_infra/phase_full_run.json: 3 Bogenlängen, je ein Monte Carlo mit 401 Ziehungen, geschrieben von scenarios/carrier-phase-scored.toml). 1 Tag: Erfolg 1,0 % (Standardfehler 0,5 %), 134 Mehrdeutigkeiten, Positionssigma des Orbiters 45,6 m float und 18,5 m fixiert; 2 Tage: Erfolg 0,5 % (Standardfehler 0,4 %), 259 Mehrdeutigkeiten, Positionssigma des Orbiters 21,5 m float und 8,7 m fixiert; 3 Tage: Erfolg 2,8 % (Standardfehler 0,8 %), 375 Mehrdeutigkeiten, Positionssigma des Orbiters 6,3 m float und 2,1 m fixiert. Die ganzzahlige Festlegung wird nicht erreicht: Der Erfolg bleibt bei 25 dBi zwischen 1 % und 3 %, und bei den registrierten 12 dBi lässt sich das Problem nicht aufstellen. MODELLED: ein eingeschränktes Dreikörpermodell mit genannten Vereinfachungen und illustrativen Eingaben, keine Messung irgendeiner Mondgröße. Hinweis: Analyseausgabe eines Forschungs- und Engineering-Werkzeugs, keine typzugelassene Navigationsausrüstung und kein Dienst für die Sicherheit des Lebens. Genauigkeit des siebenparametrigen Monddatums (drei Translationen, ein Maßstab und drei Rotationen) aus Erdstations-Entfernungsmessung, mit und ohne Entfernungen zwischen Orbiter und Oberflächenstation, aus einem echten Lauf der Engine v0.40.0 auf scenarios/lunar-infrastructure-frame-coestimation.toml. Das Cramér-Rao-Sigma der Translationen und Rotationen sinkt mit den Orbiter-Verbindungen (zum Beispiel t_z von 0,98 m auf 0,046 m); der kleinste Informations-Eigenwert steigt auf das 111-Fache, und die CRLB-Spur sinkt auf 1,0 % (Zielwert F3 MET). Dies setzt voraus, dass die Bahn in den Mondachsen bekannt ist, wobei ihr Fehler durch das Orbiter-Entfernungs-Sigma von 1 m getragen wird. MODELLED: ein eingeschränktes Dreikörpermodell mit angegebenen Vereinfachungen und illustrativen Eingaben, keine Messung einer Mondgröße. Beratend: Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst.Genauigkeit des siebenparametrigen Monddatums (drei Translationen, ein Maßstab und drei Rotationen) aus Erdstations-Entfernungsmessung, mit und ohne Entfernungen zwischen Orbiter und Oberflächenstation, aus einem echten Lauf der Engine v0.40.0 auf scenarios/lunar-infrastructure-frame-coestimation.toml. Das Cramér-Rao-Sigma der Translationen und Rotationen sinkt mit den Orbiter-Verbindungen (zum Beispiel t_z von 0,98 m auf 0,046 m); der kleinste Informations-Eigenwert steigt auf das 111-Fache, und die CRLB-Spur sinkt auf 1,0 % (Zielwert F3 MET). Dies setzt voraus, dass die Bahn in den Mondachsen bekannt ist, wobei ihr Fehler durch das Orbiter-Entfernungs-Sigma von 1 m getragen wird. MODELLED: ein eingeschränktes Dreikörpermodell mit angegebenen Vereinfachungen und illustrativen Eingaben, keine Messung einer Mondgröße. Beratend: Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst. Genauigkeit der Offsets zwischen Laserentfernungsmessungs-, VLBI- und GNSS-Positionen eines Raumfahrzeugs gegenüber dem Fehler des bodengestützten lokalen Anschlusses, aus einem echten Lauf der Engine v0.40.0 auf scenarios/lunar-infrastructure-space-tie.toml (ein Bogen von 6.56 Tagen, Technik-Sigmas GNSS 10 m, VLBI 1 m, Laser 0,1 m). Bei einem lokalen Anschluss von 1 mm bis 1 m bleibt das Sigma der Translation Laser minus GNSS nahe 1,04 m, bis der Anschluss 1 m erreicht: Es wird durch das Messrauschen der Techniken begrenzt, nicht durch den lokalen Anschluss. Die allein durch den Anschluss gesetzte Untergrenze ist die Quadratwurzel aus zwei mal sein Sigma. MODELLED: ein eingeschränktes Dreikörpermodell mit angegebenen Vereinfachungen und illustrativen Eingaben, keine Messung einer Mondgröße. Beratend: Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst.Genauigkeit der Offsets zwischen Laserentfernungsmessungs-, VLBI- und GNSS-Positionen eines Raumfahrzeugs gegenüber dem Fehler des bodengestützten lokalen Anschlusses, aus einem echten Lauf der Engine v0.40.0 auf scenarios/lunar-infrastructure-space-tie.toml (ein Bogen von 6.56 Tagen, Technik-Sigmas GNSS 10 m, VLBI 1 m, Laser 0,1 m). Bei einem lokalen Anschluss von 1 mm bis 1 m bleibt das Sigma der Translation Laser minus GNSS nahe 1,04 m, bis der Anschluss 1 m erreicht: Es wird durch das Messrauschen der Techniken begrenzt, nicht durch den lokalen Anschluss. Die allein durch den Anschluss gesetzte Untergrenze ist die Quadratwurzel aus zwei mal sein Sigma. MODELLED: ein eingeschränktes Dreikörpermodell mit angegebenen Vereinfachungen und illustrativen Eingaben, keine Messung einer Mondgröße. Beratend: Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst. Welche Beobachtungsfamilie für die Love-Zahlen h2, k2 und l2 des Mondes empfindlich ist, aus einem echten Lauf der Engine v0.40.0 auf scenarios/lunar-infrastructure-geodesy-sensitivity.toml. Jede Zelle ist die partielle Ableitung (RMS) der Beobachtungen einer Familie nach einem Parameter, in den eigenen Einheiten dieser Familie (die Zellen werden also entlang einer Zeile verglichen, nicht entlang einer Spalte); ein Strich bedeutet, dass die Familie keine Empfindlichkeit hat. Laserentfernungsmessung: h2 7,6, k2 keine, l2 9,8. Orbiter-Tracking: h2 keine, k2 0,00086, l2 keine. Oberflächengravimeter: h2 2.9e+03, k2 4.3e+03, l2 keine. Oberflächenuhr: h2 2.8e-17, k2 2.8e-17, l2 keine. Mit allen vier Familien beträgt das Cramér-Rao-Sigma 0,36 % des nominalen h2, 0,52 % von k2 und 1,16 % von l2. Das Hinzufügen einer Familie senkte den kleinsten Eigenwert nie (28 von 28 Hinzufügungen), aber die Spur der Pseudoinversen war nur in 16 von 28 Fällen nicht größer: Diese Hälfte von Zielwert G3 ist NOT MET. Die Orbiter-Familie sieht das Sichtlinienintegral der k2-Beschleunigung, einen Wert am oberen Ende. MODELLED: ein eingeschränktes Dreikörpermodell mit angegebenen Vereinfachungen und illustrativen Eingaben, keine Messung einer Mondgröße. Beratend: Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst.Welche Beobachtungsfamilie für die Love-Zahlen h2, k2 und l2 des Mondes empfindlich ist, aus einem echten Lauf der Engine v0.40.0 auf scenarios/lunar-infrastructure-geodesy-sensitivity.toml. Jede Zelle ist die partielle Ableitung (RMS) der Beobachtungen einer Familie nach einem Parameter, in den eigenen Einheiten dieser Familie (die Zellen werden also entlang einer Zeile verglichen, nicht entlang einer Spalte); ein Strich bedeutet, dass die Familie keine Empfindlichkeit hat. Laserentfernungsmessung: h2 7,6, k2 keine, l2 9,8. Orbiter-Tracking: h2 keine, k2 0,00086, l2 keine. Oberflächengravimeter: h2 2.9e+03, k2 4.3e+03, l2 keine. Oberflächenuhr: h2 2.8e-17, k2 2.8e-17, l2 keine. Mit allen vier Familien beträgt das Cramér-Rao-Sigma 0,36 % des nominalen h2, 0,52 % von k2 und 1,16 % von l2. Das Hinzufügen einer Familie senkte den kleinsten Eigenwert nie (28 von 28 Hinzufügungen), aber die Spur der Pseudoinversen war nur in 16 von 28 Fällen nicht größer: Diese Hälfte von Zielwert G3 ist NOT MET. Die Orbiter-Familie sieht das Sichtlinienintegral der k2-Beschleunigung, einen Wert am oberen Ende. MODELLED: ein eingeschränktes Dreikörpermodell mit angegebenen Vereinfachungen und illustrativen Eingaben, keine Messung einer Mondgröße. Beratend: Analyseausgabe eines Forschungs- und Ingenieurwerkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst.

Registerstatus: MODELLED, und drei Zielwerte sind NOT MET. Die Numerik wird gegen unabhängige numpy- und scipy-Programme geprüft; nichts wird mit einer Messung einer Mondgröße verglichen, und nichts ist VALIDATED. Erreicht: Die beiden Bahnlösungen sind konsistent (mittleres q 5,81 gegenüber 6 erwartet), und Orbiter-Verbindungen heben den kleinsten Datum-Eigenwert um etwa das 111-Fache an, bei bekannter Umlaufbahn. Nicht erreicht: Der eingespeiste Modellfehler von 3e-10 m/s2 wird nicht erkannt (C3: Die Bordlösung ist auf etwa 350 m bekannt, sodass sich etwa zehn Meter in ihrer Kovarianz verbergen); das Festlegen der ganzzahligen Mehrdeutigkeit gelingt nicht (1 bis 3 % Erfolg bei 25 dBi, und bei den registrierten 12 dBi lässt sich das Problem nicht bilden); und die Spurhälfte von G3 für das Hinzufügen einer Observablenfamilie (die Spur stieg bei 12 von 28 Hinzufügungen, jedes Mal, weil die Familie den Rang erhöhte). Jede Verfehlung ist durch einen Test festgehalten. Mondinfrastruktur.

Kshana Studio#

Öffnen Sie kshana.dev/studio, und die gesamte Engine läuft in Ihrem Browser, zu WebAssembly kompiliert. Es ist nichts zu installieren, und nichts wird hochgeladen. Das Studio hat zwei Ansichten derselben Engine, und ein Schalter in der Kopfzeile wechselt zwischen ihnen, wobei Szenario, Ansicht und alle geänderten Einstellungen erhalten bleiben.

Die einfache Ansicht ist das, womit das Studio sich öffnet. Sie geht von Fragen aus (wie viele Satelliten kann ich sehen, kann ich meiner Positionslösung vertrauen, wie lange kann eine Uhr die Zeit halten, was macht ein Jammer mit meinem Empfänger) und von einer Karte von allem, was die Engine kann, jeder Bereich mit seinem Anteil validierter Methoden. Öffnen Sie ein Szenario, und die Antwort kommt zuerst: ein schlichter Satz, geschrieben für das, was dieses Szenario misst, dann seine Kennzahlen und ein Diagramm. Höchstens fünf Einstellungen sind sichtbar, die, die die Antwort am meisten verändern; der Rest wartet unter Erweiterte Einstellungen. So wird das berechnet erklärt die Methode, und Für Forschende gibt die eigenen Zahlen der Engine, die Szenariodatei, den Code, um es aus Python auszuführen, und die Zitierung.

Kshana Studio, einfache Ansicht, am mitgelieferten Szenario integrity-raim, Engine v0.40.0 lokal laufend. Die Frage: Erfüllt die Geometrie die Alarmgrenzen (horizontales und vertikales Schutzniveau)? Zuerst die Antwort, gekennzeichnet als Live-Ergebnis: Ja, überwiegend: für 95,3 % der 12 h. Die Fehlerschranke des Empfängers blieb bei 344 von 361 Prüfungen unter den Alarmgrenzen (40 m horizontal und 50 m vertikal), und keine Lösung war irreführend. Kennzahlen: Zeit, in der der Lösung vertraut werden kann 95,3 %, längste Lücke 10 min, typische Fehlerschranke 6,5 / 13 m, irreführende Lösungen 0. Daneben Andere Einstellungen ausprobieren mit fünf davon (dem Entfernungsfehler, den beiden Alarmgrenzen, der Dauer und der Elevationsmaske) und Erneut ausführen, dann die eingeklappten Abschnitte Erweiterte Einstellungen (13 weitere), Wie dies berechnet wird (8 validiert, 6 modelliert) und Für Forschende. Darunter die Ansichten dieses Ergebnisses und die gegen die Alarmgrenze aufgetragenen Schutzniveaus.Kshana Studio, einfache Ansicht, am mitgelieferten Szenario integrity-raim, Engine v0.40.0 lokal laufend. Die Frage: Erfüllt die Geometrie die Alarmgrenzen (horizontales und vertikales Schutzniveau)? Zuerst die Antwort, gekennzeichnet als Live-Ergebnis: Ja, überwiegend: für 95,3 % der 12 h. Die Fehlerschranke des Empfängers blieb bei 344 von 361 Prüfungen unter den Alarmgrenzen (40 m horizontal und 50 m vertikal), und keine Lösung war irreführend. Kennzahlen: Zeit, in der der Lösung vertraut werden kann 95,3 %, längste Lücke 10 min, typische Fehlerschranke 6,5 / 13 m, irreführende Lösungen 0. Daneben Andere Einstellungen ausprobieren mit fünf davon (dem Entfernungsfehler, den beiden Alarmgrenzen, der Dauer und der Elevationsmaske) und Erneut ausführen, dann die eingeklappten Abschnitte Erweiterte Einstellungen (13 weitere), Wie dies berechnet wird (8 validiert, 6 modelliert) und Für Forschende. Darunter die Ansichten dieses Ergebnisses und die gegen die Alarmgrenze aufgetragenen Schutzniveaus.

Die erweiterte Ansicht ist das vollständige Dashboard: die Szenariobibliothek, fünf nummerierte Schritte (Wählen, Einstellen, Ausführen, Ergebnisse lesen, Teilen oder exportieren), die Kennzahlen mit Chips PASS und FAIL, wo der Lauf einen Schwellenwert angibt, und jedes Panel: Übersicht, Diagramme, Karten, Wiedergabe, der Bericht der Engine und Exporte. Ein Suchfeld erreicht Szenarien, Bereiche und die Felder darin, und Sie können bis zu vier Läufe anheften und nebeneinander vergleichen.

Der Startbildschirm der einfachen Ansicht und die erweiterte Ansicht nach einem Lauf
Kshana Studio, einfache Ansicht, Startbildschirm mit dem Titel Was möchten Sie herausfinden?, mit der Engine v0.40.0 live und in der oberen Leiste drei Links: Schulungsnachbesprechung, Störungskarte und Empfängervertrauen. Vier Fragen: wie viele Satelliten ich überall auf der Erde sehen kann, ob ich meiner Positionslösung vertrauen kann, wie lange eine Uhr ohne Satelliten die Zeit halten kann und was ein Störsender mit meinem Empfänger macht. Unter der ersten ihr aufgezeichnetes Ergebnis: mindestens 22 Satelliten in Sicht an jedem Ort und im Mittel 31 mit GPS, Galileo, BeiDou und GLONASS zusammen, eine Lösung an 100 % der Orte und Zeiten möglich, auf einer Weltkarte der Satelliten in Sicht, mit einer Schaltfläche Dieses Ergebnis öffnen. Daneben Alles, was Kshana kann: 16 Bereiche und 139 sofort ausführbare Szenarien, jede Kachel mit einem kleinen Diagramm aus einem aufgezeichneten Lauf und ihrem Anteil validierter Methoden, sowie die 173 von 350 Fähigkeiten des Registers, die validiert sind.Kshana Studio, einfache Ansicht, Startbildschirm mit dem Titel Was möchten Sie herausfinden?, mit der Engine v0.40.0 live und in der oberen Leiste drei Links: Schulungsnachbesprechung, Störungskarte und Empfängervertrauen. Vier Fragen: wie viele Satelliten ich überall auf der Erde sehen kann, ob ich meiner Positionslösung vertrauen kann, wie lange eine Uhr ohne Satelliten die Zeit halten kann und was ein Störsender mit meinem Empfänger macht. Unter der ersten ihr aufgezeichnetes Ergebnis: mindestens 22 Satelliten in Sicht an jedem Ort und im Mittel 31 mit GPS, Galileo, BeiDou und GLONASS zusammen, eine Lösung an 100 % der Orte und Zeiten möglich, auf einer Weltkarte der Satelliten in Sicht, mit einer Schaltfläche Dieses Ergebnis öffnen. Daneben Alles, was Kshana kann: 16 Bereiche und 139 sofort ausführbare Szenarien, jede Kachel mit einem kleinen Diagramm aus einem aufgezeichneten Lauf und ihrem Anteil validierter Methoden, sowie die 173 von 350 Fähigkeiten des Registers, die validiert sind. Kshana Studio, erweiterte Ansicht, nach einem Lauf des mitgelieferten Szenarios constellation-multi-gnss-coverage (Vier GNSS-Konstellationen, eine Karte), Engine v0.40.0 lokal laufend. Links die Szenariobibliothek, 139 Szenarien in 16 Bereichen. Die fünf Schritte Auswählen, Einstellen, Ausführen, Ergebnisse lesen und Teilen oder exportieren, wobei Schritt 4 aktuell ist. Kennzahlen: 102 Satelliten, Verfügbarkeit 100 % (PASS), mediane Positions-Dilution-of-Precision (PDOP) 0,95 (PASS), PDOP-95.-Perzentil 1,105 (PASS), im Mittel 31,03 Satelliten in Sicht und 22 im Minimum. Darunter die Panelzeile mit ausgewähltem Coverage, die Wiedergabeleiste, eine Weltkarte des mittleren PDOP von 0,831 bis 1,0853 mit jedem gezeichneten Satelliten und die globalen Abdeckungswerte.Kshana Studio, erweiterte Ansicht, nach einem Lauf des mitgelieferten Szenarios constellation-multi-gnss-coverage (Vier GNSS-Konstellationen, eine Karte), Engine v0.40.0 lokal laufend. Links die Szenariobibliothek, 139 Szenarien in 16 Bereichen. Die fünf Schritte Auswählen, Einstellen, Ausführen, Ergebnisse lesen und Teilen oder exportieren, wobei Schritt 4 aktuell ist. Kennzahlen: 102 Satelliten, Verfügbarkeit 100 % (PASS), mediane Positions-Dilution-of-Precision (PDOP) 0,95 (PASS), PDOP-95.-Perzentil 1,105 (PASS), im Mittel 31,03 Satelliten in Sicht und 22 im Minimum. Darunter die Panelzeile mit ausgewähltem Coverage, die Wiedergabeleiste, eine Weltkarte des mittleren PDOP von 0,831 bis 1,0853 mit jedem gezeichneten Satelliten und die globalen Abdeckungswerte.

Der Quelltext des Studios und seine Build-Hinweise stehen in web/README.md.

Die Website#

Der Rest von kshana.dev wird aus den eigenen Dateien und Engine-Läufen dieses Repositorys gebaut: Missionen, Fähigkeiten, das Nachweisregister, die veröffentlichte Forschung und die Editionen.

Drei Seiten von kshana.dev nebeneinander. Das Hero der Startseite: die Namenszeile Kshana · क्षण · der präzise Augenblick über der Überschrift Probe der Minute, in der GNSS ausfällt, mit der Missionskonsole eines echten Laufs der Engine v0.40.0 (ein Globus und drei Live-Diagramme: Uhrenzeitfehler, Träger-zu-Rauschdichte und Schutzniveau). Nachweise, Veröffentlichte Forschung: die sechs arXiv-Arbeiten, die auf der offenen Engine aufbauen, die neueste mit einer Grafik der Engine. Ausgaben, Kshana Pro, dieselbe Engine, verstärkt: Free führt ein Szenario aus, Pro beantwortet die Frage des Programms.Drei Seiten von kshana.dev nebeneinander. Das Hero der Startseite: die Namenszeile Kshana · क्षण · der präzise Augenblick über der Überschrift Probe der Minute, in der GNSS ausfällt, mit der Missionskonsole eines echten Laufs der Engine v0.40.0 (ein Globus und drei Live-Diagramme: Uhrenzeitfehler, Träger-zu-Rauschdichte und Schutzniveau). Nachweise, Veröffentlichte Forschung: die sechs arXiv-Arbeiten, die auf der offenen Engine aufbauen, die neueste mit einer Grafik der Engine. Ausgaben, Kshana Pro, dieselbe Engine, verstärkt: Free führt ein Szenario aus, Pro beantwortet die Frage des Programms.

Fähigkeiten#

Eine Engine deckt die gesamte Ausfallkette ab, vom ersten gestörten Satelliten bis zur letzten Nanosekunde des Uhren-holdover. Die Engine hat 92 Szenarioarten; kshana kinds listet sie auf, und docs/SCENARIOS.md dokumentiert jedes Feld.

Fähigkeit Was es beantwortet
Spektrum wie ein Jammer das GNSS-L-Band belegt, Band für Band, Sekunde für Sekunde
Uhren und Zeitgebung wie lange jede Uhr die Zeit hält, nachdem GNSS verloren ist
Konstellationen um jeden Körper Abdeckung, Dilution of Precision und Verfügbarkeit um die Erde, den Mond oder den Mars
Sonnensystem wo jeder Planet steht und die Lichtlaufzeit jeder Verbindung
Navigation im niedrigen Erdorbit ein Überflug, eine Verbindung, eine Navigationsnachricht und eine fusionierte Lösung, Stufe für Stufe
Kampagnen eine verkettete Mission, ein Sweep oder ein Monte-Carlo-Ensemble in einem Szenario
Animation die Zeitreihe eines Laufs als animierte Zeichnung, ein Player oder Einzelbilder
Berichte jede Größe mit ihrer Einheit und ihrer Beschriftung, in HTML (HyperText Markup Language) und JSON (JavaScript Object Notation)
Interoperabilitäts-Exporte Umlaufbahnen und Geometrie für andere Werkzeuge: SP3, CCSDS OMM und OEM, CZML, KML, GeoJSON, STK und SigMF
Maritimer Vertrauenswert kann die Brücke dieser Lösung vertrauen: ein Wert von 0-100 und Gründe für die NMEA-Daten eines Schiffes, live oder aus einem Protokoll (beratend, keine typzugelassene Navigationsausrüstung)
NMEA-Trainingsdatenströme synthetische Brücken-NMEA-Daten mit geskriptetem Jamming und Spoofing und einem Ausbilderprotokoll, für das Training von Besatzungen (nur Text; nie für die Live-Navigationssysteme eines Schiffes; beratend, keine typzugelassene Navigationsausrüstung)
Störungskarte wo Flugzeuge und Schiffe beeinträchtigte Navigationsdaten gemeldet haben und wie viel einer Route davon berührt wird
Senderregion wo sich unter genannten Annahmen eine Quelle gestörter Positionsmeldungen befinden kann: Regionen bei genannter Konfidenz, ein Schwerpunkt mit seiner Ellipse, nie ein Punkt (MODELLED; kshana interference-map locate)
Nachweispakete ein signierter, offline verifizierbarer technischer Nachweis des Protokollfensters eines Schiffes und dessen, was die Engine daraus berechnet hat, für einen Vorfallbericht (beratend, keine typzugelassene Navigationsausrüstung)
Vertrauens-Telemetrie der Vertrauensstrom als Prometheus-Metriken, SIEM-Ereignisse und optional OpenTelemetry, mit einem Beispiel-Grafana-Dashboard (deploy/grafana/kshana-gnss-trust.json)
Signal K und OpenCPN der Vertrauenswert auf dem Signal-K-Server eines Bootes und in OpenCPN, mit einem Referenz-Build für einen kleinen Rechner neben dem Empfänger (beratend, keine typzugelassene Navigationsausrüstung)
Export für den Prüfstand kshana bench-export: die Fahrzeugbewegung und die Ereignisse eines Szenarios für einen GNSS-Simulator im Labor (es wird kein Signal geschrieben) und wie das Protokoll des Empfängers danach bewertet wird
Compliance-Zuordnung und -Bericht kshana compliance-report: für welche Zeilen öffentlicher Resilienz-Rahmenwerke ein Satz von Läufen Belege liefert und welche Lücke bleibt
Notebooks ausführbare Tutorials: Schiffsvertrauen und Trainingsströme, eine Routenexposition der Störungskarte, Compliance-Zuordnung und der Prüfstand, Quanten gegen klassisches GDOP
Galileo-OSNMA-Verifizierer welche Navigationsdaten von Satelliten ein Empfänger kryptographisch authentifizieren kann und warum eine Prüfung fehlschlägt; Kshana gewährt keine Rechte an den ICD-IPRs der EU zu OSNMA (siehe den HINWEIS auf der Seite)

Die Exportformate im Einzelnen: SP3 ist Standard Product 3; CCSDS OMM und OEM sind die Orbit Mean-elements Messages und Orbit Ephemeris Messages des Consultative Committee for Space Data Systems; CZML und KML sind die Cesium und Keyhole Markup Languages; STK ist Systems Tool Kit; SigMF ist das Signal Metadata Format.

Die verkettete Kampagne campaign-jam-spoof-holdover-integrity, ein echter Lauf der Engine (Seed 20260928): 6 Phasen (Nominal → Jamming → Spoofing → Holdover → Integritätsalarm → Erholung) und 18 Mitgliedsläufe auf einem Raster von 10 s über T+01:16:10. Drei Spuren: Uhren-Zeitfehler gegen eine Schutzgrenze von 50 ns (Spitze 62,7 ns), effektive Trägerleistungsdichte gegen eine Untergrenze von 25 dB-Hz (Minimum -12.2 dB-Hz) und vertikales Schutzniveau gegen eine Alarmgrenze von 50 m (Spitze 135,4 m), mit den Alarmereignissen des Laufs: T+00:20:00 der HF-Spoofing-Detektor schlägt Alarm (fusionierte Konsistenz-, Leistungs- und Signalqualitätsmonitore); T+00:26:10 der uhrengestützte Spoofing-Monitor schlägt Alarm.Die verkettete Kampagne campaign-jam-spoof-holdover-integrity, ein echter Lauf der Engine (Seed 20260928): 6 Phasen (Nominal → Jamming → Spoofing → Holdover → Integritätsalarm → Erholung) und 18 Mitgliedsläufe auf einem Raster von 10 s über T+01:16:10. Drei Spuren: Uhren-Zeitfehler gegen eine Schutzgrenze von 50 ns (Spitze 62,7 ns), effektive Trägerleistungsdichte gegen eine Untergrenze von 25 dB-Hz (Minimum -12.2 dB-Hz) und vertikales Schutzniveau gegen eine Alarmgrenze von 50 m (Spitze 135,4 m), mit den Alarmereignissen des Laufs: T+00:20:00 der HF-Spoofing-Detektor schlägt Alarm (fusionierte Konsistenz-, Leistungs- und Signalqualitätsmonitore); T+00:26:10 der uhrengestützte Spoofing-Monitor schlägt Alarm.
Jede Fähigkeit, gezeichnet aus einem echten Lauf: das L-Band-Wasserfalldiagramm, die Abdeckungskarte, das Sonnensystem und ein Überflug im niedrigen Erdorbit
Das GNSS-L-Band als eine spektrale Leistungsdichte über 60 s, aus einem echten Lauf des Typs spectrum (l-band-waterfall-jamming.toml, Seed 7, Engine v0.40.0): Frequenz quer, Zeit nach unten, Farbe für die Leistung über dem Rauschteppich von -202.0 dBW/Hz. Jammer: Chirp-Privatgerät (chirp, an bei 10 s, aus bei 40 s); CW-Ton auf L1 (cw, an bei 30 s); schmalbandiges Rauschen auf L2 (narrowband, an bei 45 s). Schlechtestes Band GPS L1 C/A: minimales effektives C/N0 3,2 dB-Hz bei 31 s gegenüber einer Tracking-Untergrenze von 25 dB-Hz. GPS L1 C/A Minimum 3,2 dB-Hz; Galileo E1 Minimum 4,7 dB-Hz; GPS L2C Minimum 36,9 dB-Hz; GPS L5 Minimum 44,1 dB-Hz; Galileo E5a Minimum 47,0 dB-Hz.Das GNSS-L-Band als eine spektrale Leistungsdichte über 60 s, aus einem echten Lauf des Typs spectrum (l-band-waterfall-jamming.toml, Seed 7, Engine v0.40.0): Frequenz quer, Zeit nach unten, Farbe für die Leistung über dem Rauschteppich von -202.0 dBW/Hz. Jammer: Chirp-Privatgerät (chirp, an bei 10 s, aus bei 40 s); CW-Ton auf L1 (cw, an bei 30 s); schmalbandiges Rauschen auf L2 (narrowband, an bei 45 s). Schlechtestes Band GPS L1 C/A: minimales effektives C/N0 3,2 dB-Hz bei 31 s gegenüber einer Tracking-Untergrenze von 25 dB-Hz. GPS L1 C/A Minimum 3,2 dB-Hz; Galileo E1 Minimum 4,7 dB-Hz; GPS L2C Minimum 36,9 dB-Hz; GPS L5 Minimum 44,1 dB-Hz; Galileo E5a Minimum 47,0 dB-Hz. Satelliten in Sicht über der ganzen Erde für einen Tag, aus einem echten Lauf von constellation-design (constellation-multi-gnss-coverage.toml, Engine-Lauf durch diesen Generator): 102 Satelliten (GPS 24, Galileo 24, BeiDou 30, GLONASS 24). Jede 10-Grad-Zelle ist nach der mittleren Anzahl der Satelliten über der 10-Grad-Maske schattiert (27,2 bis 36,5); die Punkte sind die Bodenspur-Proben der Engine, einer pro Stunde und Satellit. Globale Verfügbarkeit 100,00 % bei PDOP höchstens 6, Median-PDOP 0,95, im Mittel 31,0 und mindestens 22 Satelliten in Sicht.Satelliten in Sicht über der ganzen Erde für einen Tag, aus einem echten Lauf von constellation-design (constellation-multi-gnss-coverage.toml, Engine-Lauf durch diesen Generator): 102 Satelliten (GPS 24, Galileo 24, BeiDou 30, GLONASS 24). Jede 10-Grad-Zelle ist nach der mittleren Anzahl der Satelliten über der 10-Grad-Maske schattiert (27,2 bis 36,5); die Punkte sind die Bodenspur-Proben der Engine, einer pro Stunde und Satellit. Globale Verfügbarkeit 100,00 % bei PDOP höchstens 6, Median-PDOP 0,95, im Mittel 31,0 und mindestens 22 Satelliten in Sicht. Das Sonnensystem zur Epoche des Szenarios 2026-09-28T00:00:00, aus einem echten Lauf des Typs solar-system (solar-system-tour.toml): die Sonne, 9 Planeten und der Zwergplanet Pluto von oberhalb der Ekliptik gesehen, Entfernungen zur Darstellung logarithmisch gestaucht, mit der einfachen Lichtlaufzeit jedes Körpers von der Erde. Merkur 0,47 au, 10,1 Lichtminuten, VALIDATED; Venus 0,73 au, 3,0 Lichtminuten, VALIDATED; Mars 1,55 au, 14,0 Lichtminuten, VALIDATED; Jupiter 5,30 au, 49,5 Lichtminuten, VALIDATED; Saturn 9,44 au, 70,2 Lichtminuten, VALIDATED; Uranus 19,44 au, 157,4 Lichtminuten, MODELLED; Neptun 29,88 au, 240,2 Lichtminuten, MODELLED; Pluto 35,61 au, 292,2 Lichtminuten, MODELLED. Verbindungen: Mars zu Jupiter einfach 2193,5 s; Saturn zur Erde einfach 4212,2 s; Europa zu Jupiter einfach 2,2 s.Das Sonnensystem zur Epoche des Szenarios 2026-09-28T00:00:00, aus einem echten Lauf des Typs solar-system (solar-system-tour.toml): die Sonne, 9 Planeten und der Zwergplanet Pluto von oberhalb der Ekliptik gesehen, Entfernungen zur Darstellung logarithmisch gestaucht, mit der einfachen Lichtlaufzeit jedes Körpers von der Erde. Merkur 0,47 au, 10,1 Lichtminuten, VALIDATED; Venus 0,73 au, 3,0 Lichtminuten, VALIDATED; Mars 1,55 au, 14,0 Lichtminuten, VALIDATED; Jupiter 5,30 au, 49,5 Lichtminuten, VALIDATED; Saturn 9,44 au, 70,2 Lichtminuten, VALIDATED; Uranus 19,44 au, 157,4 Lichtminuten, MODELLED; Neptun 29,88 au, 240,2 Lichtminuten, MODELLED; Pluto 35,61 au, 292,2 Lichtminuten, MODELLED. Verbindungen: Mars zu Jupiter einfach 2193,5 s; Saturn zur Erde einfach 4212,2 s; Europa zu Jupiter einfach 2,2 s. Ein Überflug im niedrigen Erdorbit (LEO) aus einem echten Lauf des Typs leo-pass (leo-pass-iridium.toml, Engine-Lauf durch diesen Generator): Iridium-pass in 781 km, STL-Band bei 1621 MHz, gesehen von einem Luftnutzer bei 50° N 30° W. Über der Maske von 5° für 750 s, maximale Elevation 65,0° bei 444 s. Die Trägerleistungsdichte erreicht ihre Spitze bei 80,5 dB-Hz (Median 71,3), 34,3 dB über dem GNSS-Median von 46,2 dB-Hz aus 8 GPS-Satelliten in Sicht (38,2 bis 51,1 dB-Hz); der Doppler erreicht 35,4 kHz.Ein Überflug im niedrigen Erdorbit (LEO) aus einem echten Lauf des Typs leo-pass (leo-pass-iridium.toml, Engine-Lauf durch diesen Generator): Iridium-pass in 781 km, STL-Band bei 1621 MHz, gesehen von einem Luftnutzer bei 50° N 30° W. Über der Maske von 5° für 750 s, maximale Elevation 65,0° bei 444 s. Die Trägerleistungsdichte erreicht ihre Spitze bei 80,5 dB-Hz (Median 71,3), 34,3 dB über dem GNSS-Median von 46,2 dB-Hz aus 8 GPS-Satelliten in Sicht (38,2 bis 51,1 dB-Hz); der Doppler erreicht 35,4 kHz.

Führen Sie jedes davon mit kshana example <scenario> > s.toml && kshana s.toml aus: die Szenarien sind l-band-waterfall-jamming, constellation-multi-gnss-coverage, solar-system-tour und leo-pass-iridium.

Die maritimen und Störungsfähigkeiten, gezeichnet aus festgeschriebenen synthetischen Eingaben: ein Vertrauenswert, eine Störungskarte mit Routenexposition, ein Trainingsstrom und ein Nachweispaket
Vertrauenswert über eine synthetische Passage, aus einem echten Lauf der Engine v0.40.0 auf examples/maritime-trust (ein erfundenes NMEA-Log einer Fähre auf einer Route von Tallinn nach Helsinki, 3001 Epochen bei 1 Hz). Drei Spuren teilen sich eine Zeitachse. Oben: der Abstand zwischen der vom Empfänger gemeldeten Position und der echten Position des Schiffes, der bis etwa 1576 s innerhalb weniger Meter bleibt, als das skriptgesteuerte Wegziehen der Position des Logs ihn vergrößert, während der Empfänger weiter eine gültige Lösung meldet. Mitte: der Vertrauenswert von 0 bis 100, während der ersten 300 s der Kalibrierung nicht berechnet, im Band nominal (mindestens 90) bis zum Wegziehen, dann durch das Band degraded (mindestens 55) in das Band untrusted fallend. Unten: das Band jeder Epoche als farbiges Band mit seinem Namen. Der Wert ist beratend. Beratende Software, keine typzugelassene Navigationsausrüstung (IEC 61108, IEC 61162): Der Betreiber bleibt für die Navigation des Schiffes verantwortlich. Das Log ist erfunden, um das Format und die Monitore zu zeigen; es ist keine Messung und sagt nichts darüber aus, wie sich irgendein Empfänger schlagen würde.Vertrauenswert über eine synthetische Passage, aus einem echten Lauf der Engine v0.40.0 auf examples/maritime-trust (ein erfundenes NMEA-Log einer Fähre auf einer Route von Tallinn nach Helsinki, 3001 Epochen bei 1 Hz). Drei Spuren teilen sich eine Zeitachse. Oben: der Abstand zwischen der vom Empfänger gemeldeten Position und der echten Position des Schiffes, der bis etwa 1576 s innerhalb weniger Meter bleibt, als das skriptgesteuerte Wegziehen der Position des Logs ihn vergrößert, während der Empfänger weiter eine gültige Lösung meldet. Mitte: der Vertrauenswert von 0 bis 100, während der ersten 300 s der Kalibrierung nicht berechnet, im Band nominal (mindestens 90) bis zum Wegziehen, dann durch das Band degraded (mindestens 55) in das Band untrusted fallend. Unten: das Band jeder Epoche als farbiges Band mit seinem Namen. Der Wert ist beratend. Beratende Software, keine typzugelassene Navigationsausrüstung (IEC 61108, IEC 61162): Der Betreiber bleibt für die Navigation des Schiffes verantwortlich. Das Log ist erfunden, um das Format und die Monitore zu zeigen; es ist keine Messung und sagt nichts darüber aus, wie sich irgendein Empfänger schlagen würde. Zwei synthetische Tage der Störungskarte, gezeichnet aus den eingecheckten Beispielen in examples/interference-map/output, jeweils mit eigener synthetischer Route und den Routenexpositionsanteilen, die die Engine meldet. Links ein ADS-B-Tag: 1 beeinträchtigte Zelle, 6 nicht beeinträchtigt, 4 nicht bewertet (schraffiert) und Zellen ohne Eintrag, leer gezeichnet, die nicht beobachtet wurden. Die Route ist 525 km lang: 11,5 % ihrer Länge in beeinträchtigten Zellen, 38,3 % nicht beeinträchtigt, 9,1 % nicht bewertet und 41,1 % nicht beobachtet. Rechts ein AIS-Tag: Zellen, die vom Kreis- und vom An-Land-Detektor markiert wurden, nicht anomale Zellen und leere Zellen; die Route ist 454 km lang, mit 10,5 % in anomalen Zellen, 21,2 % nicht anomal, 0,0 % nicht bewertet und 68,3 % nicht beobachtet. ADS-B und AIS sind getrennte Ebenen und werden nie kombiniert. Eine markierte Zelle ist kein Befund einer Störung, und eine Zelle ohne Farbe wurde nicht beobachtet, was nicht dasselbe ist wie unauffällig. Alle Daten sind erfunden, im offenen mittleren Atlantik, und keine Messung.Zwei synthetische Tage der Störungskarte, gezeichnet aus den eingecheckten Beispielen in examples/interference-map/output, jeweils mit eigener synthetischer Route und den Routenexpositionsanteilen, die die Engine meldet. Links ein ADS-B-Tag: 1 beeinträchtigte Zelle, 6 nicht beeinträchtigt, 4 nicht bewertet (schraffiert) und Zellen ohne Eintrag, leer gezeichnet, die nicht beobachtet wurden. Die Route ist 525 km lang: 11,5 % ihrer Länge in beeinträchtigten Zellen, 38,3 % nicht beeinträchtigt, 9,1 % nicht bewertet und 41,1 % nicht beobachtet. Rechts ein AIS-Tag: Zellen, die vom Kreis- und vom An-Land-Detektor markiert wurden, nicht anomale Zellen und leere Zellen; die Route ist 454 km lang, mit 10,5 % in anomalen Zellen, 21,2 % nicht anomal, 0,0 % nicht bewertet und 68,3 % nicht beobachtet. ADS-B und AIS sind getrennte Ebenen und werden nie kombiniert. Eine markierte Zelle ist kein Befund einer Störung, und eine Zelle ohne Farbe wurde nicht beobachtet, was nicht dasselbe ist wie unauffällig. Alle Daten sind erfunden, im offenen mittleren Atlantik, und keine Messung. Trainingsstrom aus dem Szenario coastal-drag-off (Engine v0.40.0, Seed 22, 25 Minuten bei einem Fix je 10 s des Ausbilderlogs). Eine Karte zeigt die wahre Spur des Schiffes und die vom Empfänger berichtete Spur: Sie stimmen überein, bis bei 421 s ein geskriptetes Wegziehen der Position beginnt, die berichtete Spur sich dann von der wahren entfernt, während der Empfänger einen gültigen Fix behält, und bei 1140 s, wenn das Ereignis endet, zurückspringt. Daneben der Abstand zwischen den beiden Spuren über die Zeit und die mittlere Träger-Rausch-Leistungsdichte, die der Empfänger berichtet und die während des Ereignisses auf einen einzigen erhöhten Pegel steigt. Synthetische Trainingsdaten, von Kshana erzeugt. Nur für Training und Tests: Speisen Sie diesen Strom niemals in die laufenden Navigationssysteme eines Schiffes ein. Beratend, keine typzugelassene Navigationsausrüstung. Beratende Software, keine typzugelassene Navigationsausrüstung (IEC 61108, IEC 61162): Der Betreiber bleibt für die Navigation des Schiffes verantwortlich. Positionen, Daten und Spuren sind erfunden.Trainingsstrom aus dem Szenario coastal-drag-off (Engine v0.40.0, Seed 22, 25 Minuten bei einem Fix je 10 s des Ausbilderlogs). Eine Karte zeigt die wahre Spur des Schiffes und die vom Empfänger berichtete Spur: Sie stimmen überein, bis bei 421 s ein geskriptetes Wegziehen der Position beginnt, die berichtete Spur sich dann von der wahren entfernt, während der Empfänger einen gültigen Fix behält, und bei 1140 s, wenn das Ereignis endet, zurückspringt. Daneben der Abstand zwischen den beiden Spuren über die Zeit und die mittlere Träger-Rausch-Leistungsdichte, die der Empfänger berichtet und die während des Ereignisses auf einen einzigen erhöhten Pegel steigt. Synthetische Trainingsdaten, von Kshana erzeugt. Nur für Training und Tests: Speisen Sie diesen Strom niemals in die laufenden Navigationssysteme eines Schiffes ein. Beratend, keine typzugelassene Navigationsausrüstung. Beratende Software, keine typzugelassene Navigationsausrüstung (IEC 61108, IEC 61162): Der Betreiber bleibt für die Navigation des Schiffes verantwortlich. Positionen, Daten und Spuren sind erfunden. Der Aufbau eines Nachweispakets. Ein Empfängerlog (NMEA, u-blox UBX, RINEX 3 oder ein Android-Log) und ein Zeitfenster gehen in kshana receiver-trust evidence ein, das sieben Dateien schreibt: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig und eine optionale timestamp.tsr. Das Manifest hält den SHA-256 des gesamten Logs und jeder Datei sowie eine Hash-Kette über die Dateien fest; die Signatur deckt das Manifest ab. kshana evidence verify prüft die Signatur, den Hash jeder Datei, die Kette und dass keine nicht aufgeführte Datei vorhanden ist, und beendet sich mit 0, wenn verifiziert, mit 1, wenn etwas fehlgeschlagen ist, und mit 3, wenn der Signierende nicht gepinnt war. Ein Paket ist ein technischer Bericht, keine Rechtsauffassung.Der Aufbau eines Nachweispakets. Ein Empfängerlog (NMEA, u-blox UBX, RINEX 3 oder ein Android-Log) und ein Zeitfenster gehen in kshana receiver-trust evidence ein, das sieben Dateien schreibt: log-slice.bin, config.json, epochs.json, summary.html, manifest.json, manifest.sig und eine optionale timestamp.tsr. Das Manifest hält den SHA-256 des gesamten Logs und jeder Datei sowie eine Hash-Kette über die Dateien fest; die Signatur deckt das Manifest ab. kshana evidence verify prüft die Signatur, den Hash jeder Datei, die Kette und dass keine nicht aufgeführte Datei vorhanden ist, und beendet sich mit 0, wenn verifiziert, mit 1, wenn etwas fehlgeschlagen ist, und mit 3, wenn der Signierende nicht gepinnt war. Ein Paket ist ein technischer Bericht, keine Rechtsauffassung.

Alle vier sind erfundene Daten und beratend: Sie zeigen das Format und das Verhalten der Software, nicht, wie sich irgendein Empfänger oder System gegenüber Störungen verhält. Führen Sie das erste mit kshana receiver-trust examples/maritime-trust/session.toml aus, das zweite mit kshana route-exposure auf den Beispielen in examples/interference-map/, das dritte mit kshana nmea-scenario scenarios/training/coastal-drag-off.toml --out drag.nmea (nur zu Trainingszwecken: nie in Live-Navigationsausrüstung einspeisen) und das vierte wie in docs/EVIDENCE-PACKS.md.

Die vollständige Fähigkeitstabelle, Bereich für Bereich

Es folgt die vollständige Aufstellung Bereich für Bereich; für ein Reifegrad-Register je Fähigkeit siehe docs/CAPABILITY.md und docs/VALIDATION.md.

Bereich Fähigkeit
Bahn & Geometrie SGP4/SDP4-Propagation (validiert auf 4,12 mm gegen alle 666 Vektoren von AIAA 2006-6753); echte Two-Line-Elements (ein festgeschriebener, mit Datum versehener Celestrak-Schnappschuss gps-ops) oder synthetische Walker-Delta-Konstellationen, deren mittlere Elemente die Formel i:T/P/F auf unter 1 km über eine Propagation von 24 h verwirklichen; Sichtbarkeit mehrerer Konstellationen, Dilution of Precision — geometrisch, Position, horizontal, vertikal und Zeit (GDOP/PDOP/HDOP/VDOP/TDOP), validiert auf 1e-6 gegen gnss_lib_py 1.0.4, Stanford NAV Lab (Navigation and Autonomous Vehicles Laboratory), und GNSS-Verfügbarkeit; ein gradientenfreier Optimierer für den Konstellationsentwurf, eine Dimensionierung der minimalen Satellitenzahl nach dem Streets-of-Coverage-Verfahren, ein Vergleichswerkzeug für mehrere Konstellationen und ein Walker-Entwurfs-Sweep, der Abdeckung / PDOP / Wiederbesuchszeit über ein Raster Ebenen × Satelliten tabelliert und die Pareto-optimalen Entwürfe berichtet.
Numerischer Propagator Ein numerischer Cowell-Propagator (src/propagator.rs), der den analytischen SGP4/SDP4-Pfad ergänzt, mit einem hierarchischen Kraftmodell mit sieben Störungen (src/forces.rs): Zweikörper + das volle zonale Feld J2–J6 (die zonalen Oberflächenkoeffizienten der Erdabplattung J2 bis J6; der exakte analytische Gradient ihres Störpotentials), ein optionales tesserales Kugelflächenfunktions-Geopotential EGM2008 bis Grad/Ordnung 70 (Earth Gravitational Model 2008; src/gravity_sh.rs; echte Koeffizienten der NGA — der US-amerikanischen National Geospatial-Intelligence Agency —, normalisierte Legendre-Rekursion nach Holmes–Featherstone, gegen die geschlossenen Legendre-Funktionen und die analytische ∇V-Identität gegengeprüft), epochengesteuerte Drittkörper-Gravitation von Sonne und Mond (eine eingebaute Ephemeride geringer Genauigkeit, ohne DE/SPK — Development Ephemeris / SPICE Spacecraft and Planet Kernel — Kernel), Strahlungsdruck der Sonne (Kanonenkugelmodell mit konischem Kern- und Halbschattenmodell), atmosphärischen Widerstand (stückweise exponentielle Dichte nach Vallado, mitrotierende Atmosphäre), die post-newtonsche relativistische Schwarzschild-Korrektur und den Lense–Thirring-Term der Bezugssystemmitführung (IERS — International Earth Rotation and Reference Systems Service — Conventions 2010 §10, linear im Drehimpuls der Erde, ~1–2 Größenordnungen unter Schwarzschild) — angetrieben von einer Wahl aus zwei adaptiven Integratoren (RK4 — Runge-Kutta vierter Ordnung — mit Schrittverdopplung oder dem eingebetteten Paar Dormand–Prince RK5(4)). Validiert gegen Orekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 — 278 Epochen über LEO (niedriger Erdorbit) + GTO (geostationärer Transferorbit), die konservativen Kraftstufen stimmen bis zu einem ungünstigsten Fall von |Δr| 0,08 m über 24 h überein (tests/numerical_cowell_propagator_reference.rs); die Stufe des atmosphärischen Widerstands wird gesondert charakterisiert (≈ 333 m / 24 h), und die absoluten Eingaben der Sonnen-/Mond-Ephemeride und der Dichte bleiben ehrlich modelliert. Zusätzliche interne Belege (keine externe Validierung): Die ungestörte Umlaufbahn wird gegen die exakte Kepler-Lösung in universellen Variablen auf unter einen Meter über 24 h geprüft, Energie und Drehimpuls bleiben auf ~1e-9 erhalten, und jede Störung entspricht einer von Hand abgeleiteten geschlossenen Signatur.
Manöver & Trajektorienentwurf Impulsive ΔV-Knoten mit Kovarianzfortpflanzung 6×6 (ECI — erdzentriert inertial — / LVLH — lokale Vertikale, lokale Horizontale — Ausführungsfehler-Systeme), Integration endlicher Brenndauer, gegen die geschlossene Tsiolkovsky-Raketengleichung auf < 0,01 % geprüft, ein Lambert-Löser nach Izzo-2015 für eine Umdrehung, ein exakter Kepler-Propagator in universellen Variablen und ein Porkchop-Sweep (Start × Ankunft) von C3 (Startenergie) / Ankunfts-V∞ als JSON-Konturraster — die Ebene der Leistungssimulation oberhalb von GMAT/Orekit, wobei jede Lambert-Ausgabe gegen die Zweikörper-Wahrheit zurückgerechnet und das Porkchop-Minimum gegen die analytische Hohmann-Untergrenze geprüft wird.
Zeitsysteme und Bezugssysteme IERS-Schaltsekunden-Skalen UTC / TAI / TT / UT1 (Koordinierte Weltzeit, Internationale Atomzeit, Terrestrische Zeit und die Erdrotationszeit Universal Time 1), eine Julianisches-Datum-API (Programmierschnittstelle), der Erdrotationswinkel (ERA) der IAU-2000 (Internationale Astronomische Union), GMST-basiertes (Greenwich Mean Sidereal Time) TEME ↔ ECEF (wahrer Äquator, mittleres Äquinoktium ↔ erdzentriert, erdfest) mit geodätischen Systemen WGS-84 (World Geodetic System 1984), IAU-2006-Präzession (Fukushima–Williams), die vollständige Nutation IAU 2000A/2000B, die IERS-Polbewegung und die äquinoktiumfreie CIO-basierte Reduktion IAU 2006/2000A GCRS↔ITRS (CIO = Celestial Intermediate Origin) — alle Bit für Bit gegen die SOFA/ERFA-Vektoren validiert und unabhängig gegen ANISE gegengeprüft (die reine Rust-Neuimplementierung von NAIF/SPICE; NAIF = die Navigation and Ancillary Information Facility der NASA, der US-amerikanischen National Aeronautics and Space Administration): GCRS→ITRS von kshana gegen ITRF93 von ANISE (International Terrestrial Reference Frame 1993) aus earth_latest_high_prec.bpc von JPL, wobei dieselben IERS-Erdorientierungsparameter in beide eingespeist werden, stimmen auf ≤ 0,86 m am Boden / ≤ 3,6 m in GNSS-Umlaufbahn überein (max 0,028″) über acht Epochen 2020–2023.
Inertial Dreiachsiges Strapdown-INS — Quaternionen-Lage, WGS-84-NED-Mechanisierung (Nord-Ost-Unten), Coning-/Sculling-Kompensation und ein deterministisches IMU-Fehlermodell (Skalenfaktor, Fehlausrichtung, g-Empfindlichkeit, Quantisierung, Drift); ein Kaltatom-Interferometer-Beschleunigungsmesser aus ersten Prinzipien (Mach–Zehnder-Phase, Quantenprojektionsrauschen, Kontrastabfall, Schwingungskopplung), der den Koeffizienten des Geschwindigkeits-Zufallsgangs ableitet; und ein Partikelfilter mit sequentieller Wichtungs-Neuabtastung für kartengestützte (gelände-/schwerefeldreferenzierte) GPS-freie Navigation.
Alt-PNT (ohne GPS) Ein Messmodell für ein Kaltatom-Gravimeter, dessen Weißrauschen-Untergrenze (σ = ASD/√τ, ASD = spektrale Amplitudendichte) aus der Physik des CAI-Beschleunigungsmessers abgeleitet wird; ein Kugelflächenfunktions-Schwereanomaliefeld niedrigen Grades, voll normiert (gegen die geschlossenen Legendre-Funktionen und eine von Hand abgeleitete Einterm-Anomalie geprüft), plus synthetische Mascons; der Syntheseoperator für Schwerefunktionale (gravity_sh::gravity_magnitude / gravity_disturbance_mgal) — der „Kartenleser“, gegen den ein schwerefeldgestützter Navigator abgleicht — wird gegen den Normalschwerestandard GRS80 (Geodetic Reference System 1980) validiert, gibt die geschlossene Somigliana-Normalschwere und die veröffentlichten γ_e / γ_p auf 3.5e-12 wieder und erzeugt eine physikalisch beschränkte Störungskarte aus dem echten ICGEM-Feld (International Centre for Global Earth Models) EGM2008 (RMS — Effektivwert — ≈ 26 mGal, max ≈ 89 mGal bei d/o 70; tests/icgem_gravity_reference.rs); und ein Partikelfilter für den Schwerekartenabgleich, der aus der durchflogenen Anomaliefolge eine GPS-freie Spur zurückgewinnt. Er erstreckt sich auf geländereferenzierte Navigation (TERCOM/SITAN — Terrain Contour Matching / Sandia Inertial Terrain-Aided Navigation — gegen ein DEM (digitales Höhenmodell) der SRTM (Shuttle Radar Topography Mission) .hgt, src/altpnt/terrain.rs), ein geomagnetisches Hauptfeld IGRF-14 (International Geomagnetic Reference Field der 14. Generation) bis Grad/Ordnung 13 (src/igrf.rs, gegen die geschlossene Form des geneigten Dipols und ∇V-Finite-Differenzen geprüft) und einen kombinierten Navigator aus Schwere + Magnetik + Gelände, der alle drei skalaren Kanäle durch einen Partikelfilter fusioniert (Information ist additiv — kein Kanal verschlechtert die Lösung). Ein 60-Minuten-Benchmark ohne GPS (ein Ausfall von ~700 km / einer Stunde, in dem die inertiale Lösung auf ~70 km driftet) wird von einem hierarchischen Grob-zu-fein-Abgleicher auf ~145 m (< 500 m) zurückgewonnen — das Ziel Quantum Wayfarer des ESA NAVISP (Navigation Innovation and Support Programme).
Fusion Lose gekoppeltes 15-Zustands-GNSS/INS-Fehlerzustands-EKF (erweitertes Kalman-Filter) mit Rückkopplung im geschlossenen Kreis (das Paket gnss-ins); eine eng gekoppelte Pseudoentfernungsaktualisierung, die auch mit weniger als vier Satelliten weiter korrigiert; ein gekoppeltes Filter für Uhr + Position; ein allgemeiner Unscented-(Sigma-Punkt-)Kalman-Schätzer für stark nichtlineare Messungen; ein eng gekoppelter GNSS/INS-UKF-Navigator (Pseudoentfernung + Doppler), dessen Bahn-Coast mit Kraftmodell auf Selbstkonsistenz auf 0,77 m RMS über einen 30-minütigen gekrümmten LEO-Überflug mit einem GNSS-Ausfall von 120 Sekunden geprüft wird (eine Filterkonsistenzgröße, keine Validierung gegen eine externe unabhängige Referenz — dieser Navigator bleibt MODELLED); und ein vollständiger eng gekoppelter 17-Zustands-GNSS/INS-UKF (Position, Geschwindigkeit, Lagefehler, Beschleunigungsmesser- und Kreiselbiase, Uhrenversatz und -drift), dessen Quanten-CAI-Koppelnavigation einen Ausfall von 120 Sekunden auf dem abgeleiteten Geschwindigkeits-Zufallsgang des Kaltatom-Beschleunigungsmessers überbrückt.
Bahnbestimmung Wiedergewinnung eines Bahnzustands [r, v] aus der Entfernungsverfolgung durch Bodenstationen, mit dem Kraftmodell aus Zweikörper + J2 und dem RK4-Integrator, zusammen mit einem Gauss–Newton-Batch-Korrektor (determine_orbit_batch, unter einem Meter / mm·s⁻¹ aus rauschfreien Entfernungen, ~2 m bei einer Rauschuntergrenze von 5 m) und einer sequentiellen Unscented-Filter-Variante (determine_orbit_sequential).
Beobachtbarkeit & Schätztheorie Eine allgemeine, wiederverwendbare Schicht für Fisher-Information / Cramér–Rao (src/fim.rs): die Informationsmatrix M = HᵀWH, die untere Cramér–Rao-Schranke, der Rang der Beobachtbarkeit und der Nullraum der Datumsdefekte (Moore–Penrose-Pseudoinverse) und D/A/E/T-optimale Versuchsplanungsgrößen aus einem symmetrischen Jacobi-Eigenlöser. Validiert — Eigenwerte gegen numpy.linalg.eigh, die CRLB-Kovarianz gegen σ²(XᵀX)⁻¹ über numpy.linalg.inv und GNSS-DOP aus der Informationsmatrix, alle auf 1e-9 übereinstimmend (tests/fim_observability_reference.rs), und zusätzlich gegengeprüft gegen die geschlossenen Schranken von Kay (1993) mit Monte-Carlo-Erreichen der CRLB. Sie bildet die Grundlage der DOP-Engine, der CRLB der passiven Geolokalisierung und des Beobachtbarkeitssatzes für absolute Mondstationen (unten).
Lunar & cislunar Ein Erde–Mond-Propagator des kreisförmigen eingeschränkten Dreikörperproblems (CR3BP) im rotierenden System — erhaltene Jacobi-Konstante und alle fünf Lagrange-Punkte (src/cr3bp.rs) — nun mit einer Zustandsübergangsmatrix (STM) 6×6 und einem differentiellen Einzelschießkorrektor (cr3bp_jacobian, propagate_state_stm, differential_correct_halo), der wirklich periodische Halo-/NRHO-Umlaufbahnen (Near-Rectilinear Halo Orbit) erzeugt: Die STM wird gegen finite Differenzen validiert, korrigierte Umlaufbahnen schließen sich bis auf Maschinengenauigkeit, und das Ansetzen des veröffentlichten Apolun-Zustands reproduziert die südliche L2-NRHO 9:2 (L2 = der zweite Lagrange-Punkt Erde–Mond; die Gateway-Umlaufbahn) mit einer Periode von ≈ 6,57 d / einem Perilun von ≈ 3.250 km, konsistent mit den veröffentlichten ≈ 6,56 d / ≈ 3.370 km (eine Lösung des CR3BP — kreisförmig, ohne Sonne —, nicht gegen eine echte Ephemeride von LANS (Lunar Augmented Navigation Service)/Gateway validiert; die selenozentrische MCI/MCMF-Transformation (mondzentriert inertial / mondzentriert, mondfest) der korrigierten Umlaufbahn ist ein Folgeschritt); dazu LunaNet / LNIS-Geometrie (LunaNet Interoperability Specification) für cislunares PNT (Reduktion MCI↔MCMF, selenographische Koordinaten) mit einem ARAIM-Durchlauf am lunaren Südpol, der die Integritätslücke ehrlich zutage fördert: Ein σ_URE (Nutzerentfernungsfehler) von ~30 m treibt das Schutzniveau weit über eine Alarmgrenze von 50 m (src/lunar.rs, scenarios/lunanet-araim.toml); und eine DOP-Augmentation durch Oberflächenbaken (src/lunar_beacon.rs), die zeigt, wie einige vermessene Entfernungsmessbaken auf der Oberfläche die flachen, azimutweiten Sichtlinienzeilen liefern, die einem rein oberhalb stehenden, nur aus Umlaufbahnen bestehenden Satz fehlen — sie lassen das schlecht konditionierte GDOP am Südpol und, über ein Wurzel-Summe-der-Quadrate-Fehlerbudget, die erreichte Positionsgenauigkeit in Metern kollabieren (unter Wiederverwendung des gegen gnss_lib_py validierten DOP-Kerns und der geschlossenen Form der Sichtbarkeit am luftlosen Horizont; die Analyse der Dilution of Precision ist in arXiv:2607,06212 beschrieben).
Lunare PNT-Suite Eine lunare/cislunare Navigationssuite auf dem CR3BP-Kern, jede ein ausführbares kind: Lunar Coordinate Time (lunar-time-offset, src/lunar_time.rs — die säkulare Rate LTC/TCL − TT (LTC = Lunar Coordinate Time; TCL = ihre französische Form, Temps-Coordonnée Lunaire) aus der Eigenpotentialdifferenz + kinetischem Term, berichtet mit dem veröffentlichten Band von 56–59 µs/Tag); eine geodätische lunare VLBI-Laufzeit-Observable (Very-Long-Baseline-Interferometrie) (lunar-vlbi, src/lunar_vlbi.rs — eine Nahfeld-Zweientfernungsdifferenz-Laufzeit + Rate auf einer Erdbasislinie, im Fernfeldgrenzfall gegen das Ebenenwellen-Δ-DOR (delta differential one-way ranging) derselben Codebasis gegengeprüft, Ableitungen durch finite Differenzen verifiziert); ein gemeinsamer Batch-Schätzer für Mehrtechnik-OD + Uhr (lunar-joint-od-clock, src/lunar_combination.rs — eine Gauss–Newton-Anpassung, die VLBI + lunar-lokale Entfernungen + Inter-Satelliten-Entfernungen fusioniert) mit einem Ergebnis zur Fisher-Information-Beobachtbarkeit: Interne Entfernungsmessung allein lässt einen Datumsdefekt eines Starrkörpers mit sechs Freiheitsgraden, sodass die absolute Position einer Oberflächenstation nicht beobachtbar ist, bis eine Anbindung an das Erdsystem hinzukommt — eine VLBI-Laufzeit auf einer Erdbasislinie stellt die Beobachtbarkeit für eine spärliche Konstellation wieder her und schärft die Cramér–Rao-Schranke für eine reiche, wobei sich das absolute Datum bei drei nicht kollinearen Erdstationen schließt (das Beobachtbarkeitsergebnis ist in arXiv:2607,02566 beschrieben); Realisierung des Bezugssystems (lunar-frame-realisation, src/lunar_frame_realise.rs — eine Helmert-Datumsanpassung mit 7 Parametern + eine Orientierungsanbindung nach IAU 2015 WGCCRE — WGCCRE = die IAU-Arbeitsgruppe für kartographische Koordinaten und Rotationselemente); eine Analyse des Service Volume der Klasse Moonlight/LCNS (LCNS = Lunar Communications and Navigation Services; moonlight-service-volume, src/lunar_service.rs — DOP / Abdeckung / Verfügbarkeit + eine verallgemeinerte Hüllkurve des lunaren ARAIM-HPL/VPL (horizontales/vertikales Schutzniveau), unter Wiederverwendung des gegen gnss_lib_py validierten DOP-Kerns und der LunaNet-Mechanik σ_URE≈30 m); lunares differentielles PNT (lunar-differential-pnt, src/lunar_dpnt.rs — ein lunares Analogon zu differentiellem GNSS / satellitengestützten Ergänzungssystemen (SBAS): exakte Gleichtakt-Auslöschung des Uhrenfehlers + räumliche Dekorrelation erster Ordnung gegen die Basislinie, unter Wiederverwendung des SBAS-Schutzniveaus nach DO-229E — DO-229E ist der Mindestleistungsstandard der RTCA (früher Radio Technical Commission for Aeronautics) für SBAS-Empfänger); und ein an LunaNet/IOAG ausgerichteter Interoperabilitätsexport (IOAG = Interagency Operations Advisory Group; lunar-interop-export, src/lunar_interop.rs — CCSDS-OEM (Orbit Ephemeris Message) + Rundlauf der lunaren Zeitskala im lunaren Körpersystem nach IAU 2015, in den KIF-Umschlag verpackt). Die Evidenzstufen je Baustein stehen in der Verifikationsmatrix: Lunar Coordinate Time, der gemeinsame Schätzer OD + Uhr, die Realisierung des Bezugssystems und die Geometrie des Service Volume sind VALIDATED (jeweils gegen die unabhängige Referenz, die ihre Zeile nennt, ebenso der Kernpfad der VLBI-Laufzeit); die VLBI-Observable, das Beobachtbarkeitsergebnis zum Datumsdefekt, das differentielle PNT und der Interoperabilitätsexport sind MODELLED. Die Parameter sind illustrative Werte aus öffentlichen Quellen — nicht gegen reale VLBI-/Gateway-Verfolgung validiert, nicht mit einer Behörde verbunden oder von ihr unterstützt, keine Aussage zu TRL (Technologie-Reifegrad) / Flugerfahrung.
Deep-Space- & Mars-PNT Eine offene radiometrische Navigations-Engine: iterative Lichtlaufzeit + relativistische Shapiro-Verzögerung, Doppler und Entfernung in Zwei-/Ein-/Drei-Wege-Form (Moyer, zwei Abschnitte), kohärente Transponder-Umsetzverhältnisse, regenerative/PN-Entfernungsmessung (Pseudo-Noise) (CCSDS 414, der Standard für Pseudo-Noise-Entfernungsmessung) und Δ-DOR in der Himmelsebene (CCSDS 506, der Delta-DOR-Standard), mit Medien aus Sonnenplasma/Troposphäre/Ionosphäre; CCSDS-TDM (503), Parsen und Ausgeben der Tracking Data Message; ein reduziert-dynamischer Square-Root-Information-Filter (RTN — radial, transversal, normal — empirische Beschleunigungen + eine Bordzeituhr mit 3 Zuständen + Marsatmosphären-Widerstand), der in einem synthetischen geschlossenen Kreis eine Bahnbestimmung in niedriger Marsumlaufbahn (LMO) auf ≈ 0,2 m leistet; ein gemeinsamer Schätzer mit Fusion von Ein-Weg und Zwei-Wege; ein Dynamikkern für mehrere Körper (Body{μ, re, zonals, gravity, IAU-pole}, Gravitation nach Mars GMM-3 (Goddard Mars Model 3), ein IAU-körperfestes Marssystem, eine austauschbare Schnittstelle EphemerisProvider, zweiteilige Julianische Daten + TT↔TDB (Barycentric Dynamical Time)); und das Relais-PNT-Szenario mars-pnt (eine areostationäre MARCONI-Relais-Konstellation) mit einem durchgängigen GSE-Leistungssimulator (GSE = Bodenunterstützungsausrüstung) (Geometrie → Linkbudget → Observablen → SRIF → Kovarianz). Simulationsvalidiert (Kovarianz- / Closed-Loop-Gütegrößen); die Mars-Dynamik mit zentraler Sonne wird gegen JPL DE440 gegengeprüft (137 m @ 1-Tages-Bogen, xval/anise-mars-od). Die Validierung mit realen DSN-/ESTRACK-Tracking-Daten steht auf der Roadmap.
Sonnensystem und PNT um beliebige Körper Eine kernelfreie Ephemeride des gesamten Sonnensystems (src/ephem.rs, src/ephem_provider.rs): jeder Planet aus den Keplerschen Elementen von JPL nach Standish (Tabelle 1, 1800–2050 n. Chr.; Tabellen 2a/2b, 3000 v. Chr.–3000 n. Chr.) mit dem veröffentlichten Nominalfehler jedes Planeten, Erde und Mond durch die lunare Reihe getrennt, und Phobos, Deimos, Io, Europa, Ganymed, Kallisto und Titan aus mittleren JPL-Elementen und dem Rotationsmodell der IAU (Internationale Astronomische Union); jeder Körper relativ zu jedem anderen im ICRF (International Celestial Reference Frame). Body trägt nun GM (Gravitationsparameter), Radien, J2 (die zweite zonale Harmonische), wo veröffentlicht, und den IAU-Pol und Nullmeridian für achtzehn Körper. Der Typ solar-system berichtet Positionen, Geschwindigkeiten, Konstanten, Lichtlaufzeit und Ein-/Zwei-Wege-Entfernung zwischen zwei beliebigen Körpern (der bestehende radiometrische Lichtlaufzeit-Löser, mit der solaren Shapiro-Verzögerung) und eine Bahnspur je Körper — genug, um ein interaktives Sonnensystem zu zeichnen; der Typ body-pnt positioniert einen Orbiter oder Lander um jeden Körper (scenarios/mars-orbit-pnt.toml, scenarios/europa-surface-pnt.toml) mit einer lokalen Walker-Konstellation, der Mechanik der Dilution of Precision und von Gauss–Newton und einer Deep-Space-Entfernung von der Erde. Validiert gegen JPL Horizons (DE441, JPL Development Ephemeris 441): Merkur–Saturn und die Erde aus Tabelle 1 innerhalb des Doppelten des Nominalfehlers (schlechtester Wert 1,87×), alle acht Planeten aus den Tabellen 2a/2b (schlechtester Wert 1,71×) und die Lichtlaufzeit Erde–Mars/Jupiter. Modelliert: Uranus und Neptun aus Tabelle 1 (2,0× und 5,2× der angegebenen Fehler gegenüber DE441), Pluto, die Monde und die Navigationsergebnisse von body-pnt.
Fusioniertes MEO- + LEO-PNT src/leo_fusion/: systemunabhängige LEO-Positionierung, -Navigation und -Zeitgebung über jede Konstellation (Walker-Schalen, Elementsätze, GNSS-Voreinstellungen) und jedes Signal (Träger, Chiprate, C/N0-Hüllkurve, Entfernungsfehler im Signalraum), mit optionalen Ein-Datei-Voreinstellungen, die ihre Quellen mitführen (Xona Pulsar X1/X5, Iridium STL, Starlink-Gelegenheitssignale, CentiSpace, ein repräsentatives C-Band-System, das Ephemeridenmodell ATOMIC mit Nulluhr). leo-pvt: Doppler-Positionierung im Batch aus der Entfernungsrate (ein und mehrere Satelliten, Uhrendrift- und Geschwindigkeitszustände, Geometrie eines einzelnen Überflugs längs/quer zur Bahn und die Spiegellösung), gemeinsame gewichtete Kleinste-Quadrate-Lösung GNSS + LEO mit systemweisen Intersystem-Biases und vom Aufrufer gelieferten Sigmas je Signal, das DOP gegen die Anzahl der LEO-Satelliten, Abdeckung der Polar- und Arktisregion und LEO-Zeitübertragung nach UTC gegen C/N0 und Oszillator. leo-ppp: ein Float-PPP-EKF (Precise Point Positioning, erweitertes Kalman-Filter) nur mit GNSS und mit LEO, seine Konvergenzzeit und ein Chi-Quadrat-NEES-Konsistenztest. ntn-positioning: Positionierung im nichtterrestrischen 5G-Netz aus der Cramér-Rao-Schranke der Bandbreite. Validiert: die LEO-Doppler-Hüllkurve gegen die veröffentlichten Iridium- und Xona-Zahlen. Modelliert: der Rest, mit dem PPP-Trend verglichen mit Li et al. (2019) — siehe docs/LEO-PNT-FUSION.md.
Integrität RAIM (Receiver Autonomous Integrity Monitoring) als Snapshot und mit Lösungstrennung (ARAIM-Stil), mit horizontalen/vertikalen Schutzniveaus (HPL/VPL), Fehlererkennung und -ausschluss und Stanford-Integritätsdiagrammen; ein Schutzniveau mit explizitem Integritätsrisikobudget nach Mehrhypothesen-Lösungstrennung (MHSS), einschließlich des konstellationsweiten Fehlermodus für zwei oder mehr Konstellationen (ARAIM der EU (Europäische Union) / DO-316, der RTCA-Leistungsstandard für GPS-Bordausrüstung mit luftfahrzeugbasierter Ergänzung), geübt an einem echten GPS- + Galileo-Snapshot (scenarios/araim-gps-galileo.toml). Das Schutzniveau wendet die einseitige Projektion des nominalen Bias b_k = Σ_i|s_i|·b_nom je Fehlermodus an und das Integritäts-Sigma σ_URA (User Range Accuracy; zu unterscheiden vom Genauigkeits-Sigma σ_URE, User Range Error) aus der Integrity Support Message — siehe docs/ARAIM_REFERENCE.md. Der Detektionskern (die Schwellenwerte χ²/nichtzentrales χ²/Normal und die K-Multiplikatoren) ist über 171 Fälle extern gegen SciPy validiert (tests/raim_reference.rs); die Geometrie verwendet den gegen gnss_lib_py validierten DOP-Kern wieder. Die Budgetaufteilung des Integritätsrisikos von ARAIM MHSS selbst hat keine veröffentlichte numerische unabhängige Referenz und bleibt ehrlich modelliert.
Ergänzung (SBAS) SBAS-/WAAS-Schutzniveaus (WAAS = das Wide Area Augmentation System) in der gewichteten Kleinste-Quadrate-Form nach DO-229E (K-Faktoren für Präzisionsanflug und Streckenflug) und die ionosphärenfreie Zweifrequenz-Kombination L1/L5 (L1 und L5 sind zwei zivile GPS-Signalbänder; IS-GPS-705, die GPS-Schnittstellenspezifikation für das L5-Signal, γ₁₅ ≈ 1,793), die DO-316 zugrunde liegt — src/sbas.rs. Der Algorithmus des Schutzniveaus ist extern gegen den RTKLIB-SBAS-PL-Fork validiert (RTKLIB = die offene Bibliothek für Echtzeit-kinematische Positionierung; PL = Schutzniveau) (zsiki/rtklib_ws waasprotlevels(), Siki & Takács 2017, DO-229D — die vorherige Revision von DO-229 — Anh. J), ausgeführt auf echten EGNOS-Daten (European Geostationary Navigation Overlay Service), wobei sein HPL auf < 2e-3 m reproduziert wird (tests/sbas_reference.rs); gLAB (die GNSS-Laboratory-Werkzeugsammlung) v6.0.0 bestätigte dieselbe Konvention.
Uhr & Zeitgebung Kalman-Holdover mit zwei Zuständen (Kovarianz in Joseph-Form, NIS/NEES — normierter quadrierter Innovationsfehler / normierter quadrierter Schätzfehler — Konsistenzgüte); Stabilität der Allan-Familie (ADEV / MDEV / TDEV / HDEV / MTIE — Allan-, modifizierte Allan-, Zeit- und Hadamard-Abweichung und maximaler Zeitintervallfehler) mit rauschtypspezifischen Konfidenzintervallen und einer vollständigen Potenzgesetz-Anpassung mit fünf Koeffizienten nach IEEE-1139 (IEEE Std 1139, die Definitionen der Frequenz- und Zeitmetrologie des Institute of Electrical and Electronics Engineers) — die Schätzer sind an echter Hardware gegen Stable32 validiert: ein echter Cäsium-Primärstandard 5071A gegen einen Wasserstoff-Maser (556.990 Phasenproben, 16 Mittelungsfaktoren, OADEV/OHDEV — überlappende Allan-/Hadamard-Abweichung — auf 1e-3; tests/cs5071a_reference.rs) und die kanonische Regressionsreihe Stable32 PHASE.DAT (139 Mittelungsfaktoren, OADEV/MDEV/TDEV auf 1e-3; tests/phasedat_reference.rs); die Schätzer ADEV/MDEV/TDEV und die Wander-Metrik MTIE der Telekommunikation werden zusätzlich gegen die unabhängige Bibliothek allantools 2024,06 auf < 1e-9 an der Reihe NIST SP 1065 gegengeprüft (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs); geometrische Korrekturen (Sagnac, GNSS-Common-View); und die operativen Übertragungsverfahren — TWSTFT (Zwei-Wege-Satelliten-Zeit- und Frequenzübertragung) mit der geschlossenen Sagnac-Form des BIPM (Internationales Büro für Maß und Gewicht), GNSS-Common-View, ionosphärenfreie Zeitübertragung mit PPP (Precise Point Positioning), eine optische Freiraumverbindung mit Turbulenz-Szintillation und eine Uhrenensemble-(Papier-)Zeitskala mit inverser Varianz unterhalb der besten beitragenden Uhr. Ein Holdover-Rechner für Uhren ohne GNSS (src/holdover.rs) stellt das geschlossene Wachstum des Coast-Fehlers nach van Loan als Umkehrung Holdover bis zum Schwellenwert dar — wie lange eine Uhr frei läuft, bevor ihr Zeitfehler das Budget überschreitet — über repräsentative klassische und Quantenuhr-Klassen; modelliert (gegen die mehrstufige Kovarianzrekursion clock_state gegengeprüft), und ehrlich darin, dass bei einer sehr stabilen Uhr der Holdover bis zu einem engen Schwellenwert von der angenommenen Langzeit-τ-Rauschuntergrenze bestimmt wird, nicht von der zitierten ADEV. Ein bedingtes Zeitgebungs-Schutzniveau (src/tpl.rs) erweitert den Holdover auf Spoofing: eine Schranke für den unentdeckten Zeitfehler, bei einer unabhängigen Gegenprüfung, die eine k-Sigma-Monitoruntergrenze, die van-Loan-Coast-Varianz über die Detektionslatenz und eine CUSUM-Zeit-bis-zum-Alarm (kumulative Summe) zusammensetzt. Kalibriert an einem echten aufgezeichneten Spoof (JammerTest 2024) und reproduzierbar über cargo run --example tpl_jammertest; MODELLED als Zusammensetzung (kein Integritätsrisiko-pro-Stunde-Budget), bedingt auf die Detektion — es gibt keine endliche unbedingte Schranke.
GNSS-Messungsbereich Vorwärts-Synthese von Pseudoentfernung / Doppler mit der Ionosphäre nach Klobuchar (Broadcast) und IONEX / TEC-Gitter (IONosphere map EXchange format / totaler Elektroneninhalt; gemessen) — einschließlich eines IONEX-Dateiparsers, Zeitinterpolation zwischen Karten und der Schrägneigungsabbildung der dünnen Schale —, der Troposphäre nach Saastamoinen + Niell und Snapshot-RAIM (HPL/VPL).
Resilienz Jamming im Linkbudget (J/S → effektives C/N₀ → Verlust der Verriegelung — Verhältnis Störer zu Signal, Verhältnis Trägerleistung zu Rauschleistungsdichte —, wobei der Antijam-Faktor der spektralen Trennung Q nun aus den tatsächlichen Leistungsspektren von Signal und Störer abgeleitet wird, über src/navsignal.rs — Q = 1/(R_c·κ), in der CI gegen die frühere repräsentative Konstante gegengeprüft); ein stochastischer Zeit-Spoof-Detektor (Neyman–Pearson / χ²₁-Energietest mit geschlossenem und Monte-Carlo-P_fa/P_md und einer Sicherheitsgütegröße (FoM) von 1 − P_md); und ein mehrschichtiger Spoof-Detektor, der einen RAIM-Konsistenz-Paritätstest (mit ehrlich modelliertem Gleichtakt-Blindfleck), einen HF-AGC-Leistungsmonitor (automatische Verstärkungsregelung) und einen Signalqualitätsmonitor (SQM — Signalqualitätsüberwachung, Early-minus-Late) fusioniert; und ein Fehlerbudget für Quanten-Inertial-Koppelnavigation (QuantumNavBudget, src/inertial/quantum_imu.rs), das das Weißrauschen des Geschwindigkeits-Zufallsgangs des Kaltatom-Interferometers mit Restbias (gegen den unabhängigen Integrator AccelModel gegengeprüft) und Skalenfaktorfehler zu einer Positionsdrift über den Holdover zusammensetzt — der inertiale Zwilling des Uhren-Holdovers. Eine an Rahmenwerken ausgerichtete Engine zur Resilienzbewertung (src/resilience/) bildet das simulierte Verhalten einer Architektur auf Teilwerte je Dimension über die sieben eigenen Resilienzkategorien von Kshana ab (nicht DHS-Begriffe), ausgerichtet am Resilient PNT Conformance Framework des US-Heimatschutzministeriums, und untersucht dann die Entscheidungsstabilität jedes einzelnen Gesamtwerts oder Reifegrads unter einem Dirichlet-Gewichtungssimplex und einem Ensemble aus fünf Bedrohungen — Kendall-τ-Rangunbeständigkeit, Wechselrate des Top-1-Spitzenreiters und Diversitätskollaps im Gleichtakt (Hill-N2), mit einem integritätsgehashten Zusicherungsbericht (35 von Hand abgeleitete Tests gegen unabhängige Referenzen). Reproduzierbar über cargo run --example resilience_report; MODELLED synthetische Architekturen, eine Selbstbewertung, ausgerichtet an RPCF v2.0, keine Zertifizierung. Siehe docs/RESILIENCE-CROSSWALK.md.
Passive HF-Geolokalisierung TDOA/FDOA-Geolokalisierung von Emittern (Zeit-/Frequenzdifferenz der Ankunft; src/geolocation.rs) — einen Jammer oder Spoofer (oder eine Gelegenheitsquelle für Reverse-PNT) aus Laufzeitdifferenz-Hyperboloiden über ein Empfängernetz lokalisieren, gelöst durch Gauss–Newton-Kleinste-Quadrate; das Hinzufügen der Frequenzdifferenz der Ankunft mit bewegten Empfängern gewinnt gemeinsam Position und Geschwindigkeit des Emitters zurück, mit der Cramér–Rao-Schranke für die Positionskovarianz, abgeleitet aus der Netzgeometrie. MODELLED (unabhängige Referenzen zur inneren Konsistenz: Vorwärts→Rückwärts-Rundläufe, die Identität J·CRLB = I, Monotonie des GDOP und der Schätzer, der unter Monte-Carlo seine eigene CRLB erreicht) — ein Punktquellenmodell mit Sichtlinie, ohne Terme für Mehrwege / NLOS (Nicht-Sichtlinie), Empfängeruhrenversatz oder Refraktion.
Navigationssignal und Code-Tracking Die Signalebene zwischen Linkbudget und Messbereich (src/navsignal.rs): spektrale Leistungsdichten (PSDs) mit Einheitsfläche für BPSK-R(n) (binäre Phasenumtastung mit rechteckigen Chips) und sine-BOC(m,n) (binärer Offset-Träger); der Koeffizient der spektralen Trennung (SSC) κ = ∫ G_s·G_i df, der das Antijam-Q ableitet, das das Jamming-Modell verwendet (Q = 1/(R_c·κ)), aus den tatsächlichen Spektren von Signal und Störer statt aus einer repräsentativen Konstante; die RMS-Bandbreite (Gabor) (BOC > BPSK — das Maß der Entfernungsinformation / Cramér–Rao); der thermische Rauschjitter der kohärenten Early–Late-DLL-Codeverfolgung (DLL = Delay-Lock-Loop; Kaplan & Hegarty; ~unter einem Meter für C/A — den groben GPS-Erfassungscode — bei 45 dB-Hz); und die Hüllkurve des Mehrwegefehlers (kohärentes EML, Early-minus-Late — Unterdrückung durch schmalen Korrelator). Gegen geschlossene Ankerwerte validiert (BPSK-Eigen-SSC = 2/(3·R_c), PSDs mit Einheitsfläche, C/A-Jitter unter einem Meter). Dies ist eine Analyse der Signal-Leistung, kein Hardwareentwurf von Antenne / HF-Nutzlast (die Rolle eines Nutzlastpartners).
Interoperabilität RINEX-3-Einlesen von Broadcast-Ephemeriden mehrerer GNSS (GPS, Galileo, QZSS — das japanische Quasi-Zenith Satellite System —, BeiDou MEO/IGSO — mittlere Erdumlaufbahn / geneigte geosynchrone Umlaufbahn — über IS-GPS-200, die GPS-Schnittstellenspezifikation; GLONASS, das russische Global Navigation Satellite System, über PZ-90 — das russische Datum Parametry Zemli 1990 — Zustandsvektor-RK4), nutzbar als Konstellationsquelle (RINEX hinein, PNT-Geometrie heraus); ein RINEX-3-Parser für Beobachtungen (Pseudoentfernung, Trägerphase, Doppler, Signalstärke; das Beobachtungslayout 4,00 soll sich parsen lassen, ist aber ungetestet, und RINEX-4-Navigationsdateien werden namentlich abgelehnt statt falsch dekodiert), der nun einen Löser für Einzelpunktpositionierung (SPP) speist (pvt) — echte Codebeobachtungen hinein, eine echte Empfängerposition heraus, validiert an IGS-Daten; ein Leser/Schreiber für SP3-c/d-Präzisionsephemeriden mit Lagrange-Interpolation 9. Ordnung; und CCSDS-OEM 2,0 + OMM-Export (Orbit Mean-elements Message) für Flugdynamikwerkzeuge (GMAT, Orekit, STK — Systems Tool Kit); und CCSDS-TDM (503), Parsen und Ausgeben der Tracking Data Message für radiometrische Verfolgung im tiefen Weltraum.
Missionsanalyse (Systems Engineering) Missionsentwurfs-Budgets erster Ordnung, jedes ein ausführbarer Typ: Start- und Aufstiegsgeometrie im Zweikörpermodell (launch-window — Startazimut sin Az = cos i/cos lat, minimale Inklination, Bonus durch die Erdrotation, Δv des Dogleg-Ebenenwechsels, tägliche Gelegenheiten; src/launch.rs); ein ballistischer Wiedereintrittskorridor nach Allen–Eggers (reentry — Spitzenverzögerung, Geschwindigkeit/Höhe bei Spitzen-g, Geschwindigkeit bei Spitzenerwärmung; src/reentry.rs); Abdeckungsgeometrie der Erdbeobachtung (eo-coverage — Streifenbreite / GSD am Nadir (Bodenabtastabstand) / Zugriff außerhalb des Nadirs / Wiederbesuch über das Raumdreieck der SMAD (Space Mission Analysis and Design); src/eo_payload.rs); ein 3-DOF-Fehlerbudget für Lage und Ausrichtung (drei Freiheitsgrade; attitude-budget — ungünstigstes Gravitationsgradientenmoment + RSS-Ausrichtungsbudget (Wurzel aus der Summe der Quadrate); src/attitude_budget.rs); Überflugvorhersage für Bodenstationen (passes — AOS/TCA/LOS, Beginn des Signalempfangs / Zeitpunkt der größten Annäherung / Verlust des Signals, maximale Elevation, Zugriffszeit; src/passes.rs); und ein Ein-Weg-Linkbudget über die Streckengleichung CCSDS 401 / DSN 810-005 (der CCSDS-Standard für Hochfrequenz und Modulation / das Handbuch zum Link-Entwurf des Deep Space Network; link-budget — FSPL (Freiraumdämpfung), C/N₀, Eb/N₀ (Verhältnis Energie je Bit zu Rauschleistungsdichte), Marge, Schließung; src/linkbudget.rs). MODELLED analytische Budgets erster Ordnung — die Ebene vor der Hardware unterhalb von STK/GMAT/Basilisk, kein Ersatz für 6-DoF oder Radiometrie.
Entscheidungsanalyse und Abwägung (MCDA) Eine vollständige Suite zur multikriteriellen Entscheidungsanalyse (MCDA) (src/mcda/), die alle vier Methodenfamilien umfasst — Wertaggregation (WSM, WPM, WASPAS — Modell der gewichteten Summe, Modell des gewichteten Produkts, gewichtete aggregierte Summen-Produkt-Bewertung), Abstand zum Ideal (TOPSIS, Technique for Order of Preference by Similarity to Ideal Solution), Kompromissprogrammierung (VIKOR, vom Serbischen für multikriterielle Optimierung und Kompromisslösung) und Outranking (PROMETHEE II, Preference Ranking Organization Method for Enrichment of Evaluations; ELECTRE I, vom Französischen für Elimination und Wahl, die die Realität ausdrückt), dazu das Verhältnissystem MOORA (Multi-Objective Optimization on the basis of Ratio Analysis) und das proportionale COPRAS (Complex Proportional Assessment) — mit der Prioritätsgewichtung per Paarvergleich AHP (Analytic Hierarchy Process) (Consistency Ratio), einer nicht dominierten Pareto-Front, Sensitivitätsanalyse der Gewichte und multiattributiver Nutzenbewertung. Die neun Aggregatoren reproduzieren die unabhängigen Bibliotheken Dritter pymcdm (WSM / WPM / WASPAS / MOORA / TOPSIS / VIKOR / PROMETHEE II) und pyDecision (ELECTRE I, COPRAS) auf < 1e-9, und der AHP-Prioritätsvektor + Consistency Ratio stimmen mit der Random-Index-Tabelle von Saaty und dem Haupteigenlöser von SciPy/LAPACK auf < 1e-9 überein (tests/mcda_*_reference.rs). VALIDATED — die Entscheidungsebene unter der Engine für Abwägungsstudien.
Weltraumumgebung Ein Umgebungsmodell für das Weltraumwetter (space-weather, src/space_weather.rs): solare (F10.7 / auf 81 Tage zentriertes F10.7a — der solare Radiofluss bei 10,7 cm) und geomagnetische (Kp, der planetarische K-Index, mit der definitorischen Tabelle Kp↔ap — ap ist seine lineare planetarische Amplitude) Aktivitätsindizes, die Jacchia-1971-Exosphärentemperatur, die sie antreiben (gegen veröffentlichtes Sonnenminimum/-mittel/-maximum validiert), und die aktivitätskorrigierte gegenüber der statischen neutralen Thermosphärendichte in der Höhe — die Abhängigkeit der Dichte vom Sonnenzyklus, die die statische Atmosphäre USSA76 (US Standard Atmosphere 1976) auslässt. MODELLED: eine kalibrierte Kopplung der Skalenhöhe erster Ordnung, keine datenvalidierte Atmosphäre (NRLMSISE — das Modell des US Naval Research Laboratory für Massenspektrometer und Incoherent-Scatter-Radar der Exosphäre).
Evaluierung & Abwägung für maschinelles Lernen Ein Testbed zur Bewertung der Erkennung von HF-Beeinträchtigungen (impairment-eval, src/impairment_eval.rs): ein beschrifteter, an Parametern verankerter synthetischer Korpus (nominal / Jamming / Spoof-Zeit / Spoof-Position / Mehrweg), ein detektorunabhängiger ROC/AUC-Prüfstand (Receiver Operating Characteristic / Fläche unter der Kurve), der jeden Detektor bewertet (energy | agc | sqm | parity | fused), mit Pd je Klasse (Wahrscheinlichkeit der Erkennung) bei einer Ziel-Pfa (Wahrscheinlichkeit des Fehlalarms), und der Optimismuslücke zwischen In- und Out-of-Distribution (Modus der Verteilungsverschiebung). Dazu ein Quanten-gegen-klassisch-PNT-Abwägungsmodell (quantum-trade, src/quantum_trade.rs), das den Zeitgebungs-/Inertial-Holdover-Nutzen einer Kandidatenuhr aus einer gemessenen ADEV-Kurve gegen eine klassische Basislinie quantifiziert, mit dem Vorbehalt zur Langzeit-τ-Untergrenze am Artefakt und einer Hüllkurve der Resilienz gegen die Zeit ohne GNSS. Die Metriken der Bewertung (AUC / Konfusionsmatrix / Pd-Pmd, Pmd ist die Wahrscheinlichkeit der verpassten Erkennung) sind auf exakte Übereinstimmung gegen scikit-learn 1.9.0 validiert — auch an echter ESA-OPS-SAT-Telemetrie (der Datensatz OPSSAT-AD zur Anomalieerkennung, Ruszczak et al. 2025, CC BY 4,0 — Creative Commons Attribution 4,0), wo die Mann–Whitney-ROC-AUC von Kshana das roc_auc_score von scikit-learn auf < 1e-9 auf dem zurückgehaltenen Testsplit reproduziert und ein transparenter Spitzenzähl-Detektor die beschrifteten Anomalien bei AUC ≈ 0,85 trennt (tests/opssat_ad_reference.rs) — und die numerischen Kerne der Abwägungs-Engine (ADEV-NNLS — nichtnegative kleinste Quadrate — Anpassung, χ²-Konsistenzbänder, van-Loan-Uhren-Q) gegen scipy 1.17.1; die darauf aufbauenden Zahlen zum Gerätenutzen bleiben MODELLED als Betriebskennlinien — nie Feld-/IQ-Daten (Inphase-/Quadratur-Abtastwerte), kein Gut/Schlecht-Urteil. Auf dem Testbed aufbauend bewertet eine tiefere Studie zur Optimismuslücke (src/impairment_study.rs, impairment_ml.rs, eval_stats.rs) ein Panel aus 13 Detektoren (Energie/AGC/SQM/Parität plus Detektoren mit logistischer Regression und einem MLP mit einer verdeckten Schicht — mehrschichtiges Perzeptron — mit festem Seed), passt Skalierungsgesetze In- gegen Out-of-Distribution mit einer Permutations-Nullverteilung an und lernt einen Leave-one-out-Prädiktor für die Out-of-Distribution-Verschlechterung aus In-Distribution-Statistiken (cargo run --example optimism_study). Ein Frontend für softwaredefinierte Empfänger (src/sdr.rs — rohes IQ/IF (Zwischenfrequenz) → Korrelator-Taps Early/Prompt/Late → SQM) und Adapter zum Einlesen realer Daten (src/realdata/ — RINEX, u-blox UBX (das binäre Protokoll von u-blox), GnssLogger, JammerTest, Yunnan, SatGrid) lassen dieselben Detektoren über lokal bereitgestellte Aufzeichnungen laufen (es werden keine Datensätze festgeschrieben). Die Crossover-Karte Quanten gegen klassisch für die Resilienz unter Parameterunsicherheit (src/crossover.rs; cargo run --bin crossover_study) erzeugt die Crossover-Studien zu Inertial und Uhr hinter den Ergebnisabbildungen neu.
Demonstrator für quantengestütztes PNT Drei ausführbare, MODELLED Anwendungsbereiche hinter der offenen Engine, die jeweils ehrliche TradeEvidence + einen Datensatz zu Repräsentativität / Lücken bis zum Flug ausgeben (src/representativeness.rs): vertrauenswürdige Quanten-Zeitübertragung (quantum-time-transfer, src/timetransfer_chain.rs — ein durchgängiges Budget aus optischer Gitteruhr + photonischer Verbindung gegen CSAC (chipgroße Atomuhr) + HF-Zwei-Wege, mit einem wiederverwendeten Zeitgebungs-Schutzniveau, einer Sicherheits-FoM gegen Verzögerungs-/Wiedereinspielungsangriffe (1 − P_md) und Erkennung von Uhrenanomalien + CUSUM-Latenz); GNSS-freie Quantennavigation (quantum-gnss-free-nav, src/quantum_nav_od.rs — ein inertialer Coast mit Kaltatom-Interferometer gegen ein INS der Navigationsklasse über einen GNSS-Ausfall, ehrlich darin, dass ohne externe Lösung der Beschleunigungsmesser-Bias nicht beobachtbar ist und der Fehler daher weiter wächst); und Fehler-/Anomalieerkennung in Quantensystemen (quantum-anomaly-detect, src/quantum_faults.rs — ein beschrifteter Fehlerkatalog mit einer ROC-AUC mit Bootstrap-Konfidenzintervall (KI) aus dem extern validierten eval_stats und einem minimal erkennbaren Fehler bei fester Fehlalarmrate). Eine gemeinsame Fehlermodell-Bibliothek für Quantengeräte (src/quantum_devices.rs) und ein einheitlicher Prüfstand für Quanten gegen klassisch (src/qtrade.rs) liegen ihnen zugrunde. Die validierten Kerne, auf denen sie aufsetzen (Bewertungsmetriken gegen scikit-learn, Abwägungskerne gegen scipy), werden wiederverwendet; die darauf aufbauenden Zahlen zum Gerätenutzen bleiben MODELLED — illustrative Geräte-/Link-Parameter aus öffentlichen Quellen, sie modellieren die Klasse, keine Aussage zu TRL / Flugerfahrung / Zertifizierung, keine Unterstützung durch eine Behörde.
Sparsames Engineering und Integritätswirkung Eine Sicht auf den ROI je Abdeckung (Kapitalrendite) (src/frugal.rs) — Kosten je Einheit gelieferter Abdeckung für eine Architekturabwägung — und eine Abbildung Erkennungsverfehlung → Integritätswirkung (src/integrity_impact.rs), die die Rate verpasster Erkennungen eines Monitors in seinen Beitrag zum Integritätsrisiko umrechnet. MODELLED Budgets zur Entscheidungsunterstützung, additiv.
Austausch von Artefakten Das Kshana Interchange Format (KIF) (src/interchange.rs) — ein versionierter, selbstbeschreibender Umschlag, der ein Szenarioergebnis mit seinem Typ, seiner Schemaversion und den Kennzeichnungen MODELLED/VALIDATED umhüllt, damit ein gespeichertes Artefakt selbstdokumentierend bleibt und ältere Umschläge vorwärtskompatibel lesbar bleiben.

Jede Fähigkeit ist als Rust-API, als ausführbares Szenario kind oder als beides erreichbar. Der Reifegrad je Fähigkeit — validiert, ausführbar oder Bibliothek — wird in docs/CAPABILITY.md verfolgt. Eine maschinell geprüfte Verifikationsmatrix (src/verification.rs) stellt den Querverweis Anforderung → Modul → Test → unabhängige Referenz → Status dar, mit unit-getesteten Ehrlichkeitsinvarianten, die ein Etikett validiert nur zulassen, wo eine unabhängige externe Referenz es stützt — und die die Hardware-/PA-Fähigkeiten (Produktsicherung) festhalten, die Kshana bewusst nicht bereitstellt.

Die vier Sensorpakete, wie zuerst veröffentlicht (Ergebnisse)

Ergebnisse#

Jedes Szenario vergleicht einen Quantensensor mit seinem klassischen Gegenstück über einen GNSS-Ausfall von ~1,8 h. Die Zahlen sind reproduzierbar (scenario + seed + version).

Was Quantensensoren bringen, wenn GNSS weg ist, Szenario Uhren-Holdover: Quanten halten 6600 s Autonomie gegenüber 2610 s klassisch, einen weit geringeren Zeitfehler und 100 % gegenüber 95,6 % Verfügbarkeit
Was Quantensensoren bringen, wenn GNSS weg ist — clock-holdover · Seed 42 · gezeichnet mit Engine 0.40.0, und jede Zahl oben wird bei jedem Build von tests/published_figures_still_reproduce.rs erneut gegen die aktuelle Engine geprüft · SVG

Der Vorteil hängt von Ausfall und Vibration ab, mit einem ausdrücklichen Break-even, wo klassisch gewinnt — ehrlich gezeigt über die Leiter der Technologiereife (Angaben zu optischen Uhren sind Ziele für Bodendemonstratoren; noch keine optische Strontium-Uhr ist geflogen):

Crossover Quanten gegen klassisch beim Uhren-Holdover über die Leiter der Technologiereife, mit Konfidenzbändern
Heatmap des inertialen Vorteils Quanten gegen klassisch über Ausfalldauer und Vibration, mit einer Break-even-Kontur, wo klassisch gewinnt
Crossover der Resilienz Quanten gegen klassisch — Uhren-Holdover auf der TRL-Leiter (oben) · Karte des inertialen Vorteils mit Break-even-Kontur (unten). Neu erzeugbar über cargo run --release --bin crossover_study.

Inertiale Koppelnavigation: Positionsfehler während eines GNSS-Ausfalls — der Quantensensor (Kaltatome) bleibt nahe der Spezifikationslinie, während der Sensor der Navigationsklasse auf Dutzende Kilometer divergiert
Positionsfehler der Koppelnavigation während eines GNSS-Ausfalls: Der Quantensensor (blau) bleibt flach nahe der Spezifikation; der klassische Sensor (rot) divergiert auf Dutzende Kilometer. Von Kshana aus scenarios/imu-deadreckoning.toml erzeugt.

Paket Szenario Quanten Klassisch
1 — Uhren-Holdover clock-holdover.toml (Spezifikation 20 ns) die optische Uhr hält den gesamten Ausfall die CSAC überschreitet die Spezifikation mitten im Ausfall
2 — Inertiale Koppelnavigation imu-deadreckoning.toml (Spezifikation 100 m) Kaltatome: ~41 m, hält den gesamten Ausfall Navigationsklasse: überschreitet nach ~350 s → Dutzende km
3 — Zeitübertragung (optische Inter-Satelliten-Verbindung) timetransfer.toml optisch: ~0,3 mm Entfernungsmessung HF (TWSTFT): ~150 mm Entfernungsmessung
4 — Hybride Fusion (Abschluss) hybrid-pnt.toml volle Position + Zeitgebung für den gesamten Ausfall positionsbegrenzt bei ~350 s

Der Abschluss zeigt die Fusionsthese: Die optische Inter-Satelliten-Zeitübertragung hält selbst eine klassische Uhr verriegelt und isoliert den inertialen Sensor als das schwache Glied der klassischen Ausstattung — also inertial mit Quanten und optische Zeitgebung zusammen.

Uhren-Holdover: Phasenfehler während eines GNSS-Ausfalls — die optische Uhr bleibt während des gesamten Ausfalls innerhalb der Spezifikation von 20 ns, während die chipgroße Uhr sie mitten im Ausfall überschreitet
Uhren-Holdover durch einen GNSS-Ausfall: Die optische Uhr (blau) bleibt für den gesamten Coast innerhalb der Spezifikation von 20 ns; die chipgroße Uhr (rot) überschreitet sie auf halbem Weg. Von Kshana aus scenarios/clock-holdover.toml erzeugt.

Ein weiteres Szenario, orbit-gnss-challenged.toml, leitet die GNSS-Verfügbarkeit aus der Bahngeometrie ab statt aus von Hand verfassten Fenstern: Ein Raumfahrzeug innerhalb der GNSS-Schale wird gegen eine GPS-ähnliche Walker-Konstellation propagiert, und die Anzahl sichtbarer Satelliten (Sichtlinie, Erdverdeckung, Elevationsmaske) legt in jedem Schritt den Lösungszustand fest. Über einen Tag hinweg ist der Nutzer nur ~59 % der Zeit in der Lösung; die Quantenuhr hält eine Zeitlösung von 5 ns durch jede Lücke (Verfügbarkeit 1.0), die chipgroße Uhr nur ~0.83.

Orbit mit GNSS-Einschränkung: Uhren-Zeitfehler über einen Tag für ein Raumfahrzeug innerhalb der GNSS-Schale, wo die Abdeckungslücken aus der Bahngeometrie abgeleitet sind — die optische Uhr bleibt über die Lücken innerhalb der Spezifikation von 5 ns, während die chipgroße Uhr sie überschreitet
Zeitfehler über einen Tag mit aus der Bahngeometrie abgeleiteter GNSS-Verfügbarkeit: Die Anzahl sichtbarer Satelliten (Sichtlinie, Erdverdeckung, Elevationsmaske) legt in jedem Schritt den Lösungszustand fest, die Uhr muss also jede Lücke überbrücken — die optische Uhr hält die Spezifikation von 5 ns, während die chipgroße Uhr sie überschreitet. Von Kshana aus scenarios/orbit-gnss-challenged.toml erzeugt.

Die Konstellation kann auch als echte Two-Line-Element-Sätze (TLEs) angegeben werden. Ein vollständiges TLE (Zeile 1 + Zeile 2) wird mit dem vollen Modell SGP4/SDP4 propagiert — einschließlich atmosphärischem Widerstand und der Tiefraum-Terme von Mond und Sonne sowie der Resonanzterme von 12 h / 24 h, die für GNSS-Umlaufbahnen von ~12 h zählen — und gegen die offiziellen Vektoren AIAA 2006-6753 auf einen ungünstigsten Fall von ≈ 4 mm validiert. scenarios/orbit-sgp4-gps.toml liefert einen echten Celestrak-Schnappschuss gps-ops der operativen GPS-Konstellation (2021-07-28, 30 Satelliten) und verlangt gültige TLE-Prüfsummen — Two-Line-Element-Sätze sind offene Daten aus dem Katalog der US Space Force / des 18th Space Defense Squadron, von Celestrak weiterverbreitet (Dr. T. S. Kelso, celestrak.org); aktualisieren mit scripts/fetch_tles.sh. Ein Block nur mit Zeile 2 behält die analytische Zweikörper-Propagation (scenarios/orbit-real-tle.toml); beide Formen lassen sich in einer Konstellation mischen. Eine Konstellation lässt sich ebenso aus einem Block von RINEX-3-GPS-Broadcast-Ephemeriden-Datensätzen aufbauen — dem Format, das ein Empfänger dekodiert —, mit dem Algorithmus für Nutzer nach IS-GPS-200 propagiert und durch dieselbe Geometrie geführt (scenarios/orbit-rinex.toml).

Was es ist / nicht ist, vollständig

Was es ist / nicht ist#

Es ist: eine deterministische, abhängigkeitsarme Engine über den gesamten PNT-Stapel — Bahngeometrie, Inertialnavigation, GNSS/INS-Fusion, Integrität, Uhren und Zeitgebung. Sie führt ein Szenario aus (oft einen GNSS-Ausfall), entwickelt kalibrierte Sensorfehlermodelle durch den passenden Schätzer weiter und bewertet das Ergebnis gegen die operativen Gütegrößen — und gibt ein reproduzierbares JSON-Ergebnis (JavaScript Object Notation) und ein SVG-Diagramm aus, aus einer Rust-Bibliothek, einer Kommandozeilenschnittstelle (CLI), einer Python-Erweiterung, einem WebAssembly-Modul im Browser, einem Model-Context-Protocol-Server (MCP) für KI-Agenten oder einem Plugin für JetBrains-IDEs (integrierte Entwicklungsumgebung).

Es ist nicht: Flughardware, ein Entwurf einer Quanten-Nutzlast, ein vollständiger GNSS-Signalempfänger, ein Simulator für Hochfrequenzsignale (HF) oder ein Hardware-in-the-Loop-Aufbau oder ein zertifiziertes Avionikprodukt — und es ersetzt weder MATLAB/Simulink noch STK (Systems Tool Kit) noch Orekit; es steht neben ihnen und tauscht Dateien mit ihnen aus. Die Treue zur Quantenhardware stammt aus veröffentlichten Fehlermodellen, nicht aus diesem Werkzeug. Der granulare Reifegrad jeder Fähigkeit ist in docs/CAPABILITY.md dokumentiert.

Es ist (noch) nicht: eine vollständige Physik-Engine der Atominterferometrie (die meisten Quantensensoren verbrauchen veröffentlichte Allan-/Rauschbudget-Koeffizienten; der CAI-Beschleunigungsmesser (Kaltatom-Interferometer) hat eine Schicht aus ersten Prinzipien — Mach–Zehnder-Phase, Projektionsrauschen, Kontrastabfall und Schwingungskopplung, plus Coriolis- und Lichtverschiebungs-Systematiken —, aber Wellenfront-Systematiken und die Auflösung der Streifenmehrdeutigkeit bleiben eine Roadmap-Schicht P2 (Roadmap-Phase 2, die Schicht der Quantenphysik), siehe ROADMAP.md und docs/QUANTUM-MODELS.md); ein zertifizierter oder Hardware-GNSS-Empfänger (er löst eine Einzelpunkt-PVT-Positionslösung (Position, Geschwindigkeit und Zeit) aus echten RINEX-Codebeobachtungen (Receiver Independent Exchange Format) — validiert an echten IGS-Daten (International GNSS Service) — und seine IQ-Schicht (kshana iq, seit 0.31.0) erfasst und verfolgt aufgezeichnete oder erzeugte Basisband-Abtastwerte in Software, als Analyseempfänger: Er steuert keine Funkhardware an und sendet nicht, ist kein zertifizierter Empfänger und leistet keine Trägerphasen-Positionierung (RTK oder PPP)); oder eine vollständige Suite für den Missionsentwurf (er hat Bausteine für Lambert / Porkchop / Manöver / Bahnbestimmung, ist aber die Ebene der Leistungssimulation oberhalb von GMAT (General Mission Analysis Tool)/Orekit, kein Ersatz). Diesen Umfang zu besitzen ist Absicht. Wenn Sie Fehlerbudgets für Kaltatom-Interferometer aus ersten Prinzipien brauchen (z. B. in der Güte von CARIOQA-PMP — Cold Atom Rubidium Interferometry in Orbit for Quantum Accelerometry, Pathfinder Mission Preparation — oder eine Validierung im Stil von X-37B), siehe die Roadmap P2 und nehmen Sie Kontakt auf, um zusammenzuarbeiten.

Navigation im niedrigen Erdorbit#

Satelliten im niedrigen Erdorbit (LEO) ziehen schnell und laut vorbei. Der Typ leo-pnt-chain folgt einem System durch jede Stufe: das Signal, den Überflug und seine Verbindung, die Navigationsnachricht und die fusionierte Lösung aus Position, Geschwindigkeit und Zeit (PVT) sowie Precise Point Positioning (PPP). Jede Stufe reicht ihre Zahlen an die nächste weiter. Siehe docs/LEO-PNT.md.

Die LEO-PNT-Kette aus einem echten Lauf von leo-pnt-chain (leo-pnt-end-to-end.toml): Die Signalstufe (generic-l bei 1191,795 MHz, Pilot verfolgt mit 10,23 Mchip/s) übergibt an die Überflugstufe (1080 km, verfolgte C/N0-Spitze 58,2 dB-Hz), diese übergibt an die Navigationsnachricht (kepler-rac, Anpassung über 300 s, Darstellungs-SISRE 0,91 mm RMS, 0,250 m mit Bahnbestimmung), die die fusionierte Lösung speist (nur GNSS 1,60 m RMS 3D, GNSS plus LEO 0,43 m) und Precise Point Positioning (Konvergenz 11,5 min nur mit GNSS, 7,5 min mit 240 LEO-Satelliten). 11 Werte werden zwischen den Stufen übergeben.Die LEO-PNT-Kette aus einem echten Lauf von leo-pnt-chain (leo-pnt-end-to-end.toml): Die Signalstufe (generic-l bei 1191,795 MHz, Pilot verfolgt mit 10,23 Mchip/s) übergibt an die Überflugstufe (1080 km, verfolgte C/N0-Spitze 58,2 dB-Hz), diese übergibt an die Navigationsnachricht (kepler-rac, Anpassung über 300 s, Darstellungs-SISRE 0,91 mm RMS, 0,250 m mit Bahnbestimmung), die die fusionierte Lösung speist (nur GNSS 1,60 m RMS 3D, GNSS plus LEO 0,43 m) und Precise Point Positioning (Konvergenz 11,5 min nur mit GNSS, 7,5 min mit 240 LEO-Satelliten). 11 Werte werden zwischen den Stufen übergeben.

Jeder Szenariotyp nach Familie#

Die Szenariotypen der Engine, nach Familien abgelegt. Jede Familie hat eine Seite mit einem Eintrag je Typ (die Beschreibung und die Felder der Engine, ein Beispielbefehl, Kennzahlen aus einem Lauf, die Zeilen der Verifikationsmatrix, die ihn nennen, und das Diagramm, das die Engine selbst schreibt) und einem Kontaktbogen dieser Diagramme; docs/KINDS.md indiziert sie alle. Die Tabelle wird von tools/gen_readme_blocks.py geschrieben und die Seiten von tools/gen_kinds_index.py, und beide schlagen fehl, wenn die Engine einen Typ erhält, den keine Familie nennt.

Familie Was es beantwortet Arten Einen ausführen
Uhren, Zeitgebung und Holdover wie lange eine Uhr ohne GNSS die Zeit hält und wie sich ein Zeitgebungssystem gegen seine Masken schlägt clock, sweep, sweep-nd, telecom-timing, slot-timing, timetransfer, time-transfer-budget, holdover-test, quantum-time-transfer kshana scenarios/clock-holdover.toml
Inertial-, Fusions- und Quantensensoren Koppelnavigation und Sensorfusion durch einen GNSS-Ausfall, mit klassischen und Quantensensoren inertial, hybrid, fusion, hybrid-ukf, gnss-ins, ins-trn-coast, quantum-gnss-free-nav, quantum-anomaly-detect, quantum-trade kshana scenarios/gnss-ins.toml
Alternative PNT bei GPS-Ausfall Navigation aus Schwere, Gelände und anderen Feldern, wenn GNSS weg ist gravity-map, terrain-nav, terrain-slam, combined-altpnt, conflict-resilience kshana scenarios/combined-altpnt.toml
Konstellationen, Abdeckung und Geometrie wo Satelliten sind, wer sie sieht und wie gut die Geometrie ist, um die Erde, den Mond oder den Mars orbit, ephemeris, constellation-design, solar-system, body-pnt, mars-pnt, passes kshana scenarios/orbit-gnss-challenged.toml
GNSS-Messungen, Positionierung und Integrität Pseudoentfernungen, Positionslösungen, Schutzniveaus und die Weltraumumgebung integrity, gnss-sim, pvt, araim-reference-check, space-weather, realtime-frame-eop kshana scenarios/integrity-raim.toml
Jamming, Spoofing und das Spektrum wie Störungen einen Empfänger erreichen und ob sie erkannt werden jamming, spoof, spoof-detect, tracking-loop, spectrum, impairment-eval kshana scenarios/jamming-demo.toml
Navigation im niedrigen Erdorbit ein Überflug, eine Verbindung, eine Navigationsnachricht und eine fusionierte Lösung, Stufe für Stufe leo-signal, leo-pass, leo-navmsg, leo-pvt, leo-ppp, ntn-positioning, leo-pnt-chain kshana scenarios/leo-pnt-end-to-end.toml
Mond und cislunar Navigation, Zeit, Bezugssysteme und Geodäsie am Mond lunar-integrity, lunar-time-offset, lunar-time-budget, lunar-ascent, lunar-surface, lunar-descent, lunar-orbit-rendezvous, lunar-vlbi, lunar-vlbi-fim, lunar-joint-od-clock, lunar-frame-realisation, lunar-frame-campaign, lunar-llr-datum, moonlight-service-volume, lunar-differential-pnt, lunar-station-coverage, lunar-beacon, lunar-interop-export, cislunar-observability, cislunar-arc-recovery, lunar-attack-surface, lunar-jamming, earth-gnss-lunar, lunar-infrastructure kshana scenarios/lunar-infrastructure-od-consistency.toml
Navigation für Raumfahrzeugnutzer GNSS-Signale für Raumfahrzeuge oberhalb, im Bereich und jenseits der GNSS-Umlaufbahnen gnss-ssv kshana scenarios/gnss-ssv-shell.toml
Optische PNT optische Verbindungen durch die Atmosphäre und Gütegrößen für optisch plus HF optical-atmosphere, hybrid-optical-rf kshana scenarios/optical-atmosphere-network.toml
Missionsanalyse, Funkstrecken und Raumfahrtbetrieb Start, Aufstieg, Wiedereintritt, Lage, Verbindungen, Kontaktplanung und Dateiformate 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
Missionsstränge das Fehlerbudget für Navigation und Zeitgebung einer Phasenkette vom Start bis zum Wiedereintritt mission-thread kshana scenarios/mission-thread-artemis-class.toml
Kampagnen verkettete Missionen, Sweeps und Ensembles, aus den anderen Typen aufgebaut campaign kshana scenarios/campaign-jam-spoof-holdover-integrity.toml

Jeder Befehl#

kshana <scenario.toml> führt ein Szenario aus; jeder andere Befehl ist ein Unterbefehl, und kshana --help gibt die Nutzung aller aus. Die Befehle sind --study, --validate, kinds, example, receiver-trust (mit live und 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 und skyline. docs/COMMANDS.md nennt für jeden seinen Zweck, ein geprüftes Beispiel und seine Dokumentationsseite.

Jede Oberfläche#

Eine Engine, überall dieselben Ergebnisse: die Kommandozeile, die Rust-Bibliothek, Python, JavaScript und WebAssembly, der MCP-Server mit seinen Plugin-Befehlen und Skills, Kshana Studio (jede Seite läuft im Browser, keine Installation, nichts wird hochgeladen), die Integrationen für ROS 2, Signal K, OpenCPN, GNSS-SDR und gnss_lib_py, die Deploy-Kits für systemd, Docker und Grafana und das JetBrains-Plugin. docs/ALL-SURFACES.md listet sie auf, mit der Art, jede zu beziehen, und den Namen aller Plugin-Befehle, Skills und Studio-Seiten; docs/SURFACES.md sagt für jeden Befehl und jeden Typ, welche Oberfläche ihn trägt und welche nicht, mit der Begründung.

Wie ein Lauf funktioniert#

Ein Szenario ist eine TOML-Datei (Tom's Obvious, Minimal Language): ein Typ, ein Seed und die Parameter. Die Engine führt es aus und schreibt das Ergebnis, ein Diagramm und einen Bericht daneben sowie die Exporte, die Sie anfordern.

Wie ein Lauf abläuft. Eine Szenario-TOML-Datei (eine Art, ein Seed und ihre Parameter) geht in die Engine, kshana 0.40.0, über den Dispatch api::run_toml über 92 Szenarioarten, deterministisch aus Szenario, Seed und Engineversion. Die Engine schreibt result.json, chart.svg, report.html und report.json, eine table.csv für die Arten, die eine definieren, und auf Anfrage die Exporte SP3, CCSDS OMM und OEM, CZML, KML, GeoJSON, STK und SigMF; eine Suite schreibt study.json und study.html. Diese Dateien speisen Kshana Studio im Browser, einen KI-Assistenten über den Server kshana-mcp und die kontinuierliche Integration.Wie ein Lauf abläuft. Eine Szenario-TOML-Datei (eine Art, ein Seed und ihre Parameter) geht in die Engine, kshana 0.40.0, über den Dispatch api::run_toml über 92 Szenarioarten, deterministisch aus Szenario, Seed und Engineversion. Die Engine schreibt result.json, chart.svg, report.html und report.json, eine table.csv für die Arten, die eine definieren, und auf Anfrage die Exporte SP3, CCSDS OMM und OEM, CZML, KML, GeoJSON, STK und SigMF; eine Suite schreibt study.json und study.html. Diese Dateien speisen Kshana Studio im Browser, einen KI-Assistenten über den Server kshana-mcp und die kontinuierliche Integration.

Dieses mitgelieferte Szenario läuft 2 h: 10 min GNSS, dann etwa 1,8 h ohne GNSS. Es fragt, wie lange eine optische Strontium-Gitteruhr und eine chipgroße Atomuhr (CSAC) jeweils die Zeit auf 20 ns genau halten.

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

Die optische Uhr hält das Budget von 20 ns über den gesamten Ausfall von 6600 s; die CSAC hält es 2610 s lang und ist während 95,6 % des Laufs im Budget, gegenüber 100 % bei der optischen Uhr. kshana example listet jedes mitgelieferte Szenario auf.

Missionen#

Zehn Sektoren stellen zehn verschiedene Fragen an dieselbe Engine. Jeder hat mitgelieferte Szenarien als Ausgangspunkt.

Sektor Beginnen mit
Verteidigung und Sicherheit campaign-jam-spoof-holdover-integrity, spoof-meaconing
Weltraum, Erdumlaufbahn orbit-gnss-challenged, leo-pnt-end-to-end
Mond, Mars und tiefer Weltraum lunar-relay-constellation, mars-orbit-pnt
Luftfahrt und Drohnen small-uas-jammed-nav, araim-gps-galileo
Maritim maritime-strait-jamming, maritime-port-approach-coast
Straße automotive-urban-canyon
Schiene rail-tunnel-coast
Kritische Infrastruktur und Zeitgebung clock-holdover, clock-ensemble
Telekom und 5G (die fünfte Generation der Mobilfunknetze) telecom-prtc-holdover-24h, leo-vertical-5g-network-timing
Wissenschaft und Forschung sweep-clock-stability, quantum-pnt-demonstrator.suite
Die Frage jedes Sektors
Sektor Die Frage, die er stellt Beginnen mit
Verteidigung und Sicherheit Wie lange bleiben unsere Navigation und Zeitgebung unter Jamming und Spoofing vertrauenswürdig, und welche Schichten halten uns in der Spezifikation? campaign-jam-spoof-holdover-integrity, spoof-meaconing
Weltraum: Erdumlaufbahn Sieht mein Raumfahrzeug genug Navigationssatelliten, wie lange hält seine Uhr zwischen Lösungen die Zeit, und was würde eine Navigationsschicht im niedrigen Orbit hinzufügen? orbit-gnss-challenged, leo-pnt-end-to-end
Mond und tiefer Weltraum Bekommt ein Lander, Rover oder Orbiter am Mond, am Mars oder weiter draußen eine vertrauenswürdige Position und Zeit? lunar-relay-constellation, mars-orbit-pnt
Luftfahrt und Drohnen Wie lange bleibt mein unbemanntes Luftfahrzeugsystem (UAS), nachdem ein Jammer GNSS genommen hat, innerhalb seines Positionsbudgets, und ist Integrität auf meiner Route verfügbar? small-uas-jammed-nav, araim-gps-galileo
Maritim Wie weit über das Wasser reicht ein Jammer, würde ein Positionsschub bemerkt, und wie lange kann ein Schiff in den Hafen auslaufen? maritime-strait-jamming, maritime-spoof-position-push, maritime-port-approach-coast
Straße und Automobil Wie weit driftet ein Auto unter einer Überführung oder an einem Jammer am Straßenrand vorbei? automotive-urban-canyon
Schiene Wie viele Sekunden in einen Tunnel hinein kann ein Zug noch sagen, auf welchem Gleis er ist? rail-tunnel-coast
Kritische Infrastruktur und Zeitgebung Wenn GNSS-Zeit verloren geht oder gespooft wird, wie lange halten ein Stromnetz, ein Handelsplatz oder ein Rechenzentrum rückführbare Zeit? clock-holdover, clock-ensemble
Telekom und 5G Wenn die GNSS-Zeitreferenz verloren geht, bleibt meine Netzuhr innerhalb der ITU-T-Masken, und wie lange? telecom-prtc-holdover-24h, leo-vertical-5g-network-timing
Wissenschaft und Forschung Kann ich ein PNT-Ergebnis bis hinunter zum Seed reproduzieren, erweitern und zitieren? sweep-clock-stability, quantum-pnt-demonstrator.suite

Nachweise#

SGP4 gegen alle 666 Referenzvektoren von AIAA 2006-6753 geprüft, schlechtester Positionsfehler 4,12 mm

176 von 401 Fähigkeiten gegen unabhängige externe Referenzen validiert; 221 ehrlich als modelliert gekennzeichnet. Jede Zeile der Verifikationsmatrix nennt eine Fähigkeit, die unabhängige Referenz, gegen die sie geprüft wird, den Test, der die Prüfung ausführt, und die Kennzeichnung, die daraus folgt. Die kontinuierliche Integration (CI) macht es unmöglich, eine Fähigkeit ohne unabhängige externe Referenz VALIDATED zu nennen.

Wie eine Fähigkeit ihre Kennzeichnung erwirbt. Jede Zeile der Verifikationsmatrix nennt eine Fähigkeit, die unabhängige Referenz, gegen die sie geprüft wird, den Test, der die Prüfung in der kontinuierlichen Integration ausführt, und die Kennzeichnung, die daraus folgt. Eine Zeile darf nur mit einer unabhängigen externen Referenz VALIDATED sein; andernfalls ist sie MODELLED, oder PARTNER, wenn ein Hardware-Partner sie besitzt. Beispiel: SGP4/SDP4, Cowell 6-DOF + Störungen, Batch-/sequentielle Bahnbestimmung, unabhängige Referenz AIAA 2006-6753 SGP4-Verifikationsvektoren, Test tests/sgp4_verification.rs, Kennzeichnung VALIDATED. Aktuelle Zahlen: 176 VALIDATED, 221 MODELLED, 4 PARTNER von 401 Zeilen. Insgesamt 176 Fähigkeiten gegen unabhängige externe Referenzen validiert; 221 weitere sind ehrlich als MODELLED gekennzeichnet und 4 sind im Besitz von PARTNER.Wie eine Fähigkeit ihre Kennzeichnung erwirbt. Jede Zeile der Verifikationsmatrix nennt eine Fähigkeit, die unabhängige Referenz, gegen die sie geprüft wird, den Test, der die Prüfung in der kontinuierlichen Integration ausführt, und die Kennzeichnung, die daraus folgt. Eine Zeile darf nur mit einer unabhängigen externen Referenz VALIDATED sein; andernfalls ist sie MODELLED, oder PARTNER, wenn ein Hardware-Partner sie besitzt. Beispiel: SGP4/SDP4, Cowell 6-DOF + Störungen, Batch-/sequentielle Bahnbestimmung, unabhängige Referenz AIAA 2006-6753 SGP4-Verifikationsvektoren, Test tests/sgp4_verification.rs, Kennzeichnung VALIDATED. Aktuelle Zahlen: 176 VALIDATED, 221 MODELLED, 4 PARTNER von 401 Zeilen. Insgesamt 176 Fähigkeiten gegen unabhängige externe Referenzen validiert; 221 weitere sind ehrlich als MODELLED gekennzeichnet und 4 sind im Besitz von PARTNER.
Kennzeichnung Zeilen Bedeutung
VALIDATED 176 eine unabhängige externe Referenz stimmt überein: echte Daten, eine unabhängige Implementierung oder veröffentlichte Referenzvektoren
MODELLED 221 gegen analytische Wahrheit oder die Selbstkonsistenz der Simulation geprüft, und das wird offen gesagt
PARTNER 4 von einem Hardwarepartner verantwortet; Kshana hält dafür keine unabhängige Referenz

Einige der Prüfungen: alle 666 SGP4-Vektoren (Simplified General Perturbations 4) von AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 bis auf 4,12 mm; das Cowell-Kraftmodell bis auf 0,08 m gegen Orekit 12,2; Galileo bis auf 0,61 m und Swarm-A bis auf 0,10 m gegen reale präzise Ephemeriden der Europäischen Weltraumorganisation (ESA). Die Tests erreichen nahezu 95 % Zeilenabdeckung von src/, in der CI bei 85 % abgesichert. Das Register ist docs/VERIFICATION-MATRIX.md, erzeugt aus src/verification.rs: die vollständige Matrix mit 401 Zeilen und warum jede modellierte Zeile keine externe unabhängige Referenz hat, in docs/MODELLED-RATIONALE.md.

Wie die Validierung funktioniert, die kuratierte Tabelle der Höhepunkte und die Nachweisabbildungen

Validierung, Reproduzierbarkeit und Ehrlichkeit#

  • Jeder Rauschterm ist auf eine veröffentlichte, zitierte Größe kalibriert und gegen die Standardbeziehung validiert (Allan-Abweichung für Uhren; Groves' Fehlerwachstum der Koppelnavigation für Inertial; die Umrechnung Zeitgebung→Entfernungsmessung für Zeitübertragung). Der Status je Term wird in docs/VALIDATION.md als validated oder not modeled verfolgt — nichts wird als validiert dargestellt, das es nicht ist.
  • Reproduzierbar durch Konstruktion: scenario + seed + engine version → identical bits. scripts/check-reproducible.sh erzwingt es; Quanten- und klassische Läufe verwenden unabhängige Seeds, damit ihr Rauschen unkorreliert ist.
  • Der Reifegrad wird ehrlich angegeben: Angaben zu optischen Uhren und optischen Verbindungen sind Ziele / Ergebnisse von Bodendemonstratoren, nicht geflogen.

Die Nachweiskennzeichnung an jeder Zahl#

Jede Zahl und Tabelle, die ein Lauf schreibt, sagt, wie weit ihr zu trauen ist und auf welchen Registerzeilen das beruht. Das Ergebnis-JSON hat einen Schlüssel evidence, die Diagramm-SVG eine Zeile unter der Grafik (und ein Element <metadata id="kshana-evidence">), und die CSV-Tabelle hat davor Kommentarzeilen # evidence: (gelesen mit comment='#'). Sie nennt eine Stufe, VALIDATED, MODELLED oder PARTNER, und die Kennungen (VM- und acht Hexadezimalziffern) der Zeilen der Verifikationsmatrix, die der Lauf beansprucht hat. Die Stufe ist die schwächste dieser Zeilen, sodass ein Lauf, der sich auf eine modellierte Zeile stützt, als MODELLED gekennzeichnet wird, wie viele validierte Zeilen auch daneben stehen; die Kennzeichnung kann nie mehr behaupten als das Register. Zeilen, Status und Kennungen werden aus der Matrix gelesen, nicht getippt (docs/VERIFICATION-MATRIX.md, docs/SCHEMA.md), und tests/evidence_labels_doc_sync.rs schlägt fehl, wenn eine Grafik keine Kennzeichnung hat oder eine Kennzeichnung der Matrix widerspricht.

Validierung auf einen Blick#

Jede Zeile wird durch einen benannten Test in der CI durchgesetzt. Diese Tabelle ist eine kuratierte Auswahl; die vollständige maschinengeprüfte Matrix hat 401 Zeilen — 176 VALIDATED, 221 MODELLED, 4 PARTNER (src/verification.rs), mit den vollständigen Nachweisen (und dem, was ehrlich noch nicht validiert ist) in docs/VALIDATION.md und dem Artefakt kshana-validation-summary.html je Release (erzeugt von cargo run --bin validation_report, SLSA-attestiert — Supply-chain Levels for Software Artifacts).

Die Spalte Status nennt die Art des Nachweises, passend zur Validierungsleiter oben: VALIDATED = gegen eine unabhängige externe Referenz geprüft (echte Daten, eine unabhängige Bibliothek oder veröffentlichte Referenzvektoren); MODELLED = gegen analytische Wahrheit oder die Selbstkonsistenz der Simulation geprüft (kein unabhängiger externer Datensatz). VALIDATED beschreibt die Methode der Prüfung, kein Bestanden/Durchgefallen — eine ehrliche Verfehlung gegen eine echte externe unabhängige Referenz bleibt VALIDATED, während ein Vergleich, den keine Matrixzeile als unabhängige Referenz nennt (die Anpassung an LRO — Lunar Reconnaissance Orbiter — oben), als MODELLED gezeigt wird. CI-Zeilen sind Prozesswächter, keine Gütegrößen. Einige Inseln mit realen Daten (die gemessene Cäsiumuhr, Stable32 PHASE.DAT und die Prüfungen OPS-SAT/ICGEM, bei denen die rohen Eingaben keine Weiterverbreitungslizenz tragen) sind datengesteuert: Der Test gibt einen Hinweis zum Überspringen aus und bleibt grün, wenn die Eingabe fehlt, und die öffentlichen Referenzzahlen sind unter tests/fixtures/ festgeschrieben. Reproduzieren Sie die rohen Eingaben mit dem passenden scripts/fetch_*.sh.

Status Fähigkeit Übereinstimmung Referenz / unabhängige Referenz
VALIDATED SGP4/SDP4-Propagation 666/666 Vektoren, schlechtester Wert 4,12 mm AIAA 2006-6753 (Vallado tcppver.out) + direkter Vergleich mit dem unabhängigen Crate sgp4
VALIDATED Bezugssysteme — IAU 2000A/B-Nutation, IAU 2006/2000A-CIO-Kette, ERA bitgenau (X,Y bis 1e-14, s bis 1e-18, ERA bis 1e-12) ERFA/SOFA eraXys06a · eraC2ixys · eraEra00 · eraNut00a/b
MODELLED GCRS→ITRS gegenüber einer unabhängigen SPICE-Engine max. 0.028″ → ≤ 0,86 m am Boden, ≤ 3,6 m GNSS-Bahn ANISE (reines Rust-NAIF/SPICE), dieselben IERS-finals2000A-EOP, 8 Epochen 2020–2023 (gegen diese Referenz verglichen; keine Zeile der Verifikationsmatrix nennt sie als externe unabhängige Referenz, daher ist sie nicht als VALIDATED gekennzeichnet)
MODELLED EGM2008-Geopotenzial (Grad/Ordnung 70) Beschleunigung = ∇V auf < 1e-6; zonaler Zusammenbruch auf validiertes J2 NGA-EGM2008-Koeffizienten + analytische ∇V-Identität
VALIDATED Synthese von Schwerefunktionalen (schweregestützte / GNSS-freie Navigationskarte) GRS80-Somigliana + γ_e/γ_p auf 3.5e-12; reale EGM2008-Störungskarte physikalisch plausibel (RMS ≈ 26 mGal, Grad/Ordnung 70) GRS80 (Moritz 1980, IAG — International Association of Geodesy) Somigliana-Normalschwere + reales ICGEM-EGM2008 (tests/icgem_gravity_reference.rs)
VALIDATED Allan-Schätzer (ADEV/MDEV/TDEV/HDEV) + Konfidenzbänder reproduzieren die Referenzabweichungen; χ²-Bänder stimmen überein NIST SP 1065 (Riley), 1000-Punkte-Tabelle 31/32
VALIDATED Allan-Schätzer an einer real gemessenen Caesium-Uhr OADEV/OHDEV bis 1e-3 (beobachtet ≤ 3e-5), 16 Mittelungsfaktoren Stable32 an einer realen 5071A-Cs-Uhr gegen H-Maser, 556.990 Punkte (tests/cs5071a_reference.rs, datengebunden)
VALIDATED Allan-Schätzer an der kanonischen Stable32-PHASE.DAT OADEV/MDEV/TDEV bis 1e-3 (beobachtet ≤ 5e-5), 139 Mittelungsfaktoren Stable32-Referenzabweichungen für PHASE.DAT (tests/phasedat_reference.rs, datengebunden)
MODELLED IMU-Fehlermodell — ARW / VRW / Bias-Instabilität wiedergewonnen auf < 5 % (Bias-Instabilität < 15 %) Analog-Devices-Datenblatt ADIS16465; NaveGo-Referenzprofil
VALIDATED Numerischer Cowell-Propagator + Kräftemodell (konservative Stufen) schlechtester Positionsfehler 0,08 m über 24 h, 278 Epochen (LEO + GTO) Orekit 12,2 NumericalPropagator/DormandPrince853 (CS GROUP), tests/numerical_cowell_propagator_reference.rs
MODELLED Cowell-Widerstandsstufe + absolute Sonnen-/Mond-Ephemeriden- und Dichte-Eingaben Widerstandsstufe charakterisiert mit ≈ 333 m / 24 h; ungestört stimmt sie mit dem Kepler-Problem in universellen Variablen im Sub-Meter-Bereich überein, Energie/Impuls ~1e-9 eingebaute Ephemeride geringer Genauigkeit + analytischer Kepler
MODELLED Lambert · Ziolkowski · Porkchop Hin- und Rückrechnung auf die Zwei-Körper-Wahrheit; ΔV < 0.01 % Izzo 2015 · Raketengleichung · analytische Hohmann-Untergrenze
MODELLED Bahnbestimmung (Gauss–Newton-Batch) Sub-Meter / mm·s⁻¹ rauschfrei; ~2 m bei einer Rauschuntergrenze von 5 m Zwei-Körper + J2 über einen RK4-Bogen
MODELLED Kräftemodell-Anpassung an die präzise Galileo-Ephemeride (voller Bogen) 0,61 m 3D-RMS, 24 h, Grad/Ordnung 70, nur Kräfte Endgültige ESA/ESOC-Bahn ESA0MGNFIN (E11), reale finals2000A-EOP (gegen diese Referenz verglichen; keine Zeile der Verifikationsmatrix nennt sie als externe unabhängige Referenz, daher ist sie nicht als VALIDATED gekennzeichnet)
MODELLED Kräftemodell-Anpassung an die präzise Swarm-A-Ephemeride (reduziert-dynamisch) 0,10 m 3D-RMS (Schranke der empirischen Stufe, kein Messwert) Präzise ESA-Bahn SW_OPER_SP3ACOM_2_ (gegen diese Referenz verglichen; keine Zeile der Verifikationsmatrix nennt sie als externe unabhängige Referenz, daher ist sie nicht als VALIDATED gekennzeichnet)
MODELLED Kräftemodell-Anpassung an LRO (Mond) (ehrlich verfehlt) 6,67 m reduziert-dynamisch, über dem Ziel von 5 m JPL Horizons LRO (NAIF −85) + GRAIL (Gravity Recovery and Interior Laboratory) GRGM660PRIM (gegen diese Referenz verglichen; keine Zeile der Verifikationsmatrix nennt sie als externe unabhängige Referenz, daher ist sie nicht als VALIDATED gekennzeichnet)
MODELLED Mars-Bahnbestimmung im tiefen Weltraum (reduziert-dynamisch, SRIF) ≈ 0,2 m Mars-LMO (Simulations-Gütemaß, nicht reale Mission) synthetische Bahnbestimmung im geschlossenen Regelkreis — Validierung der Schätzer-Mechanik
MODELLED Sonnenzentrische Mars-Dynamik gegenüber JPL DE440 137 m bei 1-Tages-Bogen (wächst mit dem Bogen = nicht modellierte n-Körper-Effekte) JPL DE440 über ANISE (xval/anise-mars-od, kernelgebunden) (gegen diese Referenz verglichen; keine Zeile der Verifikationsmatrix nennt sie als externe unabhängige Referenz, daher ist sie nicht als VALIDATED gekennzeichnet)
VALIDATED Einzelpunktbestimmung gegenüber einer vermessenen IGS-Koordinate (reale Beobachtungen) 5,7 m 3D-RMS / 1,1 m horizontal, Zweifrequenz-SPP mit ionosphärenfreiem Code Vermessung der IGS-Station ABMF + GPS-Broadcast-Ephemeride, 2018-05-13 (tests/pvt_abmf.rs)
MODELLED Eng gekoppelter GNSS/INS-UKF 0,77 m RMS über einen 30-min-LEO-Überflug inkl. eines Ausfalls von 120 s Kräftemodell-Auslauf, von Hand hergeleitet
MODELLED GPS-freie Navigation mit Schwerekarte ~70 km INS-Drift → ~145 m wiedergewonnen Ziel von ESA NAVISP Quantum Wayfarer
MODELLED Geländebezogene Navigation (TERCOM/SITAN) 70 km Drift → < 500 m (Untergrenze durch Gitterauflösung ~140 m) SRTM-.hgt-DEM; von Hand eingespeiste Drift (nicht zirkuläre Prüfung)
MODELLED IGRF-14-Hauptfeld (Grad/Ordnung 13) Pol ~80,7°N, Dipol ~29,7 µT, physikalisches Band 22–67 µT IAGA (International Association of Geomagnetism and Aeronomy) igrf14coeffs.txt (Schmidt-halbnormiert)
MODELLED Modulation von Navigationssignalen & Code-Nachführung BPSK-Eigen-SSC = 2/(3·R_c); PSDs mit Einheitsfläche; Sub-Meter-C/A-DLL-Jitter bei 45 dB-Hz Geschlossene SSC/PSD-Ankerwerte + DLL-Thermorauschformel nach Kaplan & Hegarty
MODELLED CR3BP-Halo/NRHO-Differentialkorrektor STM = finite Differenzen; Bahn schließt sich auf Maschinengenauigkeit; L2-9:2-NRHO ≈ 6,57 d / Perilunium ≈ 3.250 km Prüfung der STM mit finiten Differenzen + veröffentlichte südliche L2-9:2-NRHO (≈ 6,56 d / ≈ 3.370 km) — CR3BP, keine reale Gateway-Ephemeride
MODELLED ARAIM-Integrität mit zwei Konstellationen konstellationsweiter Fehlermodus an realem GPS + Galileo EU ARAIM TR (technical report) / DO-316; Celestrak gps-ops 2021-07-28 (gegen diese Referenz verglichen; keine Zeile der Verifikationsmatrix nennt sie als externe unabhängige Referenz, daher ist sie nicht als VALIDATED gekennzeichnet)
VALIDATED GNSS-Geometrie / DOP (GDOP/PDOP/HDOP/VDOP/TDOP) Übereinstimmung auf 1e-6 relativ über 8 Geometrien (gut konditioniert → nahezu singulär) gnss_lib_py 1.0.4 (Stanford NAV Lab) — unabhängige Bibliothek (tests/dop_reference.rs)
VALIDATED ML-Bewertungsmetriken für Detektoren (AUC/ROC/Konfusion/Pd-Pmd/Precision/F1) exakte Zählwerte + < 1e-9 über 5 Datensätze × 24 Schwellen scikit-learn 1.9.0 (Pedregosa et al., JMLR — Journal of Machine Learning Research — 2011) — unabhängige Bibliothek (tests/eval_metrics_reference.rs)
VALIDATED ROC-AUC der Anomalieerkennung an realer ESA-OPS-SAT-Telemetrie AUC reproduziert scikit-learn auf < 1e-9; AUC des Peak-Count-Detektors ≈ 0.85 auf dem gelabelten Testsplit scikit-learn roc_auc_score auf dem OPSSAT-AD-Testsplit (Ruszczak et al. 2025, CC BY 4,0) — reale OPS-SAT-Telemetrie (tests/opssat_ad_reference.rs)
VALIDATED Numerische Kerne des Quantum-Trade (ADEV-NNLS-Anpassung · χ²-Konsistenzbänder · van-Loan-Uhren-Q) NNLS + Q exakt; χ² < 5e-4 bei Betriebs-Freiheitsgraden ≥ 48 scipy 1.17.1 — optimize.nnls / stats.chi2.ppf / linalg.expm (tests/scipy_reference.rs)
VALIDATED MTIE / MDEV / TDEV Wander-Metriken der Telekommunikation (ITU-T G.810/G.823/G.8261/G.811 — die Empfehlungen des Telecommunication Standardization Sector der International Telecommunication Union) MTIE (9 Mittelungsfaktoren, bitgenau) und MDEV + TDEV (8 Faktoren, < 1e-9 relativ) an der NIST-SP-1065-LCG-Reihe (linear congruential generator) allantools 2024,06 mtie / mdev / tdev — unabhängige Bibliothek (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs)
VALIDATED MCDA-Methoden für Trade-Studien — alle vier Entscheidungsfamilien, neun extern validierte Aggregatoren (WSM · WPM · WASPAS · MOORA · COPRAS · TOPSIS · VIKOR · PROMETHEE II · ELECTRE I) plus AHP-Prioritätsgewichtung durch paarweise Vergleiche Bewertungen / Rangfolgen / Konkordanzmatrizen reproduziert auf < 1e-9 pymcdm + pyDecision (unabhängige MCDA-Bibliotheken Dritter) + Saaty-RI (Random Index) / SciPy-LAPACK eig (tests/mcda_*_reference.rs)
VALIDATED LEO-Doppler-Hüllkurve aus Bahn und Trägerfrequenz Iridium-Maximum innerhalb von 5 % der veröffentlichten ±36 kHz; Xona Pulsar X1 innerhalb der veröffentlichten 32–34 kHz RNTF-LEO-PNT-Testergebnisse; Leclère, Marathe & Reid, arXiv:2509,19551 (tests/leo_doppler_reference.rs)
MODELLED PPP-Konvergenz mit LEO-Augmentation 7,4 → 4,8 / 3,2 / 2,7 / 2,3 min mit 60 / 96 / 192 / 288 LEO-Satelliten, monoton; Filter-NEES innerhalb des χ²-Bands Trend verglichen mit Li et al., J. Geod. 93:749 (2019) (9,6 → 7,0 / 3,2 / 2,1 / 1,3 min); Konstellationen und Rauschen nicht reproduziert
MODELLED Bedingter Zeitgebungs-Schutzradius (durch Holdover begrenzter unerkannter Zeitfehler unter Spoofing) die Komposition reproduziert die mehrstufige clock_state-Kovarianzrekursion; kalibriert an einem real aufgezeichneten Spoof JammerTest 2024 (Zenodo 15911589) Skalare + van-Loan- / CUSUM-Formeln in geschlossener Form (examples/tpl_jammertest)
MODELLED Bewertung der PNT-Resilienz + Entscheidungsinstabilität 35 von Hand hergeleitete Tests gegen eine unabhängige Referenz; byte-deterministisches Studienartefakt (fester Seed) DHS-RPCF-v2.0-Zuordnung + Dirichlet- / Kendall-τ- / Hill-N2-Formeln in geschlossener Form — synthetische Architekturen, keine Zertifizierung
MODELLED Studie zur Optimismuslücke bei HF-Beeinträchtigungen (Skalierungsgesetze + Leave-one-out-Prädiktor) Signifikanz gegen eine Permutations-Null; byte-deterministisches Artefakt (5 Seeds) synthetischer parametergestützter Korpus — die Bewertungs-Metriken sind VALIDATED gegenüber scikit-learn (oben); die Studie ist MODELLED
CI Plattformübergreifende Reproduzierbarkeit bitidentische Eingabe + Form-Goldens auf 3 Betriebssystemen CI-Matrix Linux / macOS / Windows, SHA-256-Goldens
CI Testabdeckung ~95 % Zeilen in src/ ohne src/*_data.rs und src/main.rs, Grenzwert ≥ 85 % cargo-tarpaulin (LLVM-Engine)

Wie eine Fähigkeit ihre Kennzeichnung erwirbt: Eine Anforderung wird einem Modul in src, einem Test in tests, einer externen unabhängigen Referenz (reale Datensätze, unabhängige Referenzimplementierung oder veröffentlichte Vektoren) und einem Status zugeordnet — mit einer von der CI durchgesetzten Sperre, dass keine Fähigkeit ohne externe unabhängige Referenz validiert sein kann. Aktuelle Zahlen: 176 validiert, 221 modelliert, 4 Partner, 401 insgesamt
Wie sich eine Fähigkeit ihr Label verdient — die in der CI durchgesetzte Invariante: keine externe unabhängige Referenz ⇒ kann nicht validiert sein · SVG

Wie jede Aussage abgesichert ist: Die Spalte „validiert“ besteht konstruktionsbedingt zu 176 von 176 aus ExternalDataset (in der CI durchgesetzt); modellierte Zeilen sind ehrlich als InternalConsistency, ReferenceImpl oder ExternalDataset gekennzeichnet; Partner-Zeilen haben keine Kshana-Referenz
Schlechtester Positionsfehler von SGP4/SDP4 gegenüber der Referenz AIAA 2006-6753 nach Regime, logarithmische Skala: Jedes Regime liegt weit unter der AIAA-Toleranz, der schlechteste Wert beträgt 4,12 mm im nicht resonanten Deep-Space-Regime
Oben: Jede validierte Zeile ist konstruktionsbedingt durch einen externen Datensatz abgesichert. Unten: SGP4 stimmt in jedem Regime mit der offiziellen Referenz überein (schlechtester Wert 4,12 mm). SVG · SVG

Verifikationsstatus über alle 401 Fähigkeiten: 176 validiert (gegen externe unabhängige Referenz geprüft), 221 modelliert, 4 im Besitz von Partnern
176 validiert · 221 modelliert · 4 Partner — SVG

Fähigkeitsbereiche#

Jede Fähigkeit der öffentlichen Karte, nach Domäne geordnet, mit ihrem Label im Register. Die Domänentabelle wird von tools/gen_readme_blocks.py aus web/capabilities.json geschrieben, derselben Datei, die auch die Karte von allem im Studio liest.

Fähigkeiten von Kshana nach Domäne und Reifegrad: validierte und modellierte öffentliche Fähigkeiten je Domäne, aus web/capabilities.json durch tools/gen_validation_figures.py gezeichnetFähigkeiten von Kshana nach Domäne und Reifegrad: validierte und modellierte öffentliche Fähigkeiten je Domäne, aus web/capabilities.json durch tools/gen_validation_figures.py gezeichnet

Die vollständige Tabelle, Domäne für Domäne mit jeder Fähigkeit und ihrem Label, ist docs/CAPABILITY-DOMAINS.md.

Installation#

Eine Zeile liefert das Kommandozeilenwerkzeug: cargo install kshana. Jeder Kanal liefert v0.40.0 vom selben getaggten Commit aus.

Eine Passage, die KI-Clients von Drittanbietern nennt, ist hier weggelassen; sie steht in README.md auf GitHub.

Eine Passage, die KI-Clients von Drittanbietern nennt, ist hier weggelassen; sie steht in README.md auf GitHub.

Eine Passage, die KI-Clients von Drittanbietern nennt, ist hier weggelassen; sie steht in README.md auf GitHub.

Kanal Installation Leitfaden
Im Browser ausprobieren https://kshana.dev öffnen Studio-Leitfaden
Befehlszeile (Rust) cargo install kshana Verwendung der Befehlszeile
Rust-Bibliothek cargo add kshana API-Referenz auf docs.rs
Python pip install kshana Leitfaden zur Python-API
JavaScript und WebAssembly npm install kshana Leitfaden zu npm und WebAssembly
KI-Assistent (MCP-Server, cargo) cargo install kshana-mcp Leitfaden zum MCP-Server
Docker-Image docker run --rm -i ghcr.io/ashfordeou/kshana-mcp Leitfaden zum MCP-Server: Docker
Cursor (ein Klick) Zu Cursor hinzufügen (npx) · Zu Cursor hinzufügen (Docker) · npx -y kshana-mcp@0.40.0 Alle MCP-Installationsschnipsel
VS Code (ein Klick) In VS Code installieren (npx) · In VS Code installieren (Docker) · npx -y kshana-mcp@0.40.0 Alle MCP-Installationsschnipsel
npx npx -y kshana-mcp@0.40.0 Alle MCP-Installationsschnipsel
uvx / pipx uvx kshana-mcp==0.40.0 Alle MCP-Installationsschnipsel
Homebrew brew install ashfordeOU/tap/kshana-mcp Alle MCP-Installationsschnipsel
Scoop scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket && scoop install kshana-mcp Alle MCP-Installationsschnipsel
winget winget install AshfordeOU.KshanaMcp Alle MCP-Installationsschnipsel
Vorkompilierte Binärdatei kshana-mcp-<target> aus dem Release herunterladen und gegen SHA256SUMS prüfen Alle MCP-Installationsschnipsel
Offizielles MCP-Register io.github.ashfordeOU/kshana-mcp suchen Alle MCP-Installationsschnipsel
Remote (streambares HTTP), selbst gehostet kshana-mcp --http 127.0.0.1:8080 Anleitung zum Selbsthosting
JetBrains-IDE-Plugin Settings → Plugins → Marketplace → nach "Kshana" suchen (Plugin-ID dev.kshana.ide) Plugin-Leitfaden
Signal-K-Plugin npm install signalk-kshana-trust Anleitung zum Signal-K-Plugin
OpenCPN-Plugin das Plugin-Tarball aus dem Release herunterladen Einreichung beim OpenCPN-Katalog
Grafana-Dashboard kshana-grafana-*.json aus dem Release importieren Dashboard-Quelle
Referenz-Build-Image docker pull ghcr.io/ashfordeou/kshana-reference-build Marine-Integrationen

Kshana im JetBrains Marketplace Baut mit Rust 1,88 oder neuer, der rust-version in Cargo.toml

MCP ist das Model Context Protocol. Eine Version festlegen mit cargo install kshana --version 0.40.0, pip install kshana==0.40.0 oder npm install kshana@0.40.0. Zum Bauen aus dem Quelltext siehe Installation und Build unter Referenz.

Ein Szenario aus Python und aus WebAssembly ausführen
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

Über run hinaus stellt das Modul run_full (JSON, SVG und die einzeilige Zusammenfassung auf einmal), run_typed, validate_toml, list_kinds / scenario_kinds und error_kind bereit; siehe docs/PYTHON_API.md.

Das npm-Paket ist die gesamte, nach WebAssembly kompilierte Engine. In Node.js übergeben Sie die Binärdatei an initSync; in einem Browser lädt await init() sie (siehe 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));

Architektur#

Eine offene Engine steht im Zentrum, und jede Oberfläche führt sie aus: die Kommandozeile, die Rust-Bibliothek, Python, WebAssembly und Kshana Studio, der MCP-Server, das Docker-Image und das JetBrains-Plugin. Dieselbe Szenariodatei liefert auf jeder dieselben Bytes. Kshana Pro sitzt als eigenes Overlay darüber, das von der Engine abhängt und sie nie forkt.

Die Architektur von Kshana: eine offene Engine in der Mitte, kshana 0.40.0 unter der AGPL-3.0, mit api::run_toml, einem typisierten Dispatch über jede Art, und dem Verifikationsregister mit 401 Fähigkeiten (176 VALIDATED, 221 MODELLED, 4 PARTNER). Darum herum läuft auf jeder Oberfläche dieselbe Engine: Befehlszeile (cargo install kshana); Rust-Bibliothek (cargo add kshana); Python (pip install kshana); WebAssembly + Kshana Studio (npm install kshana); MCP-Server (cargo install kshana-mcp); Docker-Image (ghcr.io/ashfordeou/kshana-mcp); JetBrains-Plugin (Marketplace: „Kshana“). Darunter Kshana Pro, eine proprietäre Schicht, die die offene Engine als Bibliothek nutzt, sie nie forkt und kein physikalisches Modell hinzufügt.Die Architektur von Kshana: eine offene Engine in der Mitte, kshana 0.40.0 unter der AGPL-3.0, mit api::run_toml, einem typisierten Dispatch über jede Art, und dem Verifikationsregister mit 401 Fähigkeiten (176 VALIDATED, 221 MODELLED, 4 PARTNER). Darum herum läuft auf jeder Oberfläche dieselbe Engine: Befehlszeile (cargo install kshana); Rust-Bibliothek (cargo add kshana); Python (pip install kshana); WebAssembly + Kshana Studio (npm install kshana); MCP-Server (cargo install kshana-mcp); Docker-Image (ghcr.io/ashfordeou/kshana-mcp); JetBrains-Plugin (Marketplace: „Kshana“). Darunter Kshana Pro, eine proprietäre Schicht, die die offene Engine als Bibliothek nutzt, sie nie forkt und kein physikalisches Modell hinzufügt.
Im Inneren der Engine: die Domänenschichten und das Verifikationsregister Die Architektur von Kshana in Schichten. Fünf Eingänge (Befehlszeile, Python, JavaScript und WebAssembly, der MCP-Server und das JetBrains-Plugin) führen zu einem api::run_toml, einem typisierten Dispatch über 92 Arten. Darunter liegen acht Fachschichten: Zeit und Bezugssysteme, Uhren und Zeitgebung, Inertial und Fusion, GNSS und Integrität, Astrodynamik, LEO-PNT, Mond, Mars und tiefer Raum sowie Missionen und Studien, auf einem gemeinsamen Kern, alle quer verwiesen vom Verifikationsmodul, der maschinengeprüften Matrix mit 401 Fähigkeiten, die die einzige Quelle der Wahrheit für jede Kennzeichnung ist.Die Architektur von Kshana in Schichten. Fünf Eingänge (Befehlszeile, Python, JavaScript und WebAssembly, der MCP-Server und das JetBrains-Plugin) führen zu einem api::run_toml, einem typisierten Dispatch über 92 Arten. Darunter liegen acht Fachschichten: Zeit und Bezugssysteme, Uhren und Zeitgebung, Inertial und Fusion, GNSS und Integrität, Astrodynamik, LEO-PNT, Mond, Mars und tiefer Raum sowie Missionen und Studien, auf einem gemeinsamen Kern, alle quer verwiesen vom Verifikationsmodul, der maschinengeprüften Matrix mit 401 Fähigkeiten, die die einzige Quelle der Wahrheit für jede Kennzeichnung ist.

Eine Engine, viele Eingänge. Ein einziger Rust-Kern (kshana) führt jedes Szenario aus, erreichbar über eine CLI, eine Python-Erweiterung, ein WebAssembly-Modul im Browser, einen MCP-Server für KI-Agenten und ein JetBrains-IDE-Plugin — alle münden in einen api::run_toml-Dispatch. Im Inneren fügen sich die Sensorpakete in eine gemeinsame Fehlermodell-Schnittstelle ein; daneben stehen eine Bezugssystem-Schicht (IAU-2006/2000A-Präzession–Nutation und die CIO-basierte GCRS↔ITRS-Reduktion), eine Astrodynamik-/Numerik-Schicht (analytisches SGP4/SDP4 und ein numerischer Cowell-Propagator mit seinem EGM2008-/Störkräftemodell, Manöverentwurf und Bahnbestimmung), eine Integritäts-/GNSS-Schicht (RAIM/ARAIM, SBAS, die Messdomäne, Jamming, cislunar), eine Fusions-/Alt-PNT-Schicht (die GNSS/INS-Schätzer und die Karten-Matcher für Schwere/Gelände/Magnetfeld), eine Deep-Space- und Mond-Schicht (radiometrisches Mars-PNT und die Mond-PNT-Suite, ihre Evidenzstufe je Baustein in der Matrix — LTC-Zeit, VLBI, gemeinsame OD+Uhr, Realisierung von Bezugssystemen, Service-Volume, differenzielles PNT, Interoperabilität), eine Missionsanalyse-Schicht (Start / Wiedereintritt / Abdeckung / Ausrichtung / Überflug / Link-Budgets und die Weltraumwetter-Umgebung) und die offene Studienschicht für Resilienz & maschinelles Lernen (RPCF-Resilienzbewertung, die Optimismuslücke bei HF-Beeinträchtigungen und der quantengestützte PNT-Demonstrator), deren reproduzierbare Artefakte auf den validierten Kernen aufsetzen.

Zwei eigenständige, aus dem Workspace ausgeschlossene Crates stehen neben dem Kern — mcp/kshana-mcp (der MCP-Server, gebaut auf dem Edition-2024-rmcp-SDK) und xval/anise-frames (die ANISE/SPICE-Gegenprüfung der Bezugssysteme, die MPL-2.0-Abhängigkeiten (Mozilla Public License 2,0) einbindet) — und über die exclude-Liste der Wurzel-Cargo.toml aus dem Abhängigkeitsgraphen des veröffentlichten Crates, aus Cargo.lock, Lizenzprüfung und MSRV-Build (minimum supported Rust version) herausgehalten. Das JetBrains-Plugin (ide/jetbrains) ist ein eigenes Kotlin-Projekt. Den vollständigen Satz an Diagrammen finden Sie in docs/ARCHITECTURE.md.

Die gerenderten Diagramme (Engine-Ablauf, Modulkarte, Verteilung) stehen in docs/ARCHITECTURE.md.

Diagramme#

Die Diagramme sind Mermaid-Quellen in docs/diagrams/, gerendert zu SVG und PNG in docs/assets/diagrams/ (tools/render-diagram-chromium.sh <name> unter Linux, die beiden anderen render-diagram-Skripte anderswo), und ein Eintrag bindet jedes PNG an das genaue SVG, aus dem es stammt. Tests legen die Anzahlen fest, die sie nennen. Die Diagramme in den obigen Abschnitten werden von Werkzeugen aus Engine-Läufen gezeichnet; diese hier zeigen, wie die Teile zusammenpassen.

Das System: sechs Eingänge (Kommandozeile, Python, WebAssembly und npm mit Kshana Studio, MCP-Server mit Plugins und Skills, JetBrains-Plugin, Integrationen) rufen alle einen Dispatch über jede Szenarioart auf, der eine Engine aus gemeinsamem Kern, Sensorpaketen und Bezugssystemen sowie Domänenmodellen ausführt und ein reproduzierbares Ergebnis und Diagramm schreibt
Ein Dispatch, eine Engine, reproduzierbare Ausgabe · SVG · Quelle system-overview.mmd

Die Oberflächen: Eine deterministische Offline-Engine speist die Kommandozeile, die Rust-Bibliothek, Python, WebAssembly und npm sowie den MCP-Server; Studio läuft auf dem WebAssembly-Build, Plugin-Befehle und Skills auf dem MCP-Server, Integrationen und Deploy-Kits auf der Kommandozeile und das JetBrains-Plugin auf der Bibliothek
Jede Oberfläche, aus derselben Engine · SVG · Quelle surfaces.mmd

Im Inneren eines Laufs: Eine Szenariodatei mit ihrem Seed und ihrer GNSS-Zeitleiste speist die Engine, die pro Zeitschritt das Fehlermodell fortschreibt, den Schätzer ausführt und die Gütemaße bewertet und ein reproduzierbares Ergebnis und Diagramm schreibt
Die innere Schleife eines Laufs · SVG · Quelle engine-flow.mmd

Empfänger-Vertrauen: Ein Empfänger-Log oder -Stream wird in Beobachtungsgrößen pro Epoche und die eigenen Flags des Empfängers eingelesen, durchläuft die Monitore und wird zu einem beratenden Vertrauenswert mit Band und Gründen, der Studio, Telemetrie, ein signiertes Nachweispaket, Jammertest- und Bench-Bewertung und den Compliance-Bericht speist
Von einem Empfänger-Log zu einem Vertrauenswert und dem, was ihn nutzt · SVG · Quelle trust-flow.mmd

Der Laborkreislauf: Ein Szenario wird mit seinen Ereignissen und Testbedingungen exportiert, ein Betreiber außerhalb von Kshana spielt eine Datei über einen Laborsimulator ab, das Empfänger-Log wird gegen die angegebenen Ereignisse bewertet, und der Nachweis-Kreislauf verknüpft Szenario, Bedingungen, Log-Hashes und die Bewertung zu einem signierten Paket
Vom Szenario zum signierten Paket; Kshana erzeugt oder spielt nie ein Signal ab · SVG · Quelle lab-round-trip.mmd

Kshana Studio: Der Browser führt die nach WebAssembly kompilierte Engine lokal aus, ohne dass etwas hochgeladen wird, übernimmt mitgelieferte Szenarien oder ein Szenario oder Log, das Sie öffnen, und zeigt das Ergebnis in der einfachen Ansicht, der erweiterten Ansicht und den Aufgabenseiten, wobei Exporte vom Benutzer gespeichert werden
Wie Studio lokal läuft · SVG · Quelle studio-flow.mmd

Der Test- und Release-Ablauf: Lokale Gates (Formatierung, clippy, die Prüfung auf fehlende Attribution, die Doku-Abdeckungs-Ratsche und scripts/gate.sh, das die vollständige Suite und Wiederholungsläufe ausführt und die Quittung schreibt, die der Pre-push-Hook prüft) führen zu einem nur in der CI laufenden Pull Request und einer grünen vollständigen CI; der Eigentümer spult main per Fast-Forward auf den grünen Commit vor, und nach der Versionssynchronisierungsprüfung landet ein annotierter Tag darauf; der Release-Workflow prüft die vollständige Suite auf dem getaggten Commit, bevor irgendetwas veröffentlicht wird, baut die Binärdateien mit SBOM, Prüfsummen und Build-Provenienz, veröffentlicht auf crates.io, PyPI, npm, der Container-Registry, der MCP-Registry und dem JetBrains Marketplace, fragt jede Registry ab, bis sie die neue Version liefert, und stößt den Site-Build vom Tag aus an; ein getrennter Nur-Site-Pfad stößt den Pages-Workflow mit dem Tag main an und wird abgelehnt, sofern sich seit dem letzten Release nicht ausschließlich etwas außerhalb von web/ und .github/ geändert hat
Test- und Release-Ablauf, von den lokalen Gates bis zu einem verifizierten Release und dem Nur-Site-Pfad · SVG · Quelle release-flow.mmd · docs/RELEASING.md

Die Modulkarte: Kommandozeile, Python, WebAssembly, MCP-Server und JetBrains-Plugin rufen den typisierten Dispatch über jede Art auf, der den gemeinsamen Kern, Zeit und Bezugssysteme, Sensorpakete, Astrodynamik, Integrität, Spoof-Erkennung, Fusion, Deep Space und Mond, Resilienz sowie die Referee- und Benchmark-Module erreicht, alle getragen von der Verifikationsmatrix
Wo der Code liegt · SVG · Quelle module-map.mmd

Verteilung: Ein Repository liefert das Kern-Crate, den MCP-Server, das IDE-Plugin und die Gegenprüfungs-Crates an crates.io, PyPI, npm, GitHub Releases, den Pages-Playground, die Container-Registry, die MCP-Registry und den JetBrains Marketplace aus, mit einem Zenodo-Archiv
Was wohin ausgeliefert wird und was es prüft · SVG · Quelle distribution.mmd

KI-Assistent#

kshana-mcp ist ein MCP-Server: Ihr Assistent führt die tatsächliche Engine aus und liest deren JSON zurück, statt die Mathematik zu raten. Jedes seiner 49 Werkzeuge ist ein dünner Wrapper um eine öffentliche Funktion der Bibliothek kshana, sodass im Server keine Simulationslogik liegt.

Den MCP-Server installieren#

Beratend, keine typzugelassene Navigationsausrüstung: Der Betreiber bleibt für die Navigation verantwortlich. Der Server läuft auf Ihrem Computer; es wird nichts an Ashforde OÜ gesendet.

Eine Passage, die KI-Clients von Drittanbietern nennt, ist hier weggelassen; sie steht in README.md auf GitHub.

Eine Passage, die KI-Clients von Drittanbietern nennt, ist hier weggelassen; sie steht in README.md auf GitHub.

Eine Passage, die KI-Clients von Drittanbietern nennt, ist hier weggelassen; sie steht in README.md auf GitHub.

Kanal Befehl oder Schaltfläche Voraussetzung Festgelegte Form
Cursor (ein Klick) npx (Node) · Docker Node oder Docker kshana-mcp@0.40.0 / ghcr.io/ashfordeou/kshana-mcp:0.40.0
VS Code (ein Klick) npx (Node) · Docker · Insiders (npx) Node oder 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+ mit uv oder pipx kshana-mcp==0.40.0
Docker docker run -i --rm ghcr.io/ashfordeou/kshana-mcp:0.40.0 Docker ghcr.io/ashfordeou/kshana-mcp:0.40.0
Homebrew brew install ashfordeOU/tap/kshana-mcp brew Formel für v0.40.0
Scoop scoop bucket add ashforde https://github.com/ashfordeOU/scoop-bucket, dann scoop install kshana-mcp Scoop (Windows) Manifest für 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
Vorkompilierte Binärdatei die Release-Seite: kshana-mcp (Linux x86-64), kshana-mcp-<target>[.exe], geprüft mit SHA256SUMS und gh attestation verify keine v0.40.0
MCP-Register io.github.ashfordeOU/kshana-mcp (von registrierungsfähigen Clients gefunden) ein registrierungsfähiger Client 0.40.0
Remote (Streamable HTTP) kshana-mcp --http 127.0.0.1:8080, selbst gehostet: siehe docs/deploy/mcp-http.md Ihr eigener Host v0.40.0

kshana-mcp auf Glama, sein Qualitätswert als MCP-Server

Eine Passage, die KI-Clients von Drittanbietern nennt, ist hier weggelassen; sie steht in README.md auf GitHub.

Die Einrichtung je Client steht in docs/integrations.md. Der Server ist in der offiziellen MCP-Registry als io.github.ashfordeOU/kshana-mcp gelistet.

Die 49 Werkzeuge

Szenarien und Berichte

Werkzeug Was es tut
run_scenario Ein Szenario aus einer TOML-Definition (Tom's Obvious, Minimal Language) ausführen
list_scenario_kinds Die 92 eingebauten Szenarioarten mit Beschreibungen + Pflicht- und optionalen Feldern, damit der Agent ein gültiges Szenario aufbauen kann
validate_scenario Vorabprüfung: das TOML parsen und seine Art erkennen, ohne es auszuführen
list_example_scenarios Die mitgelieferten Referenzszenarien als JSON
get_example_scenario Der TOML-Text eines mitgelieferten Referenzszenarios, Byte für Byte die Datei unter scenarios/
report_scenario Ein Szenario ausführen und seinen Bericht zurückgeben
animate_scenario Ein Szenario ausführen und seine Zeitreihe als Animation zurückgeben
sky_geometry Himmelsgeometrie unter einer azimutabhängigen Horizontlinie: die sichtbaren und verdeckten Satelliten, DOP, die Ost-Nord-Oben-Kovarianz und die horizontale Fehlerellipse; oder ein Horizontlinien-Preset mit seiner Herkunft

Export und Interoperabilität

Werkzeug Was es tut
list_export_formats Welche Interoperabilitätsformate für ein Szenario gelten (czml, kml, geojson, stk, sigmf), den Grund, wenn eines nicht gilt, und die Spezifikation, der jeder Writer folgt
export_interop Ein Szenario als CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, STK-Ephemeride (Systems Tool Kit) .e oder SigMF (Signal Metadata
import_route Eine GeoJSON-LineString-Route in ein Szenario schreiben, das einen Wegpunktkurs abfliegt (terrain-nav, terrain-slam, gravity-map, combined-altpnt), und das neue TOML zurückgeben
export_sp3 Die Konstellation eines orbit-Szenarios als präzise SP3-c-Ephemeride (Standard Product 3, Revision c) exportieren
export_omm Die Elemente eines orbit-Szenarios als CCSDS-502.0-B-2-OMM-Katalog (Consultative Committee for Space Data Systems; Orbit Mean-elements Message) exportieren
export_oem Die Zustandsreihe eines orbit-Szenarios als CCSDS-OEM-Ephemeride (Orbit Ephemeris Message) 2,0 exportieren — die TEME-Position (true equator, mean equinox) und
export_table_csv Ein Szenario ausführen und seine Reproduzierbarkeitstabelle als CSV (comma-separated values) zurückgeben — die bytestabile Tabelle, die die CLI (command-line interface) als <scenario>.table.csv schreibt
export_test_bench Die Fahrzeugbewegung und die Ereignisse eines Szenarios für einen GNSS-Laborsimulator (kshana bench-export)

Vertrauen in Empfänger und Schiff

Werkzeug Was es tut
assess_receiver_log Ein reales GNSS-Empfänger-Log (global navigation satellite system) auf Vertrauen prüfen
assess_vessel_stream Einen begrenzten NMEA-0183-Auszug bewerten (höchstens 2 MiB und 20.000 Epochen
assess_vessel_log Das NMEA-0183-Log eines Schiffes (höchstens 4 MiB) als Batch-Lauf, wobei das Sitzungs-TOML die Grenzen des Schiffes angibt
create_evidence_pack Ein signiertes Nachweispaket für ein Zeitfenster des Logs eines Schiffes (kshana receiver-trust evidence)
attach_evidence_timestamp Ein RFC-3161-Zeitstempel-Token (Base64 der .tsr-Bytes) im Speicher an ein Paket binden (kshana evidence attach-timestamp)
verify_evidence_pack Ein Paket verifizieren (kshana evidence verify)
generate_training_nmea Synthetisches Brücken-NMEA 0183 für die Besatzungsausbildung aus einem nmea-scenario-TOML (Jamming, Positions-Drag-off, Zeit-Spoofing, Replay-Verzögerung) mit dem Ausbilder-Log (kshana-nmea-training/1)
build_interference_map Eine GNSS-Störungskarte aus ADS-B- oder AIS-Positionsmeldungen als CSV-Text (höchstens 4 MiB)
route_exposure Der Anteil der Länge einer Route in degradierten, nicht degradierten, nicht bewerteten und nicht beobachteten Zellen einer oder mehrerer Störungskarten, optional innerhalb eines Datumsbereichs
trust_telemetry Ein Vertrauens-Stream (JSON-Zeilen) oder ein receiver-trust-Ergebnis, dargestellt als Prometheus-Text, CEF- oder LEEF-Syslog-Zeilen oder OTLP-JSON-Nutzlast, mit den kshana trust-telemetry-Encodern
jammertest_import Liest den veröffentlichten Jammertest-Testkatalog und Sendeplan (NPRA/jammertest-plan, MIT) als geplante Wahrheit (kshana jammertest import): Die Slots eines Testgebiets werden zu Empfängervertrauens-Ereignissen mit der Katalogkennung und dem Jahr in jeder Bezeichnung. Geplante Slots, keine aufgezeichneten Sendezeiten; kein Kontaktfeld des Plans wird gelesen. MODELLED. Siehe docs/JAMMERTEST.md.
jammertest_score Bewertet ein Empfänger-Log gegen diesen Zeitplan (kshana jammertest score): je Test die Erkennungslatenz, verpasste Alarme und die Zeit bis zur Erholung sowie die Fehlalarme außerhalb jedes Slots. Textlogs als log, binäre (ubx, sbf) als log_base64. Ein signiertes Paket braucht einen Schlüssel: Befehlszeile. Nur beratend; MODELLED.
fit_imu_log Beschleunigungsmesser- und Gyroskop-Parameter der Szenarien hybrid und fusion, aus einem Log einer ruhenden IMU (CSV oder EuRoC) per Allan-Abweichung angepasst, mit einer zum Einfügen fertigen Tabelle [accel_classical] und dem SHA-256 des Logs (kshana imu-fit). Text hinein, JSON heraus; MODELLED.

GNSS-IQ (Dateien im Arbeitsverzeichnis; im HTTP-Modus aus)

Werkzeug Was es tut
iq_signals Die Einrichtung der GNSS-IQ-Schicht
iq_info Eine IQ-Aufzeichnung (In-Phase und Quadratur) im Arbeitsverzeichnis beschreiben, ohne sie zu verarbeiten
iq_scene Eine GNSS-IQ-Szene mit mehreren Satelliten im Arbeitsverzeichnis erzeugen (kshana iq scene)
iq_acquire FFT-Akquisition (fast Fourier transform) eines oder mehrerer PRNs (pseudo-random noise codes) über eine Aufzeichnung (kshana iq acquire), optional hinter Front-End-Stufen
iq_track Akquirieren, dann mit der DLL/PLL/FLL-Bank (Delay-, Phase- und Frequency-Locked Loop) nachführen (kshana iq track), mit den Schleifen aus einem `kshana.loop-desig
iq_frontend Empfänger-Front-End- und Störungsminderungs-DSP anwenden (digital signal processing
iq_sweep Eine IQ-Aufzeichnung im Arbeitsverzeichnis über mehrere Nachführschleifen-Entwürfe abspielen (kshana iq sweep)
iq_monitor Die Monitore zur Erkennung von Störung und Spoofing über eine IQ-Aufzeichnung im Arbeitsverzeichnis laufen lassen (kshana iq monitor)
iq_labfit Das Verlust-der-Nachführung-Modell der Nachführschleife an Laborläufe anpassen (kshana iq labfit), aus einem iq-labfit-Szenario, dessen Logs inline stehen (text oder base64
iq_test_conditions Eine als Text übergebene kshana.test-conditions/1-Datei validieren und die aufgelösten Bedingungen mit ihrem Hash zurückgeben
iq_campaign Eine Lab-Replay-Kampagne ausführen (kshana iq campaign)
iq_campaign_status Der Fortschritt eines Kampagnen-Ausgabeordners

compliance-Zuordnung

Werkzeug Was es tut
compliance_report Die Zuordnung zum öffentlichen Rahmenwerk, ausgefüllt aus als Text übergebenen Ergebnisdokumenten (kshana compliance-report)
compliance_mapping Die statischen Zuordnungstabellen (oder, mit sources, die Quelldokumente, die sie mit Versionen und URLs zitieren) als Markdown, angeführt von derselben Aussage
list_standards_packs Die Standards-Packs (kshana standards-pack list): bewertete Szenariosätze für die Testprofile des DHS-Rahmenwerks Resilient PNT, IMO MSC.1/Circ.1575 und ICAO Doc 9849 Anhang F
run_standards_pack Ein Pack gegen vor dem Lauf festgelegte Zielwerte ausgeführt: jeder Test MET, NOT MET oder NEEDS INPUT; MODELLED, bewertet kein Produkt
lunanet_afs_check Das LunaNet Augmented Forward Signal, geprüft gegen LNIS V5 AD1 Volume A (LSIS-AFS V1.0): die Codes gegen die gedruckten Tabellen oder ein Symbolstrom gegen das Rahmenformat; LDPC und CRC-24Q der Unterrahmen 2 bis 4 sind nicht verifiziert
create_round_trip_pack Das signierte Labor-Round-Trip-Paket: Szenario, kshana.test-conditions/1-Dokument, Empfänger-Log und Bewertung, per Hash verknüpft

Benchmark

Werkzeug Was es tut
score_benchmark Eine Einreichung für kshana-bench, gegen eine Wahrheitsdatei bewertet, beide als JSON-Text (kshana bench score, bench/SPEC.md): die Ergebnisdatei mit der Spezifikationsversion, Aufteilung, Eingabe-Hashes und den Kennzahlen der Aufgabe. MODELLED; beschreibt ein Log oder einen Korpus, nie ein Produkt.
render_leaderboard kshana-bench-Ergebnisdateien, als statische Bestenlisten-Seite (HTML-Text) dargestellt, jede zuvor validiert.

Editionen#

Die gesamte Engine ist kostenlos. Kshana Pro und individuelle Studien sind für Programme gedacht, die mehr brauchen, und jeder kostenpflichtige Weg beginnt mit einer Nachricht: Hier stehen keine Preise.

Kostenlos Kshana Pro Individuelle Studie
Was es ist die gesamte offene Engine, alle 92 Szenarioarten, ohne Funktionssperre ein proprietäres Overlay auf derselben Engine, unter Vertrag eine PNT-Resilienzstudie Ihres Systems (MODELLED), für Sie erstellt
Lizenz AGPL-3.0 (GNU Affero General Public License, Version 3) oder eine kommerzielle Lizenz proprietär Vertrag
So beginnen Sie installieren oder kshana.dev öffnen eine Pro-Evaluierung anfragen eine Studie anfragen

Was Pro ist, in den Worten von docs/PRO.md:

Eine strikte Obermenge des offenen Kshana. Pro hängt als Bibliothek von der offenen Engine ab und forkt sie nie. Jede offene Szenarioart läuft in Pro unverändert, und ein offenes Szenario läuft in Pro ganz ohne Lizenz.

Keine neue Physik. Pro fügt kein physikalisches Modell hinzu und ändert keines. Jede Zahl in Pro stammt aus Läufen der offenen Engine, daher ist ein Pro-Wert so vertrauenswürdig wie die offene Szenarioart, aus der er stammt, und nie mehr.

Pro beantwortet die nächsten Fragen eines Programms: welcher Entwurf geflogen werden soll (ein Entwurfsoptimierer und seine Pareto-Front), wie sicher die Antwort ist (Unsicherheit und Sensitivität) und ob die Mission ihre Anforderungen erfüllt (ein Missions-Dossier, Anforderungs-Rückverfolgbarkeit, Trade-Studien, eine Szenario-Regressionsprüfung, digitale Uhrenzwillinge, ein Studien-Dossier und ein On-Premises-Dienst). Es überwacht außerdem eine Kampagne von Kennzahlen und lässt eine Pipeline fehlschlagen, wenn eine schlechter wird, testet Kandidaten für Signalpläne in beide Richtungen gegen die offenen Satellitennavigationssignale (Spektrumkoexistenz) und reiht Studien in einem On-Premises-Auftragsdienst mit einem hashverketteten Lieferregister ein. Jedes davon wird, mit dem, was es erzeugt und was es nicht leistet, in docs/PRO.md beschrieben. Nichts, was Pro erzeugt, ist eine Zertifizierung, und eine individuelle Studie ist ebenfalls keine Zertifizierung.

Was Kshana Pro aus der offenen Engine liest, und Support von Ashforde® OÜ

Worauf Kshana Pro aufbaut. Jeder Teil von Pro arbeitet mit der offenen Engine und lässt sie unverändert:

  • Der Entwurfsoptimierer, die Unsicherheitsstudie und das Missions-Dossier führen Szenarien der offenen Engine über deren öffentliche Schnittstelle aus und berechnen jede Zahl aus den Ergebnissen der Läufe. Jede Ausgabe behält die Stufe VALIDATED, MODELLED oder PARTNER, die die offene Engine jeder Kennzahl gegeben hat, nie eine höhere.
  • Digitale Uhrenzwillinge verwenden das Uhrenmodell der offenen Engine und ihren Schätzer der Allan-Abweichung: Ein Zwilling wird auf das veröffentlichte Allan-Budget des Geräts kalibriert und dann geprüft, indem die Allan-Abweichung des Zwillings mit dem offenen Schätzer bestimmt wird.
  • Trade-Studien führen jede Architekturoption unverändert als Szenario der offenen Engine aus und ordnen die Optionen nach einer aus dem Ergebnis jedes Laufs gelesenen Gütekennzahl.
  • Campaign Watch liest seine Kennzahlen aus den Ergebnissen von Läufen der offenen Engine für die Szenarien eines Packs und vergleicht sie mit dem vorherigen bestandenen Lauf.
  • Spektrumkoexistenz liest jede physikalische Zahl aus Läufen der offenen Engine für die Arten leo-signal und constellation-design und fügt nur die Summe über die sichtbaren Satelliten und die Rangfolge der Pläne hinzu.
  • Der On-Premises-Auftragsdienst führt offene und Pro-Szenarien über dieselbe Engine aus und speichert jedes Ergebnis so, wie der Lauf es zurückgegeben hat.
  • Nachweispakete halten für jeden Lauf den Szenario-Hash fest, den die offene Engine auf ihr Ergebnis stempelt, sodass sich eine Kennzahl in einem Paket durch erneutes Ausführen ihres Szenarios reproduzieren lässt.
  • Systems-Engineering- und Programm-Werkzeuge. Die modellbasierten Systems-Engineering-Werkzeuge (MBSE) und Programm-Werkzeuge von Kshana Pro prüfen die Anforderungen eines Programms gegen Läufe der offenen Engine: Sie importieren Anforderungen als kommagetrennte Werte (CSV) oder als dokumentierte Teilmenge des Requirements Interchange Format (ReqIF) oder des Textes der Systems Modeling Language Version 2 (SysML v2), werten jedes Abnahmekriterium mit seiner Einheit gegen die Werte aus, die ein Lauf geschrieben hat, und erzeugen eine Verifikations-Querverweismatrix (VCRM), ein SysML-v2-Modell, einen Änderungsauswirkungsbericht und ein Offline-Nachweispaket. Sie führen nichts erneut aus und berechnen nichts neu und lesen nur, was die offene Engine veröffentlicht: das result.json jedes Laufs (die Felder, die ein Kriterium nennt, ihre Einheiten, den Reproduzierbarkeitsstempel aus Szenario-Hash, Seed, Engine-Version und Schema-Version sowie das Label und die Kennzahlenstufen des Laufs), sein report.json (Art, Reproduzierbarkeitsprotokoll und Fähigkeits-Labels), die Szenariodatei (ihren Hash, ihre Art, ihren Seed und ihre Parameter), das Schema der Feldeinheiten (Einheit, Herkunft und Evidenzstufe jedes Feldes) und die Verifikationsmatrix (das Label VALIDATED, MODELLED oder PARTNER jeder Fähigkeit).

Support & professionelle Dienstleistungen#

Kshana ist frei und Open Source unter der AGPL-3.0 und wird von Ashforde® OÜ professionell entwickelt und gepflegt (Estland). Die offene Engine ist vollständig und für sich allein nutzbar. Für Organisationen, die mehr brauchen, bietet Ashforde® OÜ:

  • Kommerziellen Support & Integration — Kshana in Ihre Toolchain einbetten, individuelle Szenarien und bevorzugte Fehlerbehebungen.
  • Individuelle Sensormodelle — auf Ihre Hardware kalibriert, einschließlich exportsensibler Resilienzmodelle, die in einem privaten Overlay gepflegt werden.
  • Kshana Pro — proprietäre modellbasierte Systems-Engineering-Werkzeuge (MBSE) und Programm-Werkzeuge, die die Anforderungen eines Programms gegen Läufe der offenen Engine prüfen und eine Verifikations-Querverweismatrix (VCRM), ein Modell der Systems Modeling Language Version 2 (SysML v2), einen Änderungsauswirkungsbericht und ein Offline-Nachweispaket erzeugen. Sie führen nichts erneut aus und lesen nur die veröffentlichten Ausgaben der Engine: das result.json und das report.json jedes Laufs, die Szenariodatei, das Schema der Feldeinheiten und die Labels der Verifikationsmatrix (die vollständige Liste steht unter Editionen).
  • Entwurfs-, Unsicherheits- und Missions-Werkzeuge von Kshana Pro — die Pareto-Front eines Entwurfsraums, Unsicherheit und Sensitivität über Tausende von Läufen und ein Missions-Dossier per Einzelbefehl mit Verifikationsmatrix und PDF; siehe docs/PRO.md.
  • Campaign Watch, Spektrumkoexistenz und Auftragsdienst von Kshana Pro — eine Pipeline, die fehlschlägt, wenn sich eine überwachte Kennzahl verschlechtert, Signalpläne, die in beide Richtungen gegen die offenen Satellitennavigationssignale getestet werden, und eine On-Premises-Auftragswarteschlange mit einem hashverketteten Lieferregister; siehe docs/PRO.md.
  • Schulung & Beratung zur Leistungsanalyse von Quanten-/klassischem PNT.

Das ist das Open-Core-Modell: Die Engine ist und bleibt offen lizenziert; das tragende Geschäft sind Fachwissen, Support und die proprietären Erweiterungen — nicht Lizenzgebühren. Kontakt: contact@ashforde.org · ashforde.org.

Forschung#

Auf der offenen Engine aufbauende Studien werden auf arXiv veröffentlicht. Jede nennt den Engine-Befehl dahinter, sodass sich ihre Zahlen aus einem eingecheckten Szenario oder Studienbeispiel neu erzeugen lassen.

Auf der offenen Engine aufbauende Forschung: sechs Paper auf arXiv, jede Karte nennt das Paper, sein Datum und seine Kategorie sowie den Engine-Befehl, der seine Zahlen neu erzeugt. Dieselben sechs Paper mit Links und Befehlen stehen in der Tabelle unten.Auf der offenen Engine aufbauende Forschung: sechs Paper auf arXiv, jede Karte nennt das Paper, sein Datum und seine Kategorie sowie den Engine-Befehl, der seine Zahlen neu erzeugt. Dieselben sechs Paper mit Links und Befehlen stehen in der Tabelle unten.
Paper Was es zeigt Engine-Befehl
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
Der Rückgang der Bewertung eines GNSS-Störungsdetektors, sobald sich die Bedingungen verschieben, lässt sich allein aus Statistiken der Trainingsverteilung vorhersagen, an einem offenen synthetischen Testbed und danach an offenen Feldaufzeichnungen. 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
Ein GNSS-Zeitgebungsempfänger unter Spoofing hat keine endliche unbedingte Schranke für den unerkannten Zeitfehler, daher gibt das Paper eine bedingte an, kalibriert an einem aufgezeichneten Over-the-Air-Spoof aus der öffentlichen Kampagne JammerTest 2024. cargo run --release --example tpl_jammertest
How Stable Is a PNT Resilience Score? Decision-Instability of Single-Number Resilience Ratings under Framework-Aligned Weighting
arXiv:2607,05415 · doi:10.48550/arXiv.2607.05415
Ein einzelner zusammengesetzter Resilienzwert ist nur dort eine stabile Entscheidungsgrundlage, wo ein Entwurf dominiert; wo Entwürfe konkurrieren, kann allein eine Neugewichtung den Sieger ändern. 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
Entfernungsmessung innerhalb einer Mondkonstellation lässt die absolute Position einer Oberflächenstation unbeobachtbar; eine Laufzeit der Very-Long-Baseline-Interferometrie (VLBI) von der Erde stellt sie wieder her, wenn die Konstellation dünn besetzt ist, und schärft sie, wenn sie dicht besetzt ist. die Art 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
Geplante Konstellationen aus vier bis sechs Satelliten liefern am lunaren Südpol eine schlechte Geometrie, und einige Oberflächen-Entfernungsbaken beheben das weit günstiger als mehr Satelliten. die Art 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
Die Dilution of Precision ist für reine Entfernungsverfolgung im cislunaren Raum nicht definiert, weil die Geschwindigkeit in einer Momentaufnahme unbeobachtbar ist; daher verwendet das Paper die Beobachtbarkeits-Gramian auf vier ebenen weiten retrograden Bahnen: Nur Entfernung hat in einer Momentaufnahme den Rang 2 von 4 und braucht einen Bogen von etwa 2,09 h, um vollständig beobachtbar zu werden, wobei sich die Konditionierung mit wachsender Bogenlänge verbessert; die Entfernungsrate (Doppler) liefert sofort den Rang 4; und die gemeinsame Schätzung einer Station mit Satellitenzuständen und Uhren bleibt um eins rangdefizient, solange keine externe interferometrische Beobachtungsgröße hinzukommt. Anforderungen gehören in Budgets für Bogenlänge, Konditionierung und Messtyp, nicht in DOP. die Art cislunar-observability: kshana scenarios/cislunar-observability.toml (ihre Schwesterart cislunar-arc-recovery testet die Schwelle mit einem unabhängigen Finite-Differenzen-Schätzer)

Die drei Studienbeispiele schreiben byte-deterministische Artefakte (feste Seeds), die ihre Engine-Version, ihre Seeds und einen Konfigurations-Hash festhalten. Die drei Paper zu Mond und cislunarem Raum bauen auf der Mond-Suite auf (die Evidenzstufe jedes Bausteins steht in der Verifikationsmatrix); ihre Aussagen zu Geometrie und Dilution of Precision werden außerdem in tests/validate_p*.rs gegen getrennte unabhängige Referenzen gegengeprüft. Mehr unter Reproduzierbare Studienartefakte in der Referenz.

Zitieren#

Wenn Sie Kshana in akademischen oder technischen Arbeiten verwenden, zitieren Sie bitte die von Ihnen verwendete Version mit Szenario und Seed. CITATION.cff enthält die maschinenlesbaren Metadaten, und GitHub zeigt daraus eine Schaltfläche „Cite this repository“ an. Jedes Release wird auf Zenodo archiviert; der Konzept-DOI (Digital Object Identifier) 10.5281/zenodo.20528627 führt immer zur neuesten Version.

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

Die oben genannten Paper:

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

Lizenz#

Kshana ist doppelt lizenziert: die GNU AGPL-3.0-only (LICENSE) oder eine kommerzielle Lizenz von Ashforde® OÜ für geschlossene Integration, für die die AGPL nicht passt. LICENSING.md erklärt, welche gilt. Beiträge werden eingehend unter der AGPL lizenziert und räumen Ashforde® OÜ zusätzlich das Recht ein, sie in die kommerzielle Edition aufzunehmen; signieren Sie jeden Commit mit git commit -s (siehe CONTRIBUTING.md). „Kshana“ und seine Marken sind Marken von Ashforde® OÜ: Die Lizenz deckt den Code ab, nicht den Namen, bitte benennen Sie Forks daher um.

Referenz#

Das lange Material, eingeklappt. Jedes Dokument ist in der Dokumentation aufgeführt.

Installation & Build aus dem Quelltext

Installation & Build#

Erfordert eine Rust-Toolchain (≥ 1,88, die rust-version in Cargo.toml; entwickelt mit 1,93).

git clone https://github.com/ashfordeOU/kshana
cd kshana
cargo build --release
cargo test          # all tests pass
Verwendung: die Kommandozeile im Ganzen

Verwendung#

Jedes Szenario ausführen; die CLI verzweigt anhand des Feldes kind des Szenarios und schreibt <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html und <scenario>.report.json daneben — plus <scenario>.table.csv für die Arten, die eine Tabelle veröffentlichen. Der Bericht (eine HyperText-Markup-Language-Seite (HTML) und ein JSON-Dokument mit demselben Inhalt) enthält eine Management-Zusammenfassung, jede Eingabe mit ihrer Einheit, die Ergebnisse und Diagramme, die Sweep-, Monte-Carlo- oder Ketten-Tabellen einer Kampagne, eine Ereigniszeitleiste, das Label VALIDATED / MODELLED / PARTNER und die Quelle jeder vom Lauf verwendeten Fähigkeit, was nicht modelliert ist, und ein Reproduzierbarkeitsprotokoll (Engine-Version, Digests des Secure Hash Algorithm 256-bit (SHA-256), Seed, Plattform und der genaue Befehl). Er lässt sich aus dem Browser auf A4- oder Letter-Papier als saubere PDF-Datei (Portable Document Format) drucken; die Engine schreibt selbst kein PDF. Siehe 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> schreibt CZML (die Cesium Language), KML (Keyhole Markup Language), GeoJSON (Request for Comments 7946), Ansys-STK-Ephemeriden (Systems Tool Kit) .e und SigMF-Aufzeichnungen (Signal Metadata Format) neben das Szenario, und --import-route <route.geojson> speist eine GeoJSON-Linie in die Arten ein, die einen Kurs abfliegen. Jedes Format wird gegen seine veröffentlichte Spezifikation validiert, und ein Szenario, für das ein Format nicht gilt, sagt warum: siehe docs/INTEROP.md.

Weitere CLI-Modi — ein Szenario linten, reale Erdorientierungsdaten einspeisen oder eine ganze Suite ausführen:

# 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

Animationsexport. --animate svg|html|frames|all schreibt <scenario>.animation.svg (Cascading-Style-Sheets-Keyframes (CSS), kein Skript), <scenario>.animation.html (Wiedergabe, Pause, Scrubben, Geschwindigkeit und synchronisierte Panels, ohne externe Ressource) und <scenario>.frames/ (frame_0000.svg, … plus manifest.json mit den Bildern pro Sekunde und der Dauer). Eine Kampagne spielt ihre Phasen und Alarme ab, ein Spektrumlauf sein Wasserfalldiagramm; das Design folgt prefers-color-scheme und prefers-reduced-motion zeigt das fertige Bild. Sie stellt die eigenen Samples des Laufs dar, bei erneutem Lauf byte-identisch, und fügt keine Evidenz hinzu. Siehe docs/ANIMATION.md.

Ein Suite-Manifest ist eine kleine TOML-Datei (Tom's Obvious, Minimal Language) — ein title und ein scenarios = [ … ]-Array von Szenariopfaden —, die die Engine nacheinander ausführt, wobei jedes Ergebnis (mit seinen Labels MODELLED / VALIDATED) in ein selbstbeschreibendes Studienartefakt gefaltet wird. Siehe scenarios/quantum-pnt-demonstrator.suite.toml.

Interoperabilitätsrolle. Kshana ist die Leistungssimulations-Schicht, die neben der Nachverarbeitungs-Toolchain steht, kein Ersatz für sie: Speisen Sie die RINEX-Ausgabe in RTKLIB oder gLAB für eine Positionslösung ein und verwenden Sie die SP3-Ausgabe als Präzisionsbahn-Produkt für Werkzeuge wie Ginan — Kshana beantwortet welche Resilienz eine gegebene PNT-Architektur bringt, bevor Sie reale Signale haben, in Formaten, die diese Werkzeuge bereits einlesen (--export-sp3, oder export_sp3 = true in einem orbit-Szenario, schreibt <scenario>.sp3). Dieselbe Bahn kann als CCSDS-OMM-Mittelelemente auf dem Standardisierungspfad veröffentlicht werden (--export-omm, oder export_omm = true, schreibt <scenario>.omm) — eine OMM-502,0-KVN-Nachricht (keyword = value notation) je durch TLE definiertem Satelliten, die die reale NORAD-Katalognummer (North American Aerospace Defense Command), die internationale COSPAR-Bezeichnung (Committee on Space Research) und die Epoche jedes Objekts trägt, für jeden OMM-fähigen Verbraucher statt eines eigens gebauten Zweizeilen-Elementesatzes.

Beispielausgabe (Uhren-Holdover — beachten Sie, wie die Gütemaße für Integrität und Sicherheit berichtet werden):

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

Der Zeitfehler der optischen Uhr im 95. Perzentil (p95) beträgt 1.20e-4 ns: Die Zusammenfassung gibt kleine Werte mit signifikanten Stellen aus, statt sie auf 0.0 zu runden. security zeigt n/a (no attack), weil dieses Szenario keinen Angriff konfiguriert und es daher nichts zu erkennen gibt. Das JSON-Ergebnis trägt dennoch für jede Uhr die analytische Schranke der Spoof-Erkennbarkeit in fom.security (0,997 für die optische Uhr, 0,000 für die chipskalige Atomuhr, deren eigenes Rauschen über das Überwachungsfenster die Vorgabe von 20 ns übersteigt), und sein Block figure_tiers kennzeichnet diese Kennzahl mit applicable: false. Die Szenarioart spoof bewertet die Erkennung anhand eines eingespeisten Angriffs. figure_tiers gibt außerdem jeder berichteten Kennzahl ihre Verifikationsstufe — VALIDATED (gegen eine externe unabhängige Referenz geprüft) oder MODELLED — und die Zeile der Verifikationsmatrix an, aus der die Stufe gelesen wird. Das Orbit-Szenario berichtet zusätzlich neben dem Uhrenergebnis einen Geometrieblock — Anteil der Samples mit Fix sowie beste/mediane Positions-Dilution-of-Precision (PDOP) und Positionsgenauigkeit.

Lesen Sie diese beiden Zahlen sorgfältig. security ist eine analytische Schranke der Spoof-Erkennbarkeit, abgeleitet aus der Stabilität jeder Uhr — sie ist nur gegenüber einem konfigurierten Spoofing-Szenario aussagekräftig und kein RAIM-Detektor mit mehreren Satelliten. integrity ist hier die Selbstkonsistenz des Filters (Anteil der Ausfall-Samples innerhalb seiner eigenen k-Sigma-Schranke), keine HPL/VPL-Integritätskennzahl der Luftfahrt. Siehe docs/INTEGRITY.md.

Für echte empfängerautonome Integrität führt die Szenarioart integrity (scenarios/integrity-raim.toml) echtes Snapshot- und Solution-Separation-RAIM (nach Art von ARAIM) über der propagierten Konstellationsgeometrie aus: Sie berechnet horizontale/vertikale Schutzradien (HPL/VPL) pro Epoche und berichtet den Anteil der Epochen, die die konfigurierten Alarmgrenzen einhalten, mit einem Stanford-Integritätsdiagramm zur Klassifikation von Fehler gegen PL (protection level).

Reproduzierbare Studienartefakte

Vier offene Studien erzeugen jeweils ein byte-deterministisches Artefakt (fester Seed) aus einem Befehl neu — die Zahlen hinter den Studien zum Quanten-gegen-klassisch-Übergang, zur Optimismuslücke bei HF-Beeinträchtigungen, zur Bewertung der PNT-Resilienz und zum Zeitgebungs-Schutzradius:

# 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

Jedes Artefakt hält seine Engine-Version, seine Seeds und einen Konfigurations-Hash fest und trägt ein ehrliches Label MODELLED/VALIDATED. Die Echtdaten-Sonden (*_probe) führen dieselbe Pipeline über Aufzeichnungen aus, die Sie lokal bereitstellen; im Repository werden keine Datensätze mitgeliefert. Die Studie zur Optimismuslücke bei HF-Beeinträchtigungen ist im Preprint arXiv:2606,22054 beschrieben und der bedingte Zeitgebungs-Schutzradius (tpl_jammertest oben) im Preprint arXiv:2606,24210 (siehe Zitieren).

Bei den veröffentlichten Studien zu Mond-PNT (arXiv:2607,06212 DOP von Oberflächenbaken, arXiv:2607,02566 VLBI-Beobachtbarkeit und arXiv:2610,23871 Beobachtbarkeit der Bogenlänge im cislunaren Raum) sind die Aussagen zu Geometrie, Dilution of Precision, Echtzeit-Vorhersage von Bezugssystem / Erdorientierungsparametern (EOP), retrograden Fernbahnen und HF-Entfernungsmessung in tests/validate_p*.rs unabhängig gegen getrennte unabhängige Referenzen gegengeprüft (scipy.special.j1, eine unabhängige NumPy-DOP-Lösung mit (HᵀH)⁻¹, ein NumPy-Neu-Parsen derselben IERS-finals2000A-Zeilen und die Three-Body Periodic Orbit Database von NASA/JPL). Dies sind zusätzliche Regressionsprüfungen über der modellierten Mond-Suite; sie ändern nichts an der maschinell geprüften Anzahl der Matrix.

Szenarioformat

Szenarioformat#

Szenarien sind deklaratives TOML. Ein kind auf oberster Ebene wählt das Pack — insgesamt fünfzig (clock ist der Standard, wenn er fehlt): 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 (Testbed zur Bewertung der Erkennung von HF-Beeinträchtigungen mit maschinellem Lernen — gelabelter synthetischer Korpus + detektorunabhängiges ROC/AUC-Harness + Optimismuslücke zwischen Verteilung und Fremdverteilung), quantum-trade (PNT-Trade Quanten gegen klassisch mit Einlesen gemessener ADEV + Resilienzhüllkurve bei GNSS-Ausfall; MODELLED), space-weather (Sonnen-/geomagnetische Indizes + exosphärische Temperatur nach Jacchia-71 + aktivitätsgetriebene thermosphärische Dichte über der statischen Atmosphäre; MODELLED), oem-interop (CCSDS-OEM-Import/Round-Trip-Brücke für GMAT/Orekit/STK-Ephemeriden; MODELLED), das Missionsanalyse-Trio launch-window (Zwei-Körper-Startazimut / Ebenenwechsel / Gelegenheiten), reentry (ballistischer Wiedereintrittskorridor nach Allen-Eggers), eo-coverage (EO-Streifen- / GSD- / Zugriffs- / Wiederbesuchsgeometrie), space-packet (CCSDS-133,0-TM/TC — Telemetrie/Telekommando — Space-Packet-Rahmung — exaktes Bit-Layout, per Round-Trip verifiziert) und attitude-budget (3-DOF-Gravitationsgradienten-Drehmoment + RSS-Ausrichtungsfehlerbudget), passes (Vorhersage von Überflügen mit Auf-/Untergang an der Bodenstation — AOS/TCA/LOS, maximale Elevation, Zugriff) und link-budget (einseitige CCSDS/DSN-Streckengleichung — FSPL / Eb·N₀ / Marge / Schließung); telecom-timing (Holdover-Zeitfehler, MTIE und TDEV gegen ITU-T-Masken geprüft); spectrum (das gesamte GNSS-L-Band als eine spektrale Leistungsdichte: ein Frequenz-Zeit-Wasserfalldiagramm unter einer skriptgesteuerten Zeitleiste eines Dauerstrich-, Schmalband-, Chirp- oder rauschangepassten Störsenders, Störer-zu-Signal-Verhältnis je Band und effektive Träger-zu-Rauschleistungsdichte aus dem spektralen Trennkoeffizienten sowie Ein- und Ausgabe von Aufzeichnungen im Signal Metadata Format (SigMF) mit Welch-Spektralschätzungen; die Signalspektren VALIDATED gegen Lehrbuchwerte, das Störsender-Szenario MODELLED; siehe docs/SPECTRUM.md; dieselbe Art zeichnet UHF-, S- und C-Band-Panels mit entworfenen Signalen niedriger Erdumlaufbahn); leo-signal (Signalentwürfe für Positionierung, Navigation und Zeitgebung in niedriger Erdumlaufbahn für jedes System: bandbegrenzte Spektren, Code-Nachführ-Jitter und Entfernungsmessgenauigkeit, Akquisitionssuche und -zeit, spektrale Trennung gegen GPS und Galileo, Störfestigkeit und ein UHF-bis-C-Band-Trade, aus öffentlichen Presets wie Xona Pulsar, Iridium, Starlink und CentiSpace oder Inline-Entwürfen; die geschlossenen Formen und der LEO-Doppler VALIDATED, die Entwürfe MODELLED; siehe docs/LEO-SIGNAL.md); solar-system (die Sonne, die Planeten, Pluto, der Mond und sieben große Monde zu einer Epoche — Positionen, Konstanten, Lichtlaufzeiten und Bahnspuren; Planetenpositionen VALIDATED gegen JPL Horizons) und body-pnt (Positionierung um jeden dieser Körper mit einer lokalen Navigationskonstellation und einer Deep-Space-Strecke von der Erde; MODELLED); campaign (bestehende Arten, zusammengesetzt zu einer verketteten Missionszeitleiste mit zwischen den Phasen übergebenem Zustand, einem Parameter-Sweep, einem Monte-Carlo-Ensemble mit Seed oder mehreren Szenarien unter einer gemeinsamen Bedingung; MODELLED, siehe docs/CAMPAIGNS.md); constellation-design (Walker-Delta- und Walker-Star-Muster, Elementlisten und Mehrschalen-Entwürfe mit Presets für GPS, Galileo, BeiDou und GLONASS sowie Abdeckung und Dilution of Precision über einem Breiten-/Längengitter; der Generator und das globale GPS-DOP VALIDATED gegen die veröffentlichten Dienstdokumente, siehe docs/CONSTELLATION-DESIGN.md); leo-pass (ein Überflug eines Positionierungs-, Navigations- und Zeitgebungs-Satelliten (PNT) in niedriger Erdumlaufbahn (LEO) und sein Link-Budget Band für Band, aus jeder Konstellation und jedem Signalentwurf: Blickwinkel, Doppler und Doppler-Rate, ITU-R-Regen-, -Gas-, -Szintillations- und Gebäudeeindringungsdämpfung, Träger-zu-Rauschleistungsdichte gegenüber den sichtbaren MEO-GNSS-Satelliten, die Ionosphäre erster Ordnung und ionosphärenfreie Paare sowie ein Fix-Budget mit niedriger Energie, Ionosphärensondierung aus jedem Bandpaar und Spoofing-Monitore durch Doppler- und Überflug-Geometrie-Konsistenz und durch Konsistenz zwischen den Bändern; die ITU-R-Terme und die Doppler-Hüllkurve für ruhende Nutzer VALIDATED, der Überflug MODELLED, siehe docs/LEO-PASS.md); leo-navmsg (die Broadcast-Ephemeriden- und Uhrennachricht eines PNT-Satelliten in niedriger Erdumlaufbahn (LEO), für jede Bahn und jeden Träger: ein Fitter von einer integrierten Wahrheitsbahn auf den Galileo-Kepler-Satz, dieser Satz mit Korrekturpolynomen entlang der Bahn, quer zur Bahn und radial, das 22-Parameter-Modell von Liu et al. 2025 oder das ATOMIC-ECEF-Polynom mit Null-Uhr; Signal-in-Space-Entfernungsfehler (SISRE) gegenüber Fit-Intervall und Aktualisierungsperiode, eine Kontinuitätsprüfung bei Aktualisierung mitten im Überflug, das eigene dokumentierte Binärframe von Kshana mit einer zyklischen Redundanzprüfung CRC-24Q und einem Quantisierungsbudget sowie ein Block im RINEX-4-Stil, als Kshana-Erweiterung gekennzeichnet; die SISRE-Gewichte, der Galileo-Nutzeralgorithmus und CRC-24Q VALIDATED, die Fits MODELLED; optionale Presets für Xona Pulsar, Iridium, Starlink, CentiSpace, ein repräsentatives C-Band-System, ATOMIC und Celeste IOD; siehe docs/LEO-NAVMSG.md); das fusionierte MEO + LEO PNT-Trio leo-pvt (Doppler-Positionierung aus der Entfernungsrate von Satelliten in niedriger Erdumlaufbahn (LEO), gemeinsame GNSS- + LEO-Pseudorange-Fixes mit systemübergreifenden Biases und das DOP gegenüber der Anzahl der LEO-Satelliten, Polar- und Arktisabdeckung sowie LEO-Zeitübertragung zu UTC — über jede Konstellation, mit optionalen Presets wie Xona Pulsar, Iridium und Starlink als Gelegenheitssignalen; die LEO-Doppler-Hüllkurve VALIDATED gegen veröffentlichte Iridium- und Xona-Werte), leo-ppp (Konvergenz der präzisen Punktbestimmung nur mit GNSS und mit LEO-Augmentation, verglichen mit Li et al. 2019) und ntn-positioning (Positionierung über nichtterrestrische 5G-Netze aus der Cramér-Rao-Schranke der Signalbandbreite), außer dieser Hüllkurve MODELLED, siehe docs/LEO-PNT-FUSION.md; leo-pnt-chain (ein LEO-PNT-System von Anfang bis Ende: ein Entwurf leo-signal, getragen von einem Band leo-pass, das C/N0 des Überflugs und der Signal-in-Space-Entfernungsfehler der Navigationsnachricht, übergeben an einen fusionierten Fix leo-pvt und die Konvergenz leo-ppp, jede Übergabe aufgelistet; MODELLED, siehe docs/LEO-PNT.md, das zugleich die Übersicht über jede LEO-PNT-Art und jedes Szenario ist, einschließlich der Resilienzkampagnen, eines Szenarios je Schwerpunkt des Experiments und eines je Endnutzer-Vertikale); die Mond-PNT-Suite lunar-vlbi, lunar-joint-od-clock, lunar-frame-realisation, moonlight-service-volume, lunar-differential-pnt, lunar-interop-export; der quantengestützte PNT-Demonstrator quantum-time-transfer, quantum-gnss-free-nav, quantum-anomaly-detect; und die Forschungsarten zu Signalsicherheit, cislunarem Raum & mehrschichtiger Resilienz lunar-attack-surface, realtime-frame-eop, lunar-time-budget, hybrid-optical-rf, cislunar-observability, conflict-resilience — das Missionsanalyse-Trio und diese späteren Arten allesamt MODELLED (jeweils mit einem validierten Kern in geschlossener Form; siehe die Matrix). Gemeinsame Felder: seed, ein Raster [time], eine Verfügbarkeitszeitleiste [gnss] (der Ausfalltreiber) und Blöcke je Sensor mit provenance-Strings, die die Quelle jeder Kennzahl nennen. Beispiel (Uhr):

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

Optionale Felder (aus, wenn nicht vorhanden): Eine Uhr kann flicker_floor hinzufügen (1/f-FM — Frequenzmodulation — Allan-Untergrenze); ein Inertialsensor kann gyro_bias und q_arw hinzufügen (Gyro-Bias und Winkel-Random-Walk) sowie bias_instability und q_aa (die Allan-Untergrenze der Bias-Instabilität und der Beschleunigungs-Random-Walk) — zusammen ein einachsiges (1-DOF) Fehlerbudget des Beschleunigungsmessers (VRW/ARW — Geschwindigkeits-/Winkel-Random-Walk — und Bias-Instabilität). Dies ist das Fehlerbudget, das das mitgelieferte Pack an inertial-Szenarien ausführt. Davon getrennt enthält die Bibliothek jetzt einen verifizierten 3-achsigen Strapdown-Navigator (src/inertial/{attitude,mechanization,imu_errors}.rs): Quaternionen-Lage mit Coning-/Sculling-Kompensation, eine vollständige NED-Mechanisierung (Erdrate- und Transportrate-Terme, Somigliana-Schwere nach WGS-84) und ein deterministisches IMU-Fehlermodell, in dem Skalenfaktor, Fehlausrichtung, g-Empfindlichkeit, Quantisierung und Ratenrampe modelliert werden (IEEE Std 952-1997, die IEEE-Norm für Gyro-Spezifikation und Testverfahren, §A.2; Groves 2013 §4,3). Dieser 3-achsige Pfad ist jetzt in ein lauffähiges lose gekoppeltes GNSS/INS-Pack eingebunden (kind = "gnss-ins"): Ein EKF mit 15 Fehlerzuständen diszipliniert die Strapdown-Lösung gegen verrauschte Fixes, solange GNSS verfügbar ist, läuft dann durch den Ausfall und berichtet den fusionierten horizontalen Fehler gegenüber dem offenen reinen INS-Auslauf. Eine eng gekoppelte Pseudorange-Aktualisierung ist ebenfalls verfügbar (sie bildet die Innovation im Entfernungsbereich und korrigiert daher auch mit weniger als vier Satelliten weiter). Ein Uhren-Holdover-Szenario kann runs (> 1) hinzufügen, um ein Monte-Carlo-Ensemble auszuführen — jede Kennzahl wird dann als Mittelwert mit einer Streuung vom 5. bis 95. Perzentil berichtet, und das Diagramm schattiert das Konfidenzband des Fehlers (siehe scenarios/clock-ensemble.toml).

Ein Szenario fusion (dieselben Blöcke wie hybrid) führt zwei unabhängige Kalman-Schätzer aus — einen für den Uhrenzustand, einen für den Positionszustand —, die von GNSS diszipliniert und durch optische Zeitübertragung gestützt werden, und berichtet ein kombiniertes Holdover-Gütemaß. Die beiden Blöcke teilen keine Kreuzkovarianz: Dies ist ein gestapeltes Paar von Fehlerbudgets, kein echtes gekoppeltes gemeinsames Uhren-+-Positions-Filter (blockübergreifende Kovarianz steht auf der Roadmap). Siehe scenarios/fusion-pnt.toml.

Ein Szenario spoof speist ein Zeit-Spoofing ein — eine von vier Arten [attack.shape] (linear_ramp, step_jump, meaconing, replay; ein bloßes rate_ns_per_s wird weiterhin als lineare Rampe akzeptiert) — und führt den Spoof-Detektor jeder Uhr aus. Der Detektor ist ein zweiseitiger χ²₁-Energie- / Neyman-Pearson-Test auf der uhrengestützten Monitorstatistik: Die Schwelle wird aus einem Zielbudget für Fehlalarme target_pfa festgelegt, und die Wahrscheinlichkeit einer Fehldetektion P_md wird sowohl in geschlossener Form als auch per Monte-Carlo berichtet (mc_runs Versuche je Hypothese — beide stimmen bis auf wenige ×1/√N überein). Das Sicherheits-Gütemaß ist 1 − P_md bei der betrieblich schädlichen (Vorgabe-)Größe, sodass eine ruhige Uhr, die einen Spoof in Vorgabegröße erkennt, ≈ 1 erreicht und eine verrauschte, die ihn oft verfehlt, weniger (siehe scenarios/spoof-attack.toml, scenarios/spoof-meaconing.toml).

Ein Szenario gnss-sim ist eine Simulation im Messungsbereich: Für jeden sichtbaren Satelliten synthetisiert es die Pseudorange ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath und den L1-Doppler, mit der Einfrequenz-Ionosphäre nach Klobuchar ([iono], IS-GPS-200 §20.3.3.5.2.5) und der Zenit-Troposphäre nach Saastamoinen, projiziert mit der Abbildungsfunktion von Niell (1996) ([tropo]). Die Residuen speisen das Snapshot-RAIM für HPL/VPL je Epoche, und Pseudorange, Doppler, C/N₀ sowie Iono-/Tropo-Korrekturen jedes Satelliten werden im JSON-Array gnss_measurements ausgegeben. Es ist ein Vorwärtssimulator (er erzeugt Messungen aus einer bekannten Wahrheit), kein Empfänger/Löser — ein rauschfreier Lauf reproduziert die Geometrie plus die Korrekturen im Sub-Millimeter-Bereich (siehe scenarios/gnss-sim-raim.toml).

Ein Szenario jamming modelliert HF-Störung als Link-Budget: Ein [jammer] (ECEF-Position, Sende-power_dbw, Typ) erhöht das Störer-zu-Signal-Verhältnis an einem [receiver], der eine Walker-[constellation] beobachtet. Aus der Geometrie (Freiraumdämpfung und der richtungsabhängige Empfangsantennengewinn) berechnet es das J/S jedes Satelliten und das effektive C/N₀ über die Standard-Anti-Jam-Gleichung (Entspreizungs-Prozessgewinn × der spektrale Trennfaktor Q; Kaplan & Hegarty §9,4) und markiert den Verlust der Nachführung unterhalb einer konfigurierbaren Nachführschwelle — und berichtet ein Gütemaß availability_under_jamming. Ein Breitband-Störsender mit 10 W in 1 km Entfernung unterbindet den Empfang vollständig (J/S ≈ 72 dB); derselbe Störsender in 100 km beeinträchtigt die Links nur (siehe scenarios/jamming-demo.toml).

Ein Szenario sweep führt eine Trade-Studie aus: Es variiert einen parameter (threshold_ns, duration_s, quantum_q_wf oder classical_q_wf) von start bis stop über steps Punkte auf einer lin- oder log-scale, erfasst für beide Uhren eine metric (z. B. holdover_s) und zeichnet die beiden Kurven. Das Basisszenario steht unter [base] (siehe scenarios/sweep-clock-stability.toml).

Ein Szenario sweep-nd verallgemeinert dies auf jedes Pack und beliebig viele Achsen: Es variiert gepunktete TOML-Schlüssel eines Szenarios [base] (von beliebiger kind) über das kartesische Produkt von [[axes]], führt jeden Rasterknoten erneut aus und erfasst metrics, angegeben als gepunktete JSON-Pfade in das Ergebnis (z. B. classical.fom.holdover_s). Es funktioniert für jedes Pack, weil es an der Grenze zwischen TOML und Ergebnis arbeitet; native Läufe werten das Raster parallel aus (keine zusätzliche Abhängigkeit, wasm fällt auf sequenziell zurück), und die Ausgabe ist deterministisch und zeilenweise geordnet (siehe scenarios/sweep-nd-inertial.toml).

Ein Szenario orbit leitet die Zeitleiste [gnss] aus der Geometrie ab, statt sie zu verfassen — geben Sie eine Bahn [user], eine [constellation], eine Elevationsmaske mask_deg und die beiden Uhrenblöcke an. Es berichtet außerdem die Positionsgenauigkeit aus der Satellitengeometrie; der optionale Wert sigma_uere_m (1-Sigma-Nutzer-Entfernungsfehler, Standardwert 1 m) skaliert die Positions-Dilution-of-Precision zu einem Positions-Sigma. Die Nutzerbahn kann mit eccentricity und argp_deg exzentrisch gemacht werden, und j2 = true fügt die säkulare Drift durch die Erdabplattung hinzu (siehe scenarios/orbit-molniya.toml). Die Konstellation kann stattdessen eine reale sein: Geben Sie [constellation] einen Block tle mit Zweizeilen-Elementesätzen, und die Satelliten werden daraus geparst (siehe scenarios/orbit-real-tle.toml). Fügen Sie einen oder mehrere Blöcke [[constellations]] für Multi-GNSS hinzu (z. B. GPS + Galileo; siehe 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

Die Arten für GPS-freies Alt-PNT navigieren ganz ohne GNSS und gleichen dabei eine gemessene Feldsequenz über einen Partikelfilter mit einer Karte ab. Ein Szenario gravity-map fliegt einen Kurs durch ein Schwereanomalie-Feld aus Kugelfunktionen und stellt ihn aus der Messung eines Kaltatom-Gravimeters wieder her (scenarios/gps-denied-gravity-nav.toml); ein Szenario terrain-nav tut dasselbe gegen ein SRTM-Höhen-DEM (TERCOM/SITAN, scenarios/terrain-nav.toml); und ein Szenario combined-altpnt fusioniert Schwere + IGRF-Magnetfeld + Gelände in einem Filter (scenarios/combined-altpnt.toml).

Ein Szenario lunar-integrity bewertet cislunares PNT: Es führt einen ARAIM-Schutzradius-Durchlauf am lunaren Südpol gegen einen LunaNet/LNIS-Relaissatz aus und berichtet die Integritätslücke ehrlich — ein lunares σ_URE von ~30 m treibt den Schutzradius weit über eine Alarmgrenze von 50 m, sodass der Dienst unter Integritätsregeln nach Art der Luftfahrt nicht verfügbar ist (scenarios/lunanet-araim.toml).

Ein Szenario lunar-time-offset berichtet die relativistische Uhrenrate Erde–Mond — die Grundlage einer Mond-Koordinatenzeitskala (LTC/TCL). Eine post-newtonsche Identität aus ersten Prinzipien summiert die Differenz der Eigenpotenziale (IAU-L_G-Geoidpotenzial minus das Eigenpotenzial der Mondoberfläche) und den kinetischen Term des Mondes (Doppler zweiter Ordnung) zu einer säkularen Rate von ≈ 57 µs/Tag, berichtet mit dem veröffentlichten Band von 56–59 µs/Tag; es gibt außerdem den aufgelaufenen LTC−TT-Offset über einen Horizont und ein Ensemble mit inverser Varianz an (eine lunare Papieruhr). MODELLED — die Kernzahl ist referenzabhängig (Erdgeoid gegenüber Mond-Selenoid, Mittelungsfenster), weshalb ein Band und nicht eine einzelne zertifizierte Zahl berichtet wird (scenarios/lunar-time-offset.toml).

Siehe scenarios/ für mindestens ein ausgearbeitetes Beispiel jeder Art (92 Arten, 193 Szenario-Dateien .toml + 1 Suite-Manifest — mehrere Arten liefern mehr als ein Beispiel mit). Nicht jede Art hat eine nach ihr benannte Datei: lunar-integrity → scenarios/lunanet-araim.toml und gravity-map → scenarios/gps-denied-gravity-nav.toml sind zwei von mehreren solchen. Listen Sie die verteilbaren Arten jederzeit auf mit cargo run -- --validate <file>-Fehlern, dem Python-list_kinds() oder dem MCP-Werkzeug list_scenario_kinds.

Ausgabe

Ausgabe#

Das Ergebnisartefakt ist versioniertes, selbstbeschreibendes JSON: Zeitreihen je Schritt, die bewerteten Gütemaße, die aktiven Modellspezifikationen (mit Herkunft), der Seed, ein Szenario-Hash — damit sich jedes Diagramm aus der Datei reproduzieren lässt — und für jede Uhr eine adev_curve ([{tau_s, adev, n_samples, noise, edf, ci_lo, ci_hi}]): die überlappende Allan-Abweichung über oktavweise gestufte Mittelungszeiten — die übliche Art, die Stabilität einer Uhr zu lesen — jetzt mit einem rauschtypspezifischen 95-%-Konfidenzband je Punkt (der Potenzgesetz-Typ der Aufzeichnung wird aus ihrer Steigung der modifizierten Allan-Abweichung bestimmt, und das χ²-Intervall verwendet die passenden effektiven Freiheitsgrade nach NIST SP 1065). Der Browser-Playground stellt es als doppelt logarithmisches Diagramm „Clock stability (ADEV)“ dar. (MDEV, TDEV und HDEV stehen als Bibliotheksschätzer zur Verfügung; die exportierte Ergebniskurve ist die überlappende ADEV.) Jedes Feld mit Einheiten und einem Quellverweis ist in docs/SCHEMA.md dokumentiert.

Jedes Diagramm ist selbstbeschreibend. Der Browser-Playground, der Export *.chart.svg der CLI und die HTML-Scorecard (HyperText Markup Language) versehen jedes Diagrammbild mit einer Fußzeile mit dem Wortlaut Kshana v<version> · scenario <hash> · kshana.dev. Das scenario <hash> sind die ersten 12 Hex-Zeichen des Szenario-Hashs des Laufs — ein SHA-256-Digest (der 256-Bit Secure Hash Algorithm) über die kanonische Szenariodefinition (Seed, Schwellen, Modellparameter, GNSS-Fenster, …); die Integritäts- und Mondberichte, die keinen eigenen Hash tragen, greifen auf ein SHA-256 des Szenarioquelltexts zurück. Es ist derselbe Fingerabdruck, der in der einzeiligen Zusammenfassung und im Ergebnis-JSON steht, sodass ein gespeichertes oder eingefügtes Diagramm immer seine Version, das genaue Szenario, das es erzeugt hat (für die bitgenaue Reproduktion), und die Quelle trägt — ändert man eine Eingabe, ändert sich der Hash.

Die Gütemaße folgen den üblichen betrieblichen PNT-Gütemaßen:

Gütemaß Wie Kshana es berechnet
Zeitgebungsleistung (Uhren-/Orbit-Packs) RMS des Uhrenphasenfehlers + 95. Perzentil über den Ausfall, in Nanosekunden (timing_rms_ns) — ein Zeitgebungsmaß, keine Position
Positionierungsleistung (Inertial-/Hybrid-Packs) 1-DOF-Positionsfehler-RMS + 95. Perzentil über den Ausfall, in Metern (pos_rms_m); einachsig. Ein einzelner Lauf wird mit monte_carlo: false gekennzeichnet; setzen Sie runs = N für ein Monte-Carlo-Ensemble, das Mittelwert, Streuung und Bootstrap-95-%-KI (Konfidenzintervall) jeder Metrik berichtet. Weiterhin kein 2D-CEP/2DRMS (circular error probable / doppelter Abstands-Effektivwert) und keine DOP-gewichtete Genauigkeit (dafür wäre das 3-achsige Modell nötig — Roadmap)
Autonomie Holdover-Dauer — Zeit innerhalb der Vorgabe nach GNSS-Verlust (rasterquantisiert: eine Untergrenze)
Resilienz Steigung des Fehlerwachstums während des Ausfalls
Verfügbarkeit Anteil des Laufs mit einer Lösung innerhalb der Vorgabe
Integrität Selbstkonsistenz des Filters — Anteil der Ausfall-Samples, deren Fehler innerhalb der eigenen k-Sigma-Schranke des Kalman-Filters bleibt. Keine HPL/VPL/RAIM-Integritätskennzahl der Luftfahrt (siehe docs/INTEGRITY.md)
Sicherheit analytische Schranke der Spoof-Erkennbarkeit aus der Uhrenstabilität — wie klein/langsam ein Zeit-Spoofing sein dürfte, das ein Konsistenzmonitor mit einer einzelnen Uhr noch melden könnte. Nur mit einem konfigurierten Angriff aussagekräftig; kein RAIM-Detektor mit mehreren Satelliten

Neu bei diesen Begriffen? Jeder ist im Glossar in einfacher Sprache erklärt.

Repository-Aufbau

Repository-Aufbau#

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

FAQ#

Muss ich Quantenphysik verstehen, um das zu nutzen? Nein. Wenn Sie eine Kommandozeile bedienen können, können Sie Kshana ausführen. Beginnen Sie mit der Einführung in einfacher Sprache; schlagen Sie Begriffe im Glossar nach.

Ist das ein Entwurf für Quantenhardware oder Flugsoftware? Nein. Es ist ein Simulator für die Leistung. Die Genauigkeit der Quantenhardware stammt aus veröffentlichten Fehlermodellen, nicht aus diesem Werkzeug. Siehe Was es ist / nicht ist.

Sind die Quantenergebnisse realistisch oder Marketing? Jeder Parameter ist mit einem Datenblatt oder Paper belegt, jedes Modell ist gegen eine Lehrbuchbeziehung validiert, und der Reifegrad ist in VALIDATION.md ehrlich gekennzeichnet — einschließlich der Tatsache, dass noch keine optische Strontiumuhr geflogen ist. Die Engine ist neutral: Quanten und klassisch sind derselbe Code mit unterschiedlichen veröffentlichten Zahlen.

Kann ich darauf vertrauen, dass zwei Läufe übereinstimmen? Ja — Läufe sind deterministisch: scenario + seed + engine version → bit-identical output, durchgesetzt von scripts/check-reproducible.sh.

Kann ich es aus Python oder in einem Browser nutzen? Ja — siehe Installation: Die Python- und WebAssembly-Beispiele stehen darunter. Beide rufen dieselbe Engine auf.

Wie modelliere ich meinen eigenen Sensor? Schreiben Sie ein Szenario .toml mit den veröffentlichten Kennzahlen Ihres Sensors in den Feldern provenance. Siehe Szenarioformat und die Beispiele in scenarios/.

Ist es für die kommerzielle Nutzung kostenlos? Ja — unter der AGPL-3.0, auch in kommerziellen Umgebungen, solange Sie das Copyleft der AGPL einhalten (insbesondere: Wenn Sie Kshana ändern und über ein Netzwerk anbieten, müssen Sie diesen Nutzern Ihren geänderten Quelltext anbieten). Wenn das nicht passt — z. B. weil Sie Kshana in ein proprietäres Produkt einbetten oder einen geschlossenen Netzwerkdienst betreiben müssen —, ist von Ashforde® OÜ eine kommerzielle Lizenz erhältlich; siehe LICENSING.md und Support.

Fehlerbehebung

Fehlerbehebung#

cargo build schlägt mit einer alten Toolchain fehl. Kshana braucht Rust ≥ 1,88. Aktualisieren Sie mit rustup update.

Der Build der Python-Erweiterung lässt sich unter macOS nicht linken (Undefined symbols … _Py…). Eine Python-Erweiterung löst ihre Symbole zur Ladezeit auf. maturin setzt das richtige Linker-Flag automatisch — verwenden Sie maturin develop --features python statt eines bloßen cargo build.

Der Python-Build beanstandet, der Interpreter sei neuer, als PyO3 kennt. Setzen Sie PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 (abi3-Wheels sind über CPython-Versionen hinweg vorwärtskompatibel).

Der WebAssembly-Build findet das Target nicht. Installieren Sie es einmalig mit rustup target add wasm32-unknown-unknown, dann wasm-pack build --target web -- --features wasm.

Wo ist meine Ausgabe geblieben? Jeder Lauf schreibt <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html und <scenario>.report.json neben die Eingabe .toml, und <scenario>.table.csv ebenfalls für die Arten, die eine Tabelle veröffentlichen. Alle sind bewusst von git ignoriert.

Versionierung & Releases

Versionierung & Releases#

Kshana folgt Semantic Versioning. Solange es vor 1.0 ist, kann sich das öffentliche Szenario-/Ergebnisschema noch ändern; inkompatible Änderungen werden im CHANGELOG.md ausdrücklich genannt. Jedes Ergebnis ist aus scenario + seed + engine version reproduzierbar.

Jeder Tag vX.Y.Z veröffentlicht automatisch alle Kanäle, in einer Reihenfolge — zuerst läuft die vollständige Testsuite auf dem getaggten Commit, nichts wird veröffentlicht, bis sie besteht, und danach prüft die Pipeline, dass jede Registry tatsächlich die neue Version ausliefert (docs/RELEASING.md). Die Kanäle:

Eine Passage, die KI-Clients von Drittanbietern nennt, ist hier weggelassen; sie steht in README.md auf GitHub.

Eine Passage, die KI-Clients von Drittanbietern nennt, ist hier weggelassen; sie steht in README.md auf GitHub.

Kanal Installieren / beziehen Inhalt
crates.io cargo install kshana · kshana = "0.35" Rust-Bibliothek + CLI
crates.io cargo install kshana-mcp der MCP-Server
PyPI (Python Package Index) pip install kshana abi3-Wheels (Linux/macOS/Windows) + sdist (Quelldistribution)
npm npm install kshana WebAssembly-Modul + JS-Wrapper
ghcr.io docker run -i ghcr.io/ashfordeou/kshana-mcp OCI-Image (Open Container Initiative) für mehrere Architekturen — keine Toolchain nötig
npm npx -y kshana-mcp@0.40.0 Launcher: lädt die Release-Binärdatei herunter, verifiziert SHA256SUMS und führt sie aus
PyPI uvx kshana-mcp==0.40.0 · pipx run kshana-mcp==0.40.0 derselbe Launcher für Python
Homebrew · Scoop · winget brew install ashfordeOU/tap/kshana-mcp · scoop install kshana-mcp · winget install AshfordeOU.KshanaMcp die Binärdatei kshana-mcp, aus SHA256SUMS jedes Releases erzeugt
offizielle MCP-Registry von MCP-Clients automatisch gefunden io.github.ashfordeOU/kshana-mcp (OCI-Image, npm- und PyPI-Pakete)
JetBrains Marketplace IDE → Plugins → nach "Kshana" suchen das IDE-Plugin Kshana — PNT simulator
Zenodo DOI ein zitierbares Archiv jedes Releases
kshana.dev im Browser öffnen Kshana Studio, die WebAssembly-App im Browser, aus jedem Release-Tag neu gebaut (die angezeigte Version ist also die Version, die läuft)

Die Crate-/Image-/Registry-Version des MCP-Servers folgt der Engine (er bündelt die Bibliothek); das JetBrains-Plugin wird unabhängig versioniert (es ruft Ihre installierte Binärdatei kshana auf).

Roadmap

Roadmap#

Siehe ROADMAP.md für die phasenweise Roadmap, CHANGELOG.md für die veröffentlichte Historie und docs/CAPABILITY.md für die Roadmap je Fähigkeit. Die Prioritätsreihenfolge lautet: zuerst Zeitgebungs- und Holdover-Evidenz für kritische Infrastruktur (Telecom-Masken, längerer Holdover mit Alterung und Flickerrauschen, Einlesen gemessener Uhrendaten); an zweiter Stelle die neutrale Trade-Methode Quanten gegen klassisch (Ergebnisse als MODELLED gekennzeichnet, bis gemessene Daten eines Partners sie heraufstufen); und Navigation für Mond / cislunaren Raum und Deep Space wird gepflegt, nicht als Schwerpunkt ausgebaut. Die ITRF-präzise Bezugssystem-Reduktion ist jetzt geliefert — die vollständige CIO-basierte Kette IAU 2006/2000A GCRS↔ITRS (Polbewegung + Nutation unter einer Bogensekunde), bitgenau gegen SOFA/ERFA validiert und unabhängig gegen ANISE (reines Rust-SPICE) auf ≤ 3,6 m in der GNSS-Bahn gegengeprüft. Zu den kurzfristigen Punkten gehören eng gekoppelte Trägerphasen-Fusion und die Bereitstellung des lose/eng gekoppelten GNSS/INS-Navigators in mehr Packs; die radiometrische Navigations-Engine für Deep Space / Mars wurde in v0.17.0 geliefert (simulationsvalidiert). Die Quantenphysik-Schicht ist ein Punkt P2: Der CAI-Beschleunigungsmesser wird jetzt aus ersten Prinzipien simuliert (Mach-Zehnder-Phase, Projektionsrauschen, Kontrastabfall, Vibrationskopplung), während die Uhren-/Zeitübertragungssensoren weiter über veröffentlichte Koeffizienten für Allan/Rauschbudget angetrieben werden. GMST-basiertes TEME&harr;ECEF, die Zeitsysteme der IERS mit Schaltsekunden (UTC/TAI/TT/UT1), die SGP4/SDP4-Bahnpropagation (v0.7.0, validiert gegen die Vektoren AIAA 2006-6753) und das lauffähige Fusions-Pack gnss-ins sind alle ausgeliefert, und die Inertialgeschwindigkeit wird nachgelagert bereitgestellt. Ein aktiver stochastischer Zeit-Spoof-Detektor (Neyman-Pearson- / χ²₁-Energietest mit Monte-Carlo-P_fa/P_md und einem Sicherheits-Gütemaß von 1−P_md), ein Link-Budget-Jamming-Modell (J/S → effektives C/N₀ → Verlust der Nachführung), Verfügbarkeit mit mehreren Konstellationen, ein einachsiges (1-DOF) IMU-Fehlerbudget, zwei unabhängige (Uhr + Position) Kalman-Schätzer, berichtet als kombiniertes Gütemaß, reale Konstellationsgeometrie aus TLEs, ein HTML-Scorecard-Bericht, aus der Geometrie abgeleitete GNSS-Verfügbarkeit und Dilution of Precision aus Kepler-Bahnen mit Exzentrizität und J2-Drift, Monte-Carlo-Konfidenzbänder, Parameter-Sweeps für Trade-Studien, ein WebAssembly-Playground im Browser sowie optionale Bindings für Python (PyO3) und WebAssembly (wasm-bindgen) sind auf main gelandet.

Mitwirken

Mitwirken#

Siehe CONTRIBUTING.md. Kurz: Die Tests bestehen (cargo test), die beiden Guard-Skripte bestehen, Conventional Commits, und ein Eintrag [Unreleased] in CHANGELOG.md für jede für Nutzer sichtbare Änderung. Die Teilnahme unterliegt unserem Verhaltenskodex. Um ein Sicherheitsproblem zu melden, siehe die Sicherheitsrichtlinie — bitte eröffnen Sie für Schwachstellen kein öffentliches Issue.

Dokumentation: jedes Dokument und für wen es gedacht ist

Dokumentation#

Dokument Für wen Was darin steht
Einführung in die Konzepte alle, hier beginnen was Kshana tut und warum, von null bis zur Physik
Kshana Studio alle die Engine im Browser ausführen (WebAssembly); Hinweise zu Build und Bereitstellung
Glossar alle Definitionen jedes Begriffs in einfacher Sprache
Szenarioarten alle jede Art, die die Engine ansteuert: was sie tut, ihre Felder, ein Beispielbefehl, ihre Zeilen im Register und das Diagramm, das die Engine für sie schreibt
Partnerdaten Labore und Hersteller, die gemessene Daten besitzen welche MODELLED-Zeilen eine gemessene Uhren- oder IMU-Aufzeichnung befördern könnte, die Formate, wie eine Einreichung geprüft (kshana partner check), bewertet und angerechnet wird
Architektur Entwickler / Prüfer Modulkarte, Engine-Pipeline, Dispatch und Diagramme
Validierungsstatus Prüfer / Zitierende was validated gegenüber not modeled ist, mit Evidenz
Verifikationsmatrix Prüfer / Zitierende das maschinell geprüfte Evidenzregister — jede Zeile einer Fähigkeit mit Status, Modul, Test und externer unabhängiger Referenz, erzeugt aus src/verification.rs
Begründung der Modellierung Prüfer warum jede modellierte Zeile keine externe unabhängige Referenz hat, Zeile für Zeile dargelegt
Herkunft Prüfer / Zitierende jeder Sensorparameter, jedes Modell und jeder Datensatz, zurückgeführt auf seine veröffentlichte Quelle, in einer zitierbaren Tabelle
Reproduzierbarkeit & Herkunft Prüfer / Paketierer Determinismus-Garantien, Golden-Pinning, SBOM (software bill of materials), Build-Provenienz
Plattform-Tags der Wheels Paketierer die Matrix der abi3-Python-Wheels — welches Plattform-Tag pip install kshana auflöst
Positionierung Bewerter wo Kshana im Vergleich zu RTKLIB/gLAB steht (ergänzend), und die Browser-Stufe ohne Installation
Kshana Pro Bewerter / Programmleiter was das proprietäre Pro-Overlay über dieselbe Engine hinaus bietet: Entwurfsoptimierer, Unsicherheit und Sensitivität, Missions-Dossier, Campaign Watch, Spektrumkoexistenz, On-Premises-Auftragsdienst, Anforderungs-Rückverfolgbarkeit; was jedes erzeugt und was es nicht leistet
Technischer Bericht · JOSS-Paper Prüfer / Zitierende / Bewerter das vollständige erweiterte Forschungspaper — Architektur, Modelle je Domäne, Validierung, Fallstudien und Einschränkungen — plus die knappe Einreichung beim JOSS (Journal of Open Source Software)
SGP4-Validierung Prüfer / Zitierende Übereinstimmung mit der Referenz AIAA 2006-6753 (666 Zustände, ~4 mm) und ein direkter Vergleich mit dem unabhängigen Crate sgp4 (Übereinstimmung im Sub-Mikrometer-Bereich / 4,12 mm)
Validierung des Kraftmodells Prüfer / Zitierende die Vollkräfte-Engine (src/precise_od.rs), angepasst an Behörden-Ephemeriden — Methodik und validierte Residuen
Leitfaden zu realen TLEs Nutzer Szenarien aus realen Celestrak-/Space-Track-Konstellations-TLEs ansteuern (statt des mitgelieferten synthetischen Walker-Satzes)
Integritäts-Gütemaß Bewerter was die Kennzahlen integrity / security bedeuten — und was sie gegenüber HPL/VPL der Luftfahrt nicht sind
ARAIM-Referenz Prüfer / Integratoren die offene Implementierung des MHSS-ARAIM-Schutzradius — die Projektion der nominellen Biases b_k, σ_URA gegenüber σ_URE und die Apriori-Wahrscheinlichkeiten der Fehlermodi
Quantenmodelle · Details Prüfer die Physikschicht des Kaltatom-Interferometers und wo Koeffizienten noch nachgeschlagen werden
Compliance Bewerter Umfang der Algorithmen nach DO-229E / DO-316 und was keine Konformitätsaussage ist
Maritimer Vertrauenswert Seeleute / Integratoren der GNSS-Vertrauenswert von 0 bis 100 für das NMEA eines Schiffes, seine Monitore und seine Grenzen (beratend, keine typzugelassene Navigationsausrüstung)
NMEA-Trainingsdatenströme Ausbilder in der Schifffahrt synthetisches Brücken-NMEA mit geskripteten Jamming- und Spoofing-Ereignissen und einem Ausbilder-Log; nur Text, nie für die Live-Navigation
Störungskarte Analysten / Seeleute wo Flugzeuge und Schiffe beeinträchtigte Navigationsdaten gemeldet haben und wie viel einer Route davon berührt wird
Nachweispakete Betreiber / Versicherer signierte technische Aufzeichnungen eines Vertrauensereignisses und wie man eine verifiziert
Vertrauens-Telemetrie Betriebs- / Sicherheitsteams der Vertrauens-Stream als Prometheus-Metriken, SIEM-Ereignisse und OpenTelemetry, mit einem Grafana-Dashboard
Marine-Integrationen Bootseigner / Integratoren das Signal-K-Plugin, der OpenCPN-Gate-Modus und der Referenz-Build
Test bench Empfängerhersteller ein exportiertes Szenario über einen Laborsimulator abspielen und das Log des Empfängers bewerten
compliance-Zuordnung Bewerter öffentliche Resilienz-Rahmenwerke, auf Ausgaben von Kshana abgebildet, mit Quellen und Lücken; kshana compliance-report
Notebooks Nutzer ausführbare Tutorials mit ihrem gerenderten Text
Standards & Interoperabilität Integratoren die Austauschformate für GNSS / Flugdynamik / Behörden, die Kshana liest und schreibt (RINEX, SP3, CCSDS OEM/OMM/TDM/Space-Packet, …)
LEO-PNT-Fusion Nutzer / Bewerter fusionierte Positionierung, Navigation und Zeitgebung mit MEO + LEO: Doppler, gemeinsame Pseudorange, PPP-Konvergenz, 5G NTN, Polarabdeckung und LEO-Zeitübertragung über jede Konstellation; die optionalen Presets und ihre öffentlichen Quellen
Kampagnen Nutzer / Bewerter Szenarien komponieren: verkettete Missionszeitleisten, Parameter-Sweeps, Monte-Carlo-Ensembles und Läufe unter gemeinsamer Bedingung, mit den Kompositionsidentitäten, die die Tests festlegen
Szenariokatalog Nutzer / Integratoren jede ansprechbare Art mit ihren erforderlichen und optionalen TOML-Feldern — erzeugt aus api::list_scenario_kinds()
Ergebnisschema Integratoren jedes Feld des Ergebnis-JSON, mit Einheiten und einem Quellverweis
Python-API Python-Nutzer die PyO3-Binding-Oberfläche — die Engine aufrufen, die Szenario-/Ergebnistypen und Beispiele
Behauptungen und Wirklichkeit Prüfer das Register zum Schließen von Überbehauptungen + die CI-Absicherung (tests/no_overclaims.rs), die es aufgelöst hält
Roadmap alle die phasenweise Roadmap — was ausgeliefert wurde und was als Nächstes kommt
MCP-Server · JetBrains-Plugin Agenten / IDE-Nutzer Kshana aus einem KI-Assistenten oder einer JetBrains-IDE ausführen
Agenten-Leitfaden · Oberflächen Agenten / Integratoren welches Werkzeug welche Frage beantwortet, was man zu jeder Antwort aufbewahren sollte; wo jede Fähigkeit erreichbar ist (CLI, Rust, Python, WASM, MCP, Plugin, JetBrains, Notebooks) und warum eine Zelle N/A ist
Änderungsprotokoll alle veröffentlichte Historie (Keep a Changelog + SemVer, Semantic Versioning)
Mitwirken Mitwirkende Build, Guards, Test- und Zitierdisziplin, DCO (Developer Certificate of Origin)
Governance Mitwirkende / Community wie Kshana geführt wird — wer wie entscheidet und die Grenze zwischen offen und geschlossen
Verhaltenskodex Community erwartetes Verhalten (Contributor Covenant)
Sicherheitsrichtlinie Meldende wie man eine Schwachstelle meldet; Hinweis zur Dual-Use-Eignung
Wichtige Referenzen

Wichtige Referenzen#

Validierungs-Referenzen & Standards — die externen Autoritäten, an die die Prüfungen von Kshana angebunden sind:

  • Vallado, Crawford, Hujsak & Kelso — Revisiting Spacetrack Report #3 (AIAA 2006-6753; Testdaten): der SGP4/SDP4-Verifikationssatz, mit dem Kshana auf 4,12 mm übereinstimmt, und die durchgerechneten Bezugssystem-Beispiele, gegen die die Kette TEME→ITRF geprüft wird.
  • IAU SOFA / ERFA — die Referenzroutinen für Zeit und Bezugssysteme, gegen die die IAU-2000A-Nutation und die CIO-GCRS↔ITRS-Reduktion bitgenau validiert werden.
  • Petit & Luzum (Hrsg.) — IERS Conventions (2010), IERS TN (Technical Note) 36 (Standards zu Erdorientierung, Polbewegung und Bezugssystemen).
  • Riley — Handbook of Frequency Stability Analysis, NIST SP 1065 (Beziehungen der Allan-Abweichung und die Referenzreihe NBS14; NBS = das frühere US National Bureau of Standards).
  • Pedregosa et al. — scikit-learn: Machine Learning in Python, JMLR 12 (2011): die Referenzimplementierungen für ROC/AUC, Konfusionsmatrix und Precision/Recall/F1, an die das Bewertungs-Testbed für HF-Beeinträchtigungen exakt angeglichen ist (tests/eval_metrics_reference.rs).
  • Virtanen et al. — SciPy 1,0, Nature Methods 17 (2020): optimize.nnls, stats.chi2 und linalg.expm — die Referenzroutinen, gegen die die NNLS-Anpassung der gemessenen ADEV im Quantum-Trade, die χ²-Konsistenzbänder und die van-Loan-Prozessrauschen-Kovarianz der Uhr validiert werden (tests/scipy_reference.rs).
  • Knowles, Kanhere, Neamati & Gao — gnss_lib_py, SoftwareX 27 (2024): verwendet sowohl als offener Stand der Technik (siehe Vergleich & offener Stand der Technik unten) als auch als unabhängige DOP-Referenz, an die die Berechnung von GDOP/PDOP/HDOP/VDOP/TDOP auf 1e-6 angeglichen ist (tests/dop_reference.rs).
  • Montenbruck & Gill — Satellite Orbits: Models, Methods and Applications (Springer): die Kräftemodelle hinter der Anpassung des Kräftemodells an präzise Behörden-Ephemeriden.
  • 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 (die Halo-/NRHO-Familien, die der CR3BP-Differentialkorrektor reproduziert).

Physik von Geräten & Methoden — die zitierten Quellen hinter den Sensormodellen:

  • Origlia, Schiller, Bongs et al. — arXiv:1503,08457 (optische Strontium-Gitteruhr, raumfahrtorientiertes Ziel).
  • Oelker et al., Nature Photonics (2019) — doi:10.1038/s41566-019-0493-4 (Sr-Uhr im Labor, 4,8×10⁻¹⁷).
  • Templier et al., Science Advances (2022) — arXiv:2209,13209 (hybrides Quanten-Beschleunigungsmesser-Triple).
  • Groves, Principles of GNSS, Inertial, and Multisensor Integrated Navigation — IEEE-AESS-Tutorial (Aerospace and Electronic Systems Society; Discovery-Repository des University College London) (Fehlerwachstum bei Koppelnavigation).
  • 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) (optische Zwei-Wege-Zeit-Frequenz-Übertragung; die optische Inter-Satelliten-Verbindung modelliert ihr Budget der Nichtreziprozität nach diesen).
  • Betz — Binary Offset Carrier Modulations for Radionavigation, NAVIGATION 48(4) (2001), doi:10.1002/j.2161-4296.2001.tb00247.x (die BOC-Modulations- und Spektraltrennungstheorie hinter src/navsignal.rs).
  • Kaplan & Hegarty (Hrsg.) — Understanding GPS/GNSS: Principles and Applications (3. Aufl., Artech House, 2017): die Anti-Jam-Gleichung für das effektive C/N₀ und der thermische Rausch-Jitter der Early-Late-DLL-Code-Nachführung, den die Modelle für Navigationssignale und Jamming verwenden.

Vergleich & offener Stand der Technik — die Werkzeuge und Übersichten, gegen die Kshana positioniert ist:

  • Humphreys et al. — TEXBAT (die Texas Spoofing Test Battery; ION — Institute of Navigation — GNSS 2012): die Parameter der Spoofing-Testbatterie, gegen die der mehrschichtige Detektor charakterisiert wird.
  • González et al. — NaveGo (2017): die offenen, validierten Fehlerprofile der Inertialnavigation, die als klassische Basislinie verwendet werden.
  • Iiyama, Casadesús Vila & Gao — LuPNT (ION GNSS+ 2023, Stanford NavLab): offener Mond-PNT-Simulator.
  • Knowles, Kanhere, Neamati & Gao — gnss_lib_py, SoftwareX 27 (2024), doi:10.1016/j.softx.2024.101811: offene GNSS-Datenanalyse.
  • Li, Zaminpardaz, Kealy & Greentree — Quantum sensors for enhanced positioning and navigation: a comprehensive review, GPS Solutions 30(1):62 (2026), doi:10.1007/s10291-026-02030-y.
  • Bertone et al. — Earth and Space Science 8(6) (2021), doi:10.1029/2020EA001454: GRAIL-Bahnbestimmung (reduziert-dynamisch), die Untergrenze der empirischen Beschleunigung, die die LRO-Anpassung reproduziert.