Maskinöversättning, inte granskad av en modersmålstalare. Engelska är referensen.

Validering och evidensRedigera på GitHubKälla: docs/VALIDATION.md

Valideringsstatus

Om toleranser. ”Validerad” nedan betyder att ett kalibreringstest kontrollerar att den simulerade statistiken stämmer med referenssambandet inom en tillämpad gräns, för närvarande 20–25 % relativt fel (medelvärde över frön) för sambanden för Allan-brus och brusbudget. Den mediana observerade överensstämmelsen är ofta mycket snävare (några procent), men den garanterade gränsen är tröskeln, inte medianen. Där ett tal som ”~2 %” förekommer är det en typisk observation, inte den tillämpade toleransen. Se Påståenden mot verklighet.

Befordringsregeln#

En rad i den maskinkontrollerade verifieringsmatrisen (src/verification.rs) är VALIDATED först när en oberoende referens oberoende av Kshana stämmer med implementationen inom en tolerans som angavs innan jämförelsen kördes, i ett test som körs i grinden. Det här avsnittet är det enda stället där regeln står nedskriven; matrisen, prosan per rad och versionsanteckningarna hänvisar till det.

De godtagna typerna av oberoende referens#

Typ Vad som räknas Exempel som redan finns i matrisen
Uppmätt Verkliga uppmätta data för den storhet som raden gör anspråk på: en observation av den fysiska världen, inte ett modellresultat. De två tredjedelar av en verklig cesiumklockregistrering som hölls undan; arkiverade normalpunkter från lunar laser ranging; BIPM:s (Internationella byrån för mått och vikt) serie Circular T UTC(k); terrängrutan från SRTM (Shuttle Radar Topography Mission).
Bibliotek Ett oberoende tredjepartsbibliotek eller -verktyg som beräknar en entydigt definierad storhet på samma indata, där biblioteket självt implementerar områdets beräkning. Överensstämmelse mellan bibliotek är en äkta kontroll bara därför att storheten har ett enda rätt svar. allantools, Orekit, ANISE, RTKLIB, gnss_lib_py, lamberthub, pymcdm, scikit-learn, SciPys statistiska fördelningar.
Referens Publicerade referensvektorer, tabeller eller verifieringsexempel: tal som en standard, en myndighet eller en referenstext skriver ut så att implementationer kan kontrolleras mot dem. Vektorer från SOFA/ERFA (Standards of Fundamental Astronomy), verifieringsvektorerna för SGP4 från AIAA (American Institute of Aeronautics and Astronautics), valideringsexemplen från ITU-R (International Telecommunication Union, Radiocommunication Sector), det genomgångna ARAIM-exemplet från Working Group C, JPL (Jet Propulsion Laboratory) Horizons.

Ytterligare två standarder avgör gränsfallen. Båda antogs för version 0,30.

  • P1, ett publicerat genomräknat värde. Ett publicerat genomräknat värde som beräknats ur samma slutna uttryck som raden implementerar räknas som en publicerad referensvektor, när publikationen är oberoende av Kshana och jämförelsen fastställer en angiven tolerans. Värdet måste vara utskrivet som ett tal i publikationen (ett värde avläst ur ett diagram räknas bara om avläsningsosäkerheten ryms inom den angivna toleransen), och testet måste låta Kshana beräkna det ur publikationens indata; att jämföra en konstant med dokumentet den kopierades från är en transkriptionskontroll, inte P1.
  • P2, ett oberoende numeriskt bibliotek. Ett oberoende numeriskt bibliotek som numpy eller LAPACK (Linear Algebra PACKage) och som räknar om en entydigt definierad storhet i linjär algebra på angivna indata räknas som ett oberoende bibliotek. Biblioteket måste utföra uppdelningen, inversen, lösningen eller minsta kvadrat-steget med sin egen algoritm, på indata som är incheckade tillsammans med testunderlaget; det validerade påståendet är då den linjära algebran på dessa indata, inte de fysiska storheterna i ett representativt scenario. Ett skript som räknar om ett skalärt slutet uttryck med numpy-aritmetik är en andra implementation av vårt eget, inte P2.

Villkor som gäller för varje typ: den oberoende referensen är inte skriven, körd eller publicerad av det här projektet (förrådets egen artikelserie är därför inte oberoende av det); toleransen finns i testet och fastställdes före den första jämförelsen; ett datastyrt test som hoppas över när dess offentliga data saknas säger det när det hoppar över.

Vad som inte räknas#

  • Vår egen andra implementation: en andra kodväg i den här craten (ReferenceImpl), eller ett skript i det här förrådet som räknar om samma slutna uttryck.
  • Överensstämmelse med vår egen tidigare utdata: gyllene värden, regressionsfästen, ögonblicksbilder eller en tabell från projektets egna artiklar.
  • En transkription av konstanterna i en referens: att kontrollera en koefficient, förinställning, datablads-siffra eller parameterblad mot dokumentet den kopierades från.
  • Ett utformningsval: en fördelning, viktning, tröskel, larmgräns eller ett representativt scenario. Det finns ingen extern sanning för ett val.
  • En intern identitet: en numerisk integral mot sin egen analytiska form, en rundtur, en inversion, ett test av egenskap eller monotonicitet.
  • En integrationskörning mot en verklig värd (IntegrationRun): att läsa in ett insticksprogram i en verklig Signal K-server eller OpenCPN, eller mata en verklig grinds utdata till en TCP-konsument, och kontrollera att värden tar emot indata och visar det förväntade tillståndet. Det visar att kopplingen fungerar. Värden är ingen oberoende referens för något värde som integrationen för med sig, så det finns inget externt att jämföra mot och en sådan rad (raden om marina integrationer) är MODELLED, inte VALIDATED. IntegrationRun är en egen typ av oberoende referens som bara är tillåten på MODELLED-rader: integration_run_only_on_modelled_rows i src/verification.rs fallerar om en VALIDATED-rad har den, och validated_rows_require_an_external_oracle kräver redan att varje VALIDATED-rad är ExternalDataset.
  • Rimlighet på verkliga indata: verkliga data som används enbart som indata, med kontroller av storleksordning i stället för en jämförelse mot ett externt värde.
  • En tolerans som valts efter att jämförelsen setts.

Hur regeln upprätthålls#

Varje VALIDATED-rad deklarerar, i validated_oracle_basis() i src/verification.rs, vilken typ den vilar på (Measured, Library, Reference, P1 eller P2), den oberoende källan (citerad ur radens egen text om oberoende referens) och det enda test som bär jämförelsen. Enhetstesterna bredvid tabellen fallerar när en VALIDATED-rad saknar deklaration eller är deklarerad två gånger, när en deklaration pekar ut en rad som inte är VALIDATED, när den deklarerade källan inte är den som radens text om oberoende referens anger eller är Kshana självt, när det deklarerade testet inte är ett som raden åberopar, eller när en P2-rad inte anger något oberoende numeriskt bibliotek. tests/verification_rows_declare_an_oracle_basis.rs kräver sedan att det deklarerade testet finns på disk som ett verkligt #[test] som inte är ignorerat. Det maskinen inte kan kontrollera är om det angivna testet jämför mot den deklarerade källan; det förblir en mänsklig läsning. Antal per typ skrivs inte ut här: tabellen är källan.

Befintliga VALIDATED-rader omprövade enligt regeln#

Regeln tillämpades på de befintliga raderna såväl som på framtida befordringar.

  • P1-rader som utpekats av valideringsstudien för 0,30, var och en stödd: Länkbudget för en riktning (designkontrolltabellen för Galileo X-band i JPL Pub 82-76, återskapad ur sina radposter till 4.6e-3 dB frirumsförlust); Bandbegränsade slutna uttryck för valfri avståndssignal (90,3 procent av huvudlobens effekt och det publicerade koherenta early-late-jittret); Maximal dopplerförskjutning för en navigeringssatellit i låg jordbana (de publicerade värdena för Xona Pulsar X1 och Iridium); Maximal dopplerförskjutning som en stillastående användare ser från en LEO- eller MEO-bana (tabell 1 i Pulsar-artikeln, 20 värden); Dopplerförskjutning som en markmottagare måste hantera från en LEO-navigeringssatellit (samma publicerade värden från en flugen bana). Varje publikation är oberoende av Kshana, skriver ut sina tal, och testet anger sin tolerans.
  • Ytterligare rader som vilar på P1, funna vid omprövningen, var och en stödd: Avvägning för avståndskoders utformning (den publicerade Gold-korskorrelationen på −23,9 dB); Månens koordinattid (Ashby och Patla 2024, vars korskontroll av månens hastighet mot DE440 är en biblioteks-kontroll); Slutna uttryck för effektspektraltäthet för L-bandssignaler (Q-värden från Kaplan och Hegarty); Jonosfärsfördröjning av första ordningen per band (kvoten för gruppfördröjning i IS-GPS-200); Globala medelvikter för avståndsfel i signalen i rymden (tabellen från Montenbruck, Steigenberger och Hauschild 2018).
  • P2-rader som utpekats av studien, var och en stödd: Fisher-information och Cramér–Rao-observerbarhet (numpy eigh/inv); Identifierbarhet för månens datum; Kopplad gauge för månens referenssystem och tidsskala; Autonom pipeline för felobserverbarhet i fria nät (numpy/SciPy SVD, singulärvärdesuppdelning). Var och en räknar om en entydigt definierad storhet i linjär algebra på incheckade indata med en annan algoritm än Kshanas Jacobi-egenvärdeslösare.
  • Ytterligare rader som vilar på P2, funna vid omprövningen, var och en stödd: MCDA (multikriterieanalys) för härledning av prioriteringar (AHP, analytisk hierarkiprocess, egenvektor med SciPy/LAPACK; tabellen med slumpindex som den också återskapar är en transkription och räknas inte); Varians vid utrullning i klock-holdover (SciPy expm av Van Loans utvidgade matris); Realisering av månens referenssystem (en numpy-SVD-lösning enligt Umeyama); CRPA-strålformning (controlled reception pattern antenna) (komplex lösning med LAPACK); Kärna för skyddsnivå i ARAIM på månen (RTKLIB:s LU-invers med SciPy-kvantiler); Konsistens mellan leverantörer för månens referenssystem/dynamik (en numpy-SVD-anpassning med minsta kvadrat av tre publicerade efemerider).
  • Flaggade i första omgången, återförankrade i omgång 2 av körningen för 0,30. Tre rader flaggades som inte stödda av den nedskrivna regeln. Var och en vilar nu på en jämförelse som förhandsregistrerats innan dess testunderlag hämtades, så ingen rad är flaggad; ett enhetstest bredvid validated_oracle_basis() fäster den (nu tomma) listan.
    • Integritet (RAIM/ARAIM/SBAS). De åberopade testerna kontrollerade tidigare bara rimlighet på verklig geometri från IGS (International GNSS Service). Raden vilar nu på tre oberoende referenser i form av bibliotek: ARAIM:s multipla hypoteser och lösningsseparation enligt Airborne Design Document v4.2 mot Stanford MAAST för ARAIM 2 (270 verkliga fall, största VPL-skillnad 2.2e-3 m mot 0,05 m); snapshot-RAIM:s detektion och uteslutning mot RTKLIB raim_fde (2016 av 2016 beslut identiska) med skyddsnivån för lutning; och SBAS-skyddsnivåerna för DO-229E L1 mot Stanford MAAST på verkliga WAAS-sändningar (2868 par inom 1.6e-5 m). Raden säger öppet att funktionerna med enhetlig sigma raim::araim_raim och raim::araim_dual_raim inte överensstämmer med ADD och att jämförelsen för SBAS med två frekvenser på L5 är ett fynd.
    • Planeternas positioner i hela solsystemet ur de keplerska elementen från JPL Standish. Den efterhandsvalda tröskeln på det dubbla nominella felet har ersatts av en förhandsregistrerad tröskel: RMS högst värdet i Explanatory Supplement, tabell 8.10.1, per planet och komponent, mot JPL Horizons DE441, med jord–måne-uppdelningen och ICRF-rotationen täckta.
    • Ljustid mellan himlakroppar i solsystemet. Lösaren för ljustid jämförs nu med ljustider från Horizons inom 1e-6 s på positioner från DE441, en förhandsregistrerad tröskel som inte ärver positionströskeln.
  • MODELLED-rader som de två policyerna gör möjliga att befordra (bara genom körningen för 0,30 rad för rad, aldrig genom den här texten): enligt P1 gränsen för geolokalisering av sändare med TDOA/FDOA (skillnad i ankomsttid och frekvens), kopplingen mellan relativistisk klockgång och referenssystem, synkroniseringsmaskerna i ITU-T (Telecommunication Standardization Sector) (bara för maskvärden som rekommendationerna skriver ut som tal; de transkriberade brytpunkterna kontrollerade mot sig själva räknas inte) och gränsen för positionering med icke-markbundet 5G-nät (bara om ett publicerat genomräknat värde hittas); enligt P2 integritetsblindhet i gemensamt läge, den skalära skyddsnivån för tid enligt MHSS (multiple-hypothesis solution separation) och GLS-blekningen (generaliserad minsta kvadrat). De två benchmarkraderna för integritet i tid (klassificeraren för Stanford-integritetsdiagram och poängsättaren för integritetstäckning) är regelbaserad klassificering, inte linjär algebra, så P2 når dem inte; de behöver ett oberoende verktyg, och det enda som hittats (gLAB) har en licens för icke-kommersiellt bruk.
  • Konsistens med tidigare avvisanden. Vallado-kontrollen i raden om uppskjutningsfönster skulle nu kvalificera enligt P1 om dess test räknar ut det utskrivna genomräknade exemplet; planen för 0,30 befordrar den i stället via Orekit. Tabellen över tidpunkten då månens tid korsar per klockklass förblir MODELLED: tabellen den återger kommer från projektets egen artikel, som inte är oberoende.
Brusterm Status Evidens
Likvärdighet mellan Allan-estimatorer (ADEV/MDEV/TDEV/OHDEV (ADEV: Allan-deviation; MDEV: modifierad Allan-deviation; OHDEV: överlappande Hadamard-deviation)) validated Två kontroller mot primärkällor, mot NIST (National Institute of Standards and Technology) SP (Special Publication) 1065 (Riley, Handbook of Frequency Stability Analysis, 2008), båda med relativ tolerans 1e-4. (1) tests/allan_reference.rs: estimatorerna för överlappande ADEV, modifierad ADEV, tidsdeviation och överlappande Hadamard återger deviationerna för den kanoniska datamängden NBS14 med 10 punkter (SP 1065 tabell 29/30, s. 107) vid tau = 1, 2 – överensstämmelsen är i själva verket ~1e-6 (till exempel överlappande ADEV (OADEV) vid τ = 2: 85,952868 mot 85,95287). (2) tests/allan_nist_sp1065_1000point.rs: samma fyra estimatorer återger datamängden med 1000 punkter i SP 1065 §12,4 (tabell 31, s. 108) vid medelvärdesfaktorerna 1 / 10 / 100, där datamängden återskapas i kod ur LCG:n i SP 1065 (ekv. 73) – hermetiskt, ingen testfil. Samma data och tabell 31-tal är regressionsmålet i aewallin/allantools (tests/nbs14), återgivet här utan tredjepartskod. Detta fäster estimatorernas matematik mot referensen, skilt från raderna för brus-kalibrering nedan.
Likvärdighet mellan Allan-estimatorer på verklig uppmätt hårdvara validated tests/cs5071a_reference.rs: estimatorerna för överlappande Allan och överlappande Hadamard återger referensdeviationerna från Stable32 för en verklig cesiumprimärstandard 5071A uppmätt mot en vätemaser (556 990 fassampel vid τ₀ = 1 s; 1 PPS (pulse per second) in i en 53230A-räknare, feb 2014; insamlat av A. Wallin, distribuerat med allantools). Kontrollerat över hela dekadstegen i τ (16 medelvärdesfaktorer, τ = 1 s … 4×10⁴ s): väl samplade faktorer mot en relativ gräns på 1e-3 (observerad överensstämmelse är i själva verket ≤ 3e-5, till exempel OADEV(1 s) 3.317111e-10 mot Stable32 3.3171e-10), glesa faktorer vid långt τ måste hamna inom Stable32:s utskrivna konfidensband på 1‑σ. Detta kompletterar den syntetiska NBS14-likvärdigheten ovan med en kontroll mot en uppmätt klocka. Den råa fasfilen är tredjepartsdata utan licens för vidaredistribution och är därför git-ignorerad; scripts/fetch_cs5071a.sh återskapar den och testet skriver ut ett meddelande om överhoppning (CI (kontinuerlig integration) förblir grön) när den saknas. Bara de offentliga referenstalen från Stable32 är incheckade (tests/fixtures/cs5071a/); ingen tredjepartskod används.
Likvärdighet mellan Allan-estimatorer på den kanoniska Stable32-filen PHASE.DAT validated tests/phasedat_reference.rs: estimatorerna för överlappande Allan, modifierad Allan och tidsdeviation återger referensdeviationerna från Stable32 för PHASE.DAT – serien med 1001 punkter som distribueras med Stable32 och som oberoende verktyg (till exempel allantools) använder som sitt standardmål för regression – över hela stegen av medelvärdesfaktorer (139 faktorer) mot en relativ gräns på 1e-3 (observerat ≤ 5e-5). En andra, oberoende verklig referensserie vid sidan av kontrollen mot uppmätt cesium ovan. PHASE.DAT levereras med det kommersiella verktyget Stable32, så den råa serien är git-ignorerad; scripts/fetch_phasedat.sh återskapar den och testet hoppas över som grönt (CI förblir grön) när den saknas. Bara de offentliga referenstalen från Stable32 är incheckade (tests/fixtures/phasedat/); ingen tredjepartskod används.
Stabilitet hos optisk klocka på en verklig uppmätt kurva validated tests/optical_clock_adev_reference.rs: inversionen av klockbrusparametrarna (quantum_trade::qparams_from_adev_curve) återger den publicerade σ_y(τ) för optisk gitterklocka med ⁸⁸Sr från Norcia m.fl., Science 366:93 (2019) (Zenodo 10.5281/zenodo.3382347, CC-BY-4.0 (Creative Commons Attribution 4,0), kurvan inkluderad i tests/fixtures/optical_clock_adev/): den återvunna koefficienten för vitt frekvensbrus √q_wf ≈ 4.33e-16 stämmer med artikelns kortsiktiga stabilitet ≈4.7e-16/√τ (~10 % RMS (root mean square) över kurvan) och anpassningen upptäcker ett uppmätt golv skilt från noll (q_rw > 0). Detta fäster inversionen från uppmätt ADEV till brusparametrar mot en verklig optisk klocka; nyttan med holdover till tröskel som bygger på den förblir MODELLED.
ROC (receiver operating characteristic) AUC (area under the curve) för anomalidetektion på verklig telemetri från ESA (European Space Agency) OPS-SAT validated (återger etiketter) tests/opssat_ad_reference.rs: på datamängden OPSSAT-AD (Ruszczak m.fl. 2025, Zenodo 10.5281/zenodo.12588359, CC BY 4,0) – verkliga OPS-SAT-segment med övervakningsdata och anomalietiketter som facit – återger Kshanas Mann–Whitney-ROC-AUC (impairment_eval::auc) scikit-learn roc_auc_score inom < 1e-9 på den undanhållna testdelen (529 segment, 113 anomalier), för två deterministiska poäng: en genomskinlig detektor med ett enda särdrag (segmentets antal toppar, AUC ≈ 0,851) och en diagonal Mahalanobis-poäng med 8 särdrag anpassad på de normala träningssegmenten (AUC ≈ 0,556); eval_stats::bootstrap_auc_ci omger punktskattningen med ett intervall vars nedre gräns ligger över slumpen. Detta validerar AUC-beräkningen på verkliga ESA-data och en genomskinlig detektors etiketterade separation – det återger inte det bästa publicerade måttet i OPSSAT-AD-artikeln (en övervakad FCNN (fully connected neural network), F1 ≈ 0,95), som kräver deras tränade modell. CC-BY-data inkluderade (tests/fixtures/opssat/, hermetiskt); referensen återgenereras av generate_opssat_oracle.py.
Syntes av gravitationsfältsfunktionaler (gravitationsstödd / GNSS-fri (GNSS: global navigation satellite system) navigeringskarta) validated tests/icgem_gravity_reference.rs: kärnan för funktionaler av gravitationsfältet i sfäriska harmoniska funktioner (gravity_sh::gravity_magnitude / gravity_disturbance_mgal) – ”kartläsaren” som en gravitationsstödd navigator matchar mot – är validerad mot normalgravitationen enligt GRS80 (Geodetic Reference System 1980) (Moritz 1980, antagen av IAG (IAG: International Association of Geodesy)). Att bygga GRS80:s normalfält ur dess publicerade jämna zonala harmoniska J₂…J₈ och syntetisera tyngdkraften (gravitation + centrifugalkraft) på ellipsoiden återger den slutna normalgravitationen enligt Somigliana, och de publicerade ekvatoriella/polära värdena γ_e = 9,7803267715 / γ_p = 9,8321863685 m/s², inom 3.5e-12 relativt över alla breddgrader (gräns 1e-9). Samma kärna läser in den ledande verkliga jordmodellen EGM2008 (Earth Gravitational Model 2008) från ICGEM (International Centre for Global Earth Models) (NGA (National Geospatial-Intelligence Agency), allmän egendom via ICGEM; läsaren from_gfc prövas också på GRAIL-månfältet (Gravity Recovery and Interior Laboratory) i tests/agency_lro.rs) och ger en fysiskt begränsad karta över gravitationsstörning (RMS ≈ 26 mGal, max ≈ 89 mGal vid d/o 70). Validerar synteskodens korrekthet; noggrannheten i positionsbestämning med gravitationsstöd förblir MODELLED (ingen offentlig bana med gravimeter på en plattform och facit finns).
Edf specifik för brustyp (konfidensintervall) validated src/allan.rs: χ²-konfidensbandet för varje punkt i överlappande ADEV använder de effektiva frihetsgraderna specifika för brustyp (slutna uttryck i NIST SP 1065 tabell 5 för vit och flimrande fasmodulation, vit och flimrande frekvensmodulation och slumpvandring i frekvensmodulation (WPM/FPM/WFM/FFM/RWFM) – den enkla uppsättningen i Stable32), där registrets potenslagstyp identifieras ur dess MDEV-lutning i log-log. Tre oberoende kontroller: (a) de fem formlerna återger handräknade värden vid N=64,m=4 inom 1e-12; (b) ett Monte Carlo-ensemble med vitt FM (FM: frekvensmodulation) (4 000 register) mäter estimatorns faktiska chi-kvadrat-edf = 2·medel²/Var(σ²) och stämmer med formeln inom 20 % (och slår med god marginal det konservativa antalet utan överlapp); (c) tests/allan_nist_sp1065_1000point.rs återger den utskrivna SP 1065 tabell 32 (s. 109) edf = 146,177 för datamängden med 1000 punkter vid m=10 (vitt FM) inom 5e-3, och tabellens konfidensgränser på 95 % (8.223942e-2 / 1.035201e-1) inom <0,2 % (den lilla resten är Wilson–Hilferty-approximationen av χ² mot NIST:s exakta χ²). Den exporterade ADEV-kurvan bär den identifierade brustypen, edf och bandet på 95 % per τ.
Vitt FM (kortsiktigt) validated tests/calibration.rs: simulerad överlappande ADEV återger publicerad sigma_y(1 s) – vanligtvis inom några procent, tillämpad gräns 20 % (CSAC och målet för optiskt gitter) – och kurvan för vitt FM sigma_y(tau)=sigma_y(1s)/sqrt(tau) över tau = 1, 10, 100 s inom en gräns på 25 % (stämmer med databladet för CSAC (chipskalig atomklocka) 3e-10 / 1e-10 / 3e-11).
Slumpvandring i FM (långsiktigt) validated tests/calibration.rs: simulerad ADEV stämmer med sigma_y^2(tau)=q_rw*tau/3 (Riley, NIST SP 1065) inom ~20 % (medelvärde över frön).
Åldring / linjär drift modeled + kalibrerad bort Deterministisk; holdover-estimatorn tar bort offset och åldring med en kvadratisk prediktor, så resten är den stokastiska gränsen. Testad i src/estimator.rs / src/models.rs.
Kalman-estimator + integritetsgräns validated src/kalman.rs: ett filter med två tillstånd (fas, frekvens) vars exakta processbrus enligt van Loan matchar sanningsmodellen; utrullning återger den analytiska holdover-variansen q_wf*T + q_rw*T^3/3 inom 1e-9. Kovariansuppdateringen sker i stabiliserad Joseph-form P⁺ = (I−KH)P(I−KH)ᵀ + KRKᵀ, som förblir positivt semidefinit (kontrollerat med Cholesky) genom 500 steg av prediktion/uppdatering vid ett extremt förhållande R=1e-26 / Q≈1e-30, och stämmer med den naiva formen inom 1e-9 där den senare är väl konditionerad. Körningslagret rapporterar integritet som andelen avbrottssampel inom skyddsgränsen på 3 sigma (src/run.rs).
Filtrets självkonsistens (NIS (normaliserat innovationskvadrat) / NEES (normaliserat skattningsfelskvadrat)) validated (modell) src/filter_health.rs: en konsistensbedömning med Monte Carlo (Bar-Shalom §5,4). Det matchade filtrets sammanslagna NIS → 1 och NEES → 2 hamnar inom sina χ²-band på 95 % (NIS-bandet använder det sammanslagna antalet vita innovationer; NEES-bandet använder antalet oberoende körningar, eftersom skattningsfel är korrelerade i tid). Ett test med svep över Q/R-felmatchning kontrollerar att monitorn rapporterar consistent=true bara vid enhetsinställning och consistent=false vid felinställning ×0.1/×0.5/×2/×10, med NIS som skalar som ≈1/q_factor enligt härledningen. Visas som filter_health i klockans resultat-JSON (JavaScript Object Notation) och på ett kort i lekplatsen. χ²-banden använder Wilson–Hilferty-kvantilen (detection::chi2_inv_cdf, kontrollerad mot tabell).
Modell för tvåvägs tidsöverföring validated (modell) src/timetransfer.rs: den reciproka gemensamma fördröjningen upphävs exakt i skattningen (m_AB - m_BA)/2 (härledd för hand, exakt) och två envägsmätningar medelvärdesbildas till 1/sqrt(2) (medelvärde över frön); den icke-reciproka differensfördröjningen är en färgad process med vitt FM + slumpvandring i FM vars Allan-deviation följer sigma_y^2(tau) = q_rw*tau/3 (medelvärde över frön, ~20 %, via länkens egen step()). Parametrarna (per länk sigma_j, q_rw) är representativa värden för TWSTFT/optisk (TWSTFT: two-way satellite time and frequency transfer), inte anpassade till någon specifik terminal.
Säkerhet (poäng för spoofing-detektion) validated (modell) src/security.rs: monitorns golv på 1 sigma sqrt(r/m + q_wf*tau + q_rw*tau^3/3) och den resulterande minsta detekterbara offseten på k sigma och poängen [0,1] är härledda för hand och enhetstestade. Modellen (innovation / klockstödd detektion i stil med RAIM (RAIM: receiver autonomous integrity monitoring)) är sund; parametrarna (övervakningsfönster tau, detektionsmultiplikator k, mätbrus r) är representativa, inte anpassade till någon specifik mottagare.
Detektion av spoofing-attacker validated (modell) src/spoof.rs: en ramprande falsk tid flaggas när dess offset överstiger klockans detektionsgräns; detektionstiden stämmer med det handräknade start + bound/rate inom ett rutnätssteg, och en klocka vars gräns överstiger specifikationen låter spoofingen nå tröskeln oupptäckt. Samma förbehåll för representative-parameters som för poängen för säkerhet.
Flimrande FM (golv) modeled (av som standard) Syntetiserat som en summa av logaritmiskt fördelade Ornstein-Uhlenbeck-processer (OU) kalibrerade mot ett konfigurerbart plant ADEV-golv; src/models.rs validerar att golvet är plant över medelvärdestiden och ligger på den konfigurerade nivån (medelvärde över frön). Aktiveras per klocka via flicker_floor. De åberopade referensscenarierna lämnar det av: CSAC domineras av vitt FM över sitt databladsområde (1–1000 s) och det systematiska golvet hos den optiska klockan (~5e-17) representeras av dess noggrannhetsvärde.
Statistik för Monte Carlo-ensemble validated (aggregering) src/ensemble.rs: percentiler enligt närmaste rang och medelvärde över runs reproducerbara realiseringar; en enda körning kollapsar spridningen, bandet per tidssteg är ordnat p05 <= p50 <= p95, och omkörningar är bitidentiska. Detta är statistisk aggregering över den redan validerade enskilda körningen, inte en ny fysikalisk modell.
Klocka sigma_y(1 s) Källa
csac-sa45s (CSAC) 3.0e-10 Datablad för Microchip SA65 / SA.45s
optical-sr-lattice (Sr-gitter) 1.0e-15 optisk gitterklocka med strontium, rymdinriktat mål, arXiv:1503,08457

