Funktionskort — hvad Kshana gør, delvis gør og ikke gør
Kshana er en evidensmotor for PNT-ydeevne og -robusthed (positionering, navigation og tidssynkronisering), ikke et komplet værktøjssæt til rumsystemer. Den fører an med tidssynkronisering og holdover, sit bedst validerede domæne (se POSITIONING.md). Denne side er det ærlige omfangskort: for hvert funktionsområde, som en indkøbs- eller forskningsgennemgang kunne undersøge, angiver den status, hvad der faktisk findes i koden, hvad der mangler, og hvor det står på køreplanen. Status er en af:
- fuld — implementeret fra ende til anden og valideret til et niveau, der er angivet i rækken;
- delvis — en reel, men begrænset model (omfanget er udtrykkeligt afgrænset nedenfor);
- ingen — ikke modelleret (uden for omfanget i dag).
Det er de eneste tre værdier, statuskolonnen kan have. De graderer funktionsmodenhed, som er en anden akse end graden VALIDATED / MODELLED / PARTNER i VERIFICATION-MATRIX.md — den graderer evidensens proveniens, række for række, og kontrolleres maskinelt ud fra src/verification.rs.
Intet her er et ønske: "delvis" betyder aldrig "næsten færdig", det betyder "så meget og ikke mere". Se også VALIDATION.md, INTEGRITY.md, QUANTUM-MODELS.md og registret over lukkede overdrivelser CLAIMS-VS-REALITY.md (hver historisk overdrivelse, hvordan den blev løst, og en CI-vagt (continuous integration), der holder den løst).
Kerne-PNT (hvor Kshana faktisk spiller)#
| Funktion | Status | Hvad der findes | Hvad der mangler | Køreplan |
|---|---|---|---|---|
| Banebestemmelse og propagering | delvis | SGP4/SDP4 uden afhængigheder (SGP4: Simplified General Perturbations 4; SDP4: Simplified Deep-space Perturbations 4), valideret til 4,12 mm mod alle 666 AIAA (American Institute of Aeronautics and Astronautics) 2006-6753-vektorer (position og hastighed, den sidste til 1 mm/s); analytisk Kepler + J2-sekulær; inertihastighed udstillet og gjort tilgængelig fra ende til anden gennem det kørbare ephemeris-scenarie (src/ephemeris.rs, tilgængeligt fra CLI/Python/WASM/MCP (CLI: kommandolinjegrænseflade; WASM: WebAssembly; MCP: Model Context Protocol)) — pr. trin udsender den tilstanden i TEME (true equator, mean equinox) og GCRS (Geocentric Celestial Reference System) (position + hastighed), positionen i ITRF/ECEF (ITRF: International Terrestrial Reference Frame; ECEF: Earth-centred, Earth-fixed), WGS-84-sporet på jorden under satellitten (WGS: World Geodetic System) (bredde/længde/højde) og stationens azimut/elevation/afstand + afstandsrate/Doppler (den radiale afstandsrate stemmer med den sande positionsafledede uden JD-støj (JD: Julian date) til 6e-9 m/s) — og gennem CCSDS-eksporten (Consultative Committee for Space Data Systems) af efemeriden med hastighed i OEM (Orbit Ephemeris Message) (--export-oem). En numerisk (Cowell) propagator (src/propagator.rs) integrerer en konfigurerbar kraftmodel med zonal gravitation — det fulde zonale jordfelt til og med grad 6 (forces::zonal_accel, de publicerede EGM-96-koefficienter (EGM: Earth Gravitational Model) J2..J6) — med valg af adaptiv driver — RK4-stepdobling (fjerde ordens Runge–Kutta) eller det indlejrede par Dormand–Prince RK5(4) (integrate_dopri / propagate_dopri, et billigere indlejret fejlestimat med 7 evalueringer, der passerer den samme Kepler-gate og stemmer med RK4-vejen til <1 m på en J2..J6-bane) — fastlåst mod analytisk sandhed, stærkere end en numerisk krydskontrol mellem værktøjer: den uforstyrrede bane gengiver den nøjagtige Kepler-løsning med universelle variable til under en meter over 24 h (en strammere gate end milepælens "mod reference < 10 m"), energi + impulsmoment bevares til ~1e-9 relativt, J2-knuderegressionen stemmer med den lukkede sekulære rate til første ordens teori, den zonale acceleration er bekræftet at være den nøjagtige gradient af sit eget potentiale (og at reducere til den J2-lukkede form, der er valideret mod 666 vektorer), og solve_kepler_checked returnerer Err frem for et forkert svar, når Newton ikke konvergerer (f.eks. nær perigæum, e = 0,999). Tyngdekraft fra tredje legeme (Sol og Måne) styret af epoke er koblet ind i den tidsvarierende integrator (ForceModel::third_body / accel_at, med de lavpræcise Sol- og Måneefemerider fra Montenbruck & Gill i src/ephem.rs — ingen DE/SPK-kerne (DE: Development Ephemeris; SPK: planetary ephemeris kernel) nødvendig): hver evaluering af højresiden (RHS) sampler forstyrrernes positioner ved den fremførte epoke epoch_jd_tt + t/86400, så Solen og Månen bevæger sig langs deres baner under integrationen. Forstyrrelsen er bekræftet som den nøjagtige gradient af sit forstyrrende potentiale, forsvinder i geocentret og har lærebogens størrelser for LEO (lav jordbane) (~5e-7 m/s² Sol, ~1.1e-6 m/s² Måne); Solefemeriden rammer håndafledte J2000-ankre (perihelafstand, ~−23° solhvervsdeklination, ~1°/dag bevægelse) og Måneefemeriden sin perigæum-/apogæumomhylning, ~384.400 km middelafstand, grænsen ≤ 5,3° for inklination og tilbagevenden af retning efter en sideurisk måned; og integrationens kobling er bevist bit-nøjagtig (RHS-leddet er lig med third_body_accel ved den samplede position ved t = 0 og t = 1 dag), mens et epokeskift på et kvart år giver en anden bane. Solstrålingstryk (SRP) kører på den samme epokestyrede RHS (forces::srp_accel / ForceModel::solar_radiation): kanonkuglemodellen ν·P☉·cᵣ·(A/m)·(AU/d)²·d̂ med en formørkelsesfaktor for umbra+penumbra fra forces::conical_shadow (glat ν ∈ [0.1], bekræftet til at aftage gennem en monoton penumbra, der rækker ud over umbra-cylinderen), bekræftet mod lærebogens tryk ved 1 AU (astronomical unit) (≈ 4.54e-6 N/m²), LEO-størrelsen ~1.36e-7 m/s², der skubber væk fra Solen, aftagning med kvadratet af afstanden (fordobles afstanden til Solen, fjerdedeles den), en acceleration, der er nøjagtigt nul i umbra-cylinderen, og en propageret forskydning, der skalerer ~lineært med A/m. Atmosfærisk modstand er det første hastighedsafhængige led (forces::drag_accel / ForceModel::drag + den nye RHS accel_rv med hastighedsoverdragelse): kvadratisk modstand −½·ρ(h)·(C_D·A/m)·|v_rel|·v_rel mod den medroterende atmosfære v_rel = v − ωₑ ẑ × r, hvor ρ er den stykvis eksponentielle forces::atmospheric_density fra Vallado — bekræftet ved ankeret på 1,225 kg/m³ ved havets overflade, et strengt monotont LEO-fald med en fysisk skalahøjde på ~58 km, modstandens størrelse på ~2e-6 m/s², der modvirker den relative hastighed, og dissipationssignaturen (en bane på 300 km mister specifik energi monotont, og dens store halvakse aftager afgrænset med ~km/dag, hvor vakuumbanen bevarer energien). Den post-newtonske (Schwarzschild) relativistiske korrektion er det andet hastighedsafhængige led (forces::relativistic_accel / ForceModel::relativity): IERS-formen (International Earth Rotation and Reference Systems Service) β = γ = 1 a = (μ/c²r³)·{[4μ/r − v²]·r + 4(r·v)·v}, den ledende drivkraft bag den relativistiske perigæumforskydning — bekræftet mod dens lukkede værdi for cirkulær bane 3μ²/(c²r³)·r̂ (radial, udad), dens lærebogsforhold til to-legeme for LEO på ≈1.9e-9, den håndforenklede form med radial hastighed og den konservative signatur (den forstyrrer banen, men holder den store halvakse inden for under en meter/dag, det strukturelle modsatte af modstand). Leddet Lense–Thirring (frame-dragging) (forces::lense_thirring_accel / ForceModel::lense_thirring, IERS 2010 §10) er den gravitomagnetiske korrektion ud over Schwarzschild — valgfri, ~1–2 størrelsesordener under den ved LEO, bekræftet til at forsvinde uden jordrotation og til at ligge under Schwarzschild-størrelsen. Banebestemmelse (OD, src/orbit_determination.rs) lukker kredsløbet fra observationer tilbage til en tilstand: en Gauss–Newton-batch-korrektor (src/batch_ls.rs) driver en kandidat [r, v] hen på den bedste tilpasning til jordstationsafstande propageret over buen (under en meter / mm·s⁻¹ ud fra støjfri afstande; ~2 m med et residual efter tilpasning på støjgulvet på 5 m — signaturen på en konsistent mindste kvadraters tilpasning), med en sekventiel rekursiv variant på det unscentede filter |
Standardkraftmodellen for Cowell har kun det zonale felt: det højgradede EGM2008-tesserale felt (Earth Gravitational Model 2008) (src/gravity_sh.rs, grad/orden 70, med en indlæser from_gfc til ICGEM-filer (International Centre for Global Earth Models)) indgår kun i motoren til præcis efemeridetilpasning (src/precise_od.rs; se AGENCY-ORBIT-VALIDATION.md); densiteten for modstand er den statiske stykvis eksponentielle fra Vallado (uafhængig af solaktivitet), ikke NRLMSISE-00 (Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Extended atmosfæremodel; klausulen om termosfærisk densitet på < 5 %); SRP er kanonkuglemodellen med en geometrisk konisk umbra+penumbra-skygge (ingen randformørkelse fra Solen, ingen skygge fra en afplattet Jord, ingen satellitform eller attitude); relativitet dækker leddene Schwarzschild og Lense–Thirring (frame-dragging), begge valgfri, men uden tuning af PPN-parametre (PPN: parametrised post-Newtonian); tredje legeme/SRP bruger de lavpræcise efemerider (~0,005° Sol, ~0,3° Måne), ikke nøjagtighed på niveau med DE/SPK-kerner. De konservative niveauer i kraftmodellen (to-legeme → J2–J6 → Sol/Måne → SRP) er VALIDATED mod Orekit 12,2 (værst 0,08 m over 24 h, tests/numerical_cowell_propagator_reference.rs), og batch-/sekventiel banebestemmelse er VALIDATED mod estimatorerne i Orekit 12,2 (tests/batch_sequential_orbit_determination_reference.rs); niveauet for modstand og den absolutte nøjagtighed af efemeride- og densitetsinput forbliver MODELLED; der er ingen krydskontrol mod GMAT (General Mission Analysis Tool) |
tesseral gravitation i standardmodellen for Cowell + modstand fra NRLMSISE-00 + randformørkelse fra Solen + efemeride på DE-niveau + krydsvalidering mod GMAT + OD-målinger af afstandsrate/vinkel og analytisk STM (state-transition matrix): P2+ |
| Tidssystemer | delvis | src/timescales.rs: API med Julian date (civil↔JD, MJD (modified Julian date)), UTC↔TAI (UTC: Coordinated Universal Time; TAI: International Atomic Time) via den fulde IERS-tabel over skudsekunder (10→37 s, 1972→2017), TAI→TT (TT: Terrestrial Time), UT1 (Universal Time 1, jordrotationstid) via DUT1 (jordrotationstiden minus Coordinated Universal Time) og IAU-2000 (IAU: International Astronomical Union) Earth Rotation Angle (ERA, valideret bit for bit mod SOFA-vektoren (Standards of Fundamental Astronomy) eraEra00). SGP4-vejens approksimation DUT1≈0 er udtrykkeligt dokumenteret ved kaldestedet gstime (en GMST-fejl (Greenwich mean sidereal time) på ≤ ~13″, godt inden for SGP4s egen modelfejl), og scenariet ephemeris tager eksplicitte knapper dut1_s/xp_arcsec/yp_arcsec eller en indlejret ægte IERS-serie finals2000A (eop_finals2000a / kshana --eop <file>, interpoleret gennem den samme EopSeries, som precise_od bruger), så sporet på jorden reduceres gennem ægte IERS UT1 / polbevægelse og ikke blot de nominelle skalarer |
Banerne om Jorden bruger stadig en JD med enkelt f64 (~50 µs opløsning omkring 2020 — det er dette, ikke algoritmen, der er gulvet for en krydskontrol med finite differenser); en todelt JD findes (timescales::TwoPartJd, brugt af stierne for radiometri, CCSDS-TDM, simulator til jordsegmentet og solsystemet, og src/jd2.rs Jd2) og er ført gennem SGP4 (Sgp4::propagate_at(Jd2)), overflyvningsprædiktion, geometri og Walker-designs (valideret mod SOFA, tests/jd2_sofa_time_oracle.rs) og gennem jordrotation på banevejen (jd2::gmst82, cio::gcrs_to_itrs_matrix_jd2, orbit::Propagator::position_in_frame_jd2, efemeridescenariets valgfri two_part_jd; VALIDATED mod ERFA, tests/jd2_earth_rotation_erfa_oracle.rs), med tabsfri konverteringer mellem Jd2 og TwoPartJd; standardbanerne om Jorden beholder datoen med enkelt f64, medmindre two_part_jd er sat, og epoken i Cowells kraftmodel forbliver med vilje enkelt f64 (dens analytiske Sol-/Månefejl overstiger en afrunding på 40 µs langt); UTC med gummisekunder før 1972 (1960–1971) er modelleret på den todelte vej (jd2, timescales::tai_minus_utc_on_date, VALIDATED mod ERFA, tests/jd2_pre1972_sofa_oracle.rs), men f64 timescales::tai_minus_utc med enkelt præcision klemmer stadig til 10 s før 1972; en prædiktor for jordorientering med mindste kvadrater + autoregression (src/eop_ls_ar.rs, sammenlignet med IERS Bulletin A som et fund) kan nu forlænge en EOP-serie ud over dens sidste række (EopSeries::with_ls_ar_prediction, valgfri; tests/eop_prediction_beyond_table.rs), så rammeargumenter efter tabellen følger prognosen i stedet for at klemme; standardserien klemmer stadig, og ingen scenarienøgle slår prædiktionen til endnu |
færdig (fundament); todelt JD gennem jordrotation på banevejen: færdig (valgfri i efemeridescenariet) ; EOP-prædiktion ud over tabellen: færdig (bibliotek, valgfri); UTC før 1972 på den todelte vej: færdig |
| Referencesystemer | fuld | src/frames.rs: GMST-baseret TEME↔ECEF, WGS-84 geodætisk↔ECEF (eksakt + iterativ invers, maskinpræcision i alle højder) og en geodætisk jordstationsobservatør (azimut/elevation/afstand); IAU 2006-præcession (src/precession.rs: Fukushima–Williams-vinklerne (γ̄, φ̄, ψ̄, ε̄_A) + bias-præcessionsmatricen mellem GCRS og mean-of-date); IAU 2000A/2000B-nutation + den fulde kæde TEME→GCRS (src/nutation.rs: den fulde IAU 2000A-serie — 678 luni-solare + 687 planetariske led, nutation_iau2000a / nutation_matrix_2000a, tabellen maskingenereret ud fra ERFA-referencen (Essential Routines for Fundamental Astronomy) nut00a med tools/gen_nut00a.py — ved siden af 2000B-serien med 77 led, Delaunay-argumenter, SOFA-nutationsmatricen iauNumat, jævndøgnsligningen og teme_to_gcrs(r, v, jd_tt) via TEME→TOD→MOD→GCRS (true of date, mean of date) — begge serier valideret bit for bit mod SOFA/ERFA-referencevektorerne nut00a/nut00b, Δψ/Δε til 1e-13 rad); IERS-polbevægelse PEF→ITRF (pseudo-Earth-fixed til terrestrisk) (teme_to_itrf / polar_motion_matrix, SOFA iauPom00, x_p/y_p leveret af kalderen — en effekt på ti meter ved banens radius); CIO-baseret (CIO: Celestial Intermediate Origin) IAU 2006/2000A-reduktion (src/cio.rs: den ækvinoksfrie kæde GCRS↔CIRS↔ITRS (CIRS: Celestial Intermediate Reference System; ITRS: International Terrestrial Reference System) — CIP (Celestial Intermediate Pole) X,Y fra 2006/2000A NPB-matricen (nutation-precession-bias), CIO-locator-serien s med 66 led, gcrs_to_cirs_matrix, jordrotationsvinklen og den fulde gcrs_to_itrs_matrix — valideret bit for bit mod SOFA-vektorerne eraXys06a/eraC2ixys/eraEra00). Transformationerne fra ende til anden er nu fastlåst til et publiceret autoritativt gennemregnet eksempel og ikke blot til intern konsistens: mod Vallado-tilstanden fra AIAA 2006-6753 (2004-04-06, med dens IERS EOP (Earth orientation parameters); tests/frame_reference_vectors.rs) stemmer TEME→PEF til 0,1 mm, TEME→ITRF til 0,6 mm, den fulde CIO GCRS→ITRS til 4 mm, og ECEF→geodætisk gengiver Vallados eksempel 3-3 bredde/længde/højde til det sidste publicerede ciffer. Hele kæden er tilgængelig for brugeren via scenariet ephemeris (position i ITRF/ECEF + WGS-84-spor på jorden under satellitten pr. trin) |
Standardkæden TEME→GCRS bruger 2000B (~1 mas, under dens egen forenkling af rotationen af hastighedsrammen); vejen med en nøjagtighed på < 0,1 mas, den fulde 2000A, er tilgængelig via nutation_matrix_2000a, og den stringente CIO (X, Y, s)-reduktion er tilgængelig via src/cio.rs. Den ældre TEME-vej bruger IAU-1982 GMST (SGP4-konventionen). Den uafhængige numeriske krydskontrol mod ANISE/SPICE (ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — et rent Rust-værktøjssæt til planetgeometri; SPICE: Spacecraft, Planet, Instrument, C-matrix, Events) er leveret (xval/anise-frames/: gcrs_to_itrs_matrix mod ANISEs GCRF→ITRF93 (GCRF: Geocentric Celestial Reference Frame; ITRF93: International Terrestrial Reference Frame 1993) over otte epoker 2020–2023, ≤ 0,86 m på jorden, ≤ 3,6 m ved GNSS-bane (global navigation satellite system)); det er en selvstændig crate uden for standardgaterne i CI. precession_matrix og teme_to_gcrs_matrix er også kontrolleret direkte mod ERFA ved 40 epoker 1950–2100, og CIO-kæden tager IERS' celestiale poloffsets dX, dY (cio::gcrs_to_cirs_matrix_with_offsets; tests/frames_erfa_vector_oracle.rs); standardvejene ser stadig bort fra dX, dY. Verifikationsmatricen graderer denne række VALIDATED (SOFA/ERFA-vektorer + Vallado) |
TEME↔ECEF + geodætisk: færdig (verificeret mod Vallado); inertial TEME→GCRS: færdig (2000B + fuld 2000A); polbevægelse ITRF: færdig (verificeret mod Vallado); CIO GCRS→ITRS: færdig (verificeret mod Vallado) |
| Tidssynkronisering og frekvens | delvis | Eksakt Kalman-ur med to tilstande og van-Loan-Q (NIST (National Institute of Standards and Technology) SP (Special Publication) 1065) med en Joseph-stabiliseret kovariansopdatering (positivt semidefinit ved ekstreme Q/R-forhold, Cholesky-kontrolleret i CI) og en sundhedsmonitor for filterkonsistens (src/filter_health.rs): en Monte Carlo-vurdering af NIS/NEES (NIS: normaliseret innovation i anden; NEES: normaliseret estimationsfejl i anden) mod χ²-konfidensbånd, vist som filter_health i resultat-JSON (JavaScript Object Notation) og som et grønt/gult kort på legepladsen, med en sweep-test af Q/R-uoverensstemmelse, der beviser, at monitoren vipper til inkonsistent, når tuningen er forkert (Bar-Shalom §5,4); overlappende estimatorer for ADEV (Allan-deviation), MDEV (modificeret Allan-deviation), TDEV (tidsdeviation), HDEV (Hadamard-deviation) + χ²-baserede konfidensintervaller med støjtypespecifikke effektive frihedsgrader (lukkede former fra NIST SP 1065 tabel 5 for WPM/FPM/WFM/FFM/RWFM (WPM: hvid fasemodulation; FPM: flicker-fasemodulation; WFM: hvid frekvensmodulation; FFM: flicker-frekvensmodulation; RWFM: random-walk-frekvensmodulation), det sæt Stable32 bruger; den eksporterede ADEV-kurve identificerer registreringens potenslovstype ud fra dens MDEV-hældning og knytter et bånd på 95 % til hvert τ — src/allan.rs), numerisk valideret mod Stable32-referencedeviationerne for det kanoniske NBS14-datasæt til 1e-4 (tests/allan_reference.rs), og edf krydskontrolleret af et Monte Carlo-ensemble med hvid FM (FM: frekvensmodulation); ærligt gitterafgrænset holdover-FoM (figure of merit); ur-ensembler; tovejs tidsoverførselsmodel med annullering af gensidig forsinkelse + et ikke-gensidigt gulv for differentiel forsinkelse med random-walk-FM (src/timetransfer.rs, Allan-signatur rapporteret); en kalkulator for urholdover uden GNSS (src/holdover.rs), der udstiller den lukkede van-Loan-vækst i fejl under frit løb σ_x²(t) = q_wf·t + q_rw·t³/3 + q_drift·t⁵/20 som en brugerrettet holdover-til-tærskel-inversion (hvor længe et ur løber frit, før dets tidsfejl overstiger budgettet), med repræsentative kvanteurklasser (optisk gitter/fanget ion/kviksølvion) — modelleret, ikke eksternt valideret: krydskontrolleret mod rekursionen af kovariansen clock_state i flere trin, og ærligt angivet, at for et meget stabilt ur er holdover til en stram tærskel styret af det antagne røde støjgulv ved lang tau, ikke den citerede ADEV (brug målte gulve for et holdbart tal). Et betinget Timing Protection Level (src/tpl.rs) bygger på de samme holdover-mekanismer for spoofing-tilfældet: en grænse for den uopdagede tidsfejl givet en uafhængig krydskontrol — et k-σ-monitorgulv plus van-Loan-variansen for frit løb over detektionslatensen plus en CUSUM-tid til alarm (cumulative sum) — kalibreret på en ægte optaget spoof (JammerTest 2024, Zenodo 15911589) og reproducerbar via cargo run --example tpl_jammertest. Modelleret sammensætning, betinget af detektion: der findes ingen endelig ubetinget grænse (en langsom nok rampe undgår en enkelt ur-støttet monitor). Maximum time interval error (MTIE) og TDEV er VALIDATED mod allantools (tests/mtie_reference.rs, tests/mdev_tdev_reference.rs), og inversionen af variansen under frit løb for holdover er VALIDATED mod SciPy (tests/gnss_denied_clock_holdover_reference.rs); typen telecom-timing anvender dem på ITU-T-maskerne (International Telecommunication Union Telecommunication Standardization Sector) G.8272 / G.8272.1 / G.8273.2 / G.8271.1 — se TELECOM-TIMING.md |
fuld edf med Greenhall-algoritmen (de simple lukkede former er bias-afgrænsede, men grovere end den eksakte BasicSum) og identifikation af blandinger af flere støjtyper | eksakt edf + identifikation af blandet støj: P2 |
| GNSS / PNT-behandling | delvis | En pseudoafstandssimulering i måledomænet (typen gnss-sim, src/gnss_sim.rs): pr. synlig satellit syntetiserer den ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath og L1-Doppler, med den enkeltfrekvente Klobuchar-ionosfære (IS-GPS-200 (IS: Interface Specification; GPS: Global Positioning System) §20.3.3.5.2.5) og den zenitale Saastamoinen-troposfære (Davis 1985) projiceret af mappingfunktionen fra Niell (1996) — hver model enhedstestet mod håndberegning — og leverer derefter residualerne til snapshot-RAIM (receiver autonomous integrity monitoring) for HPL/VPL pr. epoke (HPL: horisontalt beskyttelsesniveau; VPL: vertikalt beskyttelsesniveau) og udsender et array gnss_measurements[] (pseudoafstand, Doppler, C/N₀, iono-/tropokorrektioner pr. SV (space vehicle, altså en satellit)). Dertil DOP/tilgængelighed (DOP: dilution of precision) og solution-separation-RAIM fra baner; RINEX (Receiver Independent Exchange Format) 3 multi-GNSS NAV-indlæsning (GPS/Galileo/QZSS/BeiDou (QZSS: Japans Quasi-Zenith Satellite System) via IS-GPS-200, GLONASS (Ruslands Global Navigation Satellite System) tilstandsvektor) parset → SV ECEF-position og urbias, kan bruges som førsteklasses kilde til Propagator OG som en indlejret konstellationsblok rinex (scenarios/orbit-rinex.toml); RINEX 3 OBSERVATION-indlæsning (observationslayoutet 4,00 forventes at kunne parses, men ingen 4,00-fil er afprøvet; RINEX 4 NAVIGATION-filer afvises ved navn i stedet for at blive afkodet forkert); en løser til enkeltpunktspositionering (typen pvt, src/pvt.rs), der omsætter ægte RINEX-kodepseudoafstande + broadcast-efemeride til en modtagerposition ved iterativ vægtet mindste kvadraters metode — Sagnac-/jordrotationskorrektion, broadcast-satellitur med −TGD, den ionosfærefri L1/L2-kombination med to frekvenser (eller enkeltfrekvent Klobuchar), Saastamoinen/Niell-troposfære, elevationsvægtning, DOP og snapshot-RAIM — valideret på ægte IGS-data (International GNSS Service) (station ABMF, Guadeloupe, 2018-05-13) til 5,7 m 3-D RMS (root mean square) / 1,1 m horisontalt mod stationens opmålte koordinat (tests/pvt_abmf.rs, scenarios/pvt-abmf.toml); og læsning/skrivning af præcise baner i SP3 (Standard Product 3, formatet for præcise baner) |
En kode-positioneringsmotor plus, fra 0,36, bærebølgefasebehandling på ægte observationer: løseren pvt beregner en ægte position ud fra ægte kodemålinger (enkeltpunktspositionering, meterniveau, med den ionosfærefri kombination med to frekvenser); rtk_real::run_rtk udfører RTK med kort baseline på ægte GPS-kode og -fase med to frekvenser (dobbeltdifferencer, et float-Kalman-filter, LAMBDA-fastsættelse af heltalsmultiplicitet med ratiotest, src/lambda.rs), og et statisk float-PPP-filter kører på ægte kode og fase med endelige IGS-baner og -ure. Begge er VALIDATED mod publicerede ITRF2020-koordinater for IGS-stationer (WTZR/WTZZ, tests/rtk_real_wettzell_oracle.rs, tests/ppp_real_wettzell_oracle.rs, tærskler fastsat på forhånd); det, der stadig mangler, er fastsættelse af heltalsmultiplicitet i PPP, kinematisk eller net-RTK og drift i realtid. Hatch-bærebølgeudjævning er et fastlåst MODELLED fund (dens tærskler, fastsat på forhånd, blev ikke nået). Typen leo-ppp kører et float-PPP-filter på målinger, den selv simulerer, til konvergensstudier; den fremadrettede pakke gnss-sim forbliver en simulator ud fra reference; BeiDou-GEO (GEO: geostationær bane) udeladt |
Fastsættelse af ambiguiteter i PPP, kinematisk eller net-RTK, drift i realtid: brug RTKLIB/gLAB (RTKLIB: et open source-bibliotek til positionering med real-time kinematic) |
| Sensorfusion / dead-reckoning med INS (inertial navigation system) | fuld | 3-akset strapdown-bibliotek (src/inertial/{attitude,mechanization,imu_errors}.rs): kvaternionattitude med kompensation for coning/sculling, fuld NED-mekanisering (north-east-down) (jordrate + transportrate, WGS-84 Somigliana-tyngde) og en deterministisk fejlmodel for IMU (inertial measurement unit) (skalafaktor, misalignment, g-følsomhed, kvantisering, raterampe modelleret). Strapdown-navigatoren er nu koblet ind i en kørbar løst koblet GNSS/INS-pakke med et kvalitetsmål (src/fusion/pack.rs, kind = "gnss-ins"): den treakse mekanisering styres af EKF'en med 15 fejltilstande (extended Kalman filter) (src/fusion/{gnss_ins_ekf,closed_loop}.rs, tilbagekobling af position/hastighed/attitude/bias), mens GNSS er oppe, og kører derefter frit gennem udfaldet — det erstatter nulstilling til sandheden med ægte fusion og rapporterer den fusionerede horisontale fejl mod det åbne frie INS-løb. Den separate ældre pakke inertial kører stadig budgettet med 1-DOF (DOF: frihedsgrad) skalar med nulstilling til sandheden. En tæt koblet pseudoafstands-opdatering (update_tightly_coupled / fuse_tightly_coupled) er også implementeret: den danner innovationen i afstandsdomænet (sigtelinje-jacobian på δp) og bliver ved med at korrigere med færre end fire satellitter, hvor en løst koblet PVT-løsning (position, hastighed og tid) ikke findes. Et fuldt tæt koblet GNSS/INS-UKF med 17 tilstande (unscented Kalman filter) (src/fusion/tightly_coupled17.rs) bærer position, hastighed, attitudefejl, accelerometer- og gyrobias og modtagerens ur (bias + drift), med dead-reckoning med kvante-CAI (CAI: cold-atom interferometer) — processtøjen for hastighedens random walk er det kolde atom-accelerometers afledte q_va — og et udfald på 120 sekunder med frit løb afgrænses til nogle få hundrede meter (mod de kilometer, et frit INS af navigationsklasse giver). Dette UKF med 17 tilstande er nu gjort tilgængeligt som et kørbart scenarie (src/fusion/hybrid_ukf.rs, kind = "hybrid-ukf", tilgængeligt fra CLI/Python/WASM/MCP): de 15 INS-fejltilstande udvides med den CAI-afledte accelerometerbias-korrektion (det kolde atom-interferometer sætter gulvet for hastighedens random walk q_va) og et ur med 2 tilstande, fase+frekvens, hvis processtøj kommer fra q-parametermotoren for ure (clock_state::q_from_allan, Allan-profil → q_wf/q_rw), drevet af den afgrænsede CAI-fejlmodel, så kørslen demonstrerer hybridisering af klassisk IMU på kort sigt og kvante på langt sigt. Dens kvalitetsmål er filterets selvkonsistens — samlet NEES + innovationshvidhed (NIS) over et Monte Carlo-ensemble mod deres χ²-bånd på 95 % (det afstemte filter ligger inden for båndene; et fejltunet filter markeres, en objektivt kontrollerbar gate). Det er en erklæring om SELVKONSISTENS under den modellerede støj, IKKE en garanti for nøjagtighed i den virkelige verden — CAI-/urinput er afgrænsede/modellerede, CAI-hardwaren ejes af partneren, og intet her antyder TRL (technology readiness level)>3, flyvearv eller ekstern validering. Fejlmodellen for IMU er deterministisk og kan konfigureres pr. sensor fra TOML-scenariefilen (Tom's Obvious Minimal Language) gnss-ins ([imu_*.error_model]: skalafaktor, misalignment, g-følsomhed, kvantisering, raterampe) og er som standard en ren kilde med konstant bias, når den udelades |
Tæt kobling er kun pseudoafstand (bærebølgefase er på køreplanen); scenariet hybrid-ukf bruger en enkelt bane med konstant hastighed i niveau, hvor attitude- og IMU-bias-fejltilstandene kun er svagt observerbare, så NEES-konsistensen vurderes over den estimerbare delmængde (position, hastighed, ur = 8 tilstande) — fuld observerbarhed af alle 17 kræver en manøvrerende bane (på køreplanen); parret accelerometerbias/tilt i den løse kobling kan kun svagt adskilles, så kalibrering pr. bias ikke hævdes; fejlmodellen for IMU udelader vibrationsrektifikation og temperaturgradientdrift; UKF med 17 tilstande og de tæt koblede veje er selvvalideret (analytisk integration med konstant hastighed, konvergens ved GNSS-støtte, genfinding af bias, den CAI-begrænsede grænse for et udfald på 120 s og NEES/NIS χ²-konsistensorakel) — selve strapdown-mekaniseringen er VALIDATED mod NaveGo v1.4 (tests/classical_strapdown_ins_reference.rs: attitude bit-identisk, hastighed/position inden for navngivne analytiske grænser), men ingen krydsvalidering på filterniveau (NaveGo eller KF-GINS-køretøjsdatasættet) er kørt |
tæt kobling med bærebølgefase, fuld observerbarhed af 17 med manøvrerende bane, banebibliotek, krydsvalidering på filterniveau mod NaveGo/KF-GINS: P2 |
| Integritet / RAIM / ARAIM (avanceret autonom integritetsovervågning i modtageren) | delvis | Ægte snapshot-RAIM i src/raim.rs: mindste kvadraters løsning + χ²-fejldetektion på residualer (eksakt tærskel fra en χ² med ufuldstændig gamma uden afhængigheder) og hældningsbaserede HPL/VPL (pbias fra en ikke-central χ² for de konfigurerede P_fa/P_md); solution-separation-RAIM (MHSS) med fejldetektion/identifikation; ARAIM-budget for integritetsrisiko (P_HMI) (araim_raim), der løser det mindste HPL/VPL, hvis summerede P_HMI = Σ_k p_fault,k·Q((PL−T_k)/σ_k) opfylder en eksplicit tildeling af integritetsrisiko, den fejltilstand for hele konstellationen med to/flere konstellationer (araim_dual_raim, EU (Den Europæiske Union) ARAIM TN (teknisk note) / DO-316; P_const = 0 ⇒ bit for bit araim_raim), en eksplicit integritetsstøttemeddelelse (IntegritySupportMessage: σ_URA/σ_URE/b_nom/P_sat/P_const, med referenceværdierne for GPS+Galileo fra WG-C (WG: arbejdsgruppe)), plus et Stanford(-ESA, Den Europæiske Rumorganisation)-integritetsdiagram (scenarietypen integrity og en selvstændig stanford_svg-renderer af de fire zoner + grænsen PL=error). Dokumenteret fra ende til anden i ARAIM_REFERENCE.md. Dertil scenariets FoM for filterets selvkonsistens (k-σ-grænse) |
RAIM er tilgængelig via scenarietypen integrity og (0,36, valgfri) ved siden af urets/holdoverets FoM som en separat blok integrity_fom ([integrity]: snapshot-RAIM på en forudindstillet himmel fra en angivet placering, utilgængelig mens GNSS er nægtet; MODELLED), aldrig foldet ind i holdover-FoM, som stadig rapporterer selvkonsistens; snapshot-RAIM har FDE for enkelte satellitter (fejldetektion og -udelukkelse, raim::snapshot_raim_fde, VALIDATED mod RTKLIB raim_fde i tests/integrity_snapshot_raim_rtklib_oracle.rs); ARAIM ADD v4.2 med solution separation over flere hypoteser og bestemmelse af delmængder af flere satellitter findes i src/araim_reference.rs (VALIDATED mod Stanford MAAST, tests/integrity_araim_stanford_oracle.rs), men budgettet raim::araim_raim med ensartet sigma dækker stadig kun fejl i enkelte SV'er og i hele konstellationen og er ikke ADD-konformt (0,36, valgfri: samtidige fejl i delmængder af flere SV'er gennem ADD v4.2-reglen for delmængder generaliseret ud over par, araim_subset_raim, add_v42_protection_levels_to_order; MODELLED, ingen MAAST-kørsel ud over par), og udelukkelse af flere SV'er er ikke modelleret; og araim_dual_raim er koblet ind i TOML-scenariekøreren via flaget araim_dual (scenarios/araim-gps-galileo.toml), med en tilgængelighedsvej pr. epoke araim_dual_constellation_availability; kernerne for snapshot/MHSS/ARAIM er afprøvet på ægte IGS-geometri for præcise baner (SP3) (tests/igs_real_data.rs) og på ægte Celestrak GPS+Galileo-TLE'er (tests/araim_dual_real_data.rs, hver satellit propageret til én fælles UTC-epoke — den seneste TLE-epoke (two-line element set) i sættet, 2026-06-07T07:21:04 — for en bruger i 400 km højde og med 45° inklination over 24 h: tilgængeligheden under en VAL (vertical alert limit) på 12 m / HAL (horizontal alert limit) på 10 m er 0,993 kun med GPS, 1,000 med GPS+Galileo samlet og 0,990 i den tilstand, der er robust over for konstellationsfejl; det tal, der tidligere blev publiceret her, 0,21→0,67 med den robuste tilstand "begrænset", kom af at propagere hver satellit fra sin egen TLE-epoke — en himmel, der aldrig har eksisteret — og er trukket tilbage); den tidligere sammenligning med "EU-ARAIM-TN Table A-3" er trukket tilbage (ingen offentlig kilde), og en gengivelse af posterne for maksimal URA i det offentlige EU-US WG-C ARAIM Milestone 3 (tabel 5 til 7, rækkerne Depleted og Baseline) forsøges i xval/araim-m3/ under angivne afvigelser (MODELLED, se INTEGRITY.md); ikke DO-229/ARAIM-certificeret |
ARAIM med flere fejl (ADD v4.2): udført; delmængder med flere SV i raim + paritet med gLAB i modtagerdomænet + kobling til kvalitetsmål: P2 (se INTEGRITY.md) |
| Trusselsmodellering af spoofing / jamming | delvis | En stokastisk detektor for tidsspoofing (typen spoof, src/spoof.rs + src/detection.rs): fire injektionsformer (lineær rampe, trinvist spring, meaconing, replay) mod en urstøttet monitor med en tosidet χ²₁-energitest / Neyman–Pearson-test, hvor detektionstærsklen fastsættes ud fra et mål for budgettet for falsk alarm P_fa, og sandsynligheden for manglende detektion P_md rapporteres både i lukket form og ved Monte Carlo (de to stemmer overens inden for nogle få ×1/√N) — sikkerhedskvalitetsmålet er 1 − P_md. Dertil en jamming-model med linkbudget (typen jamming, src/jamming.rs): forholdet mellem jammer og signal ud fra geometri (fri-rum-dæmpning + modtageantennens forstærkning pr. retning), den standardmæssige ligning for effektivt C/N₀ under anti-jam (despreading-processeringsgevinst + spektral separationsfaktor Q; Kaplan & Hegarty §9,4), tab af lås pr. satellit ved en konfigurerbar sporingstærskel og et kvalitetsmål availability_under_jamming over en Walker-konstellation. Dertil en pakke af spoof-monitorer i flere lag for RF/målinger (RF: radiofrekvens) (src/spoof_monitors.rs): en RAIM-konsistens over flere satellitter, paritetstest (parity_raim_test, vægtet residual-SOS (sum af kvadrater) mod en χ²(m−4)-tærskel — og den påpeger korrekt, at en fælles bias er usynlig for RAIM), en AGC-monitor (automatic gain control) (AgcMonitor, overskud af modtaget effekt over det forventede gulv), en monitor for signalkvalitet / SQM (signal-quality monitoring) (SqmMonitor, ubalance mellem Early/Late-korrelatorer) og en kombinator, der fusionerer lagene (fuse_spoof_layers). Disse indgår i en integreret CombinedSpoofDetector, hvis evaluate modtager én epoke af observabler (geometri + residualer, AGC-effekt, Early/Late-aftapninger) og kører alle tre lag gennem den vægtede fusion i ét kald og returnerer diagnostikken pr. lag; den er udstillet som det kørbare spoof-detect-scenarie (src/spoof_detect.rs, tilgængelig via CLI / Python / playground, JSON + SVG (Scalable Vector Graphics)) og karakteriseret mod de offentliggjorte parametre i TEXBAT-scenarierne (Texas Spoofing Test Battery) (Humphreys et al., ION (Institute of Navigation) GNSS 2012; tests/spoof_texbat_validation.rs) — og gengiver det dokumenterede mønster for detekterbarhed, herunder de negative resultater: overstyret ds2 fanges af AGC + SQM, ds3 med samme effekt af SQM alene, ds4 med positionspush af RAIM, og ds7 med samme effekt og bærebølgefasen på linje overlades (korrekt) til den urstøttede detektor |
Typen jamming er et linkbudget — den har ingen multipath og ingen AGC-dynamik i tid. Siden 0,36 tager den fire valgfri sektioner: [crpa], en adaptiv array-stråle pr. kanal (null-styring eller MVDR fra src/crpa.rs, kontrolleret mod en uafhængig numpy-genberegning; MODELLED), og [terrain], tabet ved en enkelt knivægsdiffraktion på jammerens vej over en SRTM-tile (src/jamming_terrain.rs, ITU-R P.526-15 §4,1, kontrolleret mod en uafhængig numpy-genberegning på en reel tile; MODELLED, kun én knivæg), [acquisition], hysterese mellem akkvisition og sporing, og [front_end], den indsvingede AGC-aflæsning og ADC'ens kvantiseringstab ved gaussisk input (src/jamming_rx.rs; markeret som ikke gyldigt for ikke-gaussiske jammere; MODELLED). Spejlende multipath, landmobil fading og AGC findes i IQ-laget (src/iq/channel/multipath.rs, src/iq/channel/land_mobile.rs, src/iq/frontend/agc.rs) og er ikke koblet til typen jamming; tabellen over den spektrale separation Q rummer lærebogens værdier pr. type (CW og smalbåndet 1, bredbåndet og swept 2 siden 0,36), fastlåst til de koefficienter, der er udledt af effekttæthedsspektrene (PSD) i navsignal (se rækken om navigationssignaler). Den urstøttede spoof-detektor har ét ur; RF-/målemonitorerne er nu integreret (CombinedSpoofDetector) og karakteriseret mod de offentliggjorte parametre i TEXBAT-scenarierne (Humphreys et al.); resten er validering mod de rå vektorer — TEXBAT IQ-sampel (IQ: in-phase/quadrature) (som kræver en akkvisitions-/sporings-front end til SDR (softwaredefineret radio), som kshana ikke har, da den er en simulator og ikke en modtager) eller et licenseret Spirent-scenarie — et dokumenteret opfølgende arbejde |
urstøttet + integreret multi-SV-RAIM-konsistens + AGC + SQM kombineret detektor + karakterisering af TEXBAT-parametre: udført; validering på rå vektorer (TEXBAT IQ / licenseret Spirent): opfølgende arbejde |
| Navigationssignalers modulation og ydeevne for kodesporing | delvis | src/navsignal.rs: signalniveauet mellem linkbudgettet og måledomænet. Effekttæthedsspektre med enhedsareal for BPSK-R(n) (binary phase-shift keying, rektangulære chips) og sinus-BOC(m,n) (binary offset carrier) (CI-valideret til enhedsareal, til den lukkede form for BPSK's egen spektrale separationskoefficient (SSC) κ = 2/(3R_c) og til BOC's spektrale opdeling — nul ved bærebølgen, toppe ved ±f_s); den spektrale separationskoefficient κ = ∫ G_s(f)G_i(f) df, som nu udleder den anti-jam-Q, som jamming bruger, ud fra de faktiske spektre for signal og jammer (Q = 1/(R_c·κ)) i stedet for en repræsentativ konstant (breddebåndsreferencen krydskontrolleres i CI); RMS-båndbredden (Gabor) (BOC > BPSK — målet for afstandsinformation / Cramér–Rao); den termiske støjjitter for koherent early–late DLL (delay-locked loop) i kodesporing (Kaplan & Hegarty §8 — ~under en meter for C/A ved 45 dB-Hz, monoton i C/N₀); og envelopen for multipath-fejl (koherent EML (early-minus-late), fundet ved at lokalisere nulpunktet i den sammensatte diskriminator — undertrykkelsen med narrow-korrelator er verificeret). Et lag for designafvejning af rækkeviddekoder (CodeFamily) tilføjer sidelobet i den periodiske autokorrelation for m-sekvens/Gold (1/L for en m-sekvens) og den tre-værdige Gold-grænse for krydskorrelation t(n)/L — som gengiver den offentliggjorte GPS C/A −23,9 dB Gold-krydskorrelation (et eksternt ankerpunkt) og antallet af m-sekvenser φ(2ⁿ−1)/n — plus inversionen mellem kodelængde og utvetydig afstand; Gold-garantierne returnerer ærligt None, hvor der ikke findes noget foretrukket par (n mod 4 = 0), frem for at rapportere en grænse, der ikke holder. |
Siden 0.31.0 tilføjer det separate IQ-lag (src/iq/, kommandoerne kshana iq; design i design/GNSS-IQ-PLAN.md) en softwaremodtagerkæde: FFT-akkvisition (fast Fourier transform), en DLL/PLL/FLL-sporingsbank med flere kanaler (delay-, phase- og frequency-locked loop), front end-filtrering og kvantisering til 1-14 bit samt streaming af optagede datasæt. En uafhængig softwaremodtager genfinder den indsatte reference i sine scener, og GPS L1 C/A-koderne og LNAV-bittene (legacy navigation message) er bit-nøjagtige mod gps-sdr-sim. Mangler stadig: løkkernes diskriminatorer antager den ideelle BPSK-korrelationstrekant, så der er ingen opløsning af BOC's tvetydighed i sporingen; kanal- og løkkemodellerne er MODELLED, kontrolleret mod lukkede former og indsat reference, ikke mod målt IQ fra felten; kun skalære løkker (ingen vektorsporing). Hardwaredesign af antenne/RF-nyttelast (strålingsmønstre, front end) er bevidst uden for omfanget — en nyttelastpartners rolle. |
BOC-tvetydighed + validering af IQ-laget med IQ fra felten: P2+ |
| Fysik i sensorer til kvante-PNT | delvis | De fleste sensorer er offentliggjorte Allan-/støjbudgetkoefficienter (CSAC, optisk), plus et accelerometer med koldatom-interferometer (CAI) ud fra grundlæggende principper i src/inertial/quantum_imu.rs: Mach–Zehnder-fasen med tre pulser Φ = k_eff·a·T², kvanteprojektionsstøj (skudstøj) σ_Φ = 1/(C√N), det afledte effekttæthedsspektrum for tilfældig gang i hastighed q_va, som den inertielle stak forbruger, kontrastfald, vibrationsoverføringsfunktionen |H(ω)| + varians ved hvidt PSD, og nu systematikkerne Coriolis/rotation (coriolis_phase, ækvivalent bias 2Ω×v) og AC-Stark (AC: vekselstrøm) lysforskydning (ac_stark_phase, symmetrisk ophævelse) + en driftssweep over cyklustiden (cai_drift_sweep), og et sammensat fejlbudget for kvanteinertial dødregning (QuantumNavBudget), der samler CAI's tilfældige gang i hastighed med hvid støj sammen med restbias (½·b·t², krydskontrolleret mod den uafhængige AccelModel Euler-integrator), skalafaktorfejl og en valgfri forringelse af langtidsstabilitet (adskilt fra dekohærens pr. skud) til ét tal for positionsdrift over holdover plus en inertial holdover til tærskel — dødregningens tvilling til urets holdover. Det modellerede kvantegulv er afgrænset (ikke afstemt til paritet) mod 96 nm/s²/√Hz for det mobile gravimeter fra Freier et al. 2016 (arXiv:1512,05660) — det ligger under og inden for ~2 størrelsesordener af det. Dokumenteret i QUANTUM.md |
Systematik fra bølgefront/strålepejling er ikke modelleret; grænsen for fringe-tvetydighed i Mach–Zehnder er modelleret (max_unambiguous_accel, dynamic_range_cells i src/inertial/quantum_imu.rs), men tvetydigheden opløses ikke; de præcise flyvetestbudgetter for CARIOQA-PMP (CARIOQA: Cold Atom Rubidium Interferometer in Orbit for Quantum Accelerometry) / Boeing-AOSense (kræver offentliggjorte effekttæthedsspektre for platformen + SNR (signal-to-noise ratio) pr. skud) og en JS-forudindstilling (JavaScript) til playground er rester |
systematik fra bølgefront + gengivelse af flyvetest: P2+ (QUANTUM-MODELS.md) |
| Konstellationsudformning | delvis | Syntetisk Walker (både analytisk Kepler og SGP4-middelelementer, de sidste propageret gennem kernen, der er valideret til 4,12 mm — src/walker.rs) + synlighed og DOP for reelle TLE'er med flere konstellationer (GPS+Galileo til 100 %), valideret mod et reelt Celestrak gps-ops-snapshot (tests/igs_real_data.rs); en PDOP-designsweep over gitteret {planes × sats × inclination} og kvalitetsmål for dækningsandel / revisit-tid; den kørbare typen constellation-design (Walker delta- og star-mønstre i konventionen i: T/P/F, eksplicitte elementlister, designs med flere skaller og offentliggjorte forudindstillinger, omkring Jorden, Månen, Mars eller ethvert andet katalogiseret legeme), hvis Walker-geometri og offentliggjorte GPS-, Galileo- og GLONASS-pladser er VALIDATED mod de offentliggjorte tabeller, og hvis globale GPS-baseline for dilution of precision er VALIDATED mod GPS Standard Positioning Services ydelsesstandard, mens dækningskortene for vilkårlige designs forbliver MODELLED; en gradientfri designoptimerer (optimize_walker_design), der søger i gitteret efter det bedste design under et valgt mål (MinSatellitesForCoverage / MaxCoverage / MinWorstPdop), valideret til at returnere vinderen fundet ved brute force; og analytisk geometri for streets-of-coverage (coverage_half_angle_rad, street_half_width_rad; lukkede former af Rider/Beste, kontrolleret i hånden — GPS ved en maske på 5°: λ ≈ 71,2°, halv gadebredde med 4 satellitter ≈ 62,8°) |
Der findes en idealiseret dimensionering af streets-of-coverage med mindste antal satellitter (walker::StreetsCoverageDesign); Riders korrektion, der er nøjagtig ved sømmen på grænsen mellem planer med modsat omløbsretning, er ikke implementeret; playground tegner en afhængighedsfri 3D-visning af baner (web/studio/lib/orbit3d.mjs), og en CZML-eksport (Cesium Language), --export czml, indlæser geometrien i CesiumJS-globen; DOP-kernen er VALIDATED mod gnss_lib_py (tests/dop_reference.rs), og den fulde pipeline for synlighed med flere konstellationer er krydskontrolleret fra ende til anden mod Orekit 12,2 + gnss_lib_py (tests/coverage_dop_full_oracle.rs): designene for Jorden stemmer på alle tærskler, men designene for Månen og Mars rammer ikke DOP-tærsklen ved numerisk singulær geometri, så rækken forbliver MODELLED; geodætisk mod geocentrisk "op" i DOP-systemet |
dimensionering af streets-of-coverage + 3D-visning af baner + krydskontrol for Jorden fra ende til anden: udført; Riders korrektion, nøjagtig ved sømmen + dårligt konditioneret DOP uden for Jorden: P2 |
| Verifikation og validering | delvis | Kontroller mod uafhængige eksterne referencer på tværs af motoren (SGP4 mod 666 AIAA-vektorer, Allan-familien mod Stable32 og allantools, referencesystemer mod SOFA/ERFA, kraftmodel og banebestemmelse mod Orekit, ARAIM mod WG-C-arbejdseksemplet og flere; det aktuelle antal står i den genererede overskrift i VERIFICATION-MATRIX.md); deterministiske Allan-kontroller; en maskinkontrolleret verifikationsmatrix (src/verification.rs) — en krydsreference fra krav til modul til test til uafhængig reference til status, hvis ærlighedsinvarianter er enhedstestede: en række må kun mærkes valideret, hvis den bærer en uafhængig ekstern reference (NIST/AIAA/SOFA/IGS/offentliggjort værdi), så en intern selvkonsistenskontrol ikke kan optræde som en validering; gengives til Markdown/CSV (CSV: kommaseparerede værdier) til en ECSS-E-ST-10-02-verifikationskrydsreference (ECSS: European Cooperation for Space Standardization), og registrerer de fire huller i hardware/PA (PA: product assurance), som partneren ejer, som sådanne |
Kalibreringsensembler dækker indtil videre tre kontroller med ét seed (CALIBRATION-ENSEMBLES.md, præregistreret: Monte Carlo-bootstrapintervallet dækker for 96 % af 200 seeds; én percentiltolerance er seed-skrøbelig, NOT MET ved 91,5 %); de øvrige rækker er stadig kalibreret på enkelte seeds. Matricen håndhæver klassificeringen af rækker, og CI kontrollerer nu også, at hver test, fil og hvert element i crate'en, som en række henviser til, findes (tests/verification_rows_name_a_test_that_exists.rs, tests/verification_rows_cite_evidence_that_exists.rs), og at offentliggjorte tal stadig kan gengives (tests/published_figures_still_reproduce.rs); den bedømmer ikke selve den uafhængige reference, hvilket en gennemgang stadig må læse |
kalibreringsensembler: P1 |
| LEO-PNT (positionering, navigation og tidssynkronisering fra lav jordbane) | delvis | Syv typer, systemuafhængige med navngivne offentlige forudindstillinger: leo-signal (signaldesigns i ethvert bånd og enhver struktur: BPSK-, BOC-, MBOC- (multiplexed BOC) eller flade OFDM-lignende (orthogonal frequency-division multiplexing) komponenter, kodesporing, akkvisition, GNSS-kompatibilitet, afvejning af bånd), leo-pass (en designet, element-, TLE- eller Walker-passage med et linkbudget pr. bånd: ITU-R- (International Telecommunication Union Radiocommunication Sector) regn, scintillation og tab ved indtrængen i bygninger, ionosfære, antenne, Doppler, mod de MEO-GNSS-satellitter (medium Earth orbit) i sigte), leo-navmsg (broadcast-efemeride og ur på Galileo ICD's (interface control document) Kepler-grundlag eller valgfri LEO-modeller, tilpasset og kodet med en CRC-24Q-rammekontrol (24-bit cyclic redundancy check)), leo-pvt (fusioneret positionering med MEO + LEO pseudorange og Doppler over vilkårlige konstellationer), leo-ppp (PPP-konvergens med og uden LEO-augmentering, på simulerede målinger), ntn-positioning (grænser for 5G NTN-positionering, ikke-terrestrisk net, ud fra signalets båndbredde) og leo-pnt-chain (ét system fra ende til anden, hvor hvert trins output gives videre til det næste). VALIDATED dele: ITU-R-linkleddene mod Recommendations' tabeller og valideringseksempler, maksimal Doppler mod en offentliggjort tabel, Galileo-brugeralgoritmen mod RTKLIB til 1 mm, CRC-24Q, SISRE-vægtene (signal-in-space range error) |
Ingen feltdata eller optagede signaler; tallene for positionering, PPP, NTN og tidssynkronisering er MODELLED (lukkede former, filterkonsistens, sammenligninger med offentliggjorte tendenser); forudindstillinger er fra offentlige kilder eller afledt, ikke operatørdata | validering mod reelle optagede signaler: P3 |
| Spektrum / RF-miljø | delvis | Typen spectrum (src/spectrum.rs): GNSS L-båndet (og multibånds-design i ultrahøj frekvens (UHF), S- og C-bånd) som ét effekttæthedsspektrum, frekvens på tværs og tid nedad, under en scriptet jammer-tidslinje (jammere med kontinuert bølge, smalbåndet, chirp og tilpasset bredbåndet), med J/S (forholdet mellem jammer og signal) og effektivt C/N₀ (bærebølge-til-støj-tæthed) pr. bånd; SigMF-optagelser ind og ud og Welch-spektralestimater af komplekse sampel. De lukkede former for signalspektre og spektrale separationskoefficienter er VALIDATED; vandfaldet er MODELLED |
GLONASS-, BeiDou- og Galileo E6-signaler er ikke modelleret; ingen validering af modtagerens front end eller af optaget IQ (in-phase/quadrature) | sammenligning med optagede signaler: P3 |
| Tillid til modtagerlog (fartøj og generelt) | delvis | src/receiver_trust/: monitorer over en modtagers egen log (bærebølge-til-støj-tæthed, konsistens i position, fart og kurs, tid) med hændelser og forudsigelser angivet før kørslen; på en fartøjsplatform en score på 0-100 med årsager; live-tilstand på en strøm med $PKSHT-sætningen og en valgfri gate. MODELLED; vejledende, ikke typegodkendt navigationsudstyr |
Tærsklerne er angivne standardværdier, ikke målt mod modtagere i drift; en log scorer kun den log; intet radiofrekvent input eller output; ikke typegodkendt navigationsudstyr | docs/RECEIVER-TRUST.md, docs/MARITIME-TRUST.md |
| Bevispakker og tillidstelemetri | delvis | src/evidence/: en signeret, hashkædet pakke med et logvindue, dets konfiguration og motorens resultat, der kan verificeres offline, med et valgfrit RFC 3161-tidsstempeltoken. src/telemetry/: tillidsstrømmen som Prometheus-metrikker, syslog-hændelser (CEF eller LEEF) og valgfri OpenTelemetry, med et eksempel på et Grafana-dashboard |
En pakke er en teknisk journal, ikke en juridisk vurdering, og siger ikke, hvad der forårsagede en hændelse; tidsstempelmyndighedens signatur verificeres ikke; telemetri overfører kun telemetri | docs/EVIDENCE-PACKS.md, docs/TRUST-TELEMETRY.md |
| Strømme til besætningstræning og interferenskort | delvis | src/nmea_synth/: syntetisk bro-NMEA med scriptede hændelser for jamming, afdrift, tidsspoofing og replay og en instruktørlog (kun tekst). src/interference_map/: aggregerede kort over forringet navigation ud fra åbent licenserede rapporter fra fly og skibe og en ruteeksponering, fra lokale filer |
Strømmene er træningsdata, aldrig til et fartøjs aktive navigationssystemer; kortene er aggregerede, ikke en prognose, og afhænger af de angivne rapporter | docs/NMEA-TRAINING.md, docs/INTERFERENCE-MAP.md |
| Eksport til testbænk | delvis | src/interop/testbench.rs: et gnss-ins-, jamming- eller gnss-sim-scenaries køretøjsbevægelse og hændelser som en bevægelses-CSV, NMEA, waypointtekst og hændelsesfiler til en GNSS-simulator i et laboratorium |
Intet signal skrives; ingen ydeevne for simulator eller modtager påstås; filerne er kontrolleret, som de læses tilbage af én open source-simulators bevægelseslæsere (gps-sdr-sim), men fysikken i scenariets egen referencebane er ikke kontrolleret eksternt | docs/TEST-BENCH.md |
| Verifikation af Galileo OSNMA | delvis | src/osnma/ og kshana osnma verify: læser Galileo I/NAV-sider eller en UBX-strøm og rapporterer pr. satellit og epoke, om navigationsdataene er autentificeret (signeret nøgle med Merkle-rod, TESLA-kæde, MAC'er), med årsagen til, at en kontrol fejlede, og en valgfri uafhængig referencetid til at vurdere friskhed; også osnma_verify i Python og WebAssembly |
Autentificerer data mod nøgler, som brugeren leverer; påstår ingen ydeevne mod spoofing og er ikke en integritetstjeneste for navigation eller typegodkendt udstyr; kontrolleret på syntetiske vektorer, de officielle ICD-testvektorer er en ekstern download | docs/OSNMA.md |
| Kortlægning af compliance mod offentlige rammeværker | delvis | src/compliance/ og kshana compliance-report: Kshana-output kortlagt mod seks offentlige rammeværker og standarder for robusthed med kilder og et hul på hver række; en kørsel tæller kun, når dens resultat bærer de felter, som dens type skriver |
En kortlægning er en vurdering; rapporten siger, hvad et sæt kørsler leverer belæg for, aldrig at et rammeværk er opfyldt, eller at et produkt er godkendt; EN 16803 er kun citeret fra katalogtekst | docs/compliance/README.md |
| Maritime integrationer | delvis | Et Signal K-plugin, OpenCPN gennem NMEA i gate-tilstand over TCP og en referencebuild til en lille computer ved siden af modtageren (integrations/, deploy/) |
Testet på optaget syntetisk output; pluginet er ikke udgivet på npm; vejledende, ikke typegodkendt navigationsudstyr | docs/MARINE-INTEGRATIONS.md |
Bredere domæner for rumsystemer (uden for omfanget i dag)#
Flere af disse er ingen; andre er nu førsteordens partial-modeller (typerne for missionsanalyse / miljø, der blev tilføjet i serien v0.17.0) — opført, så omfanget er utvetydigt og ikke antydet ved tavshed. Kshana er en PNT-simulator, ikke GMAT/STK/Orekit (STK: Systems Tool Kit); disse tilgrænsende modeller er bevidst af første orden og MODELLED, aldrig validerede flyveværktøjer.
| Funktion | Status | Note / køreplan |
|---|---|---|
| Missionsdesign / optimering af baner | delvis | src/maneuver.rs: impulsive ΔV-knuder med kovarians-propagering på 6×6 (ECI/LVLH (ECI: Earth-centred inertial; LVLH: local vertical, local horizontal) systemer for udførelsesfejl), integration af endelige burns kontrolleret mod den lukkede Tsiolkovsky-ligning til < 0,01 %, en Izzo-2015 Lambert-løser for én omdrejning + en nøjagtig Kepler-propagator med universelle variable (Lambert-outputs rundturstestet mod to-legeme-referencen) og en porkchop-sweep (opsendelse × ankomst) af C3 / ankomst-V∞, udsendt som et JSON-konturgitter, hvis minimum er kontrolleret mod det analytiske Hohmann-gulv. Ingen banenoptimerer; en Lambert-løser for flere omdrejninger (maneuver::lambert_multirev, op til tre omdrejninger, begge grene) er VALIDATED mod pykep 3.0.1 (tests/lambert_multirev_oracle.rs); porkchop kører på den syntetiske koplanar-cirkulære model eller, med maneuver::porkchop_kernel, på en DE440 SPK (VALIDATED mod SPICE-tilstande + pykeps Lambert, tests/porkchop_de440_oracle.rs); maneuver::optimise_transfer_kernel finder det kontinuerlige datooptimum (min C3 eller min ankomst-V∞, Type I eller II) på DE440, VALIDATED mod en uafhængig optimerer med SPICE + pykep + SciPy (tests/transfer_optimiser_oracle.rs); mod de offentliggjorte NASA/TM-2010-216764-minima for Jord–Mars 2026 matcher den værdierne for Type II og rammer ikke minimum-C3 for Type I med −5,18 % (registreret). GMAT selv blev ikke kørt; pykep er bibliotekets uafhængige reference. Et sømløst grænsefladelag til planetefemerider i dybt rum (src/ephem_provider.rs) og en krydskontrol mod DE440 (Development Ephemeris 440) (xval/anise-mars-od, 137 m på en Marsbue på 1 dag) findes nu — se rækken om PNT i dybt rum / interplanetarisk. Laget til ydelsessimulering oven på GMAT/Orekit, ikke en erstatning. P3 |
| AOCS (attitude and orbit control system) / GNC (guidance, navigation and control) / attitude | delvis | Typen attitude-budget (src/attitude_budget.rs): værst tænkelige tyngdegradientmoment 1.5·(μ/R³)·ΔI + RSS-budget (root-sum-square) for pejlefejl over 1σ-led pr. bidragyder — et MODELLED skalart budget for pejling/forstyrrelser før hardware. Momentfri stiv-legeme-attitudedynamik med en kvaternionstilstand (src/attitude_dynamics.rs: Eulers ligninger + kvaternionskinematik, RK4) er VALIDATED mod Basilisk 2.9.1-rumfartøjets hub (tests/attitude_dynamics_basilisk_oracle.rs, kvaternion inden for 1e-9 over 1e4 s), og toppen af tyngdegradientmomentet mod Basilisks GravityGradientEffector (tests/attitude_gg_torque_basilisk_oracle.rs); Wahba-attitudebestemmelse findes i src/wahba.rs. Typen aocs (src/aocs.rs, src/aocs_kind.rs, AOCS.md): en inertial pejlingsvending med afbalancerede reaktionshjul under MRP-tilbagekobling, hjulmomenter med minimal norm med motorgrænser; den lukkede løkke er VALIDATED mod Basilisk 2.9.1 på tre præregistrerede tilfælde til afrundingsfejl. Et MEKF fra et gyro og en stjernesensor (src/aocs_mekf.rs) kan lukke løkken på sit estimat (MODELLED, filterkonsistens). Ingen sporingsstyring, integral tilbagekobling, momentumstyring, magnetorquere, thrustere, hjulfriktion eller hastighedsgrænser; intet eksternt momentmiljø i attitudedynamikken; ikke en flyvekontroller. P3 |
| Referencesystemer → jordfast | fuld | Udført — TEME→ECEF/ITRF, polær bevægelse og den CIO-baserede GCRS→ITRS-kæde er implementeret og VALIDATED (bit for bit mod SOFA/ERFA; 4 mm fra ende til anden mod Vallado). Se rækken Referencesystemer ovenfor |
| Kommunikation og linkbudgetter | delvis | src/linkbudget.rs: et Friis-linkbudget for dybt rum (sendeeffekt · antenneforstærkninger · støj → C/N₀ · Eb/N₀ · margin), der fodrer radiometri-/GSE-vejen (GSE: ground support equipment), plus de optiske/RF-tidsoverførselslink (src/timetransfer*.rs) og den kørbare typen link-budget — den ensrettede CCSDS-401/DSN-810-005-linkligning (DSN: Deep Space Network) C/N₀ = EIRP − FSPL − L_other + G/T − k med EIRP (effective isotropic radiated power) / G-T som input og valg af S/X/Ka-bånd (MODELLED teknisk linkbudget, ikke et kalibreret dataark for en terminal). Ingen adgangsplanlægning, ingen adaptiv kodning. P2 |
| Jordsegment og drift | delvis | passes-type (src/passes.rs): forudsigelse af overflyvninger (rise/set) fra en jordstation — AOS/TCA/LOS (AOS: acquisition of signal, signalopfangning; TCA: time of closest approach, tidspunkt for nærmeste passage; LOS: loss of signal, signaltab), maksimal elevation, varighed pr. overflyvning og samlet adgangstid over en horisont, ud fra et SGP4-elementsæt i det jordfaste IAU 2006/2000A-system med ITU-R P.834-9-refraktion og lysrejsetid — VALIDATED mod Orekit 13.1.8 ved stationer i havniveau (60 tilfælde / 1210 overflyvninger, tests/pass_predictor_on_path_orekit_oracle.rs); den geometriske passes::predict_passes er VALIDATED mod elevationsdetektoren i Orekit 12,2 (22 scenarier / 129 overflyvninger, tests/ground_station_pass_prediction_reference.rs); ingen planlægningsoptimering og ingen konfliktløsning. P3 |
| Telemetri / TT&C / CCSDS | delvis | specialbygget TOML ind / JSON ud; CCSDS OEM (Orbit Ephemeris Message) eksport og import (502.0-B KVN (keyword-value notation), GMAT/Orekit/STK) via den kørbare oem-interop-type (src/oem.rs parse_oem rundturs-bro; udveksling af ét objekt i overensstemmelse med standarden er VALIDATED mod den uafhængige oem 0.4.5-parser); CCSDS-TDM (503) Tracking-Data-Message, indlæsning og udskrivning (src/ccsds_tdm.rs, det radiometriske udvekslingsformat til dybt rum); og space-packet-typen (src/space_packet.rs): CCSDS 133.0-B Space Packet, kodning og afkodning af den primære header med bitnøjagtig rundtur. En CCSDS OMM-skriver (Orbit Mean-Elements Message, 502.0-B-2, en del af ODM-familien) (src/omm.rs) udgiver SGP4-middelelementer i KVN, og en ren Rust-NAIF SPICE-kernelæser (src/naif_kernel.rs: DAF-container, SPK-type 2, binær PCK-type 2) ligger bag ephem_provider::KernelEphemeris. Andre CCSDS-meddelelsestyper (OPM, OCM, AEM (AEM: Attitude Ephemeris Message)) og skrivning af SPICE er fortsat et punkt på køreplanen (P2) |
| Interoperabilitet og standarder (RINEX/SP3/SPICE/CCSDS) | delvis | RINEX 3 multi-GNSS NAV — GPS, Galileo, QZSS, BeiDou MEO/IGSO (IS-GPS-200) og GLONASS (PZ-90 (PZ: Parametry Zemli, det russiske geodætiske datum) tilstandsvektor-RK4) — indlæst + propageret + kørbar som én blandet konstellation; RINEX 3 OBSERVATION-parser (pseudoafstand/bærebølge/Doppler/SNR efter observationskode, med LLI/SSI-flag (LLI: indikator for tab af lås; SSI: indikator for signalstyrke); 4,00 forventes at kunne parses, utestet); SP3-c/d præcis-efemeride læsning ↔ skrivning, rundtur (parse + eksport til Ginan/RTKLIB/gLAB) og en Lagrange-propagator af 10. orden (11 punkter) (Propagator::Sp3Precise); SP3-eksport er tilgængelig i CLI (kshana <orbit.toml> --export-sp3 out.sp3 eller export_sp3 = true) og valideret ved rundtur mod den reelle GPS-konstellation til <0,5 m over 24 t (tests/sp3_export_roundtrip.rs); CCSDS OEM 2,0 efemeridskriver — TEME-tilstandseksporten med hastighed til flight-dynamics-værktøjer — nu tilgængelig i CLI (kshana <orbit.toml> --export-oem out.oem eller export_oem = true) og rundturskontrolleret mod propagatorens tilstand (tests/sp3_export_roundtrip.rs). RINEX-observationsparseren fodrer nu en enkeltpunktspositionsløsning (pvt, valideret på reelle IGS-data — se rækken GNSS / PNT). Dertil CCSDS-TDM (503) parsing og udskrivning af sporingsdatameddelelser (src/ccsds_tdm.rs). Geometrieksporter til viewere og missionsanalyseværktøjer: CZML, KML (Keyhole Markup Language), GeoJSON og STK-efemeride (--export, src/interop/), hver parset tilbage af en validator skrevet ud fra formatets specifikation (tests/interop_formats.rs), en GeoJSON-ruteimport (--import-route), SigMF-optagelser (Signal Metadata Format) ind og ud for typen spectrum og RINEX-4-lignende / CSV-tekst for LEO-navigationsmeddelelsen (INTEROP.md, STANDARDS.md). Ingen BeiDou-GEO, ingen PPP-heltalsmultiplicitetsfastlæggelse eller kinematisk RTK (statisk float-PPP og RTK på kort baseline på reelle data findes, se rækken GNSS / PNT), ingen SPICE-skriver og endnu ingen OPM/AEM (OEM-læseren findes via typen oem-interop, OMM-skriveren i src/omm.rs og en SPICE SPK/PCK-læser i src/naif_kernel.rs) — P2 "annektér tilstødende domæner via standardformater" |
| Rumvejr / miljø (iono/atmo/stråling) | delvis | space-weather-type (src/space_weather.rs): sol- og geomagnetiske indekser (Kp↔ap IAGA (International Association of Geomagnetism and Aeronomy) 28-trins tabel, daglig Ap, centreret 81-dages F10.7a), Jacchia-71 eksosfærisk temperatur og en aktivitetsdrevet kobling til termosfærens massefylde over en statisk atmosfære — MODELLED af første orden, IKKE en NRLMSISE-model for absolut massefylde. Ionosfære: den udsendte Klobuchar-model (VALIDATED mod RTKLIB) og en læser af IONEX (IONosphere map EXchange format) TEC-kort (TEC: total electron content) (src/ionex.rs, enhedstestet). Et reelt globalt ionosfærekort fra CODE (CODG1330.18I) er det målte orakel for rækken om geometrifri skråt TEC (tests/geometry_free_tec_gim_oracle.rs), men den test evaluerer kortet i sin egen fixture-generator, så selve læseren src/ionex.rs er endnu ikke krydstjekket mod et reelt produkt; ingen fysikbaseret eller rumvejrsdrevet ionosfæremodel; P2+ |
| Navigation med tyngdekort / alt-PNT | delvis | src/gravimeter.rs: en gravimetermålemodel med kolde atomer, hvis hvidstøjsgulv er udledt af CAI-accelerometerets ASD (σ = ASD/√τ), et fuldt normaliseret kuglefunktionsfelt for tyngdeanomalier af lav grad (kontrolleret mod de lukkede Legendre-funktioner og en håndudledt anomali med ét led) samt syntetiske mascons, og et partikelfilter til tyngdekortmatchning (sammensat af mapmatch + particle_filter), der genfinder et GPS-nægtet spor ud fra den anomalisekvens, det flyver igennem. Benchmarken med 60 minutters GPS-nægtelse (run_gps_denied_gravity_nav, scenarios/gps-denied-gravity-nav.toml) flyver et udfald på ca. 700 km / én time, hvor den inertielle løsning driver til ≈ 70 km, og en hierarkisk grov-til-fin matcher med gravimeterets deterministiske, seedede hvide støj genfinder det til ≈ 145 m (< 500 m) — stabilt på tværs af støjrealiseringer og dokumenteret begrænset af forfining (et enkelt groft gitter går i stå ved ca. 2 km). Dertil en fuld IGRF-14 (IGRF: International Geomagnetic Reference Field) model af det geomagnetiske hovedfelt (src/igrf.rs: IAGA's Schmidt-normaliserede kuglefunktionsfelt til grad/orden 13, 2025,0 + sekulær variation, koefficienter maskingenereret ud fra den officielle igrf14coeffs.txt; kontrolleret mod den lukkede form for en tilted dipol, en differensberegning af det skalare potentiale og den kendte geomagnetiske pol og styrke) — det magnetfelt, en platform kan kortmatche til navigation ud fra magnetiske anomalier. Dertil terrænreferenceret navigation (TERCOM/SITAN (TERCOM: terrain contour matching; SITAN: Sandia Inertial Terrain-Aided Navigation)) og den kombinerede tyngde+magnet+terræn-navigator (src/altpnt/terrain.rs): en håndskrevet parser for SRTM (Shuttle Radar Topography Mission) .hgt digitale højdemodeller (DEM) (16-bit med fortegn, big-endian, rækkevis, nordligste række først, tomme felter -32768; kontrolleret mod specifikationen af GDAL's (Geospatial Data Abstraction Library) SRTMHGT-driver (Shuttle Radar Topography Mission height-file format) og et orakel i lukket form for bilineært midtpunkt), en radar-/barometrisk højdemåler-model og en run_terrain_nav-matcher, der genfinder et GPS-nægtet spor ud fra terrænhøjdeprofilen mod DEM'en, og run_combined_altpnt, som fusionerer tre skalare feltkanaler pr. waypoint (Δg mGal · |B| nT anomali i skorpen · højde m), så den fælles posteriorfordeling bliver skarpere (lavere CRLB (Cramér–Rao lower bound)) end noget enkelt felt — begrænset til < 500 m over udfaldet på 60 min og i middelværdi ikke dårligere end den bedste enkeltkanal. Dertil sekventiel (rekursiv) terrænreferenceret navigation — SITAN som et løbende filter (src/altpnt/sequential.rs, run_sequential_trn): den samme målemodel for højdemåler mod DEM køres epoke for epoke gennem particle_filter SIR-motoren (sampling importance resampling) (forudsig med INS-tilvæksten + processtøj → vægt om efter terræntilpasningen → resample ved degeneration), så en tidsvarierende INS-drift bliver fulgt langs sporet, hvor batch-matcheren kun genfinder en enkelt konstant forskydning — det rekursive estimat forbliver begrænset og konvergerer igen (slutværdi ≈ 70 m), mens den ustøttede løsning divergerer ubegrænset til ≈ 5 km, med fejl pr. epoke efter terrænets særpræg og en sundhedsmonitor for effektiv stikprøvestørrelse. Ærligt omfang: kortet er kendt og fast — rekursiv lokalisering mod en lagret DEM (lokaliseringsdelen af terræn-SLAM (simultaneous localisation and mapping)); fælles kortestimering er den separate RBPF nedenfor. Alle fire er nu koblet til scenariemotorens kind= (gravity-map, terrain-nav, combined-altpnt, terrain-slam) med et SVG-driftdiagram (scenarios/terrain-nav.toml, scenarios/combined-altpnt.toml, scenarios/terrain-slam.toml). 0,36 (WP-10): gravity-map-navigatoren tager et valgfrit reelt referencefelt ([reference]: medfølgende EGM2008 til grad 70 eller en ICGEM .gfc-fil), hvis anomalisyntese stemmer med ICGEM Calculation Service til ca. 1e-8 mGal (VALIDATED, xval/icgem-egm2008/); på det felt af grad 70 ender benchmarken på 60 min på 3106 m, så tærsklen på < 500 m er NOT MET (fastsat på forhånd og forudsagt: grad 70 er for glat). Et valgfrit Monte Carlo-forsøg med kortfejl ([map_error_mc], scenarios/gravity-map-error-mc.toml) viser, at den syntetiske positionsbestemmelse på 144 m forudsætter et nøjagtigt kort (1 af 20 realiseringer inden for 500 m ved en korreleret fejl på 2 mGal; exploratory). combined-altpnt tager et valgfrit EMAG2v3-gitter over skorpens magnetfelt ([magnetic_grid]; EMAG2 hentes og medleveres ikke, og intet navigationsresultat hævdes på det). terrain-nav forbliver bevidst kun DEM: det er TERCOM/SITAN-matcheren med én kanal, og magnetisk matchning ligger i combined-altpnt, som fusionerer terræn med magnet- og tyngdekanalerne; en magnetkanal i terrain-nav ville duplikere den, så revisionspunktet "EMAG2 ind i terrain-nav" er dækket af koblingen i combined-altpnt (RM-16). Kontrollerne mod reel SRTM kører i CI på to indcheckede udsnit i fuld opløsning (knude for knude lig med GDAL 3.8.4, xval/srtm-ungate/). Fælles kortestimering findes (run_sequential_trn_on_map, en RBPF i FastSLAM-stil): på ét gennemløb vinder den 1,5 % over SITAN med kendt kort på et fejlbehæftet kort og når ikke sin tærskel på 10 %, fastsat på forhånd (xval/terrain-slam-rbpf/). Mangler stadig: en tyngdemodel af høj grad i en navigationskørsel (kræver en ny præregistrering), et reelt resultat for magnetisk navigation på et reelt gitter og et SLAM-tilfælde med genbesøg (loop closure). P3 |
| Atmosfæreindtrængen / EDL (entry, descent and landing), opsendelsesanalyse, EO/nyttelast (EO: Earth observation) | delvis | Geometri af første orden, MODELLED, via tre kørbare typer: reentry (src/reentry.rs, ballistisk korridor efter Allen-Eggers — maksimal deceleration, hastigheder ved maksimal g og maksimal opvarmning, højde ved maksimal g), launch-window (src/launch.rs, tolegemers opsendelsesazimut sin Az = cos i/cos lat, Δv til planskifte, bonus fra stedets rotation, daglige muligheder) og eo-coverage (src/eo_payload.rs, EO-geometri for sporbredde / GSD (ground sample distance) / adgang / genbesøg efter SMAD (Space Mission Analysis and Design) rumtrekanten). Ingen 6-DoF EDL-/aerotermisk simulering, ingen banenoptimering, ingen sensorradiometri/MTF (MTF: modulation transfer function). P3 |
| Måne- / cislunar PNT (LunaNet) | delvis | src/lunar.rs: en lunar ARAIM-motor, der genbruger MHSS-kernen fra jordsiden med LunaNet LNIS-parametre (LNIS: LunaNet Interoperability Specification) (σ_URE ≈ 30 m, P_sat ≈ 1e-4), den cislunare referencesystemreduktion MCI↔MCMF (MCI: Moon-centred inertial; MCMF: Moon-centred, Moon-fixed) (mci_to_mcmf / mcmf_to_mci, en forenklet model med middelrotation med den siderale rate) og selenografisk bredde/længde/højde (mcmf_to_selenographic) samt en beskyttelsesniveau-overflyvning ved sydpolen (south_pole_hpl_pass), der kvantificerer integritetshullet — med afstandsmåling på 30 m er HPL endelig, men overstiger en alarmgrænse på 50 m for operationer på overfladen. src/cr3bp.rs tilføjer Jord–Måne-CR3BP (circular restricted three-body problem) (dynamik i roterende system + RK4-propagator + Jacobi-konstant + de fem Lagrange-punkter, kontrolleret mod de offentliggjorte værdier for L1/L2/L3 og de eksakte for L4/L5) — trelegemekernen, som en reel NRHO (near-rectilinear halo orbit) kræver — og en tilstandsovergangsmatrix + differentialkorrektor med enkeltskydning (cr3bp_jacobian, propagate_state_stm, differential_correct_halo), der giver ægte periodiske L2-halo-/NRHO-baner: STM'en er kontrolleret mod differensberegning, korrigerede halobaner lukker sig selv til maskinpræcision (Jacobi-bevarende), og seeding med den offentliggjorte apolun-tilstand gengiver L2 sydlig 9:2 NRHO (Gateway-banen) med periode ≈ 6,57 d og perilun ≈ 3.250 km — i overensstemmelse med de offentliggjorte ≈ 6,56 d / ≈ 3.370 km | De differentialkorrigerede NRHO-begyndelsesbetingelser (IC) er nu koblet ind, men den de-normaliserede selenocentriske (MCI/MCMF) transformation af den korrigerede bane og familiefortsættelse er stadig opfølgende arbejde; den principale akseorientering af Månen efter DE440 med reel fysisk libration findes (src/lunar_orientation.rs, fra moon_pa_de440-PCK'en, kontrolleret mod SPICE pxform i tests/lunar_pa_orientation_spice_oracle.rs), men den ældre lunar::mci_to_mcmf-vej bruger stadig middelrotationen uden libration og uden den præcesserende pol; NRHO'en er en CR3BP-løsning (cirkulær, uden Solen) og er ikke valideret mod en reel LANS/Gateway-efemeride (LANS: Lunar Augmented Navigation Service); en kørbar scenarietype lunar-integrity (scenarios/lunanet-araim.toml) udstiller overflyvningen ved sydpolen fra CLI'en | selenocentrisk transformation + familiefortsættelse + SPICE/LunaNet-grænseflade: P3 |
| PNT til dybt rum / interplanetarisk (Mars, radiometrisk) | delvis | Leveret i v0.17.0. En radiometrisk navigationsmotor: iterativ lysrejsetid + Shapiro-forsinkelse, to-/en-/tre-vejs Doppler og afstand (Moyer med to ben), kohærent transponderomvending, regenerativ/PN (PN: pseudo-noise) afstandsmåling (CCSDS 414), Δ-DOR (CCSDS 506), medier med solplasma/troposfære/ionosfære (src/radiometric.rs); CCSDS-TDM (503) indlæsning og udskrivning (src/ccsds_tdm.rs); et reduceret-dynamisk SRIF (square-root information filter) med empiriske RTN-accelerationer (RTN: radial, transversal, normal) + et 3-tilstands ur om bord + Mars-modstand (src/deepspace_od.rs, clock_state.rs, mars_atmos.rs), der giver Mars-LMO (LMO: low Mars orbit) OD ≈ 0,2 m i en syntetisk lukket sløjfe; fusion af envejs og tovejs; en kerne for dynamik med flere legemer (src/body.rs, Mars GMM-3 (GMM: Goddard Mars Model), IAU's Mars-system src/mars_frame.rs, en EphemerisProvider-søm src/ephem_provider.rs, todelt JD + TT↔TDB (TDB: Barycentric Dynamical Time)); og relæ-PNT-scenariet mars-pnt (MARCONI-konstellation i areostationær bane, src/mars_pnt.rs) + en GSE-ydelsessimulator fra ende til anden (src/gse_sim.rs). Valideret ved simulering (kovarians/lukket sløjfe, kvalitetsmål); dynamik med Solen som centrum krydstjekket mod JPL (Jet Propulsion Laboratory) DE440 (137 m @ 1-dags bue, xval/anise-mars-od). Mangler: validering mod reelle DSN/ESTRACK-sporingsdata (ESTRACK: European Space Tracking network); Mars-tyngde i sit eget system (GMM-3-feltet af d/o 120 indlæses fra PDS SHADR-tabellen, from_shadr, VALIDATED mod pyshtools, og tilknyttes via Body::with_gravity_field, men evalueres i IAU-systemet frem for i dets eget Konopliv-2006-system); efemeride af DE-kvalitet i kernen (kernelstyret i xval). P3 |
| Solsystemet og PNT omkring et vilkårligt legeme | delvis | solar-system-type: positioner, hastigheder og fysiske konstanter for Solen, planeterne, Pluto, Månen og syv store måner på ét tidspunkt, med lysrejsetid mellem legemer; planeternes positioner (JPL Standish-elementer) og lysrejsetiden er VALIDATED mod JPL Horizons (tests/solar_system_horizons_reference.rs), mens månerne, Pluto og tabellen for de ydre planeter forbliver MODELLED. body-pnt-type: en orbiter eller lander omkring et vilkårligt katalogiseret legeme (Mars, Månen, Europa, Ganymedes, Titan og de øvrige), der navigerer på envejs-pseudoafstande fra en lokal Walker-konstellation plus en valgfri tovejs afstandsmåling fra Jorden — MODELLED. Ingen planetarisk efemeridekernel i kernen (analytiske elementer), relæbaner for body-pnt bruger kun J2 (fulde felter for Mars GMM-3 d/o 120 og Månens GRAIL GL0660B d/o 660 indlæses fra PDS SHADR-tabeller og knyttes til et Body for propagatoren, src/gravity_pds.rs). P3 |
| Kampagner / sammensætning af missioner | delvis | campaign-type (src/campaign.rs): eksisterende typer kædet sammen på én fælles tidslinje (for eksempel jamming, så spoofing, så holdover med en INS i frit løb, så en integritetsalarm, så genopretning), parametersweep og seedede Monte Carlo-ensembler over en vilkårlig type samt flere scenarier under fælles betingelser med en samlet oversigt; hvert tal aflæses fra en reel kørsel af medlemstypen. Sammensætningsidentiteter er testet (tests/campaign_composition_reference.rs: en kampagne med én fase gengiver den selvstændige kørsel byte for byte); MODELLED. En [optimize]-sektion (gitter eller afgrænset Nelder–Mead over en til tre nøgler, én metrik, minimér, maksimér eller ram et mål) opfylder sine tærskler i lukket form og med brute force, fastsat på forhånd (tests/campaign_optimize_reference.rs); MODELLED, en lokal søgning uden påstand om globalt optimum og uden gradient- eller bayesiansk metode. P3 |
| Rapporter, animation og output | delvis | Hver kørsel skriver result.json, et diagram og en rapport (report.html, report.json), hvis betegnelser aflæses fra verifikationsmatricen, og hvis registrerede kommando gengiver resultatet byte for byte (tests/advanced_report_cli.rs); --animate (svg, html eller frames) gengiver en tidsserie som animation (src/animation.rs, ANIMATION.md); --export skriver udvekslingsformaterne i rækken om interoperabilitet. Det er gengivelser af kørslen, ikke evidens om fysikken. |
Økosystem og parathed (følges ærligt, ikke en kodefunktion)#
| Område | Status | Bemærkning |
|---|---|---|
| Sprogbindinger og pakning | delvis | Rust + Python (abi3) + WASM på tre registre. Typede flader (0,36, CAP-34): Python RunOutput med NumPy-tilgangsfunktioner (array, columns, series) og stub-typede ScenarioKind / ErrorKind / KindMeta; JavaScript run_typed (et typet RunOutput-objekt) og scenario_kinds, med samme ordforråd i TypeScript-deklarationerne. Resultatdokumenter forbliver JSON pr. type, typet kun af deres fælles kuvert (units, versioner) |
| Uddannelse / onboarding-UX (user experience) | delvis | Browser-playground med guidet tilstand leveret: scenarietilpassede guidede skydere (web/studio/lib/guided.mjs, op til seks drejeknapper pr. scenarie) og en interaktiv guidet rundvisning (web/studio/lib/tour.mjs, kan afspilles igen fra playgrounden). Hver kørsel får også en betydningssætning i klart sprog og sine nøgletal, aflæst fra resultatdokumentet (web/studio/lib/meaning.mjs, med skabeloner pr. type i meaning-kinds.mjs; en type uden skabelon får sit første hovedtal angivet i klart sprog). Mangler: guidede forklaringer pr. tal ud over den sætning (den letforståelige GLOSSARY.md dækker dem) |
| Fællesskab / styring | delvis | Rammer for styring er på plads — GOVERNANCE.md (model med en velvillig vedligeholder + teknisk tærskel + grænse mellem åbent og lukket), CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md, skabeloner til issues/PR (PR: pull request), FUNDING.yml, dependabot. Enkelt grundlægger; et aktivt eksternt fællesskab (bidragydere, citationer) afhænger af mennesker og tid og er stadig under opbygning (opsøgende arbejde afventer gennemgang) |
| Finansiering og parathed til indkøb | ingen | TRL ~3; endnu ingen citationer/kontrakter fra agenturer (se strateginoter) |
Opdateret 2026-10-29 til motoren 0.40.0 (92 scenarietyper, fra kshana kinds --json; nye i 0.40.0: mission-thread, lunar-orbit-rendezvous, lunar-descent, lunar-surface og lunar-ascent). 2026-10-22: motor 0.39.0, 87 typer, ingen ny type. 2026-10-19: motor 0.38.0, 87 typer (nye i 0.38.0: holdover-test, gnss-ssv og lunar-infrastructure). 2026-10-18: 84 typer (ny i 0,37: optical-atmosphere). 2026-10-16: 83 typer (nye i 0,36: acm-link, aocs, ascent-losses, contact-schedule, entry-heating, eo-radiometry, lunar-station-coverage og time-transfer-budget). 2026-10-10: motor 0.35.0, 75 typer, ingen ny type. 2026-10-09 og 2026-10-08: tidligere revisioner. 2026-10-04: rækken Nav-signal nævner IQ-laget i 0.31.0. 2026-09-29: rækkerne LEO-PNT, spektrum, PNT for solsystemet / vilkårlige legemer, kampagne og output tilføjet. Tidligere: afstemt med 27-rækkers funktionsmatricen i den store audit 2026-06-02; række for PNT i det dybe rum / Mars tilføjet i v0.17.0. Tilføjelser om kvante-PNT (GNSS-nægtet ur-holdover src/holdover.rs, sammensat kvante-inertielt dødregningsbudget QuantumNavBudget, afvejning af udformning af afstandskoder CodeFamily, maskinkontrolleret verifikationsmatrix src/verification.rs) er indarbejdet i rækkerne Tidssynkronisering, Kvante-PNT-sensor, Nav-signal og V&V, hver betegnet valideret eller modelleret efter sin faktiske uafhængige reference.
Tilføjelser til FutureNAV-demonstratoren (modelleret, internt krydstjekket — ikke eksternt valideret): (1) Testbed til evaluering af maskinlæringsbaseret detektion af RF-forstyrrelser src/impairment_eval.rs — et mærket syntetisk (parameterforankret, ikke IQ) korpus af forstyrrelser + en detektoragnostisk ROC/AUC/confusion/Pfa-Pmd-harness (ROC: receiver operating characteristic; AUC: area under the curve) med lækagebeskyttelse og stratificeret opdeling; de medfølgende detektorer er gennemsigtige baselines efter offentliggjorte metoder, ikke SOTA (state of the art), og en høj AUC her viser pipelinen, ikke ydeevne i felten. (2) Afvejningsmotor for kvante mod klassisk PNT src/quantum_trade.rs — indlæsning af målt ADEV (NNLS-tilpasning (non-negative least squares) af σ_y²(τ)=q_wf/τ + q_rw·τ/3 + q_drift·τ³/20, rundtursstikprøvet mod q_from_allan), en fordelstabel for tidssynkronisering/inertielt holdover, der bærer forbeholdet om gulvantagelsen på selve artefakten, og en kurve for modstandsdygtighed mod tid ved GNSS-nægtelse; den kvantificerer en partners kvantefordel og validerer aldrig enheden. Begge er gennemgået kontradiktorisk (en fejl i driftbasis τ²→τ³ og en falsk påstand om "begrænset i det uendelige" modstandsdygtighed blev fundet og rettet). 911 lib-tests på tidspunktet for den tilføjelse, fmt+clippy rene.
Tilføjelse af interchange / standardformat (src/interchange.rs): Kshana Interchange Format (KIF) — en neutral, versioneret, selvbeskrivende Envelope, der omslutter ethvert artefakt (scenarie, resultat, afvejningsstudie) med et genkendeligt format-mærke, den enkelte kilde til sandhed SCHEMA_VERSION (skemaversionen, før kopieret som literal på 15 steder, ejes nu af én konstant, som hele cratet refererer til), den producerende engine_version og en eksplicit, testet kompatibilitetskontrakt (compatibility(): samme major / samme eller ældre minor kan læses under disciplinen med additive felter; en nyere minor eller en anden major afvises ved grænsen af Envelope::parse frem for at blive fejlfortolket i det stille). Kan køres rundt (wrap→to_json→parse→payload_as::<T>()) for enhver Deserialize-nyttelast; bevidst uden tidsstempler for at bevare Kshanas bit-for-bit-reproducerbarhed. Dokumenteret i SCHEMA.md, så formatet er citerbart og ikke blot udsendt — positioneringen som "standard i venteposition" for open core. 923 lib-tests på tidspunktet for den tilføjelse, fmt+clippy rene.
Tilføjelser i FutureNAV-dominansopbygningen (modelleret, internt krydstjekket — ikke eksternt valideret): (1) Frugalt lag for omkostning pr. dækning / ROI (return on investment) src/frugal.rs — et lag til fremstilling af fordele oven på motoren til dimensionering af konstellationer (walker), der rapporterer omkostning pr. procentpoint dækning og dækning pr. euro som ROI i forhold til en baseline; omkostningen pr. satellit er et af kalderen leveret, kildebelagt interval med lav/nominel/høj værdi (ingen opdigtede punktpriser), så output er intervaller og ikke tilsyneladende punkter; en modelleret økonomisk indramning af et modelleret dækningstal, ikke et tilbud. (2) Kortlægning af integritetspåvirkning ved udeblevet detektion src/integrity_impact.rs — kortlægger en uopdaget spoofing- eller jamming-forårsaget positionsbias til dens effektive fejl → Stanford-område (tilgængelig / systemet utilgængeligt / vildledende / farligt vildledende) mod kontekstspecifikke alarmgrænser (åben himmel mod by, HAL mod VAL), sammensat med den eksternt forankrede RAIM-funktion classify_stanford; broen fra udeblevet detektion til alarmgrænse er modelleret og ikke en certificeret integritetsallokering. Begge er kortlagt i den maskinkontrollerede verifikationsmatrix (src/verification.rs, invarianten Validated⇒ExternalDataset er intakt; det aktuelle antal rækker står i den genererede overskrift i VERIFICATION-MATRIX.md). Krydsvalideringen, lækagebeskyttelsen og den parameterstratificerede opdeling til AI-evalueringsharnessen blev allerede leveret i src/impairment_eval.rs (stratified_split, Split::has_leakage). 951 lib-tests på tidspunktet for den tilføjelse, fmt+clippy rene.
Tilføjelser i FutureNAV-studiet af optimismegabet (modelleret, internt krydstjekket mod lukkede former — ikke eksternt valideret, ikke en påstand om overgang fra simulering til felt): et kontrolleret syntetisk studie af optimismegabet i AUC mellem fordeling i træningsdata og uden for fordelingen for detektorer af RF-forstyrrelser. (1) Lærte detektorer src/impairment_ml.rs — et fast egenskabskort + en standardiserer tilpasset på træningsdata, en baseline med logistisk regression (deterministisk gradientnedstigning med fuld batch) og en MLP med ét skjult lag (multilayer perceptron; seedet backprop med SGD (stochastic gradient descent)) bag det samme ImpairmentDetector-trait som baselines efter offentliggjorte metoder bruger. (2) Håndudledte statistikker src/eval_stats.rs — percentil-bootstrap-konfidensintervaller (CI), DeLong-varians/CI for AUC, Spearman-ρ og ridge-regression, hver kontrolleret mod en lukket form (binormal AUC Φ(d′/√2), en håndregnet DeLong-varians, en lærebogs ρ med ties i rangen, eksakt genfinding af OLS (ordinary least squares)). (3) Studiet src/impairment_study.rs — AUC pr. klasse, tendensen i skaleringsloven pr. (detector,class) (gab mod 1−alvorlighed) og en ridge-gabprædiktor kun på fordelingen i træningsdata, der estimerer optimismegabet alene ud fra diagnostik i fordelingen, bedømt med leave-one-detector-out og leave-one-class-out mod en baseline, der forudsiger middelværdien. Artefakt med én kommando via cargo run --release --example optimism_study. Hvert tal er en AUC over modelafledte labels på et syntetisk, parameterforankret korpus; gabet er et skift i alvorlighed fra syntetisk til syntetisk, aldrig et resultat af detektion i felten. Kortlagt i den maskinkontrollerede verifikationsmatrix (src/verification.rs, invarianten Validated⇒ExternalDataset er intakt).