Mogelijkhedenkaart: wat Kshana doet, gedeeltelijk doet en niet doet
Kshana is een bewijsengine voor prestaties en veerkracht van PNT (positiebepaling, navigatie en tijdsynchronisatie), geen volledige toolkit voor ruimtesystemen. Hij zet in op tijdsynchronisatie en holdover, zijn best getoetste domein (zie POSITIONING.md). Deze pagina is de eerlijke kaart van de reikwijdte: voor elk mogelijkheidsgebied dat een beoordelaar van een aanbesteding of onderzoek zou kunnen nagaan, vermeldt ze de status, wat er daadwerkelijk in de code bestaat, wat ontbreekt en waar het op de roadmap staat. De status is een van deze:
- volledig: van begin tot eind geïmplementeerd en getoetst tot een niveau dat in de rij staat;
- gedeeltelijk: een echt maar beperkt model (de reikwijdte is hieronder expliciet begrensd);
- geen: niet gemodelleerd (vandaag buiten de reikwijdte).
Dit zijn de enige drie waarden die de statuskolom aanneemt. Ze beoordelen de maturiteit van de mogelijkheid, een andere as dan het niveau VALIDATED / MODELLED / PARTNER in VERIFICATION-MATRIX.md; dat laatste beoordeelt de herkomst van het bewijs, rij voor rij, en wordt machinaal gecontroleerd vanuit src/verification.rs.
Niets hier is aspiratief: "gedeeltelijk" betekent nooit "bijna klaar", het betekent "dit veel en niet meer". Zie ook VALIDATION.md, INTEGRITY.md, QUANTUM-MODELS.md en het afsluitregister voor te hoge claims CLAIMS-VS-REALITY.md (elke historische te hoge claim, hoe die is opgelost, en een CI-controle (continuous integration) die hem opgelost houdt).
Kern-PNT (waar Kshana daadwerkelijk meedoet)#
| Mogelijkheid | Status | Wat er bestaat | Wat ontbreekt | Roadmap |
|---|---|---|---|---|
| Baanbepaling en propagatie | gedeeltelijk | SGP4/SDP4 zonder afhankelijkheden (SGP4: Simplified General Perturbations 4; SDP4: Simplified Deep-space Perturbations 4), getoetst tot 4,12 mm tegenover alle 666 vectoren van AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 (positie en snelheid, die laatste tot 1 mm/s); analytisch Kepler + J2-seculier; inertiale snelheid beschikbaar gesteld en van begin tot eind ontsloten via het uitvoerbare scenario ephemeris (src/ephemeris.rs, bereikbaar vanuit CLI/Python/WASM/MCP (CLI: opdrachtregelinterface; WASM: WebAssembly; MCP: Model Context Protocol)) — per stap geeft het de TEME-toestand (true equator, mean equinox) en de GCRS-toestand (Geocentric Celestial Reference System) (positie + snelheid), de ITRF/ECEF-positie (ITRF: International Terrestrial Reference Frame; ECEF: Earth-centred, Earth-fixed), het WGS-84-grondspoor onder de satelliet (WGS: World Geodetic System) (breedte/lengte/hoogte), en azimut/elevatie/afstand van het station + afstandssnelheid/Doppler (de radiale afstandssnelheid komt tot 6e-9 m/s overeen met de ware positieafgeleide, vrij van JD-ruis (JD: Julian date)) — en via de snelheidsdragende efemeride-export in OEM (Orbit Ephemeris Message) van CCSDS (Consultative Committee for Space Data Systems) (--export-oem). Een numerieke (Cowell-)propagator (src/propagator.rs) integreert een configureerbaar zonaal zwaartekrachtmodel — het volledige zonale aardveld tot en met graad 6 (forces::zonal_accel, de gepubliceerde EGM-96 (EGM: Earth Gravitational Model) J2..J6) — met een keuze uit adaptieve drivers: RK4 (Runge–Kutta van de vierde orde) met stapverdubbeling of het ingebedde paar Dormand–Prince RK5(4) (integrate_dopri / propagate_dopri, een goedkopere ingebedde foutschatting met 7 evaluaties die dezelfde Kepler-poort haalt en overeenkomt met het RK4-pad tot <1 m op een J2..J6-baan) — vastgepind aan analytische waarheid die sterker is dan een numerieke kruisvergelijking tussen tools: de ongestoorde baan reproduceert de exacte Kepler-oplossing met universele variabelen tot onder de meter over 24 h (een strengere poort dan de "tegenover referentie < 10 m" van de mijlpaal), energie + impulsmoment blijven behouden tot ~1e-9 relatief, de J2-knoopregressie komt overeen met de gesloten seculiere snelheid tot de eerste-orde-theorie, de zonale versnelling blijkt de exacte gradiënt van haar eigen potentiaal te zijn (en reduceert tot de met 666 vectoren getoetste gesloten J2-vorm), en solve_kepler_checked geeft Err terug in plaats van een fout antwoord wanneer Newton niet convergeert (bijvoorbeeld nabij het perigeum, e = 0,999). Zwaartekracht van derde lichamen (Zon en Maan) op basis van de epoch is in de tijdvarirende integrator aangesloten (ForceModel::third_body / accel_at, met de laagprecieze Zon- en Maanefemeriden van Montenbruck & Gill in src/ephem.rs — geen DE/SPK-kernel (DE: Development Ephemeris; SPK: planetaire efemeridekernel) nodig): elke evaluatie van het rechterlid (RHS) bemonstert de posities van de verstoorders op de gevorderde epoch epoch_jd_tt + t/86400, zodat Zon en Maan tijdens de integratie langs hun banen bewegen. De verstoring is geverifieerd als de exacte gradiënt van haar verstorende potentiaal, verdwijnt in het geocentrum en heeft de leerboekgroottes voor LEO (lage baan om de aarde) (~5e-7 m/s² Zon, ~1.1e-6 m/s² Maan); de Zonefemeride haalt met de hand afgeleide J2000-ankers (perihelium-afstand, ~−23° declinatie bij de zonnewende, ~1°/dag beweging) en de Maanefemeride haalt haar perigeum-/apogeumomhullende, ~384.400 km gemiddelde afstand, ≤ 5,3° inclinatiegrens en terugkeer van de richting na een siderische maand; en de aansluiting van de integratie is bit-exact bewezen (de RHS-term is gelijk aan third_body_accel op de bemonsterde positie bij t = 0 en t = 1 dag), waarbij een epoch-verschuiving van een kwart jaar een ander traject oplevert. Zonnestralingsdruk (SRP) zit in hetzelfde door de epoch aangestuurde RHS (forces::srp_accel / ForceModel::solar_radiation): het kanonskogelmodel ν·P☉·cᵣ·(A/m)·(AU/d)²·d̂ met een forces::conical_shadow-eclipsfactor voor umbra+penumbra (glad ν ∈ [0.1], geverifieerd als aflopend door een monotone penumbra die verder reikt dan de umbracilinder), geverifieerd tegenover de leerboekdruk op 1 AU (AU: astronomische eenheid) (≈ 4.54e-6 N/m²), de grootte van ~1.36e-7 m/s² in LEO die van de Zon af duwt, de afname met het kwadraat van de afstand (bij een verdubbeling van de afstand tot de Zon wordt ze een kwart), een exact nul bedragende versnelling in de umbracilinder, en een gepropageerde verplaatsing die ~lineair schaalt met A/m. Atmosferische luchtweerstand is de eerste van de snelheid afhankelijke term (forces::drag_accel / ForceModel::drag + de nieuwe RHS accel_rv / die de snelheid doorgeeft): kwadratische luchtweerstand −½·ρ(h)·(C_D·A/m)·|v_rel|·v_rel tegenover de meeroterende atmosfeer v_rel = v − ωₑ ẑ × r, waarbij ρ de stuksgewijs exponentiële forces::atmospheric_density van Vallado is — geverifieerd door het anker van 1,225 kg/m³ op zeeniveau, een strikt monotone daling in LEO met een fysische schaalhoogte van ~58 km, de grootte van ~2e-6 m/s² van de luchtweerstand tegen de relatieve snelheid in, en de dissipatiehandtekening (een baan op 300 km verliest monotoon specifieke energie en haar halve lange as neemt begrensd af met ~km/dag, terwijl de baan in vacuüm de energie behoudt). De post-Newtonse (Schwarzschild-)relativistische correctie is de tweede van de snelheid afhankelijke term (forces::relativistic_accel / ForceModel::relativity): de vorm β = γ = 1 van IERS (International Earth Rotation and Reference Systems Service) a = (μ/c²r³)·{[4μ/r − v²]·r + 4(r·v)·v}, de belangrijkste drijver van de relativistische perigeumverschuiving — geverifieerd tegenover haar gesloten waarde voor een cirkelbaan 3μ²/(c²r³)·r̂ (radiaal, naar buiten), haar leerboekverhouding ≈1.9e-9 in LEO tot twee-lichamen, de met de hand vereenvoudigde vorm met radiale snelheid, en de conservatieve handtekening (ze verstoort de baan maar houdt de halve lange as binnen een meter/dag, structureel het tegendeel van luchtweerstand). De term voor frame-dragging van Lense–Thirring (forces::lense_thirring_accel / ForceModel::lense_thirring, IERS 2010 §10) is de gravitomagnetische correctie voorbij Schwarzschild — opt-in, ~1–2 ordes van grootte eronder in LEO, geverifieerd als verdwijnend zonder aardrotatie en als liggend onder de Schwarzschild-grootte. Baanbepaling (OD, src/orbit_determination.rs) sluit de lus van waarnemingen terug naar een toestand: een Gauss–Newton-batch-corrector (src/batch_ls.rs) drijft een kandidaat-[r, v] naar de beste pasvorm van grondstationsafstanden die over de boog zijn gepropageerd (onder de meter / mm·s⁻¹ uit ruisvrije afstanden; ~2 m met een residu na de fit op de ruisvloer van 5 m — de handtekening van een consistente kleinstekwadratenfit), met een sequentiële recursieve variant op het unscented filter |
Het standaard Cowell-krachtenmodel bevat alleen het zonale veld: het tesserale EGM2008-veld van hoge graad (Earth Gravitational Model 2008) (src/gravity_sh.rs, graad/orde 70, met een lader from_gfc voor ICGEM-bestanden (International Centre for Global Earth Models)) wordt alleen samengesteld in de nauwkeurige engine voor het fitten van efemeriden (src/precise_od.rs; zie AGENCY-ORBIT-VALIDATION.md); de luchtweerstandsdichtheid is de statische stuksgewijs exponentiële dichtheid van Vallado (onafhankelijk van zonneactiviteit), niet NRLMSISE-00 (het Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Extended atmosphere model; de clausule voor thermosferische dichtheid < 5 %); SRP is het kanonskogelmodel met een geometrische conische umbra+penumbra-schaduw (geen zonneschijfverduistering, geen schaduw van een afgeplatte aarde, geen vorm/standregeling van de satelliet); relativiteit omvat de termen van Schwarzschild en Lense–Thirring (frame-dragging), beide opt-in, maar geen afstemming van PPN-parameters (PPN: parametrised post-Newtonian); voor derde lichamen/SRP worden de laagprecieze efemeriden gebruikt (~0,005° Zon, ~0,3° Maan), niet de nauwkeurigheid van een DE/SPK-kernel. De conservatieve niveaus van het krachtenmodel (twee-lichamen → J2–J6 → Zon/Maan → SRP) zijn VALIDATED tegenover Orekit 12,2 (slechtste 0,08 m over 24 h, tests/numerical_cowell_propagator_reference.rs), en batch-/sequentiële baanbepaling is VALIDATED tegenover de schatters van Orekit 12,2 (tests/batch_sequential_orbit_determination_reference.rs); het luchtweerstandsniveau en de absolute getrouwheid van de efemeride- en dichtheidsinvoer blijven MODELLED; er is geen kruiscontrole met GMAT (General Mission Analysis Tool) |
tesserale zwaartekracht in het standaard Cowell-model + luchtweerstand volgens NRLMSISE-00 + zonneschijfverduistering + efemeride op DE-niveau + kruisvalidatie met GMAT + OD-metingen van afstandssnelheid/hoek en analytische STM (state-transition matrix): P2+ |
| Tijdsystemen | gedeeltelijk | src/timescales.rs: API voor Juliaanse datums (civiel↔JD, MJD (modified Julian date)), UTC↔TAI (UTC: Coordinated Universal Time; TAI: International Atomic Time) via de volledige IERS-schrikkelsecondentabel (10→37 s, 1972→2017), TAI→TT (TT: Terrestrial Time), UT1 (Universal Time 1, tijd van de aardrotatie) via DUT1 (de tijd van de aardrotatie min Coordinated Universal Time), en de Earth Rotation Angle van IAU-2000 (IAU: International Astronomical Union) (ERA, bit voor bit getoetst aan de SOFA-vector (Standards of Fundamental Astronomy) eraEra00). De benadering DUT1≈0 van het SGP4-pad is expliciet gedocumenteerd op de aanroepplaats van gstime (een GMST-fout (Greenwich mean sidereal time) van ≤ ~13″, ruim binnen de eigen modelfout van SGP4), en het scenario ephemeris neemt expliciete knoppen dut1_s/xp_arcsec/yp_arcsec of een ingevoegde echte IERS-reeks finals2000A (eop_finals2000a / kshana --eop <file>, geïnterpoleerd via dezelfde EopSeries die precise_od gebruikt), zodat het grondspoor wordt gereduceerd via echte IERS-UT1 en poolbeweging, niet alleen via de nominale scalaire waarden |
De paden voor aardbanen gebruiken nog een JD met één f64 (~50 µs resolutie rond 2020; dit, niet het algoritme, is de ondergrens voor een kruiscontrole met eindige differenties); er bestaat een tweedelige JD (timescales::TwoPartJd, gebruikt door de radiometrische paden, CCSDS-TDM, de grondsegmentsimulator en de paden voor het zonnestelsel, en src/jd2.rs Jd2) die wordt doorgevoerd door SGP4 (Sgp4::propagate_at(Jd2)), passagevoorspelling, geometrie en Walker-ontwerpen (getoetst aan SOFA, tests/jd2_sofa_time_oracle.rs), en door de aardrotatie op het baanpad (jd2::gmst82, cio::gcrs_to_itrs_matrix_jd2, orbit::Propagator::position_in_frame_jd2, de opt-in two_part_jd van het efemeridescenario; VALIDATED tegenover ERFA, tests/jd2_earth_rotation_erfa_oracle.rs), met verliesvrije conversies tussen Jd2 en TwoPartJd; de standaardpaden voor aardbanen houden de datum met één f64 tenzij two_part_jd is ingesteld, en de epoch van het Cowell-krachtenmodel blijft met opzet met één f64 (zijn analytische Zon/Maan-fout is vele malen groter dan een afronding van 40 µs); UTC met rubbersecondes van vóór 1972 (1960–1971) wordt gemodelleerd op het tweedelige pad (jd2, timescales::tai_minus_utc_on_date, VALIDATED tegenover ERFA, tests/jd2_pre1972_sofa_oracle.rs) maar de timescales::tai_minus_utc met één f64 klemt nog steeds op 10 s vóór 1972; een voorspeller van de aardoriëntatie op basis van kleinste kwadraten + autoregressie (src/eop_ls_ar.rs, als bevinding vergeleken met IERS Bulletin A) kan nu een EOP-reeks voorbij haar laatste rij verlengen (EopSeries::with_ls_ar_prediction, opt-in; tests/eop_prediction_beyond_table.rs), zodat de framearguments voorbij de tabel de voorspelling volgen in plaats van te klemmen; de standaardreeks klemt nog en geen scenariosleutel schakelt de voorspelling al in |
gereed (basis); tweedelige JD door de aardrotatie op het baanpad: gereed (opt-in in het efemeridescenario) ; EOP-voorspelling voorbij de tabel: gereed (bibliotheek, opt-in); UTC van vóór 1972 op het tweedelige pad: gereed |
| Referentiestelsels | volledig | src/frames.rs: op GMST gebaseerde TEME↔ECEF, WGS-84-geodetisch↔ECEF (exact + iteratief invers, machineprecisie op alle hoogten) en een geodetische grondstationwaarnemer (azimut/elevatie/afstand); IAU-2006-precessie (src/precession.rs: de Fukushima–Williams-hoeken (γ̄, φ̄, ψ̄, ε̄_A) + de bias-precessiematrix GCRS↔mean-of-date); IAU 2000A/2000B-nutatie + volledige keten TEME→GCRS (src/nutation.rs: de volledige IAU 2000A-reeks — 678 luni-solaire + 687 planetaire termen, nutation_iau2000a / nutation_matrix_2000a, tabel machinaal gegenereerd uit de referentie nut00a van ERFA (Essential Routines for Fundamental Astronomy) door tools/gen_nut00a.py — naast de reeks 2000B met 77 termen, Delaunay-argumenten, de SOFA-nutatiematrix iauNumat, de vergelijking van de equinoxen, en teme_to_gcrs(r, v, jd_tt) via TEME→TOD→MOD→GCRS (true of date, mean of date) — beide reeksen bit voor bit getoetst aan de SOFA/ERFA-referentievectoren nut00a/nut00b, Δψ/Δε tot 1e-13 rad); IERS-poolbeweging PEF→ITRF (pseudo-Earth-fixed naar terrestrisch) (teme_to_itrf / polar_motion_matrix, SOFA iauPom00, door de aanroeper geleverd x_p/y_p — een effect van tientallen meters op baanstraal); CIO-gebaseerde (CIO: Celestial Intermediate Origin) IAU 2006/2000A-reductie (src/cio.rs: de equinoxvrije keten GCRS↔CIRS↔ITRS (CIRS: Celestial Intermediate Reference System; ITRS: International Terrestrial Reference System) — CIP (Celestial Intermediate Pole) X,Y uit de NPB-matrix (nutatie-precessie-bias) van 2006/2000A, de CIO-locatorreeks s met 66 termen, gcrs_to_cirs_matrix, de Earth Rotation Angle en de volledige gcrs_to_itrs_matrix — bit voor bit getoetst aan de SOFA-vectoren eraXys06a/eraC2ixys/eraEra00). De transformaties van begin tot eind zijn nu vastgepind aan een gepubliceerd gezaghebbend uitgewerkt voorbeeld, niet alleen aan zelfconsistentie: tegenover de toestand van Vallado AIAA 2006-6753 (2004-04-06, met de IERS-EOP (Earth orientation parameters) ervan; tests/frame_reference_vectors.rs) komt TEME→PEF overeen tot 0,1 mm, TEME→ITRF tot 0,6 mm, de volledige CIO GCRS→ITRS tot 4 mm, en reproduceert ECEF→geodetisch breedte/lengte/hoogte van Vallado Example 3-3 tot en met het laatste gepubliceerde cijfer. De hele keten is voor de gebruiker bereikbaar via het scenario ephemeris (ITRF/ECEF-positie + WGS-84-grondspoor onder de satelliet per stap) |
De standaardketen TEME→GCRS gebruikt 2000B (~1 mas, onder haar eigen vereenvoudiging van de rotatie van het snelheidsframe); het pad met < 0,1 mas, met volledige 2000A, is beschikbaar via nutation_matrix_2000a, en de rigoureuze reductie CIO (X, Y, s) is beschikbaar via src/cio.rs. Het oudere TEME-pad gebruikt IAU-1982-GMST (SGP4-conventie). De onafhankelijke numerieke kruiscontrole met ANISE/SPICE (ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris, een zuivere Rust-toolkit voor planeetgeometrie; SPICE: Spacecraft, Planet, Instrument, C-matrix, Events) is geleverd (xval/anise-frames/: gcrs_to_itrs_matrix tegenover GCRF→ITRF93 van ANISE (GCRF: Geocentric Celestial Reference Frame; ITRF93: International Terrestrial Reference Frame 1993) over acht epochs 2020–2023, ≤ 0,86 m op de grond, ≤ 3,6 m op GNSS-baanhoogte (global navigation satellite system)); het is een zelfstandige crate buiten de standaard CI-poorten. precession_matrix en teme_to_gcrs_matrix worden ook rechtstreeks tegen ERFA gecontroleerd op 40 epochs 1950–2100, en de CIO-keten neemt de IERS-offsets van de hemelpool dX, dY aan (cio::gcrs_to_cirs_matrix_with_offsets; tests/frames_erfa_vector_oracle.rs); de standaardpaden verwaarlozen dX, dY nog steeds. De verificatiematrix beoordeelt deze rij als VALIDATED (SOFA/ERFA-vectoren + Vallado) |
TEME↔ECEF + geodetisch: gereed (door Vallado geverifieerd); inertiaal TEME→GCRS: gereed (2000B + volledige 2000A); ITRF met poolbeweging: gereed (door Vallado geverifieerd); CIO GCRS→ITRS: gereed (door Vallado geverifieerd) |
| Tijdsynchronisatie en frequentie | gedeeltelijk | Exacte Kalman-klok met twee toestanden en van-Loan-Q (NIST (National Institute of Standards and Technology) SP (Special Publication) 1065) met een covariantie-update met Joseph-stabilisatie (positief semidefiniet onder extreme Q/R-verhoudingen, in CI met Cholesky gecontroleerd) en een gezondheidsmonitor voor filterconsistentie (src/filter_health.rs): een Monte Carlo-beoordeling van NIS/NEES (NIS: normalised innovation squared; NEES: normalised estimation error squared) tegenover χ²-betrouwbaarheidsbanden, getoond als filter_health in de resultaat-JSON (JavaScript Object Notation) en een groene/oranje kaart in de playground, met een sweeptest van Q/R-mismatch die bewijst dat de monitor omslaat naar inconsistent wanneer de afstemming niet klopt (Bar-Shalom §5,4); overlappende schatters voor ADEV (Allan-deviatie), MDEV (gemodificeerde Allan-deviatie), TDEV (tijdsdeviatie), HDEV (Hadamard-deviatie) + op χ² gebaseerde betrouwbaarheidsintervallen met ruistypespecifieke effectieve vrijheidsgraden (gesloten vormen uit NIST SP 1065 Table 5 voor WPM/FPM/WFM/FFM/RWFM (WPM: white phase modulation; FPM: flicker phase modulation; WFM: white frequency modulation; FFM: flicker frequency modulation; RWFM: random-walk frequency modulation), de set die Stable32 gebruikt; de geëxporteerde ADEV-curve bepaalt het machtswettype van de record uit zijn MDEV-helling en voegt een band van 95% per τ toe — src/allan.rs), numeriek getoetst aan de Stable32-referentiedeviaties voor de canonieke dataset NBS14 tot 1e-4 (tests/allan_reference.rs) en de edf gekruiscontroleerd met een Monte Carlo-ensemble met witte FM (FM: frequentiemodulatie); een eerlijke, door het raster begrensde kwaliteitsmaat (figure of merit) voor holdover; klokensembles; tweewegs-tijdoverdrachtsmodel met opheffing van reciproke vertraging + een ondergrens van niet-reciproke differentiële vertraging met random-walk-FM (src/timetransfer.rs, Allan-signatuur gerapporteerd); een rekenmodule voor klok-holdover zonder GNSS (src/holdover.rs) die de gesloten van-Loan-groei van de uitloopfout σ_x²(t) = q_wf·t + q_rw·t³/3 + q_drift·t⁵/20 beschikbaar stelt als voor de gebruiker bedoelde inversie holdover-tot-drempel (hoe lang een klok vrij loopt voordat haar tijdfout het budget overschrijdt), met representatieve kwantumklokklassen (optisch rooster/ionenval/kwikion) — berekend uit een model, niet extern getoetst: gekruiscontroleerd met de meerstaps covariantierecursie clock_state, en eerlijk vermeld dat voor een zeer stabiele klok de holdover tot een strakke drempel wordt bepaald door de veronderstelde rode-ruisvloer bij lange tau, niet door de aangehaalde ADEV (gebruik gemeten vloeren voor een verdedigbaar getal). Een voorwaardelijk Timing Protection Level (src/tpl.rs) bouwt op dezelfde holdovermachinerie voor het geval van spoofing: een grens aan de niet-gedetecteerde tijdfout gegeven een onafhankelijke kruiscontrole — een k-σ-monitorvloer plus de van-Loan-uitloopvariantie over de detectielatentie plus een CUSUM-tijd tot alarm (cumulative sum) — gekalibreerd op een echte opgenomen spoof (JammerTest 2024, Zenodo 15911589) en reproduceerbaar via cargo run --example tpl_jammertest. Gemodelleerde samenstelling, voorwaardelijk aan detectie: er is geen eindige onvoorwaardelijke grens (een voldoende langzame helling ontsnapt aan één klokondersteunde monitor). De maximale tijdintervalfout (MTIE) en TDEV zijn VALIDATED tegenover allantools (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs), en de inversie van de uitloopvariantie bij holdover is VALIDATED tegenover SciPy (tests/gnss_denied_clock_holdover_reference.rs); de soort telecom-timing past ze toe op de maskers ITU-T (International Telecommunication Union Telecommunication Standardization Sector) G.8272 / G.8272.1 / G.8273.2 / G.8271.1; zie TELECOM-TIMING.md |
volledige edf volgens het Greenhall-algoritme (de eenvoudige gesloten vormen hebben een begrensde bias maar zijn grover dan de exacte BasicSum), en identificatie van mengsels van meerdere ruistypen | exacte edf + identificatie van gemengde ruis: P2 |
| GNSS-/PNT-verwerking | gedeeltelijk | Een pseudorange-simulatie in het meetdomein (soort gnss-sim, src/gnss_sim.rs): per zichtbare satelliet synthetiseert ze ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath en de L1-Doppler, met de Klobuchar-ionosfeer voor één frequentie (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System) §20.3.3.5.2.5) en de Saastamoinen-zenittroposfeer (Davis 1985) geprojecteerd door de afbeeldingsfunctie van Niell (1996) — elk model met een unittest tegenover handberekening — en voert dan de residuen aan snapshot-RAIM (receiver autonomous integrity monitoring) voor HPL/VPL per epoch (HPL: horizontal protection level; VPL: vertical protection level) en geeft een array gnss_measurements[] af (pseudorange, Doppler, C/N₀, iono-/tropocorrecties per SV (space vehicle, dat wil zeggen een satelliet)). Plus DOP/beschikbaarheid (DOP: dilution of precision) en solution-separation-RAIM uit banen; RINEX (Receiver Independent Exchange Format) 3 NAV-inname voor meerdere GNSS'en (GPS/Galileo/QZSS/BeiDou (QZSS: het Japanse Quasi-Zenith Satellite System) via IS-GPS-200, GLONASS (het Russische Global Navigation Satellite System) toestandsvector) ingelezen → ECEF-positie en klokbias van de SV, bruikbaar als volwaardige bron van Propagator EN als inline constellatieblok rinex (scenarios/orbit-rinex.toml); RINEX 3 OBSERVATION-inname (de observatie-indeling 4,00 wordt naar verwachting correct ingelezen maar er is nog geen bestand 4,00 beproefd; RINEX 4 NAVIGATION-bestanden worden bij naam geweigerd in plaats van verkeerd gedecodeerd); een oplosser voor positiebepaling met één punt (soort pvt, src/pvt.rs) die echte RINEX-codepseudoranges + uitgezonden efemeride omzet in een ontvangerpositie met iteratieve gewogen kleinste kwadraten — Sagnac-/aardrotatiecorrectie, uitgezonden satellietklok met −TGD, de ionosfeervrije L1/L2-combinatie met twee frequenties (of Klobuchar met één frequentie), Saastamoinen/Niell-troposfeer, elevatieweging, DOP en snapshot-RAIM — getoetst aan echte IGS-gegevens (International GNSS Service) (station ABMF, Guadeloupe, 2018-05-13) tot 5,7 m 3D-RMS (root mean square) / 1,1 m horizontaal tegenover de ingemeten coördinaat van het station (tests/pvt_abmf.rs, scenarios/pvt-abmf.toml); en lezen/schrijven van nauwkeurige banen in SP3 (Standard Product 3, het formaat voor nauwkeurige banen) |
Een code-positiebepalingsengine plus, vanaf 0,36, verwerking van draaggolffase op echte waarnemingen: de oplosser pvt berekent een echte positie uit echte codemetingen (positiebepaling met één punt, op meterniveau, met de ionosfeervrije combinatie met twee frequenties); rtk_real::run_rtk doet RTK op korte basislijn met echte GPS-code en -fase op twee frequenties (dubbele verschillen, een float-Kalman-filter, LAMBDA-fixering van geheeltallige ambiguïteiten met de ratiotest, src/lambda.rs), en een statisch float-PPP-filter draait op echte code en fase met definitieve IGS-banen en -klokken. Beide zijn VALIDATED tegenover gepubliceerde ITRF2020-coördinaten van IGS-stations (WTZR/WTZZ, tests/rtk_real_wettzell_oracle.rs, tests/ppp_real_wettzell_oracle.rs, drempels vooraf vastgelegd); wat nog ontbreekt is geheeltallige ambiguïteitsoplossing voor PPP, kinematische of netwerk-RTK en realtimewerking. Hatch-draaggolfafvlakking is een vastgepinde MODELLED-bevinding (haar vooraf vastgelegde drempels werden gemist). De soort leo-ppp draait een float-PPP-filter op metingen die ze zelf simuleert, voor convergentiestudies; het voorwaartse pakket gnss-sim blijft een simulator vanuit de referentie; BeiDou-GEO (GEO: geostationaire baan) uitgesloten |
ambiguïteitsfixering voor PPP, kinematische of netwerk-RTK, realtimewerking: gebruik RTKLIB/gLAB (RTKLIB: een opensourcebibliotheek voor real-time kinematische positiebepaling) |
| Sensorfusie / dead-reckoning met INS (inertial navigation system) | volledig | Strapdown-bibliotheek met 3 assen (src/inertial/{attitude,mechanization,imu_errors}.rs): quaternionhouding met coning-/sculling-compensatie, volledige NED-mechanisatie (north-east-down) (aardrotatie + transportsnelheid, WGS-84-Somigliana-zwaartekracht) en een deterministisch foutmodel voor IMU's (inertial measurement unit) (schaalfactor, misalignment, g-gevoeligheid, kwantisatie, helling van de snelheid gemodelleerd). De strapdown-navigator is nu aangesloten op een uitvoerbaar loosely-coupled GNSS/INS-pakket met een kwaliteitsmaat (src/fusion/pack.rs, kind = "gnss-ins"): de driedimensionale mechanisatie wordt gedisciplineerd door het EKF met 15 foutentoestanden (extended Kalman filter) (src/fusion/{gnss_ins_ekf,closed_loop}.rs, terugkoppeling van positie/snelheid/houding/bias) zolang GNSS beschikbaar is en loopt daarna door de onderbreking uit — dit vervangt de reset naar de referentie door echte fusie, en rapporteert de gefuseerde horizontale fout tegenover het open-lus uitlopen van een vrije INS. Het afzonderlijke oudere pakket inertial draait nog steeds het scalaire 1-DOF-budget (DOF: vrijheidsgraad) met reset naar de referentie. Er is ook een tightly-coupled pseudorange-update (update_tightly_coupled / fuse_tightly_coupled) geïmplementeerd: ze vormt de innovatie in het afstandsdomein (Jacobiaan van de zichtlijn op δp) en blijft corrigeren met minder dan vier satellieten, waar een loosely-coupled PVT-positiebepaling (positie, snelheid en tijd) niet bestaat. Een volledige tightly-coupled GNSS/INS-UKF met 17 toestanden (unscented Kalman filter) (src/fusion/tightly_coupled17.rs) bevat positie, snelheid, houdingsfout, versnellingsmeter- en gyrobiassen en de ontvangerklok (bias + drift), met dead-reckoning met quantum-CAI (CAI: cold-atom interferometer) — de procesruis van de snelheids-random-walk is de afgeleide q_va van de koudeatoomversnellingsmeter — dat een onderbreking van 120 seconden uitloopt tot een begrensde fout van enkele honderden meters (tegenover de kilometers van een vrije INS van navigatiekwaliteit). Deze UKF met 17 toestanden is nu beschikbaar gesteld als uitvoerbaar scenario (src/fusion/hybrid_ukf.rs, kind = "hybrid-ukf", bereikbaar vanuit CLI/Python/WASM/MCP): de 15 foutentoestanden van de INS worden aangevuld met de door CAI afgeleide correctie van de versnellingsmeterbias (de koudeatoominterferometer bepaalt de ondergrens q_va van de snelheids-random-walk) en een klok met 2 toestanden voor fase+frequentie waarvan de procesruis komt van de q-parameterklokengine (clock_state::q_from_allan, Allan-profiel → q_wf/q_rw), aangestuurd door het tussen haakjes geplaatste CAI-foutmodel, zodat de run klassieke-IMU op korte termijn + kwantum op lange termijn als hybride laat zien. De kwaliteitsmaat ervan is zelfconsistentie van het filter — gepoolde NEES + innovatiewitheid (NIS) over een Monte Carlo-ensemble tegenover hun χ²-banden van 95% (het afgestemde filter valt binnen de banden; een verkeerd afgestemd filter wordt gemarkeerd, een objectief controleerbare poort). Dit is een uitspraak over ZELFCONSISTENTIE onder de gemodelleerde ruis, GEEN garantie voor nauwkeurigheid in de praktijk — de CAI-/klokinvoer is tussen haakjes geplaatst/gemodelleerd, de CAI-hardware is eigendom van een partner, en niets hier impliceert TRL (technologisch gereedheidsniveau)>3, vluchtervaring of externe validatie. Het deterministische foutmodel van de IMU is per sensor configureerbaar vanuit het TOML-scenariobestand gnss-ins (Tom's Obvious Minimal Language) ([imu_*.error_model]: schaalfactor, misalignment, g-gevoeligheid, kwantisatie, helling van de snelheid), met als standaard een zuivere bron met constante bias wanneer het wordt weggelaten |
Tightly-coupled is alleen pseudorange (draaggolffase staat op de roadmap); het scenario hybrid-ukf gebruikt een enkel, vlak traject met constante snelheid waarop de foutentoestanden voor houding en IMU-bias slechts zwak waarneembaar zijn, zodat de NEES-consistentie wordt beoordeeld over de schatbare deelverzameling (positie, snelheid, klok = 8 toestanden) — volledige waarneembaarheid van alle 17 vereist een manoeuvrerend traject (roadmap); het loosely-coupled paar versnellingsbias/kanteling is zwak scheidbaar, dus kalibratie per bias wordt niet beweerd; het foutmodel van de IMU laat trillingsrectificatie en temperatuurgradiëntdrift weg; de UKF met 17 toestanden en de tightly-coupled paden zijn zelfgetoetst (analytische integratie met constante snelheid, convergentie bij GNSS-ondersteuning, biasherstel, de door CAI begrensde uitloopgrens van 120 s, en het consistentieorakel NEES/NIS-χ²) — de strapdown-mechanisatie zelf is VALIDATED tegenover NaveGo v1.4 (tests/classical_strapdown_ins_reference.rs: houding bit-identiek, snelheid/positie binnen genoemde analytische grenzen), maar er is geen kruisvalidatie op filterniveau (NaveGo of de voertuigdataset van KF-GINS) uitgevoerd |
tight coupling met draaggolffase, volledige waarneembaarheid van alle 17 toestanden met manoeuvrerend traject, trajectbibliotheek, kruisvalidatie op filterniveau met NaveGo/KF-GINS: P2 |
| Integriteit / RAIM / ARAIM (advanced receiver autonomous integrity monitoring) | gedeeltelijk | Echte snapshot-RAIM in src/raim.rs: oplossing met kleinste kwadraten + detectie van fouten met χ² op de residuen (exacte drempel uit een χ² met onvolledige gamma zonder afhankelijkheden) en HPL/VPL op basis van de helling (pbias uit een niet-centrale χ² voor de ingestelde P_fa/P_md); RAIM met solution separation (MHSS) met foutdetectie/-identificatie; ARAIM-budget voor integriteitsrisico (P_HMI) (araim_raim) dat de kleinste HPL/VPL oplost waarvan de gesommeerde P_HMI = Σ_k p_fault,k·Q((PL−T_k)/σ_k) aan een expliciete toewijzing van integriteitsrisico voldoet, de foutmodus voor de hele constellatie bij twee of meer constellaties (araim_dual_raim, EU-ARAIM TN (technische notitie) / DO-316; P_const = 0 ⇒ bit voor bit araim_raim), een expliciet integrity support message (IntegritySupportMessage: σ_URA/σ_URE/b_nom/P_sat/P_const, met de WG-C-referentiewaarden (WG: Working Group) voor GPS+Galileo), plus een Stanford(-ESA, de Europese ruimtevaartorganisatie)-integriteitsdiagram (de scenariosoort integrity, en een zelfstandige renderer stanford_svg van de vier zones + de grens PL=error). End-to-end gedocumenteerd in ARAIM_REFERENCE.md. Plus de zelfconsistentie van het filter volgens de kwaliteitsmaat van het scenario (k-σ-grens) |
RAIM is bereikbaar via de scenariosoort integrity en (0,36, opt-in) naast de kwaliteitsmaat voor klok/holdover als afzonderlijk blok integrity_fom ([integrity]: snapshot-RAIM op een voorinstellingshemel vanaf een vermelde locatie, niet beschikbaar zolang GNSS is geweigerd; MODELLED), nooit opgenomen in de holdover-kwaliteitsmaat, die nog steeds zelfconsistentie rapporteert; snapshot-RAIM bevat FDE voor één satelliet (fault detection and exclusion, raim::snapshot_raim_fde, VALIDATED tegenover RTKLIB raim_fde in tests/integrity_snapshot_raim_rtklib_oracle.rs); de ARAIM-ADD-v4.2-solution-separation met meerdere hypothesen en bepaling van deelverzamelingen van meerdere satellieten staat in src/araim_reference.rs (VALIDATED tegenover Stanford MAAST, tests/integrity_araim_stanford_oracle.rs), maar het budget raim::araim_raim met uniforme sigma dekt nog alleen fouten van één SV en van de hele constellatie en is niet conform ADD (0,36, opt-in: gelijktijdige fouten in deelverzamelingen van meerdere SV's via de deelverzamelingsregel van ADD v4.2, veralgemeend voorbij paren, araim_subset_raim, add_v42_protection_levels_to_order; MODELLED, geen MAAST-run voorbij paren), en uitsluiting van meerdere SV's is niet gemodelleerd; en araim_dual_raim is aangesloten op de TOML-scenariorunner via de vlag araim_dual (scenarios/araim-gps-galileo.toml), met een beschikbaarheidspad per epoch araim_dual_constellation_availability; de kernen voor snapshot/MHSS/ARAIM worden uitgeoefend op echte IGS-geometrie van nauwkeurige banen (SP3) (tests/igs_real_data.rs) en op echte Celestrak-TLE's voor GPS+Galileo (tests/araim_dual_real_data.rs, elke satelliet gepropageerd naar één gemeenschappelijke UTC-epoch — de laatste TLE-epoch (two-line element set) in de set, 2026-06-07T07:21:04 — voor een gebruiker op 400 km met een inclinatie van 45° over 24 h: beschikbaarheid onder een VAL (vertical alert limit) van 12 m / HAL (horizontal alert limit) van 10 m is 0,993 met alleen GPS, 1,000 met GPS+Galileo gepoold en 0,990 in de duale modus die robuust is tegen constellatiefouten; het cijfer dat hier eerder werd gepubliceerd, 0,21→0,67 met de robuuste modus "beperkt", kwam voort uit het propageren van elke satelliet vanaf zijn eigen TLE-epoch — een hemel die nooit heeft bestaan — en is ingetrokken); de eerdere vergelijking met "EU-ARAIM-TN Table A-3" is ingetrokken (geen openbare bron), en een reproductie van de openbare maximale URA-waarden van EU-US WG-C ARAIM Milestone 3 (Tables 5 tot 7, rijen Depleted en Baseline) wordt beproefd in xval/araim-m3/ onder vermelde afwijkingen (MODELLED, zie INTEGRITY.md); niet gecertificeerd volgens DO-229/ARAIM |
ARAIM met meerdere fouten (ADD v4.2): gereed; deelverzamelingen van meerdere SV's in raim + pariteit met gLAB in het ontvangerdomein + aansluiting op de kwaliteitsmaat: P2 (zie INTEGRITY.md) |
| Dreigingsmodellering voor spoofing / jamming | gedeeltelijk | Een stochastische detector voor tijdspoofing (soort spoof, src/spoof.rs + src/detection.rs): vier injectievormen (lineaire helling, stapsprong, meaconing, replay) tegenover een klokondersteunde monitor met een tweezijdige χ²₁-energietest / Neyman–Pearson-test, met de detectiedrempel vastgesteld uit een beoogd budget voor valse alarmen P_fa, en de kans op gemiste detectie P_md gerapporteerd zowel in gesloten vorm als met Monte Carlo (de twee komen overeen tot een paar ×1/√N) — de Security-kwaliteitsmaat is 1 − P_md. Plus een jammingmodel op basis van een linkbudget (soort jamming, src/jamming.rs): verhouding tussen jammer en signaal uit geometrie (padverlies in vrije ruimte + ontvangstantennewinst per richting), de standaard vergelijking voor effectieve C/N₀ bij anti-jam (winst door despreiding + spectrale-scheidingsfactor Q; Kaplan & Hegarty §9,4), verlies van vergrendeling per satelliet bij een instelbare volgdrempel, en een kwaliteitsmaat availability_under_jamming over een Walker-constellatie. Plus een meerlaagse suite van spoofmonitors voor RF/metingen (RF: radiofrequentie) (src/spoof_monitors.rs): een RAIM-consistentietest over meerdere satellieten met pariteit (parity_raim_test, gewogen residu-SOS (som van kwadraten) tegenover een drempel χ²(m−4) — en ze wijst er terecht op dat een common-mode-bias voor RAIM onzichtbaar is), een AGC-monitor (automatic gain control) (AgcMonitor, overschot aan ontvangen vermogen boven de verwachte vloer), een monitor voor signaalkwaliteit / SQM (signal-quality monitoring) (SqmMonitor, onbalans tussen Early/Late-correlator) en een combinator die de lagen samenvoegt (fuse_spoof_layers). Deze vormen samen een geïntegreerde CombinedSpoofDetector waarvan evaluate één epoch aan waarneembare grootheden opneemt (geometrie + residuen, AGC-vermogen, Early/Late-taps) en alle drie de lagen in één aanroep door de gewogen fusie laat lopen, waarbij de diagnostiek per laag wordt teruggegeven; ze is beschikbaar als uitvoerbaar scenario spoof-detect (src/spoof_detect.rs, bereikbaar vanuit CLI / Python / playground, JSON + SVG (Scalable Vector Graphics)) en gekarakteriseerd aan de hand van de gepubliceerde scenarioparameters van TEXBAT (Texas Spoofing Test Battery) (Humphreys et al., ION (Institute of Navigation) GNSS 2012; tests/spoof_texbat_validation.rs) — waarbij het gedocumenteerde detecteerbaarheidspatroon wordt gereproduceerd, inclusief de negatieve resultaten: overgesturen ds2 gevangen door AGC + SQM, ds3 met gelijk vermogen door SQM alleen, ds4 met positieduw door RAIM, en ds7 met gelijk vermogen en uitgelijnde draaggolffase (terecht) overgelaten aan de klokondersteunde detector |
De soort jamming is een linkbudget: ze heeft geen multipath en geen AGC-dynamiek in de tijd. Sinds 0,36 neemt ze vier optionele secties: [crpa], een adaptieve arraybundel per kanaal (nulsturing of MVDR uit src/crpa.rs, gecontroleerd tegen een onafhankelijke herberekening met numpy; MODELLED), en [terrain], het enkelvoudige knife-edge-diffractieverlies van het pad van de jammer over een SRTM-tegel (src/jamming_terrain.rs, ITU-R P.526-15 §4,1, gecontroleerd tegen een onafhankelijke herberekening met numpy op een echte tegel; MODELLED, slechts één knife edge), [acquisition], hysterese tussen verwerving en volgen, en [front_end], de ingestelde AGC-uitlezing en het kwantiseringsverlies van de ADC bij Gaussische invoer (src/jamming_rx.rs; aangemerkt als niet geldig voor niet-Gaussische jammers; MODELLED). Spiegelend multipath, fading bij landmobiele ontvangst en AGC bestaan in de IQ-laag (src/iq/channel/multipath.rs, src/iq/channel/land_mobile.rs, src/iq/frontend/agc.rs) en zijn niet aangesloten op de soort jamming; de tabel voor spectrale scheiding Q bevat de leerboekwaarden per type (CW en smalband 1, breedband en gezwaaid 2 sinds 0,36), vastgepind aan de coëfficiënten die zijn afgeleid uit de vermogensspectrale dichtheden (PSD) in navsignal (zie de rij over navigatiesignalen). De klokondersteunde spoofdetector heeft één klok; de monitors voor RF/metingen zijn nu geïntegreerd (CombinedSpoofDetector) en gekarakteriseerd aan de hand van de gepubliceerde parameters van de TEXBAT-scenario's (Humphreys et al.); wat overblijft is validatie tegen de ruwe vectoren — TEXBAT IQ-samples (in-phase/quadrature) (waarvoor een SDR-front-end (software-defined radio) voor verwerving/volgen nodig is dat kshana niet heeft, omdat het een simulator is en geen ontvanger) of een gelicentieerd Spirent-scenario — een gedocumenteerd vervolg |
klokondersteunde + geïntegreerde gecombineerde detector met RAIM-consistentie over meerdere SV's + AGC + SQM + karakterisering met TEXBAT-parameters: gereed; validatie met ruwe vectoren (TEXBAT IQ / gelicentieerde Spirent): vervolg |
| Modulatie van navigatiesignalen en prestaties van codevolging | gedeeltelijk | src/navsignal.rs: het signaalniveau tussen het linkbudget en het meetdomein. Vermogensspectrale dichtheden met eenheidsoppervlak voor BPSK-R(n) (binary phase-shift keying, rechthoekige chips) en sinus-BOC(m,n) (binary offset carrier) (in CI getoetst op eenheidsoppervlak, op de gesloten vorm van de zelfcoëfficiënt voor spectrale scheiding (SSC) van BPSK κ = 2/(3R_c), en op de spectrale verdeling van BOC — nul op de draaggolf, pieken bij ±f_s); de coëfficiënt voor spectrale scheiding κ = ∫ G_s(f)G_i(f) df, die nu de anti-jam-Q afleidt die jamming gebruikt uit de werkelijke signaal- en jammerspectra (Q = 1/(R_c·κ)) in plaats van een representatieve constante (de breedbandreferentie wordt in CI gekruiscontroleerd); de RMS-bandbreedte (Gabor) (BOC > BPSK — de maat voor afstandsinformatie / Cramér–Rao); de thermische ruisjitter van coherente early–late-DLL-codevolging (delay-locked loop) (Kaplan & Hegarty §8 — ~onder de meter voor C/A bij 45 dB-Hz, monotoon in C/N₀); en de omhullende van de multipathfout (coherente EML (early-minus-late), gevonden door het nulpunt van de samengestelde discriminator te lokaliseren — onderdrukking door de smalle correlator geverifieerd). Een laag voor de afweging bij het ontwerp van rangingcodes (CodeFamily) voegt de periodieke autocorrelatiezijlob van m-sequenties/Gold (1/L voor een m-sequentie) toe en de driewaardige Gold-kruiscorrelatiegrens t(n)/L — die de gepubliceerde Gold-kruiscorrelatie van GPS C/A −23,9 dB (een extern ankerpunt) en het aantal m-sequenties φ(2ⁿ−1)/n reproduceert — plus de inversie tussen codelengte en ondubbelzinnig bereik; de Gold-garanties geven eerlijk None terug waar geen voorkeurspaar bestaat (n mod 4 = 0), in plaats van een grens te rapporteren die niet geldt. |
Sinds 0.31.0 voegt de afzonderlijke IQ-laag (src/iq/, de opdrachten kshana iq; ontwerp in design/GNSS-IQ-PLAN.md) een softwarematige ontvangerketen toe: FFT-verwerving (fast Fourier transform), een bank voor volgen met meerdere kanalen DLL/PLL/FLL (delay-, phase- en frequency-locked loop), front-endfiltering en kwantisatie van 1 tot 14 bit, en streaming van opgenomen datasets. Een onafhankelijke softwareontvanger herstelt de ingebrachte referentie van zijn scènes, en de GPS L1 C/A-codes en LNAV-bits (legacy navigation message) zijn bit-exact tegenover gps-sdr-sim. Nog ontbrekend: de lusdiscriminatoren gaan uit van de ideale BPSK-correlatiedriehoek, dus er is geen oplossing voor BOC-volgambiguïteit; de kanaal- en lusmodellen zijn MODELLED, gecontroleerd tegen gesloten vormen en ingebrachte referentie, niet tegen gemeten IQ uit het veld; alleen scalaire lussen (geen vectorvolging). Het hardwareontwerp van antenne/RF-payload (stralingspatronen, front-end) valt bewust buiten de reikwijdte — de rol van een payloadpartner. |
BOC-ambiguïteit + validatie van de IQ-laag met IQ uit het veld: P2+ |
| Fysica van kwantumsensoren voor PNT | gedeeltelijk | De meeste sensoren zijn gepubliceerde coëfficiënten voor Allan/ruisbudget (CSAC, optisch), plus een accelerometer met koudeatoominterferometrie (CAI) vanuit de eerste beginselen in src/inertial/quantum_imu.rs: de Mach–Zehnder-fase met drie pulsen Φ = k_eff·a·T², kwantumprojectieruis (shot noise) σ_Φ = 1/(C√N), de afgeleide PSD van de snelheids-random-walk q_va die de inertiële stack gebruikt, contrastverval, de trillingsoverdrachtsfunctie |H(ω)| + variantie bij witte PSD, en nu ook de systematische effecten van Coriolis/rotatie (coriolis_phase, equivalente bias 2Ω×v) en de AC-Stark-lichtverschuiving (AC: wisselstroom) (ac_stark_phase, symmetrische opheffing) + een driftsweep over de cyclustijd (cai_drift_sweep), en een samengesteld foutbudget voor kwantuminertiële dead-reckoning (QuantumNavBudget) dat de witte-ruis-snelheids-random-walk van CAI samenbrengt met restbias (½·b·t², gekruiscontroleerd tegen de onafhankelijke Euler-integrator AccelModel), schaalfactorfout en een optionele degradatie van de stabiliteit op lange termijn (te onderscheiden van decoherentie per shot) in één cijfer voor positiedrift over de holdover plus een inertiële holdover-tot-drempel — de dead-reckoning-tegenhanger van de klokholdover. De gemodelleerde kwantumvloer is omsloten (niet gelijkgesteld) met de 96 nm/s²/√Hz van de mobiele gravimeter van Freier et al. 2016 (arXiv:1512,05660) — ze ligt eronder en binnen ~2 ordes van grootte ervan. Gedocumenteerd in QUANTUM.md |
Systematische effecten van golffront/bundelrichting niet gemodelleerd; de grens van de fringe-ambiguïteit van Mach–Zehnder is gemodelleerd (max_unambiguous_accel, dynamic_range_cells in src/inertial/quantum_imu.rs), maar het oplossen van de ambiguïteit niet; de exacte vluchttestbudgetten van CARIOQA-PMP (CARIOQA: Cold Atom Rubidium Interferometer in Orbit for Quantum Accelerometry) / Boeing-AOSense (waarvoor gepubliceerde PSD's van het platform + SNR per shot (signal-to-noise ratio) nodig zijn) en een JS-voorinstelling (JavaScript) voor de playground blijven over |
systematische effecten van het golffront + reproductie van vluchttests: P2+ (QUANTUM-MODELS.md) |
| Constellatieontwerp | gedeeltelijk | Synthetische Walker (zowel analytisch Kepler als SGP4 met gemiddelde elementen, de laatste gepropageerd door de kern die tot 4,12 mm is getoetst — src/walker.rs) + zichtbaarheid en DOP voor echte TLE's met meerdere constellaties (GPS+Galileo tot 100%), getoetst aan een echte Celestrak-momentopname van gps-ops (tests/igs_real_data.rs); een PDOP-ontwerpsweep (position dilution of precision) over het raster {planes × sats × inclination} en kwaliteitsmaten voor dekkingsfractie / herbezoektijd; de uitvoerbare soort constellation-design (Walker-delta- en -sterpatronen in de conventie i: T/P/F, expliciete elementenlijsten, ontwerpen met meerdere schillen en gepubliceerde voorinstellingen, rond de aarde, de maan, Mars of elk ander gecatalogiseerd lichaam) waarvan de Walker-geometrie en de gepubliceerde GPS-, Galileo- en GLONASS-slots VALIDATED zijn tegenover de gepubliceerde tabellen en waarvan de wereldwijde GPS-basislijn voor dilution of precision VALIDATED is tegenover de prestatienorm van de GPS Standard Positioning Service, terwijl de dekkingskaarten voor willekeurige ontwerpen MODELLED blijven; een gradiëntvrije ontwerpoptimalisator (optimize_walker_design) die het raster doorzoekt naar het beste ontwerp onder een gekozen doelfunctie (MinSatellitesForCoverage / MaxCoverage / MinWorstPdop), getoetst op het teruggeven van de winnaar van brute force; en analytische geometrie van straten van dekking (coverage_half_angle_rad, street_half_width_rad; gesloten vormen van Rider/Beste, met de hand geverifieerd — GPS bij een masker van 5°: λ ≈ 71,2°, halve straatbreedte bij 4 satellieten ≈ 62,8°) |
Er bestaat een geïdealiseerde dimensionering van straten van dekking met minimaal aantal satellieten (walker::StreetsCoverageDesign); de naadexacte correctie van Rider op de grens van tegengesteld draaiende vlakken is niet geïmplementeerd; de playground tekent een 3D-baanweergave zonder afhankelijkheden (web/studio/lib/orbit3d.mjs), en een CZML-export (Cesium Language), --export czml, laadt de geometrie in de CesiumJS-globe; de DOP-kernel is VALIDATED tegenover gnss_lib_py (tests/dop_reference.rs), en de volledige pijplijn voor zichtbaarheid met meerdere constellaties wordt van begin tot eind gekruiscontroleerd met Orekit 12,2 + gnss_lib_py (tests/coverage_dop_full_oracle.rs): de aardontwerpen halen elke drempel, maar de ontwerpen voor de maan en Mars missen de DOP-drempel bij numeriek singuliere geometrie, dus de rij blijft MODELLED; geodetisch tegenover geocentrisch "boven" in het DOP-frame |
dimensionering van straten van dekking + 3D-baanweergave + kruiscontrole van begin tot eind voor de aarde: gereed; naadexacte correctie van Rider + slecht geconditioneerde DOP buiten de aarde: P2 |
| Verificatie en validatie | gedeeltelijk | Controles tegen externe referenties in de hele engine (SGP4 tegenover 666 vectoren van AIAA, de Allan-familie tegenover Stable32 en allantools, frames tegenover SOFA/ERFA, krachtenmodel en baanbepaling tegenover Orekit, ARAIM tegenover het uitgewerkte voorbeeld van WG-C, en meer; het actuele aantal staat in de gegenereerde kop van VERIFICATION-MATRIX.md); deterministische Allan-controles; een machinaal gecontroleerde verificatiematrix (src/verification.rs) — een kruisverwijzing eis→module→test→referentie→status waarvan de eerlijkheidsinvarianten met unittests worden gecontroleerd: een rij mag alleen getoetst aan een externe referentie heten als ze een onafhankelijke externe referentie draagt (NIST/AIAA/SOFA/IGS/gepubliceerde waarde), zodat een interne zelfconsistentiecontrole zich niet als validatie kan voordoen; ze wordt weergegeven als Markdown/CSV (CSV: door komma's gescheiden waarden) voor een verificatiekruisverwijzing volgens ECSS-E-ST-10-02 (ECSS: European Cooperation for Space Standardization), en legt de vier hardware-/PA-hiaten (PA: productborging) die eigendom zijn van een partner als zodanig vast |
Kalibratie-ensembles beslaan tot nu toe drie controles met één seed (CALIBRATION-ENSEMBLES.md, vooraf vastgelegd: het Monte Carlo-bootstrapinterval dekt bij 96 % van 200 seeds; één percentieltolerantie is seedgevoelig, NOT MET bij 91,5 %); de andere rijen worden nog op enkele seeds gekalibreerd. De matrix dwingt de classificatie van de rij af, en CI controleert nu ook dat elke test, elk bestand en elk item in de crate dat een rij aanhaalt bestaat (tests/verification_rows_name_a_test_that_exists.rs, tests/verification_rows_cite_evidence_that_exists.rs) en dat gepubliceerde cijfers nog reproduceren (tests/published_figures_still_reproduce.rs); ze beoordeelt de referentie zelf niet, wat een beoordelaar nog steeds leest |
kalibratie-ensembles: P1 |
| LEO-PNT (positiebepaling, navigatie en tijdsynchronisatie vanuit een lage baan om de aarde) | gedeeltelijk | Zeven soorten, systeemonafhankelijk met benoemde openbare voorinstellingen: leo-signal (signaalontwerpen van elke band en structuur: BPSK-, BOC-, MBOC- (multiplexed BOC) of vlakke OFDM-achtige (orthogonal frequency-division multiplexing) componenten, codevolging, verwerving, GNSS-compatibiliteit, bandafweging), leo-pass (een ontworpen, element-, TLE- of Walker-passage met een linkbudget per band: regen, scintillatie en gebouwindringingsverlies volgens ITU-R (International Telecommunication Union Radiocommunication Sector), ionosfeer, antenne, Doppler, tegenover de zichtbare GNSS-satellieten in MEO (medium Earth orbit)), leo-navmsg (uitgezonden efemeride en klok op de Keplerbasis van de Galileo-ICD (interface control document) of te kiezen LEO-modellen, gefit en gecodeerd met een framecontrole CRC-24Q (24-bit cyclic redundancy check)), leo-pvt (gefuseerde positiebepaling met MEO + LEO uit pseudorange en Doppler over willekeurige constellaties), leo-ppp (PPP-convergentie met en zonder LEO-aanvulling, op gesimuleerde metingen), ntn-positioning (grenzen voor 5G-NTN-positiebepaling, non-terrestrial network, uit signaalbandbreedte), en leo-pnt-chain (één systeem van begin tot eind, waarbij de uitvoer van elke fase aan de volgende wordt doorgegeven). VALIDATED onderdelen: de ITU-R-linktermen tegenover de tabellen en validatievoorbeelden van de aanbevelingen, maximale Doppler tegenover een gepubliceerde tabel, het Galileo-gebruikersalgoritme tegenover RTKLIB tot 1 mm, CRC-24Q, de SISRE-gewichten (signal-in-space range error) |
Geen veldgegevens of opgenomen signalen; de cijfers voor positiebepaling, PPP, NTN en tijdsynchronisatie zijn MODELLED (gesloten vormen, filterconsistentie, vergelijkingen met gepubliceerde trends); voorinstellingen komen uit openbare bronnen of zijn afgeleid, geen gegevens van een exploitant | validatie met echt opgenomen signalen: P3 |
| Spectrum / RF-omgeving | gedeeltelijk | Soort spectrum (src/spectrum.rs): de GNSS-L-band (en UHF-, S- en C-band-ontwerpen met meerdere banden (ultra-high-frequency (UHF))) als één vermogensspectrale dichtheid, met frequentie dwars en tijd omlaag, onder een gescripte jammertijdlijn (jammers met continue golf, smalband, chirp en aangepast breedband), met J/S per band (verhouding tussen jammer en signaal) en effectieve C/N₀ (draaggolf-ruisdichtheid); SigMF-opnamen in en uit en Welch-spectrale schattingen van complexe samples. De gesloten spectra van de signalen en de coëfficiënten voor spectrale scheiding zijn VALIDATED; het waterfalldiagram is MODELLED |
GLONASS-, BeiDou- en Galileo E6-signalen niet gemodelleerd; geen validatie van de ontvanger-front-end of met opgenomen IQ (in-phase/quadrature) | vergelijking met opgenomen signalen: P3 |
| Vertrouwen in ontvangerlogs (vaartuig en algemeen) | gedeeltelijk | src/receiver_trust/: monitors over de eigen log van een ontvanger (draaggolf-ruisdichtheid, consistentie van positie, snelheid en koers, tijd) met gebeurtenissen en voorspellingen die vóór de run zijn vastgelegd; op een vaartuigplatform een score van 0-100 met redenen; livemodus op een stream met de zin $PKSHT en een optionele poort. MODELLED; adviserend, geen typegoedgekeurde navigatieapparatuur |
De drempels zijn vermelde standaardwaarden, niet gemeten tegen ontvangers in de praktijk; een log scoort alleen die log; geen radiofrequente invoer of uitvoer; geen typegoedgekeurde navigatieapparatuur | docs/RECEIVER-TRUST.md, docs/MARITIME-TRUST.md |
| Bewijspakketten en vertrouwenstelemetrie | gedeeltelijk | src/evidence/: een ondertekend, via hashes geketend pakket van een logvenster, de configuratie ervan en het resultaat van de engine, offline te verifiëren, met een optioneel tijdstempeltoken volgens RFC 3161. src/telemetry/: de vertrouwensstroom als Prometheus-metrics, syslog-gebeurtenissen (CEF of LEEF) en optioneel OpenTelemetry, met een voorbeelddashboard voor Grafana |
Een pakket is een technisch dossier, geen juridisch oordeel, en zegt niet wat een gebeurtenis heeft veroorzaakt; de handtekening van de tijdstempelautoriteit wordt niet geverifieerd; telemetrie verzendt alleen telemetrie | docs/EVIDENCE-PACKS.md, docs/TRUST-TELEMETRY.md |
| Streams voor bemanningstraining en interferentiekaarten | gedeeltelijk | src/nmea_synth/: synthetische brug-NMEA met gescripte jamming-, drag-off-, tijdspoof- en replay-gebeurtenissen en een instructeurslogboek (alleen tekst). src/interference_map/: geaggregeerde kaarten van gedegradeerde navigatie uit openlijk gelicentieerde meldingen van vliegtuigen en schepen en de blootstelling van een route, uit lokale bestanden |
De streams zijn trainingsgegevens, nooit bedoeld voor de live navigatiesystemen van een vaartuig; de kaarten zijn geaggregeerd, geen voorspelling, en hangen af van de gegeven meldingen | docs/NMEA-TRAINING.md, docs/INTERFERENCE-MAP.md |
| Export voor testbench | gedeeltelijk | src/interop/testbench.rs: de voertuigbeweging en gebeurtenissen van een scenario gnss-ins, jamming of gnss-sim als bewegings-CSV, NMEA, waypointtekst en gebeurtenisbestanden voor een GNSS-simulator in een laboratorium |
Er wordt geen signaal geschreven; er wordt geen prestatie van een simulator of ontvanger beweerd; de bestanden worden gecontroleerd zoals ze worden teruggelezen door de bewegingslezers van één opensourcesimulator (gps-sdr-sim), maar de fysica van het eigen referentietraject van het scenario wordt niet extern gecontroleerd | docs/TEST-BENCH.md |
| Galileo OSNMA-verificatie | gedeeltelijk | src/osnma/ en kshana osnma verify: leest Galileo I/NAV-pagina's of een UBX-stream en meldt per satelliet en epoch of de navigatiegegevens zijn geauthenticeerd (ondertekende sleutel met Merkle-wortel, TESLA-keten, MAC's), met de reden waarom een controle mislukte en een optionele onafhankelijke referentietijd voor actualiteit; ook osnma_verify in Python en WebAssembly |
Authenticeert gegevens tegen sleutels die de gebruiker aanlevert; beweert geen prestaties tegen spoofing en is geen integriteitsdienst voor navigatie of typegoedgekeurde apparatuur; gecontroleerd op synthetische vectoren, de officiële ICD-testvectoren zijn een externe download | docs/OSNMA.md |
| Koppeling aan openbare kaders voor compliance | gedeeltelijk | src/compliance/ en kshana compliance-report: Kshana-uitvoer gekoppeld aan zes openbare veerkrachtkaders en normen met bronnen en een hiaat op elke rij; een run telt alleen mee wanneer zijn resultaat de velden bevat die zijn soort schrijft |
Een koppeling is een oordeel; het rapport zegt waarvoor een reeks runs bewijs levert, nooit dat een kader is gehaald of een product is goedgekeurd; EN 16803 wordt alleen aangehaald uit catalogustekst | docs/compliance/README.md |
| Maritieme integraties | gedeeltelijk | Een Signal K-plugin, OpenCPN via NMEA in gatemodus over TCP, en een referentiebuild voor een kleine computer naast de ontvanger (integrations/, deploy/) |
Getest op opgenomen synthetische uitvoer; de plugin is niet gepubliceerd op npm; adviserend, geen typegoedgekeurde navigatieapparatuur | docs/MARINE-INTEGRATIONS.md |
Bredere domeinen van ruimtesystemen (vandaag buiten de reikwijdte)#
Verscheidene hiervan zijn geen; andere zijn nu modellen van de eerste orde partial (de soorten voor missieanalyse / omgeving die in de reeks v0.17.0 zijn toegevoegd) — opgenomen zodat de reikwijdte ondubbelzinnig is en niet door stilzwijgen wordt gesuggereerd. Kshana is een PNT-simulator, geen GMAT/STK/Orekit (STK: Systems Tool Kit); deze aangrenzende modellen zijn bewust van de eerste orde en MODELLED, nooit aan een onafhankelijke externe referentie getoetste vluchttools.
| Mogelijkheid | Status | Opmerking / roadmap |
|---|---|---|
| Missieontwerp / trajectoptimalisatie | gedeeltelijk | src/maneuver.rs: impulsieve ΔV-knooppunten met propagatie van 6×6-covariantie (ECI/LVLH (ECI: Earth-centred inertial; LVLH: local vertical, local horizontal) uitvoeringsfoutframes), integratie van eindige brandstofverbranding gecontroleerd tegen de gesloten vergelijking van Tsiolkovsky tot < 0,01 %, een Lambert-oplosser van Izzo-2015 voor één omwenteling + een exacte Kepler-propagator met universele variabelen (Lambert-uitvoer heen en terug getoetst tegen twee-lichamen-referentie), en een porkchop-sweep (lancering × aankomst) van C3 / aankomst-V∞ die wordt uitgegeven als JSON-contourraster waarvan het minimum wordt gecontroleerd tegen de analytische Hohmann-ondergrens. Geen trajectoptimalisator; een Lambert-oplosser voor meerdere omwentelingen (maneuver::lambert_multirev, tot drie omwentelingen, beide takken) is VALIDATED tegenover pykep 3.0.1 (tests/lambert_multirev_oracle.rs); de porkchop draait op het synthetische coplanair-cirkelvormige model of, met maneuver::porkchop_kernel, op een DE440 SPK (VALIDATED tegenover SPICE-toestanden + de Lambert van pykep, tests/porkchop_de440_oracle.rs); maneuver::optimise_transfer_kernel vindt het continue optimum van de datum (min C3 of min aankomst-V∞, Type I of II) op DE440, VALIDATED tegenover een onafhankelijke optimalisator met SPICE + pykep + SciPy (tests/transfer_optimiser_oracle.rs); tegenover de gepubliceerde minima voor Aarde–Mars van NASA/TM-2010-216764 2026 komt hij overeen met de waarden van Type II en mist hij het minimum C3 van Type I met −5,18 % (vastgelegd). GMAT zelf is niet gedraaid; pykep is de referentie uit een bibliotheek. Er bestaan nu een aansluiting voor planetaire efemeriden voor de diepe ruimte (src/ephem_provider.rs) en een kruiscontrole met DE440 (Development Ephemeris 440) (xval/anise-mars-od, 137 m @ 1-daagse Marsboog) — zie de rij over PNT in de diepe ruimte / interplanetair. De laag voor prestatiesimulatie boven GMAT/Orekit, geen vervanging. P3 |
| AOCS (attitude and orbit control system) / GNC (guidance, navigation and control) / standregeling | gedeeltelijk | Soort attitude-budget (src/attitude_budget.rs): gravitatiegradiëntkoppel in het slechtste geval 1.5·(μ/R³)·ΔI + RSS-budget (root-sum-square) voor de richtfout over termen van 1σ per bijdrager — een MODELLED scalair budget voor richting/verstoring vóór hardware. Dynamica van de stand van een star lichaam zonder koppel met een quaternionentoestand (src/attitude_dynamics.rs: vergelijkingen van Euler + quaternionkinematica, RK4) is VALIDATED tegenover de spacecraft hub van Basilisk 2.9.1 (tests/attitude_dynamics_basilisk_oracle.rs, quaternion binnen 1e-9 over 1e4 s), en de piek van het gravitatiegradiëntkoppel tegenover de GravityGradientEffector van Basilisk (tests/attitude_gg_torque_basilisk_oracle.rs); bepaling van de stand volgens Wahba staat in src/wahba.rs. Soort aocs (src/aocs.rs, src/aocs_kind.rs, AOCS.md): een traagheidsgerichte slew met gebalanceerde reactiewielen onder MRP-terugkoppeling, wieltoerkoppels met minimale norm met motorlimieten; de gesloten lus is VALIDATED tegenover Basilisk 2.9.1 op drie vooraf vastgelegde gevallen tot op afrondingsfout. Een MEKF uit een gyro en een sterrenzoeker (src/aocs_mekf.rs) kan de lus sluiten op zijn eigen schatting (MODELLED, filterconsistentie). Geen volgsturing, geen integrale terugkoppeling, geen impulsmomentbeheer, geen magnetische koppelaars, geen stuwraketten, geen wrijving of toerentalgrenzen van wielen; geen externe koppelomgeving in de standdynamica; geen vluchtregelaar. P3 |
| Referentiestelsels → aardvast | volledig | Gereed — TEME→ECEF/ITRF, poolbeweging en de CIO-gebaseerde keten GCRS→ITRS zijn geïmplementeerd en VALIDATED (bit voor bit tegenover SOFA/ERFA; 4 mm van begin tot eind tegenover Vallado). Zie de rij Referentiestelsels hierboven |
| Communicatie en linkbudgetten | gedeeltelijk | src/linkbudget.rs: een Friis-linkbudget voor de diepe ruimte (zendvermogen · antennewinsten · ruis → C/N₀ · Eb/N₀ · marge) dat het radiometrische pad/GSE (GSE: grondondersteunende apparatuur) voedt, plus de optische/RF-tijdoverdrachtsverbindingen (src/timetransfer*.rs), en de uitvoerbare soort link-budget — de eenrichtingslinkvergelijking van CCSDS-401/DSN-810-005 (DSN: Deep Space Network) C/N₀ = EIRP − FSPL − L_other + G/T − k met invoer van EIRP (effective isotropic radiated power) / G-T en selectie van de S/X/Ka-band (MODELLED technisch linkbudget, geen gekalibreerde datasheet van een terminal). Geen toegangsplanning, geen adaptieve codering. P2 |
| Grondsegment en operaties | gedeeltelijk | passes kind (src/passes.rs): voorspelling van stijg-/daalpassages voor grondstations — AOS/TCA/LOS (AOS: acquisition of signal; TCA: time of closest approach; LOS: loss of signal), maximale elevatie, duur per passage en totale toegang over een horizon, uit een SGP4-elementenset op het aardvaste IAU 2006/2000A-stelsel met ITU-R P.834-9-refractie en lichttijd — VALIDATED ten opzichte van Orekit 13.1.8 bij stations op zeeniveau (60 gevallen / 1210 passages, tests/pass_predictor_on_path_orekit_oracle.rs); de geometrische passes::predict_passes is VALIDATED ten opzichte van de elevatiedetector van Orekit 12,2 (22 scenario's / 129 passages, tests/ground_station_pass_prediction_reference.rs); geen planningsoptimalisator en geen conflictoplossing. P3 |
| Telemetrie / TT&C / CCSDS | gedeeltelijk | maatwerk TOML-in/JSON-uit; CCSDS OEM-export (Orbit Ephemeris Message) en -import (502.0-B KVN (keyword-value notation), GMAT/Orekit/STK) via het uitvoerbare oem-interop kind (src/oem.rs parse_oem round-trip-brug; de formaatconforme uitwisseling van één object is VALIDATED ten opzichte van de onafhankelijke oem 0.4.5-parser); CCSDS-TDM (503) Tracking-Data-Message parsen en uitvoeren (src/ccsds_tdm.rs, het radiometrische uitwisselingsformaat voor de diepe ruimte); en het space-packet kind (src/space_packet.rs): CCSDS 133.0-B Space Packet primaire header coderen/decoderen met bitexacte round trip. Een CCSDS OMM-schrijver (Orbit Mean-Elements Message, 502.0-B-2, onderdeel van de ODM-familie) (src/omm.rs) publiceert SGP4-gemiddelde elementen in KVN, en een pure-Rust NAIF SPICE-kernellezer (src/naif_kernel.rs: DAF-container, SPK-type 2, binair PCK-type 2) ondersteunt ephem_provider::KernelEphemeris. Andere CCSDS-berichttypen (OPM, OCM, AEM (AEM: Attitude Ephemeris Message)) en het schrijven van SPICE blijven een roadmappunt (P2) |
| Interoperabiliteit en standaarden (RINEX/SP3/SPICE/CCSDS) | gedeeltelijk | RINEX 3 multi-GNSS NAV — GPS, Galileo, QZSS, BeiDou MEO/IGSO (IS-GPS-200) en GLONASS (PZ-90 (PZ: Parametry Zemli, het Russische geodetische datum) toestandsvector RK4) — ingelezen, gepropageerd en uitvoerbaar als één gemengde constellatie; RINEX 3 OBSERVATION-parser (pseudorange/draaggolf/Doppler/SNR per observatiecode, met LLI/SSI (LLI: loss-of-lock indicator; SSI: signal strength indicator) vlaggen; 4,00 naar verwachting te parsen, niet getest); SP3-c/d precieze efemeriden lezen ↔ schrijven round trip (parsen en exporteren voor Ginan/RTKLIB/gLAB) en een Lagrange-propagator van de 10e orde (11 punten) (Propagator::Sp3Precise); SP3-export is via de CLI beschikbaar (kshana <orbit.toml> --export-sp3 out.sp3, of export_sp3 = true) en door round trip getoetst aan de echte GPS-constellatie tot <0,5 m over 24 uur (tests/sp3_export_roundtrip.rs); CCSDS OEM 2,0-efemeridenschrijver — de TEME-toestandsexport met snelheid voor flight-dynamics-hulpmiddelen — nu via de CLI beschikbaar (kshana <orbit.toml> --export-oem out.oem, of export_oem = true) en met round trip gecontroleerd tegen de toestand van de propagator (tests/sp3_export_roundtrip.rs). De RINEX-observatieparser voedt nu een single-point-positioning-oplossing (pvt, getoetst aan echte IGS-data — zie de rij GNSS / PNT). Daarnaast CCSDS-TDM (503) tracking-data-message parsen en uitvoeren (src/ccsds_tdm.rs). Geometrie-exports voor viewers en missieanalysehulpmiddelen: CZML, KML (Keyhole Markup Language), GeoJSON en STK-efemeride (--export, src/interop/), elk teruggelezen door een validator die is geschreven vanuit de specificatie van het formaat (tests/interop_formats.rs), een GeoJSON-route-import (--import-route), SigMF-opnamen (Signal Metadata Format) in en uit voor het spectrum kind, en tekst in RINEX-4-stijl / CSV voor het LEO-navigatiebericht (INTEROP.md, STANDARDS.md). Nog geen BeiDou-GEO, geen PPP met vaststelling van geheeltallige ambiguïteiten en geen kinematische RTK (statische float-PPP en RTK met korte basislijn op echte data bestaan wel, zie de rij GNSS / PNT), geen SPICE-schrijver en nog geen OPM/AEM (de OEM-lezer bestaat via het oem-interop kind, de OMM-schrijver in src/omm.rs, en een SPICE SPK/PCK-lezer in src/naif_kernel.rs) — P2 „aangrenzende domeinen ontsluiten via standaardformaten” |
| Ruimteweer / omgeving (iono/atmo/straling) | gedeeltelijk | space-weather kind (src/space_weather.rs): zonne-/geomagnetische indices (Kp↔ap IAGA-tabel (International Association of Geomagnetism and Aeronomy) met 28 stappen, dagelijkse Ap, gecentreerde 81-daagse F10.7a), exosferische temperatuur volgens Jacchia-71 en een activiteitsgedreven koppeling van de thermosferische dichtheid over een statische atmosfeer — MODELLED eerste orde, GEEN NRLMSISE-model voor absolute dichtheid. Ionosfeer: het Klobuchar-uitzendmodel (VALIDATED ten opzichte van RTKLIB) en een lezer voor IONEX-TEC-kaarten (IONosphere map EXchange format; TEC: total electron content) (src/ionex.rs, met unittests). Een echte CODE-wereldwijde ionosferische kaart (CODG1330.18I) is de gemeten onafhankelijke referentie van de geometry-free slant-TEC-rij (tests/geometry_free_tec_gim_oracle.rs), maar die test evalueert de kaart in de eigen fixture-generator, zodat de src/ionex.rs-lezer zelf nog niet is gecontroleerd aan een echt product; geen fysisch gebaseerd of door ruimteweer aangedreven ionosfeermodel; P2+ |
| Zwaartekrachtkaart / alt-PNT-navigatie | gedeeltelijk | src/gravimeter.rs: een meetmodel voor een koud-atoomgravimeter waarvan de witte-ruisvloer is afgeleid uit de ASD van de CAI-versnellingsmeter (σ = ASD/√τ), een volledig genormaliseerd sferisch-harmonisch zwaartekrachtanomaliveld van lage graad (getoetst aan de gesloten-vorm-Legendre-functies en een met de hand afgeleide anomalie met één term) plus synthetische mascons, en een particle filter voor zwaartekrachtkaart-matching (samengesteld uit mapmatch + particle_filter) dat een GPS-denied-spoor herstelt uit de anomaliereeks waar het doorheen vliegt. De GPS-denied-benchmark van 60 minuten (run_gps_denied_gravity_nav, scenarios/gps-denied-gravity-nav.toml) vliegt een storing van ~700 km / één uur waarin de inertiële oplossing wegdrijft tot ≈ 70 km, en een hiërarchische grof-naar-fijn-matcher met de deterministische, geseedde witte ruis van de gravimeter herstelt dit tot ≈ 145 m (< 500 m) — stabiel over ruisrealisaties heen, en aantoonbaar beperkt door verfijning (een enkel grof raster loopt vast op ~2 km). Daarnaast een volledig geomagnetisch hoofdveldmodel IGRF-14 (IGRF: International Geomagnetic Reference Field) (src/igrf.rs: het door IAGA Schmidt-genormaliseerde sferisch-harmonische veld tot graad/orde 13, 2025,0 + seculiere variatie, coëfficiënten machinaal gegenereerd uit het officiële igrf14coeffs.txt; getoetst aan de gesloten-vorm-gekantelde dipool, een eindige differentie van de scalaire potentiaal, en de bekende geomagnetische pool/sterkte) — het magnetische veld waarop een platform kan matchen voor navigatie met magnetische anomalieën. Daarnaast terreinreferentienavigatie (TERCOM/SITAN (TERCOM: terrain contour matching; SITAN: Sandia Inertial Terrain-Aided Navigation)) en de gecombineerde zwaartekracht+magnetisme+terrein-navigator (src/altpnt/terrain.rs): een zelfgeschreven SRTM-parser (Shuttle Radar Topography Mission) voor .hgt digitale hoogtemodellen (DEM) (16-bit met teken, big-endian, rijgewijs, noordelijke rij eerst, leeg -32768; getoetst aan de specificatie van het GDAL-SRTMHGT-stuurprogramma (Geospatial Data Abstraction Library; SRTMHGT: Shuttle Radar Topography Mission height-file format) en een gesloten-vorm-bilineair-middelpuntorakel), een radar-/baro-hoogtemetermodel en een run_terrain_nav-matcher die een GPS-denied-spoor herstelt uit het grondhoogteprofiel ten opzichte van het DEM, en run_combined_altpnt, dat drie scalaire veldkanalen per waypoint samenvoegt (Δg mGal · |B| nT korstanomalie · hoogte m) zodat de gezamenlijke posterior scherper is (lagere CRLB (Cramér–Rao lower bound)) dan elk afzonderlijk veld — begrensd tot < 500 m over de storing van 60 minuten en, in verwachting, niet slechter dan het beste afzonderlijke kanaal. Daarnaast sequentiële (recursieve) terreinreferentienavigatie — SITAN als lopend filter (src/altpnt/sequential.rs, run_sequential_trn): hetzelfde meetmodel hoogtemeter-versus-DEM, epoche voor epoche uitgevoerd door de particle_filter SIR-engine (sampling importance resampling) (voorspellen met de INS-toename + procesruis → herwegen met de terreinmatch → herbemonsteren bij degeneratie), zodat een tijdsvariërende INS-drift langs het spoor wordt gevolgd waar de batchmatcher slechts één constante offset herstelt — de recursieve schatting blijft begrensd en convergeert opnieuw (eindwaarde ≈ 70 m) terwijl de ongesteunde oplossing onbegrensd divergeert tot ≈ 5 km, met een fout per epoche die het onderscheidend vermogen van het terrein volgt en een gezondheidsmonitor voor de effectieve steekproefgrootte. Eerlijke reikwijdte: de kaart is bekend en vast — recursieve lokalisatie ten opzichte van een opgeslagen DEM (de lokalisatiehelft van terrein-SLAM (simultaneous localisation and mapping)); gezamenlijke kaartschatting is de afzonderlijke RBPF hieronder. Alle vier zijn nu in de scenario-engine kind= aangesloten (gravity-map, terrain-nav, combined-altpnt, terrain-slam) met een SVG-driftgrafiek (scenarios/terrain-nav.toml, scenarios/combined-altpnt.toml, scenarios/terrain-slam.toml). 0,36 (WP-10): de gravity-map-navigator neemt een optioneel echt referentieveld op ([reference]: meegeleverde EGM2008 tot graad 70, of een ICGEM-.gfc-bestand), waarvan de anomaliesynthese overeenkomt met de ICGEM Calculation Service tot ongeveer 1e-8 mGal (VALIDATED, xval/icgem-egm2008/); op dat veld van graad 70 eindigt de benchmark van 60 minuten op 3106 m, dus de drempel < 500 m is NOT MET (vooraf vastgelegd en voorspeld: graad 70 is te glad). Een optionele Monte Carlo van kaartfouten ([map_error_mc], scenarios/gravity-map-error-mc.toml) laat zien dat de synthetische fix van 144 m uitgaat van een exacte kaart (1 van 20 realisaties binnen 500 m bij een gecorreleerde fout van 2 mGal; exploratief). combined-altpnt neemt een optioneel EMAG2v3-magnetisch korstraster op ([magnetic_grid]; EMAG2 wordt opgehaald, niet meegeleverd, en er wordt geen navigatieresultaat mee beweerd). terrain-nav blijft bewust alleen-DEM: het is de matcher TERCOM/SITAN met één kanaal, en magnetisch matchen zit in combined-altpnt, dat terrein samenvoegt met het magnetische en het zwaartekrachtkanaal; een magnetisch kanaal in terrain-nav zou dat dupliceren, dus het auditpunt „EMAG2 in terrain-nav” wordt gedekt door de aansluiting in combined-altpnt (RM-16). De controles met echte SRTM draaien in CI op twee vastgelegde crops op volledige resolutie (knooppunt voor knooppunt gelijk aan GDAL 3.8.4, xval/srtm-ungate/). Gezamenlijke kaartschatting bestaat (run_sequential_trn_on_map, een RBPF in FastSLAM-stijl): in één passage wint hij 1,5 % ten opzichte van SITAN met bekende kaart op een foutieve kaart, en haalt zo zijn vooraf vastgelegde drempel van 10 % niet (xval/terrain-slam-rbpf/). Nog ontbrekend: een zwaartekrachtmodel van hoge graad in een navigatierun (vereist een nieuwe preregistratie), een magnetisch navigatieresultaat op een echt raster, en een SLAM-geval met herbezoek (loop closure). P3 |
| Terugkeer / EDL (entry, descent and landing), lanceeranalyse, EO/payload (EO: Earth observation) | gedeeltelijk | MODELLED geometrie van eerste orde via drie uitvoerbare kinds: reentry (src/reentry.rs, ballistische corridor van Allen-Eggers — piekvertraging, snelheden bij piek-g en piekverhitting, hoogte bij piek-g), launch-window (src/launch.rs, tweelichamen-lanceerazimut sin Az = cos i/cos lat, Δv voor vlakverandering, bonus van de rotatie van de lanceerplaats, dagelijkse mogelijkheden), en eo-coverage (src/eo_payload.rs, EO-geometrie met SMAD-ruimtedriehoek (Space Mission Analysis and Design) voor zwad / GSD (ground sample distance) / toegang / terugkeertijd). Geen 6-DoF EDL-/aerothermische simulatie, geen trajectoptimalisator, geen sensorradiometrie/MTF (MTF: modulation transfer function). P3 |
| Maan- / cislunaire PNT (LunaNet) | gedeeltelijk | src/lunar.rs: een maan-ARAIM-engine die de MHSS-kern van de aardzijde hergebruikt met LunaNet LNIS-parameters (LunaNet Interoperability Specification) (σ_URE ≈ 30 m, P_sat ≈ 1e-4), de reductie van het cislunaire MCI↔MCMF-stelsel (MCI: Moon-centred inertial; MCMF: Moon-centred, Moon-fixed) (mci_to_mcmf / mcmf_to_mci, een vereenvoudigd gemiddeld-rotatiemodel met de siderische snelheid) en selenografische breedte/lengte/hoogte (mcmf_to_selenographic), en een beschermingsniveaupassage voor de zuidpool (south_pole_hpl_pass) die de integriteitskloof kwantificeert — bij 30 m afstandsmeting is de HPL eindig maar overschrijdt hij een alarmgrens van 50 m voor oppervlakteoperaties. src/cr3bp.rs voegt de aarde–maan-CR3BP toe (circular restricted three-body problem) (dynamica in roterend stelsel + RK4-propagator + Jacobi-constante + de vijf Lagrange-punten, getoetst aan de gepubliceerde L1/L2/L3-waarden en de exacte L4/L5) — de driehoeklichamenkern die een echte NRHO (near-rectilinear halo orbit) nodig heeft — en een toestandsovergangsmatrix + single-shooting-differentiaalcorrector (cr3bp_jacobian, propagate_state_stm, differential_correct_halo) die echt periodieke L2-halo-/NRHO-banen oplevert: de STM is getoetst aan eindige differenties, gecorrigeerde halo's sluiten op zichzelf tot op machinenauwkeurigheid (Jacobi-behoudend), en het zaaien met de gepubliceerde apolune-toestand reproduceert de zuidelijke L2-9:2-NRHO (de Gateway-baan) met periode ≈ 6,57 d en perilune ≈ 3.250 km — consistent met de gepubliceerde ≈ 6,56 d / ≈ 3.370 km | De door differentiële correctie verkregen NRHO-beginvoorwaarden (ICs, initial conditions) zijn nu aangesloten, maar de gedenormaliseerde selenocentrische (MCI/MCMF) transformatie van de gecorrigeerde baan en familiecontinuatie zijn nog vervolgwerk; de DE440-hoofdasoriëntatie van de maan met echte fysische libratie bestaat (src/lunar_orientation.rs, uit de moon_pa_de440 PCK, gecontroleerd aan SPICE pxform in tests/lunar_pa_orientation_spice_oracle.rs), maar het oudere lunar::mci_to_mcmf-pad gebruikt nog steeds de gemiddelde rotatie zonder libratie of de precesserende pool; de NRHO is een CR3BP-oplossing (cirkelvormig, zonder Zon), niet getoetst aan een echte LANS/Gateway-efemeride (LANS: Lunar Augmented Navigation Service); een uitvoerbaar lunar-integrity-scenario-kind (scenarios/lunanet-araim.toml) maakt de zuidpoolpassage beschikbaar vanuit de CLI | selenocentrische transformatie + familiecontinuatie + SPICE/LunaNet-interface: P3 |
| Diepe ruimte / interplanetaire PNT (Mars, radiometrisch) | gedeeltelijk | Opgeleverd in v0.17.0. Een radiometrische navigatie-engine: iteratieve lichttijd + Shapiro-vertraging, tweeweg-/eenweg-/drieweg-Doppler en afstand (Moyer-tweebenig), coherente transponderomkeer, regeneratieve/PN-afstandsmeting (PN: pseudo-noise) (CCSDS 414), Δ-DOR (CCSDS 506), zonneplasma-/tropo-/iono-media (src/radiometric.rs); CCSDS-TDM (503) parsen en uitvoeren (src/ccsds_tdm.rs); een SRIF met gereduceerde dynamica (square-root information filter) met RTN-empirische versnellingen (radial, transverse, normal) + een 3-toestands boordklok + Mars-weerstand (src/deepspace_od.rs, clock_state.rs, mars_atmos.rs) die Mars-LMO (LMO: low Mars orbit) OD ≈ 0,2 m haalt in een synthetische gesloten lus; eenweg+tweeweg-fusie; een multi-body-dynamicakern (src/body.rs, Mars GMM-3 (GMM: Goddard Mars Model), IAU-Marsstelsel src/mars_frame.rs, een EphemerisProvider-naad src/ephem_provider.rs, tweedelige JD + TT↔TDB (TDB: Barycentric Dynamical Time)); en het relay-PNT-scenario mars-pnt (MARCONI areostationaire constellatie, src/mars_pnt.rs) + een end-to-end GSE-prestatiesimulator (src/gse_sim.rs). Simulatiegetoetst (covariantie/gesloten-lus-kwaliteitsmaat); Zon-centrale dynamica gecontroleerd tegen JPL (Jet Propulsion Laboratory) DE440 (137 m @ boog van 1 dag, xval/anise-mars-od). Ontbreekt: validatie met echte DSN/ESTRACK-trackingdata (ESTRACK: European Space Tracking network); Marszwaartekracht in het eigen stelsel (het GMM-3 d/o 120-veld wordt geladen uit de PDS SHADR-tabel, from_shadr, VALIDATED ten opzichte van pyshtools, en wordt gekoppeld via Body::with_gravity_field, maar wordt geëvalueerd in het IAU-stelsel in plaats van in zijn eigen Konopliv-2006-stelsel); efemeriden van DE-kwaliteit in de kern (alleen met kernel in xval). P3 |
| Zonnestelsel en PNT rond elk hemellichaam | gedeeltelijk | solar-system kind: posities, snelheden en fysische constanten van de Zon, de planeten, Pluto, de Maan en zeven grote manen op één epoche, met lichttijd tussen lichamen; de planeetposities (JPL Standish-elementen) en de lichttijd zijn VALIDATED ten opzichte van JPL Horizons (tests/solar_system_horizons_reference.rs), de manen, Pluto en de tabel van de buitenplaneten blijven MODELLED. body-pnt kind: een orbiter of lander rond elk gecatalogiseerd hemellichaam (Mars, de Maan, Europa, Ganymedes, Titan en de rest) die navigeert op eenweg-pseudoranges van een lokale Walker-constellatie plus een optionele tweeweg-afstand vanaf de Aarde — MODELLED. Geen planetaire efemeridenkernel in de kern (analytische elementen), body-pnt-relaybanen gebruiken alleen J2 (volledige Mars GMM-3 d/o 120- en Maan GRAIL GL0660B d/o 660-velden worden geladen uit PDS SHADR-tabellen en gekoppeld aan een Body voor de propagator, src/gravity_pds.rs). P3 |
| Campagnes / missiesamenstelling | gedeeltelijk | campaign kind (src/campaign.rs): bestaande kinds geketend op één gedeelde tijdlijn (bijvoorbeeld jamming, dan spoofing, dan holdover met een INS die doorvliegt, dan een integriteitsalarm, dan herstel), parametersweeps en geseedde Monte Carlo-ensembles over elk kind, en meerdere scenario's onder gedeelde omstandigheden met een gecombineerde samenvatting; elk getal wordt gelezen uit een echte run van het lidkind. Samenstellingsidentiteiten worden getest (tests/campaign_composition_reference.rs: een campagne met één fase reproduceert de zelfstandige run byte voor byte); MODELLED. Een [optimize]-sectie (raster of begrensde Nelder–Mead over één tot drie sleutels, één metriek, minimaliseren, maximaliseren of een doel halen) haalt haar vooraf vastgelegde drempels van gesloten vorm en brute kracht (tests/campaign_optimize_reference.rs); MODELLED, een lokale zoekopdracht zonder bewering over een globaal optimum, en geen gradiënt- of Bayesiaanse methode. P3 |
| Rapporten, animatie en uitvoer | gedeeltelijk | Elke run schrijft result.json, een grafiek en een rapport (report.html, report.json) waarvan de labels uit de verificatiematrix worden gelezen en waarvan de vastgelegde opdracht het resultaat byte voor byte reproduceert (tests/advanced_report_cli.rs); --animate (svg, html of frames) geeft een tijdreeks weer als animatie (src/animation.rs, ANIMATION.md); --export schrijft de uitwisselingsformaten uit de rij over interoperabiliteit. Dit zijn weergaven van de run, geen bewijs over de fysica. |
Ecosysteem en gereedheid (eerlijk bijgehouden, geen codemogelijkheid)#
| Gebied | Status | Opmerking |
|---|---|---|
| Taalbindingen en verpakking | gedeeltelijk | Rust + Python (abi3) + WASM op drie registers. Getypeerde oppervlakken (0,36, CAP-34): Python RunOutput met NumPy-accessors (array, columns, series) en stub-getypeerde ScenarioKind / ErrorKind / KindMeta; JavaScript run_typed (een getypeerd RunOutput-object) en scenario_kinds, met hetzelfde vocabulaire in de TypeScript-declaraties. Resultaatdocumenten blijven JSON per kind, alleen getypeerd door hun gedeelde envelop (units, versies) |
| Educatie / onboarding-UX (user experience) | gedeeltelijk | Browserplayground met geleide modus opgeleverd: scenario-adaptieve geleide schuifregelaars (web/studio/lib/guided.mjs, tot zes knoppen per scenario) en een interactieve geleide rondleiding (web/studio/lib/tour.mjs, opnieuw af te spelen vanuit de playground). Elke run krijgt ook een betekeniszin in gewone taal en zijn kerncijfers, gelezen uit het resultaatdocument (web/studio/lib/meaning.mjs, met sjablonen per kind in meaning-kinds.mjs; een kind zonder sjabloon krijgt zijn eerste kopcijfer eenvoudig vermeld). Ontbreekt: geleide uitleg per cijfer buiten die zin (de GLOSSARY.md in gewone taal dekt ze) |
| Gemeenschap / bestuur | gedeeltelijk | Bestuursopzet aanwezig — GOVERNANCE.md (benevolent-maintainer-model + technische drempel + grens tussen open en gesloten), CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md, issue-/PR-sjablonen (PR: pull request), FUNDING.yml, dependabot. Enkele oprichter; een actieve externe gemeenschap (bijdragers, citaties) hangt af van mensen en tijd en is nog in opbouw (outreach in afwachting van beoordeling) |
| Financiering en gereedheid voor inkoop | geen | TRL ~3; nog geen agentschapscitaties/-contracten (zie strategienotities) |
Bijgewerkt 2026-10-29 voor engine 0.40.0 (92 scenariosoorten, uit kshana kinds --json; nieuw in 0.40.0: mission-thread, lunar-orbit-rendezvous, lunar-descent, lunar-surface en lunar-ascent). 2026-10-22: engine 0.39.0, 87 soorten, geen nieuwe soort. 2026-10-19: engine 0.38.0, 87 soorten (nieuw in 0.38.0: holdover-test, gnss-ssv en lunar-infrastructure). 2026-10-18: 84 soorten (nieuw in 0,37: optical-atmosphere). 2026-10-16: 83 soorten (nieuw in 0,36: acm-link, aocs, ascent-losses, contact-schedule, entry-heating, eo-radiometry, lunar-station-coverage en time-transfer-budget). 2026-10-10: engine 0.35.0, 75 soorten, geen nieuwe soort. 2026-10-09 en 2026-10-08: eerdere revisies. 2026-10-04: de rij Nav-signal vermeldt de IQ-laag van 0.31.0. 2026-09-29: rijen toegevoegd voor LEO-PNT, spectrum, PNT voor het zonnestelsel en voor elk hemellichaam, campagne en uitvoer. Eerder: afgestemd op de grote audit van 2026-06-02 met zijn capaciteitsmatrix van 27 rijen; rij voor PNT in de diepe ruimte en op Mars toegevoegd in v0.17.0. Toevoegingen voor kwantum-PNT (klokholdover zonder GNSS src/holdover.rs, samengesteld budget voor kwantum-traagheidsnavigatie met koppelnavigatie QuantumNavBudget, ontwerpafweging voor rangeringscodes CodeFamily, machinaal gecontroleerde verificatiematrix src/verification.rs) verwerkt in de rijen Timing, Quantum-PNT-sensor, Nav-signal en V&V, elk gelabeld als gevalideerd of gemodelleerd volgens zijn werkelijke onafhankelijke referentie.
Demonstratietoevoegingen voor FutureNAV (berekend uit een model, intern onderling gecontroleerd — niet extern getoetst): (1) Evaluatietestbed voor detectie van RF-storingen met machine learning src/impairment_eval.rs — een gelabeld synthetisch (parametergebaseerd, niet IQ) storingscorpus + een detectoragnostische ROC/AUC/confusie/Pfa-Pmd-harness (ROC: receiver operating characteristic; AUC: area under the curve) met lekbeveiliging en gestratificeerde splitsing; de meegeleverde detectoren zijn transparante baselines van gepubliceerde methoden, geen SOTA (state of the art), en een hoge AUC hier toont de pijplijn aan, niet de prestaties in het veld. (2) Afwegingsengine kwantum versus klassiek PNT src/quantum_trade.rs — inname van gemeten ADEV (NNLS-fit (non-negative least squares) van σ_y²(τ)=q_wf/τ + q_rw·τ/3 + q_drift·τ³/20, met round trip gecontroleerd tegen q_from_allan), een tabel met timing-/inertiële holdover-voordelen die de kanttekening over de veronderstelde ondergrens op het artefact meedraagt, en een omhullende voor GNSS-denied weerbaarheid versus tijd; hij kwantificeert het kwantumvoordeel van een partner en valideert nooit het apparaat. Beide adversarieel beoordeeld (een fout in de τ²→τ³-driftbasis en een onjuiste bewering „onbeperkt begrensd” over weerbaarheid zijn gevonden en hersteld). 911 lib-tests ten tijde van die toevoeging, fmt+clippy schoon.
Toevoeging op het gebied van uitwisseling / standaardformaten (src/interchange.rs): het Kshana Interchange Format (KIF) — een neutrale, geversioneerde, zelfbeschrijvende Envelope die elk artefact (scenario, resultaat, afwegingsstudie) omhult met een herkenbare format-tag, de enige bron van waarheid SCHEMA_VERSION (de schemaversie, voorheen op 15 plaatsen als literal gekopieerd, is nu ondergebracht in één constante waar de hele crate naar verwijst), de producerende engine_version, en een expliciet, getest compatibiliteitscontract (compatibility(): dezelfde major / gelijke of oudere minor is leesbaar onder de discipline van additieve velden; een nieuwere minor of een andere major wordt aan de grens geweigerd door Envelope::parse in plaats van stilzwijgend verkeerd geparst). Round-trip-baar (wrap→to_json→parse→payload_as::<T>()) voor elke Deserialize-payload; bewust zonder tijdstempel om de bit-voor-bit-reproduceerbaarheid van Kshana te behouden. Gedocumenteerd in SCHEMA.md zodat het formaat citeerbaar is, en niet slechts wordt uitgezonden — de positionering „standaard in wording” van open-core. 923 lib-tests ten tijde van die toevoeging, fmt+clippy schoon.
Toevoegingen aan de FutureNAV-dominantiebuild (berekend uit een model, intern onderling gecontroleerd — niet extern getoetst): (1) Frugale laag voor kosten per dekking / ROI (return on investment) src/frugal.rs — een laag voor batenframing bovenop de engine voor constellatiedimensionering (walker) die kosten per procentpunt dekking en dekking per euro ROI ten opzichte van een basislijn rapporteert; de kosten per satelliet zijn een door de aanroeper aangeleverd, van bronnen voorzien bereik laag/nominaal/hoog (geen verzonnen puntprijzen), dus de uitvoer bestaat uit bereiken, niet uit schijnbaar exacte punten; een uit een model berekende economische framing van een uit een model berekend dekkingscijfer, geen offerte. (2) Afbeelding van de integriteitsimpact van gemiste detecties src/integrity_impact.rs — beeldt een onopgemerkte door spoofing/jamming veroorzaakte positiebias af op de effectieve fout → Stanford-gebied (beschikbaar / systeem niet beschikbaar / misleidend / gevaarlijk misleidend) ten opzichte van contextspecifieke alarmgrenzen (open lucht versus stedelijk, HAL versus VAL), samengesteld uit de extern verankerde RAIM classify_stanford; de brug van gemiste detectie naar alarmgrens is uit een model berekend, geen gecertificeerde integriteitstoewijzing. Beide zijn opgenomen in de machinaal gecontroleerde verificatiematrix (src/verification.rs, de invariant Validated⇒ExternalDataset blijft intact; het actuele aantal rijen staat in de gegenereerde kop van VERIFICATION-MATRIX.md). De kruisvalidatie / lekbeveiliging / parametergestratificeerde splitsing voor de harness voor AI-evaluatie was al opgeleverd in src/impairment_eval.rs (stratified_split, Split::has_leakage). 951 lib-tests ten tijde van die toevoeging, fmt+clippy schoon.
Toevoegingen aan de FutureNAV-studie naar de optimismekloof (berekend uit een model, intern gecontroleerd tegen gesloten vormen — niet extern getoetst, geen bewering over sim-naar-veld): een gecontroleerde synthetische studie van de optimismekloof in AUC tussen in-distributie en out-of-distributie voor detectoren van RF-storingen. (1) Geleerde detectoren src/impairment_ml.rs — een vaste kenmerkenafbeelding + op de training gefitte standaardiseerder, een baseline met logistische regressie (deterministische full-batch gradiëntdaling) en een MLP met één verborgen laag (multilayer perceptron; geseedde backprop-SGD (stochastic gradient descent)) achter dezelfde ImpairmentDetector-trait die de baselines van gepubliceerde methoden gebruiken. (2) Met de hand afgeleide statistieken src/eval_stats.rs — percentiel-bootstrap-betrouwbaarheidsintervallen (BI's), DeLong-AUC-variantie/BI, Spearman ρ en ridge-regressie, elk gecontroleerd tegen een gesloten vorm (binormale AUC Φ(d′/√2), een met de hand uitgewerkte DeLong-variantie, een leerboek-ρ met gelijke rangen, exacte OLS-herstel (ordinary least squares)). (3) De studie src/impairment_study.rs — AUC per klasse, de schaalwettrend per (detector,class) (kloof versus 1−ernst) en een ridge-kloofvoorspeller met alleen ID die de optimismekloof schat uit diagnostiek binnen de distributie alleen, beoordeeld leave-one-detector-out en leave-one-class-out tegen een baseline die het gemiddelde voorspelt. Artefact met één opdracht via cargo run --release --example optimism_study. Elk getal is een AUC over uit een model afgeleide labels op een synthetisch, op parameters gebaseerd corpus; de kloof is een synthetisch→synthetische verschuiving in ernst, nooit een detectieresultaat uit het veld. Opgenomen in de machinaal gecontroleerde verificatiematrix (src/verification.rs, de invariant Validated⇒ExternalDataset blijft intact).