Status: vitt FM och slumpvandring i FM validerade; åldring modellerad och kalibrerad bort; flimrande FM modellerat och validerat (av som standard i de åberopade scenarierna).

Mognad: värdena för den optiska klockan är det rymdinriktade målet på markbunden hårdvara – ingen optisk strontiumklocka har flugit. Laboratorieklockor med Sr når 4.8e-17 (Oelker m.fl. 2019, Nature Photonics). Värdena för CSAC kommer från en driftsatt kommersiell komponent.

Samband: Riley, NIST SP 1065, ekv. 67 -- vitt FM sigma_y^2(tau)=h0/(2 tau); slumpvandring i FM sigma_y^2(tau)=(2 pi^2/3) h_-2 tau, likvärdigt med q_rw*tau/3 för en Wiener-process i frekvens med diffusionen q_rw.

Paket 2 – tröghetsbaserad dödräkning (kvanttröghetsmätenhet)#

Term Status Evidens
Konstant/kvarvarande bias -> position validated positionsfel = familjen 0,5bT^2 (Groves, AESS (Aerospace and Electronic Systems Society) Tutorial); handhärlett diskret test i src/inertial/mod.rs.
Velocity random walk (vitt accelerationsbrus) validated src/inertial/mod.rs: simulerad standardavvikelse (SD) för positionsfel stämmer med sigma_x(T)=sqrt(S_a*T^3/3) (Groves ekv. 54) inom ~12 % observerat (medelvärde över frön; tillämpad gräns 20 %).
Fysik hos accelerometer med kallatomsinterferometer (CAI) (från första principer) validated (modell) src/inertial/quantum_imu.rs: en kallatomsinterferometer av Mach–Zehnder-typ med tre pulser. Handverifierad mot läroboksgeometri – Rb-87 k_eff = 4pi/lambda ~ 1.611e7 rad/m; Phi = k_eff*a*T^2 ~ 1.580e4 rad vid 1 g, T = 10 ms; projektionsbrus sigma_Phi = 1/(C*sqrt(N)) = 2e-3 rad vid C = 0.5, N = 1e6; per skott sigma_a ~ 1.24e-6 m/s^2; skalningslagarna 1/T^2 och 1/sqrt(N); exponentiellt kontrastavtagande. q_va() härleder den vita accelerationens PSD (effektspektraltäthet) som den klassiska AccelModel använder. Ärlig omfattning: enbart golvet för kvantprojektionsbrus (~0,09 ug/sqrtHz här) – långt under verkliga vibrationsbegränsade enheter (1–50 ug/sqrtHz); vibrationstensorn, Coriolis och systematiska ljusförskjutningar är ännu inte modellerade (se QUANTUM.md).
Gyrobias + angular random walk (ARW) -> lutning -> koppling till tyngdkraften modeled (av som standard) En kvarvarande gyrobias och ARW driver ett attitydfel; lutningen kopplar in tyngdkraften (g*theta) i horisontellt specifikt kraftfel. src/inertial/mod.rs validerar den rena bias-baserade kubiska positionstillväxten exakt och ARW:s attitydtillväxt som en Wiener-process (medelvärde över frön). Aktiveras per sensor via gyro_bias och q_arw; av i de åberopade scenarierna med enbart accelerometer.
Biasinstabilitet (1/f-flimmergolv) modeled (av som standard) src/inertial/mod.rs: en 1/f-flimmerprocess (samma OU-syntes som validerats för klockan) vars plana golv för Allan-deviation ligger på koefficienten för biasinstabilitet; noll är ingen åtgärd, ett golv skilt från noll ändrar banan, båda reproducerbara. Aktiveras per sensor via bias_instability.
Accelerationens slumpvandring (rate random walk) validated src/inertial/mod.rs: biasen är en Wiener-process med Var(bias_rw(T)) = q_aa*T, kontrollerad som medelvärde över frön inom ~20 %. Aktiveras per sensor via q_aa.
Korsvalidering mot NaveGo (brusskoefficienter för IMU (tröghetsmätenhet)) validated tests/navego_imu_crossval.rs: en extern korskontroll mot NaveGo (R. Gonzalez, verktygslåda för INS/GNSS (INS: tröghetsnavigeringssystem) med öppen källkod, github.com/rodralez/NaveGo). Återger den syntetiska rundturen i NaveGos navego_example_allan.m på dess publicerade referensprofil för Microstrain 3DM-GX3-35: att driva vår estimator för överlappande ADEV (validerad mot NBS14/Stable32) med vitt sensorbrus på NaveGos nivåer på 1 σ återvinner koefficienterna för velocity random walk och angular random walk (VRW, ARW) (ADEV(1 s) = σ·√dt) inom < 5% (faktiskt ~0,4 %), med den vita brusgrenen på lutningen −1/2. Bekräftar att vår Allan-pipeline och NaveGos definitioner av VRW/ARW stämmer överens. Den inspelade loggen .mat från STIM300 på 40 MB läses inte in (begränsad av binärformatet).
Skalfaktor, finare korsaxeltermer not modeled i det här paketet med 1-DOF (en frihetsgrad) Det äldre paketet med en axel har inget fel för skalfaktor eller korskoppling. Biblioteket för strapdown med tre axlar och paketet gnss-ins modellerar däremot skalfaktor, felinriktning, g-känslighet, kvantisering och hastighetsramp (src/inertial/imu_errors.rs; se tabellen med påståenden nedan).
Sensor biasstabilitet brus som rot-PSD Källa
cold-atom-quat (kvant) 5.88e-7 m/s^2 (60 ng, 24 h) 22 ug/sqrtHz = 2.16e-4 (m/s^2)/sqrtHz Templier m.fl. 2022, Science Advances (arXiv:2209,13209)
nav-grade-quartz (klassisk) 1.57e-3 m/s^2 (~160 ug) ~20 ug/sqrtHz = 1.96e-4 (m/s^2)/sqrtHz Honeywell QA-2000 / Groves AESS Tutorial

Ärlig inramning: fördelen med kalla atomer är långsiktig biasstabilitet (~2600 gånger lägre), som dominerar ett långt GNSS-avbrott via 0,5bT^2. Det kortsiktiga bruset är jämförbart (kvant ~22 mot klassisk ~20 ug/sqrtHz) – kvantsensorn vinner maratonloppet, inte spurten. Mognad: accelerometrar med kalla atomer är på laboratorie-/tidigt stadium (JRC122785), kvarts av navigeringsklass är driftsatt.

Term Status Evidens
Vitt tidsjitter -> synkroniseringsprecision validated src/timetransfer.rs: simulerad RMS för synkronisering återger länkens jitter sigma_j; sampelmedelvärdet medelvärdesbildas som sigma/sqrt(N) inom <20 % (medelvärde över frön).
Tid -> avståndsmätning i en riktning validated avstånd = c * dt, c=299792458 m/s; 1 ps = 0,299792458 mm (exakt, handhärlett test).
Flimmer-/TDEV-golv, rest av reciprocitet i tvåvägs modelled src/twstft_budget.rs (typen time-transfer-budget): flimmerfasbrus (Kasdin–Walter, plan TDEV), en dygnsvis icke-reciprocitet och en konstant reciprocitetsrest på tvåvägsserien; paketet timetransfer med vitt jitter är oförändrat.
Länk jitter för ett enskilt sampel typ källa
optical-isl 1 ps (1e-12 s) mål som är trovärdigt i omloppsbana optisk länk mellan satelliter, synkroniseringsmål på pikosekundsnivå; labb-O-TWTFT (TWTFT: two-way time and frequency transfer) ~1 fs (Giorgetta 2013 / Deschenes 2016)
twstft-rf 0,5 ns (5e-10 s) uppmätt under en enskild session BIPM/PTB/NIST (BIPM: Internationella byrån för mått och vikt; PTB: Physikalisch-Technische Bundesanstalt, Tysklands nationella metrologiinstitut) TWSTFT

Ärlig inramning: det optiska värdet är ett synkroniseringsmål på pikosekundsnivå i omloppsbana (inte flugit). Det markbundna optiska laboratoriegolvet är ~1 fs (mycket bättre); en välkonstruerad mikrovågslänk (mikrovågslänken (MWL) i ACES (Atomic Clock Ensemble in Space), ~0,3 ps) kan konkurrera med optisk, så baslinjen ”RF = 0,5 ns” avser specifikt vanlig TWSTFT. Omvandlingen till avstånd gäller envägs (avstånd = cdt); tvåvägs/tur och retur halverar den (avstånd = cdt/2).

Paket 4 – hybridsammanslagning (slutprov)#

Sätter ihop paket 1 (klocka), paket 2 (tröghet) och paket 3 (tidsöverföring) till en PNT-svit (positionering, navigering och tidssynkronisering). Sviten måste hålla BÅDE tid (< specifikation för tid) och position (< specifikation för position) inom gränserna; pnt_holdover_s är tiden tills någondera överskrids. Valfri optisk tidsöverföring över länk mellan satelliter (ISL) synkroniserar om klockan under avbrottet (endast stöd för tid – position synkroniseras inte om, eftersom tidsöverföring ger tid, inte position).

Aspekt Status Evidens
Kombinerad PNT-poängsättning (tid OCH position) validated src/hybrid.rs handhärlett score_hybrid-test (pnt_holdover = den första av tid/position som överskrids).
Integritet + säkerhet för hybridpaketet validated src/hybrid.rs: en Kalman-estimator för tid som disciplineras mot sanningen (nominellt) och ankras om vid varje optisk omsynkronisering; integritet är innehållet inom skyddsgränsen (gränsen inkluderar länkens jittergolv), säkerhet är poängen för spoofing-detektion. Testad för båda sviterna inklusive fallet med länkstöd.
Gemensam sammanslagningsestimator validated (modell) src/fusion/mod.rs: ett enda gemensamt Kalman-filter ([fas, frek] ⊕ [pos, hast]) är navigatorn, disciplinerad av GNSS (lär sig offseterna ur icke-noll initial kovarians) och stödd av tidsöverföring; den gemensamma kovariansen ger en gemensam integritet som testats som tillförlitlig (≥0,9) för båda sviterna med brusmässigt konsistenta sensorer. Paketet observerar position och tid separat, för vilket det optimala filtret är blockdiagonalt; skattning av konstant bias i utvidgat tillstånd och dynamiskt korsstöd är framtida arbete.
Kopplat filter för klocka + position (kovarians mellan block) validated (modell) src/fusion/coupled.rs CoupledPntFilter: ett enda staplat Kalman-filter [pos, vel, phase, freq] (uppdateringar i Joseph-form) vars pseudoavståndsmätning ρ = g·pos + c·phase + noise kopplar samman positions- och klockblocken. Tester: ett delat pseudoavstånd gör P[pos,phase] skilt från noll (frikopplade filter håller det exakt på 0); två skilda geometrier löser tillsammans ut injicerade positions- och klockoffseter som ett enda avstånd inte kan skilja åt; en positionsbestämning med enbart klocka skärper positionen via korskovariansen (den vinst som kopplingen ger och som frikopplade filter inte kan ge); och en Monte Carlo-NEES är konsistent med χ²(4) (Bar-Shalom §5,4, band baserat på körningar). 1-DOF (paketets dimensionalitet); ännu inte kopplat till det körbara paketet, och utvidgningen till 8 tillstånd i 3-D är framtida arbete.
Sammansättning av validerade delmodeller ärver termerna för klocka/tröghet/tidsöverföring är validerade i sina egna paket.
Löst kopplat GNSS/INS (paketet gnss-ins) validated (modell) src/fusion/{gnss_ins_ekf,closed_loop,pack}.rs: ett EKF med 15 tillstånd och feltillstånd (δp, δv, ψ, accel-/gyrobias; Groves §14) driver navigatorn för strapdown med tre axlar med återkoppling. Tester: ett injicerat positionsfel nollas vid perfekt stöd från sanningen; den stödda lösningen förblir begränsad till meter medan ett fritt löpande INS divergerar förbi 100 m; och den sammanslagna positions-RMS:en över ett avbrott på 60 s slår ostödd dödräkning med gränsen i ensembletestet (~4× när den mättes före 0.27.3; marginalen är större efter rättelsen nedan). Gyrobiasens koppling kontrolleras mot själva strapdown-navigatorn: en känd kvarvarande gyrobias måste ge det attitydfel som filtret förutsäger (closed_loop::tests::gyro_bias_coupling_predicts_the_strapdown_attitude_error), och ett brett prior måste lära sig en gyrobias av flygstyrenhetsklass samtidigt som det förblir begränsat; båda fallerar med tecknet före 0.27.3. Reviderat i 0.27.3: den kopplingen hade fel tecken, så skattningarna av gyrobias drog åt fel håll och bara ett snävt prior höll paketet stabilt; de publicerade värdena för avbrott ändrades (CHANGELOG, Fixed). Ärlig begränsning: vid löst kopplat går accelbias/lutning svårt att skilja åt, så kalibrering per bias görs inte gällande.
Tätt kopplat GNSS/INS (pseudoavstånd) validated (modell) src/fusion/gnss_ins_ekf.rs update_tightly_coupled + closed_loop.rs fuse_tightly_coupled: innovationen bildas i avståndsdomänen (siktlinjens Jacobian på δp). Tester: fyra satelliter nollar ett injicerat horisontellt fel på 8 m/−5 m till < 0,1 m; två satelliter (ingen positionsbestämning av position, hastighet och tid (PVT) möjlig) minskar ändå det horisontella felet med > 5×; en enda satellit rakt ovanför observerar bara komponenten längs siktlinjen (vertikalt) och lämnar det horisontella orört; felaktiga indata avvisas. Enbart pseudoavstånd – bärvågsfas och ett uttryckligt mottagarklocktillstånd finns på färdplanen.
Trohet i korsstöd mellan sensorer (full sammanslagning med Kalman/faktorgraf) not modeled i paketet hybrid Hybridpaketet är en komposition på systemnivå + tidsstöd, inte en optimal estimator. Filter finns på andra ställen: det löst och tätt kopplade EKF (utökat Kalman-filter) i paketet gnss-ins (raderna ovan) och UKF (unscented Kalman-filter) med 17 tillstånd i typen hybrid-ukf. Ingen faktorgrafsutjämnare är modellerad.

Resultat: sviten med enbart kvant klarar full PNT genom ett avbrott på 1,8 h; sviten med enbart klassiskt är positionsbegränsad (IMU av navigeringsklass överskrider först). Optisk tidsöverföring mellan satelliter håller även den klassiska KLOCKAN låst och isolerar tröghetssensorn som den klassiska svitens svaga länk – kärnan i argumentet för kvanttröghet och optisk tidssynkronisering tillsammans.

Geometri – GNSS-tillgänglighet ur banor#

