Fähigkeitskarte: was Kshana leistet, teilweise leistet und nicht leistet
Kshana ist eine Nachweis-Engine für PNT-Leistung und -Resilienz (Positionierung, Navigation und Zeitgebung), kein vollständiges Werkzeugset für Raumfahrtsysteme. Sie stellt Zeitgebung und holdover voran, ihr am besten validiertes Gebiet (siehe POSITIONING.md). Diese Seite ist die ehrliche Umfangskarte: Für jeden Fähigkeitsbereich, den ein Beschaffungs- oder Forschungsprüfer kontrollieren könnte, nennt sie den Status, was im Code tatsächlich vorhanden ist, was fehlt und wo er auf der Roadmap steht. Der Status ist einer von:
- full: durchgängig umgesetzt und auf einem in der Zeile genannten Niveau validiert;
- partial: ein echtes, aber begrenztes Modell (Umfang unten ausdrücklich begrenzt);
- none: nicht modelliert (heute außerhalb des Umfangs).
Dies sind die einzigen drei Werte, die die Statusspalte annimmt. Sie bewerten die Reife der Fähigkeit, eine andere Achse als die Einstufung VALIDATED / MODELLED / PARTNER in VERIFICATION-MATRIX.md; diese bewertet die Herkunft der Evidenz, Zeile für Zeile, und wird maschinell aus src/verification.rs geprüft.
Nichts hier ist Wunschdenken: „partial“ heißt nie „fast fertig“, es heißt „so viel und nicht mehr“. Siehe auch VALIDATION.md, INTEGRITY.md, QUANTUM-MODELS.md und das Register zum Abschluss überzogener Aussagen CLAIMS-VS-REALITY.md (jede historische überzogene Aussage, wie sie behoben wurde, und eine CI-Sperre (kontinuierliche Integration), die sie behoben hält).
Kern-PNT (wo Kshana tatsächlich mitspielt)#
| Fähigkeit | Status | Was vorhanden ist | Was fehlt | Roadmap |
|---|---|---|---|---|
| Bahnbestimmung und Propagation | partial | Abhängigkeitsfreies SGP4/SDP4 (SGP4: Simplified General Perturbations 4; SDP4: Simplified Deep-space Perturbations 4), validiert auf 4,12 mm gegen alle 666 Vektoren AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 (Position und Geschwindigkeit, Letztere auf 1 mm/s); analytisch Keplersch + J2-säkular; die inertiale Geschwindigkeit wird bereitgestellt und durchgängig über das lauffähige Szenario ephemeris (src/ephemeris.rs, erreichbar über CLI/Python/WASM/MCP (CLI: Kommandozeilenschnittstelle; WASM: WebAssembly; MCP: Model Context Protocol)) bereitgestellt: Pro Schritt gibt es den Zustand in TEME (wahrer Äquator, mittleres Äquinoktium) und GCRS (Geocentric Celestial Reference System) aus (Position + Geschwindigkeit), die Position in ITRF/ECEF (ITRF: International Terrestrial Reference Frame; ECEF: Earth-centred, Earth-fixed), die Bodenspur des Subsatellitenpunkts in WGS-84 (WGS: World Geodetic System) (Breite/Länge/Höhe) sowie Azimut/Elevation/Entfernung der Station + Entfernungsrate/Doppler (die radiale Entfernungsrate stimmt mit der wahren Ortsableitung, frei von JD-Rauschen (JD: Julianisches Datum), auf 6e-9 m/s überein), und über den geschwindigkeitsführenden Ephemeriden-Export im CCSDS-Format (Consultative Committee for Space Data Systems) OEM (Orbit Ephemeris Message) (--export-oem). Ein numerischer (Cowell-)Propagator (src/propagator.rs) integriert ein konfigurierbares Kraftmodell der zonalen Gravitation, das vollständige zonale Erdfeld bis Grad 6 (forces::zonal_accel, das veröffentlichte EGM-96 (EGM: Earth Gravitational Model) J2..J6), mit einem Treiber nach Wahl, adaptiv: RK4 (Runge-Kutta vierter Ordnung) mit Schrittverdopplung oder das eingebettete Paar Dormand-Prince RK5(4) (integrate_dopri / propagate_dopri, eine billigere eingebettete Fehlerschätzung mit 7 Auswertungen, die dasselbe Kepler-Kriterium erfüllt und mit dem RK4-Pfad auf <1 m übereinstimmt, Bahn mit J2..J6), festgemacht an analytischer Wahrheit, die stärker ist als ein numerischer Werkzeugvergleich: Die ungestörte Bahn reproduziert die exakte Kepler-Lösung in universellen Variablen auf unter einen Meter über 24 h (ein engeres Kriterium als das „gegen die Referenz < 10 m“ des Meilensteins), Energie und Drehimpuls bleiben auf ~1e-9 relativ erhalten, die J2-Knotenregression stimmt nach der Theorie erster Ordnung mit der geschlossenen säkularen Rate überein, die zonale Beschleunigung ist nachweislich der exakte Gradient ihres eigenen Potenzials (und reduziert sich auf die mit 666 Vektoren validierte geschlossene J2-Form), und solve_kepler_checked gibt Err zurück, statt eine falsche Antwort zu liefern, wenn Newton nicht konvergiert (z. B. nahe dem Perigäum bei e = 0,999). Die epochengetriebene Gravitation dritter Körper (Sonne und Mond) ist in den zeitvarianten Integrator eingebunden (ForceModel::third_body / accel_at, mit den niedrigpräzisen Sonnen- und Mondephemeriden von Montenbruck & Gill in src/ephem.rs; kein Kernel DE/SPK (DE: Development Ephemeris; SPK: planetarer Ephemeridenkernel) nötig): Jede Auswertung der rechten Seite (RHS) tastet die Positionen der Störkörper zur fortgeschriebenen Epoche epoch_jd_tt + t/86400 ab, sodass sich Sonne und Mond während der Integration auf ihren Bahnen bewegen. Die Störung ist nachweislich der exakte Gradient ihres Störpotenzials, verschwindet im Geozentrum und hat die lehrbuchmäßigen Größenordnungen im LEO (niedriger Erdorbit) (~5e-7 m/s² Sonne, ~1.1e-6 m/s² Mond); die Sonnenephemeride trifft von Hand abgeleitete J2000-Ankerwerte (Perihelabstand, ~−23° Deklination zur Sonnenwende, ~1°/Tag Bewegung) und die Mondephemeride ihre Perigäums-/Apogäumshülle, ~384.400 km mittleren Abstand, die Neigungsgrenze ≤ 5,3° und die Richtungsrückkehr nach einem siderischen Monat; und die Integrationsanbindung ist bitgenau belegt (der RHS-Term entspricht third_body_accel an der abgetasteten Position bei t = 0 und t = 1 Tag), wobei eine Epochenverschiebung um ein Vierteljahr eine andere Trajektorie ergibt. Der Strahlungsdruck der Sonne (SRP) fährt auf derselben epochengetriebenen RHS mit (forces::srp_accel / ForceModel::solar_radiation): das Kanonenkugelmodell ν·P☉·cᵣ·(A/m)·(AU/d)²·d̂ mit einem Finsternisfaktor aus Kernschatten + Halbschatten, forces::conical_shadow (glatt ν ∈ [0.1], nachweislich über einen monotonen Halbschatten abklingend, der über den Kernschattenzylinder hinausreicht), geprüft gegen den lehrbuchmäßigen Druck bei 1 AU (AU: astronomische Einheit) (≈ 4.54e-6 N/m²), die Größenordnung von ~1.36e-7 m/s² im LEO, die von der Sonne wegdrückt, den Abfall mit dem Abstandsquadrat (doppelter Sonnenabstand viertelt ihn), eine exakt verschwindende Beschleunigung im Kernschattenzylinder und eine propagierte Verschiebung, die ~linear mit A/m skaliert. Der atmosphärische Luftwiderstand ist der erste geschwindigkeitsabhängige Term (forces::drag_accel / ForceModel::drag + die neue RHS accel_rv / mit Geschwindigkeitsübergabe): quadratischer Luftwiderstand −½·ρ(h)·(C_D·A/m)·|v_rel|·v_rel gegen die mitrotierende Atmosphäre v_rel = v − ωₑ ẑ × r, wobei ρ die stückweise exponentielle forces::atmospheric_density nach Vallado ist, nachgewiesen durch den Anker von 1,225 kg/m³ auf Meereshöhe, einen streng monotonen LEO-Abfall mit einer physikalischen Skalenhöhe von ~58 km, die Größenordnung von ~2e-6 m/s² des Luftwiderstands entgegen der Relativgeschwindigkeit und die Dissipationssignatur (eine Bahn in 300 km verliert monoton spezifische Energie, und ihre große Halbachse nimmt begrenzt um ~km/Tag ab, während die Vakuumbahn die Energie erhält). Die post-Newtonsche (Schwarzschild-)Relativitätskorrektur ist der zweite geschwindigkeitsabhängige Term (forces::relativistic_accel / ForceModel::relativity): die Form β = γ = 1 des IERS (International Earth Rotation and Reference Systems Service) a = (μ/c²r³)·{[4μ/r − v²]·r + 4(r·v)·v}, der führende Treiber der relativistischen Perigäumsdrehung, nachgewiesen gegen ihren geschlossenen Kreisbahnwert 3μ²/(c²r³)·r̂ (radial, nach außen), ihr lehrbuchmäßiges Verhältnis ≈1.9e-9 im LEO zum Zweikörperproblem, die von Hand vereinfachte Form der radialen Geschwindigkeit und die konservative Signatur (sie stört die Bahn, hält aber die große Halbachse auf unter einen Meter/Tag, das strukturelle Gegenteil des Luftwiderstands). Der Term der Lense-Thirring-Rahmenmitführung (forces::lense_thirring_accel / ForceModel::lense_thirring, IERS 2010 §10) ist die gravitomagnetische Korrektur jenseits von Schwarzschild, optional, im LEO ~1–2 Größenordnungen darunter, nachweislich verschwindend ohne Erdrotation und unterhalb der Schwarzschild-Größenordnung. Die Bahnbestimmung (OD, src/orbit_determination.rs) schließt den Kreis von Beobachtungen zurück zu einem Zustand: Ein Gauss-Newton-Batch-Korrektor (src/batch_ls.rs) treibt ein Kandidatenpaar [r, v] auf die beste Anpassung von über den Bogen propagierten Stationsentfernungen (unter einem Meter / mm·s⁻¹ aus rauschfreien Entfernungen; ~2 m mit einem Residuum nach der Anpassung am Rauschboden von 5 m, der Signatur einer konsistenten Kleinste-Quadrate-Anpassung), mit einer sequenziellen rekursiven Variante auf dem Unscented-Filter |
Das Standard-Kraftmodell nach Cowell führt nur das zonale Feld; das hochgradige tesserale Feld EGM2008 (Earth Gravitational Model 2008) (src/gravity_sh.rs, Grad/Ordnung 70, mit einem Lader from_gfc für ICGEM-Dateien (International Centre for Global Earth Models)) wird nur in die Engine zur präzisen Ephemeridenanpassung (src/precise_od.rs; siehe AGENCY-ORBIT-VALIDATION.md) eingebunden; die Luftwiderstandsdichte ist die statische stückweise Exponentialfunktion nach Vallado (unabhängig von der Sonnenaktivität), nicht NRLMSISE-00 (das Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Extended atmosphere model; die Klausel zur thermosphärischen Dichte von < 5 %); der SRP ist das Kanonenkugel-Modell mit einem geometrischen konischen Kernschatten + Halbschatten (keine Randverdunkelung der Sonne, kein Schatten der abgeplatteten Erde, keine Form/Lage des Satelliten); die Relativität deckt die Terme von Schwarzschild und Lense-Thirring (Rahmenmitführung) ab, beide optional, aber ohne Abstimmung der PPN-Parameter (PPN: parametrisiertes post-Newtonsches); Gravitation dritter Körper/SRP verwenden die niedrigpräzisen Ephemeriden (~0,005° Sonne, ~0,3° Mond), nicht die Genauigkeit von DE/SPK-Kernels. Die konservativen Stufen des Kraftmodells (Zweikörper → J2–J6 → Sonne/Mond → SRP) sind VALIDATED gegen Orekit 12,2 (schlechtester Wert 0,08 m über 24 h, tests/numerical_cowell_propagator_reference.rs), und die Batch-/sequenzielle Bahnbestimmung ist VALIDATED gegen die Schätzer von Orekit 12,2 (tests/batch_sequential_orbit_determination_reference.rs); die Luftwiderstandsstufe und die absolute Treue der Ephemeriden- und Dichteeingabe bleiben MODELLED; es gibt keine Gegenprüfung mit GMAT (General Mission Analysis Tool) |
tesserale Gravitation im Standard-Cowell-Modell + Luftwiderstand nach NRLMSISE-00 + Randverdunkelung der Sonne + Ephemeride auf DE-Niveau + Kreuzvalidierung mit GMAT + OD-Messungen von Entfernungsrate/Winkel und analytische STM (Zustandsübergangsmatrix): P2+ |
| Zeitsysteme | partial | src/timescales.rs: Julianisches-Datum-API (zivil↔JD, MJD (modifiziertes Julianisches Datum)), UTC↔TAI (UTC: Koordinierte Weltzeit; TAI: Internationale Atomzeit) über die vollständige IERS-Schaltsekundentabelle (10→37 s, 1972→2017), TAI→TT (TT: Terrestrische Zeit), UT1 (Weltzeit 1, Zeit der Erdrotation) über DUT1 (die Erdrotationszeit minus Koordinierte Weltzeit) und der Erdrotationswinkel nach IAU-2000 (IAU: Internationale Astronomische Union) (ERA, bitgenau gegen den SOFA-Vektor (Standards of Fundamental Astronomy) eraEra00 validiert). Die Näherung DUT1≈0 des SGP4-Pfads ist ausdrücklich dokumentiert an der Aufrufstelle gstime (ein GMST-Fehler (mittlere Greenwich-Sternzeit) von ≤ ~13″, weit innerhalb des eigenen Modellfehlers von SGP4), und das Szenario ephemeris nimmt ausdrückliche Stellgrößen dut1_s/xp_arcsec/yp_arcsec entgegen oder eine eingebettete echte IERS-Reihe finals2000A (eop_finals2000a / kshana --eop <file>, interpoliert durch dasselbe EopSeries, das precise_od verwendet), sodass die Bodenspur über echte IERS-UT1 / Polbewegung reduziert wird, nicht nur über die nominalen Skalare |
Die Erdorbit-Pfade verwenden weiterhin ein JD mit einem einzelnen f64 (~50 µs Auflösung um 2020; das, nicht der Algorithmus, ist die Untergrenze für eine Gegenprüfung mit finiten Differenzen); ein zweiteiliges JD existiert (timescales::TwoPartJd, verwendet von den Pfaden für Radiometrie, CCSDS-TDM, Bodensegment-Simulator und Sonnensystem sowie src/jd2.rs Jd2) und wird durch SGP4 (Sgp4::propagate_at(Jd2)), Überflugvorhersage, Geometrie und Walker-Entwürfe geführt (gegen SOFA validiert, tests/jd2_sofa_time_oracle.rs) sowie durch die Erdrotation auf dem Orbitpfad (jd2::gmst82, cio::gcrs_to_itrs_matrix_jd2, orbit::Propagator::position_in_frame_jd2, das optionale two_part_jd des Ephemeridenszenarios; VALIDATED gegen ERFA, tests/jd2_earth_rotation_erfa_oracle.rs), mit verlustfreien Umwandlungen zwischen Jd2 und TwoPartJd; die Standard-Erdorbit-Pfade behalten das Datum mit einzelnem f64, solange two_part_jd nicht gesetzt ist, und die Epoche des Cowell-Kraftmodells bleibt absichtlich einfach f64 (ihr analytischer Sonnen-/Mondfehler übersteigt eine Rundung von 40 µs bei Weitem); UTC mit Gummisekunde vor 1972 (1960–1971) wird auf dem zweiteiligen Pfad modelliert (jd2, timescales::tai_minus_utc_on_date, VALIDATED gegen ERFA, tests/jd2_pre1972_sofa_oracle.rs), aber das timescales::tai_minus_utc mit einzelnem f64 begrenzt vor 1972 weiterhin auf 10 s; ein Prädiktor der Erdorientierung nach kleinsten Quadraten + Autoregression (src/eop_ls_ar.rs, als Befund mit dem IERS Bulletin A verglichen) kann nun eine EOP-Reihe über ihre letzte Zeile hinaus fortsetzen (EopSeries::with_ls_ar_prediction, optional; tests/eop_prediction_beyond_table.rs), sodass die Rahmenargumente jenseits der Tabelle der Vorhersage folgen, statt begrenzt zu werden; die Standardreihe begrenzt weiterhin, und noch kein Szenarioschlüssel schaltet die Vorhersage ein |
erledigt (Grundlage); zweiteiliges JD durch die Erdrotation auf dem Orbitpfad: erledigt (optional im Ephemeridenszenario) ; EOP-Vorhersage jenseits der Tabelle: erledigt (Bibliothek, optional); UTC vor 1972 auf dem zweiteiligen Pfad: erledigt |
| Bezugssysteme | full | src/frames.rs: GMST-basiertes TEME↔ECEF, geodätisch↔ECEF nach WGS-84 (exakt + iterative Umkehrung, Maschinengenauigkeit in allen Höhen) und ein geodätischer Bodenstationsbeobachter (Azimut/Elevation/Entfernung); IAU-2006-Präzession (src/precession.rs: die Fukushima-Williams-Winkel (γ̄, φ̄, ψ̄, ε̄_A) + die Bias-Präzessionsmatrix GCRS↔mittleres Datum); IAU-2000A/2000B-Nutation + vollständige Kette TEME→GCRS (src/nutation.rs: die vollständige Reihe IAU 2000A, 678 lunisolare + 687 planetare Terme, nutation_iau2000a / nutation_matrix_2000a, Tabelle maschinell aus der ERFA-Referenz (Essential Routines for Fundamental Astronomy) nut00a durch tools/gen_nut00a.py erzeugt, neben der Reihe 2000B mit 77 Termen, den Delaunay-Argumenten, der SOFA-Nutationsmatrix iauNumat, der Äquinoktiengleichung und teme_to_gcrs(r, v, jd_tt) über TEME→TOD→MOD→GCRS (wahres Datum, mittleres Datum); beide Reihen bitgenau gegen die SOFA/ERFA-Referenzvektoren nut00a/nut00b validiert, Δψ/Δε auf 1e-13 rad); IERS-Polbewegung PEF→ITRF (pseudo-erdfest nach terrestrisch) (teme_to_itrf / polar_motion_matrix, SOFA iauPom00, vom Aufrufer gelieferte x_p/y_p; ein Effekt von mehreren zehn Metern im Bahnradius); CIO-basierte (CIO: Celestial Intermediate Origin) Reduktion IAU 2006/2000A (src/cio.rs: die äquinoxfreie Kette GCRS↔CIRS↔ITRS (CIRS: Celestial Intermediate Reference System; ITRS: International Terrestrial Reference System), CIP (Celestial Intermediate Pole) X,Y aus der NPB-Matrix (Nutation-Präzession-Bias) 2006/2000A, die Reihe s des CIO-Lokators mit 66 Termen, gcrs_to_cirs_matrix, der Erdrotationswinkel und die vollständige gcrs_to_itrs_matrix, bitgenau gegen die SOFA-Vektoren eraXys06a/eraC2ixys/eraEra00 validiert). Die Ende-zu-Ende-Transformationen sind nun an ein veröffentlichtes maßgebliches durchgerechnetes Beispiel gebunden, nicht nur an Selbstkonsistenz: Gegen den Zustand Vallado AIAA 2006-6753 (2004-04-06, mit seinen IERS-EOP (Erdorientierungsparameter); tests/frame_reference_vectors.rs) stimmt TEME→PEF auf 0,1 mm überein, TEME→ITRF auf 0,6 mm, das vollständige CIO GCRS→ITRS auf 4 mm, und ECEF→geodätisch reproduziert Breite/Länge/Höhe von Vallado Beispiel 3-3 bis zur letzten veröffentlichten Stelle. Die ganze Kette ist für Nutzer erreichbar über das Szenario ephemeris (Position in ITRF/ECEF + Bodenspur des Subsatellitenpunkts in WGS-84 je Schritt) |
Die Standardkette TEME→GCRS verwendet 2000B (~1 mas, unterhalb ihrer eigenen Vereinfachung der Rotation des Geschwindigkeitssystems); mit < 0,1 mas steht der vollständige Pfad 2000A über nutation_matrix_2000a bereit, und die strenge Reduktion CIO (X, Y, s) steht über src/cio.rs bereit. Der ältere TEME-Pfad verwendet GMST nach IAU-1982 (SGP4-Konvention). Die unabhängige numerische Gegenprüfung mit ANISE/SPICE (ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris, ein reines Rust-Werkzeug für Planetengeometrie; SPICE: Spacecraft, Planet, Instrument, C-matrix, Events) ist geliefert (xval/anise-frames/: gcrs_to_itrs_matrix gegen GCRF→ITRF93 (GCRF: Geocentric Celestial Reference Frame; ITRF93: International Terrestrial Reference Frame 1993) von ANISE über acht Epochen 2020–2023, ≤ 0,86 m am Boden, ≤ 3,6 m in der GNSS-Bahn (Globales Navigationssatellitensystem)); sie ist ein eigenständiges Crate außerhalb der Standard-CI-Sperren. precession_matrix und teme_to_gcrs_matrix werden außerdem direkt gegen ERFA bei 40 Epochen 1950–2100 geprüft, und die CIO-Kette nimmt die IERS-Himmelspol-Offsets dX, dY entgegen (cio::gcrs_to_cirs_matrix_with_offsets; tests/frames_erfa_vector_oracle.rs); die Standardpfade vernachlässigen dX, dY weiterhin. Die Verifikationsmatrix stuft diese Zeile als VALIDATED ein (SOFA/ERFA-Vektoren + Vallado) |
TEME↔ECEF + geodätisch: erledigt (durch Vallado verifiziert); inertiales TEME→GCRS: erledigt (2000B + vollständiges 2000A); Polbewegung ITRF: erledigt (durch Vallado verifiziert); CIO GCRS→ITRS: erledigt (durch Vallado verifiziert) |
| Zeitgebung und Frequenz | partial | Exakte Kalman-Uhr mit zwei Zuständen und van-Loan-Q (NIST (National Institute of Standards and Technology) SP (Special Publication) 1065) mit einer Joseph-stabilisierten Kovarianzaktualisierung (positiv semidefinit bei extremen Q/R-Verhältnissen, in CI per Cholesky geprüft) und einem Gesundheitsmonitor für die Filterkonsistenz (src/filter_health.rs): eine Monte-Carlo-Bewertung von NIS/NEES (NIS: normiertes Innovationsquadrat; NEES: normiertes Schätzfehlerquadrat) gegen χ²-Konfidenzbänder, ausgegeben als filter_health im Ergebnis-JSON (JavaScript Object Notation) und als grün/gelbe Karte im Playground, mit einem Sweep-Test zur Q/R-Fehlanpassung, der belegt, dass der Monitor auf inkonsistent kippt, wenn die Abstimmung nicht stimmt (Bar-Shalom §5,4); überlappende Schätzer für ADEV (Allan-Abweichung), MDEV (modifizierte Allan-Abweichung), TDEV (Zeitabweichung), HDEV (Hadamard-Abweichung) + χ²-basierte Konfidenzintervalle mit rauschartspezifischen effektiven Freiheitsgraden (geschlossene Formen aus NIST SP 1065 Tabelle 5 für WPM/FPM/WFM/FFM/RWFM (WPM: weiße Phasenmodulation; FPM: Flicker-Phasenmodulation; WFM: weiße Frequenzmodulation; FFM: Flicker-Frequenzmodulation; RWFM: Random-Walk-Frequenzmodulation), den Satz, den Stable32 verwendet; die exportierte ADEV-Kurve erkennt die Potenzgesetzart der Aufzeichnung an der MDEV-Steigung und setzt ein 95-%-Band je τ an, src/allan.rs), numerisch gegen die Stable32-Referenzabweichungen für den kanonischen Datensatz NBS14 auf 1e-4 validiert (tests/allan_reference.rs), wobei die edf durch ein Monte-Carlo-Ensemble mit weißer FM (FM: Frequenzmodulation) gegengeprüft wird; eine ehrliche, rastergebundene holdover-Gütegröße; Uhrenensembles; ein Zweiwege-Zeitübertragungsmodell mit Auslöschung reziproker Laufzeiten + einer nichtreziproken Untergrenze des Differenzlaufzeit-Random-Walk-FM (src/timetransfer.rs, Allan-Signatur berichtet); ein Uhren-holdover-Rechner für GNSS-verweigerte Lagen (src/holdover.rs), der das geschlossene Wachstum des van-Loan-Auslauffehlers σ_x²(t) = q_wf·t + q_rw·t³/3 + q_drift·t⁵/20 als nutzerseitige Umkehrung holdover bis zur Schwelle bereitstellt (wie lange eine Uhr frei läuft, bevor ihr Zeitfehler das Budget überschreitet), mit repräsentativen Quantenuhrklassen (optisches Gitter/Ionenfalle/Quecksilberion): modelliert, nicht extern validiert, gegengeprüft gegen die mehrstufige Kovarianzrekursion clock_state, und ehrlich festgehalten, dass bei einer sehr stabilen Uhr der holdover bis zu einer engen Schwelle vom angenommenen Rot-Rausch-Boden bei langem Tau bestimmt wird, nicht von der zitierten ADEV (für eine belastbare Zahl gemessene Böden verwenden). Ein bedingtes Timing-Schutzniveau (src/tpl.rs) baut auf derselben holdover-Maschinerie für den Fall des Spoofing auf: eine Schranke für den unerkannten Zeitfehler bei einer unabhängigen Gegenprüfung, nämlich einen k-σ-Monitorboden plus die van-Loan-Auslaufvarianz über die Erkennungslatenz plus eine CUSUM-Zeit bis zum Alarm (kumulative Summe), kalibriert an einem echten aufgezeichneten Spoof (JammerTest 2024, Zenodo 15911589) und reproduzierbar über cargo run --example tpl_jammertest. Modellierte Komposition, bedingt auf die Erkennung: Es gibt keine endliche unbedingte Schranke (eine hinreichend langsame Rampe entgeht einem einzelnen uhrengestützten Monitor). Maximaler Zeitintervallfehler (MTIE) und TDEV sind gegen allantools VALIDATED (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs), und die Umkehrung der holdover-Auslaufvarianz ist gegen SciPy VALIDATED (tests/gnss_denied_clock_holdover_reference.rs); die Art telecom-timing wendet sie auf die ITU-T-Masken (International Telecommunication Union Telecommunication Standardization Sector) G.8272 / G.8272.1 / G.8273.2 / G.8271.1 an, siehe TELECOM-TIMING.md |
die vollständige edf nach dem Greenhall-Algorithmus (die einfachen geschlossenen Formen sind verzerrungsbegrenzt, aber gröber als die exakte BasicSum) und die Identifikation von Mischungen mehrerer Rauscharten | exakte edf + Identifikation gemischten Rauschens: P2 |
| GNSS-/PNT-Verarbeitung | partial | Eine Pseudorange-Simulation im Messbereich (Art gnss-sim, src/gnss_sim.rs): Je sichtbarem Satelliten synthetisiert sie ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath und den L1-Doppler, mit der Einfrequenz-Ionosphäre nach Klobuchar (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System) §20.3.3.5.2.5) und der Zenit-Troposphäre nach Saastamoinen (Davis 1985), projiziert durch die Abbildungsfunktion von Niell (1996), jedes Modell per Einheitentest gegen Handrechnung geprüft, und führt dann die Residuen dem Snapshot-RAIM (Receiver Autonomous Integrity Monitoring) für HPL/VPL je Epoche zu (HPL: horizontales Schutzniveau; VPL: vertikales Schutzniveau) und gibt ein Array gnss_measurements[] aus (Pseudorange, Doppler, C/N₀, Iono-/Tropo-Korrekturen je SV (Space Vehicle, also Satellit)). Dazu DOP/Verfügbarkeit (DOP: Dilution of Precision) und Solution-Separation-RAIM aus Bahnen; Einlesen von RINEX (Receiver Independent Exchange Format) 3 Multi-GNSS-NAV (GPS/Galileo/QZSS/BeiDou (QZSS: japanisches Quasi-Zenith Satellite System) über IS-GPS-200, GLONASS (russisches Global Navigation Satellite System) Zustandsvektor) geparst → SV-ECEF-Position und Uhrenversatz, verwendbar als erstklassige Quelle Propagator UND als eingebetteter Konstellationsblock rinex (scenarios/orbit-rinex.toml); Einlesen von RINEX 3-BEOBACHTUNGEN (das Beobachtungslayout 4,00 soll sich parsen lassen, aber es wurde keine Datei 4,00 erprobt; RINEX-4-NAVIGATIONSDATEIEN werden namentlich zurückgewiesen statt falsch dekodiert); ein Einzelpunkt-Positionierungslöser (Art pvt, src/pvt.rs), der echte RINEX-Code-Pseudoranges + Broadcast-Ephemeriden durch iterierte gewichtete kleinste Quadrate in eine Empfängerposition verwandelt, mit Sagnac-/Erdrotationskorrektur, Broadcast-Satellitenuhr mit −TGD, der ionosphärenfreien Zweifrequenz-Kombination L1/L2 (oder Einfrequenz-Klobuchar), Troposphäre nach Saastamoinen/Niell, Elevationsgewichtung, DOP und Snapshot-RAIM, an echten IGS-Daten validiert (International GNSS Service) (Station ABMF, Guadeloupe, 2018-05-13) auf 5,7 m 3-D-RMS (Effektivwert) / 1,1 m horizontal gegen die vermessene Koordinate der Station (tests/pvt_abmf.rs, scenarios/pvt-abmf.toml); und Lesen/Schreiben von SP3 (Standard Product 3, das Format präziser Bahnen) |
Eine Code-Positionierungs-Engine plus, ab 0,36, Trägerphasenverarbeitung auf echten Beobachtungen: Der Löser pvt berechnet aus echten Codemessungen eine echte Position (Einzelpunktpositionierung, Meterniveau, mit der ionosphärenfreien Zweifrequenz-Kombination); rtk_real::run_rtk führt Kurzbasislinien-RTK auf echtem Zweifrequenz-GPS-Code und -Phase aus (doppelte Differenzen, ein Float-Kalman-Filter, ganzzahlige Mehrdeutigkeitsfixierung mit LAMBDA samt Ratio-Test, src/lambda.rs), und ein statisches Float-PPP-Filter läuft auf echtem Code und echter Phase mit finalen IGS-Bahnen und -Uhren. Beide sind VALIDATED gegen veröffentlichte ITRF2020-Koordinaten von IGS-Stationen (WTZR/WTZZ, tests/rtk_real_wettzell_oracle.rs, tests/ppp_real_wettzell_oracle.rs, Zielwerte vorab festgelegt); es fehlen weiterhin die ganzzahlige Mehrdeutigkeitsfixierung bei PPP, kinematisches oder Netzwerk-RTK und der Echtzeitbetrieb. Die Hatch-Trägerglättung ist ein festgeschriebener Befund, der MODELLED ist (ihre vorregistrierten Zielwerte wurden verfehlt). Die Art leo-ppp führt ein Float-PPP-Filter auf selbst simulierten Messungen aus, für Konvergenzstudien; das Vorwärts-Paket gnss-sim bleibt ein Simulator aus der Wahrheit; BeiDou-GEO (GEO: geostationäre Umlaufbahn) ausgeschlossen |
Fixierung der PPP-Mehrdeutigkeiten, kinematisches oder Netz-RTK, Echtzeitbetrieb: RTKLIB/gLAB verwenden (RTKLIB: eine quelloffene Bibliothek für kinematische Echtzeitpositionierung) |
| Sensorfusion / Koppelnavigation mit INS (Trägheitsnavigationssystem) | full | Strapdown-Bibliothek mit 3 Achsen (src/inertial/{attitude,mechanization,imu_errors}.rs): Quaternionenlage mit Coning-/Sculling-Kompensation, vollständige NED-Mechanisierung (Nord-Ost-Unten) (Erdrate + Transportrate, Somigliana-Schwere nach WGS-84) und ein deterministisches IMU-Fehlermodell (inertiale Messeinheit) (Skalenfaktor, Fehlausrichtung, g-Empfindlichkeit, Quantisierung, Ratenrampe modelliert). Der Strapdown-Navigator ist nun in ein lauffähiges lose gekoppeltes GNSS/INS-Paket eingebunden, mit einer Gütegröße (src/fusion/pack.rs, kind = "gnss-ins"): Die dreiachsige Mechanisierung wird vom Fehlerzustands-EKF mit 15 Zuständen (erweitertes Kalman-Filter) (src/fusion/{gnss_ins_ekf,closed_loop}.rs, Rückführung von Position/Geschwindigkeit/Lage/Bias) nachgeführt, solange GNSS verfügbar ist, und läuft dann durch den Ausfall im Auslauf; das ersetzt das Zurücksetzen auf die Wahrheit durch echte Fusion und berichtet den fusionierten Horizontalfehler gegenüber dem offenen freien INS-Auslauf. Das getrennte ältere Paket inertial führt weiterhin das skalare 1-DOF-Budget (DOF: Freiheitsgrad) mit Zurücksetzen auf die Wahrheit aus. Ebenfalls umgesetzt ist eine eng gekoppelte Pseudorange-Aktualisierung (update_tightly_coupled / fuse_tightly_coupled): Sie bildet die Innovation im Entfernungsbereich (Sichtlinien-Jacobi-Matrix auf δp) und korrigiert weiter mit weniger als vier Satelliten, wo eine lose gekoppelte PVT-Lösung (Position, Geschwindigkeit und Zeit) nicht existiert. Ein vollständiges eng gekoppeltes GNSS/INS-UKF mit 17 Zuständen (Unscented-Kalman-Filter) (src/fusion/tightly_coupled17.rs) führt Position, Geschwindigkeit, Lagefehler, Beschleunigungsmesser- und Kreiselbiase sowie die Empfängeruhr (Versatz + Drift) mit Quanten-CAI-Koppelnavigation (CAI: Kaltatom-Interferometer): Das Geschwindigkeits-Random-Walk-Prozessrauschen ist das abgeleitete q_va des Kaltatom-Beschleunigungsmessers; es läuft durch einen Ausfall von 120 Sekunden auf wenige hundert Meter begrenzt im Auslauf (gegenüber den Kilometern eines freien INS der Navigationsklasse). Dieses UKF mit 17 Zuständen ist nun als lauffähiges Szenario bereitgestellt (src/fusion/hybrid_ukf.rs, kind = "hybrid-ukf", erreichbar über CLI/Python/WASM/MCP): Die 15 INS-Fehlerzustände werden um die aus CAI abgeleitete Korrektur des Beschleunigungsmesser-Bias erweitert (das Kaltatom-Interferometer legt den Boden des Geschwindigkeits-Random-Walk q_va fest) sowie um eine Uhr mit 2 Zuständen aus Phase + Frequenz, deren Prozessrauschen aus der Uhren-Engine mit q-Parametern stammt (clock_state::q_from_allan, Allan-Profil → q_wf/q_rw), angetrieben vom eingegrenzten CAI-Fehlermodell, sodass der Lauf die Hybridisierung aus klassischer IMU im Kurzzeitbereich + Quanten im Langzeitbereich zeigt. Seine Gütegröße ist die Selbstkonsistenz des Filters, nämlich gepoolte NEES + Innovationsweißheit (NIS) über ein Monte-Carlo-Ensemble gegen ihre 95-%-χ²-Bänder (das angepasste Filter liegt innerhalb der Bänder; ein falsch abgestimmtes Filter wird markiert, eine objektiv prüfbare Sperre). Dies ist eine Aussage zur SELBSTKONSISTENZ unter dem modellierten Rauschen, KEINE Genauigkeitsgarantie für die reale Welt: Die CAI-/Uhreneingaben sind eingegrenzt/modelliert, die CAI-Hardware gehört dem Partner, und nichts hier impliziert TRL (Technologiereifegrad)>3, Flugerfahrung oder externe Validierung. Das deterministische IMU-Fehlermodell ist pro Sensor aus der TOML-Szenariodatei gnss-ins konfigurierbar (Tom's Obvious Minimal Language) ([imu_*.error_model]: Skalenfaktor, Fehlausrichtung, g-Empfindlichkeit, Quantisierung, Ratenrampe), mit einer reinen Quelle konstanten Bias als Voreinstellung, wenn nichts angegeben ist |
Eng gekoppelt ist nur über Pseudorange (Trägerphase steht auf der Roadmap); das Szenario hybrid-ukf verwendet eine einzelne, ebene Trajektorie mit konstanter Geschwindigkeit, auf der die Fehlerzustände von Lage und IMU-Bias nur schwach beobachtbar sind, sodass die NEES-Konsistenz über die schätzbare Teilmenge bewertet wird (Position, Geschwindigkeit, Uhr = 8 Zustände); die volle Beobachtbarkeit aller 17 Zustände braucht eine manövrierende Trajektorie (Roadmap); das lose gekoppelte Paar aus Beschleunigungs-Bias/Neigung ist nur schwach trennbar, daher wird keine Kalibrierung je Bias behauptet; das IMU-Fehlermodell lässt Vibrationsgleichrichtung und Temperaturgradientendrift aus; das UKF mit 17 Zuständen und die eng gekoppelten Pfade sind selbstvalidiert (analytische Integration bei konstanter Geschwindigkeit, Konvergenz bei GNSS-Stützung, Bias-Rückgewinnung, die CAI-begrenzte Schranke für den Ausfall von 120 s und die χ²-Konsistenzreferenz für NEES/NIS); die Mechanisierung des Strapdown selbst ist gegen NaveGo v1.4 VALIDATED (tests/classical_strapdown_ins_reference.rs: Lage bitidentisch, Geschwindigkeit/Position innerhalb benannter analytischer Schranken), aber es wurde keine Kreuzvalidierung auf Filterebene (NaveGo oder der Fahrzeugdatensatz KF-GINS) durchgeführt |
Trägerphasen-Enge-Kopplung, volle Beobachtbarkeit aller 17 Zustände bei manövrierender Trajektorie, Trajektorienbibliothek, Kreuzvalidierung von NaveGo/KF-GINS auf Filterebene: P2 |
| Integrität / RAIM / ARAIM (fortgeschrittene autonome Integritätsüberwachung des Empfängers) | partial | Echtes Snapshot-RAIM in src/raim.rs: Lösung nach kleinsten Quadraten + Fehlererkennung über das χ² der Residuen (exakte Schwelle aus einem abhängigkeitsfreien unvollständigen Gamma-χ²) und steigungsbasierte HPL/VPL (pbias aus einem nichtzentralen χ² für das konfigurierte P_fa/P_md); RAIM mit Solution Separation (MHSS) mit Fehlererkennung/-identifikation; ARAIM-Integritätsrisikobudget (P_HMI) (araim_raim), das das kleinste HPL/VPL löst, dessen summiertes P_HMI = Σ_k p_fault,k·Q((PL−T_k)/σ_k) eine ausdrückliche Zuteilung des Integritätsrisikos einhält, den konstellationsweiten Fehlermodus bei zwei bzw. mehreren Konstellationen (araim_dual_raim, EU-ARAIM-TN (Technische Note) / DO-316; P_const = 0 ⇒ bitgenau araim_raim), eine ausdrückliche Integritäts-Unterstützungsnachricht (IntegritySupportMessage: σ_URA/σ_URE/b_nom/P_sat/P_const, mit den Referenzwerten GPS+Galileo der WG-C (WG: Arbeitsgruppe)), dazu ein Stanford(-ESA, die Europäische Weltraumorganisation)-Integritätsdiagramm (die Szenarioart integrity und ein eigenständiger Renderer stanford_svg der vier Zonen + PL=error-Grenze). Durchgängig dokumentiert in ARAIM_REFERENCE.md. Dazu die Selbstkonsistenz des Filters (k-σ-Schranke) der Szenario-Gütegröße |
RAIM ist über die Szenarioart integrity und (0,36, optional) neben der Gütegröße für Uhr/holdover als getrennter Block integrity_fom erreichbar ([integrity]: Snapshot-RAIM auf einem voreingestellten Himmel von einem angegebenen Standort, nicht verfügbar, solange GNSS verweigert ist; MODELLED), nie in die holdover-Gütegröße eingerechnet, die weiterhin Selbstkonsistenz berichtet; das Snapshot-RAIM trägt FDE für einzelne Satelliten (Fehlererkennung und -ausschluss, raim::snapshot_raim_fde, VALIDATED gegen RTKLIB raim_fde in tests/integrity_snapshot_raim_rtklib_oracle.rs); die Mehrhypothesen-Solution-Separation nach ARAIM ADD v4.2 mit Teilmengenbestimmung über mehrere Satelliten steht in src/araim_reference.rs (VALIDATED gegen Stanford MAAST, tests/integrity_araim_stanford_oracle.rs), aber das Budget raim::araim_raim mit einheitlichem Sigma deckt weiterhin nur Einzel-SV- und konstellationsweite Fehler ab und ist nicht ADD-konform (0,36, optional: gleichzeitige Fehler von Mehr-SV-Teilmengen über die auf mehr als Paare verallgemeinerte Teilmengenregel von ADD v4.2, araim_subset_raim, add_v42_protection_levels_to_order; MODELLED, kein MAAST-Lauf jenseits von Paaren), und der Ausschluss mehrerer SV ist nicht modelliert; und araim_dual_raim ist über das Flag araim_dual in den TOML-Szenario-Runner eingebunden (scenarios/araim-gps-galileo.toml), mit einem Verfügbarkeitspfad je Epoche araim_dual_constellation_availability; die Kerne für Snapshot/MHSS/ARAIM werden auf echter Geometrie präziser IGS-Bahnen (SP3) (tests/igs_real_data.rs) und auf echten Celestrak-TLEs für GPS+Galileo (tests/araim_dual_real_data.rs, jeder Satellit auf eine gemeinsame UTC-Epoche propagiert, die späteste TLE-Epoche (Zweizeilen-Elementesatz) im Satz, 2026-06-07T07:21:04) für einen Nutzer mit 45° Neigung in 400 km über 24 h geprüft: Die Verfügbarkeit unter einem VAL (vertikale Alarmgrenze) von 12 m / HAL (horizontale Alarmgrenze) von 10 m beträgt 0,993 nur mit GPS, 1,000 mit GPS+Galileo gepoolt und 0,990 im gegen konstellationsweite Fehler robusten Zweimodus; die hier zuvor veröffentlichte Zahl, 0,21→0,67 mit dem robusten Modus „begrenzt“, stammte aus der Propagation jedes Satelliten ab seiner eigenen TLE-Epoche, einem Himmel, den es nie gab, und ist zurückgezogen); der frühere Vergleich mit „EU-ARAIM-TN Table A-3“ ist zurückgezogen (keine öffentliche Quelle), und eine Reproduktion der öffentlichen Einträge der maximalen URA aus dem EU-US-WG-C-ARAIM-Meilenstein 3 (Tabellen 5 bis 7, Zeilen Depleted und Baseline) wird in xval/araim-m3/ unter angegebenen Abweichungen versucht (MODELLED, siehe INTEGRITY.md); nicht DO-229/ARAIM-zertifiziert |
ARAIM mit mehreren Fehlern (ADD v4.2): erledigt; Teilmengen mehrerer SV in raim + Parität mit gLAB im Empfängerbereich + Anbindung an die Gütegröße: P2 (siehe INTEGRITY.md) |
| Bedrohungsmodellierung für Spoofing / jamming | partial | Ein stochastischer Zeit-Spoofing-Detektor (Art spoof, src/spoof.rs + src/detection.rs): vier Einspeiseformen (lineare Rampe, Sprung, meaconing, Replay) gegen einen uhrengestützten Monitor mit einem zweiseitigen χ²₁-Energie- / Neyman-Pearson-Test, wobei die Erkennungsschwelle aus einem Zielbudget für Fehlalarme P_fa festgelegt wird und die Wahrscheinlichkeit verpasster Erkennung P_md sowohl in geschlossener Form als auch per Monte-Carlo berichtet wird (die beiden stimmen auf einige ×1/√N überein); die Sicherheits-Gütegröße ist 1 − P_md. Dazu ein Jamming-Modell auf Basis des Link-Budgets (Art jamming, src/jamming.rs): Verhältnis von Jammer zu Signal aus der Geometrie (Freiraumdämpfung + richtungsabhängiger Empfangsantennengewinn), die übliche Gleichung für das effektive C/N₀ bei Anti-Jam (Entspreizungs-Verarbeitungsgewinn + Faktor der spektralen Trennung Q; Kaplan & Hegarty §9,4), Lock-Verlust je Satellit bei einer einstellbaren Tracking-Schwelle und eine Gütegröße availability_under_jamming über eine Walker-Konstellation. Dazu eine mehrschichtige Spoof-Monitor-Suite für HF-/Messungen (HF: Hochfrequenz) (src/spoof_monitors.rs): ein RAIM-Konsistenz-Paritätstest über mehrere Satelliten (parity_raim_test, gewichtete Residuen-SOS (Summe der Quadrate) gegen eine χ²(m−4)-Schwelle, und er markiert korrekt, dass ein Gleichtaktfehler für RAIM unsichtbar ist), ein AGC-Monitor (automatische Verstärkungsregelung) (AgcMonitor, Überschuss der Empfangsleistung über den erwarteten Boden), ein Signalqualitäts-/SQM-Monitor (Signalqualitätsüberwachung) (SqmMonitor, Ungleichgewicht der Early/Late-Korrelatoren) und ein Kombinierer für die Schichtfusion (fuse_spoof_layers). Diese bilden einen integrierten CombinedSpoofDetector, dessen evaluate eine Epoche von Observablen aufnimmt (Geometrie + Residuen, AGC-Leistung, Early/Late-Abgriffe) und alle drei Schichten in einem Aufruf durch die gewichtete Fusion führt und die Diagnosen je Schicht zurückgibt; er ist als lauffähiges Szenario spoof-detect bereitgestellt (src/spoof_detect.rs, über CLI / Python / Playground erreichbar, JSON + SVG (Scalable Vector Graphics)) und gegen die veröffentlichten Szenarioparameter von TEXBAT (Texas Spoofing Test Battery) charakterisiert (Humphreys et al., ION (Institute of Navigation) GNSS 2012; tests/spoof_texbat_validation.rs), wobei das dokumentierte Erkennbarkeitsmuster einschließlich der negativen Ergebnisse reproduziert wird: das überstarke ds2 wird von AGC + SQM erfasst, das leistungsgleiche ds3 von SQM allein, das Positionsschub-ds4 von RAIM, und das trägerphasengleich ausgerichtete, leistungsgleiche ds7 bleibt (korrekt) dem uhrengestützten Detektor überlassen |
Die Art jamming ist ein Link-Budget: Sie hat weder Mehrwegeausbreitung noch AGC-Dynamik in der Zeit. Seit 0,36 nimmt sie vier optionale Abschnitte entgegen: [crpa], einen adaptiven Array-Strahl je Kanal (Nullsteuerung oder MVDR aus src/crpa.rs, gegen eine unabhängige numpy-Neuberechnung geprüft; MODELLED), und [terrain], den Einzelschneiden-Beugungsverlust des Jammerpfads über einer SRTM-Kachel (src/jamming_terrain.rs, ITU-R P.526-15 §4,1, gegen eine unabhängige numpy-Neuberechnung auf einer echten Kachel geprüft; MODELLED, nur eine Schneide), [acquisition], die Hysterese zwischen Erfassung und Tracking, und [front_end], die eingeschwungene AGC-Anzeige und den Quantisierungsverlust des ADC bei gaußschem Eingang (src/jamming_rx.rs; für nicht gaußsche Jammer ausdrücklich als ungültig markiert; MODELLED). Spekulare Mehrwegeausbreitung, Land-Mobil-Schwund und AGC gibt es in der IQ-Schicht (src/iq/channel/multipath.rs, src/iq/channel/land_mobile.rs, src/iq/frontend/agc.rs), und sie sind nicht in die Art jamming eingebunden; die Tabelle Q der spektralen Trennung enthält die Lehrbuchwerte je Typ (CW und Schmalband 1, Breitband und gewobbelt 2 seit 0,36), festgemacht an den aus den spektralen Leistungsdichten (PSD) abgeleiteten Koeffizienten in navsignal (siehe die Zeile zum Navigationssignal). Der uhrengestützte Spoof-Detektor ist ein Einzeluhr-Detektor; die HF-/Messungs-Monitore sind nun integriert (CombinedSpoofDetector) und gegen die veröffentlichten Parameter der TEXBAT-Szenarien charakterisiert (Humphreys et al.); der Rest ist die Validierung gegen die rohen Vektoren: TEXBAT-IQ-Abtastwerte (In-Phase/Quadratur), die ein SDR-Frontend (software-definiertes Funkgerät) für Erfassung/Tracking brauchen, das kshana als Simulator, nicht als Empfänger, nicht hat, oder ein lizenziertes Spirent-Szenario, eine dokumentierte Folgearbeit |
uhrengestützt + integrierter kombinierter Detektor aus Mehr-SV-RAIM-Konsistenz + AGC + SQM + Charakterisierung anhand der TEXBAT-Parameter: erledigt; Validierung gegen Rohvektoren (TEXBAT-IQ / lizenziertes Spirent): Folgearbeit |
| Navigationssignal-Modulation und Leistung der Codeverfolgung | partial | src/navsignal.rs: die Signalebene zwischen Link-Budget und Messbereich. Spektrale Leistungsdichten mit Einheitsfläche für BPSK-R(n) (binäre Phasenumtastung, rechteckige Chips) und Sinus-BOC(m,n) (binärer Offset-Träger) (in CI auf Einheitsfläche validiert, auf die geschlossene Form κ = 2/(3R_c) des Selbst-Koeffizienten der spektralen Trennung (SSC) bei BPSK und auf die BOC-Spektralaufteilung: Nullstelle am Träger, Spitzen bei ±f_s); der Koeffizient der spektralen Trennung κ = ∫ G_s(f)G_i(f) df, der nun das Anti-Jam-Q, das jamming verwendet, aus den tatsächlichen Signal-/Jammerspektren ableitet (Q = 1/(R_c·κ)), statt einer repräsentativen Konstante (die Breitbandreferenz wird in CI gegengeprüft); die RMS-Bandbreite (Gabor) (BOC > BPSK; das Maß für Entfernungsinformation / Cramér-Rao); das thermische Rauschjitter der kohärenten Early-Late-Codeverfolgung per DLL (Delay-Locked Loop) (Kaplan & Hegarty §8, ~unter einem Meter für C/A bei 45 dB-Hz, monoton in C/N₀); und die Mehrwege-Fehlerhüllkurve (kohärentes EML (Early-minus-Late), gefunden über die Nullstelle des zusammengesetzten Diskriminators; die Unterdrückung durch den Narrow-Korrelator ist belegt). Eine Schicht für den Entwurfsabgleich von Entfernungscodes (CodeFamily) fügt die Nebenmaxima der periodischen Autokorrelation von m-Sequenz/Gold (1/L bei einer m-Sequenz) und die dreiwertige Gold-Kreuzkorrelationsschranke t(n)/L hinzu, die die veröffentlichte Gold-Kreuzkorrelation von GPS C/A −23,9 dB (ein externer Anker) und die Zahl der m-Sequenzen φ(2ⁿ−1)/n reproduziert, dazu die Umkehrung Codelänge↔eindeutige Entfernung; die Gold-Garantien liefern ehrlich None, wo kein bevorzugtes Paar existiert (n mod 4 = 0), statt eine Schranke zu melden, die nicht gilt. |
Seit 0.31.0 ergänzt die getrennte IQ-Schicht (src/iq/, die Befehle kshana iq; Entwurf in design/GNSS-IQ-PLAN.md) eine Software-Empfängerkette: FFT-Erfassung (schnelle Fourier-Transformation), eine Tracking-Bank mit mehreren Kanälen aus DLL/PLL/FLL (verzögerungs-, phasen- und frequenzgekoppelte Regelschleife), Frontend-Filterung und Quantisierung auf 1 bis 14 Bit sowie das Streamen aufgezeichneter Datensätze. Ein unabhängiger Software-Empfänger gewinnt die eingespeiste Wahrheit seiner Szenen zurück, und die Codes von GPS L1 C/A sowie die LNAV-Bits (ältere Navigationsnachricht) stimmen bitgenau mit gps-sdr-sim überein. Weiterhin fehlend: Die Schleifendiskriminatoren setzen das ideale BPSK-Korrelationsdreieck voraus, daher gibt es keine Auflösung der BOC-Tracking-Mehrdeutigkeit; die Kanal- und Schleifenmodelle sind MODELLED, gegen geschlossene Formen und eingespeiste Wahrheit geprüft, nicht gegen gemessene Feld-IQ-Daten; nur skalare Schleifen (kein Vektor-Tracking). Der Hardware-Entwurf von Antenne/HF-Nutzlast (Strahlungsdiagramme, Frontend) liegt bewusst außerhalb des Umfangs, das ist die Rolle eines Nutzlastpartners. |
BOC-Mehrdeutigkeit + Validierung der IQ-Schicht mit Feld-IQ: P2+ |
| Physik von Quanten-PNT-Sensoren | partial | Die meisten Sensoren sind veröffentlichte Allan-/Rauschbudget-Koeffizienten (CSAC, optisch), plus ein Kaltatom-Interferometer-Beschleunigungsmesser (CAI) aus ersten Prinzipien in src/inertial/quantum_imu.rs: die Mach-Zehnder-Phase mit drei Pulsen Φ = k_eff·a·T², das Quantenprojektionsrauschen (Schrotrauschen) σ_Φ = 1/(C√N), die abgeleitete PSD des Geschwindigkeits-Random-Walk q_va, die der Inertialstapel verbraucht, Kontrastabfall, die Vibrationsübertragungsfunktion |H(ω)| + Varianz bei weißer PSD, und nun die systematischen Fehler durch Coriolis/Rotation (coriolis_phase, äquivalenter Bias 2Ω×v) und AC-Stark (AC: Wechselstrom) Lichtverschiebung (ac_stark_phase, symmetrische Auslöschung) sowie ein Drift-Sweep der Zykluszeit (cai_drift_sweep) und ein zusammengesetztes Fehlerbudget der quanteninertialen Koppelnavigation (QuantumNavBudget), das den weißen Geschwindigkeits-Random-Walk des CAI mit Restbias (½·b·t², gegengeprüft gegen den unabhängigen Euler-Integrator AccelModel), Skalenfaktorfehler und einer optionalen Verschlechterung der Langzeitstabilität (verschieden von der Dekohärenz je Schuss) zu einer einzigen Zahl für die Positionsdrift über den holdover zusammenführt, plus einen inertialen holdover bis zur Schwelle, das Koppelnavigations-Gegenstück zum Uhren-holdover. Der modellierte Quantenboden ist gegen die 96 nm/s²/√Hz des mobilen Gravimeters von Freier et al. 2016 (arXiv:1512,05660) eingegrenzt (nicht paritätsgleich): Er liegt darunter und innerhalb von ~2 Größenordnungen davon. Dokumentiert in QUANTUM.md |
Systematische Fehler durch Wellenfront/Strahlausrichtung nicht modelliert; die Grenze der Mach-Zehnder-Streifenmehrdeutigkeit ist modelliert (max_unambiguous_accel, dynamic_range_cells in src/inertial/quantum_imu.rs), die Auflösung der Mehrdeutigkeit aber nicht; die genauen Flugtest-Budgets von CARIOQA-PMP (CARIOQA: Cold Atom Rubidium Interferometer in Orbit for Quantum Accelerometry) / Boeing-AOSense (sie brauchen veröffentlichte Plattform-PSDs + SNR je Schuss (Signal-Rausch-Verhältnis)) und eine Voreinstellung für den JS-Playground (JavaScript) stehen noch aus |
Wellenfront-Systematiken + Reproduktion des Flugtests: P2+ (QUANTUM-MODELS.md) |
| Konstellationsentwurf | partial | Synthetische Walker-Konstellationen (sowohl analytisch Keplersch als auch SGP4 mit mittleren Elementen, Letztere propagiert durch den auf 4,12 mm validierten Kern, src/walker.rs) + Sichtbarkeit und DOP für echte TLEs mehrerer Konstellationen (GPS+Galileo auf 100 %), validiert gegen einen echten Celestrak-Snapshot gps-ops (tests/igs_real_data.rs); ein PDOP-Entwurfs-Sweep (PDOP: Positions-Dilution-of-Precision) über das Raster {planes × sats × inclination} und Gütegrößen für Abdeckungsanteil / Wiederkehrzeit; die lauffähige Art constellation-design (Walker-Delta- und -Star-Muster in der Konvention i: T/P/F, explizite Elementelisten, Mehrschalenentwürfe und veröffentlichte Voreinstellungen, um die Erde, den Mond, den Mars oder jeden anderen katalogisierten Körper), deren Walker-Geometrie und veröffentlichte Slots von GPS, Galileo und GLONASS gegen die veröffentlichten Tabellen VALIDATED sind und deren globale Dilution of Precision der GPS-Basislinie gegen den Leistungsstandard des GPS Standard Positioning Service VALIDATED ist, während die Abdeckungskarten für beliebige Entwürfe MODELLED bleiben; ein gradientenfreier Entwurfsoptimierer (optimize_walker_design), der das Raster nach dem besten Entwurf unter einem gewählten Ziel durchsucht (MinSatellitesForCoverage / MaxCoverage / MinWorstPdop) und nachweislich den Sieger der Brute-Force-Suche liefert; und analytische Streets-of-Coverage-Geometrie (coverage_half_angle_rad, street_half_width_rad; geschlossene Formen nach Rider/Beste, von Hand verifiziert: GPS bei einer Maske von 5°: λ ≈ 71,2°, halbe Streifenbreite bei 4 Satelliten ≈ 62,8°) |
Eine idealisierte Dimensionierung nach Streets-of-Coverage mit minimaler Satellitenzahl existiert (walker::StreetsCoverageDesign); die nahtgenaue Rider-Korrektur an der Grenze gegenläufiger Ebenen ist nicht umgesetzt; der Playground zeichnet eine abhängigkeitsfreie 3-D-Orbitansicht (web/studio/lib/orbit3d.mjs), und ein CZML-Export (Cesium Language), --export czml, lädt die Geometrie in den CesiumJS-Globus; der DOP-Kern ist gegen gnss_lib_py VALIDATED (tests/dop_reference.rs), und die vollständige Sichtbarkeitspipeline für mehrere Konstellationen ist von Ende zu Ende gegen Orekit 12,2 + gnss_lib_py gegengeprüft (tests/coverage_dop_full_oracle.rs): Die Erdentwürfe stimmen bei jedem Zielwert überein, aber die Mond- und Marsentwürfe verfehlen den DOP-Zielwert bei numerisch singulärer Geometrie, sodass die Zeile MODELLED bleibt; geodätisches gegenüber geozentrischem „oben“ im DOP-Bezugssystem |
Dimensionierung nach Streets-of-Coverage + 3-D-Orbitansicht + Ende-zu-Ende-Gegenprüfung für die Erde: erledigt; nahtgenaue Rider-Korrektur + schlecht konditionierter DOP abseits der Erde: P2 |
| Verifikation und Validierung | partial | Prüfungen gegen externe unabhängige Referenzen im ganzen Engine (SGP4 gegen 666 AIAA-Vektoren, die Allan-Familie gegen Stable32 und allantools, Bezugssysteme gegen SOFA/ERFA, Kraftmodell und Bahnbestimmung gegen Orekit, ARAIM gegen das durchgerechnete Beispiel der WG-C und mehr; die aktuelle Zahl steht in der erzeugten Kopfzeile von VERIFICATION-MATRIX.md); deterministische Allan-Prüfungen; eine maschinengeprüfte Verifikationsmatrix (src/verification.rs), ein Querverweis Anforderung→Modul→Test→unabhängige Referenz→Status, dessen Ehrlichkeitsinvarianten per Einheitentest geprüft sind: Eine Zeile darf nur dann als validiert gekennzeichnet werden, wenn sie eine unabhängige externe Referenz trägt (NIST/AIAA/SOFA/IGS/veröffentlichter Wert), sodass eine interne Selbstkonsistenzprüfung nicht als Validierung durchgehen kann; wird nach Markdown/CSV (kommagetrennte Werte) für einen Verifikations-Querverweis nach ECSS-E-ST-10-02 (ECSS: European Cooperation for Space Standardization) ausgegeben und hält die vier im Besitz des Partners liegenden Lücken bei Hardware/PA (PA: Produktsicherung) als solche fest |
Kalibrierungsensembles decken bisher drei Prüfungen mit einzelnem Startwert ab (CALIBRATION-ENSEMBLES.md, vorab festgelegt: Das Monte-Carlo-Bootstrap-Intervall deckt bei 96 % von 200 Startwerten ab; eine Perzentiltoleranz ist startwertanfällig, NOT MET bei 91,5 %); die übrigen Zeilen sind weiterhin auf einzelnen Startwerten kalibriert. Die Matrix erzwingt die Klassifikation der Zeilen, und CI prüft nun außerdem, dass jeder von einer Zeile zitierte Test, jede Datei und jedes Element im Crate existiert (tests/verification_rows_name_a_test_that_exists.rs, tests/verification_rows_cite_evidence_that_exists.rs) und dass veröffentlichte Zahlen weiterhin reproduzierbar sind (tests/published_figures_still_reproduce.rs); sie bewertet die unabhängige Referenz selbst nicht, die weiterhin ein Prüfer liest |
Kalibrierungsensembles: P1 |
| LEO-PNT (Positionierung, Navigation und Zeitgebung aus dem niedrigen Erdorbit) | partial | Sieben Arten, systemunabhängig mit benannten öffentlichen Voreinstellungen: leo-signal (Signalentwürfe in jedem Band und jeder Struktur: BPSK-, BOC-, MBOC- (gemultiplextes BOC) oder flache OFDM-artige (orthogonales Frequenzmultiplex) Komponenten, Codeverfolgung, Erfassung, GNSS-Kompatibilität, Bandabwägung), leo-pass (ein entworfener, Element-, TLE- oder Walker-Überflug mit einem Link-Budget je Band: ITU-R (International Telecommunication Union Radiocommunication Sector) Regen, Szintillation und Gebäudeeindringverlust, Ionosphäre, Antenne, Doppler, gegen die sichtbaren GNSS-Satelliten im MEO (mittlerer Erdorbit)), leo-navmsg (Broadcast-Ephemeride und -Uhr auf der Keplerschen Basis des Galileo-ICD (Schnittstellenkontrolldokument) oder wählbaren LEO-Modellen, angepasst und kodiert mit einer Rahmenprüfung CRC-24Q (zyklische Redundanzprüfung mit 24 Bit)), leo-pvt (fusionierte Pseudorange- und Doppler-Positionierung mit MEO + LEO über beliebige Konstellationen), leo-ppp (PPP-Konvergenz mit und ohne LEO-Augmentation, auf simulierten Messungen), ntn-positioning (Schranken der 5G-NTN-Positionierung, nichtterrestrische Netze, aus der Signalbandbreite) und leo-pnt-chain (ein System von Ende zu Ende, die Ausgabe jeder Stufe wird an die nächste übergeben). VALIDATED sind: die ITU-R-Linkterme gegen die Tabellen und Validierungsbeispiele der Empfehlungen, der maximale Doppler gegen eine veröffentlichte Tabelle, der Galileo-Nutzeralgorithmus gegen RTKLIB auf 1 mm, CRC-24Q und die SISRE-Gewichte (Signal-in-Space-Entfernungsfehler) |
Keine Felddaten oder aufgezeichneten Signale; die Zahlen zu Positionierung, PPP, NTN und Zeitgebung sind MODELLED (geschlossene Formen, Filterkonsistenz, Vergleiche mit veröffentlichten Trends); Voreinstellungen stammen aus öffentlichen Quellen oder sind abgeleitet, keine Betreiberdaten | Validierung mit echten aufgezeichneten Signalen: P3 |
| Spektrum / HF-Umgebung | partial | Art spectrum (src/spectrum.rs): das GNSS-L-Band (und Mehrbandentwürfe für Ultrahochfrequenz (UHF), S- und C-Band) als eine spektrale Leistungsdichte, mit der Frequenz quer und der Zeit abwärts, unter einer skriptgesteuerten Jammer-Zeitleiste (Dauerstrich-, Schmalband-, Chirp- und angepasste Breitbandjammer), mit J/S je Band (Verhältnis von Jammer zu Signal) und effektivem C/N₀ (Träger-zu-Rauschdichte); SigMF-Aufzeichnungen hinein und heraus sowie Welch-Spektralschätzungen komplexer Abtastwerte. Die geschlossenen Signalspektren und die Koeffizienten der spektralen Trennung sind VALIDATED; der Wasserfall ist MODELLED |
Signale von GLONASS, BeiDou und Galileo E6 nicht modelliert; keine Validierung des Empfänger-Frontends oder mit aufgezeichneten IQ-Daten (In-Phase/Quadratur) | Vergleich mit aufgezeichneten Signalen: P3 |
| Vertrauen in Empfängerprotokolle (Schiff und allgemein) | partial | src/receiver_trust/: Monitore über das eigene Protokoll eines Empfängers (Träger-zu-Rauschdichte, Konsistenz von Position, Geschwindigkeit und Kurs, Zeit) mit Ereignissen und vor dem Lauf festgelegten Vorhersagen; auf einer Schiffsplattform ein Wert von 0 bis 100 mit Begründungen; Live-Modus auf einem Strom mit dem Satz $PKSHT und einer optionalen Sperre. MODELLED; beratend, keine typzugelassene Navigationsausrüstung |
Die Schwellen sind angegebene Standardwerte, nicht gegen Empfänger im Einsatz gemessen; ein Protokoll bewertet nur dieses Protokoll; keine Hochfrequenz-Eingabe oder -Ausgabe; keine typzugelassene Navigationsausrüstung | docs/RECEIVER-TRUST.md, docs/MARITIME-TRUST.md |
| Nachweispakete und Vertrauens-Telemetrie | partial | src/evidence/: ein signiertes, hashverkettetes Paket aus einem Protokollfenster, seiner Konfiguration und dem Ergebnis der Engine, offline prüfbar, mit einem optionalen Zeitstempel-Token nach RFC 3161. src/telemetry/: der Vertrauensstrom als Prometheus-Metriken, syslog-Ereignisse (CEF oder LEEF) und optional OpenTelemetry, mit einem Beispiel-Dashboard für Grafana |
Ein Paket ist ein technischer Nachweis, kein Rechtsgutachten, und sagt nicht, was ein Ereignis verursacht hat; die Signatur der Zeitstempelstelle wird nicht geprüft; die Telemetrie überträgt nur Telemetrie | docs/EVIDENCE-PACKS.md, docs/TRUST-TELEMETRY.md |
| Ströme für das Besatzungstraining und Störungskarten | partial | src/nmea_synth/: synthetische Brücken-NMEA mit skriptgesteuerten jamming-, Drag-off-, Zeit-Spoofing- und Replay-Ereignissen und einem Ausbilderprotokoll (nur Text). src/interference_map/: aggregierte Karten beeinträchtigter Navigation aus offen lizenzierten Flugzeug- und Schiffsmeldungen und die Belastung einer Route, aus lokalen Dateien |
Die Ströme sind Trainingsdaten, nie für die Live-Navigationssysteme eines Schiffes; die Karten sind aggregiert, keine Vorhersage, und hängen von den gelieferten Meldungen ab | docs/NMEA-TRAINING.md, docs/INTERFERENCE-MAP.md |
| Export für den Prüfstand | partial | src/interop/testbench.rs: die Fahrzeugbewegung und die Ereignisse eines Szenarios gnss-ins, jamming oder gnss-sim als Bewegungs-CSV, NMEA, Wegpunkttext und Ereignisdateien für einen GNSS-Laborsimulator |
Es wird kein Signal geschrieben; es wird keine Leistung eines Simulators oder Empfängers behauptet; die Dateien werden geprüft, wie sie von den Bewegungslesern eines quelloffenen Simulators (gps-sdr-sim) zurückgelesen werden, aber die Physik der eigenen Wahrheitstrajektorie des Szenarios wird nicht extern geprüft | docs/TEST-BENCH.md |
| Verifikation von Galileo OSNMA | partial | src/osnma/ und kshana osnma verify: liest Galileo-I/NAV-Seiten oder einen UBX-Strom und meldet je Satellit und Epoche, ob die Navigationsdaten authentifiziert sind (signierter Schlüssel mit Merkle-Wurzel, TESLA-Kette, MACs), mit dem Grund, warum eine Prüfung fehlschlug, und einer optionalen unabhängigen Referenzzeit für die Aktualität; außerdem osnma_verify in Python und WebAssembly |
Authentifiziert Daten gegen Schlüssel, die der Nutzer liefert; behauptet keine Leistung gegen Spoofing und ist weder ein Integritätsdienst für die Navigation noch eine typzugelassene Ausrüstung; auf synthetischen Vektoren geprüft, die offiziellen ICD-Testvektoren sind ein externer Download | docs/OSNMA.md |
| Compliance-Zuordnung zu öffentlichen Rahmenwerken | partial | src/compliance/ und kshana compliance-report: Kshana-Ausgaben, zugeordnet zu sechs öffentlichen Resilienz-Rahmenwerken und Standards, mit Quellen und einer Lücke in jeder Zeile; ein Lauf zählt nur, wenn sein Ergebnis die Felder trägt, die seine Art schreibt |
Eine Zuordnung ist ein Urteil; der Bericht sagt, wofür ein Satz von Läufen Belege liefert, nie, dass ein Rahmenwerk erfüllt oder ein Produkt zugelassen ist; EN 16803 wird nur aus Katalogtext zitiert | docs/compliance/README.md |
| Marine-Integrationen | partial | Ein Signal-K-Plugin, OpenCPN über NMEA im Gate-Modus per TCP und ein Referenzaufbau für einen kleinen Rechner neben dem Empfänger (integrations/, deploy/) |
Auf aufgezeichneter synthetischer Ausgabe getestet; das Plugin ist nicht auf npm veröffentlicht; beratend, keine typzugelassene Navigationsausrüstung | docs/MARINE-INTEGRATIONS.md |
Weitere Raumfahrtsystembereiche (heute außerhalb des Umfangs)#
Mehrere davon sind none; andere sind inzwischen Modelle erster Ordnung (partial) (die Arten für Missionsanalyse / Umgebung, hinzugefügt in der Serie v0.17.0); sie sind aufgeführt, damit der Umfang eindeutig ist und nicht durch Schweigen nahegelegt wird. Kshana ist ein PNT-Simulator, nicht GMAT/STK/Orekit (STK: Systems Tool Kit); diese angrenzenden Modelle sind bewusst erster Ordnung und MODELLED, nie validierte Flugwerkzeuge.
| Fähigkeit | Status | Hinweis / Roadmap |
|---|---|---|
| Missionsentwurf / Trajektorienoptimierung | partial | src/maneuver.rs: impulsive ΔV-Knoten mit Kovarianzpropagation 6×6 (ECI/LVLH (ECI: erdzentriert inertial; LVLH: lokal vertikal, lokal horizontal) Ausführungsfehler-Bezugssysteme), Integration endlicher Brennphasen, gegen die geschlossene Tsiolkovsky-Gleichung auf < 0,01 % geprüft, ein Izzo-2015-Lambert-Löser für einen Umlauf + ein exakter Kepler-Propagator in universellen Variablen (Lambert-Ausgaben gegen die Zweikörper-Wahrheit hin und zurück gerechnet) und ein Porkchop-Sweep (Start × Ankunft) für C3 / Ankunfts-V∞, ausgegeben als JSON-Konturraster, dessen Minimum gegen die analytische Hohmann-Untergrenze geprüft wird. Kein Trajektorienoptimierer; ein Lambert-Löser für mehrere Umläufe (maneuver::lambert_multirev, bis zu drei Umläufe, beide Zweige) ist gegen pykep 3.0.1 VALIDATED (tests/lambert_multirev_oracle.rs); der Porkchop läuft auf dem synthetischen koplanar-kreisförmigen Modell oder, mit maneuver::porkchop_kernel, auf einem DE440-SPK (VALIDATED gegen SPICE-Zustände + den Lambert von pykep, tests/porkchop_de440_oracle.rs); maneuver::optimise_transfer_kernel findet das kontinuierliche Datumsoptimum (minimales C3 oder minimales Ankunfts-V∞, Typ I oder II) auf DE440, VALIDATED gegen einen unabhängigen Optimierer aus SPICE + pykep + SciPy (tests/transfer_optimiser_oracle.rs); gegen die veröffentlichten Erde-Mars-Minima von NASA/TM-2010-216764 2026 trifft er die Werte des Typs II und verfehlt das minimale C3 des Typs I um −5,18 % (festgehalten). GMAT selbst wurde nicht ausgeführt; pykep ist die Bibliotheksreferenz. Eine Schnittstelle für Planetenephemeriden im tiefen Raum (src/ephem_provider.rs) und eine Gegenprüfung mit DE440 (Development Ephemeris 440) (xval/anise-mars-od, 137 m @ 1-Tages-Marsbogen) existieren nun; siehe die Zeile zu PNT im tiefen Raum / interplanetar. Die Schicht der Leistungssimulation oberhalb von GMAT/Orekit, kein Ersatz. P3 |
| AOCS (Lage- und Bahnregelungssystem) / GNC (Führung, Navigation und Regelung) / Lage | partial | Art attitude-budget (src/attitude_budget.rs): Gravitationsgradientenmoment im ungünstigsten Fall 1.5·(μ/R³)·ΔI + RSS-Budget (Wurzel aus der Summe der Quadrate) des Zeigefehlers über 1σ-Terme je Beitrag, ein MODELLED skalares Zeig-/Störbudget vor der Hardware. Die drehmomentfreie Starrkörper-Lagedynamik mit einem Quaternionenzustand (src/attitude_dynamics.rs: Eulersche Gleichungen + Quaternionenkinematik, RK4) ist gegen den Raumfahrzeug-Hub von Basilisk 2.9.1 VALIDATED (tests/attitude_dynamics_basilisk_oracle.rs, Quaternion auf 1e-9 über 1e4 s), und die Spitze des Gravitationsgradientenmoments gegen den GravityGradientEffector von Basilisk (tests/attitude_gg_torque_basilisk_oracle.rs); die Lagebestimmung nach Wahba steht in src/wahba.rs. Art aocs (src/aocs.rs, src/aocs_kind.rs, AOCS.md): ein Schwenk zur inertialen Ausrichtung mit ausgewogenen Reaktionsrädern unter MRP-Rückführung, Raddrehmomente minimaler Norm mit Motorgrenzen; der geschlossene Regelkreis ist an drei vorab festgelegten Fällen bis auf Rundungsfehler gegen Basilisk 2.9.1 VALIDATED. Ein MEKF aus einem Kreisel und einem Sternsensor (src/aocs_mekf.rs) kann den Regelkreis auf seiner Schätzung schließen (MODELLED, Filterkonsistenz). Keine Tracking-Führung, keine Integralrückführung, kein Drallmanagement, keine Magnetspulen, keine Triebwerke, keine Radreibung oder Drehzahlgrenzen; kein externes Drehmoment in der Lagedynamik; kein Flugregler. P3 |
| Bezugssysteme → erdfest | full | Erledigt: TEME→ECEF/ITRF, Polbewegung und die CIO-basierte Kette GCRS→ITRS sind umgesetzt und VALIDATED (bitgenau gegen SOFA/ERFA; 4 mm Ende zu Ende gegen Vallado). Siehe die Zeile Bezugssysteme oben |
| Kommunikation und Link-Budgets | partial | src/linkbudget.rs: ein Friis-Link-Budget für den tiefen Raum (Sendeleistung · Antennengewinne · Rauschen → C/N₀ · Eb/N₀ · Reserve), das den radiometrischen Pfad/GSE (GSE: Bodenunterstützungsausrüstung) speist, dazu die optischen/HF-Zeitübertragungsstrecken (src/timetransfer*.rs) und die lauffähige Art link-budget: die Einweg-Streckengleichung nach CCSDS-401/DSN-810-005 (DSN: Deep Space Network) C/N₀ = EIRP − FSPL − L_other + G/T − k mit Eingaben für EIRP (äquivalente isotrope Strahlungsleistung) / G-T und Wahl des S-/X-/Ka-Bands (MODELLED technisches Link-Budget, kein kalibriertes Datenblatt eines Terminals). Keine Zugriffsplanung, keine adaptive Kodierung. P2 |
| Bodensegment und Betrieb | partial | Art passes (src/passes.rs): Vorhersage von Auf- und Untergangsüberflügen für Bodenstationen: AOS/TCA/LOS (AOS: Signalerfassung; TCA: Zeitpunkt der größten Annäherung; LOS: Signalverlust), maximale Elevation, Dauer je Überflug und Gesamtzugriff über einen Horizont, aus einem SGP4-Elementesatz im erdfesten Bezugssystem IAU 2006/2000A mit Refraktion nach ITU-R P.834-9 und Lichtlaufzeit, VALIDATED gegen Orekit 13.1.8 an Stationen auf Meereshöhe (60 Fälle / 1210 Überflüge, tests/pass_predictor_on_path_orekit_oracle.rs); das geometrische passes::predict_passes ist gegen den Elevationsdetektor von Orekit 12,2 VALIDATED (22 Szenarien / 129 Überflüge, tests/ground_station_pass_prediction_reference.rs); kein Planungsoptimierer und keine Konfliktauflösung. P3 |
| Telemetrie / TT&C / CCSDS | partial | maßgeschneiderte Ein-/Ausgabe TOML-in/JSON-out; CCSDS-OEM-Export (Orbit Ephemeris Message) und -Import (502.0-B KVN (Schlüsselwort-Wert-Notation), GMAT/Orekit/STK) über die lauffähige Art oem-interop (src/oem.rs Rundlaufbrücke parse_oem; der Austausch eines einzelnen Objekts im vorgegebenen Format ist gegen den unabhängigen Parser oem 0.4.5 VALIDATED); Parsen und Ausgeben der CCSDS-TDM-Trackingdatennachricht (503) (src/ccsds_tdm.rs, das radiometrische Austauschformat für den tiefen Raum); und die Art space-packet (src/space_packet.rs): Kodieren/Dekodieren des Primärheaders von CCSDS 133.0-B Space Packet mit bitgenauem Rundlauf. Ein Schreiber für CCSDS OMM (Orbit Mean-Elements Message, 502.0-B-2, Teil der ODM-Familie) (src/omm.rs) veröffentlicht mittlere Elemente von SGP4 in KVN, und ein reiner Rust-Leser für NAIF-SPICE-Kernel (src/naif_kernel.rs: DAF-Container, SPK-Typ 2, binärer PCK-Typ 2) trägt ephem_provider::KernelEphemeris. Weitere CCSDS-Nachrichtentypen (OPM, OCM, AEM (AEM: Attitude Ephemeris Message)) und das Schreiben von SPICE bleiben ein Roadmap-Punkt (P2) |
| Interoperabilität und Standards (RINEX/SP3/SPICE/CCSDS) | partial | RINEX 3 Multi-GNSS-NAV: GPS, Galileo, QZSS, BeiDou MEO/IGSO (IS-GPS-200) und GLONASS (Zustandsvektor-RK4 in PZ-90 (PZ: Parametry Zemli, das russische geodätische Datum)), eingelesen + propagiert + lauffähig als eine gemischte Konstellation; RINEX-3-BEOBACHTUNGSPARSER (Pseudorange/Träger/Doppler/SNR nach Beobachtungscode, mit den Flags LLI/SSI (LLI: Indikator für Lock-Verlust; SSI: Indikator der Signalstärke); 4,00 soll sich parsen lassen, ungetestet); Rundlauf Lesen ↔ Schreiben präziser Ephemeriden in SP3-c/d (Parsen + Export für Ginan/RTKLIB/gLAB) und ein Lagrange-Propagator 10. Ordnung (11 Punkte) (Propagator::Sp3Precise); der SP3-Export ist über die CLI bereitgestellt (kshana <orbit.toml> --export-sp3 out.sp3 oder export_sp3 = true) und per Rundlauf validiert gegen die echte GPS-Konstellation auf <0,5 m über 24 h (tests/sp3_export_roundtrip.rs); der CCSDS-OEM-2,0-Ephemeridenschreiber, der geschwindigkeitsführende TEME-Zustandsexport für Flugdynamikwerkzeuge, ist nun über die CLI bereitgestellt (kshana <orbit.toml> --export-oem out.oem oder export_oem = true) und per Rundlauf gegen den Zustand des Propagators geprüft (tests/sp3_export_roundtrip.rs). Der RINEX-Beobachtungsparser speist nun eine Einzelpunkt-Positionierungslösung (pvt, an echten IGS-Daten validiert, siehe die Zeile GNSS / PNT). Dazu CCSDS-TDM (503) Parsen + Ausgeben von Trackingdatennachrichten (src/ccsds_tdm.rs). Geometrie-Exporte für Betrachter und Missionsanalysewerkzeuge: CZML, KML (Keyhole Markup Language), GeoJSON und STK-Ephemeride (--export, src/interop/), jeweils von einem aus der Spezifikation des Formats geschriebenen Validator zurückgelesen (tests/interop_formats.rs), ein GeoJSON-Routenimport (--import-route), SigMF-Aufzeichnungen (Signal Metadata Format) hinein und heraus für die Art spectrum sowie Text im Stil von RINEX 4 / CSV für die LEO-Navigationsnachricht (INTEROP.md, STANDARDS.md). Kein BeiDou-GEO, keine Fixierung ganzzahliger PPP-Mehrdeutigkeiten und kein kinematisches RTK (statisches Float-PPP und Kurzbasislinien-RTK auf echten Daten existieren, siehe die Zeile GNSS / PNT), noch kein SPICE-Schreiber und kein OPM/AEM (der OEM-Leser existiert über die Art oem-interop, der OMM-Schreiber in src/omm.rs und ein SPICE-SPK/PCK-Leser in src/naif_kernel.rs): P2 „angrenzende Bereiche über Standardformate anbinden“ |
| Weltraumwetter / Umgebung (Iono/Atmo/Strahlung) | partial | Art space-weather (src/space_weather.rs): solare/geomagnetische Indizes (Kp↔ap IAGA-Tabelle (International Association of Geomagnetism and Aeronomy) mit 28 Stufen, tägliches Ap, zentrierter 81-Tage-F10.7a), die exosphärische Temperatur nach Jacchia-71 und eine aktivitätsgetriebene Kopplung der thermosphärischen Dichte über einer statischen Atmosphäre, MODELLED erster Ordnung, KEIN Modell der absoluten Dichte nach NRLMSISE. Ionosphäre: das Broadcast-Modell nach Klobuchar (VALIDATED gegen RTKLIB) und ein Leser für TEC-Karten (Gesamtelektronengehalt) im Format IONEX (IONosphere map EXchange format) (src/ionex.rs, per Einheitentest geprüft). Eine echte globale Ionosphärenkarte von CODE (CODG1330.18I) ist die gemessene unabhängige Referenz der Zeile zum geometriefreien Schräg-TEC (tests/geometry_free_tec_gim_oracle.rs), aber dieser Test wertet die Karte in seinem eigenen Fixture-Generator aus, sodass der Leser src/ionex.rs selbst noch nicht gegen ein echtes Produkt gegengeprüft ist; kein physikbasiertes oder vom Weltraumwetter getriebenes Ionosphärenmodell; P2+ |
| Schwerekarten- / Alt-PNT-Navigation | partial | src/gravimeter.rs: ein Messmodell eines Kaltatom-Gravimeters, dessen Boden des weißen Rauschens aus der ASD des CAI-Beschleunigungsmessers abgeleitet wird (σ = ASD/√τ), ein voll normiertes Kugelfunktions-Schwereanomaliefeld niedrigen Grades (gegen die geschlossenen Legendre-Funktionen und eine von Hand abgeleitete Ein-Term-Anomalie validiert) plus synthetische Mascons und ein Partikelfilter für den Schwerekartenabgleich (setzt mapmatch + particle_filter zusammen), das aus der durchflogenen Anomaliefolge eine GPS-verweigerte Spur zurückgewinnt. Der GPS-verweigerte 60-Minuten-Vergleichstest (run_gps_denied_gravity_nav, scenarios/gps-denied-gravity-nav.toml) fliegt einen Ausfall von ~700 km / einer Stunde, in dem die inertiale Lösung auf ≈ 70 km driftet, und ein hierarchischer Abgleicher von grob nach fein mit dem deterministischen, mit Startwert versehenen weißen Rauschen des Gravimeters gewinnt sie auf ≈ 145 m (< 500 m) zurück, stabil über Rauschrealisierungen und nachweislich verfeinerungsbegrenzt (ein einzelnes grobes Raster bleibt bei ~2 km stehen). Dazu ein vollständiges geomagnetisches Hauptfeldmodell IGRF-14 (IGRF: International Geomagnetic Reference Field) (src/igrf.rs: das Schmidt-normierte Kugelfunktionsfeld der IAGA bis Grad/Ordnung 13, 2025,0 + säkulare Variation, Koeffizienten maschinell aus der offiziellen igrf14coeffs.txt erzeugt; validiert gegen den geschlossenen geneigten Dipol, eine finite Differenz des skalaren Potenzials und den bekannten geomagnetischen Pol/die bekannte Stärke), das Magnetfeld, das eine Plattform für die Navigation über Magnetanomalien abgleichen kann. Dazu geländebezogene Navigation (TERCOM/SITAN (TERCOM: Geländekonturabgleich; SITAN: Sandia Inertial Terrain-Aided Navigation)) und der kombinierte Navigator aus Schwere + Magnetik + Gelände (src/altpnt/terrain.rs): ein selbstgeschriebener Parser für das digitale Höhenmodell (DEM) .hgt der SRTM (Shuttle Radar Topography Mission) (16 Bit mit Vorzeichen, Big-Endian, zeilenweise, Nordzeile zuerst, Lücke -32768; validiert gegen die Treiberspezifikation GDAL (Geospatial Data Abstraction Library) SRTMHGT (Shuttle Radar Topography Mission height-file format) und eine unabhängige Referenz mit geschlossener bilinearer Mittelpunktform), ein Höhenmesser-Modell für Radar/Baro und ein Abgleicher run_terrain_nav, der aus dem Bodenhöhenprofil gegen das DEM eine GPS-verweigerte Spur zurückgewinnt, und run_combined_altpnt, das je Wegpunkt drei skalare Feldkanäle fusioniert (Δg mGal · |B| nT Krustenanomalie · Höhe m), sodass die gemeinsame Posterior schärfer ist (niedrigere CRLB (Cramér-Rao-Untergrenze)) als jedes einzelne Feld, begrenzt auf < 500 m über den 60-min-Ausfall und im Erwartungswert nicht schlechter als der beste einzelne Kanal. Dazu sequenzielle (rekursive) geländebezogene Navigation, SITAN als laufendes Filter (src/altpnt/sequential.rs, run_sequential_trn): dasselbe Messmodell Höhenmesser gegen DEM, Epoche für Epoche durch die SIR-Engine (Sampling Importance Resampling) particle_filter geführt (Vorhersage über das INS-Inkrement + Prozessrauschen → Neugewichtung über den Geländeabgleich → Neuziehung bei Degeneration), sodass eine zeitvariante INS-Drift entlang der Spur verfolgt wird, wo der Batch-Abgleicher nur einen einzigen konstanten Versatz zurückgewinnt; die rekursive Schätzung bleibt begrenzt und konvergiert neu (am Ende ≈ 70 m), während die ungestützte Lösung unbegrenzt auf ≈ 5 km divergiert, mit einem Fehler je Epoche, der der Eindeutigkeit des Geländes folgt, und einem Gesundheitsmonitor für die effektive Stichprobengröße. Ehrlicher Umfang: Die Karte ist bekannt und fest, eine rekursive Lokalisierung gegen ein gespeichertes DEM (die Lokalisierungshälfte von Gelände-SLAM (simultane Lokalisierung und Kartierung)); die gemeinsame Kartenschätzung ist das getrennte RBPF weiter unten. Alle vier sind nun in die Szenario-Engine eingebunden (kind=) (gravity-map, terrain-nav, combined-altpnt, terrain-slam) mit einem SVG-Driftdiagramm (scenarios/terrain-nav.toml, scenarios/combined-altpnt.toml, scenarios/terrain-slam.toml). 0,36 (WP-10): Der Navigator gravity-map nimmt ein optionales echtes Referenzfeld entgegen ([reference]: mitgeliefertes EGM2008 bis Grad 70 oder eine ICGEM-Datei .gfc), dessen Anomaliesynthese mit dem ICGEM Calculation Service auf etwa 1e-8 mGal übereinstimmt (VALIDATED, xval/icgem-egm2008/); auf diesem Feld vom Grad 70 endet der 60-min-Vergleichstest bei 3106 m, sodass der Zielwert < 500 m NOT MET ist (vorab festgelegt und vorhergesagt: Grad 70 ist zu glatt). Ein optionales Monte-Carlo zum Kartenfehler ([map_error_mc], scenarios/gravity-map-error-mc.toml) zeigt, dass der synthetische Fix von 144 m eine exakte Karte voraussetzt (1 von 20 Realisierungen innerhalb von 500 m unter einem korrelierten Fehler von 2 mGal; explorativ). combined-altpnt nimmt ein optionales krustales Magnetraster EMAG2v3 entgegen ([magnetic_grid]; EMAG2 wird abgerufen, nicht eingebunden, und es wird kein Navigationsergebnis darauf behauptet). terrain-nav bleibt absichtlich nur auf das DEM beschränkt: Es ist der Einzelkanal-Abgleicher TERCOM/SITAN, und der Magnetabgleich lebt in combined-altpnt, das Gelände mit den Magnet- und Schwerekanälen fusioniert; ein Magnetkanal in terrain-nav würde es duplizieren, sodass der Prüfpunkt „EMAG2 in terrain-nav“ durch die Anbindung von combined-altpnt abgedeckt ist (RM-16). Die Prüfungen mit echtem SRTM laufen in CI auf zwei eingecheckten Ausschnitten in voller Auflösung (knotengleich mit GDAL 3.8.4, xval/srtm-ungate/). Eine gemeinsame Kartenschätzung existiert (run_sequential_trn_on_map, ein RBPF im Stil von FastSLAM): Bei einem einzelnen Durchgang gewinnt es 1,5 % gegenüber SITAN mit bekannter Karte auf einer fehlerhaften Karte und verfehlt damit seinen vorab festgelegten Zielwert von 10 % (xval/terrain-slam-rbpf/). Weiterhin fehlend: ein hochgradiges Schweremodell in einem Navigationslauf (braucht eine neue Vorregistrierung), ein Ergebnis der Magnetnavigation auf einem echten Raster und ein SLAM-Fall mit erneutem Besuch (Schleifenschluss). P3 |
| Wiedereintritt / EDL (Eintritt, Abstieg und Landung), Startanalyse, EO/Nutzlast (EO: Erdbeobachtung) | partial | Geometrie erster Ordnung, MODELLED, über drei lauffähige Arten: reentry (src/reentry.rs, ballistischer Korridor nach Allen-Eggers: maximale Verzögerung, Geschwindigkeiten bei maximalem g und maximaler Erwärmung, Höhe bei maximalem g), launch-window (src/launch.rs, Startazimut im Zweikörpermodell sin Az = cos i/cos lat, Δv für den Ebenenwechsel, Bonus durch die Rotation des Standorts, tägliche Gelegenheiten) und eo-coverage (src/eo_payload.rs, Raumdreiecksgeometrie nach SMAD (Space Mission Analysis and Design) für EO: Streifenbreite / GSD (Bodenabtastabstand) / Zugriff / Wiederkehr). Keine 6-DoF-Simulation von EDL/Aerothermik, kein Trajektorienoptimierer, keine Sensor-Radiometrie/MTF (MTF: Modulationsübertragungsfunktion). P3 |
| Lunares / cislunares PNT (LunaNet) | partial | src/lunar.rs: eine lunare ARAIM-Engine, die den erdseitigen MHSS-Kern mit den Parametern von LunaNet LNIS (LunaNet Interoperability Specification) wiederverwendet (σ_URE ≈ 30 m, P_sat ≈ 1e-4), die cislunare Bezugssystemreduktion MCI↔MCMF (MCI: mondzentriert inertial; MCMF: mondzentriert, mondfest) (mci_to_mcmf / mcmf_to_mci, ein vereinfachtes Modell der mittleren Rotation mit siderischer Rate) und selenographische Breite/Länge/Höhe (mcmf_to_selenographic) sowie ein Schutzniveau-Überflug am Südpol (south_pole_hpl_pass), das die Integritätslücke quantifiziert: Bei 30 m Entfernungsfehler ist das HPL endlich, übersteigt aber eine Alarmgrenze von 50 m für den Betrieb an der Oberfläche. src/cr3bp.rs ergänzt das CR3BP Erde–Mond (eingeschränktes Dreikörperproblem auf Kreisbahnen) (Dynamik im rotierenden Bezugssystem + RK4-Propagator + Jacobi-Konstante + die fünf Lagrange-Punkte, validiert gegen die veröffentlichten Werte für L1/L2/L3 und die exakten L4/L5), den Dreikörperkern, den eine echte NRHO (nahezu geradlinige Halo-Bahn) braucht, und einen Differenzialkorrektor aus Zustandsübergangsmatrix + Einzelschießverfahren (cr3bp_jacobian, propagate_state_stm, differential_correct_halo), der echt periodische L2-Halo-/NRHO-Bahnen erzeugt: Die STM ist gegen finite Differenzen validiert, korrigierte Halos schließen sich auf Maschinengenauigkeit (Jacobi-erhaltend), und das Vorgeben des veröffentlichten Apolune-Zustands reproduziert die südliche NRHO L2 9:2 (die Bahn des Gateway) bei einer Periode ≈ 6,57 d und einem Perilunium ≈ 3.250 km, im Einklang mit den veröffentlichten ≈ 6,56 d / ≈ 3.370 km | Die durch Differenzialkorrektur gewonnenen Anfangsbedingungen (IC) der NRHO sind nun eingebunden, aber die entnormierte selenozentrische (MCI/MCMF) Transformation der korrigierten Bahn und die Familienfortsetzung sind noch Folgearbeiten; die DE440-Hauptachsen-Orientierung des Mondes mit echter physikalischer Libration existiert (src/lunar_orientation.rs, aus dem PCK moon_pa_de440, gegen SPICE pxform in tests/lunar_pa_orientation_spice_oracle.rs geprüft), aber der ältere Pfad lunar::mci_to_mcmf verwendet weiterhin die mittlere Rotation ohne Libration oder den präzedierenden Pol; die NRHO ist eine Lösung des CR3BP (kreisförmig, ohne Sonne) und nicht gegen eine echte Ephemeride von LANS/Gateway (LANS: Lunar Augmented Navigation Service) validiert; eine lauffähige Szenarioart lunar-integrity (scenarios/lunanet-araim.toml) stellt den Überflug am Südpol über die CLI bereit | selenozentrische Transformation + Familienfortsetzung + Schnittstelle zu SPICE/LunaNet: P3 |
| PNT im tiefen Raum / interplanetar (Mars, radiometrisch) | partial | Ausgeliefert in v0.17.0. Eine radiometrische Navigations-Engine: iterative Lichtlaufzeit + Shapiro-Verzögerung, Zwei-/Ein-/Dreiweg-Doppler und -Entfernung (Moyer, zwei Teilstrecken), kohärente Transponder-Umkehr, regenerative/PN-Entfernungsmessung (PN: Pseudo-Rauschen) (CCSDS 414), Δ-DOR (CCSDS 506), Medien aus Sonnenplasma/Tropo/Iono (src/radiometric.rs); CCSDS-TDM (503) Parsen + Ausgeben (src/ccsds_tdm.rs); ein reduziert-dynamisches SRIF (Wurzel-Informationsfilter) mit empirischen RTN-Beschleunigungen (radial, transversal, normal) + einer Bordenuhr mit 3 Zuständen + Mars-Luftwiderstand (src/deepspace_od.rs, clock_state.rs, mars_atmos.rs), das in einem synthetischen geschlossenen Regelkreis eine OD im Mars-LMO (LMO: niedriger Marsorbit) ≈ 0,2 m erreicht; Fusion von Ein- und Zweiweg; ein Mehrkörper-Dynamikkern (src/body.rs, Mars GMM-3 (GMM: Goddard Mars Model), das IAU-Marsbezugssystem src/mars_frame.rs, eine Schnittstelle EphemerisProvider src/ephem_provider.rs, zweiteiliges JD + TT↔TDB (TDB: Baryzentrische dynamische Zeit)); und das Relais-PNT-Szenario mars-pnt (areostationäre Konstellation MARCONI, src/mars_pnt.rs) + ein Ende-zu-Ende-Leistungssimulator für GSE (src/gse_sim.rs). Simulationsvalidiert (Kovarianz-/Regelkreis-Gütegröße); die sonnenzentrische Dynamik ist gegen JPL (Jet Propulsion Laboratory) DE440 gegengeprüft (137 m @ 1-Tages-Bogen, xval/anise-mars-od). Fehlend: Validierung mit echten Trackingdaten von DSN/ESTRACK (ESTRACK: European Space Tracking network); Marsgravitation im eigenen Bezugssystem (das Feld GMM-3 Grad/Ordnung 120 wird aus der PDS-SHADR-Tabelle geladen, from_shadr, gegen pyshtools VALIDATED, und über Body::with_gravity_field angebunden, wird aber im IAU-Bezugssystem statt in seinem eigenen Konopliv-2006-Bezugssystem ausgewertet); Ephemeride auf DE-Niveau im Kern (in xval kernelgesteuert). P3 |
| Sonnensystem und PNT um jeden Körper | partial | Art solar-system: Positionen, Geschwindigkeiten und physikalische Konstanten von Sonne, Planeten, Pluto, Mond und sieben großen Monden zu einer Epoche, mit Lichtlaufzeit zwischen Körpern; die Planetenpositionen (JPL-Standish-Elemente) und die Lichtlaufzeit sind gegen JPL Horizons VALIDATED (tests/solar_system_horizons_reference.rs), die Monde, Pluto und die Tabelle der äußeren Planeten bleiben MODELLED. Art body-pnt: ein Orbiter oder Lander um jeden katalogisierten Körper (Mars, Mond, Europa, Ganymed, Titan und die übrigen), der auf Einweg-Pseudoranges einer lokalen Walker-Konstellation navigiert, plus optional einer Zweiweg-Entfernung von der Erde, MODELLED. Kein Kernel für Planetenephemeriden im Kern (analytische Elemente), die Relaisbahnen body-pnt verwenden nur J2 (vollständige Felder Mars GMM-3 Grad/Ordnung 120 und Mond GRAIL GL0660B Grad/Ordnung 660 werden aus PDS-SHADR-Tabellen geladen und für den Propagator an einen Body angehängt, src/gravity_pds.rs). P3 |
| Kampagnen / Missionskomposition | partial | Art campaign (src/campaign.rs): bestehende Arten, verkettet auf einer gemeinsamen Zeitleiste (zum Beispiel jamming, dann Spoofing, dann holdover mit einem INS im Auslauf, dann ein Integritätsalarm, dann recovery), Parameter-Sweeps und Monte-Carlo-Ensembles mit Startwerten über jede Art sowie mehrere Szenarien unter gemeinsamen Bedingungen mit einer zusammengefassten Übersicht; jede Zahl wird aus einem echten Lauf der Mitgliedsart gelesen. Kompositionsidentitäten sind getestet (tests/campaign_composition_reference.rs: Eine einphasige Kampagne reproduziert den eigenständigen Lauf Byte für Byte); MODELLED. Ein Abschnitt [optimize] (Raster oder begrenztes Nelder-Mead über ein bis drei Schlüssel, eine Metrik, minimieren, maximieren oder ein Ziel treffen) erfüllt seine vorab festgelegten Zielwerte aus geschlossener Form und Brute-Force (tests/campaign_optimize_reference.rs); MODELLED, eine lokale Suche ohne Aussage über ein globales Optimum, und kein Gradienten- oder Bayes-Verfahren. P3 |
| Berichte, Animation und Ausgaben | partial | Jeder Lauf schreibt result.json, ein Diagramm und einen Bericht (report.html, report.json), dessen Kennzeichnungen aus der Verifikationsmatrix gelesen werden und dessen festgehaltener Befehl das Ergebnis Byte für Byte reproduziert (tests/advanced_report_cli.rs); --animate (svg, html oder Einzelbilder) stellt eine Zeitreihe als Animation dar (src/animation.rs, ANIMATION.md); --export schreibt die Austauschformate der Interoperabilitätszeile. Dies sind Darstellungen des Laufs, kein Beleg für die Physik. |
Ökosystem und Reife (ehrlich verfolgt, keine Fähigkeit des Codes)#
| Bereich | Status | Anmerkung |
|---|---|---|
| Sprachbindungen und Paketierung | partial | Rust + Python (abi3) + WASM auf drei Registries. Typisierte Oberflächen (0,36, CAP-34): Python RunOutput mit NumPy-Zugriffsfunktionen (array, columns, series) und mit Stubs typisierten ScenarioKind / ErrorKind / KindMeta; JavaScript run_typed (ein typisiertes Objekt RunOutput) und scenario_kinds, mit demselben Vokabular in den TypeScript-Deklarationen. Ergebnisdokumente bleiben JSON je Art, nur durch ihren gemeinsamen Umschlag typisiert (units, Versionen) |
| Bildung / Onboarding-UX (Nutzererfahrung) | partial | Browser-Playground mit ausgeliefertem geführtem Modus: szenarioadaptive geführte Regler (web/studio/lib/guided.mjs, bis zu sechs Stellgrößen je Szenario) und eine interaktive geführte Tour (web/studio/lib/tour.mjs, aus dem Playground wiederholbar). Jeder Lauf erhält außerdem einen Bedeutungssatz in einfacher Sprache und seine Kernzahlen, aus dem Ergebnisdokument gelesen (web/studio/lib/meaning.mjs, mit Vorlagen je Art in meaning-kinds.mjs; eine Art ohne Vorlage erhält ihre erste Kennzahl schlicht benannt). Fehlend: Erläuterungen je Zahl über diesen Satz hinaus (das GLOSSARY.md in einfacher Sprache deckt sie ab) |
| Gemeinschaft / Governance | partial | Governance-Gerüst vorhanden: GOVERNANCE.md (Modell des wohlwollenden Maintainers + technische Messlatte + Grenze zwischen offen und geschlossen), CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md, Vorlagen für Issues/PR (PR: Pull Request), FUNDING.yml, dependabot. Einzelgründer; eine aktive externe Gemeinschaft (Beitragende, Zitate) ist von Menschen und Zeit abhängig und im Aufbau (Outreach in Prüfung) |
| Förderung und Beschaffungsreife | keine | TRL ~3; noch keine Zitate/Verträge von Agenturen (siehe Strategienotizen) |
Aktualisiert am 2026-10-29 für Engine 0.40.0 (92 Szenarioarten, aus kshana kinds --json; neu in 0.40.0: mission-thread, lunar-orbit-rendezvous, lunar-descent, lunar-surface und lunar-ascent). 2026-10-22: Engine 0.39.0, 87 Arten, keine neue Art. 2026-10-19: Engine 0.38.0, 87 Arten (neu in 0.38.0: holdover-test, gnss-ssv und lunar-infrastructure). 2026-10-18: 84 Arten (neu in 0,37: optical-atmosphere). 2026-10-16: 83 Arten (neu in 0,36: acm-link, aocs, ascent-losses, contact-schedule, entry-heating, eo-radiometry, lunar-station-coverage und time-transfer-budget). 2026-10-10: Engine 0.35.0, 75 Arten, keine neue Art. 2026-10-09 und 2026-10-08: frühere Überarbeitungen. 2026-10-04: Die Zeile Navigationssignal vermerkt die IQ-Schicht 0.31.0. 2026-09-29: Zeilen zu LEO-PNT, Spektrum, Sonnensystem / PNT um jeden Körper, Kampagne und Ausgaben hinzugefügt. Früher: abgeglichen mit der Fähigkeitsmatrix mit 27 Zeilen des großen Audits vom 2026-06-02; Zeile zu PNT im tiefen Raum / Mars in v0.17.0 hinzugefügt. Ergänzungen zu Quanten-PNT (GNSS-verweigerter Uhren-holdover src/holdover.rs, zusammengesetztes Fehlerbudget der quanteninertialen Koppelnavigation QuantumNavBudget, Entwurfsabgleich von Entfernungscodes CodeFamily, maschinengeprüfte Verifikationsmatrix src/verification.rs) wurden in die Zeilen Zeitgebung, Quanten-PNT-Sensor, Navigationssignal und V&V eingearbeitet, jeweils entweder als validiert oder als modelliert gekennzeichnet, je nach ihrer tatsächlichen unabhängigen Referenz.
Ergänzungen des FutureNAV-Demonstrators (modelliert, intern gegengeprüft, nicht extern validiert): (1) Testbett für die Bewertung der Erkennung von HF-Beeinträchtigungen mit maschinellem Lernen src/impairment_eval.rs: ein beschrifteter synthetischer Beeinträchtigungskorpus (parametergestützt, nicht IQ) + ein detektorunabhängiges Harness für ROC/AUC/Konfusion/Pfa-Pmd (ROC: Betriebskennlinie des Empfängers; AUC: Fläche unter der Kurve) mit Leckageschutz und geschichteter Aufteilung; die mitgelieferten Detektoren sind transparente Baselines veröffentlichter Verfahren, nicht SOTA (Stand der Technik), und eine hohe AUC zeigt hier die Pipeline, nicht die Leistung im Feld. (2) Abwägungs-Engine Quanten- gegen klassisches PNT src/quantum_trade.rs: Einlesen gemessener ADEV (NNLS-Anpassung (nichtnegative kleinste Quadrate) von σ_y²(τ)=q_wf/τ + q_rw·τ/3 + q_drift·τ³/20, per Rundlauf gegen q_from_allan geprüft), eine Nutzentabelle für timing-/inertialen holdover, die den Vorbehalt der Annahme zum Boden am Artefakt trägt, und eine Hüllkurve der GNSS-verweigerten Resilienz über der Zeit; sie quantifiziert den Quantennutzen eines Partners und validiert nie das Gerät. Beide wurden gegnerisch geprüft (ein Fehler in der Driftbasis τ²→τ³ und eine falsche Aussage zur Resilienz „unbegrenzt beschränkt“ wurden gefunden und behoben). 911 Bibliothekstests zum Zeitpunkt dieser Ergänzung, fmt+clippy sauber.
Ergänzung zu Austausch- / Standardformat (src/interchange.rs): das Kshana Interchange Format (KIF), ein neutraler, versionierter, selbstbeschreibender Envelope, der jedes Artefakt (Szenario, Ergebnis, Trade-Study) mit einem erkennbaren Tag format umhüllt, die einzige Quelle der Wahrheit SCHEMA_VERSION (die Schemaversion, früher als Literal an 15 Stellen kopiert, liegt nun in einer einzigen Konstante, auf die das ganze Crate verweist), die erzeugende engine_version und einen ausdrücklichen, getesteten Kompatibilitätsvertrag (compatibility(): gleiche Hauptversion / gleiche oder ältere Nebenversion ist unter der Disziplin additiver Felder lesbar; eine neuere Nebenversion oder eine andere Hauptversion wird an der Grenze von Envelope::parse zurückgewiesen, statt stillschweigend falsch geparst zu werden). Rundlauffähig (wrap→to_json→parse→payload_as::<T>()) für jede Nutzlast Deserialize; bewusst ohne Zeitstempel, um die bitgenaue Reproduzierbarkeit von Kshana zu wahren. Dokumentiert in SCHEMA.md, damit das Format zitierbar ist und nicht nur ausgegeben wird, die Positionierung des Open Core als „Standard im Wartestand“. 923 Bibliothekstests zum Zeitpunkt dieser Ergänzung, fmt+clippy sauber.
Ergänzungen des FutureNAV-Dominanz-Builds (modelliert, intern gegengeprüft, nicht extern validiert): (1) Sparsame Schicht für Kosten je Abdeckung / ROI (Kapitalrendite) src/frugal.rs: eine Schicht zur Darstellung des Nutzens über der Engine zur Konstellationsdimensionierung (walker), die Kosten je Prozentpunkt Abdeckung und ROI als Abdeckung je Euro gegenüber einer Basislinie berichtet; die Kosten je Satellit sind eine vom Aufrufer gelieferte, mit Quellen belegte Spanne niedrig/nominal/hoch (keine erfundenen Punktpreise), sodass die Ausgaben Spannen sind, keine scheinbar genauen Punkte; eine modellierte wirtschaftliche Einordnung einer modellierten Abdeckungszahl, kein Angebot. (2) Abbildung der Integritätsfolgen verpasster Erkennung src/integrity_impact.rs: bildet einen unerkannten, durch Spoofing/jamming verursachten Positionsfehler auf seinen effektiven Fehler → Stanford-Region ab (verfügbar / System nicht verfügbar / irreführend / gefährlich irreführend), gegen kontextspezifische Alarmgrenzen (offener Himmel gegenüber Stadt, HAL gegenüber VAL), und setzt dabei das extern verankerte RAIM-classify_stanford ein; die Brücke von verpasster Erkennung zu Alarmgrenze ist modelliert, keine zertifizierte Integritätszuteilung. Beide sind in die maschinengeprüfte Verifikationsmatrix eingeordnet (src/verification.rs, Invariante Validated⇒ExternalDataset unverletzt; die aktuelle Zeilenzahl steht in der erzeugten Kopfzeile von VERIFICATION-MATRIX.md). Die Kreuzvalidierung / der Leckageschutz / die parametergeschichtete Aufteilung für das Harness zur KI-Bewertung wurde bereits in src/impairment_eval.rs ausgeliefert (stratified_split, Split::has_leakage). 951 Bibliothekstests zum Zeitpunkt dieser Ergänzung, fmt+clippy sauber.
Ergänzungen der FutureNAV-Studie zur Optimismuslücke (modelliert, intern gegen geschlossene Formen gegengeprüft, nicht extern validiert, keine Aussage von der Simulation zum Feld): eine kontrollierte synthetische Studie der Optimismuslücke der AUC von innerhalb der Verteilung zu außerhalb der Verteilung für Detektoren von HF-Beeinträchtigungen. (1) Gelernte Detektoren src/impairment_ml.rs: eine feste Merkmalsabbildung + ein auf dem Training angepasster Standardisierer, eine Baseline mit logistischer Regression (deterministischer Gradientenabstieg über den ganzen Batch) und ein MLP mit einer verdeckten Schicht (Multilayer-Perzeptron; Backprop-SGD mit Startwert (stochastischer Gradientenabstieg)) hinter demselben Trait ImpairmentDetector, den die Baselines veröffentlichter Verfahren verwenden. (2) Von Hand abgeleitete Statistiken src/eval_stats.rs: Perzentil-Bootstrap-Konfidenzintervalle (KI), DeLong-Varianz/KI der AUC, Spearman-ρ und Ridge-Regression, jeweils gegen eine geschlossene Form geprüft (binormale AUC Φ(d′/√2), eine von Hand gerechnete DeLong-Varianz, ein Lehrbuch-ρ mit Rangbindungen, exakte Wiedergewinnung per OLS (gewöhnliche kleinste Quadrate)). (3) Die Studie src/impairment_study.rs: AUC je Klasse, der Skalengesetz-Trend je (detector,class) (Lücke gegenüber 1−Schweregrad) und ein Ridge-Prädiktor der Lücke nur aus der Verteilung, der die Optimismuslücke allein aus Diagnosen innerhalb der Verteilung schätzt, bewertet mit Leave-one-detector-out und Leave-one-class-out gegen eine Baseline, die den Mittelwert vorhersagt. Artefakt mit einem Befehl über cargo run --release --example optimism_study. Jede Zahl ist eine AUC über modellabgeleitete Labels auf einem synthetischen, parametergestützten Korpus; die Lücke ist eine Verschiebung des Schweregrads von synthetisch zu synthetisch, nie ein Ergebnis einer Detektion im Feld. In die maschinengeprüfte Verifikationsmatrix eingeordnet (src/verification.rs, Invariante Validated⇒ExternalDataset unverletzt).