leo-navmsg (Szenarioart)
Szenarioart der Engine v0.40.0, Familie Low-Earth-orbit navigation. Hinweis (beratend): Analyseausgabe eines Forschungs- und Engineering-Werkzeugs, keine typzugelassene Navigationsausrüstung und kein Safety-of-Life-Dienst. Jede Bezeichnung hier stammt von der Engine oder der Verifikationsmatrix; eine Szenarioart ist MODELLED, sofern die Matrix nichts anderes sagt (wie eine Bezeichnung erworben wird: der Abschnitt Evidence der README).
Was es tut#
LEO-Navigationsnachricht: die ausgesendete Ephemeride und Uhr eines Satelliten für Positionierung, Navigation und Zeitgebung im niedrigen Erdorbit (LEO), für jede Bahn, jeden Träger und jedes Modell, mit optionalen benannten Voreinstellungen (Xona Pulsar, Iridium, Starlink, CentiSpace, ein repräsentatives C-Band-System, das ATOMIC-Nulluhr-Modell, Celeste IOD). INHALT: Hilfsdaten (SVID, Datenausgabestand, Band, Signalzustand), Synchronisation (Woche, Wochensekunde, ein Uhrenpolynom zweiter Ordnung af0-af2 um toc), Ephemeride in einem von vier Modellen -- dem 16-Parameter-Kepler-Satz des Galileo OS SIS ICD; diesem Satz plus Korrekturpolynomen in Flugrichtung, quer zur Flugrichtung und radial; dem 22-Parameter-Modell nach Liu et al. 2025; einem ECEF-Polynom ohne Uhrenterme (ATOMIC-Nulluhr) -- und weitere Dienste (ein ausgesendeter Klobuchar-Satz, NeQuick-G ai0-ai2 mit dem effektiven Ionisationsniveau und Parameter von Systemzeit zu UTC mit der Schaltsekundenlogik des ICD). FITTER: eine Wahrheitsbahn, integriert mit zonaler J2-J6- oder EGM2008-Schwere bis zum gewählten Grad und mit Luftwiderstand, und eine mit Seed erzeugte freie oder gesteuerte Uhr; Levenberg-Marquardt-Anpassung des Kepler-Satzes auf nichtsingulären Elementen, dann lineare Korrekturpolynome nach kleinsten Quadraten; Uhr angepasst abzüglich des relativistischen Terms, den der Nutzer hinzufügt. ANALYSEN: fit-interval-trade (Signal-in-Space-Entfernungsfehler, SISRE, mit global gemittelten Gewichten für die Bahnhöhe, gegen Anpassungsintervall und Aktualisierungsperiode, nur Bahn und mit Uhr), model-comparison (vier Modelle, Parameterzahl, codierte Bits und die Anpassung von Kshana bei den Höhen von Liu et al. neben den veröffentlichten Werten), midpass-update (der höchste Überflug über einem Nutzer, der Sprung von Position, Uhr und Nutzerentfernung bei jedem Nachrichtenwechsel, der Sprung bei schlechtester Geometrie, PASS/FAIL gegen eine Kontinuitätsschwelle), encode-decode (das eigene dokumentierte Binärframe von Kshana mit CRC-24Q, ein Quantisierungsbudget von je einem halben Schritt pro Feld, eine Prüfung eines beschädigten Frames, ein Export und Import von Datensätzen im RINEX-4-Stil, bezeichnet als Kshana-Erweiterung, und eine CSV-Tabelle). VALIDATED: die SISRE-Gewichte gegen die veröffentlichte MEO/GEO-Tabelle (Montenbruck et al. 2018); der Galileo-Nutzeralgorithmus gegen RTKLIB auf realen Galileo-Broadcast-Ephemeriden; CRC-24Q gegen seinen Katalog-Prüfwert und den RTCM-1005-Beispielframe. MODELLED: Jede Anpassungs- und SISRE-Zahl ist ein Darstellungsfehler gegen eine von Kshana integrierte Wahrheit (kein Bahnbestimmungs- oder Vorhersagefehler); der Vergleich mit Liu et al. verwendet andere Bahnen; die Codierungs- und Textformate sind die eigenen von Kshana.
Ein Lauf von scenarios/leo-navmsg-celeste-iod.toml fasst sich so zusammen: LEO navigation message — 510 km, 97,4 deg, gravity degree 20, model kepler-rac SISRE weights: w_R 0,459, w_AC^2 1/2.53 (mask 0 deg) encode-decode: kepler-rac model, frame 152 bytes (1156 payload bits, 891 ephemeris+clock bits), CRC-24Q 0x58ADF2 quantisation: largest position change 0,52 mm, clock 0,09 mm; SISRE exact 0,0013 m, quantised 0,0013 m corrupted frame rejected: true; RINEX round trip 4.43e-6 m; CSV round trip 0.00e0 m fit-interval trade over 1800 s (usage period = fit interval): kepler16 60 s SISRE orbit RMS 0,0003 m max 0,0015 m with clock RMS 0,0006 m kepler16 120 s SISRE orbit RMS 0,0003 m max 0,0015 m with clock RMS 0,0007 m kepler16 300 s SISRE orbit RMS 0,0036 m max 0,0141 m with clock RMS 0,0037 m kepler16 600 s SISRE orbit RMS 0,0293 m max 0,1023 m with clock RMS 0,0293 m kepler16 900 s SISRE orbit RMS 0,1073 m max 0,3812 m with clock RMS 0,1075 m kepler-rac 60 s SISRE orbit RMS 0,0000 m max 0,0000 m with clock RMS 0,0005 m kepler-rac 120 s SISRE orbit RMS 0,0001 m max 0,0002 m with clock RMS 0,0007 m kepler-rac 300 s SISRE orbit RMS 0,0005 m max 0,0021 m with clock RMS 0,0012 m kepler-rac 600 s SISRE orbit RMS 0,0097 m max 0,0395 m with clock RMS 0,0096 m kepler-rac 900 s SISRE orbit RMS 0,0388 m max 0,1143 m with clock RMS 0,0390 m Der 16-Parameter-Kepler-Satz verschlechtert sich von 0,0003 m bei 60 s auf 0,1073 m bei 900 s: Ein Kepler-Satz mit zweimal pro Umlauf auftretenden Harmonischen kann den höherfrequenten Schweretermen und dem Luftwiderstand eines LEO-Bogens nicht länger als einige Minuten folgen, und sein Residuum nach kleinsten Quadraten schwingt über das Fenster. Die Polynome in Flugrichtung/quer/radial, von höherem Grad, als der Kepler-Satz abdeckt, nehmen auf, was übrig bleibt, und ergeben 0,0388 m bei 900 s.
Eingaben#
Aus dem Schema (kshana kinds --json):
- Pflichtfelder: keine
- Optionale Felder:
name,description,seed,analysis,preset,orbit,clock,message,trade,comparison,midpass
Das Beispiel scenarios/leo-navmsg-celeste-iod.toml setzt unter anderem:
| Feld | Wert | Einheit |
|---|---|---|
analysis |
[encode-decode, fit-interval-trade] | nicht angegeben |
kind |
leo-navmsg | Text |
message.csv_schema |
celeste-iod | Text |
name |
Celeste-IOD-Nachricht (Workshop-Voreinstellung) | Text |
preset |
celeste-iod | Text |
seed |
15 | nicht angegeben |
trade.fit_intervals_s |
[60, 120, 300, 600, 900] | s |
trade.models |
[kepler16, kepler-rac] | nicht angegeben |
trade.span_s |
1800 | s |
trade.update_fit_interval_s |
300 | s |
trade.update_periods_s |
[60, 150, 300] | s |
Ausführen#
kshana scenarios/leo-navmsg-celeste-iod.toml
5 mitgelieferte Szenarien verwenden diese Art; die anderen sind in scenarios/.
Was es liefert#
Die skalaren Ergebnisse dieses Laufs, mit den Einheiten, die die Engine angibt:
| Ergebnis | Wert | Einheit |
|---|---|---|
encode_decode.corrupted_frame_rejected |
true | Flag |
encode_decode.crc24q |
0x58ADF2 | Text |
encode_decode.crc24q_check_value_123456789 |
0xCDE703 | Text |
encode_decode.csv_round_trip_max_pos_m |
0 | m |
encode_decode.csv_schema |
celeste-iod | Text |
encode_decode.ephemeris_clock_bits |
891 | bit |
encode_decode.frame_bytes |
152 | byte |
encode_decode.model |
kepler-rac | Text |
encode_decode.payload_bits |
1156 | bit |
encode_decode.quantised_max_clock_m |
9.4929e-5 | m |
Ergebnisbezeichnung (der Engine): MIXED — VALIDATED Bausteine, MODELLED Ergebnisse. Die SISRE-Gewichte reproduzieren die veröffentlichte MEO/GEO-Tabelle (Montenbruck et al. 2018), der Nutzeralgorithmus des Galileo-ICD reproduziert RTKLIB auf realen Galileo-Broadcast-Ephemeriden, und CRC-24Q reproduziert seinen Katalog-Prüfwert und den RTCM-1005-Beispielf
Nachweise#
MODELLED 5 · VALIDATED 6: die Zeilen der Verifikationsmatrix, die diese Szenarioart nennen.
- VALIDATED leo_navmsg::sisre::sisre_weights: das radiale Gewicht w_R und das quadrierte Quergewicht w_AC^2 als Mittelwerte von cos^2 und halbem sin^2 des Nadirwinkels der Sichtlinie über Nutzer, die gleichmäßig auf der sichtbaren Erdkappe oberhalb einer Elevati
- VALIDATED leo_navmsg::elements::kepler_point: die Kepler-Auswertung des Galileo OS SIS ICD (Keplergleichung, Korrekturen zweiter Harmonischer, erdfester Knoten), getrennt vom RINEX-Auswerter der Engine geschrieben, die die Position mit dem Argumen Tests: leo_navmsg_reference.rs.
- VALIDATED leo_navmsg::codec::crc24q: Generatorpolynom 0x1864CFB, Anfangswert 0, keine Spiegelung, kein abschließendes XOR, die Prüfung, die der LEO-Frame von Kshana über jedes vorangehende Byte trägt
- VALIDATED Der Fitter und Trade der Szenarioart
leo-navmsg: eine Wahrheitsbahn, integriert mit zonaler J2-J6- oder EGM2008-Schwere bis zum gewählten Grad und mit Luftwiderstand, und eine mit Seed erzeugte freie oder gesteuerte Uhr; eine Levenberg-Marquardt-Anpassung des Galileo-Kepler-Satzes auf nichtsingulären - und 7 weitere in der Matrix.
Die Zeilen, die der Lauf selbst ausgeübt hat, mit der unabhängigen Referenz, die die Matrix jeder gibt (die öffentlichen Quellen sind dort genannt):
- MODELLED Deterministisch, szenario-gehasht, SBOM- und plattformübergreifende Golden-Gates. Unabhängige Referenz (ExternalDataset): SBOM-Übereinstimmung mit dem offiziellen CycloneDX-1,5-JSON-Schema (+ gültige SPDX-Kennungen) — ein externer veröffentlichter Standard, null Validierungsfehler über den gesamten Abhängigkeitsgraphen; der Teil FoM-Determinismus / Byte-Reproduzierbarkeit bleibt eine festgelegte Selbstkonsistenzprüfung, daher bleibt die Zeile MODELLED
- VALIDATED leo_navmsg::sisre::sisre_weights: das radiale Gewicht w_R und das quadrierte Quergewicht w_AC^2 als Mittelwerte von cos^2 und halbem sin^2 des Nadirwinkels der Sichtlinie. Orakel (ExternalDataset): Die veröffentlichte SISRE-Gewichtungsfaktor-Tabelle von Montenbruck, Steigenberger und Hauschild (2018), Multi-GNSS signal-in-space range error assessment - Methodology and results, Advances in Space Research 61(12):3020-3038, doi 10.1016/j.asr.2018.03.041: GPS 0,98 und 1/49, GLONASS 0,98 und 1/45, Galileo 0,98 und 1/61, BeiDou MEO 0,98 und 1/54, BeiDou IGSO/GEO 0,99 und 1/126. Derselbe Mittelwert, ausgewertet bei LEO-Radien, ergibt die
- VALIDATED leo_navmsg::elements::kepler_point: die Kepler-Auswertung des Galileo OS SIS ICD (Keplergleichung, Korrekturen zweiter Harmonischer, erdfester Knoten), getrennt geschrieben. Orakel (ExternalDataset): ECEF-Positionen von RTKLIB 2.4.2-p13 eph2pos (eine unabhängige Implementierung desselben ICD-Algorithmus) für reale BKG/IGS-Broadcast-Datensätze vom 2024-09-10, beide mit Herkunftsnachweis eingecheckt in tests/fixtures/rinex_sp3_interop (NOTICE, rinex_ecef_reference.txt, brdc_multignss_slice.rnx). Dies validiert den Kepler-Nutzeralgorithmus; die zusätzlich aufgesetzten Korrekturen in Flugrichtung/quer/radial werden von eigenen Zeilen abgedeckt, und die Terme nach Liu b
- VALIDATED leo_navmsg::codec::crc24q: Generatorpolynom 0x1864CFB, Anfangswert 0, keine Spiegelung, kein abschließendes XOR, die Prüfung, die der LEO-Frame von Kshana über jedes vorangehende. Orakel (ExternalDataset): Der Katalog-Prüfwert der CRC für diese Parameter (reveng.sourceforge.io CRC-Katalog, CRC-24/LTE-A: Breite 24, Poly 0x864CFB, Init 0, Check 0xCDE703), die die CRC-24Q-Parameter von RTCM 10403 und des Galileo OS SIS ICD sind, und der Beispielframe des Nachrichtentyps 1005, der in RTCM 10403 abgedruckt ist
- VALIDATED Der Fitter und Trade der Szenarioart
leo-navmsg: eine Wahrheitsbahn, integriert mit zonaler J2-J6- oder EGM2008-Schwere bis zum gewählten Grad und mit Luftwiderstand, und eine mit Seed erzeugte freie oder gesteuerte. Orakel (ExternalDataset): Echte präzise wissenschaftliche Bahnen als Wahrheit (operationelle reduziert-dynamische Bahnen der TU Graz IfG/ITSG, frei für jede Nutzung mit Namensnennung; SHA-256-Werte im NOTICE der Fixture), angepasst mit dem 16-Parameter-Satz über Bögen von 20 und 30 min, gegen die Statistiken, die Liu et al. 2025 (Remote Sensing 17(16):2894, CC BY 4,0) für dieselben Satelliten und Tage veröffentlichen: Flugrichtungs-, Quer- und Radial-RMS jeweils innerhalb von 1.5x (gemessen 0,804 bis 1,087), SISR
Einschränkungen#
Was der eigene Bericht des Laufs als nicht modelliert oder nicht validiert nennt:
- SISRE ist der Darstellungsfehler der Nachricht gegen die Wahrheit, an die sie angepasst wurde; Fehler der Bahnbestimmung und der Bahnvorhersage werden nicht modelliert. (Ergebnis
limitations[0]) - Die Wahrheitsbahn ist eine numerische Integration von Kshana (zonale oder EGM2008-Schwere, statischer exponentieller Luftwiderstand), nicht die präzise Bahn eines realen Satelliten; kein dritter Körper, kein Strahlungsdruck der Sonne und keine Gezeiten. (Ergebnis
limitations[1]) - Das Binärformat ist die eigene dokumentierte Codierung von Kshana, nach dem Vorbild der veröffentlichten Nachrichtenkomponenten modelliert; es ist nicht das Bitlayout von Celeste oder eines anderen Systems (keines ist öffentlich). (Ergebnis
limitations[2]) - Der Block im RINEX-Stil ist eine dokumentierte Kshana-Erweiterung; RINEX 4,02 definiert keine LEO-Navigationsdatensätze. (Ergebnis
limitations[3]) - Die NeQuick-G-Koeffizienten werden mitgeführt und das effektive Ionisationsniveau wird berechnet, aber die Integration der NeQuick-Elektronendichte, die daraus eine Laufzeitverzögerung macht, ist nicht implementiert; die Klobuchar-Verzögerung ist es, skaliert auf den Träger mit 1/f^2 und ohne Korrektur für einen Satelliten, der innerhalb der Ionosphäre fliegt. (Ergebnis
limitations[4]) - Die 22-Parameter-Terme nach Liu et al. 2025 folgen dem Nutzeralgorithmus der Veröffentlichung (Gl. 1-7) und ihrer Anpassungsstrategie (Abschnitt 2,3); ihre SISRE-über-Höhe-Zahlen verwendeten reale präzise Bahnen, daher ist dieser Vergleich auf einer von Kshana integrierten Bahn MODELLED, nicht VALIDATED (der Vergleich mit realen Bahnen ist tests/leo_navmsg_fit_real_orbit_oracle.rs). (Ergebnis
limitations[5]) - MIXED — VALIDATED Bausteine, MODELLED Ergebnisse. Die SISRE-Gewichte reproduzieren die veröffentlichte MEO/GEO-Tabelle (Montenbruck et al. 2018), der Nutzeralgorithmus des Galileo-ICD reproduziert RTKLIB auf realen Galileo-Broadcast-Ephemeriden, und CRC-24Q reproduziert seinen Katalog-Prüfwert und den RTCM-1005-Beispielframe. Jede Zahl zu Anpassung, SISRE, Kontinuität und Quantisierung ist MODELLED: der Darstellungsfehler einer Nachricht gegen eine (Ergebnis
label) - MODELLED: Jede Anpassungs- und SISRE-Zahl ist ein Darstellungsfehler gegen eine von Kshana integrierte Wahrheit (kein Bahnbestimmungs- oder Vorhersagefehler); der Vergleich mit Liu et al. (Szenarioarten-Katalog (
kshana kinds --json))
Siehe auch#
- Familienseite: Low-Earth-orbit navigation
- Alle Arten: KINDS.md
- Themenseite: LEO-PNT.md
- Themenseite: LEO-NAVMSG.md