Aspekt Status Evidens
Cirkulär propagering med tvåkroppsproblemet validated src/orbit.rs: omloppstid T=2 pi sqrt(r^3/mu) (mu = 3.986004418e14), positionen återkommer efter en omloppstid, planaritet för ekvatorial/polär bana – handhärledda tester.
Excentrisk (keplersk) propagering validated src/orbit.rs: Keplers ekvation M = E - e sin E löst med Newton (rest < 1e-12); radier i perigeum/apogeum a(1∓e); det cirkulära fallet stämmer med den slutna vägen inom 1e-9.
Sekulär drift av nod/apsid på grund av J2 validated src/orbit.rs: Omega_dot = -1.5 n J2 (Re/p)^2 cos i, argp_dot = 0.75 n J2 (Re/p)^2 (5cos^2 i - 1) (Vallado); noden regredierar (prograd) / avancerar (retrograd) / är stillastående (polär), och apsiderna fryser vid den kritiska inklinationen 63,4 grader – handhärledda tester av tecken/noll. Endast tvåkropps- + sekulär, inte oskulerande.
Synlighet längs siktlinjen (skymning bakom jorden + elevationsmask) validated En antipodal satellit skyms, en satellit radiellt utåt vid 90 graders elevation, en tangentiell satellit vid horisonten – exakta handhärledda tester.
Synlighet -> GNSS-tillstånd -> tidslinje validated >=4 synliga = nominellt, 1–3 degraderat, 0 nekat; Walker-delta-generator; ett integrationstest driver en klock-holdover-körning från den härledda tidslinjen.
Optimerare för konstellationsutformning + geometri för streets-of-coverage validated (modell) src/walker.rs: optimize_walker_design söker igenom rutnätet {planes × sats × inclination} och returnerar den cell som bäst uppfyller ett DesignObjective (minsta antal satelliter för ett täckningsmål / maximal täckning / lägsta sämsta PDOP (PDOP: positionens precisionsförsämring)) – ett test kontrollerar att valet är lika med en oberoende brute force-genomsökning av samma svep, och ett genomgånget exempel bekräftar att en Walker 24/6/1-utformning för GPS (Global Positioning System) täcker minst lika bra som en utglesad med 18 satelliter. De analytiska slutna uttrycken för streets-of-coverage (coverage_half_angle_rad λ = arccos(Re/r·cos ε) − ε; street_half_width_rad cos c = cos λ / cos(π/s), Rider/Beste) är handverifierade mot läroboksgeometri (GPS vid en mask på 5°: λ ≈ 71,16°, halv gatubredd för 4 satelliter ≈ 62,83°) och upptäcker luckan vid för få satelliter (λ < π/s ⇒ None). Den fullständiga lösaren enligt Rider för minsta antal satelliter vid global täckning (det sömkänsliga antalet plan) är ännu inte implementerad.
Precisionsförsämring (GDOP/PDOP/HDOP/VDOP/TDOP (GDOP: geometrisk precisionsförsämring; HDOP: horisontell precisionsförsämring; VDOP: vertikal precisionsförsämring; TDOP: precisionsförsämring för tid)) -> positionsnoggrannhet validated src/orbit.rs: Q=(HᵀH)⁻¹ ur designmatrisen för siktlinjerna. Extern oberoende referens (tests/dop_reference.rs): de fem DOP-faktorerna återger de som beräknats av gnss_lib_py 1.0.4 (Stanford NAV Lab – ett oberoende, referentgranskat GNSS-bibliotek, som här används på samma sätt som ERFA (Essential Routines for Fundamental Astronomy) för referenssystemen) över 8 geometrier från välkonditionerade till nära singulära (DOP i hundratal), inom 1e-6 relativt; ursprung och återgenerering i tests/fixtures/dop/. Som en ytterligare kontroll med slutna uttryck återger en regelbunden tetraedergeometri de analytiska DOP-värdena (PDOP 1,5, TDOP 0,5, GDOP √2,5, HDOP √1,5, VDOP √0,75) inom 1e-9. Positions-sigma = PDOP × användarens ekvivalenta avståndsfel.
Positionsfel = σ_UERE × DOP för motorns egen positionsbestämning med minsta kvadrat modelled src/dop_error_mc.rs, tests/uere_dop_monte_carlo.rs: en Monte Carlo med frö (N = 20 000 epoker per geometri, σ = 1,5 m, ChaCha8-frö 36 + i) av pvt::solve_spp med enhetsvikter, löst från den sanna positionen, på de 8 geometrierna i tests/fixtures/dop/dop_reference.csv (de vars DOP är matchad mot gnss_lib_py), mot σ²·Q där Q är kovariansfaktorn för själva kärnan orbit::dop (orbit::dop_cofactor, samma aritmetik). Toleranser förhandsregistrerade (incheckning e50c88d2, före den första körningen, enligt designanteckningen för geometrin i 0,36, avsnitt 5,2), var och en som ett antal standardfel: varianser för öst, nord, upp och klocka inom 5 %; RMS för H/V/P inom 2,5 %; korrelation öst–nord inom 0,035; medelvärden inom 5 standardfel; andelen i 95 %-ellipsen horisontellt inom 0,95 ± 0,0077. Första körningen: alla 104 kontroller godkänns (sämsta varians 3,2 %, RMS 1,6 %, korrelation 0,012, medelvärde 2,2 standardfel, ellips 0,0039). Negativa kontroller fallerar som de ska: fördubblad PDOP fallerar för varje geometri; fel som växer som 1/sin(elevation) mot den ovägda Q fallerar en varianskontroll för varje geometri vars lägsta satellit ligger under 20°. Hur den hänger ihop med raden ovan: den raden validerar dessa geometriers DOP mot gnss_lib_py; den här lägger till steget från de faktorerna till meter via motorns lösare. En första, separat kontroll finns kvar bredvid (src/dop_error_ci.rs, tests/position_error_dop_ci.rs, körd före förhandsregistreringen och redovisad som sådan): fyra handvalda himlar (öppen, klustrad, kanjon, halv himmel; σ 1 m) med chi-kvadrat-konfidensintervall på 1e-6 totalt över 20 kontroller; kvoter 0,987 till 1,009, och dess egna negativa kontroller (ett DOP-fel på 10 %, fel som 1/sin(elevation)) fallerar som de ska. Varför MODELLED: ingen extern datamängd; den visar inte att en verklig mottagares fel följer modellen, och σ_UERE är en indata.
Tillgänglighet med flera konstellationer validated src/orbit.rs: ytterligare [[constellations]] slås ihop till en satellituppsättning för synlighet/DOP; ett test av det kombinerade antalet bekräftar unionen.
Sänd jonosfär (Klobuchar, IS-GPS-200 (IS: Interface Specification)) → snedfördröjning på L1 validated src/gnss_sim.rs: klobuchar_delay_m, den sända enfrekvensmodellen med åtta koefficienter. Extern oberoende referens (tests/klobuchar_reference.rs): snedfördröjningen på L1 återger ionmodel i RTKLIB (ett bibliotek med öppen källkod för kinematisk realtidspositionering) (tomojitakasu/RTKLIB, src/rtkcmn.c – den de facto öppna GNSS-referensen, kompilerad från källkod och körd oberoende) över 10 fall som spänner över elevation, azimut, lokal tid och två koefficientuppsättningar (kshanas standard + RTKLIB:s), inom < 1e-4 m. Läsaren för IONEX (IONosphere map EXchange format) TEC-kartor (TEC: totalt elektroninnehåll) för GIM-filer (global jonosfärskarta) finns nu (src/ionex.rs, parse_ionex med bilinjär interpolation i rum och tid och en snedmappning, enhetstestad i craten); en korskontroll av den interpolationen mot en verklig GIM-produkt från CODE (Center for Orbit Determination in Europe) är fortfarande en uppföljning. Själva sändmodellen är externt validerad.
Detektionskärna för RAIM/ARAIM (ARAIM: advanced receiver autonomous integrity monitoring) (χ² / icke-centralt χ² / normal) → trösklar och multiplikatorer validated src/raim.rs: detektionströskeln för snapshot / solution-separation / ARAIM (chi2_quantile), den icke-centralitet för missad detektion pbias=√λ (noncentral_chi2_cdf) och multiplikatorerna K_fa/K_md/K_V (normal_quantile) beräknas alla ur en beroendefri regulariserad ofullständig gammafunktion. Extern oberoende referens (tests/raim_reference.rs): 171 fall återger SciPy 1.17.0 (scipy.stats.chi2/.ncx2/.norm + optimize.brentq – en oberoende implementation av Cephes/Boost, en annan algoritm) över driftsområdena för P_fa / P_md / redundans, inom ≤ 1e-6 relativt. Geometrin som omger kärnan (lutningen/kovariansen ur (GᵀG)⁻¹) är den DOP-kärna som validerats mot gnss_lib_py. Omfattning: den här raden fäster den statistiska kärnan. Skyddsnivåns värde i ARAIM:s MHSS-fördelning (multiple-hypothesis solution separation) fästs separat mot det publicerade genomgångna exemplet från ARAIM Technical Subgroup i WG-C (Working Group C) (tests/araim_reference_vectors.rs, VPL (vertikal skyddsnivå) 18,2926 m mot 18,3 m, HPL (horisontell skyddsnivå) 13,4063 m mot 13,45 m, inom referensens egen tolerans på 0,05 m; se anmärkningen om standarder nedan och ARAIM_REFERENCE.md).
Skyddsnivå för SBAS (satellitbaserat förstärkningssystem) (DO-229E bilaga J) → horisontell / vertikal skyddsnivå (HPL / VPL) validated src/sbas.rs: sbas_protection_level, den viktade minsta kvadrat-lösningen (LS: least squares) D=(GᵀWG)⁻¹ → horisontell felellips storaxel + vertikal σ, skalad med K-faktorerna i DO-229E. Extern oberoende referens (tests/sbas_reference.rs): kshanas HPL återger RTKLIB-grenen för SBAS-PL (zsiki/rtklib_ws waasprotlevels(), implementationen ”DO-229D bilaga J” av Siki & Takács 2017), körd av rnx2rtkp -ws på verkliga EGNOS-data (European Geostationary Navigation Overlay Service) (sända meddelanden från GEO (geostationär bana) PRN120 + verklig RINEX (Receiver Independent Exchange Format) från BUTE/Budapest, 2017-02-19), över 6 epoker inom < 2e-3 m. σ per satellit är referensens egen fullständiga SBAS-budget (UDRE (användarens differentiella avståndsfel) + GIVE (vertikalt jonosfärfel i rutnät) jono + tropo + flygburet). ESA gLAB v6.0.0 (core/filter.c) kompilerades och bekräftades använda identisk konvention. Anmärkning om K_V: båda referenserna avrundar MOPS (minimum operational performance standards) K_V → 5,33; kshana använder det exakta Φ⁻¹(1−5e-8)=5.3267 (~0,06 % mindre VPL), så den vertikala är validerad som den K-faktorfria d_U (= referensens VPL / 5,33). HPL matchas direkt (K_H = 6,0 på båda sidor).
Verklig konstellationsgeometri ur TLE (rad 2 / keplersk) validated (tolkning) src/tle.rs: tolkar de keplerska medelelementen på rad 2 (halva storaxeln ur medelrörelsen); en känd elementmängd för ISS (International Space Station) går en rundtur till rätt element och omloppstid. För ett block med enbart rad 2 är propageringen motorns tvåkropps- (+ valfri J2) av medelelementen – sund för en ögonblicksbild från en gemensam epok, men driver från SGP4 (Simplified General Perturbations 4) över tid.
Propagering med SGP4 / SDP4 (Simplified Deep-space Perturbations 4) (kompletta TLE) validated src/sgp4.rs: fullständig SGP4 nära jorden + SDP4 för djuprymd (sekulära/periodiska måne–sol-effekter + resonans i geopotentialen på 12 h / 24 h). Validerad i tests/sgp4_verification.rs mot de officiella vektorerna i AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 (”Revisiting Spacetrack Report #3”) – alla 666 referenstillstånd (nära jorden, djuprymd, resonanta, felkodsfall) stämmer med ett värsta positionsfel på ≈ 4,1 mm. En komplett tvåradig mängd (rad 1 + rad 2) propageras med SGP4; enbart rad 2 förblir keplersk; de två kan blandas. Referenssystemet är TEME (true equator, mean equinox), använt konsekvent för användaren och satelliterna (ingen reduktion från TEME till ECEF (ECEF: jordcentrerat, jordfast) – tillräckligt för geometri för tillgänglighet/DOP).
IAU (International Astronomical Union) 2000A / 2000B nutation + reduktion från TEME till GCRS (GCRS: Geocentric Celestial Reference System) validated src/nutation.rs: den fullständiga serien IAU 2000A (678 lunisolära + 687 planetära termer, nutation_iau2000a) och trunkeringen 2000B med 77 termer (nutation_iau2000b) är var och en validerade bit för bit mot de publicerade referensvektorerna i SOFA/ERFA (SOFA: Standards of Fundamental Astronomy) vid JD_TT 2453736,5 – eraNut00a ger Δψ = −0.9630909107115518e-5, Δε = 0.4063239174001679e-4; eraNut00b ger Δψ = −0.9632552291148363e-5, Δε = 0.4063197106621160e-4 – båda inom 1e-13 rad. Tabellen för 2000A är maskingenererad ur ERFA-källan nut00a av tools/gen_nut00a.py (återger den incheckade nutation_iau2000a_data.rs bit för bit). Nutationsmatrisen (iauNumat), jämdygnsekvationen och hela kedjan TEME→TOD→MOD→GCRS (TOD: true of date; MOD: mean of date) (teme_to_gcrs, Vallado AIAA-2006-6980) testas för egenskaper som äkta rotation/rundtur/precession plus nutation, nutationsmatrisen mot ERFA numat element för element inom 1e-14, och hela kedjan TEME→GCRS mot Vallados publicerade exempel TEME→GCRF (AIAA 2006-6753, 2004-04-06) inom 0,11 m (tests/frame_reference_vectors.rs); tills den kontrollen från ände till ände lades till hade nutationsmatrisen Δψ med fel tecken, en vridning på 2·Δψ (cirka 25″) som egenskapstesterna inte kunde se (se CHANGELOG, Unreleased, Fixed); 2000A mot 2000B stämmer inom < 1 mas som krävs. Kedjan bygger på jämdygn/GMST (GMST: Greenwich mean sidereal time); reduktionen med CIO utan jämdygn (X,Y,s) och dess oberoende numeriska korskontroll med ANISE/SPICE (ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris – ett verktyg för planetgeometri i rent Rust; SPICE: Spacecraft, Planet, Instrument, C-matrix, Events) (≤ 3,6 m vid GNSS-bana, väl inom målet < 10 m) finns i CIO-raden nedan.
IGRF-14 (IGRF: International Geomagnetic Reference Field) – modell för det geomagnetiska huvudfältet validated src/igrf.rs: IAGA:s (International Association of Geomagnetism and Aeronomy) Schmidt-normaliserade fält i sfäriska harmoniska funktioner (grad/ordning 13, 2025,0 + sekulär variation; koefficienterna maskingenererade ur den officiella igrf14coeffs.txt av tools/gen_igrf.py, vilket återger igrf_data.rs bit för bit). Validerad på fem oberoende fronter: (1) exakta stickprov av koefficienter mot IAGA-filen (g₁⁰=−29350,0, g₁¹=−1410,3, h₁¹=4545,5 nT); (2) syntesen av grad 1 återger det exakta slutna uttrycket för det lutande dipolfältet (B_r,B_θ,B_φ) inom 1e-6; (3) det fullständiga analytiska fältet av grad 13 är lika med −∇V för skalärpotentialen (finita differenser, inom 1e-4) – vilket prövar Legendre-derivatorna och termen 1/sinθ från ände till ände; (4) dipolaxeln återger den kända geomagnetiska nordpolen (~80,7°N, −72,7°E) och dipolstyrkan (~29,7 µT), och det globala fältet ligger i det fysikaliska bandet 22–67 µT med rätt tecken på inklinationen per halvklot; och (5) extern oberoende referens – hela syntesen återger de officiella värdena från webbtjänsten för IGRF-14 vid British Geological Survey vid 2025,0 (geodetisk, höjd enligt WGS-84 (WGS: World Geodetic System)) inom < 2 nT på X/Y/Z/F och < 0.02° på D/I i fyra punkter inklusive 400 km höjd (synthesis_matches_the_official_bgs_igrf14_values_at_2025).
CIO-baserad reduktion enligt IAU 2006/2000A från GCRS till ITRS (ITRS: International Terrestrial Reference System) validated src/cio.rs: kedjan från himmelssystem till jordsystem utan jämdygn. CIP-koordinaterna (Celestial Intermediate Pole) (X, Y) och serien med 66 termer för CIO-lokatorn s är validerade bit för bit mot den publicerade vektorn eraXys06a i SOFA/ERFA vid JD_TT 2453736,5 – X=0.5791308482835292617e-3 (1e-14), Y=0.4020580099454020310e-4 (1e-15), s=-0.1220032294164579896e-7 (1e-18); matrisen GCRS→CIRS (CIRS: Celestial Intermediate Reference System) mot eraC2ixys (alla nio element inom 1e-12); jordrotationsvinkeln (ERA) mot eraEra00(2400000.5, 54388.0) = 0,4022837240028158102 (1e-12). Tabellen s är maskingenererad ur ERFA-referensen s06.c av tools/gen_s06.py (återger cio_s06_data.rs bit för bit). Hela gcrs_to_itrs_matrix (CIO eraC2tcio = polrörelse · ERA · GCRS→CIRS) testas för äkta rotation + rundtur, och visas vara konsistent med den äldre reduktionen av TEME enligt jämdygn/GMST-1982 inom 1 m vid en radie på 7 000 km (konventionerna skiljer sig åt med cirka 5 cm där). Oberoende korskontroll mot tredje part (xval/anise-frames/): samma gcrs_to_itrs_matrix jämförs mot ANISE (omimplementationen i rent Rust av NAIF/SPICE (NAIF: Navigation and Ancillary Information Facility)) som roterar GCRF→ITRF93 (GCRF: Geocentric Celestial Reference Frame; ITRF93: International Terrestrial Reference Frame 1993) ur JPL:s (Jet Propulsion Laboratory) earth_latest_high_prec.bpc, med identiska jordorienteringsparametrar finals2000A från IERS (International Earth Rotation and Reference Systems Service) matade till båda sidor, över åtta kvartalsvisa epoker 2020–2023. De två oberoende realiseringarna av referenssystemet stämmer inom en största relativa rotation på 0,028″ – ≤ 0,86 m på marken, ≤ 0,93 m vid LEO (låg jordbana), ≤ 3,6 m vid GNSS-bana (medelvinkel 0,023″). Detta är kontrollen av referenssystemet ”< 10 m” på ROADMAP, levererad; resten är den förväntade skillnaden i modell/datum mellan ITRF93 och IERS-2010-CIO, inte ett fel (det bitvisa stödet förblir vektorerna i SOFA/ERFA ovan). ANISE är en crate med MPL-2.0 (MPL: Mozilla Public License) / edition-2024, så kontrollen ligger i en fristående delcrate utanför arbetsytan som aldrig rör det publicerade beroendeträdet för kshana eller någon standardgrind i CI.
Rundturstest för export till SP3 (Standard Product 3, det precisa banformatet) (konstellation → SP3-c → ny tolkning) validated tests/sp3_export_roundtrip.rs: den verkliga ögonblicksbilden gps-ops från Celestrak (30 GPS-satelliter) propageras med SGP4, exporteras till SP3-c (Sp3File::from_propagators → to_sp3_string), tolkas på nytt (parse_sp3), och de återvunna ECEF-positionerna jämförs mot SGP4-sanningen vid varje epok över 24 h – sämsta rest < 0,5 m (skrivarens serialisering i millimeter; milstolpens tolerans på 10 m i TLE-klass (TLE: tvåradig elementmängd) uppfylls med stor marginal). Sökvägen --export-sp3 i CLI (kommandoradsgränssnitt) täcks också: det medföljande omloppsscenariot exporterar en SP3 med 30 satelliter som går att tolka på nytt, och ett scenario utan omlopp avvisas.
Verklig geometri för GPS-konstellationen ur TLE (SGP4 → ECEF) validated tests/igs_real_data.rs: en äkta ögonblicksbild gps-ops från Celestrak (2021-07-28, 30 operativa GPS-satelliter; ursprung i tests/fixtures/celestrak/NOTICE) tolkas och varje satellit propageras genom den validerade SGP4-kärnan till ett gemensamt ögonblick, roterad från TEME till ECEF. Kontrollerar att hela konstellationen hamnar på GPS-skalet i medelhög jordbana (MEO) inom 1 %, och att från en plats på mellanbreddgrad med öppen himmel ger alla synliga satelliter (nio satelliter) en PDOP på 1,64 där den vertikala precisionsförsämringen överstiger den horisontella (som den måste för en markbunden användare). Detta prövar SGP4 på en verklig konstellation, vid sidan av de verkliga datavägarna för SP3 (precis) och RINEX (sänd).
Walker-generator med medelelement för SGP4 validated src/walker.rs: ett utformat Walker-delta-mönster ges ut som medelelement för SGP4 (Kozai-medelrörelse vald så att halva storaxeln i SGP4 hamnar på målskalet) och propageras genom den validerade kärnan. Tester: en GPS-lik Walker med 24 satelliter ligger på MEO-skalet inom 1 %, planen ligger exakt 90° ifrån varandra i RAAN (rektascension för uppstigande nod) återvunnet ur banornas normaler, och medelrörelsen återger omloppstiden på ~718 min för GPS-skalet.
Svep av PDOP för konstellationen + mått för täckning/återbesök (FoM) validated (monotonicitet) src/walker.rs: pdop_sweep tabellerar täckning och median/sämsta PDOP över ett rutnät {planes × sats × inclination}; coverage_revisit rapporterar täckningsandelen och luckorna mellan återbesök i en punkt på marken. Validerad genom de fysikaliska monotonicitetsvillkor som en designavvägning måste uppfylla: fler satelliter sänker aldrig täckningen och sänker strikt median-PDOP (en fullständig utformning med 24 satelliter täcker kontinuerligt vid PDOP ~1,7), och att förtäta en utglesad konstellation krymper strikt den sämsta luckan mellan återbesök. Den genomsnittliga luckan mellan återbesök överstiger aldrig maxvärdet. Det här är tabeller för geometriavvägningar, inte en certifierad länk- eller täckningsbudget.

Ärlig inramning: det här är ett deterministiskt geometrilager (cirkulära banor, sfärisk jord med medelradien 6371 km, ren siktlinje). Det fastställer tillgänglighet och den geometriska positionsnoggrannheten (precisionsförsämring × en representativ budget för avståndsfel) ur verklig geometri, inte en navigeringslösning med precis efemerid. Referensen orbit-gnss-challenged.toml placerar ett rymdfarkost inuti GNSS-skalet: den håller en positionsbestämning bara ~59 % av dygnet, kvantklockan håller en tidslösning på 5 ns genom varje lucka (tillgänglighet 1,0) medan den chipskaliga klockan håller ~0,73.

Numerisk propagator (Cowell) och kraftmodell#

Den numeriska propagatorn (src/propagator.rs) integrerar en hierarkisk kraftmodell (src/forces.rs) med de adaptiva integratorerna (src/integrator.rs). Varje term nedan är validerad mot analytisk sanning eller ett handhärlett slutet uttryck; störningarna är av som standard, så de utgivna gyllene värdena är orörda. Den sammansatta modellen korskontrolleras också mot ett annat verktyg: tests/numerical_cowell_propagator_reference.rs kör 11 fall i LEO och GTO (geostationär överföringsbana), 275 timepoker, mot propagatorn DormandPrince853 i Orekit 12,2, och de konservativa nivåerna (tvåkropp → J2–J6 → sol/måne → SRP med kanonkula) stämmer inom ett värsta fall på 0,08 m över 24 h (VALIDATED i matrisen); nivån med luftmotstånd är bara karakteriserad (333 m) och förblir MODELLED.

Term Status Evidens
Cowell-propagator mot analytisk keplersk sanning validated src/propagator.rs: den ostörda (tvåkropps-) banan återger den exakta lösningen med universella variabler för Kepler inom under en meter över en LEO-bana på 24 h (en snävare gräns än ”mot en numerisk referens < 10 m”); specifik energi och rörelsemängdsmoment bevaras till ~1e-9 relativt; nodregressionen på grund av J2 återger det slutna j2_secular_rates till förstaordningens teori (inom 2 %, resten av ordningen O(J2²)). solve_kepler_checked returnerar Err i stället för ett tyst felaktigt svar när Newton inte konvergerar (nära perigeum, e = 0,999). Den robusta solve_kepler_robust (startvärde enligt Markley 1995, src/kepler.rs) konvergerar där och över 0 ≤ e ≤ 0,999999, inom 0,9 ε·|E| från rötter med 50 siffror i mpmath (tests/kepler_mpmath_oracle.rs).
Adaptiva integratorer (RK4 (Runge–Kutta av fjärde ordningen) med stegdubblering + det inbäddade paret Dormand–Prince RK5(4), DP5(4) nedan) validated src/integrator.rs: RK4 integrerar y' = y → e till < 1e-9, visar ~16× lägre fel per halverat steg (konvergens av 4:e ordningen) och bevarar den harmoniska oscillatorn över en period. Det inbäddade felmåttet för DP5(4) är O(h⁵) (att halvera steget skär det ~32×), integrerar oscillatorn över 50 perioder med energin bevarad inom < 1e-6, och når samma slutpunkt vid samma tolerans med färre funktionsanrop än stegdubbling; propagate_dopri klarar samma gräns för Kepler under en meter och stämmer med RK4-vägen inom < 1 m på en J2..J6-bana. DOP853 (integrate_dop853): Hairers par 8(5 3) med tät utdata återger SciPy 1.18.1:s DOP853 steg för steg (enskilt steg inom 5.6e-15; identiskt antal steg i körningarna med e = 0,7 och Arenstorf, ett byte mellan accepterat/avvisat på 501 steg i LEO-körningen; sluttillstånd inom 1.6e-12) och stämmer med den exakta lösningen för Kepler lika nära som SciPy gör (tests/dop853_scipy_oracle.rs).
Zonalt harmoniskt fält J2–J6 validated src/forces.rs: zonal_accel kontrolleras på tre sätt – den reduceras till den med 666 vektorer validerade j2_accel till maskinprecision när den begränsas till [J2]; den stämmer med den numeriska gradienten av sin egen zonala potential genom hela fältet J2..J6 (guldstandarden för konservativa fält); och de udda termerna J3 mot de jämna J2/J4..J6 visar den karakteristiska (anti)symmetrin mellan nord och syd under z → −z. En propagerad bana med J2..J6 bevarar totalenergin till ~1e-8 över ett dygn.
Gravitation från tredje kropp (sol och måne) validated src/forces.rs + src/ephem.rs: third_body_accel stämmer med den exakta gradienten av sin störningspotential, försvinner i geocentrum och når läroböckernas storleksordningar i LEO (~5e-7 m/s² sol, ~1.1e-6 m/s² måne). Solens lågprecisionsefemerid enligt Montenbruck–Gill når handhärledda ankarpunkter i J2000 (perihelavstånd ≈ 1.471e11 m, ~−23° deklination vid solstånd, ~1°/dygn rörelse); månens efemerid håller sig inom sitt hölje mellan perigeum och apogeum, återvinner medelavståndet ~384 400 km, överstiger aldrig inklinationen 5,3° och återvänder till inom 1° efter en siderisk månad. Kopplingen av högerledet (RHS) som drivs av epoken är bitexakt (RHS-termen är lika med third_body_accel vid den samplade positionen vid t = 0 och t = 1 dygn), och ett epokskifte på ett kvartsår ger en annan bana.
Strålningstryck från solen (SRP) + konisk skugga validated src/forces.rs: srp_accel (kanonkula ν·P☉·cᵣ·(A/m)·(AU/d)²·d̂) är bitidentisk med det slutna uttrycket i fullt solljus, fäster strålningstrycket vid 1 AU (AU: astronomisk enhet) till ≈ 4.5398e-6 N/m², ligger i LEO-bandet ~1.36e-7 m/s² med riktning bort från solen, minskar till en fjärdedel när avståndet till solen fördubblas (omvänd kvadrat) och är exakt noll djupt i umbran. conical_shadow ger ν = 1 i fullt solljus och ν = 0 i total umbra (exakt), med en mjuk monoton penumbra som stiger 0 → 1 över bandet [b−a, b+a] som sträcker sig bortom umbracylindern.
Atmosfäriskt luftmotstånd (första hastighetsberoende termen) validated src/forces.rs: atmospheric_density (Vallado Table 8-4, styckvis exponentiell) förankras vid 1,225 kg/m³ vid havsnivå, klipps under ytan, avtar monotont genom LEO, ligger i bandet ~1e-12 kg/m³ vid 400 km med en fysikaliskt återvunnen skalhöjd på ~58 km; drag_accel motverkar den medroterande relativa hastigheten vid LEO-storleken ~2e-6 m/s². Signaturkontrollen: en bana på 300 km förlorar specifik energi monotont och dess halva storaxel minskar med begränsade ~km/dygn, medan baslinjen i vakuum bevarar energin till < 1e-9.
Postnewtonsk (Schwarzschild) relativistisk korrektion validated src/forces.rs: relativistic_accel (IERS-formen β = γ = 1 a = (μ/c²r³)·{[4μ/r − v²]·r + 4(r·v)·v}) kollapsar för en cirkulär bana till den slutna formen 3μ²/(c²r³)·r̂ (radiell, utåtriktad, komponenterna utanför axeln exakt noll), visar det läroboksmässiga förhållandet ≈1.9e-9 i LEO till tvåkroppsaccelerationen, stämmer med den för hand förenklade formen μ(4μ + 3v²r)/(c²r³) för radialhastighet till < 1e-12, och i propagatorn stör banan men håller halva storaxeln inom under en meter/dygn — den konservativa motsatsen till luftmotståndets bannedgång.

Ärlig avgränsning: de utgivna standardvärdena för ForceModel integrerar det zonala fältet. Det höggradiga tesserala EGM2008-fältet (src/gravity_sh.rs, grad/ordning 70), de fasta/oceaniska/atmosfäriska tidvattnen (src/tides.rs) och termen Lense–Thirring för referenssystemets släpning är nu implementerade och sammansatta i den precisa kraftmodellen för efemerisanpassning (src/precise_od.rs — se nedan). Det tesserala fältet är också en frivillig term i Cowell-kraftmodellen ForceModel (propagator::Geopotential, avstängd som standard), validerad mot Orekit 12,2 HolmesFeatherstoneAttractionModel till grad/ordning 70 (6 fall över 24 h, sämsta |Δr| 0,036 m; tests/cowell_tesseral_orekit_oracle.rs). Två fältutvärderare finns: den historiska acceleration (sfäriska partialer; giltig till grad ~180 bort från polerna; utdata fastlåsta) och acceleration_hf (Holmes–Featherstone 2002 modifierad framåtkolumn, gradient utan 1/cos φ; giltig till grad 2190 vid varje latitud). EGM2008 till 2190 laddas vid körning (from_gfc_file, scripts/fetch_egm2008.sh, ingår inte). acceleration_hf stämmer med Orekit 12,2 till 7.3e-17 m/s² i åtta punkter genom grad 2190; den förblir MODELLED eftersom pyshtools missade den förhandsregistrerade tröskeln nära polen (en kontroll med mpmath lägger felet i pyshtools; xval/high-degree-gravity/). En bana på 24 h med 200×200 stämmer med Orekit till 0,13 m, men dess förhandsregistrerade kontroll av känslighet för grad 70 missades (0,73 m < 1 m), så grad 71–200 är karakteriserade, inte validerade, i bana (xval/cowell-tesseral-200-orekit/). Termosfärdensiteten från NRLMSISE-00 (NRLMSISE: Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Extended atmosphere model) är portad (src/nrlmsise00.rs: bitidentisk med C-porten i allmän egendom på 720 punkter, inom 1.9e-6 relativt pymsis, de 17 publicerade testfallen återgivna; tests/nrlmsise00_reference.rs) och är en frivillig nivå för luftmotståndsdensitet (forces::DensityModel, ForceModel::drag_density; standardvärdet förblir den statiska Vallado-modellen). Detta validerar portningen, inte modellens noggrannhet mot uppmätt densitet. Solen och Månen från DE440 (DE: Development Ephemeris) är en frivillig efemerisnivå (ForceModel::with_ephemeris). Skuggan för SRP med tillplattad jord enligt WGS-84 är frivillig (ForceModel::srp_shadow) och stämmer med belysningsförhållandet i Orekit 12,2 inom 7.4e-9 över 2400 geometrier (tests/srp_oblate_shadow_orekit_oracle.rs); dess variant med randmörkning saknar extern oberoende referens (MODELLED). Nivån för luftmotstånd med NRLMSISE-00 stämmer med Orekit 12,2 och dess eget luftmotstånd med NRLMSISE-00 över 24 h till 0,03 m mot upp till 142 km förskjutning av luftmotståndet (tests/drag_tier_orekit_oracle.rs, VALIDATED under de gemensamma konventionerna). En korskontroll mot GMAT (General Mission Analysis Tool) återstår som uppföljning.

Tidvatten på geopotentialen (src/tides.rs)#

Tidsvarierande korrektioner ΔC̄_nm, ΔS̄_nm till Stokes-koefficienterna (IERS Conventions 2010, kapitel 6), validerade mot konventionernas egna publicerade tal — inte mot något annat verktyg.

Bidrag Status Evidens
Fast jordtidvatten (IERS ekv. 6,6 / 6.8b / 6,14) validated tests/tides_iers.rs: det permanenta (nollfrekvens-) tidvattnet ΔC̄₂₀ hamnar inom 1 % av det av IERS publicerade −4,1736×10⁻⁹ (anelastiska Love-tal); räkneexemplet för Step-2 K1 återskapas bit för bit (sin/cos-amplituder 470,9 / −30,2 ×10⁻¹² till 0,1×10⁻¹²); den normaliserade Legendre-vägen är fastlåst av slutna handräknade värden oberoende av rekursionen.
Havstidvatten (IERS ekv. 6,15, FES2004 (Finite Element Solution 2004, tidvattensatlas), 8 konstituenter) validated Den medföljande delmängden av FES2004 (tools/gen_fes2004.py → src/fes2004_data.rs, tolkning av Doodson→multiplikator) återger källans M2-koefficienter (2 2) exakt; K1:s Doodson-fas är lika med θ_g + π; den sektoriella storleken av grad 2 är fysikalisk och en storleksordning under det fasta tidvattnet.
Atmosfäriskt S2-lufttidvatten (Ray 2001, NASA (National Aeronautics and Space Administration) GSFC (Goddard Space Flight Center)) validated De medföljande Ray-övertonerna omvandlas via ytlastrelationen (ekv. 6,21) till ett toppvärde ΔC̄₂₂ ≈ 4×10⁻¹¹ (~10 % av havstidvattnets M2-term). Ärligt förbehåll: det finns ingen publicerad oberoende referens i form av geopotentialkoefficienter för lufttidvattnet, så det är validerat genom källintegritet + storleksordning, en svagare tröskel än för det fasta och det oceaniska tidvattnet.

Manövrar och banutformning (src/maneuver.rs)#

Aspekt Status Evidens
Impulsivt ΔV + kovariansutbredning validated En hastighetsdiskontinuitet där en kovarians på 6×6 förs framåt (deterministisk manöver ⇒ enhets-STM (tillståndsövergångsmatris); utförandefelets kovarians roteras från manöverns referenssystem — ECI (Earth-centred inertial) eller LVLH (local vertical, local horizontal) — in i hastighetsblocket).
Integration av ändlig manöver jämfört med Tsiolkovsky validated Integration med konstant dragkraft över en manöverbåge (massa som tillstånd) vars uppnådda ΔV stämmer med den slutna raketekvationen av Tsiolkovsky till bättre än 0,01 %.
Lambert-lösare (Izzo 2015), tur och retur validated Lambert-utdatan för ett varv (r1, r2, flygtid ⇒ v1, v2) skickas tur och retur genom den exakta Kepler-propagatorn med universella variabler — den måste landa tillbaka på r2.
Porkchop-svep mot Hohmann-golvet validated Minimum i rutnätet för uppskjutning × ankomst, C3 / ankomst-V∞, kontrolleras mot det analytiska C3-golvet för Hohmann-överföring för två coplanära cirkulära banor.
Lambert-lösare mot ett oberoende bibliotek validated tests/lambert_reference.rs: 13 överföringar med ett varv från LEO till GEO till heliocentriska, prograda och retrograda, mot lamberthub 1.0.0 izzo2015; sämsta skillnad i randhastighet 7e-12 m/s.

Ärlig avgränsning: ingen banoptimerare, inga Lambert-grenar med flera varv, och en syntetisk heliocentrisk modell med coplanära cirkulära banor (ingen planetär DE-efemerid, så en korskontroll av C3 Jorden–Mars mot GMAT har inte körts).

Banbestämning (OD) (src/orbit_determination.rs, src/batch_ls.rs)#

Aspekt Status Evidens
Gauss–Newton-satskorrektor validated Den generiska lösaren gauss_newton når den exakta lösningen med viktad minsta kvadrat för en linjär anpassning, återvinner sanna parametrar för en olinjär anpassning a·exp(b·t) och löser en multilateration av avstånd i 3D från brusfria avstånd.
Satsvis banbestämning från avstånd validated determine_orbit_batch återvinner [r, v] från avståndsföljning från markstation (propagerad över kraftmodellen med tvåkroppsproblem + J2) till under en meter / mm·s⁻¹ från brusfria avstånd, och till ~2 m med en residual efter anpassning vid brusgolvet på 5 m — signaturen för en konsistent anpassning med minsta kvadrat.
Sekventiell OD (unscented-filter) validated determine_orbit_sequential återvinner rekursivt tillståndet till inom några tiotal meter med samma dynamik och avståndsmodell.
Satsvis och sekventiell OD mot en oberoende skattare validated tests/batch_sequential_orbit_determination_reference.rs: 8 scenarier (6 brusfria LEO/MEO/excentriska med 3–4 stationer, 2 med σ = 5 m) mot skattarna med satsvis minsta kvadrat och Kalman i Orekit 12,2 på en matchad kraftmodell; sämsta sats 1e-3 m / 1e-6 m/s, sekventiell 0,9 m.

| Satsvis OD med avståndshastighet / az-el och elevationsmask | modelled (extern jämförelse, en förhandsregistrerad tröskel missad) | tests/od_tracking_measurements_reference.rs: 8 scenarier mot satsvis minsta kvadrat i Orekit 12,2 med egna ögonblickliga geometriska mätningar; synliga mängder identiska, mätvärden inom 5.8e-8 m / 6.3e-10 m/s / 1.4e-13 rad, tillståndsövergångsmatris inom 1.2e-14, brusiga tillstånd inom 1,74 cm och RMS per typ inom 2.7e-4; den förhandsregistrerade tröskeln för brusfria tillstånd ≤ 1 cm missas i 2 av 4 scenarier (1,46 och 1,74 cm; Orekits egen skattning ligger så långt från dess simulerade referens, medan kshana ligger inom 1e-8 m). Se xval/od-measurements-orekit/RESULTS.md. |

Ärlig avgränsning: den didaktiska OD:n använder fasta tröghetsstationer, ett topocentriskt system för sfärisk jord och ögonblickliga geometriska mätningar (ingen ljustid, aberration, refraktion eller jordrotation); tillståndsövergångsmatrisen för avståndshastighets-/vinkelvägen är variationell (RK4-integrerad med analytiska partialer för tvåkroppsproblem + J2), inte sluten; det finns inget sekventiellt filter för avståndshastighet eller vinklar. Vägen med enbart avstånd behåller sin Jacobian med finita differenser. (Motorn för efemerisanpassning med full kraftmodell nedan har sin egen variationella tillståndsövergångsmatris.)

Validering av kraftmodell genom efemerisanpassning (src/precise_od.rs)#

En precis skattare med minsta kvadrat på satser av positionsobservationer med full kraftmodell: den tesserala geopotentialen EGM2008 (utvärderad i det jordfasta systemet genom CIO-reduktionen) sammansatt med Solen/Månen som tredje kropp, SRP, luftmotstånd, GR (allmän relativitetsteori) enligt Schwarzschild/Lense–Thirring och tidvattnen ovan, anpassad till ett spår av tröghetsbaserade positionsbestämningar med en Jacobian av variationell tillståndsövergångsmatris. Validerad på syntetiska data, där referensen är Kshanas egen integrator, så varje residual kommer från skattaren och inte från dynamiken.

Aspekt Status Evidens
Sammansättning av precis kraftmodell validated tests/precise_od_synth.rs: fältet av grad 0 är den exakta punktmassan vid varje epok (den centrala termen är rotationsinvariant); grad 8 lägger till tillplattningen i J2-bandet; tredjekroppen Solen och tidvattentermen kopplas in bitexakt; en konstant radiell empirisk acceleration är rent radiell i RTN (radiell, transversell, normal).
Variationell tillståndsövergångsmatris validated Varje kolumn i Φ över ett halvt LEO-varv (geopotential av grad 8 + Solen + Månen) stämmer med en oberoende omframföring med central finit differens (FD) över hela bågen till < 1×10⁻⁶ relativt i både positions- och hastighetssvaret — den dokumenterade korskontrollen STM↔FD. Φ(0) = I; den utökade och den vanliga propagatorn stämmer med varandra till under en millimeter.
Självåtervinning med satsvis minsta kvadrat validated En Kshana-båge på 1 timme (grad 6 + Solen + Månen) observerad brusfritt återvinns från en förskjutning på 150 m / 0,1 m·s⁻¹ till epoktillståndet inom 1×10⁻² m med nära noll RMS efter anpassning; med vitt brus på 5 m hamnar 3D-RMS efter anpassning vid ~σ-brusgolvet, utan systematiskt fel. SRP-C_R återvinns från 1,0 till inom 1 % av det sanna värdet 1,4.
Borttagning av uteliggare och RTN-rapportering validated Ett grovt fel på 500 m förkastas av redigering efter anpassning vid 5-σ (exakt en observation), vilket lämnar en ren anpassning på millimeternivå; residualer rapporteras uppdelade i radiell/transversell/normal samt i 3D.
Nivå för empiriska accelerationer (RTN konstant + 1-CPR (CPR: cykel per varv)) validated De nio empiriska parametrarna med a priori-begränsning håller sig under 1×10⁻⁸ m·s⁻² på empirifri referens utan att störa anpassningen; en konstant acceleration tvärs banan på 3×10⁻⁸ m·s⁻², injicerad i referensen, återvinns till inom 20 %.

Ärlig avgränsning: den syntetiska vågen använder nominella parametrar för jordorientering (EOP: UT1 (Universal Time 1, jordrotationstid) ≈ TT (Terrestrial Time), ingen polarrörelse) — exakt för självåtervinning, eftersom samma modell genererar och anpassar bågen. Valideringarna mot dataset från rymdorganisationer lägger verkliga finals2000A-EOP och SP3/SPK (SPK: efemeridkärna för planeter) som referens ovanpå den här motorn genom CIO-systemkedjan (src/eop.rs, tests/agency_galileo.rs, tests/agency_swarm.rs, tests/agency_lro.rs).

Verkliga precisa banor från rymdorganisationer (tests/agency_galileo.rs, tests/agency_swarm.rs, tests/agency_lro.rs)#

Datamängd Status Evidens
Galileo MEO — < 5 m GREEN validated Kshanas motor med full kraftmodell anpassad till ett ordagrant utsnitt av den slutliga bana som ESA/ESOC (ESOC: European Space Operations Centre) själva publicerar (ESA0MGNFIN, ITRF (International Terrestrial Reference Frame)) för Galileo E11 över 8 h, varje ITRF-positionsbestämning roterad till GCRS med verkliga finals2000A-EOP: 3D-RMS 0,133 m efter anpassning med ren kraftmodell + C_R (RTN 0.105/0.067/0.047 m, C_R 1,174), 0,070 m med den empiriska nivån, från en rå överlappning på 78,7 km. Hela bågen på 24 h ger 0,611 m. Allt långt inom tröskeln på 5 m. Gravitationsfältet är konvergerat vid grad/ordning 8 (identiskt vid 8/10/12); jobbet workflow_dispatch kör hela grad/ordning 70. Ursprung + SHA-256 (SHA: Secure Hash Algorithm) i tests/fixtures/agency/NOTICE.md; fullständig redovisning i docs/AGENCY-ORBIT-VALIDATION.md.
Swarm-A LEO — < 5 m GREEN validated Motor med full kraftmodell (+ atmosfäriskt luftmotstånd) anpassad till ett ordagrant utsnitt av ESA:s egen reducerat dynamiska precisa bana för Swarm-A (SW_OPER_SP3ACOM_2_, L47, ITRF, ~430 km, ~2 cm) över 3 h vid grad/ordning 70, verkliga finals2000A-EOP genom CIO-kedjan: nivån dynamisk (endast tillstånd, statisk densitet, C_R=1) ger 3D-RMS 2,687 m efter anpassning (RTN 0.925/2.522/0.045 m — residualen ≈ rent luftmotstånd längs banan), nivån reducerat dynamisk (+ empiriska CPR-accelerationer) 0,098 m (RTN 0.026/0.092/0.025 m) — ~10 cm mot ESA:s bana på ~2 cm. Ursprung + SHA-256 i tests/fixtures/agency/NOTICE.md; fullständig redovisning i docs/AGENCY-ORBIT-VALIDATION.md.
LRO (Lunar Reconnaissance Orbiter), Månen — validerad, över 5 m (ärligt) validated Månencentrerad anpassning av kraftmodell (src/lunar_od.rs): gravitationsfältet GRGM660PRIM från GRAIL (grad/ordning 100) i månens kroppsfasta huvudaxelsystem (src/lunar_frame.rs, IAU 2015 medeljord + den fasta förskjutningen från DE421 (Development Ephemeris 421) medeljord → huvudaxlar (ME→PA), tillämpad så som SPICE definierar den sedan 0,36: fram till dess tillämpades den i fel riktning, cirka 208″ fel) + Jorden/Solen som tredje kropp, anpassad genom samma generiska Gauss–Newton-skattare som jordens dataset till den verkliga JPL Horizons LRO (NAIF −85) rekonstruerade banan, 4 h / 241 epoker, ~98 km. Ärligt resultat efter anpassning (0,36): dynamisk 12,05 m (RTN 2.91/10.11/5.88), reducerat dynamisk 6,67 m (RTN 3.41/4.58/3.44, 1+2 per varv empiriskt), från en rå överlappning på 39,9 m (före rättningen av ME→PA: 12,6 m, 6,65 m, 53,8 m) — över tröskeln < 5 m, och det beror inte på skattaren (identiskt vid grad/ordning 100/150 och atol 1e-6/1e-9). En korsvalidering av DE-klass (xval/anise-lunar-od: månens huvudaxelorientering från DE440 (Development Ephemeris 440) + DE440-efemerid via ANISE) rättade påståendet om den begränsande faktorn — den gav 12,0 m dynamisk och 6,67 m reducerat dynamisk, vilket den rättade analytiska stacken nu matchar på båda nivåerna (det tidigare dynamiska gapet, 12,6 → 12,0 m, var felet i förskjutningen ME→PA), så det operativa golvet är inte den analytiska orienteringen/efemeriden utan en residual som inte kan reduceras av den empiriska nivån (mest förenlig med omodellerad icke-gravitationell dynamik hos LRO över den korta bågen); den slimmade analytiska stacken matchar redan DE-klass för den reducerat dynamiska banan. Ursprung + SHA-256 i tests/fixtures/agency/NOTICE.md; fullständig redovisning i docs/AGENCY-ORBIT-VALIDATION.md. Validerad mot verklig referens från rymdorganisationer: 3 av 3; uppfyller < 5 m: 2 av 3.

Navigering med gravitationskarta / alt-PNT (src/gravimeter.rs, src/mapmatch.rs, src/particle_filter.rs, src/altpnt/terrain.rs)#

Aspekt Status Evidens
Gravitationsanomalifält med sfäriska övertoner validated src/gravimeter.rs: ett fält av låg grad, fullt normaliserat, kontrollerat mot de slutna Legendre-funktionerna (P̄₁₁ = √3·cosφ, P̄₂₀ = (√5/2)(3sin²φ−1), P̄₂₂ = (√15/2)cos²φ) och en för hand härledd anomali med en term på 1,897 mGal.
Mätmodell för kallatomsgravimeter validated (modell) Det vita brusgolvet härleds från ASD för CAI-accelerometern (σ = ASD/√τ) och injiceras som en deterministisk frösatt följd (matcharen får aldrig brusfri referens, men körningen är ändå bitreproducerbar).
Partikelfilter med sekventiell viktad omsampling validated src/particle_filter.rs: den deterministiska kärnan är exakt fastlåst — ESS (effective sample size, effektiv urvalsstorlek) som spänner över 1…N, systematisk omsampling som väljer index i proportion till vikt, den konvexa kombinationen i det viktade medelvärdet, en gaussisk likelihood som drar skattningen mot mätningen och determinism i frösatt prediktion.
Likelihood för kartmatchning + återvinning validated src/mapmatch.rs: field_likelihood når sitt maximum (= 1) vid perfekt matchning och faller till e^(−½) vid en sigma; ett partikelfilter över en särpräglad syntetisk terrängbit återvinner den sanna positionen till inom 0,1.
Benchmark utan GPS på 60 minuter validated run_gps_denied_gravity_nav (scenarios/gps-denied-gravity-nav.toml): ett avbrott på ~700 km / en timme där tröghetslösningen driver till ≈ 70 km återvinns till ≈ 145 m (< 500 m) av en hierarkisk matchare från grov till fin — bitreproducerbar, stabil över brusrealiseringar och bevisat begränsad av förfiningen (ett enda grovt rutnät fastnar vid ~2 km).
Laddare för SRTM (Shuttle Radar Topography Mission) .hgt DEM (digital elevation model) + bilinjär sampling (OBEROENDE REFERENS A) validated src/altpnt/terrain.rs / tests/terrain_nav_validation.rs: en handbyggd buffert .hgt på 2×2 med hörn [100 200;300 400] interpoleras bilinjärt till exakt 250,0 i cellens mitt (sluten oberoende referens), 16-bitars big-endian tur och retur är exakt, och radvändningen placerar nordligaste filraden vid den högsta lagrade latituden — allt mot specifikationen för drivrutinen SRTMHGT (Shuttle Radar Topography Mission height-file format) i GDAL (Geospatial Data Abstraction Library) (16-bitars teckenbehäftad big-endian, radvis, nordlig rad först, tomvärde -32768, https://gdal.org/en/stable/drivers/raster/srtmhgt.html). En incheckad fixtur på 11×11 (tools/gen_terrain_fixture.py) övar parsern i CI; och en incheckad verklig SRTM v3-ruta i allmän egendom från NASA/USGS (USGS: United States Geological Survey) (N36W117, Death Valley, decimerad till 6 bågsekunder, 722 KB, tests/fixtures/terrain/N36W117_sub6.hgt) läses i CI (inte ignorerad, real_srtm_committed_badwater_tile_reads_real_relief) och placerar Badwater Basin vid ≈ −78 m inom det dokumenterade bandet [−95,−70] m (mätvärde från NGS/NOAA (NGS: National Geodetic Survey; NOAA: National Oceanic and Atmospheric Administration) ≈ −86 m) med rutans maximum ≈ 2161 m — sanningskällan är mätningen, det är DEM:en som testas (icke-cirkulärt). Större publicerade spothöjder (Mount Whitney 4421 m) finns kvar i fullruteteser som styrs av #[ignore].
Konvergens för terrängbaserad navigering (TERCOM/SITAN (TERCOM: terrain contour matching; SITAN: Sandia Inertial Terrain-Aided Navigation)) (OBEROENDE REFERENS B) validated run_terrain_nav (scenarios/terrain-nav.toml): en handhärledd injicerad INS-drift (0,5°N, −0,4°E ≈ 70 km vid ~12° lat, beräknad som drift° × M_per_deg × cos lat) återvinns till < 500 m (inom golvet för rutnätsupplösningen search_step/factor² ≈ 140 m), en minskning med > 100× jämfört med fri tröghetsnavigering — kontrollerad mot det injicerade talet, aldrig mot DEM:en (icke-cirkulärt), bitreproducerbar och stabil över brusfrön.
Fusionsvinst för gravitation+magnetism+terräng (OBEROENDE REFERENS C) validated run_combined_altpnt (scenarios/combined-altpnt.toml): tre skalära kanaler (Δg · |B| anomali i jordskorpan · höjd) fuserade som en produktlikelihood ger en begränsad residual < 500 m över avbrottet på 60 min som, medelvärdesbildad över frön, är inte sämre än den bästa enskilda kanalen (additiv information / lägre CRLB (Cramér–Rao lower bound)). Ligger inom det publicerade regimen för TERCOM / terrängbaserad navigering (TRN) med CEP (circular error probable) på "tiotals meter" (https://en.wikipedia.org/wiki/TERCOM; PeerJ 2024 ESKF-TERCOM (ESKF: error-state Kalman filter), https://peerj.com/articles/cs-3118/).

Ärlig avgränsning: gravitationsfältet är av låg grad + syntetiska mascons, inte hela koefficientuppsättningen EGM2008/EIGEN (EIGEN: European Improved Gravity model of the Earth by New techniques); den magnetiska kanalen vilar på det jämna IGRF-huvudfältet plus syntetiska mascons för anomalier i jordskorpan (en verklig högfrekvent skorpkarta är en uppföljning); CI-terrängfältet för benchmarkarna av navigeringspositionsbestämning är den självständiga syntetiska DEM:en, medan själva läsaren för .hgt nu är validerad i CI mot en incheckad verklig SRTM v3-ruta (ovan); fullupplösta verkliga rutor styrs fortfarande av #[ignore]. En Monte Carlo-studie av felet i kartrepresentationen är fortfarande en uppföljning. Alla tre navigatorerna är nu kopplade till scenariomotorn med kind= (gravity-map, terrain-nav, combined-altpnt).

INS-/IMU-felmodell — datablad-refererad validering (src/inertial/)#

Den stokastiska felmodellen för IMU är validerad mot publicerade specifikationer från tillverkares datablad / dataset — aldrig mot ett värde som Kshana självt har producerat. Bryggan från en specifikation i fältenheter till brusmodellen i SI (International System of Units) är den vanliga identifieringen via Allan-deviation (Riley, NIST SP 1065 §5; IEEE (Institute of Electrical and Electronics Engineers) Std 952): koefficienten för slumpvandring N är den överlappande ADEV avläst vid τ = 1 s på lutningen τ⁻¹ᐟ², och koefficienten för biasinstabilitet är den flacka Allan-platån (tests/imu_allan_spec.rs, hermetisk — ingen nedladdning).

Aspekt Status Evidens / oberoende referens
Enhetskonverteringslager (risk nr 1 för icke-cirkularitet) validated Handkontrollerat: 0,15 deg/√hr = 4.3633e-5 rad/√s; 3,6 µg = 3.5304e-5 m/s²; 2,0 deg/hr = 9.6963e-6 rad/s.
Gyrots slumpvandring i vinkel validated ADIS16465 ARW 0,15 deg/√hr (datablad från Analog Devices) återvunnen från ADEV(1 s) till < 5%.
Accelerometerns slumpvandring i hastighet validated ADIS16465 VRW 0,1 m/s/√hr återvunnen till < 5%.
Allan-lutning för vitt brus validated ADIS16460, vit gren, log-log-lutning −0,5 ± 0,05.
Platå för biasinstabilitet under körning validated ADIS16465, gyrots biasinstabilitet (BI) 2,0 deg/hr återvunnen som det flacka Allan-minimumet till < 15%.
Andra IMU-profilen validated NaveGo ADIS16488 (ARW 0,3 deg/√hr, VRW 0,029 m/s/√hr) båda återvunna till < 5%.

Ärlig avgränsning: detta validerar den stokastiska felmodellen mot Allan-koefficienter i datablad. Fordonsdatasetet KF-GINS från i2Nav-WHU (WHU: Wuhan University) används som en separat, datastyrd kontroll: det löst kopplade EKF med felmodell i sluten slinga och hävarmsmodell för GNSS är en VALIDATED rad i verifieringsmatrisen (Loosely coupled GNSS/INS EKF with lever arm on the KF-GINS dataset), jämförd med C++-referensbanan från KF-GINS under trösklar som registrerades före körningen. Den körs bara där datasetet tillhandahålls (KSHANA_KFGINS_DIR); utan det körs den syntetiska laddaren och testerna av hävarmen. De tätt kopplade varianterna och varianterna med bärvågsfas täcks inte av den raden (raden för tätt kopplad GNSS/INS med bärvågsfas är MODELLED).

Djuprymd och Mars-PNT — D0-grunden (src/body.rs, src/mars_frame.rs, src/ephem_provider.rs, src/radiometric.rs, src/timescales.rs)#

Den första milstolpen för navigeringsmotorn för djuprymd: att generalisera den jordhårdkodade kärnan till en godtycklig centralkropp, lägga till Mars-dynamik, en gränsyta för efemerisleverantörer, tid under en mikrosekund samt primitiver för ljustid och relativistisk fördröjning. Varje befintligt jordscenario är byte-identiskt — referensfilerna (golden) för reproducerbarhet över plattformar (tests/cross_platform_golden.rs, tests/golden.rs) går igenom oförändrade utan omgenerering, vilket kontrolleras vid varje incheckning.

Term Status Evidens
Abstraktion av centralkropp (Jorden byte-identisk) validated src/body.rs: Body{mu,re,zonals,gravity,rotation,IAU-pole} med earth()/mars()/moon()/sun(). tests/mars_dynamics.rs kontrollerar att two_body_accel_body(r,&Body::earth()) och zonal_accel_body är lika med de äldre jordfunktionerna med exakt bitlikhet (assert_eq!), och en jordbåge med standardvärdet för ForceModel är byte-identisk — referensfilerna för reproducerbarhet är oförändrade (samma SHA, ingen omgenerering).
Gravitation för Mars (GMM-3 (GMM: Goddard Mars Model) tesseral, kroppsfast) validated (modell) Body::mars_gmm3(nmax): zonala C̄20/C̄30/C̄40 från J2/J3/J4 i MRO110 (gravitationslösning för Mars Reconnaissance Orbiter) (C̄n0=−Jn/√(2n+1), J2 går tur och retur till 1.9604e-3) + sektoriella/tesserala C̄22/S̄22, C̄32/S̄32 från MRO110B2 (Konopliv et al. 2011; tabellerade i Liu, Baoyin & Ma 2012), utvärderade i det kroppsfasta IAU-systemet för Mars. tests/mars_dynamics.rs kontrollerar tur och retur, J2-skalans avvikelse från punktmassa, och att fältet verkligen är kroppsfast (en omorientering med ett kvarts Marsdygn ändrar den tröghetsbaserade accelerationen). Högre grad/ordning laddas från en medföljande .gfc via gravity_sh::from_gfc.
Kroppsfast system för Mars (IAU-pol) validated src/mars_frame.rs: IAU:s 3-1-3-rotation R3(W)·R1(90°−δ0)·R3(90°+α0) (konvention från WGCCRE/NAIF (WGCCRE: Working Group on Cartographic Coordinates and Rotational Elements), samma som i lunar_frame.rs). Tester: ortonormal till 1e-12 med determinant +1, identitet vid tur och retur, nollmeridianen avancerar med prime_w_dot per dygn.
Propagering centrerad på Mars / Solen validated (självkonsistens) tests/mars_propagation.rs: en bana kring Mars med låg höjd (Low-Mars-Orbit) återvänder till sin start efter en Kepler-period (slutning); specifik energi ε=v²/2−μ/r driver <1e-9 över bågen; den sekulära regressionen av noden från Mars J2 stämmer med Vallados analytiska takt (oberoende beräknad ≈ −5,15 °/dygn vid 60° inklination) till 3%; en heliocentrisk bana återger Marsåret på ~687 dygn (vis-viva + oberoende återvinning av perioden från bågen). Inga externa data.
Korsvalidering mot DE440 (heliocentriska Mars) kernel-gated xval/anise-mars-od/ (undantagen från arbetsytan; MPL-2.0-licensierade ANISE avgränsat till sin egen Cargo.lock; speglar xval/anise-lunar-od): jämför Kshanas Sun-centrala Marspropagering med JPL DE440 (via ANISE), med referens från Horizons citerad ordagrant (ursprung + SHA-256). Återskapat resultat (start-JD (Julian date) 2459580,5 TDB (Barycentric Dynamical Time), de440s.bsp SHA-256 c1c7fee…b260a49f2): positionsresidual 137 m vid båge på 1 dygn (5,97×10⁻¹⁰ av det heliocentriska avståndet 2,299×10¹¹ m), växande till 3,3 km vid 5 d, 87,9 km vid 30 d, 1,71 Mm vid 90 d — residualen växer med båglängden eftersom en Sun-central tvåkroppsmodell medvetet utelämnar planetstörningarna (främst Jupiter) och den interna rörelsen i Marssystemet som barycenter-efemeriden DE440 bär, så tillväxten är den ärliga signaturen av den omodellerade n-kroppsdynamiken, inte ett integratorfel; en kort båge som förblir en liten del av det heliocentriska avståndet bekräftar att det Sun-centrala maskineriet är korrekt. Körs bara när DE440-kärnan finns ($KSHANA_ANISE_DE440S, eller hämtas automatiskt, ~32 MB) — en manuell kontroll av DE-klass / workflow_dispatch, inte en standardspärr i CI, så det publicerade cratet och varje standardspärr förblir byte för byte orörda.
Ljustid + Shapiro-fördröjning validated src/radiometric.rs: den iterativa lösningen av ljustid till retarderad epok (konvergerar |Δτ|<1e-12 s, med tak) och Shapiro-fördröjningen Δt=(2μ/c³)·ln[(r1+r2+r12)/(r1+r2−r12)]. Tester: Jorden–Solen ≈ 499 s och Jorden–Månen ≈ 1,28 s via den inbyggda efemeriden; en syntetisk sändare med konstant hastighet återvinner den analytiska retarderade lösningen till <1e-9 s (lösaren bevisat oberoende av varje verklig efemerid); Shapiro stämmer exakt med ett handräknat värde och ger ~100–250 µs för en stråle som snuddar vid Solen vid övre konjunktion Jorden–Mars.
Gränssnitt för efemerisleverantörer validated src/ephem_provider.rs: trait EphemerisProvider + kärnfri BuiltinEphemeris (Sol/Måne enligt Montenbruck–Gill, geocentriskt); returnerar None för kroppar som den saknar serie för (t.ex. Mars), där ANISE-leverantören av DE-klass är vägen — samma uppdelning mellan inbyggd och ANISE som LunarEnvironment/AniseLunarEnvironment.
Tvådelad tid + TT↔TDB validated src/timescales.rs: en TwoPartJd{day,frac} med Knuth-tvåsummeackumulering återvinner intervall under en mikrosekund som JD med en enda f64 förlorar nära J2000 (>1000× bättre, testat); tt_to_tdb/tdb_to_tt använder den dominerande periodiska serien av Fairhead–Bretagnon (|TDB−TT|≲1,7 ms, handverifierad vid J2000). Additivt — den befintliga tidsvägen med enkel f64 är oförändrad.

Radiometriska observabler för djuprymd och CCSDS Tracking Data Message — D1 (src/radiometric.rs, src/ccsds_tdm.rs)#

Den andra milstolpen för navigeringsmotorn för djuprymd: observabelmodellen som omvandlar D0-kärnan för ljustid/relativistisk fördröjning till de storheter som ett följningspass från Deep Space Network (DSN) eller ESTRACK (European Space Tracking network) faktiskt rapporterar — avstånd, Doppler med en/två/tre vägar, koherent transponderomvändning, regenerativ/PN (PN: pseudo-noise) avståndsmätning, Δ-DOR (DOR: differential one-way ranging) och utbredningsmedier — samt in- och utdata för CCSDS (Consultative Committee for Space Data Systems) 503.0-B Tracking Data Message (TDM) som läser in/skriver ut en standardiserad följningsfil från en rymdorganisation. Ärlig avgränsning: detta är exakta geometriska modeller enligt konventionerna i Moyer / CCSDS; mätningens brus är det sigma per observation som anroparen anger, inte inbakat i modellen. Att återskapa ett specifikt verkligt följningspass kräver verkliga TDM-data plus lösaren för banbestämning i djuprymd — det är D2, inte D1. Allt nedan är additivt (referensfilerna för reproducerbarhet är oförändrade; samma SHA, ingen omgenerering).

Term Status Evidens
Avstånd och Doppler med 1/2/3 vägar (Moyer, lösning i två led) validated (modell) src/radiometric.rs: one_way_range/two_way_range sätter ihop D0:s retarderade (nedlänk) och avancerade (upplänk) lösningar för ljustid; hela konventionen för tur och retur är ρ₂ = c·(τ_up + τ_down) (m), dokumenterad och konsistent. one_way_doppler/two_way_doppler/three_way_doppler bildar bärvågsförskjutningen f_D = −(M·f_ul/c)·(ρ̇_up + ρ̇_down) (Hz) från avståndshastigheten längs siktlinjen, teckenkonvention: en rymdfarkost som närmar sig ger en positiv (blå) förskjutning. Tester: avstånd med två vägar = summan av leden till <1 mm (~2 AU tur och retur Jorden–Solen); avstånd med en väg = c·τ exakt; Doppler med en väg stämmer med det analytiska −(f/c)·ρ̇ för en radiell sändare med konstant hastighet till ppt; tre vägar med samlokaliserade stationer kollapsar byte för byte till två vägar.
Koherent transponderomvändning (exakta DSN-förhållanden) validated src/radiometric.rs turnaround_ratio: de exakta rationella omvändningstalen för DSN/CCSDS M = f_down/f_up (Moyer §13; DSN 810-005 modul 201/214) — S/S 240/221, S/X 880/221, X/S 240/749, X/X 880/749, X/Ka 3344/749, Ka/Ka 3360/3599. Testade för exakt likhet; ett odefinierat bandpar avbryter med panic (fail-loud, hittar aldrig på ett förhållande). two_way_doppler_coherent tillämpar bandets bärvåg + förhållandet från början till slut och är lika med den explicita two_way_doppler till maskinprecision.
Regenerativ / PN-avståndsmätning (CCSDS 414; tvetydighet) validated src/radiometric.rs: regenerative_range_ambiguity = c/(2·chip_rate) (det entydiga avståndet i skalan för upplösning per chip) och pn_range_ambiguity = det multiplicerat med kodlängden (det fullständiga entydiga avståndet för PN-koden c·L/(2·f_chip)), enligt CCSDS 414.1-B. Testat: en avståndsklocka på 1 MHz ger ~149,9 m; PN-koden med viktad röstning enligt CCSDS-414.1 (1 009 470 chip) vid 1 Mchip/s ger det entydiga designavståndet ~151 000 km; en fördubblad chiptakt halverar tvetydigheten per chip.
Δ-DOR (CCSDS 506, himmelsplanet) validated (modell) src/radiometric.rs delta_dor: den differentiella fördröjningen i himmelsplanet Δτ = −B⃗·(ŝ_sc − ŝ_quasar)/c (s) för en interferometerbaslinje B⃗ (CCSDS 506.1-B). Testat: stämmer med den exakta analytiska projektionen −B·sin(Δθ)/c för en känd förskjutning längs baslinjen till 1e-15 s, storleken i liten vinkel |Δτ| ≈ B·Δθ/c, och nollfallet (en rymdfarkost i linje med kvasaren ger exakt noll differentiell fördröjning).
Plasma 1/f², kalibrering med två frekvenser validated (modell) src/radiometric.rs: solar_plasma_delay = K_PLASMA·TEC/(c·f²) (den dispersiva gruppfördröjningen 1/f² från laddade partiklar, K_PLASMA = 40.3 m·Hz²·TECU⁻¹); coronal_tec_from_sep kolonnen för koronan av Cassini-klass TEC ∝ 1/sin(SEP) (analytiskt substitut, inte en kalibrerad korona); dual_freq_plasma_calibration den dispersiva inversionen K_disp = (Δt_X−Δt_Ka)/(1/f_X²−1/f_Ka²) som DSN använder för att ta bort plasma. Testat: 1/f²-lagen d_X/d_Ka = (f_Ka/f_X)²; koronan stiger mot konjunktion; och en injicerad TEC återvinns till <1 % (i själva verket ≪ 1e-9 brusfritt) — dual_frequency_recovers_injected_plasma.
Medier för troposfär / jonosfär (återanvänder GNSS-modeller) validated (modell) src/radiometric.rs tropo_delay/iono_delay: markstationssegmentet för djuprymd passerar samma jordatmosfär som GNSS-paketet redan modellerar, så dessa delegerar till gnss_sim::tropo_delay_m (Saastamoinen-zenit + Niell-avbildning, icke-dispersiv) och gnss_sim::klobuchar_delay_m (jonosfär från utsändning). Testat inkopplade + med fysikaliskt tecken: tropo positiv och större vid låg elevation än i zenit; iono en icke-negativ fördröjning längs siktlinjen (numerisk noggrannhet testas av GNSS-paketets egna databladsrefererade tester).
CCSDS-TDM 503, tolkning / skrivning + radiometrisk brygga validated src/ccsds_tdm.rs: en läsare och skrivare för CCSDS 503.0-B-2 KVN (keyword-value notation) (huvud + segmenten META_START…META_STOP / DATA_START…DATA_STOP; posterna RANGE/DOPPLER_*/ANGLE_*/*_FREQ). Tester (#[cfg(test)] + tests/fixtures/deepspace/reference.tdm): referensfixturen tolkas till de förväntade namngivna fälten; tolkning→skrivning→tolkning ger en lika struktur (semantisk tur och retur); bryggan to_radiometric_obs avbildar de entydiga posterna RANGE/DOPPLER_* till RadiometricObs (antal vägar från PATH 1,2/1,2,1/1,2,3, band från TRANSMIT_BAND, km→m); en fil med flera segment nollställer tillståndsmaskinen. Ärligt hoppa-över-inte-gissa: vinklar/frekvenser, okända band, epoker som dag på året och okända tidssystem hoppas över, avbildas aldrig fel, och sigma lämnas som 0.0 för anroparen att vikta.
DSN/ESTRACK-benchmark (modellens precision ≫ publicerat golv) validated (model) tests/radiometric_benchmark.rs: observablerna är exakta geometriska beräkningar, så den ärliga benchmarken är att modellens eget numeriska fel ligger långt under det publicerade mätgolvet för DSN/ESTRACK — modellen är inte flaskhalsen för noggrannheten, det är det σ som anroparen anger. Varje test beräknar en observabel på två oberoende sätt (eller återvinner en injicerad referens) och kontrollerar att residualen ligger under golvet: avstånd går tur och retur till <1 mm ≪ golvet på ~1 m för PN-avståndsmätning (DSN 810-005 mod. 214 / CCSDS 414.1-B); Doppler stämmer med den exakta slutna retarderade avståndshastigheten v/(1+v/c) till ~10⁻⁶ m/s, flera × under golvet för X-band på ~0,05 mm/s (DSN 810-005 mod. 203 / Moyer) — residualen är f64-golvet för avståndsdifferens vid ~1 AU, en numerisk egenskap och inte ett modellfel; Δ-DOR återger den slutna projektionen till en motsvarande vinkel i himmelsplanet ≪ 1 nrad ≪ golvet på ~1–10 nrad (DSN 810-005 mod. 210 / CCSDS 506.1-B); plasma med två frekvenser återvinner den injicerade fördröjningen till ≪ 1 %; och Shapiro-fördröjningen ligger i det publicerade bandet ~100–250 µs för konjunktion Jorden–Mars. De publicerade siffrorna anges och märks som DSN-specifikationer av storleksordning, inte påhittade exakta tal, och moduldokumentet är tydligt med att detta mäter modellens precision, inte återskapande av verkliga pass (det är D2 + verklig TDM).

Reducerat dynamisk OD för djuprymd — D2 (src/deepspace_od.rs, src/clock_state.rs, src/mars_atmos.rs)#

Den tredje milstolpen för navigeringsmotorn för djuprymd: skattaren som omvandlar de radiometriska observablerna i D1 till en återvunnen bana — ett numeriskt robust kvadratrotsinformationsfilter (Square-Root Information Filter, SRIF) med reducerat dynamiska empiriska accelerationer, en ombordklocka med tre tillstånd, en modell för luftmotstånd på Mars och de radiometriska mätpartialerna som kopplar avstånd/Doppler till filtertillståndet, avslutad från början till slut med en syntetisk återvinning av banbestämning för en bana kring Mars med låg höjd (LMO). Ärlig avgränsning: återvinningen är en syntetisk sluten slinga (referensen och filtret delar samma Mars-propagator, och observationerna är samma geometriska observabelmodell som filtret inverterar, plus injicerat gaussiskt brus) — den validerar skattarens maskineri, inte den absoluta noggrannheten hos kraftmodellen för Mars; den externa korskontrollen av DE-klass är craten xval/anise-mars-od som styrs av kärnor (D0.8b). Allt nedan är additivt (referensfilerna för reproducerbarhet är oförändrade; samma SHA, ingen omgenerering).

Term Status Evidens
SRIF-kärna (kvadratrotsinformationsfilter) validated src/deepspace_od.rs Srif: ett handskrivet kvadratrotsinformationsfilter av Bierman — övre triangulär R med Λ = RᵀR, informationsvektor b, Householder-mät-/tidsuppdateringar, aritmetik med enbart Vec<f64> (ingen nalgebra). Tester: det sekventiella SRIF stämmer med lösningen med satsvis viktad minsta kvadrat (gauss_newton) i både tillstånd och kovarians till 1e-9 på ett konstruerat linjärt-gaussiskt problem (srif_matches_batch_on_linear); den återvunna kovariansen P = R⁻¹R⁻ᵀ är symmetrisk (1e-12) och positivt definit genom konstruktion efter en lång sekvens av mät-/tidsuppdateringar (srif_covariance_is_spd, Cholesky lyckas); och informationen ackumuleras (spåret av P avtar monotont när mätningar med identisk geometri vikas in).
Reducerat dynamiska empiriska accelerationer (avstämning mellan cruise och LMO) validated src/deepspace_od.rs ReducedDynamicOd: filtret med nio tillstånd [r; v; a_emp] med empiriska RTN-accelerationer som Gauss–Markov-processer av första ordningen som tillstånd, den reducerat dynamiska tekniken från JPL/ESOC exponerad som ett enda reglage dynamic_tightness (nästan dynamisk ⇒ jämnar ut brus på en ballistisk båge; nästan kinematisk ⇒ den empiriska nivån absorberar en omodellerad manöver/luftmotstånd). Tester: ett nästan kinematiskt filter följer en stegformad (thruster-) manöver med <½ av residualen hos det nästan dynamiska, medan det nästan dynamiska filtret jämnar ut en brusig ballistisk båge bättre (reduced_dynamic_tracks_maneuver); att svepa stramheten flyttar residualen efter anpassning monotont, ett kontinuum och inte en omkopplare (tuning_is_a_continuum).
Ombordklocka med 3 tillstånd (fas/frekvens/drift, van Loan Q, Allan) validated src/clock_state.rs ClockState3: felstillstånd för fas + relativ frekvens + frekvensdrift med exakt diskret processbrus enligt van Loan och en Joseph-stabiliserad uppdatering. Tester: den diskretiserade Q stämmer med det för hand härledda van Loan-polynomet till 1e-12 och reduceras exakt till Q för tvåtillståndsklockan KalmanClock när drift = 0 (en strikt övermängd); en glidning över flera steg växer fasvariansen till det analytiska holdover-sambandet i NIST SP 1065 genom termen för slumpmässig körning T⁵; drifttillståndet återvinner en sann åldringsramp till <5 %; en Allan-profil av USO-klass återvinns (överlappande ADEV vid τ=1 s inom kalibreringsgränsen) och skattaren förblir NEES-konsistent (>95 % inom 3σ) och PSD genom en körning med hårt Q/R. ClockClass bär de citerade CSAC/USO/DSAC (USO: ultra-stable oscillator; DSAC: Deep Space Atomic Clock) σ_y(1 s)-siffrorna och Doppler-golvet Δv = c·σ_y.
Atmosfäriskt luftmotstånd på Mars (Mars-GRAM-lite (GRAM: Global Reference Atmospheric Model)) validated (model) src/mars_atmos.rs: en styckvis exponentiell profil för neutraldensitet på Mars (yta ~0,020 kg/m³, skalhöjd nära ytan ~11 km, lågdammsmedelvärdet i Mars-GRAM 2010 / MCD (Mars Climate Database)) och den kvadratiska luftmotståndsaccelerationen relativt den medroterande Marsatmosfären, plus en variant ..._scaled som SRIF kan multiplicera. Tester: densiteten avtar monotont och kontinuerligt över banden, den återvunna skalhöjden nära ytan är de fysikaliska ~11 km, luftmotståndet är strikt antiparallellt med den relativa hastigheten (kryssprodukten försvinner till 1e-12) med en rimlig storlek ~3e-4 m/s² i LMO, och det är linjärt i den ballistiska termen. Ärlig avgränsning: en representativ ingenjörsatmosfär, inte en flygvaliderad Mars-GRAM/MCD med beroende av damm/årstid/lokal tid.
Radiometriska mätpartialer (avstånd/Doppler) för SRIF validated src/deepspace_od.rs range_observable / range_rate_observable: partialerna för avstånd längs siktlinjen ρ = |r_sc − r_sta| (∂ρ/∂r = û, ∂ρ/∂v = 0) och avståndshastighet ρ̇ = û·(v_sc − v_sta) (∂ρ̇/∂v = û, ∂ρ̇/∂r = (v_rel − ρ̇·û)/ρ) som kopplar D1:s observabler till filtertillståndet, plus partialen för klockfrekvens vid Doppler med en väg ∂ρ̇_obs/∂y = c. Tester: båda partialerna stämmer med en central finit differens av observabeln till 1e-6 (range_partial_matches_finite_difference, range_rate_partials_match_finite_difference); en enda avståndsuppdatering krymper kovariansen i den observerade riktningen (siktlinjen, LOS) med ≫1000× och håller den positivt definit (PD), och en Doppleruppdatering krymper variansen i hastighet längs LOS (radiometric_update_reduces_covariance_in_observed_direction, range_rate_update_observes_velocity).
Mars-LMO, OD från början till slut utifrån radiometriska data validated (synthetic closed-loop) tests/mars_lmo_od.rs: en referensbåge i bana kring Mars med låg höjd, propagerad under gravitationen Body::mars_gmm3(4), genererar brusigt avstånd (σ=1 m) + Doppler (σ=0,1 mm/s) med två vägar mot två följningsstationer; det reducerat dynamiska SRIF återvinner den från ett initialtillstånd som är ~2,7 km stört. Uppnått: konvergerad positions-RMS ≈ 0,2 m (under en meter, långt inom kriteriet meter till tiotals meter) över en båge på 3 varv med kadens 30 s, med den faktoriserade kovariansen positivt definit i varje epok (SRIF-garantin, kontrollerad genomgående). Kontinuumet cruise→LMO prövas från början till slut: med en omodellerad referens för luftmotstånd som filtermallen saknar återvinner reglaget för reducerat dynamiskt läge (stramhet 1) till ~14 m mot ~677 m för körningen i nästan dynamiskt läge (stramhet 0) — en förbättring på 48× när den empiriska nivån absorberar luftmotståndet. Ärlig avgränsning: syntetisk sluten slinga (referens = samma propagator som filtret använder); den externa korskontrollen av DE-klass är den kärnstyrda xval/anise-mars-od (D0.8b), aldrig körd här, inget nätverk.

Scenario för PNT i djuprymd och fusion av en väg + två vägar — D3 (src/mars_pnt.rs, src/deepspace_od.rs)#

Den fjärde milstolpen för navigeringsmotorn för djuprymd: ett körbart produktscenario för Mars-PNT som knyter ihop Marskroppen/systemet i D0, de radiometriska observablerna i D1 och den reducerat dynamiska OD i D2 till en enda scenariotyp mars-pnt. Det modellerar en liten reläkonstellation i stil med MARCONI som sänder en signal i rymden med en väg (klockkopplad) och dessutom vidarebefordrar en länk med två vägar (koherent, klockfri) till en station för djuprymd, och navigerar tre referensanvändare (Marsöverföring, orbiter i bana kring Mars med låg höjd, fast punkt på ytan) genom den gemensamma skattaren D3.1 för fusion av en väg + två vägar — ett SRIF med tolv tillstånd som utökar det reducerat dynamiska bana-/empiriska blocket i D2 med en ombordklocka med tre tillstånd. Ärlig avgränsning: varje kvalitetsmått är skattarens formella kovariansgräns (1σ / 3σ position per epok) och den uppnådda RMS mot en syntetisk referens i sluten slinga (referensen och filtret delar samma Marsdynamik och samma geometriska observabelmodell, plus injicerat gaussiskt brus) — ett simulerat navigeringsmått, INTE en luftfartscertifierad skyddsnivå och INTE ett flygpåstående (ingen certifierad felmodell, ingen integritetsövervakare, inga verkliga följningsdata). Allt nedan är additivt (referensfilerna för reproducerbarhet är oförändrade; samma SHA, ingen omgenerering).

Term Status Evidens
Gemensam radiometrisk fusion av en väg + två vägar (fuserad slår vardera ensam) validated src/deepspace_od.rs FusionOd: det reducerat dynamiska SRIF D2.2 utökat med de tre klocktillstånden ombord (ClockState3), som tar in en blandad tidsserie av avstånd/Doppler med två vägar (klockfri, fäster banan — nollkolumner för klockan i partialen) och en väg (klockkopplad — frekvenspartialen ∂ρ̇_obs/∂y = c) genom fused_observable. Strukturen kalibrera-sedan-glid: pass med två vägar fäster banan, data med en väg kalibrerar sedan klockan och låter banan glida mellan passen med ett fel som begränsas av klockans Allan-stabilitet. Testat i src/deepspace_od.rs #[cfg(test)]: den fuserade lösningen slår vardera länktyp ensam; glidfelet för en körning med enbart en väg växer med gapet mellan passen med två vägar i linje med Allan-gränsen för klockklassen; den gemensamma kovariansen förblir SPD (symmetrisk positivt definit) hela tiden.
MARCONI-konstellation (areostationär radie, ockultation) validated (model) src/mars_pnt.rs MarconiConstellation: en uppsättning av fem reläer — tre areostationära reläer vid r = (μ/ω²)^{1/3} ≈ 20 428 km (den Mars-synkrona radien utifrån publicerad μ/rotationstakt; testad inom bandet 20 400–20 500 km) jämnt fördelade 120° i longitud med 5° inklination, plus två reläer i en högre (1,4× areostationär) cirkulär bana med 60° inklination för täckning i himmelsplanet. Reläens tillstånd per epok integreras framåt under gravitationen mars_gmm3; synlighetstestet för ockultation av Mars är geometrin där kordan klarar sfären (chord_clears_sphere, testat: ett diametralt motsatt relä är skymt, ett relä rakt ovanför är synligt). Ärlig avgränsning: en minimal representativ geometri för utsändning plus relä byggd på publicerade Marskonstanter — inte en specifik utformning av en flygkonstellation.
Scenariot mars-pnt nåbart via CLI / Python / WASM (WebAssembly) / MCP (Model Context Protocol) validated src/mars_pnt.rs MarsScenario / run_mars_pnt är kopplat som scenariot kind = "mars-pnt" över alla gränssnitt (D3.3): körningen i CLI, Python-bindningen, bygget för WASM/playground och MCP-serverns dispatch leder alla till det (src/api.rs, test av tur och retur mars_pnt_kind_round_trips_through_the_dispatch). Medföljande referensscenarier: scenarios/mars-pnt-lmo.toml, scenarios/mars-pnt-surface.toml, scenarios/mars-pnt-transfer.toml. Resultatet bär en explicit fom_note som märker kvalitetsmåttet som en kovariansgräns (inte en certifierad skyddsnivå, PL), och utdata summary / to_svg upprepar ärlighetsmärkningen.
Målen för MARCONI / LightShip återskapade: orbiter < 100 m, rover < 15 m validated (synthetic closed-loop, under stated assumptions) tests/mars_pnt_targets.rs: de publicerade programmålen för MARCONI / LightShip (orbiter < 100 m, yta/rover < 15 m) återskapade i simulering. Gemensamma antaganden: standardkonstellationen MARCONI med fem reläer; varje relä i sikte ger avstånd + Doppler med en väg per epok; ett koherent stationspass med två vägar var 30 min; brus av DSN-klass (avstånds-σ = 1 m, Doppler-σ = 0,1 mm/s); det gemensamma fusionsfiltret för reducerat dynamisk bana + klocka med 3 tillstånd, initierat från ett a priori-tillstånd som är ~2,7 km stört (stramhet 0,1); kvalitetsmått = konvergerad 3D-positions-RMS för bågens bakre hälft mot den syntetiska referensen. Orbiter (LMO ~400 km / 60° inkl., klocka av typ USO, kadens 60 s, ~2 h ≈ en båge på ett varv): uppnådd konvergerad RMS ≈ 0,40 m ≪ målet 100 m (i genomsnitt 3,1 reläer i sikte, kovarians SPD genomgående). Rover (fast punkt på ytan vid ekvatorn, klocka av typ USO, kadens 30 s, båge på ~2 h): uppnådd konvergerad RMS ≈ 5,1 m < målet 15 m (i genomsnitt 3,0 reläer i sikte, kovarians SPD). Båda målen uppfylldes utan att någon assertion försvagades — USO är den mindre kapabla av de realistiska klasserna av ombordklockor (en DSAC skulle bara hjälpa) och kadensen på 30 min för pass med två vägar är försiktig för ett rutinmässigt schema i ett relänät, så antagandena är fysikaliskt rimliga för ett system av MARCONI-klass snarare än tillrättalagda för att klara testet. Ärlig avgränsning: simulerad återskapning under de angivna antagandena, INTE ett flygpåstående eller en certifierad skyddsnivå; den syntetiska referensen i sluten slinga delar filtrets Marsdynamik och observabelmodell.

Månens koordinattid — relativistisk klocktakt mellan Jorden och Månen (src/lunar_time.rs)#

En tidsskala för månens koordinattid (LTC/TCL (TCL: Temps-Coordonnée Lunaire, det franska namnet på Lunar Coordinate Time)) kräver den sekulära takt med vilken en klocka på månytan går relativt en klocka på jordens geoid (TT). src/lunar_time.rs beräknar den från första principer: en postnewtonsk identitet av första ordningen som summerar skillnaden i självpotential (IAU:s L_G, den konventionella geoidpotentialen W0 = L_G·c² ≈ 6.26369e7 m²/s², minus Månens självpotential vid ytan GM_moon/R_moon ≈ 2.822e6 m²/s²) och den kinetiska termen (andra ordningens Doppler) −<v²>/2c² från Månens geocentriska hastighet (finit differens från månserien av Montenbruck–Gill i src/ephem.rs). Den dominerande självpotentialtermen ger ≈ 57,5 µs/dygn, den kinetiska termen ≈ −0,5 µs/dygn, totalt ≈ 57 µs/dygn. Scenariot lunar-time-offset rapporterar denna takt, den ackumulerade skillnaden LTC−TT över en horisont och stödjer ett minimalt ensemblemedel med inversvarians (en klocka av papper för månen); omvandlingar TT↔LTC går tur och retur till < 1 ns/dygn.

Förmåga Status Oberoende referens / ärlig avgränsning
Relativistisk klocktakt mellan Jorden och Månen (LTC/TCL) modelled src/lunar_time.rs lunar_rate_breakdown, tt_to_ltc/ltc_to_tt, lunar_ensemble, LunarTimeScenario. Oberoende referens: en intern sluten relativistisk identitet (geopotentialen L_G enligt IAU / IERS-konventionerna och självpotentialen GM/r (GM: gravitationsparameter, G gånger massan)), korskontrollerad mot det publicerade bandet för månklockans takt [56, 59] µs/dygn. Tester (lunar_time::tests): självpotentialtermen ≈ 57,5 µs/dygn, Månens fart ≈ 1 km/s, den kinetiska termen en liten negativ, totalen inom bandet med de namngivna termerna som summerar till den, skillnaden LTC−TT efter 1 dygn ≈ 57 µs och en tur-och-retur-omvandling TT↔LTC på < 1 ns/dygn. Ärlig avgränsning: huvudsiffran i µs/dygn är referensberoende — den beror på de valda referensytorna (jordens geoid W0 kontra en selenoid på Månen), tidsfönstret för medelvärdesbildning och de försummade korrektionerna för centrifugal/J₂ under µs/dygn — vilket är skälet till att ett band, inte ett enskilt certifierat tal, är den publicerade utdatan. Detta är en kontroll av självkonsistens av typen Modelled, INTE en extern validering, INTE absolut noggrannhet under en nanosekund och INTE certifierad för operativ tidshållning.

Geodetisk VLBI för Månen — närfältsfördröjning för en baslinje på Jorden som observerar en beacon på Månen (src/lunar_vlbi.rs)#

En observabel för geodetisk VLBI (very-long-baseline interferometry) för två markstationer på Jorden (en baslinje) som observerar en signal med en väg från en sändare av klass NovaMoon på månytan. Månen är i närfältet, inte en plan våg, så den geometriska fördröjningen är den exakta skillnaden mellan två avstånd tau_geom = (|r2 − r_B| − |r1 − r_B|)/c snarare än projektionen i himmelsplanet. Hela observabeln lägger till skillnaden i stationernas klockoffset och en differentierad Shapiro-term för jordens potential (återanvänd från src/radiometric.rs). Stationerna placeras i geocentriska tröghetskoordinater (GCRS) via src/frames.rs + src/cio.rs; beaconen via src/ephem.rs (geocentrisk Måne) + src/lunar.rs (selenografisk→MCMF (MCMF: Moon-centred, Moon-fixed)) + src/lunar_frame.rs (IAU-2015 ME kroppsfast→tröghet). Scenariot lunar-vlbi samplar fördröjningen, dess hastighet med finit differens och närfältskorrektionen under ett pass.

Den oberoende referensen är den observabel för Δ-DOR med plan våg i samma kodbas, delta_dor i src/radiometric.rs: i fjärrfältsgränsen (en syntetisk beacon på 1e15 m) måste den geometriska fördröjningen kollapsa till −(B·ŝ_B)/c = delta_dor(r_B, [0,0,0], B) till maskinprecision; vid verkligt månavstånd är korrektionen för vågfrontens krökning i närfältet skild från noll (tiotals till hundratals µs). Beacon-partialerna dtau/dr_B = ((r_B−r2)/|r_B−r2| − (r_B−r1)/|r_B−r1|)/c (och stationspartialerna) verifieras med central finit differens (relativt fel < 1e-5).

Förmåga Status Oberoende referens / ärlig avgränsning
Fördröjning och partialer för geodetisk VLBI på Månen modelled src/lunar_vlbi.rs geometric_delay_s, vlbi_delay_s, delay_partials_beacon/_station1/_station2, near_field_correction_s, LunarVlbiScenario. Oberoende referens: ReferenceImpl — den observabel för plan våg delta_dor i samma kodbas (src/radiometric.rs) i fjärrfältsgränsen, plus partialer med finit differens. Tester (lunar_vlbi::tests): stationens storlek ≈ jordradien, beaconens avstånd vid månavstånd (356–407 Mm), den geometriska fördröjningen i fjärrfältet stämmer med delta_dor till < 1e-9 s, en korrektion i närfältet skild från noll vid månavstånd, FD-partialer för beacon/station inom 1e-5 relativt, en exakt klockterm och en ändlig scenariokörning via run_toml. Ärlig avgränsning: Modelled, INTE validerad mot verkliga VLBI-data. Polarrörelsen utelämnas (xp = yp = 0), så stationernas tröghetspositioner bär ett fel i referenssystemet på några meter; beaconen blandar en månserie för medelekvatorn för datum med en kroppsfast förskjutning i ICRF (International Celestial Reference Frame) (jd_tdb ≈ jd_tt), en inkonsistens mellan referenssystem som ligger under modellens noggrannhet men inte är rigorös; och det finns ingen iteration av ljustid, jordrotation under ljustiden, medier (tropo/iono/plasma) eller aberrationsterm utöver den differentierade Shapiro-termen. Inget påstående görs om TRL (technology readiness level), flygarv eller stöd från någon rymdorganisation. 0,30: mot ljustider i ANISE via DE440 ligger ingen fördröjning på denna analytiska väg inom 1 ps (största gap 24 µs); resultatet är fastlåst.
Lunar geodetisk VLBI, kärnväg validated (0.30) src/lunar_vlbi.rs KernelGeometry (DE440 för Jorden och Månen, DE440 för månens huvudaxlar, jordorientering ITRF93, varje ljustid konvergerad i det barycentriska systemet), körs av scenariot lunar-vlbi när de tre kärnsökvägarna är satta. Oberoende referens: Library — NAIF SPICE Toolkit N0067 (spiceypy 8.2.0) konvergerade ljustider till DSS-14/43/63, förhandsregistrerat: 75 fördröjningar inom 1 ps (sämst 0,06 ps), partialer för beacon och station inom 1e-6, vid 25 epoker nära J2000 (en ändring efter att 2024 epoker föll på SPICE:s egen epok för emission i dubbel precision, cirka 6 ps, redovisad och fastlåst). Den differentierade Shapiro-termen, fördröjningens hastighet och närfältskorrektionen i scenariot jämförs inte.

Gemensam multiteknik-OD + klocka för Månen — simulerad återvinning i sluten slinga (src/lunar_combination.rs)#

En enkelepoks (ögonblicksbild) anpassning med satsvis minsta kvadrat (crate::batch_ls::gauss_newton_qr, ett Householder-QR-steg sedan 0,30) som fuserar teknikerna geodetisk VLBI, radiometrisk/lokal avståndsmätning på Månen och avståndsmätning mellan satelliter på ett SIMULERAT månnät för att tillsammans återvinna 3D-positionen för en station på månytan, positionerna för varje satellit i en liten konstellation och varje tillgångs klockoffset. Observablerna är: (1) geodetiska VLBI-fördröjningar för en jordbaslinje till månstationen behandlad som beacon (återanvänder src/lunar_vlbi.rs, geocentrisk tröghet) — huvudtekniken; (2) geocentriska radiometriska avstånd från jordstation till satellit (som multilaterar konstellationen från de väl spridda jordstationerna) och lokala avstånd på Månen mellan station och satellit (euklidiskt avstånd i MCI (Moon-centred inertial) plus den differentierade klocktermen); (3) avstånd mellan satelliter (samma form); plus en enda pseudoobservation för klocksynkronisering av stationen som fäster den annars icke-observerbara gemensamma klockoffseten. Tillståndsvektorn är [station_pos(3), {sat_pos(3)}×N_sat, station_clk, {sat_clk}×N_sat]. Det finns ingen propagering med kraftmodell inne i lösaren — satelliterna är fasta, distinkta, illustrativa punkter på en representativ månbana; detta är medvetet en ren ögonblicksanpassning. Internt skalas positionerna och klockorna skattas i avståndsekvivalenta meter så att normalmatrisen förblir välkonditionerad i f64; VLBI-avstånden och avstånden på Månen medelvärdesbefrias kring den nominella geometrin så att Jacobianen med finita differenser inte drabbas av katastrofal utsläckning. Scenariot lunar-joint-od-clock kör lösningen med och utan VLBI-leden på samma frö/referens och rapporterar båda lösningarna plus förbättringsfaktorn för stationens observerbarhet.

Det viktigaste ärliga resultatet: lokal avståndsmätning på Månen från en polstation till en handfull satelliter som alla ligger mot samma sida av himlen lämnar stationens position svagt observerad längs en riktning, så lösningen med enbart avstånd är illakonditionerad och det återvunna 3D-felet för stationen blir stort (eller så konvergerar inte lösningen). Att lägga till VLBI-fördröjningarna för jordbaslinjen gör stationens hela 3D-position observerbar, och det återvunna stationsfelet rasar till meternivå. Testet vlbi_restores_station_observability kontrollerar att stationsfelet med VLBI är märkbart (≥5×) mindre än felet med enbart avstånd på samma injicerade referens — att VLBI återställer den annars icke-observerbara stationsriktningen är hela poängen med fasen.

Den oberoende referensen är intern konsistens: ett injicerat referenstillstånd (station ~50 m/axel, satelliter ~30 m/axel, klockor ~1e-7 s, med ett frösatt jitter per komponent) avbildas till syntetiska observabler genom samma geometrimodell som lösaren inverterar, frösatt gaussiskt brus läggs till (illustrativa standardvärden: VLBI σ ≈ 1e-11 s, avstånds-σ ≈ 0,1 m, ISL-σ ≈ 0,1 m; vikter 1/σ²), och skattaren måste återvinna det injicerade referenstillståndet inom bruset från en initial gissning med nollor. Ett medelvärde av NEES Δxᵀ(HᵀWH)Δx med Monte Carlo över frön (formal_covariance_nees) ligger inom ett löst band kring n_params, en kontroll av kovariansens realism.

Förmåga Status Oberoende referens / ärlig avgränsning
Lunar gemensam multiteknik-banbestämning + klocka validated (0,30, P2: lösningens linjära algebra) src/lunar_combination.rs estimate, formal_covariance_nees, LunarCombinationScenario. Oberoende referens 0,30: P2 — numpy 2.4.6 (LAPACK gelsd och inv) räknar om varje Gauss–Newton-steg, den konvergerade viktade lösningen, de formella sigmavärdena och stationsfelet på de incheckade Jacobianerna för sex nät (tests/lunar_joint_od_numpy_oracle.rs, steg inom 2.4e-11, sigmavärden inom 1.3e-11); de fysikaliska observationsmodellerna och storleksordningarna förblir MODELLED. Tidigare oberoende referens: InternalConsistency — återvinning av en injicerad simulerad referens + konsistens i NEES-kovarians. Tester (lunar_combination::tests): full fusion återvinner referensen (station < 5 m, RMS för satelliter < 5 m, klockor < 1e-8 s, konvergerad); VLBI återställer stationens observerbarhet i 3D (stationsfelet ≥5× mindre med VLBI än med enbart avstånd på samma referens); deterministisk (samma frö → bitidentisk lösning, annat frö → annorlunda men återvunnen); medel-NEES inom ett löst band kring n_params; ändliga/skyddade rapporterade tal även när enbart avstånd är illakonditionerat; scenariot skickat via run_toml. Ärlig avgränsning: detta är en simulerad återvinning i sluten slinga — referensen delar observationsmodellen — INTE validering mot verkliga data; ingen propagering med kraftmodell inne i lösaren; satelliternas positioner och geometrin för stationerna på Jorden/Månen är illustrativa. Inget påstående görs om TRL, flygarv eller stöd från någon rymdorganisation.

Realisering av referenssystem för Månen — anpassning av datum med Helmert-transform med 7 parametrar (src/lunar_frame_realise.rs)#

Där src/lunar_frame.rs tillämpar IAU:s WGCCRE-orientering av månkroppen från 2015 (en framåtmodell) skattar (realiserar) denna modul ett referenssystem för Månen från ett nät av skattade punktkoordinater knutna till ett datum. Skattningskärnan är en klassisk likformighetstransform (Helmert) med 7 parametrar — tre translationer, tre rotationer i liten vinkel och en skalparameter — som avbildar punkter p_i (skattat system) till q_i (datumsystem) som q_i = t + (1 + s)·R(θ)·p_i, med R(θ) = rz(θz)·ry(θy)·rx(θx) byggd av crate::precession::{rx, ry, rz, matmul, mat_vec}. De sju parametrarna [tx, ty, tz, θx, θy, θz, s] skattas från ≥ 3 icke-kollinjära punktpar med viktad minsta kvadrat genom crate::batch_ls::gauss_newton: framåtmodellen predicerar varje q_i från dess p_i och plattar ut alla tre komponenter för alla punkter till observabelvektorn, de observerade datumkoordinaterna bildar z, vikterna är 1/σ², och lösningen startar från x0 = zeros. Rotationsvinklar skattas i µrad och skala i ppb så att Jacobianen med finita differenser förblir välskalad vid storleken på koordinaterna på månytan (~1.7e6 m). En liten funktion icrf_orientation_tie sammansätter den realiserade lilla rotationen genom orienteringen kropp→ICRF enligt IAU (transpose(crate::lunar_frame::icrf_to_iau_moon(jd_tdb))) och returnerar det realiserade systemets residuala förskjutning i liten vinkel kring ICRF-axlarna — en medvetet enkel ändring av uttrycksformen, inte en oberoende skattning av månens pol.

Den oberoende referensen är intern konsistens: en känd Helmert-transform (translation ~tiotals m, rotation ~µrad, skala ~1e-7) injiceras i ett välspritt syntetiskt punktnät (varierande selenografisk lat/lon → MCMF, vissa punkter på höjd), frösatt gaussiskt brus läggs till, och anpassningen måste återvinna de injicerade parametrarna. På brusfria data sker återvinningen till ~maskinprecision (translation < 1e-6 m, rotation < 1e-9 rad, skala < 1e-12); med brus på meternivå hamnar de återvunna parametrarna inom några × det formella σ och RMS-residualen efter anpassning ligger nära brusnivån. Scenariot lunar-frame-realisation rapporterar det återvunna datumet, återvinningsfelet per parameter mot den injicerade referensen, RMS-residualen efter anpassning och kopplingen av den realiserade rotationens ICRF-orientering.

Förmåga Status Oberoende referens / ärlig avgränsning
Realisering av månens referenssystem modelled src/lunar_frame_realise.rs helmert_fit, apply_helmert, realise_frame, icrf_orientation_tie, LunarFrameRealiseScenario. Oberoende referens: InternalConsistency — återvinning av en injicerad likformighetstransform med 7 parametrar plus den algebraiska identiteten för tur och retur för apply_helmert. Tester (lunar_frame_realise::tests): brusfri återvinning av den injicerade transformen (translation < 1e-6 m, rotation < 1e-9 rad, skala < 1e-12); återvinning med brus inom några × σ och RMS-residual nära brusnivån; tillämpa-sedan-invertera, tur och retur; deterministisk (samma frö → bitidentisk, annat frö → annorlunda men återvunnen); ICRF-kopplingen vid noll rotation är noll och kopplingen bevarar rotationens storlek; scenariot skickat via run_toml. Ärlig avgränsning: detta är en kontroll av självkonsistens — den återvinner en injicerad transform på ett syntetiskt nät — INTE en realisering av månens referenssystem mot verkliga följnings-/VLBI-data, och den gör inga anspråk på absolut noggrannhet i referenssystemet. ICRF-orienteringskopplingen är en enkel ändring av uttrycksformen, inte en oberoende polskattning. Inget påstående görs om TRL, flygarv eller stöd från någon rymdorganisation.

Servicevolym för navigering på Månen — DOP / täckning / tillgänglighet + generaliserad PL med ARAIM för Månen (src/lunar_service.rs)#

Den här modulen sätter ihop redan byggda delar till en analys av servicevolym för navigering på Månen: den sveper ett selenografiskt rutnät av latitud/longitud över en tidshorisont mot en illustrativ konstellation i månbana av klass Moonlight / LCNS (LCNS: Lunar Communications and Navigation Services) från offentliga källor och rapporterar DOP / täckning / tillgänglighet plus ett generaliserat hölje av skyddsnivåer med ARAIM för Månen. De två återanvändningarna är bärande och explicita. DOP-geometrin är den VALIDATED kärnan (mot gnss_lib_py) crate::orbit::dop — service_dop är ett tunt filter för elevationsmask plus den kärnan, och ett test kontrollerar identiteten (service_dop är lika med ett direkt orbit::dop på samma synliga positioner). Integritet återanvänder maskineriet för ARAIM för Månen från LunaNet LNIS (LunaNet Interoperability Specification) crate::lunar::lunar_araim (σ_URE ≈ 30 m, P_sat ≈ 1e-4); lunar_protection_level generaliserar den befintliga skyddsnivån för sydpolen till en godtycklig punkt på ytan, och ett test kontrollerar att den reduceras till fallet sydpolen (vid sydpolen med samma geometri/budget returnerar den exakt det befintliga resultatet lunar::lunar_araim till < 1e-9).

Konstellationens parametrar är en illustrativ approximation av offentliga beskrivningar från ESA av systemklassen (≈ 4 satelliter i elliptiska frusna månbanor som gynnar täckning av sydpolen — apolun över södra halvklotet; 4 är standardvärdet i biblioteket, och den medföljande moonlight-service-volume.toml sätter 8 eftersom skyddsnivån kräver minst 6 i sikte). De är inte den verkliga efemeriden för Moonlight/LCNS och antyder ingen anknytning, något stöd, arv, certifiering eller TRL. Sammansättningen (täckning / tillgänglighet / integritet) är MODELLED: en uppsättning reläer med cirkulär/elliptisk Kepler-rörelse (inte en differentialkorrigerad efemerid för LCNS / 9:2 NRHO (near-rectilinear halo orbit)), en måne med medelrotation (ingen fysikalisk libration / pol med precession) och publicerade integritetsparametrar för LunaNet LNIS. Den visar metoden för servicevolym, inte ett operativt tillgänglighetstal. Deterministisk (ren geometri; ingen slumpmässighet). Scenariot moonlight-service-volume rapporterar täckningsprocenten, höljena för antal synliga och PDOP, höljet HPL/VPL över volymen och tillgängligheten för skyddsnivån mot larmgränsen.

Förmåga Status Oberoende referens / ärlig avgränsning
Täckningsvolym för navigeringstjänst på månen modelled src/lunar_service.rs LunarConstellation, visible_sats, service_dop, coverage, lunar_protection_level, LunarServiceScenario. DOP-geometri validerad genom återanvändning av kärnan crate::orbit::dop, validerad mot gnss_lib_py; integriteten återanvänder ARAIM för Månen från publicerade LunaNet/LNIS (crate::lunar::lunar_araim, σ_URE ≈ 30 m). Tester (lunar_service::tests): service_dop är en identitet på den validerade kärnan; lunar_protection_level vid sydpolen är lika med den befintliga PL från lunar::lunar_araim till < 1e-9 (reduceras till fallet sydpolen); täckningen är icke-avtagande i konstellationens storlek; synligheten respekterar elevationsmasken; scenariot är deterministiskt och skickas via run_toml. Ärlig avgränsning: konstellationen är illustrativ, från offentliga källor, INTE knuten till ESA — inte den verkliga efemeriden för Moonlight/LCNS; sammansättningen av täckning/tillgänglighet/integritet är MODELLED (reläer med cirkulär/elliptisk Kepler-rörelse, måne med medelrotation, publicerade LNIS-parametrar), INTE ett operativt tillgänglighetstal för Moonlight. Inget påstående görs om TRL, flygarv eller stöd från någon rymdorganisation.

Differentiell PNT för Månen — upphävande av gemensamt läge + residual som växer med baslinjen + skyddsnivåer för DGNSS (src/lunar_dpnt.rs)#

En analog till DGNSS (differential satellite navigation) / SBAS för Månen: en referensstation av klass NovaMoon på en känd selenografisk plats beräknar differentiella korrektioner per satellit från en illustrativ konstellation av klass Moonlight / LCNS från offentliga källor, och en rörlig användare på en baslinje från den tillämpar dem så att de gemensamma felen i utsänd efemerid upphävs. Varje satellit i bär en injicerad gemensam 3D-vektor för banfel e_i och ett gemensamt klockfel c_i. Referensstationens residual i pseudoavstånd är korrektionen −e_i · û_ref,i + c_i; användarens råa fel är −e_i · û_user,i + c_i; det korrigerade användarfelet är deras skillnad −e_i · (û_user,i − û_ref,i). Klocktermen c_i upphävs exakt (den är identisk i båda observationerna), och banfelstermen kollapsar till projektionen på skillnaden mellan de två enhetsvektorerna längs siktlinjen, som → 0 när baslinjen → 0 (golvet för rumslig dekorrelation) och växer ≈ linjärt med baslinjen. De korrigerade avståndsfelen per satellit avbildas genom användargeometrin med en liten ögonblickslösning med viktad minsta kvadrat med få beroenden (tillståndet [x, y, z, clock] via crate::orbit::invert4; en konstant avståndsbias absorberas av den okända klockan i stället för att förstöra positionsbestämningen) för att ge användarens positionsfel. Användarens skyddsnivå återanvänder maskineriet för skyddsnivå i SBAS enligt DO-229E (crate::sbas::sbas_protection_level, K-faktorer för precisionsinflygning) med den differentiella residualens σ som 1-σ-felbudget för varje satellit.

NovaMoon nämns enbart som systemklass (en offentlig beskrivning av en referensstation på Månen); konstellationen återanvänder den illustrativa crate::lunar_service::LunarConstellation från offentliga källor. Detta är illustrativa parametrar för att öva den differentiella metoden, inte en verklig efemerid, och de antyder ingen anknytning, något stöd, arv, certifiering eller TRL. Scenariot lunar-differential-pnt rapporterar användarens positionsfel med och utan korrektioner, reduktionsfaktorn, kurvan fel mot baslinje och skyddsnivån. I standardkonfigurationen är det korrigerade användarfelet vid en baslinje på 50 km ≈ 0,008 m mot ≈ 24 m okorrigerat (en reduktion på ~3000×), och ≈ 0 vid noll baslinje.

Den oberoende referensen är intern konsistens: upphävandet av gemensamt läge är en exakt algebraisk identitet (med noise = 0 är det korrigerade felet < 1e-6 m vid noll baslinje; klocktermen upphävs till maskinprecision vid vilken baslinje som helst), residualen växer monotont med baslinjen, och skyddsnivån är samma algoritm enligt DO-229E som SBAS-stacken är fastlåst mot. Residualen från rumslig dekorrelation är en geometrisk modell av första ordningen, inte en anpassad dekorrelationsmodell från verklig följning på Månen.

Förmåga Status Oberoende referens / ärlig avgränsning
Differentiell PNT på månen modelled src/lunar_dpnt.rs differential_corrections, corrected_user_range_errors, user_position_error_m, lunar_dgnss_protection_level, LunarDpntScenario. Oberoende referens: InternalConsistency — identiteten för upphävande av differentiella fel plus återanvändning av maskineriet för skyddsnivå i SBAS enligt DO-229E (crate::sbas). Tester (lunar_dpnt::tests): vid noll baslinje är det korrigerade användarfelet och varje korrigerat avståndsfel per satellit ~0 (< 1e-6 m) och ≪ det okorrigerade felet; klocktermen upphävs exakt vid vilken baslinje som helst (fallet med banfel noll); det korrigerade felet växer monotont med baslinjen men förblir ≪ det okorrigerade vid måttliga baslinjer; differentiellt slår fristående med en tydlig marginal (> 2×); skyddsnivån är lika med ett direkt anrop av sbas::sbas_protection_level och skalar med residualens σ; underbestämd geometri returnerar None; scenariot är deterministiskt (frösatt) och skickas via run_toml. Ärlig avgränsning: MODELLED — upphävandet av gemensamt läge är en exakt identitet men residualen från rumslig dekorrelation är en geometrisk modell av första ordningen, inte en anpassad dekorrelationsmodell från verklig följning på Månen, och detta är inte validerat mot verkliga data. NovaMoon nämns enbart som systemklass (illustrativ, från offentliga källor, inte knuten till ESA). Inget påstående görs om TRL, flygarv eller stöd från någon rymdorganisation.

Export för interoperabilitet på Månen — CCSDS OEM + KIF i linje med LunaNet/IOAG med formatkontroll tur och retur (src/lunar_interop.rs)#

Månens referenssystem, tidsskala och efemerid exporteras i CCSDS-baserade utbytesformer i linje med LunaNet/IOAG (IOAG: Interagency Operations Advisory Group). Den här fasen hittar inte på något trådformat: den återanvänder cratets befintliga skrivare och läsare för CCSDS OEM (Orbit Ephemeris Message) version 2,0 (crate::oem::OemFile::to_oem_string / crate::oem::parse_oem) och Kshana Interchange Format-kuvertet (crate::interchange::Envelope), omtaggade för månens sammanhang. export_lunar_oem sätter OEM-fältet REF_FRAME till IAU:s WGCCRE-system för månkroppen från 2015 (MOON_ME medeljord eller MOON_PA huvudaxlar), TIME_SYSTEM till månens tidsskala (LTC / TCL / UTC) och CENTER_NAME till MOON, över en exempel-efemerid av illustrativ klass LCNS från offentliga källor (positioner från crate::lunar_service::LunarSat::position_mci, hastighet med central finit differens). export_lunar_time_metadata skriver ut en deskriptor för månens tid i linje med LunaNet/IOAG (skal-id, sekulär takt i µs/dygn från crate::lunar_time::lunar_rate_breakdown, det publicerade bandet 56–59 µs/dygn, referensyta) som går tur och retur genom serde_json. export_kif_lunar lindar in OEM + deskriptor + systemetikett i det befintliga KIF-kuvertet med ärlighetsmärkningen MODELLED.

Den oberoende referensen är kontroll av tur och retur / fält. Eftersom oem.rs levereras med båda riktningarna går OEM tur och retur genom crate::oem::parse_oem (tillbaka till ett lika segment, med månens system/tid och antalet tillstånd bevarade) och kontrolleras oberoende av oem_conformance, som verifierar att varje obligatoriskt nyckelord i CCSDS/LunaNet-huvudet finns, att REF_FRAME bär en token av typen MOON_* för Månen och att TIME_SYSTEM inte är tomt, att inramningen META_START … META_STOP håller och att datarader för position+hastighet är välformade — och returnerar ett strukturerat utfall (klarat/ej klarat) plus listan över närvarande/saknade fält så att en trasig export (t.ex. ett utelämnat TIME_SYSTEM) fångas och namnges. Tidsmetadata går tur och retur genom parse_lunar_time_metadata, och KIF-kuvertet går tur och retur genom Envelope::parse till lika artefakter som bär märkningen MODELLED.

Förmåga Status Oberoende referens / ärlig avgränsning
Export för interoperabilitet på månen modelled src/lunar_interop.rs export_lunar_oem, export_lunar_time_metadata, parse_lunar_time_metadata, export_kif_lunar, oem_conformance, LunarInteropScenario. Oberoende referens: InternalConsistency — deterministisk tur och retur (CCSDS OEM via crate::oem::parse_oem; KIF via crate::interchange::Envelope::parse; tidsmetadata via serde_json) plus kontroll av fältnamn mot publicerade fältsemantiker för CCSDS OEM + LunaNet/IOAG. Tester (lunar_interop::tests): den exporterade OEM bär token för månens REF_FRAME (MOON_ME/MOON_PA) och TIME_SYSTEM (LTC/TCL), CENTER_NAME = MOON, objektet och välformade datarader; metadata för månens tid går tur och retur (takt/band/referens) och avvisar skräp; KIF-kuvertet serialiseras och avserialiseras till ett lika värde med ärlighetsmärkningen MODELLED närvarande; en medvetet trasig OEM (saknar TIME_SYSTEM) underkänns av oem_conformance och rapporteras som saknad; scenariot skickas via run_toml. Ärlig avgränsning: fältens namn/enheter är i linje med offentliga standarder (CCSDS 502.0-B OEM, IAU:s WGCCRE-system för Månen från 2015, LunaNet Interoperability Specification / IOAG:s arkitektur för Månen); exporten är MODELLED — deterministisk tur och retur + kontroll av fältnamn är den oberoende referensen, detta är INTE ett certifierat test av formatkontroll för interoperabilitet, efemeriden är illustrativ, från offentliga källor, inte knuten till ESA, och inget påstående görs om TRL, flygarv eller stöd från någon rymdorganisation.

Förhandsregistrerade prediktioner#

En förhandsregistrerad prediktion är ett MODELLED resultat som fryses innan några data finns att poängsätta det mot, med poängsättningsprotokollet fastställt samtidigt. Det är inte en validering och lägger inte till någon rad i registret. Var och en finns i docs/predictions/, med sina frysta indata, sitt resultat och deras SHA-256-hashar, och tests/prediction_frozen.rs fallerar om någon fryst byte flyttas; ett ändrat antagande besvaras med en ny, daterad prediktion bredvid den gamla, aldrig genom att redigera den.

Prediktion Fryst Poängsatt mot Status
Täckning av en referensstation på Månen c05dac1d, 2026-10-12 publicerad noggrannhet, tillgänglighet, täckning och skyddsnivåer för en differentiell station vid månens sydpol, av vilken part som helst ännu inte poängsatt (inga publicerade resultat)

Demonstrationens representativitet och register över gap till flygning (src/representativeness.rs)#

Ett simuleringsresultat är bara användbart som evidens om det på sin framsida anger vad det är förankrat i, vad det antar och vad som fortfarande skiljer det från ett flygsystem. Registret över representativitet gör det till en förstklassig, maskinkontrollerad utdata: en post av typen Representativeness bär demonstrationens externa förankringar (Anchor), dess modellerade antaganden, dess gap (Gap) till flygning (var och en med den fas/aktivitet som skulle stänga det) och det TRL-band den är representativ för. Det är följeslagaren per resultat till verifieringsmatrisen (verification) på förmågenivå.

Den oberoende referensen är en uppsättning slutna invarianter, som upprätthålls av representativeness::tests: en post Validated måste lista minst en förankring ExternalDataset (en simulering kan inte valideras mot sig själv); en post Modelled måste lista minst ett gap till flygning och kan inte göra gällande ett representativt TRL-band över 4 (mognad bortom det kräver evidens från hårdvara/flygning, vilket är ett gap och inte en utdata från simulering); TRL-bandet måste vara välformat; och en post PartnerOwned får inte hävda något. Dessa invarianter omsätter disciplinen "representativiteten motiverad + återstående gap mot flygning tydligt identifierade" i praktiken.

Förmåga Status Oberoende referens / ärlig avgränsning
Register över representativitet och gap till flygning modelled src/representativeness.rs Representativeness/Anchor/Gap, check/is_valid/report/to_json. Oberoende referens: InternalConsistency — slutna invarianter för ärlighet knutna till gränsen mellan status och typ av oberoende referens i verification. Tester (representativeness::tests): en post Validated utan extern förankring underkänns; en intern förankring (ReferenceImpl) uppfyller inte Validated; en post Modelled utan gap underkänns; en post Modelled över TRL 4 underkänns; felformade TRL-band fångas; posten serialiseras till JSON med de förväntade fälten och ger en läsbar rapport. Ärlig avgränsning: registret kontrollerar klassificeringen av ett resultats evidens — det bevisar inte att de namngivna förankringarna leder till levande tester (de kurateras, precis som matrisen verification); påståendet "maskinkontrollerad" gäller bara invarianterna för status/förankring/gap/TRL.

Enhetlig evidens för avvägning mellan kvant och klassiskt (src/qtrade.rs)#

Varje tillämpningsområde för kvant-PNT besvarar samma fråga på samma sätt: fastställ en jämförelseram (scenario + frö + motorversion), led en kvantkandidat och en klassisk baslinje genom en neutral kodväg, poängsätt dem på gemensamma kvalitetsmått och rapportera — med ett konfidensintervall och en ärlig etikett validerad/modellerad — var kvant vinner och var inte. TradeEvidence ger det svaret en enda form så att vertikalerna för tidssynkronisering, navigering och avvikelsedetektion alla ger ut samma reproducerbara, ärligt märkta objekt. Den implementerar inte om någon avvägning: siffrorna per kvalitetsmått kommer från de befintliga motorerna (quantum_trade, crossover och vertikalmodulerna); detta är kontraktet plus omslaget för reproducerbarhet/representativitet, byggt på registret över representativitet och verifieringsetiketterna.

Den oberoende referensen är slutna identiteter för nytta/vinnare plus ett trogen inlindning av den befintliga avvägningsutdatan. qtrade::tests: nyttokvoten har rätt polaritet (orienterad så att >1 alltid betyder att kvantsidan är bättre, både för holdover där högre är bättre och för felmått där lägre är bättre); ett evidensobjekt byggt av ett verkligt quantum_trade::TradeResult återger sina nyttokvoter; oärlig evidens förkastas (en representativitet Modelled utan gap, eller ett kvalitetsmått Validated vars avvägningspost saknar extern förankring); JSON är deterministisk och bär fälten för ram/frö/motor/kvalitetsmått/representativitet.

Förmåga Status Oberoende referens / ärlig avgränsning
Evidens för avvägning mellan kvant och klassiskt modelled src/qtrade.rs TradeEvidence/TradeFom/TradeFrame/Winner. Oberoende referens: InternalConsistency — slutna identiteter för nytta/vinnare + trogen inlindning av quantum_trade::TradeResult; ärlighet knuten till registret över representativitet och gränsen mellan verifieringsstatus och typ av oberoende referens. Tester (qtrade::tests) som ovan. Ärlig avgränsning: ramverket standardiserar hur en avvägning rapporteras och reproduceras; fysiken bakom varje kvalitetsmått är vad den bidragande motorn tillhandahåller, med sin egen etikett validerad/modellerad — TradeEvidence uppgraderar inte ett modellerat kvalitetsmått till validerat.

Bibliotek för felmodeller för kvantenheter (src/quantum_devices.rs)#

En enda plats som exponerar de kvant-PNT-enheter som demonstratorn avväger — optiska klockor / klockor med fångade joner / kvicksilverjonklockor, klassiska referensklockor, kallatomsinterferometern och länkar för tidsöverföring — var och en som ett DeviceCard som bär sin huvudspecifikation och en post om representativitet. Det mesta av enhetsfysiken återanvänds (klockstabiliteter från holdover::QuantumClockClass och clock_state::ClockClass; kallatomsinterferometern från quantum_trade/crossover; klassiska optiska/RF-länkar från timetransfer_adv). Den enda verkligt nya modellen är länken för tidsöverföring med intrassling / enstaka fotoner, vars tidsprecision är skottbrusbegränsad: σ_t ≈ jitter/√(R·τ) i den detekterade koincidenstakten R och integrationen τ, försämrad av en bestraffning för mörkerräkningar √(1 + dark/R) och med golv från ett oreducerbart systematiskt fel.

Den oberoende referensen är de återanvända, publicerade koefficienterna för klockor/CAI plus slutna identiteter för skottbrus/förlust. quantum_devices::tests: den återanvända ordningen mellan klockstabiliteter är rimlig (optiskt gitter < kvicksilverjon < CSAC i σ_y(1 s)); precisionen för intrassling förbättras som 1/√τ (4× integration halverar σ) när den är skottbegränsad; den detekterade koincidenstakten faller 10× per 10 dB länkförlust; mörkerräkningar försämrar precisionen monotont; det systematiska golvet begränsar precisionen nedåt; varje enhetskort är en giltig post om representativitet av typen Modelled.

Förmåga Status Oberoende referens / ärlig avgränsning
Bibliotek med felmodeller för kvantenheter modelled src/quantum_devices.rs DeviceCard, quantum_clock_card/classical_clock_card, EntanglementTimeLink. Oberoende referens: InternalConsistency — återanvända publicerade koefficienter för klockor/CAI + slutna identiteter för skottbrus/förlust för intrasslingslänken. Tester (quantum_devices::tests) som ovan. Ärlig avgränsning: enhetsparametrarna för klockor/CAI återanvänds från motorns befintliga modeller med publicerade koefficienter; modellen för intrasslingslänken är MODELLED utifrån publicerat beteende hos synkronisering av kvantklockor med illustrativa värden för parfrekvens/effektivitet/förlust från offentliga källor — den är inte validerad mot en uppmätt länk, och verklig hårdvara för källa/kanal/detektor är ett angivet gap till flygning.

Betrodd kvanttidssynkronisering — kedja från början till slut, säker distribution, avvikelse + avvägning (src/timetransfer_chain.rs)#

Scenariot quantum-time-transfer sätter ihop den tidssynkroniseringskedja som en demonstrator för kvant-PNT behöver: en tidsbudget för användaren från början till slut (referensklockans fel under glidning och länkens tidsprecision kombinerade i kvadratur) för en kvantkedja (klocka med optiskt gitter + länk med intrassling/enstaka fotoner) mot en klassisk kedja (CSAC + RF-länk med två vägar); en skyddsnivå för tidssynkronisering (TPL, återanvänd från tpl) som begränsar det oupptäckta tidsfelet; ett säkerhetskvalitetsmått mot fördröjnings-/återuppspelningsattacker 1 − P_md vid en angiven frekvens av falsklarm (återanvänd från detection); en sannolikhet för detektion av klockavvikelser + latens för ändringsdetektion med CUSUM (cumulative sum); och jämförelsen kvant mot klassiskt som ärlig qtrade::TradeEvidence som bär en post om representativitet + gap till flygning.

Den oberoende referensen är en sluten budget i kvadratur över återanvända, separat validerade kärnor (ADEV mot Stable32/NIST; TPL-gränsen; detection::analytic_pd/analytic_pmd). timetransfer_chain::tests: kvantprecisionen förbättras med integrationstiden; kvantkedjan kan vinna och kan förlora kvalitetsmåttet precision (ärligt — ingen universell vinst; en mycket förlustbehäftad länk vänder resultatet); skyddsnivån är ändlig och positiv; säkerhetskvalitetsmåttet ligger i [0 1] och växer med attackens fördröjning; sannolikheten för detektion av avvikelser är monoton i felets storlek; och avvägningsevidensen är internt ärlig (is_honest()).

Förmåga Status Oberoende referens / ärlig avgränsning
Betrodd kvanttidssynkronisering (kedja + säker distribution + avvikelse + avvägning) modelled src/timetransfer_chain.rs QuantumTimeTransferScenario/Report, to_svg; kind="quantum-time-transfer". Oberoende referens: InternalConsistency — sluten budget i kvadratur över återanvända validerade kärnor (ADEV/Stable32-NIST, TPL-gräns, analytisk Pd/Pmd för detektion); ärlighet knuten till registret över representativitet. Tester (timetransfer_chain::tests) som ovan. Ärlig avgränsning: parametrar för klocka/länk är illustrativa, från offentliga källor; intrasslingslänken är den MODELLED skottbegränsade modellen från quantum_devices; detta modellerar klassen av system för betrodd tidssynkronisering — det är inte validerat mot en uppmätt länk från början till slut, och verklig hårdvara för klocka/länk/rymdkanal är ett angivet gap till flygning; inget påstående görs om TRL, flygarv eller certifiering.

Kvantnavigering utan GNSS (src/quantum_nav_od.rs)#

Scenariot quantum-gnss-free-nav jämför dödräkning under ett GNSS-avbrott med en tröghetsbudget för kvant (en accelerometer med kallatomsinterferometer, återanvänd från inertial::quantum_imu/quantum_trade, vars brusgolv av vitt brus för CAI är validerat till inom ~2 storleksordningar från Freier et al. 2016) mot en klassisk INS av navigeringsklass. Det rapporterar tillväxten av positionsfel under glidningen, holdover-tiden till en positionsgräns och avvägningen kvant mot klassiskt som ärlig qtrade::TradeEvidence. Observerbarheten anges ärligt: utan extern positionsbestämning under avbrottet är accelerometerns bias icke-observerbar, så positionsfelet växer obegränsat (≈ ½·bias·t² plus en term för slumpvandring i hastighet); en kvantsensor med lägre bias bromsar den tillväxten men stänger inte gapet — det gör bara en extern positionsbestämning.

Den oberoende referensen är de återanvända tröghetsbudgetarna (QuantumNavBudget/ClassicalInsBudget, båda implementerar traiten PositionDrift) plus slutna identiteter för drift. quantum_nav_od::tests: kvantbudgeten slår den klassiska över ett långt avbrott (lägre fel, längre holdover); felet växer med avbrottets längd för båda (gapet i observerbarhet); fördelen beror på avbrottet och är ingen konstant vinstfaktor (kvantkurvan domineras av brus vid kort glidning, av bias vid lång); avvägningsevidensen är internt ärlig.

Förmåga Status Oberoende referens / ärlig avgränsning
GNSS-fri kvantnavigering modelled src/quantum_nav_od.rs QuantumNavOdScenario/Report, to_svg; kind="quantum-gnss-free-nav". Oberoende referens: InternalConsistency — återanvända tröghetsbudgetar (CAI validerad genom återanvändning ~2 storleksordningar mot Freier 2016; klassisk sluten drift); ärlighet knuten till registret över representativitet. Tester (quantum_nav_od::tests) som ovan. Ärlig avgränsning: en statisk jämförelse av budgetar för dödräkning, inte ett dynamiskt filter på verkliga banor; icke-observerbar bias utan positionsbestämning anges; enhetsparametrarna är illustrativa, från offentliga källor; modellerar klassen av kvantnavigering utan GNSS — verklig IMU-hårdvara med kalla atomer, en dynamisk plattform och flygmiljön är angivna gap till flygning; inget påstående om TRL/flygning/certifiering.

Detektion av fel / avvikelser för kvant-PNT-system (src/quantum_faults.rs)#

Scenariot quantum-anomaly-detect definierar en märkt katalog över fel i kvant-PNT (frekvenshopp, drift och låsförlust hos klockor; biassteg och bortfall hos sensorer), poängsätter en detektionsstatistik på nominella mot felbehäftade fönster och rapporterar detektorns urskiljningsförmåga som ROC AUC och ett minsta detekterbart fel vid en fast frekvens av falsklarm. Vinkeln kvant mot klassiskt: en stabilare referensklocka av kvanttyp sänker övervakningens brus σ, så den upptäcker mindre fel — utgivet som ärlig qtrade::TradeEvidence med en post om representativitet.

Den oberoende referensen är en sluten AUC för den gaussiska detektionsstatistiken (nominell N(0,σ), fel N(μ,σ) ⇒ AUC = Φ(μ/(σ√2))) korskontrollerad mot den externt validerade eval_stats::bootstrap_auc_ci (validerad mot scikit-learn) och analytiska trösklar i detection. quantum_faults::tests: den analytiska AUC stämmer med kända värden (0,5 vid μ=0, →1 för stort μ/σ, monoton); konfidensintervallet för empirisk bootstrap-AUC omsluter det slutna värdet; kvantövervakningen har högre AUC och ett mindre minsta detekterbart fel; fördelen försvinner för mycket stora fel (båda upptäcker perfekt — ingen universell marginal); katalogen har fem märkta klasser; avvägningen är internt ärlig.

Förmåga Status Oberoende referens / ärlig avgränsning
Detektion av fel/avvikelser för kvant-PNT modelled src/quantum_faults.rs FaultKind, QuantumAnomalyScenario/Report, analytic_auc, min_detectable_fault; kind="quantum-anomaly-detect". Oberoende referens: InternalConsistency — sluten gaussisk AUC korskontrollerad mot den externt validerade bootstrap-AUC i eval_stats (mot scikit-learn) och analytiska trösklar i detection. Tester (quantum_faults::tests) som ovan. Ärlig avgränsning: detektionsstatistiken är en gaussisk modell, inte verklig telemetri; felkatalogen är märkt-syntetisk; brusnivåerna för kvant-/klassisk övervakning är illustrativa, från offentliga källor; modellerar klassen av avvikelsedetektion i kvant-PNT — verklig hårdvarutelemetri med referensetiketter är ett angivet gap till flygning; inget påstående om TRL/flygning/certifiering.

Dessa standarder är validerade genom att återvinna de ordagranna räkneexemplen / referensvärdena som publiceras i standarderna själva (eller i en oberoende referensimplementation), inte genom Kshanas egen tur och retur. Att återvinna en standards eget exempel i bilagan är den starkaste tillgängliga formatkontrollen för en tolk av ett utbytesformat.

Standard Status Extern oberoende referens
CCSDS OEM (502.0-B Orbit Data Messages) validated tests/ccsds_reference.rs: parse_oem återvinner exakta epoker och tillståndsvektorerna X/Y/Z/Ẋ/Ẏ/Ż i KVN-exemplet för OEM i CCSDS 502.0-B-3, bilaga G §G6, figur G-11 ("OEM Example with No Acceleration, No Covariance", s. G-10) — båda efemerissegmenten, inklusive källvärdena med inledande nollor (-063.042). Fixturen tests/fixtures/ccsds/oem_502_b3_figG11.oem återges tecken för tecken från den officiella Blue Book (de redaktionella markörerna "< intervening data records omitted here >", som inte är giltiga OEM-poster, ingår inte).
CCSDS TDM (503.0-B Tracking Data Message) validated tests/ccsds_reference.rs: TdmFile::parse återvinner alla 41 RANGE-poster (första 3198,03679519614 km, sista 3270,46440460551 km) och metadata i KVN-exemplet för TDM i CCSDS 503.0-B-2, bilaga E, figur E-9 ("Range Data with TIMETAG_REF=TRANSMIT", s. E-9). Fixturen tests/fixtures/ccsds/tdm_503_b2_figE9.tdm är ordagrann från Blue Book. (Detta är den oberoende referensen från publicerad Blue Book vid sidan av den tidigare handskrivna tur-och-retur-kontrollen reference.tdm i src/ccsds_tdm.rs.)
CCSDS 133,0 (Space Packet Protocol) validated src/space_packet.rs primary_header_matches_published_independent_test_vectors: kodaren återger testvektorerna på bytenivå för primärhuvudet i det oberoende biblioteket spacepackets (us-irs/spacepackets-py, tests/ccsds/test_space_packet.py) — t.ex. 18 02 40 34 00 16 och det helt maxade 1F FF FF FF FF FF — plus det kanoniska telemetrifallet (TM) med bara ettor, vart och ett skickat tur och retur genom avkodning. Bitfältens bredder/ordning enligt CCSDS 133.0-B-2 §4.1.3.
CCSDS 401 / DSN (länkbudget, DSN 810-005) validated src/linkbudget.rs link_equation_reproduces_descanso_galileo_dct: kedjan FSPL (free-space path loss) och C/N₀ återger den publicerade designkontrolltabellen för telemetri i djuprymd i J. H. Yuen (red.), Deep Space Telecommunications Systems Engineering (DESCANSO/JPL (DESCANSO: Deep Space Communications and Navigation Systems Center of Excellence) Pub. 82-76), tabell 1-1 — nedlänken för Galileo i X-band (8420,43 MHz) vid 6,37 AU: förlust i fri rymd 290,54 dB (<0,05 dB) och mottagen Pr/N₀ = 54,6 dB-Hz (<0,2 dB). Bandcentra ligger inom allokeringarna för nedlänk i djuprymd enligt DSN/CCSDS-401 (DSN 810-005 modul 201). Standardparametrarna för uppdrag förblir representativa (inte en kalibrerad transponder); det är ekvationen för länken som detta fastlåser.

GNSS-standarder — status för extern oberoende referens och de ärliga återstående gapen:

Standard Status och ärligt förbehåll
RAIM / ARAIM Kärna, geometri och skyddsnivån i ARAIM externt validerade. Detektionskärnan — tröskeln för feldetektion med χ², icke-centraliteten för missad detektion med icke-central χ² och K-multiplikatorerna för normalfördelningen — återger SciPy (tests/raim_reference.rs, 171 fall, ≤ 1e-6 rel), och den omslutande geometrin återger gnss_lib_py (DOP). Värdet på skyddsnivån (PL) i ARAIM är nu också fastlåst: mot WG-C (WG: Working Group) ARAIM Reference ADD (Algorithm Description Document) v3.1 "LPV-200 (LPV: localizer performance with vertical guidance) numerical example" ger src/araim_reference.rs / tests/araim_reference_vectors.rs VPL 18,2926 m mot 18,3 m, HPL 13,4063 m mot 13,45 m och σ_v,acc 1,3694 m mot 1,3694 m, inom referensens egen TOL_PL = 0,05 m (typen araim-reference-check). Avgränsning: felmoder upp till en satellit eller en konstellation (N_fault,max = 1); delmängder av fel med flera händelser och exkludering är inte implementerade, och klassisk RAIM har fortfarande ingen kanonisk publicerad testvektor från indata till HPL. Se ARAIM_REFERENCE.md.
SBAS / DO-229E Algoritmen för skyddsnivå är nu externt validerad. Givet (el, az, σ) per satellit återger sbas_protection_level i kshana RTKLIB:s gaffel för SBAS-PL (zsiki/rtklib_ws waasprotlevels(), Siki & Takács 2017, "DO-229D Appendix J") — matad med det verktygets egna σ beräknat från verkliga EGNOS-utsändningsmeddelanden + verklig BUTE-RINEX — till < 2e-3 m HPL över 6 epoker (tests/sbas_reference.rs); ESA gLAB v6.0.0 (core/filter.c) bekräftade identisk konvention. K-faktorerna (K_H,PA=6.0, K_V=5.33, K_H,NPA≈6.18) stämmer med DO-229E Appendix J. Vad som är validerat och vad som inte är det: detta fastlåser algoritmen för PL (σ in → HPL/VPL ut); den uppströms modelleringen av σ från råa UDRE/GIVE-meddelanden ligger utanför omfånget för kshana — det är där oberoende verktyg för hela kedjan fortfarande avviker med meter på verkliga data. K_V matchades vid referensens avrundade 5,33 (den exakta Φ⁻¹(1−5e-8)=5.3267 i kshana → VPL ~0,06 % mindre; den vertikala är validerad utan K-faktor som d_U).
IONEX / Klobuchar Utsänd modell externt validerad. Klobuchar-modellen för L1 återger RTKLIB:s ionmodel (tests/klobuchar_reference.rs, < 1e-4 m) — paritet i implementation med den de facto öppna referensen, eftersom inget officiellt exempel med uppmätt referens finns. Läsaren för TEC-kartor i IONEX finns nu (src/ionex.rs, enhetstestad); det återstående gapet är en korskontroll av den mot en verklig GIM-produkt, inte den utsända modellen. Se raderna om Klobuchar i Påståenden kontra verklighet.
GPS L1 C/A-spridningskod (IS-GPS-200) Kodgenerering validerad externt. src/sdr.rs (ca_first_ten_chips_match_is_gps_200_octal): C/A-kodgeneratorn med G1/G2-LFSR (linjärt återkopplat skiftregister) återger de publicerade kodfasstilldelningarna i IS-GPS-200 tabell 3-Ia — de första tio chipen i oktal form för PRN (pseudoslumpbrus) 1–9 ({1440, 1620, 1710, 1744, 1133, 1455, 1131, 1454, 1626}) — exakt. Det fäster spridningskodens chipföljd mot GPS-gränssnittsspecifikationen; de omgivande delarna för modulation, spektral separation och kodföljning med DLL (delay-locked loop) (navsignal) förblir MODELLED.

Tidssynkronisering för nät, spektrum, solsystemet, konstellationer, kampanjer och LEO-PNT#

Förmågorna som lades till i 0,28-linjen graderas rad för rad i den genererade VERIFICATION-MATRIX.md; det här avsnittet sammanfattar vilka av dem som har en oberoende extern referens. En rad är VALIDATED endast med en oberoende extern referens; allt annat är MODELLED.

Förmåga (typ) Status Extern referens, eller varför den förblir modellerad
Telecom MTIE (maximalt tidsintervallfel) och TDEV (tidsavvikelse) på en holdover-serie (telecom-timing) validated tests/telecom_timing_reference.rs: 17 averaging-faktorer för MTIE och 12 för TDEV på en incheckad holdover-serie från en chipskaleklocka med 2 048 sampel mot allantools 2024,06, till < 1e-12 / < 1e-9 relativt. ITU-T-maskernas (International Telecommunication Union Telecommunication Standardization Sector) utfall PASS/FAIL och förinställningarna för oscillatorer ur databladen förblir MODELLED. Se TELECOM-TIMING.md.
Holdover-prediktion från en uppmätt klockregistrering (slot-timing) validated tests/slot_timing_cs5071a_holdout.rs: anpassning på den första tredjedelen av den verkliga 5071A-cesiumregistreringen, prediktion av tidpunkten för ettsigma-överträdelsen vid sex trösklar, mätning av den på de två undanhållna tredjedelarna; tröskel en faktor 1,5 åt vardera hållet, observerade kvoter 0,84 till 1,03. Slot-guard-budgeten och positionsbestämningstakten som bygger på den förblir MODELLED.
Slutna uttryck för spektrala effekttätheter i L-bandet och spektral separation (spectrum) validated navsignal slutna uttryck mot publicerade värden (matrisrad "Closed-form L-band signal power spectral densities…"). Vattenfallsdiagrammet med J/S (störare-till-signal-förhållande) per band och effektivt C/N0 (bärvåg-till-brus-täthet), samt SigMF-in- och utdata (Signal Metadata Format), förblir MODELLED.
Planetpositioner från JPL:s (Jet Propulsion Laboratory) Standish-element, och ljustid mellan kroppar (solar-system) validated 0,30, förhandsregistrerad mot JPL Horizons (DE441): tests/solar_system_standish_preregistered.rs och tests/solar_system_standish_earth_icrf_preregistered.rs, RMS per planet och komponent högst värdet i Explanatory Supplement tabell 8.10.1 (sämst 0,778), jordsplittringen och ICRF-rotationen inkluderade; tests/solar_system_light_time_solver_preregistered.rs, ljustidslösaren på DE441-positioner inom 1e-6 s från Horizons ljustid (sämst 6.7e-9 s). Den tidigare jämförelsen med dubbel nominell tröskel (tests/solar_system_horizons_reference.rs), vars tröskel sattes efter den första jämförelsen, behålls som en icke-grindande regressionskontroll. Uranus/Neptunus från tabell 1, Pluto, månarna, kroppskonstanterna och body-pnt förblir MODELLED.
Walker-geometri och de publicerade GPS-, Galileo- och GLONASS-positionerna (GLObal NAvigation Satellite System); global GPS-försämring av precision (constellation-design) validated constellation::tests: Walker 24/3/1 återger tabellen över Galileos definition för öppen tjänst till 1e-9°, GLONASS gränssnittsspecifikationens positionsformel och GPS ekvatorspassager; GPS baslinje-HDOP-median 0,940 mot 0,94 i Standard Positioning Service-prestandastandarden. Godtyckliga täckningskartor för flera konstellationer runt valfri kropp förblir MODELLED.
Kampanjer: kedjade uppdrag, svep, Monte Carlo-ensembler, körningar med gemensamma villkor (campaign) modelled tests/campaign_composition_reference.rs (11 tester): en kampanj med en fas återger den fristående körningen byte för byte, ett svep med en nod läser samma tal, en ensemble med fast frö är bytestabil. Sammansättningsidentiteter, inte en oberoende extern referens.
Länkfysik för LEO (låg omloppsbana): ITU-R-koefficienter för regn enligt P.838 (ITU Radiocommunication Sector), regndämpning och scintillation enligt P.618, byggnadsinträngningsförlust enligt P.2109, joniosfär av första ordningen, maximal Doppler validated tests/leo_link_reference.rs, tests/leo_doppler_reference.rs: ITU-R-rekommendationernas egna tabeller och valideringsexemplen från Study Group 3 (incheckade med sin källa och sitt hämtningsdatum), gruppfördröjningskvoten i IS-GPS-200 för joniosfären och den publicerade tabellen över maximal Doppler av Leclere, Marathe och Reid (ION GNSS+ 2025, arXiv 2509,19551).
LEO-navigeringsmeddelande: användaralgoritmen för sändningsefemerid i Galileo ICD (gränssnittsspecifikation), CRC-24Q (24-bitars cyklisk redundanskontroll), globalt genomsnittliga SISRE-vikter (signal-in-space-avståndsfel) (leo-navmsg) validated tests/leo_navmsg_reference.rs: Galileos användaralgoritm återger RTKLIB (ett programbibliotek med öppen källkod för kinematisk positionering i realtid) till 1 mm på fyra verkliga Galileo-sändningsefemerider; CRC-24Q ger katalogens kontrollvärde 0xCDE703 och kontrollbytena i RTCM-exempelramen (Radio Technical Commission for Maritime Services) 1005; SISRE-vikterna återger den publicerade MEO/GEO-tabellen. Anpassaren, uppdateringen mitt i passet, den binära kodningen, text i RINEX-4-stil/CSV (kommaseparerade värden) och de valbara efemeridmodellerna förblir MODELLED.
LEO-signalutformning, pass och länkbudget, Doppler och gemensam GNSS+LEO-positionsbestämning, PPP-konvergens (precis punktpositionering), positionsbestämning med 5G NTN (icke-terrestra nät), LEO-tidsöverföring (leo-signal, leo-pass, leo-pvt, leo-ppp, ntn-positioning) modelled tests/leo_signal_reference.rs, tests/leo_fusion_scenarios.rs: slutna uttryck, filterkonsistens (till exempel PPP-filtrets körningsmedelvärde av NEES inom sitt 95-procentsband) och jämförelser med publicerade trender; inga fältdata.
Ett LEO-PNT-system från början till slut (leo-pnt-chain) modelled tests/leo_pnt_chain.rs: varje vidareförd storhet är lika med uppströmssteget egen utdata, och en ändring av en uppströmsindata flyttar varje nedströms tal som beror på den.
LEO-resiliens och vertikaler (spoofing via Doppler och via konsistens mellan band, joniosfärsundersökning) modelled tests/leo_resilience_verticals.rs (10 tester). Resiliens- och vertikalscenarierna listas i RESILIENCE-CROSSWALK.md.

Utdata som är återgivningar, inte evidens, har tester men ingen matrisrad: utbytesexporterna (CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, STK-efemerid (Systems Tool Kit), SigMF (Signal Metadata Format)), var och en inläst på nytt av en validerare skriven utifrån formatets specifikation (tests/interop_formats.rs, 13 tester; se INTEROP.md); animationerna (tests/animation.rs: byteidentiska omkörningar, exakta bildrutsantal, välformad SVG (Scalable Vector Graphics), ingen extern adress i HTML-spelaren (HyperText Markup Language)); och körningsrapporten (tests/advanced_report.rs, tests/advanced_report_cli.rs: varje medföljande scenario rapporterar utan tomt avsnitt eller platshållarvärde, etiketterna stämmer med matrisen, och det registrerade kommandot återger result.json och rapporten byte för byte).

Driftområde#

Varje paket körs över sitt angivna indataområde av tests/scenario_coverage.rs, som kontrollerar att varje numerisk utdata är ändlig (inget NaN/Inf (NaN: inte ett tal)) och begränsad. Tabellen listar det testade indataintervallet per paket, det förväntade utdatabeteendet och det täckande testet.

Paket Indata som sveps Testat intervall Förväntad utdata Täckande test
clock threshold_ns (tidsspecifikation) 1 – 500 ns ändliga kvalitetsmått för holdover/tidssynkronisering/säkerhet clock_pack_covers_the_spec_threshold_envelope
inertial accel.bias 1e-7 – 1e-2 m/s² (kallatom → enkel MEMS (mikroelektromekaniska system)) ändlig, begränsad positions-RMS/p95 inertial_pack_covers_the_accel_bias_envelope
orbit mask_deg (elevationsmask) 5° – 30° ändlig DOP/tillgänglighet; begränsad orbit_pack_covers_the_elevation_mask_envelope
spoof attack.rate_ns_per_s 0,1 – 50 ns/s ändlig P_md / säkerhet, begränsad spoof_pack_covers_the_attack_rate_envelope
hybrid position_spec_m 10 – 1000 m ändlig holdover för tidssynkronisering/position hybrid_pack_covers_the_position_spec_envelope
bana (verklig) verkliga Celestrak-TLE:er för gps-ops ögonblicksbild med 30 satelliter, strikt kontrollsumma läses bara in med giltiga kontrollsummor; begränsad geometri real_gps_constellation_scenario_loads_with_valid_checksums_and_bounded_output
klocka (flicker) flicker_floor på/av 0 mot 1e-12 att aktivera 1/f-golvet försämrar glidet i tidssynkroniseringens p95 flicker_fm_floor_degrades_the_clock_holdover_when_enabled
fusion (realism) accel.bias 0 mot 5.88e-7 m/s² noll mot realistiskt icke-noll filtret konvergerar fortfarande, inom 3× felet utan bias fusion_filter_converges_with_a_realistic_non_zero_bias

Raderna för flicker-FM och fusionsbias täpper till två specifika realismluckor: brustermerna är avstängda som standard men påverkar uppenbart utdata när de aktiveras, och det gemensamma fusionsfiltret är inte beroende av att biaser nollställs — det konvergerar även med en realistisk kvarvarande bias av kallatomklass.

Kända begränsningar#

  • Kvant- och klassiska körningar använder nu oberoende RNG-frön (slumptalsgenerator) (klassiskt frö = frö + 0x9e3779b97f4a7c15) så att deras brusrealiseringar är okorrelerade — åtgärdat efter granskning.
  • holdover_s är segmentmedveten: avbrottstidslinjer delas upp i sammanhängande segment vid GNSS-återinfångning och det rapporterade värdet är det sämsta (kortaste) glidet över dem. Det begränsas fortfarande av tidsrasterns upplösning (en undre gräns).
  • Omsynkronisering av ISL-tidsöverföring modellerar den kvarvarande länkosäkerheten som nytt nollmedelvärdigt jitter per mätsteg plus återförankring vid det konfigurerade intervallet.

Påståenden kontra verklighet — snabbreferens#

En fientlig granskares checklista. För varje term som kan läsas som mer än vad den är: vad Kshana gör i dag, och var den verkliga versionen ligger på färdplanen.

Term du kan se Vad det faktiskt är i dag Vad det inte är (än)
"hybrid kvant-/klassisk PNT-simulator" en klassisk stokastisk simulator driven av publicerade Allan-/brus-koefficienter för kvantsensorer kvantfysik från första principer (Mach–Zehnder-fas, projektionsbrus, systematiska fel) — se QUANTUM-MODELS.md
"gemensam Kalman-fusion" / fusionspaket det körbara paketet fusion observerar klockan och positionen separat (en direkt tidsbestämning och en direkt positionsbestämning), för vilket den optimala estimatorn genuint är blockdiagonal — två tvåtillståndsfilter med ett gemensamt kvalitetsmått ett kopplat filter för fallet med pseudoavstånd finns nu som fusion::coupled::CoupledPntFilter (4-tillstånds staplad [pos,vel,phase,freq], icke-noll kovarians mellan block, NEES-validerad) men är ännu inte kopplat till det körbara paketet, och paketet är 1-DOF (en frihetsgrad) — 3D-utökningen med 8 tillstånd är framtida arbete
Säkerhetskvalitetsmått (typen spoof) 1 − P_md för en stokastisk detektor för tidsspoofing: ett tvåsidigt χ²₁-/Neyman–Pearson-test på en klockstödd övervakningsstatistika, tröskel satt från ett mål för P_fa, P_md utvärderad vid specifikationens storlek både i sluten form och med Monte Carlo (vilka stämmer överens till några ×1/√N) en RAIM/ARAIM-detektor för flera satelliter — se INTEGRITY.md; övervakningsstatistikan är en gaussisk modell med klockans σ härlett ur PSD, inte en korrelation på signalnivå
"klockstödd spoofing-detektering" en övervakare av tidsavvikelse för en enda klocka (gaussisk statistika, σ från klockans PSD), INTE RAIM över flera SV (SV: rymdfarkost, det vill säga en satellit) RAIM över flera SV i avståndsdomänen med skyddsnivåer
spoofing-detektorns P_md (sluten form kontra Monte Carlo) det analytiska P_md baserat på Φ och den empiriska skattningen med mc_runs försök stämmer överens inom stickprovsfel (≈ 1/√N); validerad i testerna src/spoof.rs / src/detection.rs vid en belastad avvikelse (μ/σ = 2) en uppmätt ROC för detektorn mot registrerade spoofing-data
pseudoavståndsmodellen gnss-sim en framåtsimulering: ρ = geometric + clocks + Klobuchar iono + Saastamoinen·Niell tropo + noise + multipath. Varje atmosfärsmodell är enhetstestad mot handräknade värden (ZHD (hydrostatisk zenitfördröjning) ≈ 2,3 m, Niell = 1 i zenit, Klobuchars snedhet), och hela Klobuchar-sändningsmodellen är korskontrollerad mot RTKLIB:s referensimplementation ionmodel() till under en millimeter (klobuchar_agrees_with_rtklib_reference_implementation, 6,1278 m för RTKLIB:s standardkoefficientfall — det finns ingen officiellt publicerad Klobuchar-testvektor, så detta är implementationslikhet, inte uppmätt referens); en körning utan brus återger geometri + korrektioner till under en millimeter (RAIM-residual ≈ 0) en positionslösning från verkliga signaler (PPP/RTK (PPP: precis punktpositionering)), tvåfrekvent jonosfärsfri kombination eller upplösning av bärvågsfasens heltalsosäkerhet — inte modellerat
jamming-modell (typen jamming) en länkbudget-kedja: J/S från fritt rymdutbredningsbortfall + antennförstärkning per riktning → effektivt C/N₀ via anti-jam-ekvationen (avspridningsförstärkning × spektral separation Q) → förlust av låsning vid en tröskel (Kaplan & Hegarty §9,4) flervägsutbredning, AGC-dynamik (automatisk förstärkningsreglering) i tid, själva förvärvssökningen (den valfria hysteresen i [acquisition] är ett tröskelpar); den valfria kvantiserarförlusten i [front_end] gäller en gaussisk insignal och är inte giltig för en CW-jammer; den valfria gruppantennen [crpa] är smalbandig och ideal (ingen koppling eller felanpassning), och den valfria skuggningen i [terrain] är en enda knivsegg på en SRTM-ruta; Q är en representativ konstant per typ, inte härledd ur jammerns uppmätta PSD
Integritetskvalitetsmått (klock-/holdover-paket) filtrets självkonsistens (andel av avbrottssamplen inom dess egen k·σ-gräns) HPL/VPL, integritetsrisk / P_HMI, larmgränser, DO-229E/316/ED-259A — dessa redovisas separat av typen integrity (RAIM / ARAIM) och SBAS-funktionerna, och vävs aldrig in i detta kvalitetsmått
äldre inertial-scenariopaketets kvalitetsmått en enaxlig (1-DOF) felbudget för accelerometer/gyro (VRW/ARW, biasinstabilitet) med en referensåterställning det äldre paketet är 1-DOF; 3-axelvägen levereras i paketet gnss-ins (nästa rad)
3-axligt strapdown-bibliotek + gnss-ins-paket (src/inertial/, src/fusion/pack.rs) en verifierad kvaternion-/NED-navigator (NED: nord-öst-ned) med en deterministisk IMU-felmodell — skalfaktor, felinriktning, g-känslighet, kvantisering, ramprate modellerade (IEEE Std 952-1997 §A.2; Groves 2013 §4,3) — nu driven av scenariopaketet gnss-ins och konfigurerbar per sensor från TOML (Tom's Obvious Minimal Language, scenarioformatet) ([imu_*.error_model]) inte modellerat: vibrationsrektifieringsfel, temperaturgradientdrift. Felet vid fusionerat glid begränsas av ett golv från överlämningens attitydfel (lutning/accelerometerbias är svagt separerbara), så kalibrering per bias görs inte gällande
"Hybrid PNT-integration" (paketet hybrid) öppen-loop-dödräkning inramad av GNSS-återställningar mot referens en kopplad (löst/tätt) GNSS–INS-Kalman-blandning — det är det separata paketet gnss-ins (EKF) och typen hybrid-ukf
"Positioneringsprestanda" (klockpaket) klockfasens tidssynkroniserings-RMS i ns (timing_rms_ns) en noggrannhet i positionsdomänen med RMS/CEP/SEP/DOP-viktning (SEP: sfäriskt felsannolikt)
kvalitetsmått för tröghetsposition (pos_rms_m) en enaxlig positions-RMS/p95 i meter, från ett enda frö om inte runs = N ber om en ensemble (då medelvärde, spridning och ett bootstrap-konfidensintervall på 95% per mått) en fördelning av ensemble-CEP / 2DRMS (två gånger avståndets RMS) (färdplan: Monte Carlo-CEP)
"validerad till ~2%" en typisk observerad överensstämmelse; den tillämpade gränsen är 20–25% relativt fel en garanterad noggrannhetsgräns på 2%
"reproducerbar / bitidentisk" bitidentisk omkörning på samma OS (operativsystem) + fastlåst verktygskedja; över Linux, macOS och Windows kontrollerar CI en incheckad SHA-256 av varje resultats indatafingeravtryck och form (tests/cross_platform_golden.rs) samt de numeriska värdena till 1e-6 (tests/golden.rs) ett byteidentiskt fullständigt resultat över operativsystem (skillnader i libm i sista siffran)
SGP4 GPS-scenario (orbit-sgp4-gps.toml) en äkta ögonblicksbild av Celestrak gps-ops (2021-07-28, 30 satelliter, strikta kontrollsummor), varje satellit propagerad från sin egen TLE-epok en aktuell konstellation — uppdatera ögonblicksbilden med scripts/fetch_tles.sh (se REAL_TLE_GUIDE.md); NORAD-katalognumren (North American Aerospace Defense Command) är de verkliga

Korskontroller mot artiklar om månens PNT (regressionsevidens, inte matrisrader)#

Månsviten/cislunarsviten (förmågorna "Lunar & cislunar" och "Lunar PNT suite" i README) har sina påståenden i publicerade artiklar oberoende korskontrollerade i tests/validate_p*.rs, var och en mot en referens från en annan implementation:

  • omloppsbaserat sändnings-/infångningsavtryck mot scipy.special.j1 (Cephes Bessel J1);
  • DOP för ytfyrars geometri mot en oberoende NumPy-lösning av (HᵀH)⁻¹;
  • tillväxt av prediktionsfelet för UT1/EOP-persistens mot en NumPy-omtolkning av samma ordagranna IERS-rader i finals2000A;
  • familjen av plana avlägsna retrograda banor mot NASA/JPL:s databas för periodiska banor i trekroppsproblemet;
  • budget för RF-avståndsprecision mot en referens från första principer.

Fixturer och skript för referensgeneratorer finns under tests/fixtures/{p1_footprint,lunar_service,eop_prediction,rf_ranging_precision,dro_family_jpl,p2_independent_dop}/. De stärker evidensen bakom förmågor som förblir MODELLED i den maskinkontrollerade matrisen (src/verification.rs); de är regressionskontroller, inte nya VALIDATED matrisrader, så de ändrar inte i sig antalet i den maskinkontrollerade matrisen. Det antalet upprepas inte här, eftersom en handskriven kopia av det glider isär: den aktuella fördelningen är den genererade rubriken i VERIFICATION-MATRIX.md, som gen_validation_artifacts skriver från verification_matrix() och tests/verification_artifacts_doc_sync.rs fastlåser.