Maskinoversettelse, ikke gjennomgått av en morsmålsbruker. Engelsk er referansen.

Evidens

Hver funksjon bærer sin evidens.

401 funksjoner, hver gradert. 176 validert mot uavhengige eksterne referanser. 221 ærlig merket modellert. 4 eid av partnere. Ingenting er rundet opp.

Verifikasjonsmatrise v0.40.0 Fra arkivet

Hold musepekeren over eller sett fokus på en celle for å lese funksjonen og den uavhengige referansen som vurderer den.

Validert: en uavhengig ekstern referanse er enigModellertPartner-owned

Motor v0.40.0 · web/data/verification-matrix.json, generert fra src/verification.rs · 401 rader · ingen scenario eller seed: motorens eget registerLes registeret

  • Gratis kjerneRegisteret, resultatene, reproduserbarhetsstempelet og testene bak dem finnes alle i den åpne motoren.
  • ProPakker evidensen i en revisjonsklar, reproduserbar bevispakke for et gjennomgangsorgan. Se nedenfor
  • Skreddersydd studieSvarer på ditt eget spørsmål med de samme etikettene, ikke en sertifisering. Se nedenfor
01Validerte resultater · hver sammenlignet verdi

Kontrollert mot en annens fasit.

Hver flis viser hver verdi motoren sammenlignet med en uavhengig referanse: publiserte vektorer, et separat bibliotek for flygedynamikk, presise efemerider, et statistikkbibliotek, en standardpublikasjon og en målt klokkeregistrering holdt utenfor tilpasningen. Hold musepekeren over eller sett fokus på et merke for å se verdien.

Baner · analytiskValidert
666/666

SGP4 (Simplified General Perturbations 4) banepropagering

Hver AIAA-referansevektor (American Institute of Aeronautics and Astronautics) gjenskapt, inkludert SDP4-tilfeller for dypt rom (Simplified Deep-space Perturbations 4). Verste tilfelle 4.12 mm.

Ett kvadrat per sammenlignet vektor, farget etter posisjonsfeilen.

uavhengig referanse · AIAA 2006-6753 verifikasjonsvektorerSlik ble det kontrollert

Motor v0.40.0, bygg 3395218 · tests/sgp4_verification.rs · deterministisk, ingen seedÅpne i Kshana Studio: den samme propagatoren, orbit-sgp4-gps.toml · seed 17

Integritet · statistikkValidert
171tilfeller

RAIM-deteksjonsterskler

Den statistiske kjernen i RAIM (receiver autonomous integrity monitoring) mot SciPy, tilfelle for tilfelle.

Ett kvadrat per SciPy-tilfelle, gruppert etter kjerne.

uavhengig referanse · SciPySlik ble det kontrollert

Motor v0.40.0, bygg 3395218 · tests/raim_reference.rs · deterministisk, ingen seedÅpne i Kshana Studio: kjernen i arbeid, integrity-raim.toml · seed 7

Baner · numeriskValidert
0.08m

Numerisk (Cowell) propagering

Mot flygedynamikkbiblioteket Orekit 12,2 i hver epoke av en bue på 24 timer, kraftnivå for kraftnivå.

Posisjonsavvik mot tid, per kraftnivå.

uavhengig referanse · Orekit 12,2Slik ble det kontrollert

Motor v0.40.0, bygg 3395218 · tests/numerical_cowell_propagator_reference.rs · deterministisk, ingen seedIngen Kshana Studio-visning: denne sammenligningen kjører som en motortest.

Baner · millimeter til meterValidert
0.61m Galileo/0.10m Swarm-A

Hvert banerestavvik på én skala

Fra propagatorkontrollene til tilpasninger mot presise efemerider fra ESA (European Space Agency). Månebanefarkosten, over terskelen, vises også.

Hvert restavvik på en logaritmisk skala fra én millimeter til tjue meter.

uavhengig referanse · presise efemerider fra ESA, månebanefarkostens rekonstruerte bane, Orekit 12,2, AIAA-vektorerSlik ble det kontrollert

Motor v0.40.0 · docs/AGENCY-ORBIT-VALIDATION.md restavviktabeller, med de to propagatorkontrollene beregnet på nytt ved bygg 3395218 · deterministisk, ingen seedIngen Kshana Studio-visning: presis banebestemmelse kjører som motortester.

Klokker · stabilitetValidert
12av 12 publiserte verdier

Allan-deviasjon

Gjenskaper referanseverdiene i NIST (National Institute of Standards and Technology) Special Publication (SP) 1065, tabell 31, på dens eget datasett med 1000 punkter.

Fire deviasjoner mot midlingstid, med de publiserte verdiene som ringer.

uavhengig referanse · NIST SP 1065Slik ble det kontrollert

Motor v0.40.0, bygg 3395218 · tests/allan_nist_sp1065_1000point.rs · deterministisk, ingen seedÅpne i Kshana Studio: estimatorene på en klokke, clock-holdover.toml · seed 42

Klokker · holdoverValidert
0.84til1.03

Holdover-prediksjon på en ekte cesiumklokke

Tilpasset på den første tredjedelen av en målt cesiumregistrering, predikert på de to andre tredjedelene: innenfor den forhåndsfastsatte faktoren 1.5.

Målt og predikert tidsfeil mot coast-tid, og forholdsvinduet.

uavhengig referanse · målt cesiumregistreringSlik ble det kontrollert

Motor v0.40.0, bygg 3395218 · tests/slot_timing_cs5071a_holdout.rs · deterministisk, ingen seedÅpne i Kshana Studio: den samme inversjonen, slot-timing-ocxo-leo.toml · deterministisk

02Verifikasjonsmatrise

Én celle per funksjon.

Validert betyr at en uavhengig ekstern kilde er enig: publiserte referansevektorer, et separat verktøy eller målte data. Alt annet sies å være Modellert. Velg en etikett for å lyse opp cellene dens.

Funksjoner vurdert

176av 401 validert
Hold musepekeren over en celle

Tallene er eksakte, hentet fra motorens verifikasjonsmatrise. Cellene følger registerets radrekkefølge.

Tre ord, brukt strengt
Validert
Bare med en uavhengig ekstern referanse: publiserte referansevektorer, en separat implementasjon eller målte data holdt utenfor tilpasningen. Registeret navngir referansen og testen, og matrisens invarianttester håndhever regelen.
Modellert
En publisert modell eller et dokumentert modelleringsvalg, internt testet, ennå uten uavhengig ekstern referanse. Sagt høyt, ikke rundet opp.
Partner-owned
Konstruksjon av romfartøyplattform, navigasjonsnyttelast og antennemaskinvare, maskinvare for kvantenyttelast og produktsikring av flygemaskinvare. Kshana hevder ingen av dem; en partner eier dem.

Med Pro: et oppdragsdossier kontrollerer hvert krav mot virkelige kjøringer og beholder disse etikettene i sin verifikasjonsmatrise: et krav som er oppfylt på et MODELLED- eller PARTNER-grunnlag, blir flagget. Se et virkelig dossier

03Valideringsregister

Alle 401 rader, én linje hver.

Hver rad navngir sitt krav, sin status og modulen som implementerer det. Åpne en rad for å se dens referanse og tester, eller velg et domene for å snevre inn.

Etter domene: stolpelengden er rader, fargen er status. Velg ett for å filtrere.

ValidertModellertPartner-owned
ValidertIdentifisering av potenslovstøy ved lag-1-autokorrelasjonallan (lag1_noise_id, lag1_acf)
Funksjon
allan::lag1_noise_id: identifikatoren for støy ved lag-1-autokorrelasjon etter Riley og Greenhall (2004) (desimert fase med dens kvadratiske ledd fjernet, eller gruppemidlet frekvens med dens linje fjernet; gjentatte første differanser til delta = r1/(1+r1) < 0,25 eller d = dmax), som returnerer potenslovens eksponent alfa som heltall og urundet (+2 hvit PM til -2 random-walk FM) ved en hvilken som helst midlingsfaktor; den fastsetter frihetsgradene for støytype i enhetskortene til biblioteket med målte klokker
Uavhengig referanse
allantools 2024,6 autocorr_noise_id (A. Wallin og bidragsytere, LGPL-3.0-or-later, kjørt som et eget program av fixture-generatoren): en uavhengig implementasjon av den publiserte Riley-Greenhall-algoritmen, en entydig definert størrelse under de oppgitte konvensjonene. Validerer identifikatoren, ikke støyinnholdet i noen virkelig klokke
Tester
tests/clock_library_lag1_noise_id_allantools.rs (140 tilfeller: ti Kasdin-potenslovregistreringer, b = 0 til -4, som fase- og frekvensdata, af = 1 til 64; alpha_int og d identiske, verste |d alpha| 9.6e-13 og |d rho| 4.8e-13…
ValidertGalileo OSNMA, autentisering av navigasjonsdata på mottakersidenosnma (page, subframe, dsm, merkle, signature, tesla, mac, maclt, navdata, verifier, ubx, cli)
Funksjon
osnma + kshana osnma verify: en åpen, ren Rust-verifikator på mottakersiden for Galileo OSNMA (SIS ICD Issue 1,1, Receiver Guidelines Issue 1,3) fra I/NAV-sider eller en u-blox UBX-RXM-SFRBX-strøm: Merkle-tre-offentlige nøkler (DSM-PKR), ECDSA P-256/P-521-signaturen til DSM-KROOT, verifikasjon av TESLA-nøkkelkjeden (SHA-256 eller SHA3-256), MACSEQ- og tag-verifikasjon (HMAC-SHA-256 eller CMAC-AES) for ADKD 0, 4 og 12 med kryssautentisering, kjedeslutt/tilbakekalling/fornyelse, fornyelse og tilbakekalling av offentlig nøkkel, og varselmeldingen; status per satellitt Authenticated/Failed/Unavailable med en årsak for hver feil eller forsinkelse. Veiledende: ikke typegodkjent navigasjonsutstyr og ikke en tjeneste for navigasjonsintegritet; det hevdes ingen ytelse mot spoofing
Uavhengig referanse
De offisielle testvektorene for Galileo OSNMA, utgitt av European GNSS Service Centre som vedlegg til Receiver Guidelines (Test_vectors.zip, sha256 ef9b9afc6ef9e1c57393415cf2a1dc80c4035e7c06123907ea0bb97dd3ccf370): 18 av 18 sett, 186 382 tagger autentisert, 0 feilet, kjørt frakoblet 2026-10-10 (evidensposten i kshana-pro docs/evidence). Omfang: vektorene validerer den kryptografiske verifikasjonen (Merkle, KROOT/ECDSA, TESLA-kjede, MACK-tagger, ADKD 0/4/12) og utfallene av den på de publiserte scenarioene; de bruker bare HMAC-SHA-256, en SHA-256-kjede, 128-biters nøkler, 40-biters tagger og oppslagsoppføringene 33 og 34, så CMAC-AES, SHA3-256-kjeder og andre parametere dekkes bare av publiserte known-answer-tester for primitiver og av syntetiske tester. Herdingen av klarert tid, databinding, utløp og headerbekreftelse er testet med de syntetiske angrepstestene, ikke med en ekstern uavhengig referanse. Ikke kontrollert: sertifikattilbakekallingslister, levende signaler eller en levende mottaker (UBX-ordoppsettet er bare kontrollert på syntetiske rammer), SHA3-256 Merkle-trær, ferskhet uten en uavhengig tid. Ikke en EU-tjeneste
Tester
tests/osnma_official_vectors.rs (valgfri, KSHANA_OSNMA_VECTORS: alle 18 vektorsett, 186 382 tagger autentisert, 0 mislyktes, gulv per sett, kjeder kunngjort, ADKD 0/4/12, varsel verified, autentisering gjenopptatt etter…
ValidertKarakterisering av frekvensstabilitetallan
Funksjon
Allan/modifisert/Hadamard-avvik + identifisering av potenslovstøy med χ²-KI-er
Uavhengig referanse
NIST SP 1065 (Riley) / Stable32 referanseavvik på NBS14
Tester
tests/allan_reference.rs (NBS14 vs Stable32 to 1e-4); allan::tests
ValidertFrekvensstabilitet på en virkelig målt klokkeallan
Funksjon
Overlappende Allan- og overlappende Hadamard-avvik på en virkelig cesiumstandard
Uavhengig referanse
Stable32 overlappende ADEV/HDEV på den målte faseserien fra cesium 5071A (allantools)
Tester
tests/cs5071a_reference.rs (ekte 5071A Cs mot H-maser, 556 990 punkter, 16 midlingsfaktorer mot Stable32 til 1e-3; datastyrt via scripts/fetch_cs5071a.sh)
ValidertParitet for Allan-estimatorer på den kanoniske Stable32-referanseserienallan
Funksjon
Overlappende Allan + modifisert Allan + tidsavvik over hele AF-stigen
Uavhengig referanse
Stable32 referanseavvik for PHASE.DAT (Riley; standard regresjonsserie)
Tester
tests/phasedat_reference.rs (Stable32 PHASE.DAT, 139 averaging factors, OADEV/MDEV/TDEV to 1e-3; data-gated via scripts/fetch_phasedat.sh)
ValidertFrekvensstabilitet med utvidet rekkevidde (Theo1 / TOTDEV)allan
Funksjon
Theo1 og totalavvik (TOTVAR) — estimatorer for langtids-tau-stabilitet med utvidet rekkevidde som når ~75 % av opptaket der Allan-avviket gir opp nær ~50 %; den bias-fjernede ThêoH-hybriden (allan::theoh_curve) bygget på dem forblir MODELLED
Uavhengig referanse
allantools 2024,06 — et uavhengig frekvensstabilitetsbibliotek fra tredjepart — theo1 (NIST SP 1065 likn. 30) og totdev (NIST SP 1065 likn. 25) på det hermetiske LCG-datasettet i NIST SP 1065 §12,4; kan genereres på nytt frakoblet via tests/fixtures/theo1_totvar/generate_theo1_totvar_reference.py
Tester
tests/theo1_totvar_reference.rs (Theo1 + TOTDEV på NIST SP 1065 §12,4 LCG-datasettet med 1000 punkter, 6 + 6 midlingsfaktorer mot allantools 2024,06 til <1e-9); allan::tests (hvit-FM lukket-form-sporing; TOTVAR=ADEV…
ValidertMaximum Time Interval Error (MTIE) — wander-mål for telekomallan (mtie, mtie_curve)
Funksjon
MTIE(τ): det maksimale topp-til-topp-utslaget i tidsfeil over et hvilket som helst glidende vindu på τ = m·tau0, wander-statistikken i ITU-T G.810/G.823/G.8261 som grensene for synkroniseringsnett (MTIE-masker) er skrevet mot — et ekstremalmål (maks/min) som skiller seg fra Allan-familiens RMS
Uavhengig referanse
allantools 2024,06 — et uavhengig frekvensstabilitetsbibliotek fra tredjepart — mtie() på den hermetiske LCG-faseserien i NIST SP 1065 §12,4; MTIE er en ren maks/min-statistikk, så estimatorens utdata er bitnøyaktig mot allantools på den identisk bygde fasetabellen (de innsjekkede referansekonstantene med 15 gjeldende sifre ligger innenfor 1 ULP). Kan genereres på nytt frakoblet via tests/fixtures/mtie/generate_mtie_reference.py
Tester
tests/mtie_reference.rs (MTIE på den hermetiske NIST SP 1065 §12,4 LCG-faseserien med 1000 punkter, 9 midlingsfaktorer m=1..256 mot allantools 2024,06 mtie til <1e-9, observert ≤4e-15); allan::tests (håndutledet topp-til-topp…
ValidertModifisert Allan / tidsavvik (MDEV / TDEV)allan (modified_adev, time_deviation)
Funksjon
MDEV(τ): det overlappende modifiserte Allan-avviket (estimator med glidende vindu over andre differanser som skiller hvit fasestøy fra flicker-fasestøy), og TDEV(τ) = τ/√3·MDEV(τ), tidsdomene-wander-statistikken i ITU-T G.811/G.812/G.823 som synkroniseringsmaskene er skrevet mot
Uavhengig referanse
allantools 2024,06 — et uavhengig frekvensstabilitetsbibliotek fra tredjepart — mdev() og tdev() på den hermetiske LCG-faseserien i NIST SP 1065 §12,4 (samme serie som radene for Theo1/TOTDEV/MTIE), som regner ut de samme entydig definerte estimatorene; stemmer til <1e-9 relativt. Kan genereres på nytt frakoblet via tests/fixtures/mdev_tdev/generate_mdev_tdev_reference.py. (Den datastyrte phasedat_reference.rs kontrollerer også disse mot Stable32 til 1e-3; dette er den stramme, alltid påslåtte hermetiske kryssjekken)
Tester
tests/mdev_tdev_reference.rs (MDEV + TDEV på den hermetiske NIST SP 1065 §12,4 LCG-faseserien med 1000 punkter, 8 midlingsfaktorer m=1..200 mot allantools 2024,06 mdev/tdev til <1e-9 relativt, pluss identiteten τ/√3 på…
ValidertFrekvensstabilitet for optisk klokke på en virkelig målt kurvequantum_trade (qparams_from_adev_curve), powerlaw
Funksjon
NNLS-gjenvinning av potenslov (hvit FM + rød støybunn) fra et publisert, målt Allan-avvik for den optiske klokkeovergangen i ⁸⁸Sr — gjenskaper σ_y(τ) og den fremtredende skaleringen 4.7e-16/√τ ved kort τ med en genuin målt støybunn ved lang τ, i stedet for den syntetiserte støybunnen av optisk klasse som holdover.rs ellers antar
Uavhengig referanse
Norcia, Young, Eckner, Oelker, Ye, Kaufman, Science 366:93 (2019), fig. 4 målt ADEV; kurven er hentet ordrett fra Zenodo 10.5281/zenodo.3382347 (CC-BY-4.0). Avgrenset til å gjenskape den publiserte målte stabilitetskurven — enhetstallene for holdover-til-terskel per klokkeklasse forblir MODELLED
Tester
tests/optical_clock_adev_reference.rs (Norcia et al. ⁸⁸Sr pinsettklokke σ_y(τ), 8 midlingstider 0,92–117,76 s medfølger ordrett under CC-BY-4.0: NNLS rekonstruerer kurven til ~10 % RMS / ≤21 % verste punkt; gjenvunnet…
ValidertIntegritet (RAIM/ARAIM/SBAS)araim_reference (add_v42_protection_levels, add_v42_protection_levels_ecef); raim (snapshot_raim, snapshot_raim_fde, araim_raim, araim_dual_raim, solution_separation_raim); sbas (sbas_protection_level); lunar
Funksjon
ARAIM-løsning med flere hypoteser og løsningsseparasjon etter ARAIM Airborne Design Document (ADD) v4.2 (araim_reference::add_v42_protection_levels og add_v42_protection_levels_ecef: bestemmelse av delmengder etter reglene P_THRES og FC_THRES, VPL, HPL, den effektive monitorterskelen EMT og sigma_acc); kjikvadrat-RAIM for feildeteksjon i et enkelt øyeblikk med utelukkelse av én satellitt (raim::snapshot_raim, raim::snapshot_raim_fde) og stigningsbasert HPL/VPL på det geodetiske lokale nivået; og SBAS DO-229E-kombinasjonen av beskyttelsesnivå (sbas::sbas_protection_level) på L1-tjenesten. IKKE dekket, oppgitt rett fram: bekvemmelighetsfunksjonene med uniform sigma raim::araim_raim og raim::araim_dual_raim er IKKE i samsvar med ADD (på like inndata bommer de på Stanford MAAST med 0,75 m VPL / 4,04 m HPL og 0,39 m VPL / 1,93 m HPL, et funn); sammenligningen av dobbeltfrekvent flerkonstellasjons (DFMC) L5-SBAS er et funn (308 brukerepoke-par uten GEO i sikte er beskyttet av Kshana og ikke av MAAST, hvis GEO-mottaksport Kshana ikke modellerer); raim::solution_separation_raim har ingen ekstern sammenligning
Uavhengig referanse
Tre uavhengige verktøy, forhåndsregistrert (0123cee1) før noen fixture eller utdata fra den uavhengige referansen fantes, toleranser fastsatt da. (1) ARAIM: Stanford MAAST for ARAIM 2 (commit ab70e2a3, BSD-3) mhss_raim_baseline_v5.m, kjørt som et eget program under GNU Octave 8,4 med et kompatibilitetsshim for unique() på driversiden (oppgitt, ingen algoritmeendring), ved ADD TOL_PL på 0,05 m: Rust-koden gjenskaper ADD-referanseimplementasjonen på 270 virkelige tilfeller. Oppgitt: Kshana sin ADD-bane ble skrevet etter forhåndsregistreringen og følger ADD slik MAAST implementerer den; et uavhengig tilbakeholdt datasett fra gjennomgangsansvarlig (270 nye brukergeometrier og en andre integritetsstøttemelding, MAAST kjørt på nytt mot den frosne koden) besto ved samme terskel. (2) RAIM i et enkelt øyeblikk: RTKLIB v2.4.2-p13 (BSD-2) estpos/valsol/raim_fde i en egen C-harnisk for deteksjon og utelukkelse; stignings-PL fra RTKLIB matinv/xyz2enu pluss SciPy 1.18.1 chi2/ncx2, der begge sider evaluerer den samme lukkede formen (Brown; Parkinson og Axelrad), så PL-kontrollen dekker implementasjonen, ikke formelen. (3) SBAS: Stanford MAAST (commit 7d32b049) usr_vhpl, uendret, på MAAST sine egne registrerte WAAS-kringkastinger: L1-nivåer innenfor 1e-4 m etter K-reskaleringen og et likt beskyttet sett. De samme sammenligningene ga funnene som står i funksjonen: ARAIM-funksjonene med uniform sigma er ikke i samsvar med ADD, og likheten av L5-settene svikter på 308 par uten GEO i sikte (nivåene på de 3267 parene begge verktøy beskytter stemmer til 1e-13 m). K-faktorene i DO-229E/DO-316 er transkriberte konstanter og den virkelige geometrien er en inndata; ingen av delene regnes som en uavhengig referanse. Revisjon 0,30: beskyttelsesnivåene i snapshot_raim flyttet fra det radiale til det geodetiske lokale nivået (opptil 0,31 m HPL og 0,14 m VPL ved 16 grader N)
Tester
tests/integrity_araim_stanford_oracle.rs::araim_mhss_matches_stanford_maast_add_v4_2 (270 tilfeller med virkelig geometri, Celestrak GPS+Galileo og IGS SP3: verste |dVPL| 2.2e-3 m, |dHPL| 1.1e-3 m, |dEMT| 2.1e-10 m mot ADD…
ValidertBanepropagering og banebestemmelsesgp4, propagator, orbit_determination, precise_od
Funksjon
SGP4/SDP4, Cowell 6-DOF + perturbasjoner, batch-/sekvensiell OD
Uavhengig referanse
Verifikasjonsvektorer for AIAA 2006-6753 SGP4
Tester
tests/sgp4_verification.rs (666 AIAA verification vectors, worst 4.12 mm); tests/sgp4_crate_comparison.rs (independent sgp4 crate)
ValidertNumerisk Cowell-propagator og kraftmodellpropagator, forces
Funksjon
Numerisk Cowell-propagator med en hierarkisk kraftmodell (todelslegeme, sonal J2–J6, tredjelegeme Sol/Måne, SRP for kanonkule, eksponentiell luftmotstand); RK4 med trinndobling / DP5(4) / DOP853
Uavhengig referanse
Orekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 — et uavhengig bibliotek, en annen integrator og en annen rekursjon for kulefunksjoner. De konservative nivåene (todelslegeme → sonal J2–J6 → tredjelegeme Sol/Måne → SRP for kanonkule) stemmer til under en meter over en bue på 24 timer, noe som validerer integratoren + kraftalgebraen; nivået for luftmotstand og den absolutte innmatingsfideliteten for Sol-/Måne-efemeride og tetthet forblir MODELLED (kun karakterisering)
Tester
tests/numerical_cowell_propagator_reference.rs (275 epoker = 11 tilfeller × 25 timetilstander, LEO+GTO, mot Orekit 12,2 DormandPrince853; konservative nivåer T1–T5 verste |Δr| 0,08 m over 24 t; luftmotstandsnivået karakterisert ved 333 m)
ValidertSRP-skygge for oblat Jord (valgfri)srp_shadow, forces (srp_accel_with_lit_fraction), propagator
Funksjon
SRP-belyst andel med WGS-84-ellipsoiden som det okkulterende legemet (tilsynelatende jordradius fra ellipsoidens lem mot Sola, linseformel med to disker; srp_shadow::oblate_conical_shadow), valgfri i Cowell-kraftmodellen gjennom propagator::ForceModel::srp_shadow (standard: den sfæriske koniske skyggen, uendret)
Uavhengig referanse
Orekit 12,2 (Apache-2.0) SolarRadiationPressure.getLightingRatio med et WGS-84- og et sfærisk OneAxisEllipsoid som okkulterende legeme, kjørt som et eget program med Sola fastlåst i samme treghetsposisjon. Terskler forhåndsregistrert i xval/srp-oblate-shadow-orekit/PREREGISTRATION.md (6d6d269c): 1e-6 på begge, og en spredning mellom oblat og kule på > 1e-2; alle nådd. Ellipsoideaksen er treghetssystemets z-akse på begge sider (ingen presesjon-nutasjon)
Tester
tests/srp_oblate_shadow_orekit_oracle.rs (2400 geometrier over skyggekanten, 884 i penumbra, LEO til GEO, solhelning 0 og +-23.44 grader, 8 asimuter: verste |dnu| 7.41e-9 for WGS-84 og 2.24e-9 for den sfæriske…
ValidertBoks-og-vinge og ECOM2 solstrålingstrykk, med partielle deriverte (valgfritt)srp_boxwing, propagator, precise_od
Funksjon
SRP uten kanonkule: en flat-plate-modell med boks og vinger (Vallado likn. 8-44; ensidige kroppspaneler, solpekende vinger) med tabellene for Galileo FOC, IOV og IOV ved endt levetid fra GSC-satellittmetadataene, i nominell GNSS-yaw-styring, med analytiske partielle deriverte for strålingsfaktoren og for hvert panels speilende og diffuse koeffisienter; og den empiriske ECOM2-modellen (D2/B1) med sine partielle deriverte. Boks-og-vinge er valgfri i Cowell-propagatoren (propagator::ForceModel::box_wing_srp, som setter feltet srp_boxwing) og i modellen for presis banebestemmelse (precise_od::PreciseForceModel::box_wing_srp), og erstatter kanonkuleleddet med cr som strålingsfaktor; begge er som standard None, slik at alle eksisterende baner forblir byte-identiske. ECOM2 er ikke koblet inn i noen kraftmodell
Uavhengig referanse
Orekit 12,2 (Apache-2.0) BoxAndSolarArraySpacecraft med FixedPanel og PointingPanel, SolarRadiationPressure(dRef = 1 au, pRef = 1361/c), GenericGNSS nominell yaw og ECOM2(nD = 2, nB = 1), kjørt som et eget program med Sola i faste treghetsposisjoner; den deriverte av strålingsfaktoren fra Hipparchus Gradient, deriverte per panel som sentrale differanser av Orekit (Orekit har ingen). Terskler forhåndsregistrert i xval/srp-boxwing-orekit/PREREGISTRATION.md (e59df6bf), før noen utdata fra Orekit fantes: 1e-12 relativt (1e-11 ende til ende, 1e-9 for differansene); alle nådd (RESULTS.md). VALIDATED gjelder bare evalueringen av modellen: GSC-tabellene er transkriberte inndata, og det som ikke er dekket er om boks-og-vinge duger for virkelige Galileo-baner, termisk reemisjon, den modifiserte yaw-loven for lav beta og formørkelsessvinger; SRP-prediksjonen for Galileo forblir MODELLED
Tester
tests/srp_boxwing_orekit_oracle.rs (252 Galileo-banegeometrier, 7 solsituasjoner inkludert perihel- og afelavstander, 100 tilfeldige orienteringer; flatplatesum verste 2.05e-15 relativt over 1056 tilfeller; ende til ende med…
ModellertSRP-skygge med lemmørking av Sola (valgfri)srp_shadow
Funksjon
SRP-belyst andel som den uokkulterte andelen av den lemmørkede solfluksen (lov av Eddington-tilnærming I(mu)/I(1) = 2/5 + 3/5 mu, Gauss-Legendre-kvadratur) over en sfærisk eller WGS-84-Jord (srp_shadow::limb_darkened_shadow, ShadowModel-varianten OblateEarthLimbDarkened)
Uavhengig referanse
Ingen ekstern: Orekit 12,2 har ingen belysningsratio med lemmørking. Kontrollert bare mot lukkede former av den samme loven
Tester
srp_shadow::tests (den ringformede lukkede formen, den uniforme loven som gjenskaper den koniske skyggen, grensene full sol og umbra)
ValidertNRLMSISE-00 termosfærisk tetthetnrlmsise00
Funksjon
En portering av den empiriske termosfæren NRLMSISE-00 (gtd7 og gtd7d: artstettheter, total massetetthet med anomalt oksygen, temperaturer; de 24 bryterne; moduser for daglig Ap og ap-tabell for 3 timer) fra C-versjonen i det offentlige eiendomsområdet av NRL-Fortran-koden
Uavhengig referanse
pymsis 0.13.0 (MIT) version=0, som kjører NRL Fortran GTD7D i enkel presisjon, og C-porteringen av NRLMSISE-00 (utgave 20190709, offentlig eiendom) kompilert som et eget program, pluss de 17 publiserte testutdataene i C-distribusjonen. Terskler forhåndsregistrert i xval/nrlmsise00-pymsis/PREREGISTRATION.md (e90ae26a) før porteringen fantes; alle nådd (RESULTS.md). Validerer porteringen, ikke modellens nøyaktighet mot målt tetthet
Tester
tests/nrlmsise00_reference.rs (720 rutenettpunkter, 90 til 1000 km, 4 breddegrader, 2 lokaltider, 3 dager, lav/moderat/høy aktivitet: tetthet innenfor 1.866e-6 relativt og temperatur innenfor 1.97e-4 K av pymsis; bit-identisk…
ValidertNRLMSISE-00-nivå for tetthet ved luftmotstand (valgfritt)forces (density_at, drag_accel_with_density), propagator
Funksjon
forces::DensityModel (Exponential som standard, Nrlmsise00 { f107a, f107, ap }) og propagator::ForceModel::drag_density: kvadratisk luftmotstand mot den medroterende atmosfæren med NRLMSISE-00-tettheten i det geodetiske WGS-84-punktet (jordrotasjonsvinkel med UT1 = TT, lokal soltid UT + lon/15), konstant romvær per modell; som standard av og bit-identisk
Uavhengig referanse
Orekit 12,2 (Apache-2.0) NumericalPropagator/DormandPrince853 med DragForce over Orekits egen NRLMSISE00-implementasjon, kjørt som et eget program med samme referansesystem for jordrotasjonsvinkel, WGS-84-form, konvensjon for lokal soltid (en middelsol) og TT som UT; oppsettet av konvensjonene ble kontrollert uavhengig referanse mot uavhengig referanse (Orekit mot pymsis, 5.2e-5 i tetthet). Terskler forhåndsregistrert i xval/drag-tier-orekit/PREREGISTRATION.md (21647478): 0,5 m + 1e-3 av forskyvningen fra luftmotstand, og to sensitivitetskontroller på > 100 m; alle nådd. Ikke dekket: modellens nøyaktighet mot målt tetthet, tidsvarierende romvær, et GMAT-ledd
Tester
tests/drag_tier_orekit_oracle.rs (4 tilfeller x 25 timetilstander over 24 t, sirkulær 51,6 grader, 400 km ved lav/moderat/høy aktivitet og 300 km: verste |dr| 0,0303 m og |dv| 3.36e-5 m/s mot 3,3 til 141,8 km luftmotstand…
ValidertStandard eksponentiell luftmotstand mot en uavhengig implementasjon (ekvatorial)forces (atmospheric_density, drag_accel), propagator
Funksjon
Standard luftmotstand i Cowell-propagatoren: kvadratisk luftmotstand mot den medroterende atmosfæren med forces::atmospheric_density, den stykkevis eksponentielle tabellen i Vallado tabell 8-4 ved den sfæriske høyden (propagator::ForceModel::drag med standardvarianten Exponential av forces::DensityModel)
Uavhengig referanse
GMAT R2022a (NASA GSFC, Apache-2.0) GmatConsole med den eksponentielle atmosfæren (den samme tabellen med 28 bånd), punktmasse-Jord og PrinceDormand78, kjørt, aldri medfølgende. Terskler forhåndsregistrert i xval/drag-exponential-gmat/PREREGISTRATION.md (640c85c1) på forskyvningen fra luftmotstand på hver side (kjøring med luftmotstand minus kjøring uten), som opphever de to mu-verdiene for Jorda og integratorene; alle nådd (RESULTS.md). GMAT tar geodetisk høyde og kshana sfærisk høyde: de sammenfaller bare på ekvator, så VALIDATED gjelder ekvatoriale baner; utenfor ekvator avviker modellene av utforming (10,4 % av forskyvningen over 24 timer ved 51,6 grader, 400 km). GMATs offentlige bygg har ingen NRLMSISE-00 (plugin mangler), så NRLMSISE-00-nivået har bare Orekit som uavhengig referanse. Tabellens nøyaktighet mot målt tetthet er ikke dekket
Tester
tests/drag_exponential_gmat_oracle.rs (ekvatoriale tilfeller E400, E300 og E250x600 ved J2000.0, 25 timetilstander over 24 t: den luftmotstandsinduserte forskyvningen stemmer med GMATs til høyst 0,016 av terskelen 0,5 m + 1e-3|D|…
ModellertDE440 Sol og Måne i Cowell-kraftmodellen (valgfritt)propagator (ForceModel::with_ephemeris, ForceEphemeris), ephem_provider
Funksjon
Valgfritt efemeridenivå for tredjelegeme- og SRP-leddene i den numeriske Cowell-ForceModel: den geosentriske Sola og Månen fra en hvilken som helst EphemerisProvider (en DE440 SPK-kernel gjennom KernelEphemeris) ved TDB = TT + (TDB - TT), som avviser en leverandør som ikke kan betjene epoken og teller enhver reserveløsning til den analytiske serien; som standard av
Uavhengig referanse
Orekit 12,2 (Apache-2.0) NumericalPropagator/DormandPrince853 med ThirdBodyAttraction og SolarRadiationPressure på Orekits egen DE440-leser (orekit-data lnxp1990.440), kjørt som et eget program; kshana leser et bit-for-bit, SPICE-kontrollert utsnitt av NAIF de440s.bsp. Terskler forhåndsregistrert i xval/propagator-de440-orekit/PREREGISTRATION.md (22a5a01d). Banetersklen (0,5 m) og sensitivitetskontrollen er nådd, men terskelen for posisjon av Sol/Måne (3 m / 0,2 m) ble ikke nådd, med 6,39 m / 0,244 m. SPICE som leser den samme kernelen ved nøyaktig TDB bommer på Orekit med samme størrelse (6,25 m / 0,240 m), så gapet ligger mellom NAIFs de440s-bane og Orekits DE440-leser eller tidsskala; årsaken er ikke isolert. Registrert og festet, så raden forblir MODELLED
Tester
tests/propagator_de440_orekit_oracle.rs (5 tilfeller x 25 timetilstander over 24 t, LEO, GEO og HEO, tredjelegeme og tredjelegeme + SRP: verste |dr| 0,0170 m, |dv| 1.84e-5 m/s; analytisk-rekke-kontrollen bommer med 9,96 m; Sol…
ModellertS1 atmosfærisk tidevann (valgfritt)tides, propagator, precise_od
Funksjon
Det daglige S1-lufttrykkstidevannet som en perturbasjon av geopotensialet: Biancale og Bode (2006) modell N1, grad 2 til 6, gjennom lastformelen i IERS 2010 likn. 6,21 (tides::atmospheric_tide_s1, s1_air_tide_acceleration), valgfritt i Cowell- og de presise kraftmodellene (air_tide_s1, som standard av)
Uavhengig referanse
Ingen ekstern for geopotensialeffekten. De 24 koeffisientene er transkribert fra GFZ STR06/01 tabell 1 modell N1 og kontrollert på nytt rad for rad mot rapporten (SHA-256 890865ae); grad 0, 1, 7 og 8 brukes ikke. Ray og Ponte (2003) trykker ingen kulefunksjonstabell, så ingen andre kilde ble sammenlignet
Tester
tides::tests (S1-leddet er døgnlig, dreier 90 grader på en kvart dag, og har lastfaktoramplituden for hver rad; fysisk størrelse i LEO); propagator::tests::the_s1_air_tide_flag_adds_exactly_the_s1_acceleration
ValidertS2 atmosfæriske tidevannskoeffisienter i IERS-konvensjonentides (s2_air_waves, atmospheric_tide)
Funksjon
Ray (2001) S2-lufttrykksharmonikker (n <= 4, prograd og retrograd) omregnet til den fullt normaliserte formen med sinus-ledende fase i IERS 2010 likn. 6.20-6.21 (amplitude delt på N_nm, epsilon = 90 grader - psi) og brukt som S2-leddet i tides::atmospheric_tide
Uavhengig referanse
Biancale og Bode, GFZ Scientific Technical Report STR06/01 (2006), tabell 5, modell A2: Ray (2001) publisert i fullt normaliserte harmonikker med sinus-ledende faser, en uavhengig gjengivelse av den samme modellen. Forhåndsregistrert i xval/s2-air-tide-fix/PREREGISTRATION.md (5e31c37a) sammen med rettingen den validerer. Dekker bare omregningen av koeffisientene; geopotensialeffekten av lufttidevannet har ingen ekstern uavhengig referanse
Tester
tests/s2_air_tide_gfz_table5.rs (21 av 21 bølger stemmer med den publiserte modellen A2: verste 0,00050 cm, 0,050 grader mot terskler på 0,0006 cm, 0,1 grader); tests/tides_iers.rs (S2-amplitudebånd)
ValidertTesseral geopotensial i Cowell-propagatorenpropagator (Geopotential, EarthFixedFrame), gravity_sh
Funksjon
Valgfritt tesseralfelt EGM2008 (til grad/orden 70) som sentral gravitasjon i den numeriske Cowell-ForceModel, evaluert i et jordfast referansesystem rotert med IAU 2000 jordrotasjonsvinkel (eller CIO GCRS-til-ITRS-kjeden); som standard av, så ingen eksisterende utdata flyttes
Uavhengig referanse
Orekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 med HolmesFeatherstoneAttractionModel over de samme koeffisientene (tools/egm2008_to70.gfc) i et legemsfast system rotert med samme formel for jordrotasjonsvinkel, kjørt som et eget program. Terskler forhåndsregistrert (f0e0e65, endret før noen sammenligning i 2da899a): |dr| <= 0,5 m og |dv| <= 5e-4 m/s, og begge negative kontroller bommer med > 100 m; alle nådd, deretter strammet til 0,1 m og 1e-4 m/s. Ikke validert: nøyaktigheten i jordorientering (begge sider bruker UT1 = TT uten presesjon-nutasjon i Era-systemet), Cio-systemvalget (bare intern kontroll), grader over 70
Tester
tests/cowell_tesseral_orekit_oracle.rs (6 tilfeller x 25 timetilstander over 24 t: EGM2008 8x8 og 70x70 på LEO 45 grader, polar 89,9 grader, solsynkron 98,2 grader, GTO, og 70x70 med Sol/Måne og SRP; verste |dr| 0,0355 m…
ModellertKulefunksjonsgravitasjon av høy grad (EGM2008 til 2190)gravity_sh, propagator (FieldEvaluator)
Funksjon
Underflytsikker og polsikker evaluering av et fullt normalisert felt til grad 2190 (SphericalHarmonicField::acceleration_hf / potential_hf, modifisert fremoverkolonne etter Holmes-Featherstone 2002 med gradienten fri for 1/cos phi), en strømmende ICGEM .gfc-laster (from_gfc_file / from_gfc_reader; hele EGM2008 hentes ved kjøring, ikke medfølgende), og Holmes-Featherstone-evaluatoren som kan velges på den valgfrie Cowell-Geopotential
Uavhengig referanse
Orekit 12,2 (Apache-2.0) HolmesFeatherstoneAttractionModel og pyshtools 4.14.1 (BSD-3-Clause) MakeGravGridPoint, kjørt som egne programmer; terskler forhåndsregistrert i xval/high-degree-gravity/PREREGISTRATION.md (276c869f) og xval/cowell-tesseral-200-orekit/PREREGISTRATION.md (0aa312a6). Orekit stemmer overalt der det er definert, men pyshtools når ikke sin forhåndsregistrerte terskel i de to punktene nær polen (opptil 7.3e-10 m/s^2; en mpmath-kontroll med 50 sifre legger feilen i pyshtools), det finnes ingen verdi fra uavhengig referanse nøyaktig på polaksen, og den forhåndsregistrerte sensitivitetskontrollen for grad 70 på banen på 24 timer ble ikke nådd (0,726 m mot > 1 m). Hvert avvik er registrert, ikke tunet bort, så raden forblir MODELLED
Tester
tests/gravity_sh_high_degree.rs (Orekit i 8 punkter utenfor aksen: maks |da| 2.2e-17 m/s^2 ved N = 70, kjøres alltid; 3.5e-17, 3.9e-17 og 7.3e-17 m/s^2 ved N = 200, 360, 2190, datastyrt på KSHANA_EGM2008_GFC)…
ValidertDOP853-integratorintegrator, propagator
Funksjon
Hairer DOP853 8(5 3) eksplisitt Runge-Kutta med den kombinerte feilestimatoren av 5. og 3. orden, SciPy/Hairer-trinnkontrolleren, automatisk startsteg, en feillukket trinnvakt og tett utdata av 7. orden; kan velges som propagatorens Integrator-variant Dop853 / propagator::propagate_dop853
Uavhengig referanse
SciPy 1.18.1 (BSD-3-Clause) solve_ivp(method=DOP853) og dens rutiner for enkeltsteg, feilnorm, tett utdata og startsteg, en uavhengig implementasjon; eksakte todelslegemetilstander fra mpmath 1.3.0 med 40 sifre. Terskler forhåndsregistrert i xval/dop853-scipy/PREREGISTRATION.md (ae1b25e) før den første sammenligningen; alle nådd (xval/dop853-scipy/RESULTS.md). SciPys første steg gis til begge løserne i de fulle kjøringene; rutinen for startsteg sammenlignes separat. Ikke dekket: RKF7(8), stivhetsdeteksjon, hendelseslokalisering
Tester
tests/dop853_scipy_oracle.rs (8 enkeltsteg: tilstand innenfor 5.55e-15 relativt, FSAL-derivert 3.46e-15, tett utdata 1.99e-14, aksept-/avvisningsbeslutninger identiske; 3 hele kjøringer ved rtol = atol = 1e-12 (LEO 58000 s, e = 0,7…
ValidertRobust løser for Kepler-ligningenkepler, propagator
Funksjon
Elliptisk Kepler-løser for alle 0 <= e < 1 og alle middelanomalier: kubisk startverdi og korreksjon av femte orden etter Markley (1995), et residual uten kansellering (1-e)E + e(E - sin E) - M, og vaktet Newton-polering (kepler::solve_kepler_markley, propagator::solve_kepler_robust)
Uavhengig referanse
mpmath 1.3.0 (BSD-3-Clause) røtter med 50 sifre fra de eksakte binære inndataene. Terskler forhåndsregistrert i xval/kepler-mpmath/PREREGISTRATION.md (df22174), oppgitt relativt til |E| med betingelsesargumentet e -> 1, M -> 0; alle nådd (xval/kepler-mpmath/RESULTS.md). De eldre løserne (solve_kepler_checked, orbit::solve_kepler, ephem::solve_kepler) er numerisk uendret fordi innsjekkede utdata avhenger av dem, og dekkes ikke av denne raden
Tester
tests/kepler_mpmath_oracle.rs (405 rutenettpunkter, e fra 0 til 0,999999, M i [-pi, pi] ned til 1e-12: verste |E - E_ref| 0,898 eps|E| mot en terskel på 8 eps|E|; 9 oppviklede M-punkter ved verst 0,013 av sin terskel; ingen Newton…
ModellertBatch-banebestemmelse med avstandsrate og az/el med stasjonsmaskeringorbit_determination (determine_orbit_batch_tracking, propagate_with_stm, is_visible), batch_ls (gauss_newton_analytic)
Funksjon
Gjenvinn en epoketilstand fra blandet sporing av avstand, avstandsrate og azimut/elevasjon over en elevasjonsmaske med Gauss-Newton på H = (dh/dx(t)) Phi(t, t0): analytiske partielle deriverte av målingene og en variasjonell tilstandsovergangsmatrise med analytiske todelslegeme- + J2-deriverte (RK4-integrert, ikke en STM i lukket form)
Uavhengig referanse
Orekit 12,2 (Apache-2.0) BatchLSEstimator med egne øyeblikkelige geometriske RangeRate- og AzEl-målinger (kryssjekket mot Orekits TopocentricFrame), kjørt som et eget program på identiske maskerte, seedede observasjoner. Terskler forhåndsregistrert i xval/od-measurements-orekit/PREREGISTRATION.md (0cf9076). Hver terskel er nådd unntatt B4, den støyfrie tilstandsenigheten på 1 cm, som ikke ble nådd i 2 av 4 scenarioer (1,46, 1,74 cm): Orekits eget støyfrie estimat ligger så langt fra sin simulerte referanse (årsaken på Orekit-siden er ikke isolert). Registrert og festet, så raden forblir MODELLED. Ikke modellert: lysgangstid, aberrasjon, refraksjon, jordrotasjon, et sekvensielt filter for disse måletypene
Tester
tests/od_tracking_measurements_reference.rs (8 scenarioer: avstandsrate, az/el og blandet, LEO og MEO, støyfri og seedet sigma 5 m / 5 mm/s / 1e-4 rad, 5 og 10 graders masker, mot Orekit 12,2: synlige sett identiske…
ModellertVekting av observasjoner etter SP3-nøyaktighetskodesp3, precise_od
Funksjon
Avbild SP3-nøyaktighetskoder (header ++-eksponenter i 2^n mm, %f-basen, standardavvik base^n mm per post) til posisjonssigma per observasjon for motoren for presis banebestemmelse (sp3::parse_sp3_accuracy, Sp3Accuracy::position_sigma_m)
Uavhengig referanse
Ingen ekstern: vektene er et modelleringsvalg (SP3-formatet definerer koden bare som produsentens nøyaktighetsindikator; den leses her som ett sigma per akse). De eksisterende registrerte kjøringene fra byråer er uendret
Tester
src/sp3.rs unit tests; tests/agency_galileo.rs::galileo_e11_sp3_accuracy_weighted_fit (committed 8 h ESOC fixture, sigma 0.032 m from header exponent 5: Tier-1 3D RMS 0.132 m unchanged, Tier-2 0.035 m against 0.070 m…
ValidertPlanetariske gravitasjonsfelt fra PDS SHADR-tabellergravity_pds, gravity_sh
Funksjon
Les PDS SHADR kulefunksjonstabeller (from_shadr, på SphericalHarmonicField i src/gravity_pds.rs: enhetskonvertering, C00 = 1 levert, kontroller av fullstendighet og normalisering) og evaluer den legemsfaste gravitasjonen til Mars GMM-3 (d/o 120) og månefeltet GRAIL GL0660B (d/o 660)
Uavhengig referanse
pyshtools 4.14.1 (BSD-3-Clause) som leser de samme PDS-filene og evaluerer punktgravitasjon, kjørt som et eget program, og de publiserte produktheaderne og etikettene i PDS. Terskler forhåndsregistrert i xval/planetary-gravity-pyshtools/PREREGISTRATION.md (32c5b50); alle nådd (RESULTS.md). Data: NASA PDS Geosciences Node, offentlig eiendom; utsnitt av grad 20 medfølger med NOTICE, hele filene hentes ved testtidspunktet
Tester
tests/planetary_gravity_pds.rs (utsnitt av grad 20 kjører alltid: verste |dg|/|g| 9.7e-16, forstyrrelsesrelativt 3.4e-11; GMM-3 d/o 120 over hele sfæren 3.7e-15 / 6.3e-12 og GL0660B d/o 660 ved |lat| <= 60 grader 5.0e-14 /…
ModellertFest et publisert gravitasjonsfelt til et legemegravity_pds, body, propagator, mars_frame
Funksjon
with_gravity_field (på Body, i src/gravity_pds.rs): fest et hvilket som helst lastet kulefunksjonsfelt (for eksempel GMM-3 eller GL0660B) til en Body slik at propagatoren evaluerer det legemsfast; valgfritt, standardlegemer uendret
Uavhengig referanse
Bare intern konsistens. Hvert publisert felt er definert i produsentens legemsfaste system (GMM-3 i Mars-systemet til Konopliv et al. 2006, GL0660B i det månefaste hovedaksesystemet DE421), mens feltet evalueres i IAU-systemet; forskyvningen er ikke modellert
Tester
tests/planetary_gravity_pds.rs::a_shadr_field_attached_to_a_body_drives_the_propagator; gravity_pds::tests::with_gravity_field_is_opt_in
ValidertBatch- og sekvensiell banebestemmelseorbit_determination, precise_od (batch_ls::gauss_newton, fusion::ukf)
Funksjon
Gjenvinn en epoketilstand [r,v] fra avstander til bakkestasjoner via en Gauss–Newton batch-differensialkorrektor og et sekvensielt filter, over en todelslegeme- + J2-kraftmodell
Uavhengig referanse
Orekit 12,2 (CS GROUP, Apache-2.0) BatchLSEstimator (Levenberg–Marquardt) + KalmanEstimator (EKF) — et uavhengig estimeringsbibliotek fra tredjepart på en matchet kraftmodell; gjenvunnet epoketilstand + RMS av residualer etter tilpasning stemmer til <1e-3 m uten støy og <3 m ved en støybunn på 5 m
Tester
tests/batch_sequential_orbit_determination_reference.rs (8 scenarios: 6 noiseless LEO/MEO/eccentric/3–4-station + 2 σ=5 m, vs Orekit 12.2; worst batch |Δr| 1e-3 m / |Δv| 1e-6 m/s, sequential |Δr| 0.9 m)
ValidertRadiometrisk lysgangstidsløser for dypt romradiometric (light_time_solution)
Funksjon
Retardert (nedgående ledd) enveis lysgangstidsløsning τ = |r_rx − r_target(t−τ)|/c for radiometrisk navigasjon i dypt rom (Jorda→Mars/Sola/Månen)
Uavhengig referanse
ANISE 0,10 (Nyx Space, MPL-2.0) lysgangstid med konvergert newtonsk aberrasjon (Aberration::CN; tilsvarer SPICE spkapo) over JPL DE440 — en uavhengig SPICE-implementasjon i Rust; kshanas retarderte fastpunktsløser stemte til under et nanosekund. De bredere tallene for Doppler / Shapiro / redusert-dynamisk OD forblir MODELLED
Tester
tests/deep_space_mars_radiometric_reference.rs (24 ledd over 8 epoker 2020–2027 mot ANISE DE440; verste |Δτ| 1.03e-9 s, |Δrange| 0,31 m ved opptil 2,5 AU)
ValidertSatellittposisjon fra kringkastet efemeride (multi-GNSS RINEX)rinex (parse_nav, RinexEphemeris::sv_position_ecef)
Funksjon
IS-GPS-200 / Galileo-OS / BeiDou-OS kringkastet efemeride, Kepler → ECEF-satellittposisjon fra en parset RINEX-3-navigasjonspost
Uavhengig referanse
RTKLIB v2.4.2-p13 eph2pos() kompilert fra C-kildekode (T. Takasu, BSD-2-Clause) — en uavhengig implementasjon av IS-GPS-200/SIS-ICD, matet med identiske RINEX-3-navigasjonsposter; satellittposisjon i ECEF stemte til ~62 nm. (SP3-interpolasjon av presis efemeride er validert separat — se «SP3-interpolasjon av presis efemeride»)
Tester
tests/rinex_sp3_interop_reference.rs (84 SV-epoch cases: GPS + Galileo + BeiDou-MEO, 12 SVs × 7 offsets, vs RTKLIB eph2pos; worst per-axis |Δ| 6.2e-8 m)
ValidertSP3-interpolasjon av presis efemeridesp3 (Sp3Interpolator::position_ecef)
Funksjon
Lagrange-interpolasjon etter IGS-standard av satellittposisjoner fra SP3 presis efemeride med jordrotasjonskorreksjon per node (roter hver node med ω⊕·(t_node−t) inn i det jordfaste systemet for spørreøyeblikket før polynomtilpasningen)
Uavhengig referanse
RTKLIB peph2pos() kompilert fra C-kildekode (preceph.c; T. Takasu, BSD-2-Clause) — den faktiske IGS-referansen, en uavhengig implementasjon; kshanas interpolator (som nå har den samme nodekorreksjonen for jordrotasjon) stemte til ~15 nm på et virkelig SP3-produkt, ned fra ~5,5 cm før korreksjonen
Tester
tests/sp3_interp_reference.rs (72 off-node SV-epoch cases / 6 satellites vs RTKLIB peph2pos; worst per-axis |Δ| 1.5e-8 m)
ModellertKoderere for navigasjonsmeldinger utover GPS LNAV (GPS CNAV, Galileo I/NAV og F/NAV)gnss_navmsg (gps_cnav, gal_inav, gal_fnav, fec)
Funksjon
GPS CNAV-meldingstyper 10/11/30, Galileo I/NAV-ordtyper 1-5 i nominelle partalls-/oddetallssider og Galileo F/NAV-sidetyper 1-4: ICD-feltpakking og kvantisering, CRC-24Q, konvolusjonskoding med rate 1/2 K=7 (G2 invertert for Galileo), blokkinterleaving og synkroniseringsmønstre, med tilsvarende testdekodere
Uavhengig referanse
Intern rundtur og known answers fra ICD; ingen tredjepartsdekoder er kjørt (RTKLIB-/GNSS-SDR-harnisken som leser KSHANA_NAVMSG_ORACLE_JSON er datastyrt). MODELLED
Tester
gnss_navmsg::tests (CRC-24Q-kontrollverdi 0xCDE703; konvolusjonell impulsrespons; Viterbi retter innsatte feil; layoutbredder); tests/gnss_navmsg_roundtrip.rs (feltenes startbiter er lik ICD-bitnumrene; encode ->…
ValidertLeser for IONEX globalt ionosfærekart og interpolasjon på en virkelig CODE GIMionex (parse_ionex, parse_ionex_file, IonexFile::vtec_at, IonexFile::slant_tec_at, interpolate_tec_in_time, TecGrid::vtec_at)
Funksjon
IONEX 1,0-leser (header, I5-verdier i faste kolonner, TEC- og RMS-kart, absolutte epoker, manglende verdier) med bilineær romlig interpolasjon, formatets tidsinterpolasjon for nærmeste / påfølgende / rotert kart (likn. 1-3) og tynnskall skrå TEC
Uavhengig referanse
De trykte verdiene i CODE GIM (eksakte i hver node; kartet hentes ved testtidspunktet, ikke medfølgende, fordi lisensen er ubekreftet) og en uavhengig re-implementasjon av IONEX 1,0-interpolasjonsformlene i Python-standardbiblioteket, innsjekket sammen med fixturen (terskler forhåndsregistrert e4d8b1f, 1e-9 TECU). Kontroll fra tredjepart (B6, forhåndsregistrert, første kjøring): RTKLIB v2.4.2-p13 iontec (BSD-2-Clause, kjørt som et eget verktøy) ved 6885 spørrepunkter stemmer med IonexFile::vtec_at til 3.6e-13 TECU i begge interpolasjonsmodi mot en terskel på 1e-5 TECU. Datastyrt: CODE GIM hentes ved testtidspunktet, SHA-festet; RTKLIB leser hele filen fordi dens getindex avviser breddeutsnittet. tests/fixtures/ionex_code_gim/fetch.sh henter den og kontrollerer SHA-256, testen feiler på alle andre byte, og run_rtklib.sh er den dokumenterte veien for å gjenskape (nettverkstilgang kreves). Løftet til VALIDATED ved eierens beslutning på datastyrt evidens (2026-10-13)
Tester
tests/ionex_code_gim_oracle.rs (innsjekket syntetisk IONEX-kart mot formelreferansen: 20 075 noder eksakte, interpolasjon maks |Δ| 3.5e-13 TECU; datastyrt på KSHANA_IONEX_CODE_GIM_DIR, den virkelige endelige CODE GIM…
ModellertHatch-bærebølgeutjevning av kode på virkelige RINEX-observasjonerhatch (HatchFilter), pvt (assemble_epoch_precise_smoothed, CarrierSmoother)
Funksjon
Divergensfritt Hatch-filter (ionosfærefri kode båret av den ionosfærefrie bærebølgen, vindu på N epoker, omstart ved tap av lås, geometrifritt hopp eller gap) i sammenstillingen for presis enkeltpunktsposisjonering
Uavhengig referanse
FUNN mot den publiserte ITRF2020-koordinaten for WTZR: de forhåndsregistrerte tersklene (utjevnet median og p95 på høyst 0,6 x rå; tests/fixtures/gnss_wettzell_2025055/PREREGISTRATION_HATCH.md) ble ikke nådd, forholdstall 0,718 og 0,923; den gjenværende feilen på meternivå er biasaktig (C1C-kodebias, antenne, tidevann, langperiodisk flerveisfeil), ikke den hvite støyen utjevningen fjerner. MODELLED: filterets statistikk er kontrollert internt
Tester
hatch::tests (noise-free pass-through; white-noise variance 1/(2N-1); restarts); tests/hatch_wettzell_oracle.rs::hatch_finding_is_pinned (WTZR 2025-02-24 01-06 h, 600 epochs, N = 100: median 3-D error 1.553 -> 1.116 m…
ValidertRTK-dobbeltdifferanser med LAMBDA-heltallsfiksering på virkelige RINEX-observasjonerrtk_real (run_rtk), lambda (resolve)
Funksjon
Relativ posisjonering på kort grunnlinje fra virkelig dobbeltfrekvent GPS-kode og bærebølgefase: dobbeltdifferanser mot den høyeste satellitten med full kovarians, et float-Kalman-filter over grunnlinjen og enkeltdifferansenes flertydigheter med reinitialisering ved sykluskutt, LAMBDA-heltallsminstekvadrater med ratiotesten, og grunnlinjen betinget på de fikserte heltallene
Uavhengig referanse
Publiserte ITRF2020-koordinater for WTZR og WTZZ (IGN ITRF2020_GNSS.SSC, løsning 3, med RINEX-antennehøydene) som gir referansegrunnlinjen; terskler forhåndsregistrert i tests/fixtures/gnss_wettzell_2025055/PREREGISTRATION_RTK.md før koden ble skrevet. Bare kort grunnlinje: ingen ionosfæriske eller troposfæriske dobbeltdifferanser er modellert
Tester
tests/rtk_real_wettzell_oracle.rs (IGS-stasjoner WTZR base / WTZZ rover, 1,4 m, 2025-02-24 00-03 t, 30 s: 359 epoker, posisjonsbestemmelser ved 100 % fra 00:10, median feil i fast grunnlinje 4,5 mm, p95 5,5 mm; første 10 min fast 2,6 mm…
ValidertPPP-tidsløsning for mottakerklokke mot IGS endelig stasjonsklokkeppp_real (run_ppp, PppEpoch::clock_m)
Funksjon
Mottakerklokken estimert av det statiske float-PPP-filteret på virkelig dobbeltfrekvent GPS-kode og -fase med IGS endelige baner og klokker: en tidsoverføring fra mottakeren til IGS-tid, den ionosfærefrie PPP-tidsløsningen.
Uavhengig referanse
Den endelige kombinerte IGS-klokken for stasjon WTZR (AR-poster i IGS0OPSFIN_20250550000_01D_05M_CLK, SHA-256 d19f3d45...993d, en kombinasjon av nettverksløsninger fra flere analysesentre; IGS-produkter, fri bruk med kildehenvisning); terskler forhåndsregistrert i xval/ppp-time/PREREGISTRATION.md før noen sammenligning; alle holdt ved første kjøring. HVA SOM IKKE ER DEKKET: én stasjon og ett konvergert vindu på to timer; IGS-tid, ikke UTC(k); den konstante forskyvningen inkluderer kodebias i mottakeren og er avgrenset, ikke kalibrert; ingen sporbarhet til Circular T.
Tester
tests/ppp_time_igs_station_clock.rs (WTZR 2025-02-24, 04:00-05:55, 24 epochs: Kshana minus IGS std 0.075 ns, bar 0.20; mean -0.659 ns, bar 5.0)
ValidertFloat presis enkeltpunktsposisjonering på virkelige RINEX-observasjonerppp_real (run_ppp, parse_antex_receiver, solid_tide_ecef, phase_windup)
Funksjon
Statisk float-PPP med utvidet Kalman-filter på virkelig dobbeltfrekvent GPS-kode og bærebølgefase med IGS endelige baner og klokker: ionosfærefri kombinasjon, antenneforskyvninger for satellitt og mottaker (mottakervariasjoner), fast jordtidevann, fase-wind-up, Shapiro-forsinkelse, estimert zenitt-våtforsinkelse, float-flertydigheter per bue med deteksjon av sykluskutt via geometrifri / Melbourne-Wübbena
Uavhengig referanse
Publisert ITRF2020-koordinat for WTZR (IGN ITRF2020_GNSS.SSC, løsning 3, propagert med sin hastighet) — terskler forhåndsregistrert i tests/fixtures/gnss_wettzell_2025055/PREREGISTRATION_PPP.md før filteret ble skrevet; utvikling bare på den samlokaliserte stasjonen WTZZ. Ikke modellert: havlast, PCV for satellitt, heltallsløsning av flertydigheter
Tester
tests/ppp_real_wettzell_oracle.rs (IGS-stasjon WTZR, 2025-02-24 00-06 t, 30 s, holdt utenfor utviklingen: horisontalt i siste epoke 1,5 mm, opp −2,9 cm; 04-06 t 240/240 epoker innenfor 0,10 m 3D, p95 6,7 cm; kun kode p95…
ValidertLesing av RINEX 4-navigasjonsfilrinex (parse_nav, parse_nav_with)
Funksjon
RINEX 4.00-4.02 navigasjonsfiler: > EPH-poster for GPS LNAV, Galileo I/NAV og F/NAV, BeiDou D1/D2 og QZSS LNAV dekodet til typen for kringkastet efemeride; CNAV, CNV1-3, FDMA, SBAS, STO, EOP og ION-poster hoppes over til neste postheader; en post der headeren nevner en annen satellitt, eller en avkortet post, avvises
Uavhengig referanse
Den samme dagens sammenslåtte RINEX 3-kringkastingsfil fra IGS (publiserte data, skrevet av en annen filgenerator fra de samme kringkastede meldingene); terskler forhåndsregistrert i tests/fixtures/brdc_rinex4_2026200/PREREGISTRATION.md (7aa264b) før første kjøring
Tester
tests/rinex4_nav_brd400_oracle.rs (IGS BRD400DLR_S RINEX 4,02 mot BRDM00DLR_S RINEX 3,04 fra 2026-07-19, utsnitt 00-02 t: G 37 / E 478 / C 72 poster samsvarte begge veier, hvert felt identisk, posisjon ved Toe 0 m; hel dag…
ModellertLesing av RINEX 4-observasjonsfilrinex_obs (parse_obs)
Funksjon
RINEX 4.0x observasjonsheadere (DOI, LICENSE OF USE, STATION INFORMATION, MERGED FILE; etiketter matchet i kolonne 61-80 for versjon 4 og senere) og epokeposter
Uavhengig referanse
Formatkontroll på en virkelig publisert RINEX 4,00-fil (verdier lest tilbake er lik filens trykte literaler) og en spesifikasjonsutledet header; ingen uavhengig leser er kjørt, så MODELLED
Tester
tests/rinex4_obs_mao0.rs (de første 4 epokene i IGS MGEX RINEX 4,00-filen MAO000USA_R_20231980000_01D_30S_MO, 58 satellitter, 7 systemer: header-poster og verdier i første epoke er lik de publiserte literalene)…
ModellertKringkastet satellittposisjon for BeiDou GEOrinex (RinexEphemeris::sv_position_ecef_bds_geo, NavParseOptions)
Funksjon
BDS-SIS-ICD-B1I v3.0 §5.2.4.12 posisjon for geostasjonær satellitt fra en kringkastet efemeride (treghetslignende system, deretter Rz(Ω̇e·tk)·Rx(−5°)), valgfritt gjennom feltet include_beidou_geo i NavParseOptions, så standardleseren fortsatt hopper over GEO
Uavhengig referanse
Forhåndsregistrert (7aa264b, 110fef9) mot en presis IGS MGEX-bane med GEO-ene; ingen slik produkt var tilgjengelig fra sesjonen som bygde den, så sammenligningen venter og raden er MODELLED (bare kontrollert mot de publiserte nominelle GEO-sporene)
Tester
tests/bds_geo_broadcast_oracle.rs (virkelige C01-C04-poster: geostasjonær radius, lengdegrader 140.02/80.04/110.55/159.99 grader ved de publiserte plassene, |breddegrad| 2,13 grader med helningen mot 6,65 uten; den forhåndsregistrerte…
ValidertSP3-interpolasjon av presis klokkesp3 (Sp3File::clock_s, clock_nodes), precise_products (ClockRinex::from_sp3)
Funksjon
Satellittklokkeforskyvning mellom de tabulerte SP3-klokkenodene ved lineær interpolasjon over de to omsluttende gyldige nodene (RTKLIB pephclk-skjemaet; sentinellverdi for dårlig klokke hoppes over), og de samme nodene matet inn i kjeden for presise produkter som poster tilsvarende RINEX-klokke
Uavhengig referanse
IGS endelig kombinasjon av satellittklokker på 30 s (IGS0OPSFIN 30S CLK, 2025-02-24): publiserte klokkeestimater i spørreøyeblikkene, ikke interpolert fra SP3; terskler forhåndsregistrert i tests/fixtures/sp3_clock_igs_oracle/PREREGISTRATION.md før første kjøring (RMS 0,15 ns, p95 0,30 ns, nodemedian 1e-12 s, diskriminering 2x)
Tester
tests/sp3_clock_igs_oracle.rs (IGS endelig 15 min SP3 fra 2025-02-24 mot IGS endelige 30 s-klokker, 32 GPS-satellitter: node-median |Δ| 2.6e-13 s; 3038 midtpunktposter RMS 0,121 ns, p95 0,265 ns; holder noden i stedet…
ModellertTett koblet GNSS/INS med bærebølgefase og float-flertydigheterfusion::carrier_tc (run_carrier_tc, CarrierTcCfg), fusion::trajectory (truth_epochs)
Funksjon
Error-state EKF over 15 INS-tilstander, en mottakerklokke med to tilstander og én float-bærebølgeflertydighet per sporet satellitt; pseudoavstand, bærebølgefase og valgfri avstandsrate fra en SGP4 Walker-konstellasjon (lysgangstid og Sagnac), Klobuchar- og Saastamoinen/Niell-korreksjoner anvendt i sløyfen ved filterets egen posisjon; deteksjon av sykluskutt med tidsdifferensiert bærebølge og en terskel per satellitt utvidet med hastighetsusikkerheten; reinitialisering av flertydighet ved sykluskutt og gjenerverving
Uavhengig referanse
Intern konsistens: målingene syntetiseres fra modellene filteret bruker (χ² NEES/NIS over seeds, en støyfri konvergens, injisering av sykluskutt). MODELLED; ingen virkelige mottakerdata eller tredjepartsfilter er sammenlignet
Tester
tests/fusion_carrier_tc.rs (figur-8-tur: stabil 3D-RMS 0,025 m bærebølge mot 0,470 m kode på identiske målinger; 12 seeds gjennomsnittlig NIS/dof 1,00 og stabil NEES/dof 0,92; et 1-syklus slipp oppdaget i sin epoke uten…
ModellertGNSS/INS-pakker for sjø, bane og luftfart med valgfri tett koblingfusion::pack (TightCfg, [tight]), scenarios gnss-ins-maritime / gnss-ins-rail / gnss-ins-aviation
Funksjon
Tre gnss-ins-scenarioer på banebiblioteket (et fartøy som slingrer med 8 m/s med et avbrudd på fem minutter; et tog gjennom en skjæring med to satellitter og en tunnel; et fly der avbruddet dekker en sving med 25 graders krengning) og pakkens valgfrie [tight]-tabell: pseudoavstander fra en SGP4 Walker-konstellasjon fusjonert av navigatoren med lukket sløyfe, hver satellitt over masken når nominelt og de høyeste få når degradert
Uavhengig referanse
Intern: hver pakkes kvalitetsmål mot dens egen referanse og en sammenligning av løs/tett kobling på identiske inndata. MODELLED; revisjonens sammenligning med NaveGo er ikke kjørt
Tester
tests/gnss_ins_packs.rs (hver pakke: fusjonert under fri INS over utfallet for begge sensorer; skinne: tett 5,3 m mot løst 12,9 m navigasjonsklasse og 15,6 m mot 18,8 m taktisk over utfallet, tilgjengelighet 0,97 mot 0,95…
ModellertKoblet PNT-filter for pseudoavstand med biastilstand og 3D-utvidelse i fusjonspakkenfusion::coupled (CoupledPntFilter, CoupledPntBiasFilter, CoupledPnt3d), fusion (run_coupled_suite), hybrid (CoupledCfg)
Funksjon
Ett stablet Kalman-filter over posisjon, hastighet, klokkefase og frekvens matet med pseudoavstander som kobler posisjon og klokke (oppdateringer i Joseph-form som bærer kryssovariansen); en variant med 1 DOF utvidet med en konstant akselerometerbias-tilstand som fusjonspakken kjører under [coupled]; og 3D-versjonen med 8 tilstander med siktlinjerader
Uavhengig referanse
Intern konsistens: referansen simulert fra filtrenes egne modeller (χ² NEES over Monte Carlo-seeds, den frakoblede pakken på identiske sensorer). MODELLED
Tester
tests/fusion_coupled_filters.rs (3D-filter over 60 seeds: gjennomsnittlig NEES i andre halvdel 8,12 for 8 tilstander, χ²-sum i siste epoke innenfor sitt 95 %-bånd; en klokkekorrigering på 0,1 ns kutter 3D-posisjonssigma fra 5,58 m til 3,07 m; bias…
ValidertLøst koblet GNSS/INS-EKF med lever arm på KF-GINS-datasettetfusion::kfgins (run, loaders, score), fusion::closed_loop (propagate_increments, fuse_position_lever_arm), fusion::gnss_ins_ekf (update_position_lever_arm)
Funksjon
Error-state EKF med 15 tilstander i lukket sløyfe drevet av IMU-inkrementer, med GNSS-antenneposisjoner fusjonert gjennom lever arm-modellen H = [I 0 −[(C_b^n l_b)×] 0 0], konfigurert fra en KF-GINS YAML-fil (starttilstand og sigmaer, ARW/VRW, Gauss-Markov-biaser)
Uavhengig referanse
Datasettets publiserte referansebane og KF-GINS C++-programmet (GPL-3.0, commit 8291a93e, kjørt som et eget verktøy); terskler forhåndsregistrert i xval/kfgins/PREREGISTRATION.md, og KF-GINS ble ikke kjørt på disse dataene før den registreringen (kontrollert i Results). Alle seks tersklene holdt ved første kjøring. DATASTYRT: demodatasettet til KF-GINS (virkelig IMU av typen Leador-A15 og RTK GNSS med en referansebane) har ingen lisens, så det er ikke medfølgende; xval/kfgins/fetch.sh henter det ved testtidspunktet med SHA-256 festet for hver fil, og testen feiler ved avvik; veien for å gjenskape, som krever nettverkstilgang, står i xval/kfgins/PREREGISTRATION.md. Løftet til VALIDATED ved eierens beslutning på datastyrt evidens (2026-10-13)
Tester
tests/fusion_kfgins_dataset_oracle.rs (syntetiske innlesere og lever-arm-tester med roterende plattform alltid; datastyrt på KSHANA_KFGINS_DIR, kjørt 2026-10-13 på KF-GINS-demodatasettet: horisontal / vertikal RMS 0,0109 /…
ValidertEksport fra testbenk lest av en simulators leser for bevegelsesfiler (gps-sdr-sim)interop::testbench (write_motion_csv, write_nmea, export)
Funksjon
Bevegelsesfilene fra bench-eksporten som gis til en åpen GNSS-simulators egne lesere kommer tilbake som den eksporterte banen: NMEA GGA-filen (-g), utsnittet tid/bredde/lengde/høyde av bevegelses-CSV-en (-x) og dens utsnitt tid/x/y/z (-u), på 6 gnss-ins-scenarioer (inkludert pakkene for sjø, bane og luftfart, lest til simulatorens grense på 3000 sampler) og 2 stasjonære. Bare bevegelse; intet signal skrives eller genereres.
Uavhengig referanse
HVA SOM KONTROLLERES EKSTERNT, oppgitt snevert: gps-sdr-sim (MIT, commit 28ca29a6) readNmeaGGA, readUserMotion og readUserMotionLLH med sin egen WGS 84 llh2xyz, kalt gjennom xval/testbench-gpssdrsim/driver.c (ingen signalfunksjon kalt), mot de jordfaste kolonnene i bevegelses-CSV-en rad for rad, med terskler forhåndsregistrert i xval/testbench-gpssdrsim/PREREGISTRATION.md før noen kjøring: hver sample lest på alle 8 scenarioer; NMEA verst 1,21 mm (terskel 1 cm); LLH-utsnitt verst 0,145 mm (terskel 1 mm); jordfast utsnitt med fire kolonner eksakt (terskel 1 um, endring 1); gnss-ins-rader på simulatorens rutenett på 10 Hz til 2.3e-13 s. FUNN (kjøring 1, festet): CSV-en i full bredde uten header kan ikke leses av -u, fordi leserens linjebuffer på 100 tegn deler hver rad på 161 tegn i to sampler; docs/TEST-BENCH.md gir utsnittet med fire kolonner. HVA SOM IKKE ER DEKKET: fysikken i scenarioets referansebane; gps-sdr-sims signalutdata; noen annen simulators leser; noen mottaker.
Tester
tests/testbench_gpssdrsim_oracle.rs (6 tester: referanse og scenarioer, eksportbyte festet, NMEA- og LLH-lesere, firekolonners ECEF-utsnitt, kjøring-1-FUNN på CSV i full bredde, radrutenett på 10 Hz)
ModellertGNSS/INS-banebibliotek og import av CSV-referansefusion::trajectory (TrajectoryCfg, Trajectory, kinematic_imu, parse_truth_csv), fusion::pack ([trajectory])
Funksjon
Valgbare bevegelsesprofiler for gnss-ins-pakken (rett, figur-8, urbant stopp-og-kjør, flyoppstigning og koordinert sving, kartleggingsdrone), definert ved Euler-rate- og kommandoer for akselerasjon langs sporet, lukket på referansetilstanden med den kinematiske IMU-en (sentripetal-, gravitasjons- og Coriolis-ledd), og importert CSV-referanse omformet til den IMU-en som gjenskaper den; den historiske kjøringen er uendret når ingen profil er gitt
Uavhengig referanse
Intern: identiteter for stivlegemekinematikk, CSV-rundturen og filterets egen kovarians. MODELLED (ingen virkelig kjørelogg er sammenlignet)
Tester
fusion::trajectory::tests (koordinert sving har ingen sidekraft og lastfaktor 1/cos φ; CSV-import gjenskaper en fløyet profil til 1e-3 m/s og 1 m); tests/gnss_ins_trajectory_library.rs (hver profil kjører og fusjon…
ValidertStrapdown INS-mekaniseringinertial::mechanization, inertial::attitude, inertial::imu_errors
Funksjon
Strapdown treghetsmekanisering i WGS-84 NED med kvaternionholdning (coning/sculling-kompensert) som propagerer en navigasjonstilstand fra (Δθ, Δv)-inkrementer
Uavhengig referanse
NaveGo v1.4 (R. Gonzalez et al., LGPL-3) kjørt under Octave — et uavhengig publisert INS-verktøysett drevet av den identiske strømmen av (Δθ,Δv)-inkrementer. Holdningen stemmer bit for bit (samme konvensjoner for NED / skalar-først-kvaternion / jordrate / transportrate); hastighet/posisjon stemmer opp til to dokumenterte forskjeller — nordgravitasjonsleddet for lodavvik som NaveGo tar med og kshana utelater av utforming (loddlinjegravitasjon; stemmer med den lukkede formen til Groves i hvert siffer, med en sanity-gulvkontroll) og O(dt²)-forskjeller i integratoren — ikke feil i mekaniseringen
Tester
tests/classical_strapdown_ins_reference.rs (statiske/sving-/coning-profiler, 30 epoker hver, mot NaveGo: orientering bit-identisk 0 rad; hastighet/posisjon innenfor navngitte analytiske grenser)
ValidertSyntese av gravitasjonsfeltfunksjonaler (gravitasjonsstøttet / GNSS-fritt navigasjonskart)gravity_sh
Funksjon
Kulefunksjonsgravitasjon, størrelse + forstyrrelse (mGal), fra en hvilken som helst ICGEM .gfc-modell; GRS80 normalgravitasjon
Uavhengig referanse
GRS80 (Moritz 1980, IAG) Somigliana normalgravitasjon + publiserte γ_e/γ_p; virkelig ICGEM EGM2008-felt
Tester
tests/icgem_gravity_reference.rs (GRS80-syntese gjenskaper Somigliana til 3.5e-12; virkelig ICGEM EGM2008-forstyrrelseskart fysisk)
ModellertJord–Måne CR3BP 9:2 NRHO mot banen CAPSTONE fløycr3bp (differential_correct_halo, PeriodicOrbit)
Funksjon
Den sirkulære begrensede 9:2 L2 sørlige nesten-rettlinjede haloen som cr3bp::differential_correct_halo korrigerer (banefamilien for Gateway og CAPSTONE), sammenlignet på middelgeometri (periode, perilune-radius, apolune-radius) med banen CAPSTONE faktisk fløy. Et mål på hvor godt CR3BP-medlemmet beskriver den virkelige banen; en CR3BP-bane er ikke en bane i en efemeridemodell og sammenlignes ikke epoke for epoke
Uavhengig referanse
Målt mot den rekonstruerte CAPSTONE-efemeriden fra JPL Horizons (NAIF -1176, CAPSTONE_merged, månesentrert ICRF, 2023-03-01..31 med 10 min), innsjekket byte for byte (tests/fixtures/capstone_horizons/, NOTICE.md), forhåndsregistrert 4e868170 før den ble hentet, som en måling med terskler på middelgeometrien. Ikke en validering: CR3BP utelater Sola, Månens eksentrisitet og stasjonsholdet CAPSTONE utførte, så tersklene beskriver hvor representativ modellbanen er, ikke en nøyaktighet. Resultater: docs/design/evidence/cap29d-capstone-nrho/RESULTS.md
Tester
tests/capstone_nrho_horizons.rs::cr3bp_nrho_matches_capstone_mean_geometry (CAPSTONE mars 2023, 4 perilune og 5 apolune: periode 6,5004 d mot 6,5699 d (1,07 %, terskel 3 %), apolune 71 182 mot 71 215 km (0,05 %, terskel 5 %)…
ValidertCR3BP-tilstander i roterende system avbildet til månesentrert ICRF på Jord–Måne-linjen fra DE440cr3bp (to_moon_centred_icrf, from_moon_centred_icrf, to_moon_centred_icrf_de440)
Funksjon
cr3bp::to_moon_centred_icrf avbilder en udimensjonal CR3BP-tilstand i roterende Jord–Måne-system til en månesentrert ICRF-posisjon og -hastighet på den øyeblikkelige Jord–Måne-linjen (lengdeenhet Jord–Måne-avstanden, tidsenhet den inverse banerate, systemets fulle vinkelhastighet inkludert dens rate ut av planet fra Månens akselerasjon), med inversen from_moon_centred_icrf, og cr3bp::to_moon_centred_icrf_de440 leser den geosentriske Måne-tilstanden fra en DE440 SPK. Den avbilder tilstander; den gjør ikke en CR3BP-bane til en bane i en efemeridemodell
Uavhengig referanse
NAIF SPICE Toolkit (CSPICE N0067 gjennom spiceypy 8.3.0) sxform av et todelt dynamisk system (primær +X langs Månens posisjon relativt til Jorda, sekundær +Y langs dens hastighet, de440s), anvendt på den dimensjonale roterende tilstanden bygget fra SPICEs egen Måne-tilstand, av et separat program som ikke kaller noen Kshana-kode (tests/fixtures/cr3bp_to_mci_spice/, NOTICE.md). Forhåndsregistrert 2313eb1b, endret før noen kjøring i d5ef79b3 til å inkludere systemets vinkelhastighet ut av planet (uten den ville hastigheten vært opptil 8e-2 m/s feil). Bare en bibliotekskontroll av transformasjonen. Resultater: docs/design/evidence/rm34-cr3bp-to-mci/RESULTS.md
Tester
tests/cr3bp_to_mci_spice_oracle.rs::cr3bp_to_mci_matches_a_spice_two_vector_frame (72 tilfeller: 12 epoker i januar 2025 x punktene L1 og L2, to sørlige L2-haloer og én DRO-starttilstand fra JPL Three-Body…
ValidertSolsystem-kind på en JPL-kernel (planetary_kernel_path)solar_system (SolarSystemScenario::planetary_kernel_path, KernelOut); ephem_provider (KernelEphemeris)
Funksjon
solar-system-kind med planetary_kernel_path: hvert rapportert legeme der SPK-en har sin egen NAIF-kode henter sin heliosentriske J2000-posisjon og -hastighet fra kernelen gjennom motorens egen leser (etikett KERNEL), en lenke der begge ender finnes i kernelen beregnes på den, barysentre byttes aldri inn for en planet, og alle andre legemer forblir analytiske med sin egen etikett; rapporten får en kernelblokk (sti, SHA-256, legemene og lenkene hentet fra den) bare når valget er satt. Med de440s.bsp er det Merkur, Venus, Jorda og Månen
Uavhengig referanse
NAIF SPICE Toolkit (CSPICE N0067 gjennom spiceypy 8.3.0) spkezr heliosentriske tilstander på hele de440s.bsp, et separat program som ikke kaller noen Kshana-kode (tests/fixtures/solar_system_kernel/, NOTICE.md); motoren leser bit-for-bit-utsnitt av de440s. Forhåndsregistrert f8e946ea. En bibliotekskontroll av koblingen: DE440 selv og de analytiske legemene er ikke validert her. Resultater: docs/design/evidence/cap31-solar-system-kernel/RESULTS.md
Tester
tests/solar_system_kernel_oracle.rs::kernel_backed_solar_system_matches_spice (Merkur, Venus, Jorden og Månen ved 2026-01-01, 2030-06-15 og 2040-12-31: verste 3.3e-5 m og 1.0e-11 m/s mot 1 mm og 1e-6 m/s…
ValidertPorkchop på DE440-efemeridenmaneuver (porkchop_kernel, PorkchopGrid); ephem_provider (KernelEphemeris)
Funksjon
maneuver::porkchop_kernel: sveipet over oppskytingsdato x ankomstdato av avgangs-C3 (km²/s²) og ankomst-V-uendelig (km/s) med Lambert-løseren for én omdreining i prograd retning og kollinearitetsvakten på 0,5 grader, på de heliosentriske J2000-tilstandene til to hvilke som helst NAIF-legemer lest fra en JPL DE440 SPK av cratets egen leser. Én omdreining, prograd, ingen begrensninger for bærerakett eller ankomst: et sveip, ikke en oppdragsutforming
Uavhengig referanse
NAIF SPICE Toolkit (CSPICE N0067 gjennom spiceypy 8.3.0) heliosentriske tilstander på de440s.bsp og pykep 3.0.1 lambert_problem (ESA, C++-kjernen kep3, MPL-2.0), en uavhengig Lambert-løser, kjørt som et separat program som ikke kaller noen Kshana-kode (tests/fixtures/porkchop_de440/, NOTICE.md); motoren leser et bit-for-bit-utsnitt av de440s. Forhåndsregistrert 2d857fb1. En bibliotekskontroll av sveipet. Resultater: docs/design/evidence/cap20b-porkchop-de440/RESULTS.md
Tester
tests/porkchop_de440_oracle.rs::de440_porkchop_matches_spice_and_pykep (Jorden til Mars-barysenteret, 16 avganger 2026-09-01..2027-01-29 x 19 ankomster 2027-06-01..2028-02-26: 304 celler endelige på begge sider, verste C3…
ValidertOptimalisator for impulsiv overføring på DE440-efemeridenmaneuver (optimise_transfer_kernel, TransferObjective, TransferType, TransferOptimum); ephem_provider (KernelEphemeris)
Funksjon
maneuver::optimise_transfer_kernel: avgangs- og ankomstdatoene for en ballistisk overføring med to impulser og én omdreining som minimerer avgangs-C3 eller ankomst-V-uendelig innenfor Type I eller Type II, som et kontinuerlig optimum (et rutenett på 2 dager over begge vinduene, deretter 2D Nelder-Mead), på heliosentriske tilstander fra DE440 SPK. En datooptimalisator for ett ledd, ikke en oppdragsutforming: ingen valg for bærerakett, parkeringsbane, manøvrer i dypt rom eller flere omdreininger
Uavhengig referanse
En uavhengig optimalisator: NAIF SPICE Toolkit (CSPICE N0067 gjennom spiceypy 8.3.0) heliosentriske tilstander på det samme de440s-utsnittet, pykep 3.0.1 lambert_problem (ESA, MPL-2.0) og SciPy 1.18.1 Nelder-Mead, uten å kalle noen Kshana-kode. NASAs håndbok for Jorda-til-Mars (MIDAS, efemeride ikke oppgitt, datorutenett på 2 dager) er en sekundær publisert referanse og setter ikke statusen
Tester
tests/transfer_optimiser_oracle.rs::transfer_optimiser_matches_spice_pykep_scipy (Jorden til Mars-barysenteret, avganger 2026-09-15..2027-01-15 x ankomster 2027-05-01..2028-03-01, Type I/II x min C3 / min V-infinity…
ValidertLambert-løser for overføringer med flere omdreiningermaneuver (lambert_multirev, LambertSolution, LambertBranch)
Funksjon
Hver løsning av Lamberts problem med opptil tre fullstendige omdreininger (maneuver::lambert_multirev: løsningen med én omdreining, deretter venstre og høyre gren for hvert antall omdreininger, Izzo 2015), med grensehastighetene v1 og v2, for prograde og retrograde overføringer, i kanoniske og heliosentriske SI-enheter, inkludert overføringer innenfor 1 % av minste flytid for et antall omdreininger og geometrier nær 180 grader. Bare en todelslegemeløser (ingen perturbasjoner)
Uavhengig referanse
pykep 3.0.1 lambert_problem (ESA, C++-kjernen kep3, MPL-2.0), et uavhengig bibliotek, kjørt som et separat program av scripts/gen_lambert_multirev_ref.py; bare dets numeriske utdata er innsjekket. Forhåndsregistrert a75de851 (tilfellesett, terskler, utfallsregel) før noen sammenligning; referansen ble generert på nytt uavhengig og er byte-identisk. Resultater: docs/design/evidence/lambert-multirev/RESULTS.md
Tester
tests/lambert_multirev_oracle.rs::multirev_lambert_matches_pykep_on_the_preregistered_cases (382 tilfeller: 300 tilfeldige 3D, 18 nær 180 grader, 24 nær minimumstiden for M = 1..3, 40 heliosentriske; 1058 løsninger; antall og…
ValidertLambert-løser for todelslegemeoverføringmaneuver (lambert)
Funksjon
Izzo-2015 Lambert-løser for én omdreining (r1, r2, flytid → grensehastigheter) over overføringer LEO→GEO→heliosentrisk, prograde og retrograde
Uavhengig referanse
lamberthub 1.0.0 izzo2015 (J. Martínez Garrido, MIT) — en uavhengig Lambert-løser fra tredjepart. Lamberts problem for én omdreining (M=0) har en entydig løsning, så enighet mellom bibliotek og bibliotek er en ekte ekstern kontroll; stemte til <1e-4 m/s (observert ~1e-11), den samme typen validering som DOP får mot gnss_lib_py
Tester
tests/lambert_reference.rs (13 transfers vs lamberthub izzo2015; worst |Δv| 7e-12 m/s)
ValidertReferansesystemer og tidsskalaerframes, precession, nutation, cio, timescales
Funksjon
IAU 2006/2000A presesjon-nutasjon, CIO GCRS↔ITRS, tidsskalaer med skuddsekunder
Uavhengig referanse
Referansevektorer fra IAU SOFA / ERFA; Vallado AIAA 2006-6753 (0,1–4 mm)
Tester
tests/frame_reference_vectors.rs (Vallado end-to-end; SOFA/ERFA vectors)
ValidertTodelte juliandatoer og skuddsekunder på tidsveien for jordbanerjd2 (Jd2::from_utc_calendar, utc_to_tai, tai_to_utc, utc_to_ut1, tai_to_tt, earth_rotation_angle); sgp4 (Sgp4::new_at, Sgp4::propagate_at)
Funksjon
En UTC-kalenderdato og -tid til en todelt UTC-juliandato med SOFA dtf2d-konvensjonen for dager som ender med et skuddsekund (86 401 s lange, 23:59:60.x gyldig), UTC til TAI og tilbake, og UT1 fra UTC via TAI, på todelte datoer fra 1972-01-01: tidsveien som SGP4 (Sgp4::propagate_at, målt fra en todelt epoke) og den jordfaste rotasjonen IAU 2006/2000A (sgp4::teme_to_itrs_matrix_eop med den todelte jordrotasjonsvinkelen) tar
Uavhengig referanse
pyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; SOFA-algoritmene slik ERFA-prosjektet har gitt dem ut), et uavhengig bibliotek: erfa.dtf2d("UTC"), erfa.utctai og erfa.taiutc på de innsjekkede tidspunktene, gapet dannet del for del på de todelte datoene, terskel 1e-6 s fastsatt før kjøringen (forhåndsregistrert e947e69d). Verste gap 9.6e-12 s (dtf2d) og 1.9e-11 s (utctai, taiutc). Hvis hver UTC-dag regnes som 86 400 s, eller skuddagsbrøken lates være uskalert, blir testen rød. UT1 via TAI (iauUtcut1) kontrolleres av ERFA-leddet i raden for jordbanens vei. Omfang: UTC fra 1972-01-01; den tidligere UTC med drivende rate er ikke modellert
Tester
tests/jd2_sofa_time_oracle.rs (224 UTC-tidspunkter: seks rundt hvert av de 27 skuddsekundene 1972-2016, to faste, 60 seedet over 1972-2026; dtf2d, utctai og taiutc hver innenfor 1e-6 s, verste 1.9e-11 s); jd2::tests…
ValidertTodelte juliandatoer gjennom jordrotasjon på banens veijd2 (gmst82, From<TwoPartJd>, From<Jd2>); cio (gcrs_to_itrs_matrix_jd2); frames (teme_to_itrf_jd2, itrf_to_teme_jd2); orbit (Propagator::position_in_frame_jd2, own_jd2_utc); ephemeris (EphemerisScenario::two_part_jd)
Funksjon
Jordrotasjon fra en todelt UT1-juliandato på banens vei, slik at den jordfaste posisjonen beholder mikrosekundet en enkelt f64-dato taper (omtrent 3e-9 rad nær 2020): jd2::gmst82 (IAU 1982 GMST, TEME-konvensjonen, på de to delene), cio::gcrs_to_itrs_matrix_jd2 (CIO GCRS-til-ITRS-matrisen med jordrotasjonsvinkelen fra de to delene), og, bygget på dem og kontrollert internt, frames::teme_to_itrf_jd2 / itrf_to_teme_jd2, orbit::Propagator::position_in_frame_jd2 og own_jd2_utc, det valgfrie two_part_jd i efemeridescenarioet (ECEF-posisjonen, sporet på bakken og stasjonsvisningen; som standard av, uendret), og tapsfrie From-konverteringer mellom jd2::Jd2 og timescales::TwoPartJd. Presesjon-nutasjon og epoken i Cowell-kraftmodellen forblir enkel f64, der en avrunding på 40 us ligger under 1e-15 rad eller langt under feilen i den analytiske Sol-/Måne-efemeriden
Uavhengig referanse
pyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; SOFA-algoritmene slik ERFA-prosjektet har gitt dem ut), et uavhengig bibliotek: gmst82 og c2t06a på de innsjekkede todelte datoene, polbevegelse 0,1 og 0,3 buesekunder. Forhåndsregistrert b10475ee (datoer, terskler) før funksjonene ble skrevet og før den uavhengige referansen ble kjørt. De interne testene (scenariovalget, rundturen TEME/ITRF, typekonverteringene) er støttende selvkonsistens
Tester
tests/jd2_earth_rotation_erfa_oracle.rs::two_part_earth_rotation_agrees_with_erfa (40 todelte UT1/TT-datoer 1980-2050 inkludert +1, +10, +50 us-steg ved to datoer: gmst82 innenfor 1e-12 rad, verste 0; GCRS til ITRS…
ValidertSystemmatriser mot ERFA-vektorer: IAU 2006 bias-presesjon, TEME til GCRS, og CIO-kjeden med korreksjoner for himmelpolenprecession (precession_matrix); nutation (teme_to_gcrs_matrix); cio (gcrs_to_cirs_matrix_with_offsets)
Funksjon
Tre systemmatriser sammenlignet element for element eller etter rotasjonsvinkel med ERFA ved vilkårlige epoker: precession::precession_matrix (IAU 2006 bias-presesjon med Fukushima-Williams-vinkler), nutation::teme_to_gcrs_matrix (rotasjonen TEME til GCRS P^T N^T Rz(-EE) med IAU 2006-presesjon, IAU 2000B-nutasjon og jevndøgnsligningen med sine to ledende komplementære ledd) og cio::gcrs_to_cirs_matrix_with_offsets (rotasjonen GCRS til CIRS med IERS-korreksjonene for himmelpolen dX, dY lagt til modellens CIP X, Y før rotasjonen, SOFA cookbook-konvensjonen; ny). Selve modellvalgene (2000B-nutasjon på TEME-veien, serien med to komplementære ledd) er ikke validert, bare implementasjonen deres
Uavhengig referanse
pyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; SOFA-algoritmene slik ERFA-prosjektet har gitt dem ut), et uavhengig bibliotek: pmat06; numat(obl06, nut00b) med jevndøgnsligningen fra eect00 (hele den komplementære serien), sammensatt som P^T N^T Rz(-EE); xys06a deretter c2ixys(X + dX, Y + dY, s). Forhåndsregistrert 979c1e39 (epoker, korreksjoner og terskler) før den uavhengige referansen ble kjørt. Residualet på 1.1e-10 rad i TEME er den forutsagte effekten av å beholde to komplementære ledd (omtrent 3 mm ved GNSS-bane)
Tester
tests/frames_erfa_vector_oracle.rs::frame_matrices_agree_with_erfa_vectors (40 TT-epoker 1950-2100, dX og dY opptil 0,5 mas: presesjonselementer innenfor 1e-13, verste 0; TEME til GCRS innenfor 5e-10 rad, verste 1.10e-10 rad…
ValidertUTC før 1972 (æraen med drivende rate) på tidsveien med todelt juliandatotimescales (tai_minus_utc_on_date); jd2 (Jd2::from_utc_calendar, utc_to_tai, tai_to_utc)
Funksjon
UTC fra 1960-01-01 til 1971-12-31, da UTC gikk med en rateforskyvning fra TAI og ble stilt i brøkdeler av et sekund, på veien med todelt juliandato: TAI - UTC fra driftstabellen for hver periode (timescales::tai_minus_utc_on_date), UTC-kalenderdatoen til en todelt UTC-juliandato med dagslengden 86 400 s + dleap (Jd2::from_utc_calendar), UTC til TAI med dagsbrøken skalert fra UTC til SI-sekunder (jd2::utc_to_tai) og TAI tilbake til UTC (jd2::tai_to_utc), etter SOFA dtf2d, utctai og taiutc. Før 1960 regnes TAI - UTC som 0 (SOFAs verdi; UTC udefinert) og ligger utenfor påstanden. Den enkle f64-funksjonen timescales::tai_minus_utc klemmer fortsatt til 10 s før 1972 og er ikke dekket
Uavhengig referanse
pyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; SOFA-algoritmene slik ERFA-prosjektet har gitt dem ut), et uavhengig bibliotek: erfa.dtf2d("UTC"), erfa.utctai og erfa.taiutc på de innsjekkede tidspunktene, gapet dannet del for del. Forhåndsregistrert 23c40661 (tidspunkter, toleranse og kontrollsummen for 1972+) før motorendringen og før den uavhengige referansen ble kjørt. Driftstabellen er transkribert fra den samme SOFA iauDat-tabellen den uavhengige referansen bruker, så sammenligningen dekker konverteringsaritmetikken (dagslengde, skalering UTC til SI, iterasjon), ikke selve den historiske tabellen
Tester
tests/jd2_pre1972_sofa_oracle.rs::pre_1972_utc_conversions_agree_with_erfa (117 UTC-tidspunkter: fire rundt hver av de 15 startene av et TAI-UTC-uttrykk 1960-1972 og 60 seedet over 1960-1971; dtf2d, utctai og taiutc…
ValidertGLONASS kringkastet satellittklokke og propagering av kringkastet baneglonass (GlonassEphemeris::sv_clock_bias_s, position_ecef, parse_glonass_nav)
Funksjon
GLONASS kringkastet satellittklokkebias -tau_n + gamma_n (t - t_b) ved en tid lest på satellittklokken (glonass::GlonassEphemeris::sv_clock_bias_s, forskyvningen korrigert for klokkebiasen med to fastpunktsiterasjoner), og den jordfaste PZ-90-posisjonen til den kringkastede tilstandsvektoren propagert med RK4 gjennom bevegelsesligningene i GLONASS ICD innenfor +/-15 min fra referanseepoken (GlonassEphemeris::position_ecef), fra virkelige RINEX 3 GLONASS-navigasjonsposter. Ingen transformasjon PZ-90.11 til ITRF er anvendt (de stemmer på centimeternivå siden 2014; RTKLIB anvender heller ingen). Ikke koblet til noe scenarioutdata: bibliotekfunksjon
Uavhengig referanse
RTKLIB v2.4.2-p13 (T. Takasu, BSD-2-Clause, commit 71db0ffa) geph2clk og geph2pos, kompilert fra C-kildekode i en separat harnisk (xval/rtklib-glonass) som leser den samme RINEX-filen med RTKLIBs egen leser, slik at parsingen, fortegnet på -tau_n, enhetene og iterasjonen sammenlignes i tillegg til klokken og banen. Forhåndsregistrert e099c42a før funksjonen fantes og før harnisken ble bygget. Begge sider evaluerer den samme lukkede formen for klokken, så klokkesammenligningen dekker implementasjonen, ikke formelen. Baneintegratorene er forskjellige (RTKLIB tar steg på 60 s og deretter resten, Kshana like steg på høyst 60 s) og det samme gjelder konstantene (RTKLIB mu 3.9860044e14, Kshana PZ-90.11 3.986004418e14); det verste tilfellet på 1,1 mm er den forskjellen, som forutsagt før kjøringen. Omfang: den kringkastede efemeriden innenfor gyldighetsintervallet, ikke den sanne banen eller klokken (ingen sammenligning med presise produkter)
Tester
tests/glonass_broadcast_rtklib_oracle.rs::glonass_broadcast_clock_and_orbit_match_rtklib (292 tilfeller: de 4 GLONASS-postene i den virkelige IGS MGEX-kringkastingsfilen fra 2013-01-01 x 73 forskyvninger innenfor +/-900 s; klokke innenfor 1e-14…
ValidertÉn vei for jordbaner: SGP4-elementsett til GCRS og ITRS på IAU 2006/2000A-kjeden med parametere for jordorienteringsgp4 (MeanElementSet, SgpOrbit, Eop, teme_to_itrs_matrix_eop, gcrs_to_itrs_matrix_eop); jd2 (utc_to_ut1, earth_rotation_angle); nutation (teme_to_gcrs_matrix); cio (gcrs_to_cirs_matrix); frames (polar_motion_matrix)
Funksjon
Propagerings- og systemveien alle rutede kinds for jordbaner deler: et SGP4-middelelementsett med todelt UTC-epoke (sgp4::MeanElementSet, lest fra elementene i konstellasjonsutformingen med MeanElementSet::from_earth_fixed) propagert av SGP4/SDP4 til TEME (sgp4::SgpOrbit), og rotasjonene TEME -> ITRS og GCRS -> ITRS i IAU 2006/2000A-kjeden med UT1 - UTC og polbevegelse (sgp4::teme_to_itrs_matrix_eop, gcrs_to_itrs_matrix_eop, formene uten parametere teme_to_itrs_matrix og gcrs_to_itrs_matrix). TEME er den sanne ekvator ved datoen med middeljevndøgn, nådd fra GCRS gjennom IAU 2006 bias-presesjon, IAU 2000B-nutasjon og jevndøgnsligningen
Uavhengig referanse
Ledd 1: python-sgp4 2,24 (MIT-lisens; D. Vallados C++-referanse for SGP4, koden som ga verifikasjonsvektorene i AIAA 2006-6753), WGS-72, forbedret modus. Ledd 2: pyerfa 2.0.1.5 (ERFA, BSD-3-Clause, SOFA-rutinene): c2t06a med TT fra utctai/taitt og UT1 fra utcut1, og for TEME c2t06a . pnm06a^T . rz(-ee06a). Terskler fastsatt før kjøringen (forhåndsregistrert 72ea9eb0). Oppgitt: den første kjøringen feilet ledd 2 ved 2016-12-31T23:59:59,5 med ett sekunds rotasjon (UT1 tatt fra UTC-kvasijuliandatoen på en skuddsekunddag); motoren ble rettet (jd2::utc_to_ut1) og den andre kjøringen stemmer ved uendrede terskler. Hvis polbevegelsen utelates (46 feil) eller WGS-84-konstanter brukes i stedet for WGS-72 (4432 feil), blir testen rød. Denne utformingen med tre ledd erstattet en ende-til-ende-sammenligning med Orekit som feilet på Orekits SDP4 ved e = 0 og på dens IERS 1996 TEME (funnet forblir festet i tests/leo_polar_coverage_full_claim_orekit_oracle.rs)
Tester
tests/earth_orbit_path_sgp4_erfa_oracle.rs (ledd 1: 4432 TEME-posisjoner for de 232 innsjekkede elementsettene mot python-sgp4 2,24, verste 6.1e-8 m, terskel 1 cm; ledd 2: 108 tidspunkter, 23 av dem med jordorientering…
ValidertAvveining ved utforming av avstandsmålingskodernavsignal (CodeFamily)
Funksjon
Grenser for sidelober og krysskorrelasjon for m-sekvens/Gold, lengde↔flertydighet
Uavhengig referanse
Publisert GPS C/A Gold-krysskorrelasjon (−23,9 dB); Gold-grensen fra 1967
Tester
navsignal::code_tests (GPS C/A Gold ≈ −23.9 dB; φ(1023)/10 = 60)
ValidertGNSS-geometri / presisjonsfortynning (DOP)orbit (dop)
Funksjon
GDOP/PDOP/HDOP/VDOP/TDOP fra siktlinjegeometri via Q=(HᵀH)⁻¹ med en lokal ENU-oppdeling
Uavhengig referanse
gnss_lib_py 1.0.4 (Stanford NAV Lab) DOP — uavhengig bibliotek, stemmer til 1e-6 relativt
Tester
tests/dop_reference.rs (8 geometries, well-conditioned → near-singular)
ModellertPosisjonsfeil fra geometri: RMS-feil = sigma_UERE x DOP for motorens minstekvadratløsningdop_error_mc (run_geometry, check, TOLERANCES); dop_error_ci (run, GEOMETRIES); pvt (solve_spp); orbit (dop, dop_cofactor)
Funksjon
dop_error_mc::run_geometry og check: en seedet Monte Carlo (N = 20 000 epoker per geometri, sigma = 1,5 m, ChaCha8-seed 36 + i) av motorens egen iterte minstekvadratløsning (pvt::solve_spp, enhetsvekter, løst fra den sanne posisjonen) på de 8 geometriene i tests/fixtures/dop/dop_reference.csv, som sammenligner varianser av feil mot øst, nord, opp og klokke, RMS for H/V/P, korrelasjonen øst-nord, middelfeilene og andelen innenfor den horisontale ellipsen på 95 % med sigma^2 Q, der Q er kovariansfaktoren i orbit::dop-kjernen (orbit::dop_cofactor, den samme aritmetikken) på den samme geometrien
Uavhengig referanse
Intern konsistens mot en lukket form: under den lineære gaussiske modellen er minstekvadratkovariansen sigma^2 (H^T H)^-1 (Kaplan og Hegarty (red.), Understanding GPS: Principles and Applications, 2. utg., Artech House, 2006, kap. 7). Metode og toleranser fra designnotatet for geometri i 0,36, avsnitt 5,2, fastsatt i en forhåndsregistreringscommit før første kjøring: hver varians innenfor 5 % (5 standardfeil for en utvalgsvarians ved N = 20 000), hver RMS innenfor 2,5 %, korrelasjonen øst-nord innenfor 0,035 (5/sqrt(N)), hvert middel innenfor 5 standardfeil, andelen i ellipsen på 95 % innenfor 0,95 +/- 0,0077 (5 binomiske standardfeil); negative kontroller (PDOP doblet; feil som vokser som 1/sin(elevasjon) mot den uvektede Q) må feile. HVORDAN DEN SAMMENSETTES: Q er kovariansfaktoren i orbit::dop-kjernen, VALIDATED mot gnss_lib_py 1.0.4 på de samme 8 geometriene i tests/dop_reference.rs (raden «GNSS-geometri / presisjonsfortynning»); denne raden legger til steget fra disse faktorene til meter gjennom motorens løser og låner ikke den radens status. HVORFOR MODELLED: ingen eksternt datasett er involvert; samsvar viser at estimatoren og støyen realiserer sigma x DOP under lærebokmodellen, ikke at noen mottakers feil er lik UERE x DOP, og sigma_UERE er en inndata
Tester
tests/uere_dop_monte_carlo.rs (position_error_is_sigma_times_dop_on_the_gnss_lib_py_geometries: alle 104 kontroller består ved første kjøring etter forhåndsregistrering e50c88d2, verste varians 3,2 %, RMS 1,6 %, korrelasjon 0,012…
ModellertGeometribevisst tillitsklassifisering: satellittgeometri ved siden av tillitsscore for mottakeren og en klasse på hvert fradragreceiver_trust (geometry: GeometryTracker, geometry_ratio, sky_ratio, geometry_points, GeometryLabel; score: DeductionClass, score_with; monitors; live); telemetry (sample, prometheus, syslog, otlp)
Funksjon
receiver_trust::geometry: satellittgeometri per epoke (god, degradert med årsakene few-satellites/high-pdop/high-hdop/sky-blocked, eller ukjent når loggen ikke gir GSV, NAV-SAT eller GSA) utledet fra de rapporterte elevasjonene og azimutene gjennom orbit::dop eller hentet fra GSA, med en etikett som alltid rapporteres og aldri skåres (god, middels, dårlig, ukjent) og HDOP, PDOP, VDOP, antall satellitter og signaltap i ord; en geometrimonitor i skåren for fartøy som ikke trekker noe med mindre geometrien er dårlig (forholdet max(hdop/4, pdop/6, 5/n_used) over 1), og deretter trapper opp til et tak på 15 poeng ved 1,5 som geometri alene ikke kan ta under det degraderte båndet (tak, sluttpunkt for trappen og gulv i [geometry]; ingen alarm); en klasse på hvert fradrag (geometri, miljø, inkonsistens) der tap av lås til satellitter under 15 grader klassifiseres som geometri, satellitter i sikte men ikke sporet klassifiseres som miljø, og et fradrag for dårlig geometri der den oppgitte HDOP ligger utenfor max(1,0, 25 % av den utledede HDOP) fra den oppgitte himmelen klassifiseres som inkonsistens
Uavhengig referanse
Intern konsistens: klassifiseringen er kontrollert mot reglene den oppgir og mot håndutledede forholdstall på syntetiske redigeringer av den innsjekkede demologgen, og no-change-pinnene holder utdataene fra 0.35.0: ingen skåre endres med mindre geometrien er dårlig; etiketten rapporteres alltid. HVORFOR MODELLED: tersklene er valgt, ikke tilpasset (opphav i hver kjørings geometry_model; tallene fra IEC 61108-1 og GPS SPS som sitert, skal kontrolleres mot standardenes tekst), og det finnes ikke noe eksternt merket datasett over naturlig geometridegradering mot angrep å validere klassifiseringen mot. Den utledede DOP gjenbruker orbit::dop-kjernen, VALIDATED mot gnss_lib_py, og denne raden låner ikke dens status. En klasse av geometri er en påstand om himmelen, ikke et funn om at intet angrep skjedde
Tester
tests/natural_degradation_trust.rs (a_stated_skyline_reads_the_fjord_as_geometry: på den syntetiske fjordpassasjen i scenarios/training/fjord-natural-degradation.toml trekkes de samme 624 epokene fra med og uten…
ValidertKringkastet ionosfæremodell (Klobuchar, IS-GPS-200)gnss_sim (klobuchar_delay_m)
Funksjon
Klobuchar enkeltfrekvent L1 skrå ionosfærisk gruppeforsinkelse fra de åtte kringkastede α/β-koeffisientene
Uavhengig referanse
RTKLIB ionmodel (tomojitakasu/RTKLIB, src/rtkcmn.c) — uavhengig referanseimplementasjon kompilert fra kildekode; stemte til < 1e-4 m
Tester
tests/klobuchar_reference.rs (10 cases across elevation/azimuth/local-time, two coefficient sets)
ValidertStatistisk kjerne for RAIM/ARAIM-integritet (χ²- / ikke-sentral χ²- / normalfordelinger)raim (chi2_cdf, chi2_quantile, noncentral_chi2_cdf, normal_cdf, normal_quantile, pbias)
Funksjon
Den distribusjonelle kjernen hvert beskyttelsesnivå hviler på: terskelen for feildeteksjon i et enkelt øyeblikk χ²₁₋ₚfₐ(dof), ikke-sentraliteten ved uteblitt deteksjon pbias=√λ og multiplikatorene K_fa/K_md/K_V for løsningsseparasjon
Uavhengig referanse
SciPy 1.17.0 (scipy.stats.chi2/.norm/.ncx2 + optimize.brentq) — uavhengig bibliotek (Cephes/Boost), en annen algoritme enn Kshanas serie for ufullstendig gamma; stemte til ≤1e-6 rel. Bare kjernen. *Allokeringen* av ARAIM MHSS P_HMI-budsjettet er ikke lenger uten en publisert numerisk uavhengig referanse — det gjennomregnede eksempelet fra WG-C ARAIM Technical Subgroup støtter nå den separate raden «ARAIM MHSS-beskyttelsesnivåer mot publiserte referansevektorer», stemt ved referansens egen TOL_PL = 5e-2 m — så denne radens omfang er den statistiske kjernen og den raden bærer allokeringen (se docs/ARAIM_REFERENCE.md)
Tester
tests/raim_reference.rs (171 cases: χ² CDF/quantile, normal CDF/quantile, non-central χ² CDF, pbias across the P_fa/P_md/redundancy ranges)
ValidertSBAS-beskyttelsesnivå (DO-229E vektet LS HPL/VPL)sbas (sbas_protection_level)
Funksjon
DO-229E vedlegg J beskyttelsesnivåer med vektede minste kvadrater: D=(GᵀWG)⁻¹ fra elevasjon/azimut og feilbudsjett per satellitt, hovedaksen til den horisontale feilellipsen og vertikal σ, skalert med de publiserte K-faktorene
Uavhengig referanse
RTKLIB SBAS-PL-fork — zsiki/rtklib_ws waasprotlevels() (Siki & Takács 2017, «DO-229D Appendix J»), kjørt av rnx2rtkp -ws på virkelige EGNOS GEO-PRN120-meldinger + virkelig BUTE/Budapest RINEX; uavhengig implementasjon fra tredjepart, HPL stemte til < 2e-3 m. gLAB v6.0.0 (core/filter.c) bekreftet identisk konvensjon. Begge uavhengige referanser runder K_V→5,33 mot Kshanas eksakte Φ⁻¹(1−5e-8)=5,3267 (~0,06 %), så den vertikale kontrolleres som den K-faktorfrie d_U
Tester
tests/sbas_reference.rs (6 real-EGNOS epochs: HPL matched directly, vertical d_U checked K-factor-free)
ValidertEvalueringsmål for ML-detektorer (ROC/AUC/forvekslingsmatrise/Pfa-Pmd)impairment_eval (auc, confusion_at, roc_curve)
Funksjon
AUC (Mann-Whitney, likhet ½), forvekslingsmatrise ved terskel, P_d/P_md/P_fa/presisjon/nøyaktighet/F1
Uavhengig referanse
scikit-learn 1.9.0 (Pedregosa et al., JMLR 2011) — uavhengig bibliotek, eksakt samsvar
Tester
tests/eval_metrics_reference.rs (5 datasets, 24 thresholds; exact counts + <1e-9)
ValidertSkåring av avviksdeteksjon på virkelig romfartøytelemetriimpairment_eval, eval_stats
Funksjon
ROC AUC + bootstrap-KI som skiller virkelige merkede avvik; gjennomsiktig detektor (gjenskaper etikettene)
Uavhengig referanse
scikit-learn roc_auc_score på OPSSAT-AD-testdelingen (Ruszczak et al. 2025, CC BY 4,0) — virkelig OPS-SAT-telemetri
Tester
tests/opssat_ad_reference.rs (virkelig ESA OPS-SAT, AUC gjenskaper scikit-learn til 1e-9); tests/ai_ml_rf_impairment_detection_evaluation_reference.rs (122 tilfeller på den virkelige OPSSAT-AD-testdelingen: fullt driftspunkt…
ValidertNumeriske kjerner for kvanteavveining (NNLS / χ²-bånd / van-Loan Q)quantum_trade (qparams_from_adev_curve), detection (chi2_inv_cdf), clock_state (ClockState3)
Funksjon
NNLS-tilpasning av målt ADEV, konsistensbånd χ² for NEES/NIS og klokkens diskrete prosesstøykovarians etter van Loan (holdover-glidning) — avveiningsmotorens beregningsmessige ryggrad
Uavhengig referanse
scipy 1.17.1 — optimize.nnls / stats.chi2.ppf / linalg.expm; NNLS+Q eksakt, χ² <5e-4 ved driftsfrihetsgrader. Bare kjerner — tall for enhetsytelse forblir modellert (neste rad)
Tester
tests/scipy_reference.rs (NNLS; χ² at operating dof ≥ 48; van-Loan Q)
ValidertGeomagnetisk referansefelt (IGRF-14-syntese)igrf, igrf_data
Funksjon
Kulefunksjonssyntese av IGRF-14-hovedfeltet — komponentene X/Y/Z/F, deklinasjon og inklinasjon — som mater laget for alt-PNT med magnetiske anomalier
Uavhengig referanse
ppigrf 2.1.0 (K. M. Laundal, MIT) — IAGA-VMODs rene Python-referanseimplementasjon av IGRF som leverer de offisielle IGRF14.shc-koeffisientene (IAGA 14. generasjon, Zenodo 10.5281/zenodo.14012302); en uavhengig kodebase fra tredjepart som beregner det entydig definerte IGRF-14-feltet, stemt over et globalt rutenett
Tester
tests/alternative_complementary_pnt_reference.rs (2520 global points × altitudes vs ppigrf @ epoch 2025.0; worst |ΔXYZF| 3.9e-4 nT, |ΔD| 2.8e-6°, |ΔI| 3.6e-7°)
ValidertDeteksjonsstatistikk — gaussisk AUC og minste detekterbare feilquantum_faults, eval_stats, detection
Funksjon
Analytisk binormal ROC AUC = Φ(μ/(σ√2)) og den minste detekterbare feilen σ·(Φ⁻¹(1−P_fa)+Φ⁻¹(P_d)) som ligger under kvantefeil- og avviksdetektorene
Uavhengig referanse
scipy 1,17 (Cephes ndtr/ndtri) + scikit-learn roc_auc_score (Pedregosa et al., JMLR 2011), begge BSD-3-Clause — uavhengige biblioteker som beregner de samme entydig definerte størrelsene for gaussisk hale / AUC, stemt til A&S-erf-gulvet (~7e-8). Fordelen for kvante mot klassisk som er bygget oppå forblir MODELLED
Tester
tests/quantum_faults_reference.rs (109 cases vs scipy 1.17 norm.cdf/ppf + scikit-learn roc_auc_score; worst |Δ| AUC 6.9e-8, min-detectable-fault 1.3e-8, empirical-AUC 1.1e-16)
ValidertKjerne for rangstatistikk (Kendall-τ / Dirichlet / persentil)resilience::stats
Funksjon
Kjerner for rangkorrelasjon og resampling under studien av beslutningsustabilitet for resiliens: Kendall τ-b, Dirichlet-middel, konkurranserangering og persentil-konfidensintervaller
Uavhengig referanse
scipy 1,18 (stats.kendalltau variant='b', rankdata) + numpy.percentile (BSD-3-Clause) — uavhengige implementasjoner (merge-sort τ) av de entydig definerte rangstatistikkene, stemt til 1e-12. Studien av beslutningsustabilitet bygget på disse kjernene forblir MODELLED
Tester
tests/resilience_score_decision_instability_reference.rs (124 tilfeller mot scipy 1,18 / numpy 2,4: 61 Kendall τ-b til 2e-16, rangering eksakt, Dirichlet-gjennomsnitt + persentil-KI til 1e-12)
ValidertKjerne for utledning av prioriteter i MCDA (AHP-egenvektor / konsistensratio)mcda::ahp
Funksjon
Analytic Hierarchy Process, prioritetsvekter = normalisert hovedegenvektor (Perron) av en resiprok matrise for parvise sammenligninger ved potensiterasjon, med Saatys Consistency Index / Consistency Ratio og aksepteringsporten CR<0,10
Uavhengig referanse
Saatys (1980) kanoniske tabell for Random Index (RI(5)=1,12) gjenskapt eksakt + SciPy/LAPACK scipy.linalg.eig (BSD-3-Clause) som en uavhengig egenløser som beregner den samme entydig definerte Perron-egenvektoren/egenverdien, stemt til <1e-9. Beslutningslaget for Pareto / sensitivitet / MAUT bygget på denne kjernen forblir MODELLED (aggregatorene WSM/WPM/TOPSIS/VIKOR/PROMETHEE/ELECTRE er validert eksternt hver for seg — se radene nedenfor)
Tester
tests/mcda_ahp_reference.rs (Saaty 1980 tabell for Random Index n=1..10 EKSAKT; prioritetsvektor + λ_max + CR mot SciPy/LAPACK eig på en konsistent 3×3 og inkonsistent 3×3 / 4×4, samsvarte til <1e-9)
ValidertKjerner for vektet aggregering i MCDA (WSM / WPM)mcda::wsm, mcda::wpm
Funksjon
Weighted Sum Model (min–maks-normalisert additivt aggregat + rangering) og Weighted Product Model (sumnormalisert, resiprok for kostnad, multiplikativt aggregat) — de to skårerne for verdiaggregering i avveiningsstudier
Uavhengig referanse
pymcdm (methods.WSM + normalizations.minmax_normalization; methods.WPM + normalizations.sum_normalization) — et uavhengig, mye brukt Python-bibliotek for MCDA fra tredjepart som beregner de samme entydig definerte vektede aggregatene; stemt til <1e-9. Kan genereres på nytt frakoblet via tests/fixtures/mcda_wsm/ og tests/fixtures/mcda_wpm/. Garbage-in-garbage-out på inndataene; sensitivitets-/robusthetslaget forblir MODELLED
Tester
tests/mcda_wsm_reference.rs (WSM-scorer + rangering) og tests/mcda_wpm_reference.rs (WPM-scorer + rangering), hver mot pymcdm til <1e-9 på en fast 4×3 nytte-/kostnadsbeslutningsmatrise
ValidertMCDA-rangering etter avstand til ideal (TOPSIS)mcda::topsis
Funksjon
Technique for Order of Preference by Similarity to Ideal Solution — min–maks-normalisering, vektede positive/negative idealløsninger, relativ nærhet Cᵢ = d⁻/(d⁺+d⁻) og rangering
Uavhengig referanse
pymcdm methods.TOPSIS + normalizations.minmax_normalization — et uavhengig Python-bibliotek for MCDA fra tredjepart som beregner de samme entydig definerte nærhetskoeffisientene; stemt til <1e-9. Kan genereres på nytt frakoblet via tests/fixtures/mcda_topsis/generate_topsis_reference.py
Tester
tests/mcda_topsis_reference.rs (nærhetskoeffisienter + rangering mot pymcdm til <1e-9 på en fast 4×3 nytte-/kostnadsmatrise)
ValidertMCDA-kompromissrangering (VIKOR)mcda::vikor
Funksjon
VlseKriterijumska Optimizacija — gruppenytte Sᵢ, individuell anger Rᵢ og kompromissindeksen Qᵢ ved strategivekt v=0,5, med rangeringen der lavere er bedre
Uavhengig referanse
pymcdm methods.VIKOR(v=0,5) — et uavhengig MCDA-bibliotek fra tredjepart som beregner den samme entydig definerte, områdenormaliserte S/R/Q-aggregeringen; stemmer overens til <1e-9. Kan regenereres offline via tests/fixtures/mcda_vikor/generate_vikor_reference.py
Tester
tests/mcda_vikor_reference.rs (Q-indeks + rangering mot pymcdm til <1e-9 på en fast 4×3 nytte-/kostnadsmatrise)
ValidertMCDA-rangering etter nettostrøm i overrangering (PROMETHEE II)mcda::promethee
Funksjon
Preference Ranking Organization METHod — parvis preferanseindeks med de seks standardformene for generalisert kriterium, positive og negative overrangeringsstrømmer og den fullstendige rangeringen etter nettostrøm (vanlig kriterium validert)
Uavhengig referanse
pymcdm methods.PROMETHEE_II('usual') — et uavhengig MCDA-bibliotek fra tredjepart som beregner den samme entydig definerte nettostrømmen i overrangering; stemmer overens til <1e-9. Kan regenereres offline via tests/fixtures/mcda_promethee/generate_promethee_reference.py. Preferanseformene med terskler (q/p/σ) reduseres til den samme algebraen for generalisert kriterium og forblir egenskapskontrollert
Tester
tests/mcda_promethee_reference.rs (netto overrangeringsflyt + rangering, vanlig kriterium, mot pymcdm til <1e-9 på en fast 4×3 nytte-/kostnadsmatrise)
ValidertMCDA-valgkjerne for overrangering (ELECTRE I)mcda::electre
Funksjon
ELimination Et Choix Traduisant la REalité — konkordans- og diskordansmatriser, dominansrelasjonen med konkordans og uten veto, og valgkjernen for overrangering (konvensjon med bare nyttekriterier, sumnormaliserte vekter og én felles global skala)
Uavhengig referanse
pyDecision algorithm.electre_i (Valdecy Pereira) — et uavhengig flerkriteriebeslutningsbibliotek fra tredjepart som beregner den samme entydig definerte konkordansen, diskordansen, dominansen og kjernen; stemmer overens element for element til <1e-9. Kan regenereres offline via tests/fixtures/mcda_electre/generate_electre_reference.py. Valgene av ĉ/d̂-terskler er analytikerens inndata (sensitiviteten forblir MODELLED)
Tester
tests/mcda_electre_reference.rs (konkordans-, diskordans- og dominansmatriser element for element + kjerne-/dominert sett mot pyDecision til <1e-9 på et fast 4×3 datasett med bare nytte)
ValidertMCDA-aggregeringskjerner (WASPAS / MOORA)mcda::waspas, mcda::moora
Funksjon
Weighted Aggregated Sum Product ASSessment (lineært normalisert konveks blanding λ·WSM+(1−λ)·WPM ved λ=0,5) og MOORA-forholdssystemet (vektnormalisert vektet nyttesum minus vektet kostnadssum) — den stabilitetsherdede verdiblandingen og den fortegnsbærende scoreren for forholdssystemet
Uavhengig referanse
pymcdm (methods.WASPAS + normalizations.linear_normalization, l=0,5; methods.MOORA-forholdssystem, vektornormalisering) — et uavhengig, mye brukt Python-bibliotek for MCDA fra tredjepart som beregner de samme entydig definerte aggregatene; stemmer overens til <1e-9. Kan regenereres offline via tests/fixtures/mcda_waspas/ og tests/fixtures/mcda_moora/. Søppel inn gir søppel ut for inndataene; sensitivitets- og robusthetslaget forblir MODELLED
Tester
tests/mcda_waspas_reference.rs (WASPAS-preferanser + rangering) og tests/mcda_moora_reference.rs (MOORA-scorer + rangering), hver mot pymcdm til <1e-9 på en fast 4×3 nytte-/kostnadsbeslutningsmatrise
ValidertMCDA-proporsjonal rangering (COPRAS)mcda::copras
Funksjon
COmplex PRoportional ASsessment — kolonnesumnormalisert nyttesignifikans S⁺ pluss leddet for invers kostnadssignifikans, den relative signifikansen Q og nyttegraden U = Q/max Q (beste alternativ = 1)
Uavhengig referanse
pyDecision algorithm.copras_method (Valdecy Pereira) — et uavhengig MCDA-bibliotek fra tredjepart som beregner den samme entydig definerte relative signifikansen og nytten i COPRAS. pyDecision brukes bevisst: COPRAS i pymcdm 1.4.0 kollapser algebraisk til det trivielle S⁺+S⁻ og er ikke en tro referanse, mens pyDecision implementerer den kanoniske Q = S⁺+(min(S⁻)·ΣS⁻)/(S⁻·Σ(min(S⁻)/S⁻)). Stemmer overens til <1e-9; kan regenereres offline via tests/fixtures/mcda_copras/generate_copras_reference.py
Tester
tests/mcda_copras_reference.rs (nyttegrader + rangering mot pyDecision til <1e-9 på en fast 4×3 nytte-/kostnadsmatrise)
ValidertLatens for endringsdeteksjon og ARL med CUSUMtpl (Cusum), security
Funksjon
Verste-tilfelle deteksjonslatens (⌊h/(z−k)⌋+1) og gjennomsnittlig kjørelengde utenfor kontroll for tabulær CUSUM-detektor, brukt av beskyttelsesnivået for tidssynkronisering og av spoofing-monitorene
Uavhengig referanse
Publisert ARL for tabulær CUSUM: Siegmunds (1985) approksimasjon med brownsk bevegelse (Hawkins & Olwell 1998, lign. 3,7) krysskontrollert mot ARL-tabellene i Montgomery, Introduction to Statistical Quality Control (Wiley) for k=½, h∈{4 5}; deterministisk latens stemmer eksakt overens med en førstepassasje-referanse. Den sammensatte TPL-grensen forblir MODELLED
Tester
tests/timing_protection_level_under_spoofing_reference.rs (16 tilfeller med deterministisk forsinkelse EKSAKT mot en førstepassasjereferanse; 8 ARL₁-tilfeller, Monte Carlo @60k forsøk mot Siegmund-tilnærmingen + publisert Montgomery…
ValidertKlokkens holdover: coast-varians og terskelinversjonholdover (coast_phase_variance, holdover_seconds)
Funksjon
Vekst i coast-fasefeilens varians q_wf·t + q_rw·t³/3 + q_drift·t⁵/20 og dens monotone inversjon til en holdover-terskel for tidssynkroniseringsfeil
Uavhengig referanse
scipy 1,18 (BSD-3-Clause): linalg.expm som beregner den diskrete prosessstøyen Q₀₀ = ∫₀ᵗ ΦQcΦᵀds etter Van-Loan 1978 via Padé-skalering og kvadrering på den utvidede matrisen 6×6 — en uavhengig vei som aldri ser kshanas polynomkoeffisienter; pluss optimize.brentq som inverterer den samme monotone kurven mot kshanas halvering. Tallene for rødstøygulvet per klasse (ClockClass) forblir MODELLED
Tester
tests/gnss_denied_clock_holdover_reference.rs (27 cases vs scipy 1.18: 12 coast-variance vs linalg.expm Van-Loan Q₀₀ worst rel 1.1e-15; 7 holdover inversions vs optimize.brentq worst rel 1.5e-16)
ValidertKjerne for invers Simpson-diversitetresilience::diversity (effective_diversity)
Funksjon
Effektiv arkitektonisk diversitet = invers Simpson / Hill-orden-2-tallet 1/Σpᵢ² over kildekvaliteter per uavhengighetsgruppe (diversitetsleddet i resiliensscoren)
Uavhengig referanse
scikit-bio 0.7.3 skbio.diversity.alpha.inv_simpson (McDonald et al., BSD-3-Clause) — et uavhengig bibliotek fra tredjepart som beregner den entydig definerte inverse Simpson-indeksen; gjengitt byte for byte. Rammeverket for scoring i DHS-RPCF (vekter og nivåer) som er bygget oppå, forblir MODELLED
Tester
tests/resilience_diversity_reference.rs (17 cases: 14 vs scikit-bio inv_simpson + 3 pinned-zero boundary; worst |Δ| 0.0)
ValidertAsimutavhengig horisontmaske: synlig mengde, asimut og elevasjon, og DOP under maskenskyline (Skyline::cut_deg, Skyline::visible); frames (look_angles, is_visible_skyline); orbit (UserPath, sky_view, cofactor_from_los); geometry (sky_geometry)
Funksjon
skyline + frames::look_angles + geometry::sky_geometry: den geodetiske (WGS-84) asimuten og elevasjonen til en satellitt fra et bakkested, en tabell med asimut-/elevasjonsmaske lineært interpolert i asimut med omslag ved 360 deg, den synlige mengden el >= max(mask_deg, mask(az)), og felles-klokke-DOP og ENU-og-klokke-kofaktormatrisen for denne mengden (kjernen bak orbit::dop). Slik avgjør seksjonen [skyline] synlighet i kjøringstypene gnss-sim, jamming, leo-pvt, leo-pass og nmea-scenario og, med bakkestedet user_site, i orbit og integrity
Uavhengig referanse
Orekit 12,2 (Apache-2.0): en TopocentricFrame på en WGS-84 OneAxisEllipsoid for synsvinklene og en ElevationMask per tabell, kjørt av xval/orekit-skyline/OrekitSkyline.java på innsjekkede jordfaste tilstander (propageringen sammenlignes ikke), med gnss_lib_py 1.0.4 (hjulets metadata MIT) get_dop for DOP og ENU-og-klokke-DOP-matrisen for mengdene Orekit finner synlige. Forhåndsregistrert (xval/orekit-skyline/PREREGISTRATION.md, commit e4b9d912) før noen av de uavhengige referansene ble kjørt på sammenligningsdataene; Orekits lineære interpolasjon med omslag ble bekreftet på forhånd med en syntetisk probe. Omfang: tabellmasker, geodetiske synsvinkler, den maskerte synlige mengden og dens felles-klokke-DOP og kofaktor. IKKE kontrollert her: kløft-, sektor- og terrengreduksjonene og forhåndsinnstillingene (deres tabeller med 360 punkter inngikk som inndata; radene 'Gatekløft-, sektor- og terrengreduksjoner til en tabell' og 'Horisont-forhåndsinnstillinger'), klokketilstandene per system og feilellipsen (raden 'Horisontal feilellipse og kofaktor per system fra geometrikovariansen'), GMST-rotasjonen av bakkestedet user_site i orbit/integrity og datering av hver propagator til ett enkelt tidspunkt (Orekit får jordfaste tilstander), og enhver reell hindring (bare siktlinje)
Tester
tests/skyline_orekit_oracle.rs (skyline_masks_agree_with_orekit_and_gnss_lib_py_as_pre_registered: 1173 siktevinkler på seks steder og fire epoker, seks maskertabeller, 142 synlige sett; verste |d el| 1.3e-13 grader og |d az|…
ModellertGatekløft-, sektor- og terrengreduksjoner til en tabellskyline (Canyon::cut_deg, Sector::contains, TerrainPoint::elevation_deg, reduce_terrain, SkylineCfg::build)
Funksjon
skyline: gatekløften i lukket form (kuttet atan((h - a) / d) med d = (w/2) / abs(sin(az - s)), åpne ender for en endelig lengde), skarpkantede sektorer med klokken med omslag, og terrengpunkter redusert til en tabell med krumningsfallet d^2/(2 * 4/3 R); horisonten er deres punktvise maksimum sammen med en eventuell tabell
Uavhengig referanse
Internt: de lukkede formene kontrolleres mot håndberegnede verdier (veggtoppenes elevasjoner for en oppgitt gate, betingelsen for åpen ende, krumningsfallet for et oppgitt punkt). Ingen uavhengig ekstern referanse: utformingsnotatet avgrenser disse reduksjonene som MODELLED, og Orekits ElevationMask tar en tabell, så sammenligningen i raden 'Asimutavhengig horisontmaske: synlig mengde, asimut og elevasjon, og DOP under masken' leser deres tabeller med 360 punkter som inndata og kontrollerer dem ikke
Tester
skyline::tests (canyon_matches_hand_computed_wall_elevations; terrain_takes_the_curvature_drop; sectors_have_sharp_edges_and_wrap; a_preset_is_overridden_or_added_to_field_by_field; malformed_sections_are_refused)
ModellertHorisont-forhåndsinnstillinger (bygate, havneinnseiling, fjord, containerterminal)skyline (PRESETS, preset, preset_list)
Funksjon
skyline::PRESETS: fire REPRESENTATIVE geometrier med utformingsnotatets oppgitte dimensjoner og en opphavslinje hver: city-street (en kløft, gate 0 deg, 20 m mellom 30 m høye vegger, antenne 1,5 m), harbour-approach (sektorer: åpen mot sjøen over 180 deg, kaibygninger 8 deg over 90 deg, moloen 3 deg), fjord (terreng: vegger 600 m over antennen i 1,5 km avstand på hver side av en nord-sør-gående kanal, krumningsfall anvendt), container-terminal (sektorer: stabler 12 deg over den landvendte halvdelen, kranarmer 35 deg og 25 deg over to smale sektorer); kan overstyres felt for felt
Uavhengig referanse
Ingen: valgte og oppgitte dimensjoner, ikke en oppmåling av noen gate, havn, fjord eller terminal (gatens sideforhold ligger innenfor 0.5-2-båndet hos Oke (1988); fjorden er av størrelsesorden vestnorske fjorder; stablene bruker ISO 668-høyden for high-cube). Testen kontrollerer forhåndsinnstillingene mot deres egne oppgitte dimensjoner, en transkripsjonskontroll, som valideringsregelen ikke teller
Tester
skyline::tests (presets_carry_the_note_dimensions_and_provenance)
ValidertHorisontal feilellipse og kofaktor per system fra geometrikovariansengeometry (sky_geometry, ellipse); orbit (cofactor_from_los)
Funksjon
geometry::sky_geometry: ENU-og-klokke-kofaktoren (H^T H)^-1 med én mottakerklokke felles eller én per system (kjernen orbit::cofactor_from_los), og den horisontale feilellipsen fra dens øst-nord-blokk (halvakser k sigma sqrt(lambda), k = sqrt(-2 ln(1 - p)), hovedaksens asimut fra nord)
Uavhengig referanse
numpy 2.5.4 (BSD-3-Clause), xval/numpy-ellipse/ellipse.py: numpy.linalg.inv av G^T G og numpy.linalg.eigh av dens horisontale blokk på de innsjekkede inndataene, et uavhengig numerisk bibliotek som utfører inversjonen og egenverdidekomposisjonen med egne algoritmer (standard P2). Forhåndsregistrert i xval/numpy-ellipse/PREREGISTRATION.md (commit 0bbeeaee) før kjøringen; driverens utdataformatering ble rettet én gang etter forhåndsregistreringen (en numpy-skalar skrevet som np.float64(...)), uten endring i protokollen eller toleransene. Det validerte kravet er lineær algebra på disse inndataene; den gaussiske feilmodellen og UERE er oppgitte inndata, ikke en målt nøyaktighet eller en integritetsgrense
Tester
tests/ellipse_numpy_oracle.rs (ellipse_and_cofactor_agree_with_numpy_as_pre_registered: 270 tilfeller, de 142 innsjekkede synlige settene fra skyline-sammenligningen under én felles klokke og under én klokke per system; verste…
ModellertHimmelgeometrifunksjoner: synlighet, DOP, kovarians, feilellipse, Monte Carlo-skygeometry; orbit (cofactor_from_los, dop_cov, dop); surface (sky_geometry, sky_monte_carlo, skyline_presets, skyline_profile, skyplot_svg)
Funksjon
geometry (sky_geometry, sky_monte_carlo, skyline_presets, skyline_profile, skyplot_svg; CLI kshana sky og kshana skyline, Python- og WASM-funksjoner med samme navn, MCP sky_geometry): fra et sted, et tidspunkt og konstellasjonsforhåndsinnstillinger (eller satellitter som asimut/elevasjon eller ECEF) de synlige og maskerte satellittene under en horisont, GDOP/PDOP/HDOP/VDOP/TDOP, enhetsvarians-kofaktoren (H^T H)^-1 og kovariansen i øst-nord-opp med én mottakerklokke per system eller én felles, den horisontale feilellipsen (halvakser k sigma sqrt(lambda), k = sqrt(-2 ln(1 - p)), orientering 0,5 atan2(2 Q_EN, Q_NN - Q_EE) fra nord), og n seedede minstekvadraters feil under uavhengige gaussiske avstandsfeil med deres empiriske kovarians, RMS og 95 % omslutning. Kofaktoren er orbit::cofactor_from_los, den ene kjernen bak orbit::dop og orbit::dop_cov (dop er en reduksjon av dop_cov): ingen andre DOP-implementasjon
Uavhengig referanse
DOP-faktorene med én klokke hviler på kjernen som er validert mot gnss_lib_py 1.0.4 (raden 'GNSS-geometri / presisjonsfortynning (DOP)'); denne radens egne kontroller er interne: sky_geometry gjengir orbit::dop og dop_cov på samme geometri, ellipsen gjengir en analytisk 2x2-egenverdidekomposisjon, ECEF- og asimut-/elevasjonsinndata stemmer overens, og den seedede skyens RMS og 95 % omslutning stemmer overens med geometrien. ENU-kovariansen med én klokke per system og ellipsen er VALIDATED i raden 'Horisontal feilellipse og kofaktor per system fra geometrikovariansen' (numpy, P2); det som forblir MODELLED her er sammensetningen: propageringen fra forhåndsinnstilling til en representativ himmel, Monte Carlo-skyen (kontrollert mot geometrien den trekker fra, en selvkonsistenskontroll) og flatene. Konstellasjonsforhåndsinnstillingene gir en representativ himmel, ikke en datert; den gaussiske feilmodellen og UERE er oppgitte inndata, ikke en målt nøyaktighet eller en integritetsgrense
Tester
geometry::tests (ellipse_of_an_analytic_two_by_two_case; sky_geometry_equals_orbit_dop_on_the_same_visible_set; ecef_input_matches_azimuth_elevation_input; one_clock_per_system_adds_a_state_and_costs_geometry…
ModellertKlokke-holdover uten GNSSholdover
Funksjon
Vekst i coast-feil i lukket form + holdover-til-terskel; kvanteklokkeklasser
Uavhengig referanse
Flertrinns rekursjon for clock_state-kovarians (kryssjekk i samme kodebase); kjernen for coast-varians og holdover-inversjon som ligger under er eksternt validert mot scipy (se 'Klokkens holdover: coast-varians og terskelinversjon'). Holdover-tallene for rødstøygulvet per klasse forblir MODELLED
Tester
holdover::tests (mot flertrinns Kalman-kovariansrekursjon; hvit-FM eksakt; rundtur); coast-variansskjernen eksternt validert i tests/gnss_denied_clock_holdover_reference.rs (mot scipy Van-Loan/brentq)
ModellertMålte enhetskort for klokker (tilbakeholdt prediksjon)clock_library (card, condition, series), realdata::clk, allan (lag1_noise_id)
Funksjon
clock_library: et enhetskort (hvit fase, hvit, flicker og random-walk FM pluss en lineær frekvensdrift) tilpasset en tredjedel av en navngitt målt klokkeregistrering etter et logget kondisjoneringstrinn (hull, faseutliggere, fasesprang og utbrudd fjernet; frekvenssprang logget), vektet etter de lag-1-identifiserte frihetsgradene for støytype, og dets predikerte Allan-avvik vurdert på de tilbakeholdte to tredjedelene; lesere for RINEX- og IGS-klokkefiler, BIPM-filer per laboratorium og Circular T seksjon 1; konvertering av et kort til støymodellen for tidsluketiming, den utvidede Kalman-klokkemodellen og støynivåene til spoofing-monitoren
Uavhengig referanse
Målte registreringer, tilbakeholdt: IGS endelige kombinerte 30 s-klokker for de 11 GPS Block IIF-satellittene over 2026-03-01 til 14 (et vindu ingen test hadde åpnet; IGS, åpent med kildeangivelse) og mottakeren u-blox ZED-F9P fra JammerTest 2024 i dens ikke-scorede stasjonære økter (GPL-3.0-or-later). D9 ekstern sammenligning (forhåndsregistrert 2ec76864, hvert korts predikerte / målte Allan-avvik innenfor [1/1.5, 1,5] ved dets tilpassede midlingstider), et funn (forblir MODELLED): 10 av 11 GPS IIF-kort ligger innenfor terskelen; G27 er optimistisk på to-timersskalaen (0,662 ved 7680 s, verste faktor 1,510), den periodiske feilen på timesskala som et potenslovkort ikke bærer. Mottakerkortet for TCXO er blokkert: utenfor de loggførte sendingene etterlater datasettets andre økter 167 epoker mot de 3600 som kreves. Rapportert, ikke blindt (registreringer åpnet av tidligere rader): kortet for cesium 5071A ligger innenfor terskelen (verst 1,070 opp til 4096 s), kortet for OCXO er konservativt og utenfor den (2,348 ved 128 s; støygulvet endres under registreringen), og kortet for Norcia-strontium, tilpasset de tre korteste publiserte punktene, ligger innenfor ved de to scorede punktene (1,291, 1,405). Galileo passive hydrogenmasere (ingen kilde uten innlogging til endelige Galileo-klokker er tilgjengelig) og Deep Space Atomic Clock (én åpen verdi fra rommet) er blokkert. D9 runde 2, mottakerens ZED-F9P TCXO som modellklasse over 14 dager på 12 statiske Wroclaw-stasjoner (Zenodo 6488497, CC BY 4,0; forhåndsregistrert fb475550), et funn: med den registrerte pipelinen kunne 11 av 12 stasjoner ikke evalueres (RAIM forkastet de fleste ionosfærefrie epoker) og BX14 feilet; en åpent redegjort ny kjøring med korrigert pipeline (forhåndsregistrert c9cc0d49) består for 1 av 11 blinde stasjoner (BX12, 1,412; BX07 1,532 og BX13 1,542 like utenfor), fordi enkeltpunkts mottakerklokker fra ujevne 30 s-filer ikke er en ren oscillatorregistrering
Tester
tests/clock_library_device_cards_oracle.rs (gps_iif_cards_reproduce_the_recorded_finding; receiver_training_is_blocked_by_the_epoch_minimum; non_blind_cards_are_reported; pre-registered 2ec76864)…
ModellertMålte klokkekort for GPS Block IIF med ledd per omløp (tilbakeholdt prediksjon)clock_library (card)
Funksjon
clock_library::card::DeviceCard::fit_phase_periodic: et enhetskort som bærer fasetermene fra én til fire per omløp (periode T/k, T = 43 082,05 s), tilpasset sammen med det kvadratiske leddet ved minste kvadrater på en tredjedel av en målt satellittklokkeregistrering, med hvert leds Allan-bidrag i lukket form 4 A^2 sin^4(pi tau / P) / tau^2 i det predikerte Allan-avviket
Uavhengig referanse
Målte registreringer, tilbakeholdt: IGS endelige kombinerte 30 s-klokker for de 11 GPS Block IIF-satellittene over 2026-04-01 til 14 (et vindu ingen test hadde åpnet; IGS, åpent med kildeangivelse). D9 ekstern sammenligning (forhåndsregistrert fb475550, predikert / målt Allan-avvik innenfor [1/1.5, 1,5] ved hver tilpassede midlingstid på hver satellitt), et funn (forblir MODELLED): 9 av 11 kort ligger innenfor terskelen; G03 (1,947) og G25 (1,581) er optimistiske mellom 60 s og 2000 s fordi deres tilbakeholdte registreringer er mer støyfulle enn tilpasningstredjedelene (G25s tilbakeholdte del har 16 hull og 29 faseutliggere), en endring i klokken og ikke et manglende periodisk ledd. Fjernes de periodiske leddene fra prediksjonen, feiler alle 11 kort (1,77 til 4,96), så leddene bærer prediksjonen
Tester
tests/clock_library_periodic_cards_oracle.rs (periodic_cards_reproduce_the_recorded_finding; pre-registered fb475550); clock_library::card::tests (a_periodic_card_carries_the_sinusoid_a_power_law_card_cannot)
ModellertTilstandsestimering for klokke om bordclock_state
Funksjon
Kalman-klokke med 3 tilstander (fase/frekvens/drift), van Loan, Joseph-stabilisert
Uavhengig referanse
filterpy 1.4.5 KalmanFilter (R. Labbe, MIT), med F via scipy.linalg.expm og Q via blokkmatrisen til Van-Loan 1978 — en uavhengig referanseimplementasjon som gjengir hele kshana-filterets bane. Konsistens på tvers av implementasjoner: klokkefysikken og Allan-kalibreringen er ikke eksternt validert, så dette forblir MODELLED. 0,30 ekstern sammenligning, et funn (forblir MODELLED): på IGS endelige 30 s-klokker for 11 GPS Block IIF-satellitter (2025-08-17 til 30), med Q tilpasset ADEV for første halvdel og filteret vurdert på den tilbakeholdte andre halvdelen, er filteret konsistent ett steg frem (0,906 til 0,971 av epokene innenfor dets 95 %-bånd, terskel 90 %) men overkonfident ved én time på 9 av 11 klokker (0,486 til 0,829), og innovasjonssummene faller utenfor [2,4, 3,6] på 5. Den tilpassede hvitfasestøyen er null på hver satellitt, og feilen på timesskala (periodiske ledd, flicker FM) finnes ikke i modellen med 3 tilstander. 0,30 runde 2, et utvidet filter (flicker FM og tilstander én og to ganger per omløp) på nye tilbakeholdte IGS-klokker fra 2025-09-01 til 14 (forhåndsregistrert 4b1a841e), et funn (forblir MODELLED): konsistenskriteriene for ett steg og én time holder på alle 11 satellitter (0,948 til 0,988 og 0,907 til 0,996), men innovasjonssumkriteriet feiler på G24 (0,964) og G30 (1,929) mot [2,4, 3,6]. D9 runde 3, det utvidede filteret fra runde 2, med uendret innstilling og uendrede kriterier etter den frosne kondisjoneringsdetektoren i clock_library, på nye IGS-klokker fra 2026-04-01 til 14 (forhåndsregistrert fb475550), et funn (forblir MODELLED): (a) ett steg 0,941 til 0,968 og (c) middelverdi for trippel-NIS 2,641 til 3,549 holder på alle 11 satellitter; (b) én time feiler på G09 (0,894) og G26 (0,876) mot 0,90
Tester
clock_state::tests (analytisk van-Loan Q; NEES; PSD-positivitet); tests/clock_state_reference.rs (full predict+update-bane — tilstand x og 3×3 kovarians P over 1925 steg / 4 parametersett mot filterpy 1.4.5; verste…
ModellertFeilbudsjett for tidsoverføringtimetransfer, timetransfer_adv
Funksjon
Toveis/TWSTFT (Sagnac), GNSS common-view, PPP; linkjitter→avstand
Uavhengig referanse
Sagnac-størrelsen kontrollert mot en autoritativ PUBLISERT VERDI — N. Ashby, 'Relativity in the GPS', Living Reviews in Relativity 6:1 (2003), lign. 1,29: en østgående ekvatorial omløpsrunde gir 207,4 ns (2ωA_E/c²); kshana gjengir 207,386 ns. Uavhengig støttet av RTKLIB 2.4.3 geodist() (Takasu, BSD-2-Clause), som bærer den samme 2Aω/c²-geometrien. Det sammensatte BIPM-budsjettet for TWSTFT-transponder, common-view og PPP har ingen uavhengig ekstern referanse, så funksjonen forblir modellert
Tester
timetransfer::tests (resiprok kansellering; Sagnac-identitet i to former); tests/time_transfer_error_budgeting_reference.rs (Sagnac rundt ekvator = 207,386 ns mot den publiserte Ashby 207,4 ns til <0,05 ns…
ModellertAnalyse av navigasjonssignalets modulasjon og kodesporingnavsignal
Funksjon
BPSK-R/BOC PSD, spektral separasjon κ, Gabor-båndbredde, DLL-jitter, flerveisfeil
Uavhengig referanse
GPS C/A Gold kryss-/autokorrelasjon stemte EKSAKT overens (heltall ±65/−1/63) med uavhengig generering av koder etter IS-GPS-200; PSD-formen for BPSK-R(1)/BOC(1 1) mot et uavhengig scipy-periodogram. Lukket form for modulasjon, SSC og DLL (Betz 2001 / Kaplan & Hegarty) forblir analytisk, så raden forblir MODELLED — men delpåstanden om kodekorrelasjon er eksternt kontrollert. 0,30 runde 2, mot de trykte verdiene hos Betz 2001 og Hein et al. 2006 (forhåndsregistrert 9f4f2ce8, en halv trykt enhet), et funn (forblir MODELLED): alle 45 spektralcellene i tabell 1, korrelasjonsverdiene ved 1 GHz, MBOC-interferenstallene og 2 av 3 forskyvninger i fig. 17 stemmer overens; de første sidelobene ved 24 MHz, forskyvningen for BOC(8 4) i fig. 17 og hver verste-tilfelle flerveisskjevhet i fig. 18-21 (11 til 15 % lavt) gjør det ikke. Kshana og en uavhengig NumPy-evaluering av den forhåndsregistrerte lesningen stemmer overens, så avviket ligger i denne lesningen eller i en uoppgitt detalj i artikkelen; årsaken er uavklart
Tester
navsignal::tests (BPSK self-SSC = 2/3R_c; unit-area PSD; DLL); tests/nav_signal_modulation_code_tracking_reference.rs (GPS C/A Gold cross/auto-correlation exact-integer match vs independent IS-GPS-200 code generation…
ValidertGenerering av GPS L1 C/A-spredekodesdr
Funksjon
G1/G2 LFSR C/A-kodegenerator som gjengir de publiserte oktale verifikasjonsvektorene for de første 10 chipene i IS-GPS-200 for PRN 1–9 (pluss lengde på 1023 chip, balanse med 512 enere, tre-verdi periodisk autokorrelasjon)
Uavhengig referanse
IS-GPS-200 tabell 3-Ia 'Code Phase Assignments' — de autoritative, offentlig tilgjengelige (amerikansk statlig) publiserte OKTALE verifikasjonsvektorene for de første 10 chipene (GPS Directorate, navcen.uscg.gov); kshanas egen G1/G2 LFSR regenererer hver vektor for PRN 1–9 eksakt. Den påfølgende lukkede formen for modulasjon, SSC og DLL forblir modellert (egen rad)
Tester
sdr::code_tests (ca_first_ten_chips_match_is_gps_200_octal — PRN 1–9 first-10-chips reproduce IS-GPS-200 Table 3-Ia octals 1440/1620/1710/1744/1133/1455/1131/1454/1626 exactly; ca_code_has_1023_chips_and_is_balanced…
ModellertYtelse for kvantetreghetssensorinertial::quantum_imu
Funksjon
Akselerometer med kaldatominterferometer fra grunnleggende prinsipper (k_eff·T², QPN)
Uavhengig referanse
Publiserte numeriske vektorer fra primærartikler om CAI (overføringsfunksjon hos Cheinet 2008; sensitivitet hos Peters/Freier): k_eff·T² stemmer eksakt overens, ASD for skuddstøy er et énsidig gulv innenfor ~2× av hvert publiserte instrument (reelle enheter har teknisk støy over kvantegulvet). Et intervall, ikke likhet. 0,30 runde 2 (forhåndsregistrert fcb9ac64), et funn (forblir MODELLED): rotasjonsstøy med bare QPN mot de målte punktene i Gauguet et al. 2009 fig. 14 gir forhold fra 0,695 til 0,788 ved de tre godkjente punktene (0,751 ved driftspunktet), og bommer på den forhåndsregistrerte terskelen på 30 % med 0,5 poeng; QPN-gulvet ligger 21 til 31 % under den målte støyen, som ventet av en modell uten laser- og deteksjonsstøy. Gradiometersammensetningen stemmer overens med modellinjen for QPN hos Janvier et al. 2022 (forhold 1,013 til 1,017, Reference). Den målte testen kan ikke skille en sammensetningsfeil på sqrt(2); bare Janvier-linjen med ulik kontrast kan det
Tester
quantum_imu::tests (k_eff; Mach-Zehnder T²; Freier-2016-gulvbrakett); tests/quantum_inertial_sensor_reference.rs (overføringsfunksjon |H(ω)|, k_eff·T² og skuddstøy-ASD mot publisert Cheinet 2008 / Peters / Freier…
ModellertKvantetreghetssensor: fringe-flertydighet / dynamisk områdeinertial::quantum_imu
Funksjon
Dynamisk område for fringe-flertydighet i Mach–Zehnder: den 2π-periodiske fringe-avlesningen setter en maksimal entydig spesifikk kraft a_max=π/(k_eff·T²), og det entydige området i oppløsningsceller a_max/σ_a=π/σ_Φ er uavhengig av den optiske skalafaktoren — T²-sensitivitetsgevinsten koster entydig område i nøyaktig samme takt (utspørringstiden bytter oppløsning mot område, og antall celler ligger fast ved avlesningens fasestøy)
Uavhengig referanse
Selvkonsistens i interferometerets fringe-modell: halv-fringe-kanten, den 2π-periodiske aliasingstrukturen og kanselleringen av skalafaktoren i forholdet mellom område og oppløsning er algebraiske identiteter i lukket form kontrollert mot motorens egne Mach–Zehnder-fase- og sensitivitetsfunksjoner — interne konsistenskontroller, IKKE et eksternt datasett, så raden forblir InternalConsistency. MODELLED ideell tre-puls fringe-flertydighet; ingen grenser for bølgefrontaberrasjon eller kontrasttap på det entydige området
Tester
quantum_imu::tests (a_max ligger ved ±π-halvfringekanten med 1/T²-områdeskalering; innpakket-fase-gjenvinning er eksakt innenfor [−a_max,a_max] og aliaserer med nøyaktig 2·a_max utenfor; det entydige dynamiske området…
ModellertResiliens for kvantetreghetsbasert dødregninginertial::quantum_imu (QuantumNavBudget)
Funksjon
Sammensatt posisjonsbudsjett for bias + skalafaktor + VRW + stabilitetsforfall over holdover
Uavhengig referanse
Uavhengig numpy Monte Carlo-SDE-integrasjon av dobbeltintegrert hvit akselerasjonsstøy (validerer den analytiske VRW-variansen med en genuint uavhengig algoritme) + et publisert verdiankere hos Groves 2013 for bias- og skalafaktorleddene; CAI-enhetstallene kvantifiserer partnerens maskinvare og forblir MODELLED
Tester
budget_tests (bias mot AccelModel-integrator; VRW mot analytisk integral); tests/quantum_inertial_dead_reckoning_reference.rs (VRW mot en uavhengig numpy Monte Carlo-dobbeltintegrasjon av hvit akselerasjonsstøy, verste…
ValidertGNSS/INS-sensorfusjonfusion (gnss_ins_ekf, tightly_coupled, ukf, coupled)
Funksjon
EKF med 15 feiltilstander, løst koblet (validert på en reell IMU/GNSS-kjøring mot NaveGo); en tett koblet UKF for pseudoavstand/Doppler og et koblet klokke+posisjon-filter (bare konsistens, utenfor det validerte kravet)
Uavhengig referanse
NaveGo v1.4 (R. Gonzalez, LGPL-3.0, kjørt som verktøy under GNU Octave, aldri lenket): dets løst koblede ins_gnss på dets egen reelle IMU/GNSS-kjøring med Ekinox på landkjøretøy, begge løsninger vurdert mot Ekinox-referansebanen. Begge filtrene leser de samme 20 Hz float32-inndataene, og Kshanas konfigurasjon er mappet mekanisk fra datasettets publiserte parametere. Kshanas horisontale og vertikale posisjons-RMS og dets posisjonsinnovasjons-RMS ligger innenfor 1.2x av NaveGos (målt 0,912, 0,940 og 0,861) og dets gjennomsnittlige normaliserte innovasjon er høyst 1,5 (målt 0,395: omtrent 2.5x underkonfident, gitt datasettets oppgitte GNSS-sigmaer); toleransene ble fastsatt før sammenligningen. Omfang: GNSS er til stede ved 5 Hz gjennom hele kjøringen, så ingen utfall eller coast testes, og kontrollen fanger grove filterfeil og ikke finjustering (råposisjoner korrigert for lever-arm ville havnet nær den vertikale terskelen); lever-arm-transformasjonen beregnes i testharnessen. Det tett koblede UKF-et og det koblede klokke+posisjon-filteret beholder sine konsistenskontroller mot filterpy 1.4.5 (lineære posteriorer til 2.4e-12) og forblir utenfor det validerte kravet
Tester
fusion::tests (UKF==lineær-KF-identitet; utfalls-coast; NEES); tests/gnss_ins_sensor_fusion_reference.rs (50 tilfeller mot filterpy 1.4.5: lineært EKF løst/tett + koblede PNT-posteriorer til ≤2.4e-12; UKF 40-epokers kjøring verste…
ModellertResiliens mot jamming uten GNSSjamming
Funksjon
Geometrisk J/S-linkbudsjett, anti-jam C/N₀, tap av lås per satellitt
Uavhengig referanse
Likningen for anti-jam C/N₀-linkbudsjettet kryssjekket mot en uavhengig numpy-gjenutledning (deler samme lukkede form → InternalConsistency) pluss en karakterisering av C/N₀-degradering i reelle JammerTest-2024-data. 0,30 runde 2, blokkert (forblir MODELLED): det målte C/N0-fallet i JammerTest 2024 mot en linkbudsjett-prediksjon (forhåndsregistrert 6a66994b, innenfor 3 dB) ble ikke kjørt fordi antenneposisjonen og -retningen for F8.1 ved Bleik og L1-andelen av rampeeffekten for flere bånd 1.6.4 ikke er dokumentert i testkatalogen eller den offisielle loggen
Tester
jamming::tests (broadband_q_equals_the_spectral_separation_closed_form og cw_q_equals_the_spectral_separation_closed_form: Q-tabellen, CW og smalbånd 1, bredbånd og swept 2, festet til navsignals lukkede former…
ModellertSpoofing-deteksjonspoof, spoof_detect, spoof_monitors
Funksjon
Klokkestøttet χ², RAIM, AGC og SQM, fusjonert til en sikkerhetskvalitetsmåling per epoke
Uavhengig referanse
Scenarioparametere fra TEXBAT (Humphreys 2012) — karakterisering, ikke fastsatte vektorer. 0,30 ekstern sammenligning, et funn (forblir MODELLED): på JammerTest 2024 (Bleik; data under GPL-3.0) utløste monitorene på observasjonsnivå (klokkestøttet kjikvadrat, RAIM, løsningsfeil) ingen alarm innen 10 s for noen av de 8 evaluerbare publiserte spoofing-startene (der vinduet før starten var rent, kom den første alarmen 10,2 til 39 s etter den publiserte starten av tidsluken), og tre vinduer før start hadde falske alarmer fra klokkemonitoren (81, 64 og 173 epoker). Den første observerbare effekten var tap av tosfrekvent GPS-sporing, ikke en RAIM-inkonsistens. De publiserte startene er starttidspunkter for tidsluker i en plan med minuttoppløsning; at de kommer før RF-opptaket er en tolkning, ikke en måling. 0,30 runde 2, mot arrangørenes offisielle JammerTest 2024-logg (sekundoppløsning; forhåndsregistrert 6a66994b med en Hadamard-kalibrert klokkemonitor med tre tilstander uten låsing), et funn (forblir MODELLED): monitoren alarmerer innen 10 s ved 4 av 10 loggførte starter; ved de seks andre er den 18 til 211 s sen eller gir falske klokkealarmer før start (1 ved 2.1.4, 85 ved 2.3.15). D9 runde 3 (et mottakerkort fra JammerTest-enhetens andre økter, forhåndsregistrert 2ec76864) blokkert: 167 treningsepoker mot 3600. D9 rundene 4 og 4b (støynivåer fra et modellklassekort for u-blox ZED-F9P, Wroclaw 2021, forhåndsregistrert fb475550; 4b en åpent redegjort ny kjøring med korrigert uttrekk, c9cc0d49), et funn (forblir MODELLED): null falske alarmer før start ved alle 10 loggførte starter og 6 av 10 innen 10 s; 2.1.1, 2.3.5, 2.3.10 og 2.6.1 forblir sene (+211, +23, +18, +51 s), uendret av klokkens støynivå
Tester
tests/spoof_texbat_validation.rs (TEXBAT parameter characterisation); tests/spoof_detection_jammertest_oracle.rs::monitors_against_the_published_onsets_reproduce_the_recorded_disagreement (pins the finding)…
ModellertBeskyttelsesnivå for tidssynkronisering under spoofingtpl
Funksjon
Grense i lukket form for verste-tilfelle uoppdaget tidsfeil = monitorgulv + oscillatorens coast-σ over CUSUM-deteksjonslatensen, rapportert som et bånd for rødstøygulvet
Uavhengig referanse
Setter sammen validerte primitiver (allan/holdover van-Loan, sikkerhetsgulv); kalibrert på JammerTest 2024 scenario 2.1.1 (~1,01 ms reell trekking av levert tid mot ≤51 ns påstått). En bro over validerte deler — ikke selv en ekstern validering. 0,30 ekstern sammenligning, et funn (forblir MODELLED): i spoofing-scenarioene fra JammerTest 2024 overstiger den målte uoppdagede feilen i levert tid det nominelle TPL ved 3 av 8 oppdagede starter: 184,3 mot 34,6 ns (2.1.4), 295,7 mot 159,3 ns (2.3.5) og 143,0 mot 69,0 ns (2.3.11); tre av de fem innenfor er trivielle (en låst falsk alarm før start). Sannsynlig årsak: coast-leddet fra en kalibrering på 60 s med null driftsstøy dekker ikke frekvensvandringen til mottakerens TCXO over 15 til 39 s. Den målte feilen er Kshanas eget enkeltpunkts klokkeestimat mot en linje tilpasset dets egne estimater før start, så selv overensstemmelse ville ikke vært helt uavhengig. 0,30 runde 2, mot starttidspunktene i den offisielle JammerTest 2024-loggen og den målte tidsfeilen i mottakeren (forhåndsregistrert 6a66994b), et funn (forblir MODELLED): ved 4 av 10 loggførte starter overstiger den uoppdagede feilen TPL med driftstilstand (634,7 mot 458,5 ns ved 2.1.1, 232,6 mot 16,2 ns ved 2.3.5, 41,3 mot 6,0 ns ved 2.3.10, 218,6 mot 47,4 ns ved 2.6.3)
Tester
tpl::tests (closed-form oracles + CUSUM); examples/tpl_jammertest.rs (JammerTest 2024 real-spoof calibration); tests/tpl_jammertest_coverage_oracle.rs::tpl_against_measured_time_error_reproduces_the_recorded_disagreemen…
ValidertMisjonsanalyse for cislunart romcr3bp
Funksjon
CR3BP STM + differensialkorrektor med enkeltskyting; L2 sørlig NRHO
Uavhengig referanse
NASA/JPL Three-Body Periodic Orbit Database (SSD, periodic_orbits.api; Jord–Måne L2 sørlig halo-familie, metodikk fra Howell/Davis) — eksternt publisert periode T, Jacobi C og initialbetingelser for vinkelrett kryssing; kshanas STM-korrektor med enkeltskyting, sådd med katalogens initialbetingelser og forstyrret, konvergerer tilbake til katalogens medlemmer
Tester
cr3bp::tests (STM mot endelig differanse); tests/cislunar_mission_analysis_reference.rs (5 JPL L2-S NRHO-medlemmer: 9:2 + 4 naboer; verste |ΔC| 1.5e-5, |ΔT|/T 9.6e-5, perilune 0,7 km i JPL-lengdeenheter)
ModellertAlternativ / komplementær PNTaltpnt, mapmatch, gravimeter, igrf
Funksjon
Matching mot tyngdekart, terrengreferert (TERCOM/SITAN), magnetisk anomali
Uavhengig referanse
IGRF-14-koeffisienter; CRLB for matchet filter fra grunnleggende prinsipper. Feltet i referanseprøven for reell tyngde er eksternt kontrollert (raden 'Syntese av tyngdeanomali fra en sfærisk-harmonisk modell'), men navigasjonsresultatet har ingen uavhengig ekstern referanse
Tester
tests/alternative_complementary_pnt_reference.rs (map-matching CRLB; IGRF-14 field); mapmatch::tests; gravimeter::tests; igrf::tests; tests/gravity_map_real_field.rs (the 60-min GPS-denied benchmark on the real EGM2008…
ValidertSyntese av tyngdeanomali fra en sfærisk-harmonisk modellgravity_sh, altpnt::maps, gravimeter
Funksjon
Tyngdeanomali i sfærisk approksimasjon (Barthelmes STR09/02 lign. 126, ICGEM gravity_anomaly_sa) fra fullt normaliserte koeffisienter mot en nivåellipsoide i lukket form (WGS84/GRS80), med nullgradsleddet, lagt i rutenett for tyngdekartmatcheren
Uavhengig referanse
ICGEM Calculation Service (GFZ Potsdam), en uavhengig implementasjon: EGM2008 avkortet ved grad 70, gravity_anomaly_sa, WGS84, tidevannsfri, nullgradsledd, h = 0. Tjenestens utdata har ingen eksplisitt lisens, så rutenettene hentes ved testtidspunktet med en festet SHA-256 (tools/fetch_icgem_grid.sh) og bare ti verdier siteres med kildeangivelse
Tester
tests/icgem_gravity_anomaly_oracle.rs (egm2008_n70_matches_cited_icgem_values i CI på ti siterte ICGEM-noder; egm2008_n70_gravity_anomaly_sa_matches_icgem over de fulle hentede 0.25-graders rutenettene for Tsjad 9-15N 19-25E og…
ValidertSRTM-leser for digital høydemodell på reelt terrengaltpnt::terrain
Funksjon
Selvskrevet SRTM .hgt-parser (16-bit big-endian, nordraden først, void-bevisst) + bilineær sampler som leser en reell DEM-flis i offentlig eie og løser en dokumentert oppmålingsreferanse
Uavhengig referanse
NASA/USGS SRTM v3 (1-buesekund) flis N36W117 — høydedata fra amerikanske myndigheter, PUBLIC-DOMAIN, fra den åpne AWS-speilingen elevation-tiles-prod, desimert til 6 buesekunder og innsjekket under tests/fixtures/terrain/ (se NOTICE.md), pluss utsnitt i full oppløsning av N36W117 og N36W119 kryssjekket node for node mot GDALs uavhengige SRTMHGT-leser og oppmålingsreferansene Mount Whitney (4421 m) og Badwater (−86 m). Den dokumenterte referansen for Badwater Basin (−86 m, lavest i Nord-Amerika) forankrer den georefererte avlesningen. Terrengmatching/TERCOM-navigasjonsløsningen som bruker DEM forblir modellert (egen rad for alternativ/komplementær PNT)
Tester
tests/terrain_nav_validation.rs (real_srtm_committed_badwater_tile_reads_real_relief — den innsjekkede desimeringen på 6 buesekunder av den offentlig eide SRTM v3 N36W117-ruten plasserer Badwater Basin, det laveste punktet i Nord…
ModellertReproduserbarhet og programvaresikringreport, scenario; CI (golden/determinism/SBOM)
Funksjon
Deterministisk, scenariohashet, SBOM + gylne porter på tvers av plattformer
Uavhengig referanse
SBOM-ens overensstemmelse med det offisielle CycloneDX 1,5 JSON Schema (+ gyldige SPDX-identifikatorer) — en ekstern publisert standard, null valideringsfeil over hele avhengighetsgrafen; delen om determinisme i FoM og byte-reproduserbarhet forblir en festet selvkonsistenskontroll, så raden forblir MODELLED
Tester
tests/golden.rs, tests/determinism.rs, tests/cross_platform_golden.rs; tests/reproducibility_software_assurance_reference.rs (the generated SBOM validates with zero errors against the official CycloneDX 1.5 JSON Schema…
ModellertEvaluering av AI/ML-deteksjon av RF-forstyrrelser (13494)impairment_eval
Funksjon
Merket syntetisk korpus av forstyrrelser + detektoruavhengig harness for ROC/AUC/forvekslingsmatrise/Pfa-Pmd; lekkasjevern, stratifisert deling, rapport om optimisme ved fordelingsskifte (innenfor mot utenfor regime). Kan kjøres fra CLI/bindinger som scenariotypen impairment-eval (scenarios/impairment-eval.toml)
Uavhengig referanse
Grenser for AUC i lukket form (Mann–Whitney) + en perfekt detektor med uavhengig referanse; korpuset er SYNTHETIC (parameterforankret, ikke felt/IQ)
Tester
impairment_eval::tests (AUC perfect=1/identical=0.5/tie=0.125, ROC monotone, fused>0.8, per-class layer separation, leakage guard, reproducible corpus, distribution-shift flags optimism); dominance_demonstrators…
ModellertStudie av optimismegapet i AI/ML-deteksjon av RF-forstyrrelser og en gapprediktor bare fra fordelingenimpairment_study, impairment_ml, eval_stats
Funksjon
Kontrollert syntetisk studie av AUC-optimismegapet fra innenfor til utenfor fordelingen på tvers av publiserte metoder og lærte detektorer (logistisk regresjon / MLP med ett skjult lag): trender i skaleringslover per klasse (Spearman ρ + stigning på 1−alvorlighet) og en ridge-prediktor bare fra fordelingen som estimerer gapet fra diagnostikk innenfor fordelingen alene, vurdert med utelatelse av én detektor og utelatelse av én klasse. Kan gjengis via cargo run --release --example optimism_study
Uavhengig referanse
Håndutledede statistikker mot lukkede former (binormal AUC Φ(d'/√2), DeLong-varians, Spearman med bundne rangeringer, eksakt OLS-gjenvinning) + leave-one-out-kryssvalidering mot grunnlinjen som predikerer middelverdien. Korpuset er SYNTHETIC (parameterforankret, aldri felt/IQ), og optimismegapet er et alvorlighetsskifte fra syntetisk til syntetisk, IKKE et resultat fra simulering til felt
Tester
impairment_study::tests (oracle-AUC per klasse≈1, lært optimismegap>0, rutenettform + bootstrap-KI omslutter gjennomsnittet + positiv skaleringstrend, ID-egenskaper endelige, gapprediktor slår predikér-gjennomsnittet under BEGGE…
ModellertAvveining mellom kvante og klassisk PNT og resiliens uten GNSS (13503)quantum_trade
Funksjon
Inntak av målt ADEV (NNLS), avveiingstabell (holdover for tidssynkronisering og treghet + gevinst), resiliens-mot-tid-omhylling; forbeholdet om gulvet følger med artefakten. Kan kjøres fra CLI/bindinger som scenariotypen quantum-trade (scenarios/quantum-trade.toml)
Uavhengig referanse
Kjernen for tilpasning av målt ADEV→PSD (NNLS) stemmer overens med scipy.optimize.nnls (tests/scipy_reference.rs / tests/quantum_vs_classical_pnt_trade_reference.rs) — en uavhengig ekstern kjerne; men tallene i avveiingen kvantifiserer (aldri validerer) en partnerklokke/CAI, så selve avveiingen forblir MODELLED, uten valideringsglorie
Tester
quantum_trade::tests (ADEV round-trip recovery, NNLS non-negativity, floor-caveat present/absent, benefit>1, monotone envelope + alt-PNT bound); dominance_demonstrators (measured-ADEV is data-driven not floor-assumed…
ModellertRomværmiljø og aktivitetsdrevet termosfærisk tetthetspace_weather
Funksjon
Sol- og geomagnetiske indekser (definisjonstabell Kp↔ap), eksosfærisk temperatur etter Jacchia-1971 og termosfærisk tetthet etter Jacchia 1971 (SAO Special Report 332: statiske diffusjonsprofiler som gjengir dens tabell 7, med døgn-, geomagnetiske, halvårs-, sesong-breddegrads- og heliumvariasjoner) mot den statiske atmosfæren USSA76. Kan kjøres fra CLI/bindinger som scenariotypen space-weather (scenarios/space-weather.toml)
Uavhengig referanse
Definisjonstabell Kp↔ap + lukket form for eksosfærisk temperatur etter Jacchia-1971 (stemmer overens til <1 K mot de publiserte ankrene, tests/space_weather_reference.rs); tettheten er karakterisert mot pymsis NRLMSISE-00 (en uavhengig NRL-modell): solsyklussvingen ved 800 km er 10.4x mot NRLMSISE-00 13.6x. 0,30 revisjon: den kalibrerte førsteordens aktivitetsfaktoren ble erstattet av Jacchia 1971 (standardscenarioets tetthet ved 400 km 4.176e-12 -> 6.929e-12 kg/m3; reference_exospheric_temperature_k fjernet, mean_exospheric_temperature_k lagt til). 0,30 runde 2, målte TOLEOS CHAMP/GRACE/GRACE-FO-akselerometertettheter (ESA Swarm DISC; forhåndsregistrert 20eed695), et funn (forblir MODELLED): baneskjennitt ved 400 til 500 km ligger innenfor en faktor 2 ved solmaksimum utenfor stormer (CHAMP 2001 521/521, GRACE-A 2002 120/120, GRACE-FO 2024 526/547), men Jacchia 1971 er omtrent 1.7x for tett i solminimum 2008 (GRACE-A 412/544 innenfor en faktor 2), så tettheten er ikke validert
Tester
space_weather::tests (Kp↔ap eksakt i rutenettpunkter + rundtur + monoton, daglig Ap-gjennomsnitt, eksosfærisk T mot publiserte solminimum/-middel/-maksimum + stormøknings-ankre, tetthet enhet-ved-referanse, solsyklussvingning i…
ValidertCCSDS OEM-interoperabilitet (import av GMAT/Orekit/STK-efemerider)oem
Funksjon
CCSDS 502,0 OEM-importør (parse_oem), tolerant overfor COMMENT-linjer / ekstra metadata-nøkkelord / kovariansblokker og den eksakte inversen av skriveren; rundtur + inntak av ekstern fil med en kontroll av hastighetskonsistens. Kan kjøres fra CLI/bindinger som scenariotypen oem-interop (scenarios/oem-interop.toml)
Uavhengig referanse
Uavhengig CCSDS-502-parser fra tredjepart oem 0.4.5 (MIT, https://pypi.org/project/oem/) — en separat kodebase som dekoder kshanas utsendte EME2000/UTC OEM byte for byte likt (24 tilstander over 2 fikstur-filer, pos/vel Δ = 0) og hvis strenge leser bekrefter metadata-tokenene; kshanas parser stemmer likeledes overens med den på en medfølgende ekstern OEM. To ærlige interoperabilitetsfunn (oem-biblioteket avviser kshanas konvensjon med flere segmenter per satellitt og dets kovarianslinjer med flere oppføringer) er dokumentert i testen — så dette validerer den formatriktige utvekslingen av ett enkelt objekt, ikke full CCSDS-502-overensstemmelse for hver kshana-variant
Tester
tests/ccsds_oem_interop_reference.rs (24 tilstander / 2 fixtures dekodet byte-identisk av den uavhengige oem-parseren, pos/vel Δ = 0); oem::tests (tolk en OEM fra et eksternt verktøy med ekstra nøkkelord/kommentarer/kovarians…
ModellertOppskytingsvindu og stigningsgeometri (misjonsanalyse)launch
Funksjon
Oppskytingsasimut(er) i tolegemeproblemet (sin Az = cos i / cos lat), minste nåbare inklinasjon, sirkulær hastighet, østgående bonus fra jordrotasjonen, dogleg-planendrings-Δv og daglige muligheter, og, gitt en epoke og IERS finals2000A-rader, stedets hastighet om den sanne polen (launch::site_rotation_speed_at). Kan kjøres fra CLI/bindinger som scenariotypen launch-window (scenarios/launch-window.toml)
Uavhengig referanse
Sfærisk-trigonometrisk oppskytingsgeometri i lukket form mot publiserte ankre fra gjennomregnede eksempler (Vallado, Fundamentals of Astrodynamics 4. utg., algoritme 37 oppskytingsasimut + kap. 6 planendring; tests/launch_window_ascent_geometry_reference.rs). Disse gjenbruker den samme lukkede formen som kshana implementerer (en paritets-/transkripsjonskontroll mot publiserte verdier, InternalConsistency); MODELLED tolegemeproblem, ingen hastighetstrekant for roterende jord / stigning / dragtapsmodell. 0,30 ekstern sammenligning mot Orekit 12,2 (Apache-2.0), et funn (forblir MODELLED): geometrien stemmer overens innenfor avrunding (inklinasjon lest tilbake fra utbrenningsasimuten over 158 tilfeller, verst 2.6e-15 rad; minste inklinasjon, sirkulær hastighet og dogleg-delta-v til 3e-16), men stedets hastighet fra jordrotasjonen bommer på den forhåndsregistrerte relative terskelen 1e-6 ved 62,9 deg bredde (1.12e-6). Gapet vokser som tan(lat), forenlig med en polbevegelsesforskyvning av polen på omtrent 5.8e-7 rad i Orekits jordramme som den sfæriske ω·R·cos(lat) utelater. Påstanden ble ikke snevret inn før kjøringen, så raden kan ikke forfremmes på denne sammenligningen. 0,30 runde 2 (forhåndsregistrert 71bebf63): med en epoke og IERS-rader stemmer stedshastigheten om den sanne polen (scenariofeltet site_rotation_speed_true_pole_m_s) med Orekit innenfor 1e-6 ved 24 steder over fire lengdegrader (verst 4.9e-8), men den nominelle hastigheten uten epoke som scenarioet gir som standard som jordrotasjonsbonus bommer fortsatt med 1.12e-6, så raden forblir MODELLED i påvente av en beslutning om standardutdataene
Tester
launch::tests (due-east launch reaches i=latitude, KSC→ISS = textbook 45°, polar = N/S, i<lat unreachable, 465 m/s equatorial bonus, plane-change 10° ≈ 1.34 km/s + 180° = 2v, daily-opportunity counts, scenario…
ModellertBallistisk inngangskorridor ved gjeninntreden (Allen–Eggers)reentry
Funksjon
Maksimal retardasjon (uavhengig av ballistisk koeffisient), hastighet og høyde ved maksimal g, og hastighet ved maksimal oppvarming for en ballistisk innflyvning i en eksponentiell atmosfære. Kan kjøres fra CLI/bindinger som scenariotypen reentry (scenarios/reentry.toml)
Uavhengig referanse
Analytisk inngang etter Allen–Eggers i lukket form, i tillegg kryssjekket mot en numerisk integrasjon med scipy 1,18 solve_ivp (DOP853) av SAMME ODE for inngang med bare luftmotstand (tests/ballistic_re_entry_corridor_reference.rs, 36 tilfeller, verst a_max rel 2.9e-9) — en kontroll av numerisk integral mot egen analytisk form, så fortsatt InternalConsistency, IKKE en ekstern validering. MODELLED ballistisk (ingen løft), ingen aerotermisk/TPS — oppvarmingsutdataene er en hastighet, ikke en varmefluks. 0,30 ekstern sammenligning, et funn (forblir MODELLED): mot rekonstruksjonen av Stardust SRC-inngangen (Desai og Qualls, NASA NTRS 20080008567) er Allen–Eggers' maksimale retardasjon for den trykte inertielle inngangstilstanden (12,9 km/s, -8.2 deg, H 7200 m) 61,8 g mot den beste estimerte banen 32,89 g, +88 % mot en toleranse på 15 %: løsningen med konstant banevinkel og uten tyngdekraft omtrent dobler toppen for en grunn innflyvning raskere enn unnslippingshastigheten. Stardust hadde ikke akselerometer, så rekonstruksjonen er et banestimat. 0,30 runde 2, blokkert (forblir MODELLED): en integrert plan punktmasseløsning (reentry::simulate_planar_entry, US76, inverst kvadrat for tyngdekraft, krumning) stemmer overens med de beste estimerte banene for Stardust og Genesis innenfor 15 % (+11,3 %, +5,6 %), men disse maksimumene er simuleringsutdata fra byråer, ikke målinger, så dette er bare en kryssjekk. Sammenligningen med akselerometer (forhåndsregistrert a94a283d) er blokkert i påvente av en lesbar kopi av REMM-analysen for Hayabusa2 (doi 10.57350/jesa.16)
Tester
reentry::tests (topp-g uavhengig av ballistisk koeffisient + fysisk g-bånd, vokser med brattere γ / raskere inngang, topp-g-hastighet = V_e·e^(−1/2) og toppoppvarming = V_e·e^(−1/6) raskere, topp-g-høyde fysisk +…
ValidertFotavtrykk og dekningsgeometri for EO-nyttelasteo_payload (j2_node_rate, j2_nodal_period, ground_track_spacing_equator_j2, sun_synchronous_inclination)
Funksjon
SMAD romtrekantgeometri: jordens vinkelradius, svathbredde, GSD i nadir, maksimal tilgang utenfor nadir og sirkulær periode, pluss den førsteordens J2-nodeperioden (eo_payload::j2_nodal_period) og ekvatorial bakkesporavstand R_e (omega_E - dOmega/dt) T_nodal (eo_payload::ground_track_spacing_equator_j2) med et flagg for sammenhengende dekning, for en banehøyde, inklinasjon og sensor-FOV/IFOV. Kan kjøres fra CLI/bindinger som scenariotypen eo-coverage (scenarios/eo-coverage.toml); dens standardinklinasjon er den solsynkrone fra eo_payload::sun_synchronous_inclination, en bekvemmelighetsstandard som ikke er en del av det validerte kravet
Uavhengig referanse
Orekit 12,2 (Apache-2.0) og GeographicLib 2,1 (MIT), begge kjørt som separate programmer, forhåndsregistrert (766823f3) før motorendringen og før noen referansekjøring: sfærestørrelser innenfor 1e-9 relativt (verst: vinkelradius 5.4e-16, svath 7.0e-13, tilgang 1.9e-14), periode 1e-12 (1.6e-16), GSD i nadir 1e-7 (2.9e-10), J2-nodeperioden og nodeavstanden innenfor 0,1 % av en numerisk J2-propagering i Orekit med nodedetektor (1.2e-5 og 6.7e-5), det sammenhengende flagget eksakt (168/168), og mot WGS-84-ellipsoiden limben innenfor 0,3 deg (0,186 deg) og maksimal bakkeavstand innenfor 0,5 % (3.2e-3). Fjernes leddet for nodeforskyvning, feiler 35 av 42 nodepunkter. MODELLED omfang: fotavtrykk på sfærisk jord; ingen radiometri, MTF, atmosfære, jitter eller glint; den solsynkrone standardinklinasjonen er ikke sammenlignet. Den tidligere kryssjekken mot Skyfield/SGP4 beholdes som regresjon. 0,30 revisjon: avstanden bærer nå J2-nodeforskyvningen (standardscenario 2756,37 -> 2752,17 km)
Tester
eo_payload::tests (vinkelradius 64° ved 700 km + krymper med høyde, nadir→zenit/null avstand, horisont→ε=0/maks sentralvinkel, feil forbi horisonten, svath vokser med FOV / GSD med høyde, ~2750 km nodeavstand…
ValidertCCSDS Space Packet (133,0) TM/TC-innrammingspace_packet
Funksjon
CCSDS 133.0-B Space Packet: koding/dekoding av primærhode (versjon/type/sek-hode/APID/sekvensflagg/teller/datalengde) + et innrammingsscenario. Kan kjøres fra CLI/bindinger som scenariotypen space-packet (scenarios/space-packet.toml)
Uavhengig referanse
spacepackets 0.32.0 (us-irs/spacepackets-py, R. Mueller, Apache-2.0) — en uavhengig implementasjon fra tredjepart av CCSDS 133.0-B-2; kshanas encode_packet/decode_packet stemte byte for byte overens (primærhodet på 6 oktetter for 33 tilfeller + hele den kodede pakken for 12)
Tester
space_packet::tests (header-biter stemmer med CCSDS-133-oppsettet, encode→decode gjenskaper alle felt, utenfor område/avkortet avvist); tests/ccsds_space_packet_reference.rs (33 tilfeller mot spacepackets 0.32.0, inkl. 12…
ValidertCCSDS Space Packet: sekundærhode, pakkefeilkontroll og segmenteringspace_packet (TimeCode, SecondaryHeader, pakkefeilkontroll, segmentering og reassemblering, strømdekoding)
Funksjon
Utvidelser av CCSDS 133.0-B-2 Space Packet ved siden av primærhodet: et sekundærhode med en tidskode etter CCSDS 301.0-B (CUC eller CDS, eksplisitt eller implisitt P-felt) og tilleggsdata, feltet for pakkefeilkontroll med CRC-16, segmentering av en stor brukerdataenhet og reassemblering av den, strømdekoding med kontroller av sekvenshull og rekkefølge, og PUS-TM-pakker. Utdataene for primærhodet er byte for byte identiske med tidligere
Uavhengig referanse
Forhåndsregistrert (003ef3eb) før noen sammenligning; fire uavhengige implementasjoner, ingen GPL, ingenting innlemmet: ccsdspy 2.0.1 (BSD-3-Clause) dekoder 34 pakker skrevet av Kshana i 5 strømmer (primærhode, P-felt, grov og fin tid, CDS-felt, tilleggsdata, brukerdata, PEC), og begge de segmenterte enhetene på 1000 oktetter bygges opp igjen fra dens brukerdata med 0 avvik, og den flagger strømmene med droppet og byttet pakke som Kshana avviser; CRC for 8 meldinger og 57 PEC-felt er lik CPython binascii.crc_hqx og spacepackets-rs 0.18.0 (kontrollverdi 0x29B1); 66 tilfeller med CUC- og CDS-tidskoder er like spacepackets-rs 0.18.0 ved skriving og lesing oktett for oktett (3 CDS-tilfeller også spacepackets-py 0.32.0); 4 PusTm-pakker fra spacepackets-py 0.32.0 er byte for byte identiske med Kshanas. Ikke dekket: tidskoder med byråepoke (7 tilfeller hviler på enhetstester), TC-overføringsrammer og ethvert linklag under pakken
Tester
tests/space_packet_ext_oracle.rs (fem forhåndsregistrerte terskler: CRC, tidskoder, strømmer, gap og rekkefølge, PUS TM; null mismatch); space_packet::tests
ValidertSPICE SPK-eksport (typene 9 og 13)spk_writer (SpkSegment, to_bytes, from_bytes, eval, et_from_label, oem_to_spk_segments)
Funksjon
Skriver og leser for NAIF SPICE SPK-kernels av typene 9 (Lagrange, ujevne tidssteg) og 13 (Hermite, ujevne tidssteg), med DAF-oppsett, segmentbeskrivere og epokekataloger, og eksport av en CCSDS OEM til en SPK-kernel (UTC- eller TDB-epoker til efemeridetid)
Uavhengig referanse
CSPICE N0067 via spiceypy 8.3.0, leap-seconds-kernelen naif0012.tls, forhåndsregistrert (5059fd2a) før SPICE leste noen Kshana-kernel: SPICEs fortegnelse over Kshanas fire kernels er eksakt; spkpvn og spkgeo ved 5 516 epoker og 690 kjedeevalueringer er bit for bit lik Kshanas egen evaluering og holder seg innenfor terskelen i hver node (verst 0,022 av den); Kshana leser SPICE-skrevne kernels bit for bit likt; for de samme inndataene er Kshanas kernels byte for byte identiske med SPICEs (0 ulike byte i fire filer); OEM-epoker konverteres til efemeridetid innenfor 6.0e-8 s av str2et (terskel 1e-6 s), og SPICE evaluerer OEM-eksporten innenfor terskelen (verst 0,060). Syntetiske Kepler-buer: ingenting om fysisk nøyaktighet. Andre SPK-typer skrives ikke
Tester
tests/spk_writer_spice_oracle.rs (inventar, evaluering, bit- og byteidentitet, OEM-epokekonvertering; fire planlagte mutasjonskontroller gjør den rød)
ValidertSPICE SPK-typene 3 og 21 (Chebyshev, utvidede differanselinjer)spk_writer (SpkType::Chebyshev3, SpkType::DiffLines21, SpkSegment, InterpolatedSpk)
Funksjon
Skriver og leser for NAIF SPICE SPK-segmenter av type 3 (Chebyshev-polynomer for posisjon og hastighet over faste intervaller, grad 0 til 27) og type 21 (utvidede modifiserte differansematriser, differanselinjene i JPL-integratorer, MAXDIM 15 til 25), fra gitte poster, i filer som også har segmenter av type 9 og 13; valg av post og evaluering i rekkefølgen til SPICE-leserne. Kshana tilpasser ikke Chebyshev-koeffisienter og produserer ikke differanselinjer
Uavhengig referanse
CSPICE N0067 via spiceypy 8.3.0 (spkw03, spkw13 og, fra samme bibliotek via dets f2c-symbol, spkw21; spkpvn, spkgeo), forhåndsregistrert (e1cf80d8) før koden fantes, med de syntetiske postene trukket fra SHA-1 til denne commit: for tre filer (type 3 grad 0, 12 og 27 med 3 til 150 poster; type 21 MAXDIM 15, 20 og 25 med 1 til 250 linjer, null til to katalogoppføringer og en sentrumskjede; type 3, 21 og 13 i én fil med kommentarer) er SPICEs fortegnelse over Kshanas kernels eksakt, Kshanas kernels er byte for byte identiske med dem SPICE skriver fra de samme postene, og spkpvn og spkgeo er bit for bit lik Kshanas leser på både Kshanas og SPICEs filer (48 876 komponenter hver vei, terskel 1e-12 relativt). Syntetiske poster: ingenting om fysisk nøyaktighet; reelle kernels av type 21 produsert av JPL inngår ikke i tilfellene
Tester
tests/spk_3_21_spice_oracle.rs (inventory, evaluation both ways, byte identity); spk_writer::tests
ValidertCCSDS Attitude Data Messages (AEM, APM)adm (AemMessage, ApmMessage, quaternion_a_to_b), ndm_xml
Funksjon
Skriver og leser for CCSDS 504.0-B-2 Attitude Data Messages i KVN og NDM/XML: AEM versjon 2,0 (og 1,0 i KVN, med dens ATTITUDE_DIR, QUATERNION_TYPE og numeriske rotasjonssekvenser) med attitydetypene kvaternion, Euler-vinkel og spinn og deres varianter for derivert, vinkelhastighet og nutasjon, flere segmenter; APM versjon 2,0 med blokkene for kvaternion, Euler, vinkelhastighet, spinn, treghet og manøver; A-til-B-kvaternionen for en post (504.0-B-2 vedlegg F)
Uavhengig referanse
Orekit 13.1.8 (Apache-2.0) parsere og skrivere, kjørt som separat program (xval/adm-orekit), forhåndsregistrert (7a6a05fe) før noen sammenligning: Orekit parser hver melding skrevet av Kshana (14 AEM KVN, 11 AEM XML, 4 APM KVN, 4 APM XML) og hver verdi ligger innenfor sin terskel (kvaternioner 1e-14, vinkler 1e-9 deg; verst 0,054 av en terskel); Kshana parser de 31 meldingene Orekit skriver fra de samme inndataene innenfor hver terskel; rotasjonen i hver av 135 poster med kvaternion, Euler og spinn er lik AemSegment.getAngularCoordinates innenfor 1e-12 (verst 0,0071 av terskelen). Alle 15 XML-meldinger fra Kshana validerer mot NDM/XML-skjemaet 4.0.0 (datastyrt, hentet med festet SHA-256). Funn: Orekits APM-skriver avviser en manøver uten MAN_DELTA_MASS (valgfritt i standarden), så APM-manøvrer dekkes bare i retningen der Kshana skriver. Utenfor tilfellene: AEM 1,0 */RATE-typer og XML, gjentatte APM-blokker
Tester
tests/adm_orekit_oracle.rs (L1 Orekit reads 33 Kshana files, L2 Kshana reads 31 Orekit files, L3 135 record rotations; findings pinned); adm::tests; ndm_xml::tests
ValidertCCSDS Orbit Data Messages (OPM, OMM, OCM)odm (OpmMessage, OmmMessage, OcmMessage, Section, OcmBlock), ndm_xml
Funksjon
Skriver og leser for CCSDS 502.0-B-3 Orbit Data Messages i KVN og NDM/XML: OPM 3,0 og 2,0 (tilstandsvektor, osculerende keplerelementer, romfartøyparametere, kovarians, manøvrer, brukerdefinerte parametere), OMM 3,0 og 2,0 (middelelementer etter middelbevegelse eller store halvakse, TLE-relaterte parametere med BSTAR eller BTERM og AGOM, kovarians), og OCM 3,0 med bane (CARTP, CARTPV, CARTPVA; absolutte eller relative epoker), fysiske egenskaper, kovarians (CARTP, CARTPV i LTM-rekkefølge), manøver og brukerdefinerte blokker; en OMM med full presisjon fra et SGP4-elementsett ved siden av den uendrede OmmFile::to_omm_kvn
Uavhengig referanse
Orekit 13.1.8 (Apache-2.0) parsere og skrivere for OPM, OMM og OCM, kjørt som separat program (xval/odm-orekit), forhåndsregistrert (cc6841da) før noen sammenligning: 27 av de 30 meldingene skrevet av Kshana (6 OPM-, 5 OMM- og 5 OCM-tilfeller i KVN, og XML for versjon 3,0) parses i Orekit med hver verdi innenfor 1e-14 relativt og hver epoke innenfor 1e-9 s (904 verdier, verst 0,021 av en terskel), og Kshana leser alle 25 meldingene Orekit skriver tilbake innenfor de samme tersklene (858 verdier, verst 0,020); alle 14 XML-meldinger fra Kshana validerer mot NDM/XML-skjemaet 4.0.0 (datastyrt). Funn, festet, som snevrer inn påstanden: Orekit krever ELEMENT_SET_NO (valgfritt i 502.0-B-3), avviser COMMENT i brukerdefinerte XML-parametere (skjemaet tillater det), vil ikke skrive BTERM uten BSTAR (så BTERM og AGOM dekkes bare i retningen der Kshana skriver), og legger relative OCM-epoker til som SI-sekunder, så under TDB avviker de fra TDB-kalenderlesningen med omtrent 1.9e-10 s/s (UTC, TAI og TT stemmer overens). Den eldre utdataen fra OmmFile::to_omm_kvn, som pakker OMM-metadata inn i META_START/META_STOP, avvises av Orekit (registrert). Utenfor omfanget: OCM PERT- og OD-blokker, ikke-kartesiske elementsett, andre kovariansrekkefølger
Tester
tests/odm_orekit_oracle.rs (L1 Orekit leser 30 Kshana-filer, L2 Kshana leser 25 Orekit-filer; funn festet og påstått å gjenta seg); odm::tests
ValidertFeilbudsjett for 3-DOF-attityde og peiling (AOCS)attitude_budget
Funksjon
Verste-tilfelle forstyrrelsesmoment fra tyngdegradienten ((3/2)(μ/R³)ΔI) som toppen over attityde (det validerte kravet), pluss et RSS-budsjett for peilefeil over navngitte 1σ-bidrag med det dominerende leddet (en kvadratsum av tall oppgitt av den som kaller, utenfor det validerte kravet). Kan kjøres fra CLI/bindinger som scenariotypen attitude-budget (scenarios/attitude-budget.toml)
Uavhengig referanse
Basilisk 2.9.1 GravityGradientEffector (AVSLab, ISC), en uavhengig C++-implementasjon av tyngdegradientmomentet med full tensor: Kshanas topp (3/2)(μ/R³)ΔI er lik Basilisks moment ved attityden 45 deg innenfor 1e-12 relativt (verst 2.1e-15) over 5 høyder og 8 treghetstensorer, og avgrenser Basilisks moment over 2000 tilfeldige attityder per tilfelle; toleransen ble fastsatt før sammenligningen. Validert krav: toppen av tyngdegradientmomentet. RSS-peilebudsjettet er en kvadratsum av tall oppgitt av den som kaller, uten ekstern fasit, og forblir utenfor det; den håndkodede maksimeringen med full tensor i Hipparchus beholdes som støttende selvkonsistens. Ingen simulering av reguleringssløyfe/6-DoF/fleksible moder
Tester
attitude_budget::tests (GG-moment forsvinner for et symmetrisk legeme, vokser lavere ned, lineært i ΔI, RSS kvadratsum, varians-andeler-summerer-til-1); tests/attitude_gg_torque_reference.rs (20 tilfeller mot en uavhengig…
ValidertPrediksjon av passeringer over bakkestasjon (bakkesegment)passes
Funksjon
Synlighetspassasjer i tidsdomenet (AOS/TCA/LOS, maksimal elevasjon, varighet) for en propagator i motoren over en stasjon over en elevasjonsmaske, med interpolerte krysninger ved stigning og nedgang og total tilgang: passes::predict_passes, den geometriske planleggeren (ingen refraksjon eller lystid). Scenariotypen passes kjører den tilsynelatende prediktoren i raden 'Tilsynelatende passeringsprediksjon for bakkestasjon med refraksjon og lystid'
Uavhengig referanse
Orekit 12,2 (CS GROUP, Apache-2.0) + Hipparchus 3,1 — et uavhengig bibliotek for flygedynamikk: ElevationDetector (Brent-rotfinner) + EventsLogger over en ITRF-efemeride, stasjon som en WGS-84 TopocentricFrame. AOS/LOS/maksimal elevasjon/antall passeringer/total tilgang stemte overens for identisk bane + stasjon + maske + vindu (innsjekket fikstur; driver xval/orekit-passes)
Tester
passes::tests (interp-cross linear + degenerate-safe, polar→mid-lat passes, higher mask ⇒ fewer-or-equal); tests/ground_station_pass_prediction_reference.rs (22 scenarios / 129 passes vs Orekit 12.2 ElevationDetector…
ValidertTilsynelatende passeringsprediksjon for bakkestasjon med refraksjon og lystidpasses (predict_passes_apparent, apparent_look_angles, ApparentOptions, p834_tau_s_deg, p834_tau_deg, p834_theta_m_deg, p834_apparent_elevation_deg, PassesScenario)
Funksjon
Synlighetspassasjer (AOS, TCA, LOS, maksimal tilsynelatende elevasjon, varighet) for et SGP4-elementsett over en WGS-84-stasjon på den validerte banestien for jordbaner (IAU 2006/2000A, valgfrie jordorienteringsparametere), med troposfærisk refraksjon etter ITU-R P.834-9 (likningene 9 til 14, anbefalingens trykte koeffisienter) og lystiden for nedlinken, hver for seg på eller av; krysninger løst ved halvering til 1e-7 s og kulminasjonen ved gyllent snitt-søk. Kan kjøres fra CLI/bindinger som scenariotypen passes (scenarios/passes.toml), begge korreksjonene på som standard
Uavhengig referanse
Orekit 13.1.8 (CS GROUP, Apache-2.0) med Hipparchus 4.0.3: TLEPropagator på de samme elementsettene i en TEME som Orekit bygger etter den oppgitte definisjonen (dens IERS 2010 TOD rotert med GAST - GMST), ElevationDetector og ElevationExtremumDetector med og uten ITURP834AtmosphericRefraction, og AngularAzEl med AngularRadioRefractionModifier for lystidstilfellet, krysninger og maksimum løst av Hipparchus; 60 tilfeller (fire baner, fem stasjoner ved havnivå, masker 0, 5 og 10 deg, 24 timer). Tersklene ble fastsatt før kjøringen (forhåndsregistrert e947e69d, ledd 3 av 72ea9eb0). Ignoreres lystiden (9777 feil) eller endres P.834-konstanten 1,728 til 1,828 (7883 feil), blir testen rød. Omfang: stasjoner ved havnivå; Orekits P.834-koeffisient h*theta0^2 er 0,011380 der anbefalingen trykker 0,01380 (festet), så høyder over havnivå sammenlignes ikke. Runde 1, mot Orekits standard IERS 1996 TEME, holdt hver passeringsterskel, men bommet på retningsterskelen med TEME-konvensjonsgapet på 72 mas (festet)
Tester
tests/pass_predictor_on_path_orekit_oracle.rs (60 cases, 1210 passes: AOS/LOS within 3.4e-6 s, bar 5 ms; maximum elevation within 5.5e-7 deg, bar 1e-3 deg; 8979 apparent directions within 8.8e-7 deg, bar 1e-4 deg)…
ModellertAdaptiv koding og modulasjon i DVB-S2 langs en LEO-nedlinkpassasjecontact_schedule (es_n0_db, select_modcod, fspl_db, atmospheric_loss_db, ccm_modcod, pass_capacity, AcmLinkScenario); passes::predict_passes_apparent
Funksjon
Es/N0 i nedlinken langs hver passasje for én satellitt over én stasjon (EIRP, frirommstap, atmosfærisk tap etter cosecant-loven, andre tap, G/T, Boltzmanns konstant, symbolrate), den mest effektive DVB-S2-MODCOD som klarer terskelen for kvasifeilfri drift i ETSI EN 302 307-1 V1.4.1 tabell 13 pluss en implementasjonsmargin i hvert steg, passasjens ACM-datavolum, og grunnlinjen med konstant koding som lukker ved masken og lengste avstand. Kan kjøres som scenariotypen acm-link. Illustrative inndata; MODELLED.
Uavhengig referanse
Intern konsistens: spektraleffektiviteten beregnet i lukket form fra K_bch i tabell 5a og rammelengdene stemmer overens med effektivitetene tabell 13 oppgir (en transkripsjonskontroll av terskeltabellen); linkbudsjettets deler stemmer overens med sine lukkede former; utvalget er monotont i Es/N0 og respekterer marginen; ACM flytter minst volumet med konstant koding. Passasjegeometrien kommer fra den separat VALIDATED tilsynelatende passeringsprediktoren. HVA SOM IKKE ER: intet eksternt verktøy eller målt link er sammenlignet; tersklene er standardens ideelle AWGN-verdier, ikke en modems; regnfading, peiletap langs passasjen og piloter er ikke modellert.
Tester
contact_schedule::tests::modcod_efficiency_closed_form_matches_the_printed_table; contact_schedule::tests::modcod_selection_is_monotone_and_honours_the_margin…
ModellertKontaktplanlegging for flere satellitter og flere stasjoner med konfliktløsningcontact_schedule (conflicts, objective, delivered, schedule_chronological, schedule_greedy, schedule_optimal, ContactScheduleScenario)
Funksjon
Kandidatkontakter fra hver passasje satellitt-stasjon med dens ACM-datavolum; konflikter der én antenne ville betjent to satellitter innenfor sin omstillingstid eller én satellitt ville nedlinket til to stasjoner samtidig; et prioritetsvektet leveringsmål begrenset oppad til hver satellitts etterslep; en lat marginalverdi-grådig plan, en førstemann-til-mølla-grunnlinje og en eksakt branch and bound på opptil 26 kandidater, med optimalitetsgapet til den grådige planen rapportert. Kan kjøres som scenariotypen contact-schedule. Illustrative inndata; MODELLED.
Uavhengig referanse
Intern konsistens: den eksakte branch and bound stemmer overens med uttømmende opptelling på små tilfeldige mengder, hver plan kontrolleres som gjennomførbar mot konfliktreglene, og den grådige planen slår aldri det eksakte optimum. HVA SOM IKKE ER: ingen ekstern planlegger eller operativ plan er sammenlignet; kontakter tas hele (ingen deling), etterslepet er fast ved vindusstart, svingetid utover den faste omstillingstiden og lagring om bord er ikke modellert.
Tester
contact_schedule::tests::conflicts_cover_turnaround_and_one_station_per_satellite; contact_schedule::tests::greedy_is_feasible_and_the_exact_solver_beats_or_ties_it…
ValidertEnveis linkbudsjett (kommunikasjon / linkdesign)linkbudget
Funksjon
Frirommstap, C/N₀, Eb/N₀, margin og lukking over linkligningen i CCSDS 401 / DSN 810-005 for EIRP/G·T/avstand/rate/bånd mot et påkrevd Eb/N₀. Kan kjøres fra CLI/bindinger som scenariotypen link-budget (scenarios/link-budget.toml)
Uavhengig referanse
Publisert designkontrolltabell for telekommunikasjon i dypt rom som festede numeriske vektorer: DESCANSO / J. H. Yuen (red.), Deep Space Telecommunications Systems Engineering, JPL Pub 82-76, tabell 1-1 (Galileo X-bånd) — kshana setter sammen tabellens linjeposter og gjengir dens publiserte ende-til-ende L_fs 290,54 dB og Pr/N0 54,6 dB-Hz; frirommstapet er også kontrollert mot ITU-R P.525
Tester
linkbudget::tests (free-space-loss form, link-equation closure); tests/one_way_link_budget_reference.rs (DESCANSO/JPL Galileo X-band DCT reproduced end-to-end + 6 ITU-R P.525 FSL cases across DSN S/X/Ka band centres…
ModellertNøktern ramme for kostnad per dekning / ROIfrugal (over walker)
Funksjon
Kostnad per prosent dekning + dekning per euro som ROI over dimensjoneringsmotoren for konstellasjoner; kostnad per satellitt er et lav/nominelt/høyt intervall oppgitt av den som kaller (ingen oppdiktede priser)
Uavhengig referanse
Kostnadsaritmetikk i lukket form mot håndutledede verdier; en økonomisk RAMME rundt et modellert dekningstall, ikke et tilbud eller en validert kostnadsmodell
Tester
frugal::tests (hand-derived cost-per-coverage 48/96=0.5, ROI ratio 2.667, bracket-ordering + zero-coverage guards)
ModellertIntegritetsvirkning av uoppdaget miss (kontekstbevisst HPL/VPL mot alarmgrense)integrity_impact (over raim)
Funksjon
Avbilder en uoppdaget spoof-/jam-bias til effektiv feil → Stanford-område (tilgjengelig/utilgjengelig/MI/HMI) mot kontekstspesifikke HAL/VAL (åpen himmel mot by)
Uavhengig referanse
Setter sammen den eksternt validerte Stanford-klassifiseringen i RAIM (raim::classify_stanford); selve avbildningen fra uoppdaget deteksjon til AL er modellert, ikke en sertifisert integritetsallokering
Tester
integrity_impact::tests (samme bom flipper Available→MI→HMI etter hvert som konteksten strammes; konservativ-PL→Unavailable; HMI per akse; inndatavern)
ModellertParameterark for CAI med siterte feilmodeller (13503)inertial::cai_params (over inertial::quantum_imu)
Funksjon
Ytelse for kaldatominterferometer i intervall (beste/nominell/konservativ) — biasustabilitet, hastighets-/vinkel-random-walk, skalafaktorstabilitet, utspørringsbegrenset samplingsrate, dynamisk område for fringe-flertydighet — hver med sporbar kilde; mater QuantumNavBudget uten å modellere maskinvare
Uavhengig referanse
Intern konsistens: det siterte VRW-intervallet kryssjekket mot fysikken i CaiAccelerometer::accel_asd + rått dynamisk område beregnet fra grensen for fringe-flertydighet; tallene er MODELLED intervaller fra litteraturstudie (needs_source_confirmation), ingen enhet validert, ingen valideringsglorie
Tester
inertial::cai_params::tests (fysikk-VRW havner innenfor det siterte VRW-brakettet på alle 3 nivåer; rå fringe-flertydighetsområde beregnet fra k_eff·T²; konservativt budsjett driver mer enn best; hver brakett har kilde +…
ModellertBenchmark for overensstemmelse for tidsintegritet — epokeklassifiserer for Stanford-integritetsdiagramsrc/benchmark/stanford.rs
Funksjon
TIB-epokeklassifisering i Stanford-integritetsdiagram (nominell / utilgjengelig / MI / HMI)
Uavhengig referanse
Uavhengig numpy-reimplementasjon av regelen med fire områder (scripts/gen_tib_scorer_reference.py) på det identiske utvalget; metoden Cited fra Stanford–ESA-integritetsdiagrammet (Tossaint et al., ION GNSS 2007) og RTCA DO-229 WAAS MOPS. IKKE en nøyaktighetsreferanse av typen ExternalDataset — benchmarken er immun mot uærlighet.
Tester
src/benchmark/stanford.rs::tests (fire områder + inklusive grenser + |feil| + PL>AL-utilgjengelighet); tests/tib_scorer_reference.rs (klassifiseringstall mot uavhengig numpy på et fast syntetisk sett)
ModellertBenchmark for overensstemmelse for tidsintegritet — scorer for integritetsdekningsrc/benchmark/coverage.rs
Funksjon
TIB-scoring av integritetsdekning (rater for HMI/MI/tilgjengelighet + dom om overbound-dekning)
Uavhengig referanse
Uavhengig numpy-opptelling av områder i tests/fixtures/tib/reference.json; bare en kryssjekk av scorer-maskineriet, ingen nøyaktighetspåstand.
Tester
src/benchmark/coverage.rs::tests (clean/under-bounded/all-unavailable/empty); tests/tib_scorer_reference.rs (counts + rates + coverage_ok vs numpy to 1e-12)
ModellertBenchmark for overensstemmelse for tidsintegritet — feilkatalog (parametriske generatorer)src/benchmark/faults.rs
Funksjon
TIB-feilmeny (domenedivergens, klokkesmell, holdover-coast, statisk/inkrementell/symmetrisk/asymmetrisk forsinkelse, replay innenfor ferskhet, banevalgsselektiv, k-av-N-kvorum)
Uavhengig referanse
Representative parametriske feilgeneratorer (modellert); den udetekterbare mengden (symmetrisk forsinkelse, replay innenfor ferskhet) er Cited fra Mizrahi RFC 7384 og Narula & Humphreys (IEEE JSTSP 2018). Ingen uavhengig ekstern referanse — en feilkatalog gjør ingen målt påstand.
Tester
src/benchmark/faults.rs::tests (offset profiles, monotone coast, undetectable-set flagging, max_offset consistency, exactly two undetectable classes)
ModellertBenchmark for overensstemmelse for tidsintegritet — dom om absorpsjon av udetekterbare feilsrc/benchmark/scorecard.rs
Funksjon
TIB-dom om absorpsjon av udetekterbare feil (symmetrisk/replay må absorberes av PL, aldri rapporteres som detektert)
Uavhengig referanse
Egenskapskontroll av at enumen Verdict strukturelt ikke kan rapportere en udetekterbar feil som detektert (Mizrahi RFC 7384); absorbert ⟺ PL ≥ offset. Ingen nøyaktighetsreferanse.
Tester
src/benchmark/scorecard.rs::tests (referanse-PL absorberer; ødelagt PL uabsorbert-aldri-detektert; dom om detekterbar dekning; ærlighetsegenskapen at ingen dekning-/deteksjonsdom er tilgjengelig for en uoppdagelig…
Partner-ownedIngeniørarbeid for satellittbuss (AOCS/termisk/strukturer/fremdrift/kraft)
Funksjon
Ikke levert — Kshana er en simulator for navigasjonsytelse, ikke en bussleverandør
Uavhengig referanse
Ingen: merket Eid av partner
Tester
Partner-ownedDesign av RF-nyttelast og antennemaskinvare for navigasjon
Funksjon
Ikke levert — Kshana modellerer signalytelse, ikke nyttelast- eller antennemaskinvare
Uavhengig referanse
Ingen: merket Eid av partner
Tester
Partner-ownedDesign og modning av kvantenyttelastmaskinvare
Funksjon
Ikke levert — bare ytelsesmodeller; maskinvare for kaldatomer og klokker er en partners
Uavhengig referanse
Ingen: merket Eid av partner
Tester
Partner-ownedProduktsikring for flymaskinvare (stråling/EEE/MAIT)
Funksjon
Ikke levert — Kshana omfatter bare programvaresikring; produktsikring for flyvning er en partners
Uavhengig referanse
Ingen: merket Eid av partner
Tester
ValidertMånens koordinattidlunar_time
Funksjon
Relativistisk klokkerate for Jord–Måne (LTC/TCL) + kjeding av TT/TAI/UTC + ensemble
Uavhengig referanse
Ashby & Patla 2024, 'A Relativistic Framework to Estimate Clock Rates on the Moon', Astronomical Journal 167:149 (NIST; grunnlag for IAU/IAG LunaNet LTC): egenpotensialet på månens overflate L_m = 3.13881e-11 og sekulært totalt 56,02 µs/dag stemte overens som publiserte numeriske verdier; geosentrisk månehastighet kryssjekket mot JPL DE440 (de440s.bsp via SPICE)
Tester
lunar_time::tests (closed-form rate; round-trip); tests/lunar_coordinate_time_reference.rs (LTC self-potential & secular-rate terms vs published Ashby & Patla 2024 values + geocentric Moon speed vs JPL DE440)
ModellertSelvbeskrivelse i hybridrapporten for optisk/RFhybrid_integrity
Funksjon
Rapporten hybrid-optical-rf oppgir linkkonfigurasjonen den faktisk ble kjørt med (bærebølgelengde, sende- og mottaksåpning, avstand, pulsbredde, integrasjonstid, virkningsgrader og tap, standardverdier løst opp) og bærer en enhetsblokk som gir enhet og opphavsklasse for hver størrelse en artikkel sannsynligvis siterer, inkludert sporene av overleveringskovariansen i kvadratmeter
Uavhengig referanse
Ingen uavhengig ekstern referanse, og ingen er mulig: dette er selvbeskrivelse, ikke en måling. Den er registrert fordi fraværet var en mangel -- P5 måtte sitere bærebølgelengden og sendeåpningen fra kildens standardverdier, og slutte at en bar variance var i kvadratmeter ut fra en intern konsistenskontroll. Slutningen var riktig, og nettopp derfor betydde det noe: ingenting ville ha fanget at den var feil
Tester
hybrid_integrity::tests (den løste konfigurasjonen gjentas for standardverdier og for overstyringer, uten å gå rundtur med bølgelengden gjennom meter; hver units-oppføring bærer både en enhet og en opphavsklasse; hver…
ModellertTilgjengelighet for hybrid optisk/RF-link på RF-sidenhybrid_integrity, linkbudget, jamming
Funksjon
Rapporten hybrid-optical-rf oppgir en tilgjengelighet for RF-linken, sammensatt av størrelser motoren allerede beregner og ikke av en importert klimatologi, og oppgir sammensetningen som en navngitt regel: A_rf = I_closure * I_track, der I_closure er lukkingsdommen for det enveis CCSDS-401 / DSN-810-005-linkbudsjettet (linkbudget::link_budget, Eb/N0-margin >= 0) ved scenarioets egen avstand og I_track er dommen fra sporingssløyfen (jamming::lock_status) på C/N0 som DET SAMME budsjettet ga. Hver faktor bærer opphavsklassen til sin inndata videre til utdataene, og faktorene som bevisst IKKE er med i produktet -- geometrisk synlighet, avskjæring ved interferens og en klimatologi for RF-utfall -- er navngitt med begrunnelse i stedet for stilltiende å settes til 1. Det løste RF-leddet gjentas som en egen blokk rf_link_configuration, og de kontinuerlige tallene ved siden av indikatoren (linkmargin, C/N0-margin, lukkings- og sporingsavstandene i lukket form og avstandsutnyttelsen) er avstandsinversjonene av det samme budsjettet. Rapporten oppgir fullt ut, på blokken og i enhetsoppføringen en leser havner på, at dette tallet er BEGRENSET AV MARGIN/GEOMETRI og DETERMINISTISK, mens optisk tilgjengelighet er BEGRENSET AV VÆR/KLIMATOLOGI og sannsynlighetsbasert, slik at de to aldri kan siteres som et sammenlignbart par prosenttall
Uavhengig referanse
Ingen uavhengig ekstern referanse, og ExternalDataset er avslått. De to inndataene er en Eb/N0-margin og en krysning av C/N0-terskel, begge funksjoner av en MODELLED EIRP, kvalitetsmåling og samlet tapsfordeling; det finnes ingen målt tilgjengelighetsregistrering for en hybrid optisk/RF-tjeneste Jord–Måne å kontrollere det sammensatte tallet mot. Kontrollene som finnes er interne og oppgis som det: sammensetningen beregnes på nytt fra rapportens egne publiserte marginer og ikke fra emitterens interne størrelser, og lukkingsavstanden verifiseres ved å kjøre linkligningen på nytt VED den og kreve at marginen forsvinner — en inversjonsrundtur, ikke en uavhengig implementasjon. Den ærlige grensen for tallet er registrert på selve rapporten: det er en deterministisk 0/1-indikator, ikke en sannsynlighet, fordi ingenting i denne motoren måler en fordeling av RF-linkutfall ved dette båndet og denne geometrien. Den manglende inndataen er navngitt i rf_availability.factors_not_included og ikke oppdiktet, og å skaffe den er det en sannsynlighetsbasert RF-tilgjengelighet ville kreve
Tester
hybrid_integrity::tests (tilgjengeligheten er lik produktet av de to indikatorene beregnet på nytt fra rapportens egne marginer, og disse marginene er selv satt sammen på nytt fra rapportens egen EIRP, fritt-rom-tap…
ModellertSammenligning av optisk og RF-avstandsmåling på like vilkårhybrid_integrity, optical_linkbudget, linkbudget, navsignal
Funksjon
Rapporten hybrid-optical-rf gir forholdet mellom optisk og RF-avstandsmåling med den ENE konfigurasjonen begge ledd ble evaluert ved i samme objekt: samme enveis bane, samme avstand og samme akkumuleringstid. Det optiske leddet er motorens fotonbegrensede ToA-CRLB på enveis fotontall; RF-leddet er motorens termiske kodesporingsjitter for DLL early-late ved C/N0 som motorens eget linkbudsjett gir for samme enveis avstand. Sløyfestøybåndbredden er utledet, ikke valgt: B_L = 1/(2*integration_s) legger RF-leddet nøyaktig på den optiske akkumuleringstiden, og hvis en som kaller overstyrer den slik at de to midlingstidene ikke stemmer, er forholdet REFUSED -- null, med avviket og begge tidene navngitt -- i stedet for å siteres ved to driftspunkter. Ingen forhold dannes mot scenarioets VALGTE parametriske rf_position_sigma_m, og avvisningen sier hvorfor: denne inndataen bærer ingen konfigurasjon i det hele tatt. Det utgitte toveis optiske hovedtallet og den eksakte faktoren som forbinder det med enveis sammenligningsleddet gis ved siden av forholdet, slik at rapporten ikke kan leses som om den bærer to uenige optiske sigmaer
Uavhengig referanse
Ingen uavhengig ekstern referanse for FORHOLDET, og ExternalDataset er bevisst avslått. Den underliggende RF-kjeden har en -- tests/validate_p5_rf_ranging_precision.rs kontrollerer linkbudget::link_budget og navsignal::dll_code_jitter_chips mot en uavhengig Python/NumPy-fikstur og mot den hardkodede gjennomregnede verdien hos Kaplan & Hegarty (2.814e-3 chip / 0,825 m ved 45 dB-Hz) -- og den optiske CRLB har sin egen rad i lukket form. Å hevde noen av disse ankrene for denne raden ville vært lånt validering, som matriseinvariantene finnes for å hindre: størrelsen her er et FORHOLD ved en konfigurasjon med en MODELLED EIRP, kvalitetsmåling, sendeeffekt og åpning, og ingen målt sammenligning av optisk og RF-avstandsmåling ved et felles driftspunkt finnes å kontrollere det mot. Det som kontrolleres internt er det forholdet faktisk kan ta feil av: at de to leddene ligger ved ett driftspunkt. Det måles ved å skalere den felles akkumuleringstiden og kreve at begge ledd beveger seg etter den samme kvadratrotloven og at forholdet blir stående, og det håndheves ved å avvise forholdet helt når midlingstidene ikke stemmer. Begge ledd er grenser for termisk støy/skuddstøy og begge utelater mediaforsinkelse, klokkefeil og flertydighet, så utelatelsen er identisk på hver side; rapporten sier det i stedet for å la det utledes
Tester
hybrid_integrity::tests (forholdet er lik de to utsendte leddene delt på hverandre, til 1e-15 relativt, og dets resiproke og desibelformer stemmer; hvert leds avstands- og tidssigma henger sammen med nøyaktig c; den utsendte felles…
ModellertSelvbeskrivelse i linkbudsjettrapportenlinkbudget
Funksjon
Linkbudsjettrapporten oppgir hver absolutte konstant dens egen margin ble beregnet fra -- bærefrekvensen frirommstapet brukte, EIRP, kvalitetsmålingen, det samlede tapet og Boltzmann-leddet -- pluss den påkrevde G/T der marginen er null, linkkonstanten (EIRP - tap - påkrevd Eb/N0) som er den eneste kombinasjonen en publisert tabell over rate og forsterkning noen gang kan fastsette, og, når den som kaller oppgir en systemstøytemperatur, mottaksantenneforsterkningen den kvalitetsmålingen innebærer
Uavhengig referanse
Ingen uavhengig ekstern referanse: dette er selvbeskrivelse over en likning som allerede er validert mot en publisert designkontrolltabell (se raden for enveis linkbudsjett). Den er registrert fordi fraværet var en målt mangel -- å gjengi den utgitte d1_rate_gain_beamwidth.csv krevde å løse baklengs én effektiv konstant til 0,0034 dB fra alle tretti rader, og motoren navngir nå både denne kombinasjonen og beviser ved test at ingen utgitt tabell noen gang kunne ha skilt dens tre komponenter
Tester
linkbudget::tests (over tre bånd, fire størrelsesordener av avstand og begge lukkingsdommer beregnes marginen og fritt-rom-tapet under den på nytt fra rapporten alene til bedre enn 1e-9 dB; den nødvendige G/T…
ModellertTabell over krysningspunkt for månetid per klokkeklasselunar_time_budget
Funksjon
Én kjøring av månetidsbudsjettet gir en rad for krysningspunkt mellom klokke og ramme per klokkeklasse mot ett felles rammeledd, slik at klokken er den eneste variabelen i sammenligningen; hver rad bærer krysningspunktet nådd på to måter -- funnet ved halvering fra den generelle potenslovkurven for tidsfeil og invertert algebraisk fra radens dominerende støytype -- med den relative forskjellen mellom dem
Uavhengig referanse
To ulike beregninger i kodebasen av samme størrelse, ikke én gjentatt: halvering på IEEE-1139-potenslovkurven vet ingenting om støytype, mens den lukkede formen inverterer den dominerende typen algebraisk, så en feilklassifisert støytype eller et dårlig intervall viser seg som en ikke ubetydelig relativ forskjell. De fire verdiene gjengir også artikkelens publiserte tabell til halvparten av dens siste trykte siffer -- men den tabellen ble selv rekonstruert fra den samme lukkede formen, så dette er en reproduserbarhetskontroll og ikke en uavhengig ekstern referanse, og rammeleddet den måles mot er en modellert fordeling
Tester
lunar_time_budget::tests og lunar_time_budget_scenario::tests (alle fire klasser til stede i én kjøring og i en forespurt delmengderekkefølge; hver rad stemmer med sin egen lukkede form til bedre enn 1e-12 relativt; skalering av…
ValidertFelles UT1- og polbevegelsesfeil over en felles radmengdeframe_eop, realtime_frame_eop
Funksjon
Én tabell rapporterer UT1-prediksjonsfeilen, polfeilen i polbevegelsen og deres kvadraturkombinasjon ved Månen over en IDENTISK epokemengde per horisont, og gir ut epokene hver komponent ble målt ved. Separat navngir scenarioet hvilken EOP-inndata som gjelder og dekomponerer sin radtelling, og gir alltid ut tabellen for predikert mot endelig horisont med en eksplisitt forklaring på hvorfor den er tom når den er det
Uavhengig referanse
astropy 8.0.1 utils.iers (BSD-3) som leser IERS-produktet finals2000A med sin egen regel Bulletin-B-ellers-A, og pyerfa 2.0.1.5 (SOFA) fulle rotasjoner fra himmel til jord (c2i06a, sp00, pom00, c2tcio; jordrotasjonsvinkelen etter IERS 2010 lign. 5,15 i eksakt aritmetikk), kjørt som separate programmer på ordrette rader fra den frosne finals2000A.all fra 2026-09-30; forhåndsregistrert (455b8fb5) med endringene A1 og A2 som bare fastsetter referansens numeriske presisjon (begge redegjort for sammen med kjøringene de fulgte etter): hver epokeliste i tabell 3 lik, statistikkene for UT1 og pol innenfor 6e-16, kombinasjonen innenfor 1.9e-7, 12/12 tilfeller for predikert mot endelig. Kombinasjonskontrollen kan ikke løse feil i poleddet under omtrent 1e-4 relativt fordi UT1 dominerer den; polnøyaktigheten hviler på polstatistikkontrollen ved 1e-9. Reglene for epokemengde og fallback er generatoren som speiler Kshanas definisjoner, og statusene for tom tabell er designatferd uten ekstern fasit. Størrelser: IERS Annual Report 2019 tabell 3a realiserte prediksjonsfeil, Kshana/IERS 1,001 til 1,100 ved 1 til 90 dager (terskel [0,8, 1,25], Measured). Radtelling: astropy (rad med offline-inndata). Runde 1 (beholdt som regresjon): mot nøyaktighetsformelen trykt i 178 utgaver av Bulletin A stemmer polen innenfor 1.5x og UT1 gjør det ikke, noe som tester IERS-formelen mot dens realiserte feil
Tester
frame_eop::tests og realtime_frame_eop::tests (alle tre komponenter bærer like, elementvis identiske, strengt stigende epokesett over begge virkelige IERS-utdrag; fellessettet kollapser til snittet når…
ValidertStandard jordorienteringsinndata offline er et reelt IERS-produktrealtime_frame_eop, eop
Funksjon
Standardinndataene for kjøring i realtime-frame-eop er bibliotekets egen innebygde kopi av et ordrett utdrag av IERS finals2000A (tools/finals2000A_20260930.txt: 174 påfølgende daglige rader, MJD 61224-61397, skåret fra finals2000A.all for 2026-09-30) som bærer alle tre radvintagene formatet definerer, klassifisert etter IERS I/P-flaggene (eop::row_vintage): 30 Bulletin B-endelige, 54 rapid-målte rader (flagg I uten Bulletin B-blokk) og 90 Bulletin A-prediksjoner (flagg P). En kjøring uten filargument og uten nettverk gir ut en utfylt tabell per horisont, tellingen rader = final_rows + rapid_rows + prediction_rows (174 = 30 + 54 + 90) og predicted_rows.n = 90 over MJD 61308-61397; skjæringspunktet slik utgitt for sammenligningene av predikert mot endelig er den siste målte raden. Det tidligere utdraget med 32 rader (tools/finals2000A_2026.txt, hver rad med flagg I) og utdraget med fem rader med bare endelige verdier leveres og brukes fortsatt: på dem er predicted_rows.n 0, en egenskap ved inndatafilen og ikke et parserresultat
Uavhengig referanse
astropy 8.0.1 astropy.utils.iers.IERS_A (BSD-3-Clause), som leser de samme bytene med sin egen leser, og IERS Bulletin A Vol. XXXIX nr. 039-tabellen, kopiert tall for tall; forhåndsregistrert (6fdae01b) med seks eksakte kriterier før astropy ble kjørt. Alle seks holder: 30 endelige, 54 rapid- og 90 predikerte rader med like MJD-lister, hver predikerte rad med flagg P, telling ved standardkjøring lik, og prediksjonene lik Bulletin A innenfor det siste trykte sifferet. Redegjort for: utsnittet ble valgt med et enkelt kolonneutsnitt av flaggene og Bulletin B-blokken, som viste 30/54/90, før commit; utdraget er et ordrett utsnitt dette depotet skar fra et IERS-produkt (SHA-256 i NOTICE for fiksturen). Det validerte kravet er vintageklassifiseringen og tellingen for den leverte standardinndataen og dens predikerte rader; vilkårlige brukerinndata klassifiseres etter samme flaggregel, men inngår ikke i sammenligningen. 0,30 runde 1 (erstattet): den tidligere standarden kalte 12 rader med flagg I for Bulletin A-prediksjoner; motoren klassifiserer nå etter flagg. REVISJONER: standardcellene som endret seg er oppført gammel-til-ny i docs/revisions/M035-default-eop-recut-cell-changes.md (predicted_rows 12 -> 90, polgulvet 0,06776 -> 0,05550 mas, jordorienteringsleddet 14,01601 -> 14,01583 m, totalen 20,09759 -> 20,09746 m og 67,03834 -> 67,03790 ns, tabell 2-radene i tests/golden/realtime-frame-eop.csv og tallene for overensstemmelse med den operative prediktoren); tidligere revisjoner i docs/revisions/G12-default-eop-cell-changes.md
Tester
tests/embedded_eop_vintage_astropy_preregistered.rs::vintage_of_every_row_matches_astropy_and_predictions_match_bulletin_a (seks eksakte kriterier: utdragets byte; 174 rader; antall per vintage og fulle MJD-lister…
ModellertFangstfotavtrykk mot høyde og strålebreddeantenna
Funksjon
Tosidig sveip av det mønstervektede, høydebegrensede overflatefangstfotavtrykket over senderhøyde og parabolantennens diameter, gitt ut som én rad per driftspunkt med halveffektbredden hver diameter innebærer, og limbfangst rapportert som en TERSKEL -- per rad limb-J/S, dens margin og senderkraften som ville lukket den; per rutenett de lokaliserte krysningene, eller en eksplisitt oppgave om at limben ikke nås noe sted i rutenettet, med underskuddet
Uavhengig referanse
Mengdeinklusjon: forholdet mellom jammer og signal inngår som en jevn desibelforskyvning, så den fangede mengden ved høyere sendeeffekt inneholder mengden ved lavere effekt og andelen kan bare øke -- en egenskap Airy-mønsteret IKKE gir i strålebredde eller høyde, der det fangede området brytes opp i ringer og andelen genuint er ikke-monoton. Ingen publisert tabell gir den fangede skiveandelen for en månebane-sender mot høyde og strålebredde, så det finnes ingenting eksternt å kontrollere disse cellene mot; mønsteret under er separat validert mot publiserte Bessel-verdier og har sin egen rad
Tester
antenna::tests og attack_surface::tests (rutenettet er fullstendig og hver fangede andel ligger i [0 1]; fangede andel er ikke-synkende i sendeeffekt i hver node; den er IKKE monoton i strålebredde eller…
ModellertReproduserbarhet for månens tidsfeilbudsjettlunar_time_budget_scenario
Funksjon
Scenarioet lunar-time-budget publiserer sine matriseverdige utdata som en langformtabell (rutenettindeks, midlingstid, ledd) ved siden av rapporten, så de syv x(tau)-kurvene per ledd og rot-sum-kvadrat-totalen er motorutdata og ikke noe en leser bygger opp igjen fra metodeavsnittet
Uavhengig referanse
Bare selvkonsistens: det publiserte totalet kontrolleres mot rot-sum-kvadratet av leddene i samme fil, og den utgitte kurven gjengir den utgitte p3_time_budget_curve.csv over alle 57 punkter. Begge kontrollene deler motorens egne leddefinisjoner, så ingen av dem er uavhengig. Klokkeleddet hviler på publiserte klokkespesifikasjoner, men STØRRELSENE på gulvene for link, ramme, relativitet og efemeride er dokumenterte budsjettallokeringer uten uavhengig ekstern referanse
Tester
lunar_time_budget_scenario::tests (alle 57 midlingstider x 8 ledd til stede, rutenettindeksen går 0..=56 og bærer 8 rader hver; totalraden er lik kvadratroten av kvadratsummen av de sju leddene ved siden av ved hvert tau; den…
ModellertLaboratorium for månestasjonstid: holdover for miniRAFS mot LTClunar_time_lab (over clock_specs, lunar_time_budget, lunar_time)
Funksjon
Den valgfrie blokken [time_lab] i scenarioet lunar-time-budget modellerer en klokke i en månereferansestasjon (som standard klassen miniRAFS, eller en hvilken som helst navngitt klasse, eller et enhetskort tilpasset oppgitte stabilitetspunkter) styrt til Coordinated Lunar Time og deretter frittløpende eller styrt på nytt hvert N sekund: tidsfeilkurven x(t) som rot-sum-kvadratet av klokkens potenslovledd, en konstant styringsrest (ILLUSTRATIVE), en konstant realiseringsrest for LTC og et valgfritt ledd for stasjonshøydens rate; tiden etter en styring til 1, 10 og 100 ns (eller oppgitte terskler) ved halvering ved siden av den inverse i lukket form for den dominerende støytypen, og det dominerende leddet ved hver oppgitte horisont, alt med enheter
Uavhengig referanse
Bare intern konsistens: den halverte tiden til terskel kontrolleres mot den inverse i lukket form for klokkens dominerende støytype, og det frittløpende klokkeleddet mot budsjettets eget klokkeledd. Klokkeklassene hviler på publiserte endagsspesifikasjoner (deres egne rader); LTC-raten utledes ikke på nytt her og har sin egen VALIDATED rad (Månens koordinattid); styringsresten er ILLUSTRATIVE, realiseringsresten er en budsjettallokering, og ingen termisk modell er inkludert. Målet på nanosekundnivå beskrevet i ICG WG-B Lunar PNT-materialet fra juni 2024 er sitert som en kildeuttalelse, ikke overtatt som en påstand; ingenting her er en uttalelse om noen reell stasjonsklokke
Tester
lunar_time_lab::tests (free_run_clock_term_is_the_budget_clock_term: med styring av er klokkeleddet lik budsjettets klokkeledd til siste bit for alle fire klasser; bisection_matches_the_closed_form innenfor 1e-9…
ModellertGeodetisk VLBI på månenlunar_vlbi
Funksjon
Nærfelts VLBI-forsinkelse for en jordbaselinje som observerer et månebeacon + partielle deriverte
Uavhengig referanse
Plan-bølge delta_dor (samme kodebase) i fjernfeltgrensen; partielle deriverte med finite differanser. 0,30 ekstern sammenligning, et funn (forblir MODELLED): mot ANISE 0,10 konvergerte lystider gjennom DE440 (75 forsinkelser 2024-01-01 over tre DSN-baselinjer, generert av xval/anise-lunar-od uten Kshana-kode) ligger ingen forsinkelse innenfor toleransen på 1 ps. Det største gapet er 24 µs, fra det analytiske månesentrum (omtrent 200 km fra DE440), den enkle øyeblikkelige geometrien uten lystidsiterasjon (3,6 µs) og den utelatte polbevegelsen; beacon-partielle deriverte avviker med opptil 2.9e-3 relativt mot 1e-6. Påstanden i moduldokumentasjonen om at rammeapproksimasjonene ligger under modellens troverdighet holder ikke på dette nivået. 0,30 runde 2: kernel-banen (lunar_vlbi::KernelGeometry) er validert mot NAIF SPICE-lystider i sin egen rad, Geodetisk VLBI på månen, kernel-bane; ANISE-sammenligningen av den banen (75/75 innenfor 1 ps, verst 0,12 ps, tests/lunar_vlbi_anise_oracle.rs::kernel_delay_matches_the_anise_light_time_difference) er bare en kryssjekk av kernel-evaluering, fordi lystidsløsningen i den harnessen er dette prosjektets egen. Denne raden (den analytiske standardbanen) forblir MODELLED med funnet ovenfor
Tester
lunar_vlbi::tests (far-field limit matches delta_dor; near-field correction; FD partials); tests/lunar_vlbi_anise_oracle.rs::near_field_delay_disagrees_with_the_anise_light_time_difference
ValidertGeodetisk VLBI på månen, kernel-banelunar_vlbi (KernelGeometry, delay_partials_beacon_body, delay_partials_stations, LunarVlbiScenario); naif_kernel
Funksjon
Nærfelts VLBI-forsinkelse for en jordbaselinje som observerer et månebeacon, med partielle deriverte for beacon og stasjon, på kernel-banen (lunar_vlbi::KernelGeometry): DE440 Jord og Måne, DE440 lunare hovedakser, ITRF93 jordorientering med UT1 og polbevegelse, hver lystid konvergert i den barysentriske rammen, partielle deriverte med lystidsfaktoren 1/(c - u.V). Kan kjøres som scenarioet lunar-vlbi med planetary_kernel_path, earth_orientation_kernel_path og moon_orientation_kernel_path satt; de validerte utdataene er serien geometric_delay_s og epoch_partials på kernel-banen. På kernel-banen legger delay_s til det analytiske differensierte Shapiro-leddet, som ikke sammenlignes, og delay_rate og near_field_correction_us sammenlignes ikke
Uavhengig referanse
NAIF SPICE Toolkit N0067 (spiceypy 8.2.0, MIT) konvergerte newtonske lystider (spkcpt/spkcpo, CN) fra et beacon fast i MOON_PA_DE440 til DSN-stasjonene DSS-14, DSS-43 og DSS-63 fra NAIF-stasjonskernelen earthstns_itrf93_260814.bsp, med de440s, moon_pa_de440_200625, moon_de440_250416.tf, earth_latest_high_prec og naif0012; de partielle deriverte er fempunkts sentrale differanser av SPICE-lystider, ikke Kshanas formel 1/(c - u.V). Forhåndsregistrert (a689c797, epoker i 2024) med terskler på 1 ps for hver forsinkelse og 1e-6 relativt for hver partiell derivert. Den første kjøringen feilet (17/75 forsinkelser innenfor 1 ps, verst 1.03e-11 s): SPICE bærer ET som én double, hvis avstand i 2024 avrunder emisjonsepoken med opptil 6e-8 s, omtrent 6 ps lystid, og resten stemmer med denne avrundingen ved 0,99999 korrelasjon (festet; den som gjennomgikk reproduserte den uavhengig). Endring 66e365d4, skrevet etter dette resultatet og før fiksturen fantes, flyttet den samme referansen og tersklene til 25 timeepoker nær J2000, der ET-avstanden er høyst 1.5e-11 s: 75/75 forsinkelser innenfor 1 ps (verst 6.2e-14 s), 75/75 partielle deriverte for beacon (verst 7.4e-9), 150/150 partielle deriverte for stasjon (verst 3.8e-11). Utenfor påstanden: den analytiske standardbanen (serie for Månen og middels månerammen, 24 µs fra ANISE gjennom DE440, raden Geodetisk VLBI på månen), det differensierte Shapiro-leddet scenarioet legger til analytisk, medier og skaleringen fra barysentrisk til geosentrisk
Tester
tests/lunar_vlbi_spice_oracle.rs::kernel_delay_and_partials_match_spice_light_times_near_j2000 (75 forsinkelser ved 25 epoker nær J2000 over DSS-14, DSS-43 og DSS-63: forsinkelser innenfor 1 ps, verste 0,06 ps; kroppsramme-fyr…
ValidertNAIF kernel-leser: DAF-container, SPK type 2 og binær PCK type 2naif_kernel (DafFile, SpkKernel, PckKernel); ephem_provider (KernelEphemeris)
Funksjon
Motorens egen rene Rust-leser for binære NAIF-kernels (naif_kernel): DAF-containeren (begge byterekkefølger, lenkede sammendragsposter), SPK type 2 Chebyshev-posisjonssegmenter lenket gjennom sine sentre til en laveste felles stamfar, og binære PCK type 2 Euler-vinkelsegmenter gjort om til en rotasjon fra J2000 til legemet, med epoker tatt som todelt ET slik at en forskyvning under mikrosekundet beholder sin presisjon. Det er den KernelEphemeris (ephem_provider) og kernel-banene i lunar_vlbi, lunar_llr og lunar_vlbi_fim leser DE440 gjennom. Påstanden er at den leser JPL-kernels riktig; det er ikke en påstand om at DE440, eller motorens analytiske serier for Sola og Månen, er nøyaktige
Uavhengig referanse
To uavhengige kernel-lesere på de samme NAIF-filene: NAIF SPICE Toolkit N0067 (CSPICE via spiceypy 8.2.0, MIT; spkezr og pxform) og ANISE 0.10.6 (Nyx Space, MPL-2.0; Almanac.translate og Almanac.rotate), begge kjørt som separate programmer på de440s.bsp og moon_pa_de440_200625.bpc. Forhåndsregistrert (abcd9133) før noen fikstur eller referanseverdi fantes: rutenettets seed er de første 16 heksadesimale sifrene i den commitens hash, så verken de 200 epokene eller legemeparene kunne velges med resultatet i sikte; hver epoke bærer også Månen og Sola i forhold til Jorden. Tersklene ble fastsatt på forhånd ut fra Chebyshev-evaluering med dobbel presisjon (høyst 15 koeffisienter, n^2 u = 2.5e-14 per evaluering, to evalueringer og opptil to hopp per side): posisjon 1e-13 R + 1e-5 m, hastighet 1e-13 V + 1e-10 m/s, R og V den største størrelsen i forhold til den laveste felles stamfaren; rotasjonselement 1e-13 W + 1e-15, W koeffisientsummen for den dekkende posten; ANISE legger til 2 ns relativ bevegelse for sine nanosekundepoker. Resultat: hver av 600 tilstander og 200 rotasjoner innenfor sin terskel mot begge referansene, på utsnittet og på de fulle kernels; verst 6.0e-3 av terskelen (posisjon), 5.9e-3 (hastighet), 3.7e-3 (rotasjon). Mutasjon: å evaluere hver post ved -s feiler i 3597 sammenligninger. Redegjort for: en tidligere kontroll av 25 epoker mot SPICE (4.6e-5 m, tests/naif_kernel_reader_check.rs) ble sett før denne raden og er ikke dens evidens; fikstur-generatorens første kjøring avbrøt på et tomt rutenettintervall før den ga noen verdi og ble rettet. Begge sider leser DE440, så overensstemmelse validerer leseren, ikke efemeriden
Tester
tests/naif_reader_spice_oracle.rs::reader_matches_spice_and_anise_on_the_post_registration_grid (600 de440s.bsp-tilstander og 200 MOON_PA_DE440-rotasjoner ved 200 epoker 1849-2150 og tilfeldige legemepar trukket fra…
ModellertJord-GNSS på månens avstandearth_gnss_lunar
Funksjon
Mottak av Jord-GNSS på månens avstand: det svake signallaget som tabell 1 i P7 navngir og som motoren ikke hadde noen modell for. Per satellitt og per epoke beregner den vinkelen utenfor boresight mot senderens nadir, om Jorden skjuler den rette banen, skråavstanden og dens frirommstap, sendeforsterkningen ved denne vinkelen, mottatt effekt og bærebølge-til-støy-tettheten; den aggregerer deretter bare linkene som klarer en sporingsterskel, og sveiper et helt omløp for konstellasjonen slik at svaret er en FORDELING og ikke ett øyeblikksbilde. Tre fakta driver resultatet, og rapporten oppgir hvert av dem: Jorden spenner over 13,90 deg fra konstellasjonsradien, så strålens TOPP er geometrisk utilgjengelig for enhver stråle mot Månen; det som gjenstår er kanten av hovedloben og sidelobene, regimet LuGRE opererte i ved Månen i 2025; og L1-banetapet er omtrent 208 dB, rundt 25 dB mer enn en terrestrisk bruker betaler. MEASURED på den medfølgende geometrien med 24 satellitter av GPS-klasse over 64 epoker av én omløpsperiode: tilgjengelighet for SIGNAL 0,375 med en beste link på 30,93 dB-Hz, og tilgjengelighet for posisjonsbestemmelse 0,000 - høyst to samtidige sporbare linker, aldri de fire en posisjon trenger. Skillet mellom disse to tilgjengelighetene er poenget, og rapporten nekter å la dem forveksles: Jord-GNSS på månens avstand er et lag av TIDSSYNKRONISERINGS-kvalitet, ikke av posisjonskvalitet, og en prior for lagdelt resiliens må ta tilgjengeligheten for posisjonsbestemmelse. Kondisjoneringen gis ut av samme grunn - hver synlige satellitt ligger innenfor en kjegle på et par grader sett fra Månen, så siktlinjene er nesten parallelle per konstruksjon. Kan kjøres som typen earth-gnss-lunar Omformulert etter D7: påstanden på månens avstand er den RELATIVE bærebølge-til-støy-tettheten mellom satellitter ved én epoke, fra målte todimensjonale sendemønstre (NAVCEN Block IIR/IIR-M), pluss geometrisk synlighet; absolutt C/N0 hevdes ikke (Parker et al. rapporterer et felles tap på 7 til 12 dB).
Uavhengig referanse
Identiteter i lukket form og intern konsistens; INGEN uavhengig ekstern referanse hevdes. Limbens halvvinkel kontrolleres mot asin(R_earth/r_orbit) og geometrien mot den; frirommstapet, DOP-kjernen og SGP4-propageringen som dette setter sammen er hver for seg eksternt validert i sine egne rader, og denne raden låner ikke deres status. HVORFOR MODELLED, og det er sendemønsteret: forsterkningen ved en vinkel er en jevnt opplyst sirkulær åpning, Airy-mønsteret, mens en reell GPS L1-antenne er en spiralformet gruppe med tolv elementer med en formet hovedlobe som topper utenfor boresight for å jevne ut effekten over jordskiven, og sidelober som ikke er Airy. Publiserte målte mønstre finnes og er ikke innlemmet her, så rekkefølger og størrelsesordener bærer, mens dB-verdien for en enkelt satellitt ikke gjør det. EN FØRSTE IMPLEMENTASJON AV DENNE RADEN VAR FEIL PÅ EN MÅTE SOM ER VERD Å REGISTRERE: Airy-uttrykket er gyldig bare i den fremre halvkulen, argumentet går som sin(theta), og ved theta nær 180 deg slår det rundt og gir FULL BORESIGHT-FORSTERKNING bak åpningen - så de to sterkeste linkene i den første rapporten var satellitter som pekte antennene bort fra Månen, og de var de eneste to som klarte terskelen. Bak åpningen anvender modellen nå et flatt gulv for baklobe, oppgitt som en grense og ikke som en oppdiktet mønsterform. Bevisst fraværende, og hver gjør budsjettet OPTIMISTISK: intet ionosfærisk eller troposfærisk tap på stråler som streifer limben, ingen polarisasjons-, peile- eller implementasjonstap, og en sfærisk Jord uten refraktiv utvidelse. Månens posisjon er en INNDATA, ikke et efemeridoppslag, fordi størrelsen som testes er linken og strålegeometrien. Å oppgradere denne raden til validert krever et målt sendemønster og LuGRE-normalpunkter å kontrollere mot; ingen av delene finnes i depotet og ingen er oppdiktet her. 0,30 runde 2, et funn (forblir MODELLED): en linkbane med målte inndata (reelle SP3-posisjoner, sendeeffekt per blokk, tabulerte send- og mottaksmønstre, hysterese for innhenting og sporing) ble kontrollert mot Montenbruck et al. 2023 tabell 3 for GENESIS ved 6000 km (forhåndsregistrert 5b414f0a): middelverdier for zenitantenne stemmer overens for 5 av 6 innenfor én dB av artikkelens sensitivitet; middelverdier for nadirantenne er 1,0 til 2,4 satellitter høyere enn trykt, sannsynligvis fordi artikkelen brukte asimutavhengige GPS-sidelobemønstre som ikke er publisert. Tallene for månens avstand i denne raden bruker fortsatt Airy-erstatningen. 0,30+ D7, et funn (forblir MODELLED): den omformulerte størrelsen, C/N0-FORSKJELLEN mellom satellitter av Block IIR/IIR-M sporet ved én epoke, predikert med de målte L1-mønstrene per SVN fra NAVCEN (todimensjonale, i girstyringsrammen) mot LuGRE-flyvningens C/N0 (forhåndsregistrert 768cb62b: 99 % synlige, parvis RMS <= 3,0 dB, median <= 2,0 dB, minst 50 poster og 30 par) har for lite data: de 26 kvalifiserende epokene for transitt og månebane har 15 sporede IIR/IIR-M-poster (for det meste IIF og III spores) og ett par. Alle 15 er predikert synlige, og det enkelte parets residual er -0.06 dB; ingenting hevdes
Tester
earth_gnss_lunar::tests (11 bibliotekstester: halvvinkelen til jordlemmen mot sin lukkede form asin(R/r) med en ytterligere påstand om at HVER ikke-okkultert link ligger utenfor den kjeglen, slik at okkultasjonstesten og lemvinkelen…
ModellertBanebestemmelse for Månen: Jord-GNSS mot radiometri fra bakkenlunar_infra::{orbit, gnss, od}
Funksjon
Banebestemmelse i en nesten rettlinjet halobane (eller en elliptisk frossen bane) fra to uavhengige datatyper: Jord-GNSS-pseudoavstander mottatt om bord (linkregelen fra raden Jord-GNSS på månens avstand, pluss okkultasjon av Månen) og toveis avstand og avstandsrate fra bakken fra tre stasjoner i Deep Space Network. Hver er en minstekvadraters batch i ett steg om referansebanen med sin formelle kovarians; en seedet Monte Carlo av differansen mellom de to estimatene tester om de to kovariansene forklarer den (q = d' (P_G + P_R)^-1 d, kjikvadrat med seks frihetsgrader når modellene stemmer) og hva en ikke-modellert akselerasjon gjør med statistikken.
Uavhengig referanse
Et uavhengig scipy/numpy-program integrerer de samme variasjonslikningene (terskel O1). Ingenting sammenlignes med en måling av en månebane. Referansen kontrollerer numerikken i oppgitte formler, ikke fysikken, så raden forblir MODELLED. Begrenset tolegemeproblem med tre legemer: ingen Sol, ingen månens harmoniske, jordens rotasjonsakse langs banenormalen, ILLUSTRATIVE inndata for mottaker og stasjon.
Tester
tests/lunar_infra_od_consistency.rs (terskel O1: tilstandsovergangsmatrisen kjedet over tre dager og over én periode er lik scipy DOP853 til relativt 1e-6; terskel C1: gjennomsnittlig q og andelen innenfor 95 %; terskel C2: utvalg over…
ModellertBærebølgefaseflertydighet på Månen: overflate og orbiterlunar_infra::phase; lambda
Funksjon
Enkeltdifferensiert Jord-GNSS bærebølgefase og kode mellom mottakere ved en månestasjon på overflaten og en orbiter, med klokkedifferansen per epoke profilert ut, én flertydighet per sammenhengende passasje og den lengste passasjen som gauge. Kovariansen for float-flertydigheten er et Schur-komplement; LAMBDA løser heltallene, den bootstrappede raten rapporteres ved siden av en seedet Monte Carlo-rate for suksess med heltalls minstekvadrater og sigmaene for posisjon med float og fastsatt løsning. Rapportert som funnet: ved de registrerte 12 dBi er dobbeltdifferanseproblemet ikke mulig å danne (endring 1 flyttet standarden til 25 dBi etter at bare tellinger av tilgjengelighet var sett), og ved 25 dBi oppnås heltallsfastsettelse IKKE - utenfor rekkevidde (noen få prosent høyst), selv om float-løsningen forbedres med buen.
Uavhengig referanse
En uavhengig numpy-løsning av de samme normalligningene fra de eksporterte radene (Q3) og en brute-force-opptelling av heltall (Q4). Ingen GNSS- eller månebærebølgefasemåling er sammenlignet. MODELLED.
Tester
tests/lunar_infra_carrier_phase.rs (terskel Q1: Monte Carlo-suksess minst bootstrap-grensen minus tre standardfeil; Q2: ingen nedgang med buelengde utover tre standardfeil; Q4: LAMBDA er lik brute-force…
ModellertSamestimering av månens ramme: overflatestasjoner og orbiterelunar_infra::frame; lunar_datum; lunar_identifiability; lunar_llr_geometry
Funksjon
Fisher-informasjon for månerammens datum med sju parametere fra laseravstandsmåling fra jordstasjoner til de fem reflektorene alene og med avstander fra orbiter til overflatestasjon lagt til: informasjonsmatrisen, rang, Cramer-Rao-sigmaer, degenerasjonsmålet fra modulen for identifiserbarhet på månen og seedede tilfeldige stasjonsmengder. Banen holdes kjent i månens akser (dens feil bæres av orbiterens avstandssigma).
Uavhengig referanse
En uavhengig numpy-finitt-differanse av framoverrettede modellen (F2). Ingenting er sammenlignet med reelle løsninger for månens ramme. Faktoren er betinget av den antatte kjente banen og avstandssigmaen på 1 m. MODELLED.
Tester
tests/lunar_infra_studies_3_5.rs (terskel F1: CRLB-sporet stiger ikke og den minste egenverdien synker ikke med orbiterlinker, i eksempelet og i 20 seedede tilfeldige sett; terskel F2: avstandspartiellene er lik en…
ModellertPresisjon for rammeknytning i rommet: samlokalisert GNSS, VLBI og laseravstandsmålinglunar_infra::tie; fim::crlb_srif
Funksjon
Cramer-Rao-presisjon for translasjons-, skala- og rotasjonsforskyvningene mellom teknikkene GNSS, VLBI og laseravstandsmåling når ett romfartøy bærer alle tre, med romfartøyets posisjon eliminert ved hver epoke og ni lokale knytningsforstyrrelsesparametere som bærer en prior, sveipet over nøyaktigheten til den lokale knytningen. Kovarianser ved kvadratrotmetoden (normalligninger mister sifrene når teknikkene er nær perfekte).
Uavhengig referanse
Et uavhengig numpy-stablet system med posisjonsukjente eliminert ved eksplisitte Schur-komplementer (T3). Ingen data fra GRASP, Genesis eller andre misjoner er sammenlignet. MODELLED.
Tester
tests/lunar_infra_studies_3_5.rs (terskel T1: translasjonssigmaer synker ikke når den lokale bindingen løsnes; T2: med teknikksigmaer skalert med 1e-6 er hvert pars translasjonssigma innenfor 1 % av sqrt(2) ganger den lokale bindingens…
ModellertSensitivitet for Love-tall og librasjon på Månenlunar_infra::geodesy; lunar_od::degree2_tide_accel; lunar_time
Funksjon
Fisher-informasjon for h2, k2, l2 og de fysiske librasjonsamplitudene fra laseravstandsmåling (radial og horisontal tidevannsforskyvning, reflektorrotasjon), orbitersporing (grad-2 k2-akselerasjonen integrert langs siktlinjen, trend fjernet), et gravimeter på overflaten (gravimetrisk faktor 1 + h2 - 1,5 k2) og en klokke på overflaten (fraksjonal rate (1 + k2 - h2) W2/c2, knyttet til månetidskonstantene). Nominelle verdier for h2 og l2 er lineariseringspunkter; studien sier hva som er sensitivt for hva, ikke hva tallene er.
Uavhengig referanse
En uavhengig numpy-sammenstilling med finitt differanse (G2) og evaluering i lukket form (G4). Sensitiviteten for k2 i orbiterfamilien er et tall i øvre ende (banetilstanden absorberer her bare en konstant og en trend). Ingen måling av månetidevann eller librasjon er sammenlignet; k2 er sitert fra Lemoine et al. 2014 som en nominell verdi. MODELLED.
Tester
tests/lunar_infra_studies_3_5.rs (terskel G1: analytiske partielle deriverte er lik en sentral differanse av hver foroverrettet modell til 1e-8; G2: 5x5-informasjonen er lik en uavhengig numpy-sammenstilling til 1e-6; G4: klokketidevannet…
ModellertDOP-forsterkning med overflatebeacons på Månenlunar_beacon
Funksjon
Beacon-forsterket presisjonsfortynning for en månebruker på overflaten: radene for siktlinjer til synlige satellitter og avstandsradene til synlige overflatebeacons settes sammen til én designmatrise og evalueres gjennom den felles DOP-kjernen, og den resulterende DOP avbildes til en realisert 1-sigma-nøyaktighet I METER gjennom en brukerekvivalent avstandsfeil per beacon satt sammen som rot-sum-kvadratet av ledd for klokkesynkronisering, flerveis og oppmåling. Synlighet for beacons er den geometriske horisonten med to høyder på Månen uten atmosfære, som ikke har noen refraktiv utvidelse og derfor er eksakt og ikke approksimativ. Kan kjøres som scenariotypen lunar-beacon, som rapporterer bare satellitter, satellitter pluss beacons og en større konstellasjon som den konkurrerende veien til samme geometri. MEASURED på den medfølgende gylne geometrien (bruker ved -80 deg, tre oppmålte beacons, illustrativ LCNS med seks satellitter ved t=0, maske 5 deg): 5 synlige satellitter gir PDOP 9,6941 og en 3D 1-sigma på 11,222 m; å legge til beaconene som faktisk klarer horisonten gir PDOP 4,1160 og 4,765 m, en faktor på 2,355; tjenesten med 24 satellitter gir i stedet PDOP 2,4226 og 2,804 m, en faktor på 4,002. Rapporten skriver ut antallet SYNLIGE beacons og ikke det konfigurerte, og i denne geometrien klarer bare ÉN av de tre beaconene horisonten: de to flankerende stedene ligger omtrent 333 km fra brukeren mot en horisont på 86 km for en antenne på 2 m, slik at en leser aldri må anta at alle tre bidro
Uavhengig referanse
DOP-aritmetikken er kjernen crate::orbit::dop, separat eksternt validert mot gnss_lib_py i tests/dop_reference.rs; denne raden låner ikke på nytt den radens status. Horisonten for beacon-synlighet er den lukkede formen L01, og sigma = DOP x sigma_URE er standardrelasjonen for GNSS (Kaplan og Hegarty, Understanding GPS/GNSS, avsnitt 7). Innenfor denne raden kontrolleres selve forsterkningen mot en uavhengig DOP-bane i depotet og festes til en innsjekket gylden verdi. HVORFOR MODELLED: konstellasjonsdesignet, beacon-plasseringen, antennehøydene og alle tre størrelsene i feilbudsjettet er illustrative inndata og ikke en utplassert oppmåling eller en målt link, så de rapporterte metrene er en egenskap ved et valgt scenario og ikke ved noen utplassert tjeneste. MERKNAD OM OPPHAV: denne funksjonen var annonsert i README og utøvd av to valideringstester, men bar INGEN matriserad og ingen scenariotype, så den kunne ikke nås fra en kjøring i det hele tatt. Den var hevdet i prosa, fraværende i registeret og utilgjengelig i motoren samtidig. Raden og typen ble lagt til sammen. 0,30 runde 2 (forhåndsregistrert db0eb9ec), blokkert (forblir MODELLED): ANISE 0.10.6 synlighet og en numpy-DOP på radens geometri stemmer overens (synlige mengder eksakte, inkludert 72 tilfeller nær horisonten og 48 nær masken; DOP innenfor 7.2e-13), men de rapporterte metrene er DOP ganger en illustrativ rot-sum-kvadrat-avstandsfeil på 1,158 m uten uavhengig referanse; avgrensningen som ville utelatt dem venter på en beslutning fra eieren
Tester
lunar_beacon::tests (horisontsynlighet mot den lukkede formen L01; den fyrstøttede DOP mot den uten; feilbudsjettets kvadratrot av kvadratsummen; DOP-til-meter-forholdet)…
ValidertFelles-modus integritetsblindhetlunar_common_mode
Funksjon
Eksakt oppdeling i paritetsunderrom av en målefeil i den delen RAIM ikke kan se og den delen den kan. For den lineariserte øyeblikksmodellen y = G·x + e dekomponeres enhver feil dy entydig i en BLIND komponent i range(G) — absorbert som en tilstandsfeil S·dy og utslettet av residualprojektoren Pperp = I − G·S, og dermed usynlig for ENHVER residualtest, ikke bare for en bestemt terskel — og en DETEKTERBAR komponent i paritetsrommet. Modulen gir ut projektoren, oppdelingen og den blinde andelen, slik at den som kaller kan tallfeste hvor mye av en bestemt feil en øyeblikksmonitor strukturelt ikke kan rapportere. Anvendt på det reelle gulvet mellom efemerider: den meternivå uenigheten mellom DE440 og INPOP21a og mellom DE440 og EPM2021 i geosentrisk posisjon for Månen absorberes nesten fullstendig som brukerposisjonsfeil (median blind andel 1,000000; median blind posisjonsfeil 2,3955 m og 2,0050 m) mot en paritetsresidual på nivået 1e-15 m
Uavhengig referanse
P2: numpy linalg.lstsq (LAPACK gelsd SVD, BSD-3) beregner minstekvadraters oppdelingen på nytt på innsjekkede inndata MED en reell paritetsdel (dy = E·Δs + w, w ~ N(0, 1 m), seed 20261001) på geometrien med 8 satellitter og en delmengde med 6 satellitter, 1464 tilfeller over begge reelle efemeridepar, forhåndsregistrert (f672a314): blind_dx, residual, blind_norm og detectable_norm innenfor 1e-12 relativt til |dy| og blind_fraction innenfor 1e-12 absolutt (verst blind_dx 1.06e-14, residual 4.4e-15, blind_fraction 3.1e-15). numpy bygger G selv fra de innsjekkede posisjonene, mens motoren bruker normalligninger med Gauss-Jordan; en skråvinklet venstreinvers gjør testen rød ved 5.5e-2 |dy|. Endring 1 (86c53301, etter en første kjøring, redegjort for) lempet bare en inndataforutsetning på paritetsandelen (hvert tilfelle minst 1e-3 og 95 % av hver geometri minst 0,05), ikke overensstemmelsesterskelen. Validert påstand, slik P2 tillater: lineær algebra for oppdelingen på disse inndataene; størrelsene på gulvet mellom efemerider og den illustrative månegeometrien (8 noder av LCNS-type ved 5000 km) er inndata, ikke validert, og blindheten er en kjent egenskap ved all RAIM med øyeblikksbilde. Sammenligningen med numpy i runde 1 (tests/lunar_common_mode_integrity_reference.rs) kontrollerte bare identiteten S·G = I fordi inndataene lå i range(G); den beholdes som regresjon. Opphav for efemeridene: tests/fixtures/inter_ephemeris/NOTICE.md (JPL, IMCCE, IAA RAS)
Tester
lunar_common_mode::tests (8 bibliotekstester: oppdelingen er additiv og rekonstruerer dy; en fellesmodus-kovarians gir et positivt fellesmodus-beskyttelsesnivå mens en kovarians med bare paritet gir et nær null; den…
ModellertBeskyttelsesnivå for felles modus og total integritetsomhyllinglunar_common_mode
Funksjon
cmpl_horizontal avgrenser den horisontale posisjonsfeilen med k sigma fra klassen med blind felles modus, ved å danne blind_position_covariance = S*Cov*S^T og projisere den inn i ENU; integrity_envelope rapporterer hpl_total = hpl_araim + cmpl. Skillet paret finnes for å gjøre: RESIDUALtesten i RAIM/ARAIM er bevisbart blind for feil i range(G), men BESKYTTELSESNIVÅET i ARAIM er ikke det - dets feilfrie ledd avgrenser dem allerede opp til en leverandørs URA pluss nominell bias. CMPL er derfor bare OVERSKUDDET mellom leverandører som en enkelt leverandørs URA/ISM per leverandør ikke overavgrenser, og summen er en konservativ grense etter trekantulikheten og ikke en RSS, gyldig bare der overskuddet ikke allerede ligger innenfor URA.
Uavhengig referanse
Analytisk projektoralgebra kontrollert mot seg selv: en kovarians begrenset til range(G) må gi en positiv CMPL, en kovarians begrenset til paritetsrommet må gi omtrent null, og omhyllingen må summere to bidrag som er ortogonale i målerommet. Felles-modus-kovariansen, konstellasjonsgeometrien og k er representative modellerte inndata, IKKE et sertifisert budsjett, og det hevdes ikke at trekantgrensen er stram. MERKNAD OM OPPHAV: cmpl_horizontal, blind_position_covariance og integrity_envelope er offentlige og leveres, og enhetstestene deres var allerede sitert av raden for felles-modus-blindhet, men SELVE OMHYLLINGSPÅSTANDEN hadde ingen rad - så forbeholdet som holder den ærlig, at summen er en trekantgrense og ikke en RSS, var oppgitt ingen steder i registeret. Raden registrerer påstanden og forbeholdet sammen.
Tester
lunar_common_mode::tests (common_mode_covariance_gives_positive_cmpl, parity_only_covariance_gives_near_zero_cmpl, envelope_sums_the_two_classes, state_map_matches_split)
ValidertFelles månebanebestemmelse med flere teknikker + klokkelunar_combination (problem, model, estimate, formal_covariance); batch_ls (gauss_newton_qr)
Funksjon
Batchfusjon av VLBI + lokal avstand på månen + avstand mellom satellitter for å gjenvinne posisjoner og klokker for stasjoner og konstellasjon
Uavhengig referanse
P2: numpy 2.4.6 (numpy.linalg.lstsq med LAPACK gelsd, numpy.linalg.inv; BSD-3) beregner hvert Gauss-Newton-steg, den konvergerte vektede minstekvadraters løsningen, de formelle sigmaene og stasjonsfeilen på nytt på de innsjekkede jakobianene og observasjonene for seks simulerte nettverk, forhåndsregistrert (5094bc31) ved max(1e-8, 100 kappa eps) relativt. Den første kjøringen feilet for nettverket uten VLBI (6.1e-7 mot 1e-8, en normalligningsinvers ved kondisjon 1.4e5); motorrettingen skrevet etter dette resultatet (batch_ls::gauss_newton_qr, et Householder-QR-steg brukt av estimate og formal_covariance) ble kjørt på nytt ved uendret terskel: steg 1.1e-14 til 2.4e-11, sigmaer høyst 1.3e-11. Det validerte kravet er den lineære algebraen i fusjonsløsningen på disse inndataene, ikke de fysiske størrelsene i det simulerte nettverket eller dets observasjonsmodeller: raden for geodetisk VLBI-forsinkelse på månen forblir MODELLED (dens analytiske bane avviker fra ANISE med opptil 24 µs), og rammene har sine egne rader. Gjenvinning av en injisert simulert fasit og NEES-konsistens forblir interne kontroller; den tidligere kryssjekken mot Orekit 12,2 / Hipparchus Levenberg-Marquardt (tests/lunar_joint_multi_technique_od_reference.rs) utøver batch_ls::gauss_newton, som estimate ikke lenger kaller, og beholdes som en kontroll av den primitiven. 0,30 revisjon: standard stasjonsfeil i lunar-joint-od-clock 3,541344 -> 3,541350 m med VLBI og 2183,119 -> 2183,558 m uten (QR-løsning). 0,36 revisjon (STUDIO-15, portabel matematikk; docs/revisions/STUDIO15-portable-math-rebaseline.md): 3,541350 -> 3,536885 m med VLBI og 2183,558 -> 2184,021 m uten, og løsningen uten VLBI stopper etter 5 iterasjoner og ikke 2 (et avrundingsbegrenset stopp på det dårlig kondisjonerte nettverket); den forhåndsregistrerte sammenligningen ble kjørt på nytt med reeksporterte inndata ved uendret terskel (numpy 2.4.6, alle seks nettverk består)
Tester
lunar_combination::tests (gjenvinner simulert referanse; VLBI gjenoppretter 3D-observerbarhet for stasjoner; deterministisk); tests/lunar_joint_multi_technique_od_reference.rs (6 geometrier × 16 parametere, 31 obs hver, mot Orekit 12,2 /…
ValidertFisher-informasjon og Cramér–Rao-observerbarhetfim
Funksjon
Fisher-informasjon M=HᵀWH, Cramér–Rao nedre grense, observerbarhetsrang / null-rom for datumdefekt (Moore–Penrose pseudoinvers) og D/A/E/T-optimale forsøksutformingsskalarer fra en symmetrisk Jacobi-egenverdiløser
Uavhengig referanse
NumPy 2.4.1 (numpy.linalg.eigh / .inv; BSD-3-Clause, LAPACK-basert) — en uavhengig tredjepartsreferanse som beregner de samme entydig definerte egenverdiene, σ²(XᵀX)⁻¹ Cramér–Rao-kovariansen og GNSS-faktorene for presisjonsfortynning (dilution of precision) med en annen algoritme (LAPACK divide-and-conquer + LU) enn Kshanas syklisk-Jacobi-sveip og spektrale pseudoinvers; stemmer til 1e-9. Den samme typen eksternt bibliotek validerer allerede DOP-motoren (mot gnss_lib_py) og χ²/erf-kjernene (mot SciPy). Dessuten kontrollert mot Kays (1993) lukkede CRLB-formler og mot Monte Carlo-oppnåelse av CRLB (intern)
Tester
tests/fim_observability_reference.rs (egenverdier mot numpy.linalg.eigh; CRLB-kovarians mot σ²(XᵀX)⁻¹ via numpy.linalg.inv; GNSS GDOP/PDOP/HDOP/VDOP/TDOP fra informasjonsmatrisen mot numpy — alle samsvarte til 1e-9)…
ModellertObserverbarhet av månens absolutte stasjonsposisjon (datumdefekt)lunar_combination (lunar_observability) + fim
Funksjon
Fisher-informasjonsobserverbarhet for den felles månebestemmelsen: uten jordgrunnlinjer ligger absoluttsystemets datum i null-rommet til HᵀWH (stasjonsposisjonen er uobserverbar); ≥3 grunnlinjer gjenoppretter full rang og begrenser stasjonens Cramér–Rao-feil, som estimatoren oppnår
Uavhengig referanse
Analytisk datumdefektstruktur — den uobserverbare absoluttsystemmodusen ligger i null-rommet til Fisher-informasjonen (lukket form), rangterskelen svarer til den publiserte begrunnelsen for en 3-stasjonsutforming, og estimatoren oppnår den resulterende CRLB i Monte Carlo. Selve månegeometrien er et representativt nettverk (ikke en fløyet efemeride), så raden forblir MODELLED; den underliggende FIM/CRLB-motoren kontrolleres separat mot Kays (1993) lukkede former. 0,30 runde 2 (forhåndsregistrert fab02df9), blokkert (forblir MODELLED): NumPy/SciPy beregner rang og defekt på nytt ved den oppgitte terskelen 1e-9, stasjonsaksenes andel av null-rommet (innenfor 8.4e-10) og stasjonens CRLB (innenfor 1.2e-10) på 17 innsjekkede, Kshana-genererte konfigurasjoner (P2). Ikke oppgradert: påstanden om at estimatoren oppnår grensen (Monte Carlo-effektivitet omtrent 0,98) har ingen uavhengig referanse, og avgrensningen som ville la den forbli MODELLED venter på en eierbeslutning
Tester
lunar_combination::tests (rangmangel uten jordgrunnlinjer; tre grunnlinjer gjenoppretter full rang — terskelen på 3 stasjoner fra informasjonsrangen, ikke løsningsfeil; stasjons-CRLB nås av estimatoren ved…
ValidertRealisering av månens referansesystemlunar_frame_realise
Funksjon
7-parameter Helmert-datumtilpasning + ICRF-orienteringsknytning fra et nettverk av punkter
Uavhengig referanse
Uavhengig lukket-form vektet Umeyama (Horn) likhetstransformasjonsløser (numpy/scipy SVD-basert; Umeyama 1991 IEEE TPAMI, Horn 1987 JOSA A) — en annen algoritme enn kshanas iterative Gauss–Newton-tilpasning, som når det samme entydig definerte vektede minstekvadratoptimumet på byte-identiske punktnettverk
Tester
lunar_frame_realise::tests (gjenvinner innsatt Helmert-transform); tests/lunar_reference_frame_realisation_reference.rs (14 tilfeller mot en uavhengig lukket-form Umeyama-SVD-løser; verste |Δ| translasjon 2.0e-5 m…
ValidertMånens navigasjonstjenestevolumlunar_service
Funksjon
Månens DOP / dekning / tilgjengelighet i Moonlight-klassen + generaliserte ARAIM-beskyttelsesnivåer for månen over et tjenestevolum
Uavhengig referanse
Uavhengig tredjepartsreferanse ANISE 0.10.2 astro::Orbit Keplerpropagator (Nyx Space, MPL-2.0) — en ekvinoktial tolegemekodebane som er forskjellig fra kshanas Newton-Raphson-Kepler; MCI-posisjonen per satellitt stemmer til <1e-3 m, og det avledede antallet/settet av synlige satellitter stemmer nøyaktig i hvert rutenettpunkt. DOP-kjernen er validert mot gnss_lib_py; integritet bruker publiserte LunaNet/LCNS-parametere
Tester
lunar_service::tests (DOP gjenbruker den validerte kjernen; PL reduseres til sørpoltilfellet); tests/lunar_navigation_service_volume_reference.rs (MCI-posisjon per satellitt til <1e-3 m + EKSAKT sett av synlige satellitter over…
ModellertLunaNet AFS-spredningskodegenerering (LSIS V1.0)lunar_afs::codes, lunar_afs::lsis, lunar_afs::params (IS-GPS-800J indices)
Funksjon
Kodene for Augmented Forward Signal i LSIS V1.0 (29 januar 2025): AFS-Q 10230-chip primærkoden generert fra IS-GPS-800 L1C-pilotkonstruksjonen med IS-GPS-800J-indeksene (de samme 210 tildelingene som LSIS tillegg D skriver ut), AFS-I 2046-chip Gold-kodene generert fra g1 = x^11 + x^2 + 1 og g2 = x^11 + x^8 + x^5 + x^2 + 1 der hver PRNs G2-forsinkelse er hentet fra standardens Annex 3-fil, de fire sekundærkodene, de 1500-chip tertiærkodene, den midlertidige nodetildelingen i tabell 11 og den nivådelte pilotkoden. LSIS-innholdet leses ved kjøring fra en lokal hurtigbuffer som er SHA-256-verifisert og fylt fra den NASA-hostede PDF-filen, og det videredistribueres aldri
Uavhengig referanse
Referanse: verdiene LSIS V1.0 skriver ut for validering (tabell C-1 til C-5, D-1 til D-6, E-1 til E-6) og de elektroniske kodefilene i Annex 3, under et nullavvikskriterium fastsatt før sammenligningen. Kriteriet bommes av én trykt celle som er internt inkonsistent med standardens egen Annex 3-fil, så raden forblir MODELLED; en erratanotis er utarbeidet. De samme chipene er også lik LANS-AFS-SIMs (rad «LunaNet AFS baseband rendering against an independent generator, given its channel state»)
Tester
lunar_afs::codes::tests (registre med maksimal lengde, Legendre-balanse, G2-forsinkelse rundtur, nivåsammensetning); tests/lunar_afs_codes_lsis_reference.rs::afs_codes_finding_one_misprinted_table_cell (uten LSIS-cachen…
ValidertLunaNet AFS-basebåndgjengivelse mot en uavhengig generator, gitt dens kanaltilstand (LSIS V1.0)lunar_afs::waveform::render, lunar_afs::codes, lunar_afs::frame
Funksjon
Gjengivelseskjernen i AFS-basebåndet (LSIS-130: kompleks envelope I + jQ, I = AFS-I Gold-koden ganger rammen på 500 symboler/s ved 1,023 Mchip/s, Q = den nivådelte AFS-Q-piloten ved 5,115 Mchip/s, bærebølgerotasjon, chip- og symboljustering) gjengir en uavhengig generators sampler når den drives av generatorens egen registrerte kanaltilstand (kodefaser og -rater, bærebølgefase og -frekvens, amplitude per kanal). Dekkes ikke: nodemodellen som utleder denne tilstanden fra en Doppler, en forsinkelse og et bærebølge-til-støy-tetthetsforhold, 50/50-effektfordelingen beregnet fra bærebølge-til-støy-tettheten (amplitudene hentes fra simulatoren), og SigMF-metadata og skriving av 8-bits sampler
Uavhengig referanse
Bibliotek: LANS-AFS-SIM (T. Ebinuma, BSD-2-Clause, commit 480c6bf353717bafc04b5ee5bafb38ed90e61aae, S-bånd-bygg, kjørt som et eget program); Kshanas sampler drives bare av simulatorens registrerte kanaltilstand, og et bygg som bare skriver ut sporing er kontrollert som byte-identisk med det upatchede. Terskler fastsatt før kjøringen: null chip- og symbolavvik, |rho| >= 0,999 over kjøringen og >= 0,99 per blokk på 2 ms, fase innenfor 0,05 rad. Like I- og Q-amplituder er en inngangsverdi i sammenligningen, så effektfordelingen testes ikke av den. LANS-AFS-SIM leser sine tertiærkoder fra LSIS Annex 3-filen, så den delen er ikke uavhengig av koderaden. LANS-AFS-SIM og PocketSDR-AFS har samme forfatter og regnes som én uavhengig implementasjon. Avhengig av data: LANS-AFS-SIM-sammenligningen trenger den lokale LSIS V1.0-hurtigbufferen (xval/lunar-afs/fetch_lsis.sh, SHA-256-verifisert) og hoppes over med en melding uten den
Tester
tests/lunar_afs_waveform_lans_afs_sim_oracle.rs::afs_chips_match_lans_afs_sim (de 210 AFS-Q-primærkodene alltid; med KSHANA_LANS_RUN og LSIS-cachen alle 630 kodene, null chip-mismatch)…
ValidertLunaNet AFS-rammekanalkoding, FID 0 (LSIS V1.0)lunar_afs::frame, lunar_afs::ldpc, lunar_afs::lsis
Funksjon
FID 0-rammen på 12 s og 6000 symboler i LSIS V1.0: synkroniseringsmønster på 68 symboler, BCH (51, 8) delramme 1 (oktal-763-generator), CRC-24 ((1 + X)·P(X)) på delramme 2-4, rate 1/2 LDPC-koding med de trykte A, B^-1, C, D (LSIS Annex 1, lest ved kjøring fra den SHA-256-verifiserte lokale hurtigbufferen) og standardens punktering, 60 x 98 blokkinterleaver; en uttømmende delramme-1-dekoder som flagger en TOI utenfor 0..99, og en normalisert min-sum LDPC-dekoder skrevet ut fra H = [[A, B, 0], [C, D, I]] alene
Uavhengig referanse
Bibliotek: LANS-AFS-SIM (T. Ebinuma, BSD-2-Clause, commit 480c6bf353717bafc04b5ee5bafb38ed90e61aae), hvis egne BCH, CRC, LDPC og interleaver gir rammer som er symbolidentiske med Kshanas for samme innhold (null avvik, terskel fastsatt før kjøringen). Underbygget av referanseverdier: LSIS V1.0 figur 8 BCH-regneeksempelet og CRC-24/LTE-A-kontrollverdien (Greg Cooks katalog over parametriserte CRC-algoritmer), begge bit-eksakte; og av PocketSDR-AFS som dekoder hver delramme i rammene den synkroniserte i tre kjøringer med bestått CRC og delramme-2-biter som stemmer. Paritetskontrollen er nær en intern identitet (den bekrefter at den trykte B^-1 inverterer den trykte B) og regnes ikke som en uavhengig referanse. Avhengig av data: LANS-AFS-SIM-sammenligningen trenger den lokale LSIS V1.0-hurtigbufferen (xval/lunar-afs/fetch_lsis.sh, SHA-256-verifisert) og hoppes over med en melding uten den
Tester
tests/lunar_afs_waveform_lans_afs_sim_oracle.rs::afs_frames_and_baseband_match_lans_afs_sim (med LSIS-cachen: de 3 rammene LANS-AFS-SIM sender, bygget fra samme FID, TOI og databiter: null av 18 000 symboler…
ModellertLunaNet AFS lukket-sløyfe-dekodbarhet med en uavhengig mottaker (LSIS V1.0)lunar_afs::waveform (recording and truth labels), xval/lunar-afs/run_pocketsdr.sh
Funksjon
En Kshana AFS-opptaking som er innhentet, sporet og dekodet av en uavhengig programvaremottaker og sammenlignet med opptakingens egne fasitetiketter. Dette viser bare at standarden følges og at etikettene er konsistente; det er ikke en påstand om kanalfysikk, utbredelse, mottatt effekt eller linkbudsjetter, hvis verdier i opptakingen er valgte inngangsverdier
Uavhengig referanse
Bibliotek: PocketSDR-AFS (T. Ebinuma etter T. Takasus PocketSDR 0,13, BSD-2-Clause, commit 5b23809f30d68518b7fad7a564fd0fac57cc497d, S-bånd-bygg, loggnivåkopi som bare skriver ut), under kriterier fastsatt før hver kjøring. Den tredje forhåndsregistrerte sammenligningen oppfyller dekodings- og sporingsterskelene C1 og C2 fullt ut, men ikke sin vakt G0 slik den er skrevet (to kjøringer av den uendrede mottakeren avviker i de samme fire innhentingspostene), og den andre bommet med 5 brudd, så raden forblir MODELLED. LANS-AFS-SIM og PocketSDR-AFS har samme forfatter og regnes som én uavhengig implementasjon; kontrollene av trykte vektorer i rammekodingsraden vokter mot en delt feillesing
Tester
tests/lunar_afs_decodability_pocketsdr_v3_oracle.rs::third_run_finding_c1_c2_hold_g0_is_receiver_nondeterminism (third pre-registration: 2 nodes, 4 channels tracked, worst Doppler error 0.57 Hz, worst code offset error…
ModellertGPS L1 C/A kryssgeneratorkontroll mot standardengps_lnav, sdr
Funksjon
GPS L1 C/A-spredningskoder (sdr::CaCode) og LNAV-delramme 1-3 (gps_lnav: IS-GPS-200-feltkvantisering med spesifikasjonens pi, tos komplement-pakking, TLM- og HOW-ord, tabell 20-XIV-paritet med D29*/D30*-invertering, de paritetsløsende bitene i ord 2 og 10) sammenlignet bit for bit med gps-sdr-sim på dens medfølgende brdc0010.22n (32 satellitter)
Uavhengig referanse
gps-sdr-sim (MIT, commit 28ca29a6, kjørt som et eget program gjennom et innsjekket kjøregrensesnitt), forhåndsregistrert f88f2969 med en bit-eksakt terskel på (A) C/A-chip, (B) hvert beregnet LNAV-felt, (C) hver paritetsbit. FUNN: (A) 0 av 32 736 chip avviker, (C) pariteten i 0 av 1 920 ord avviker, (B) 230 av 1 152 beregnede felt avviker med én enhet: gps-sdr-sims eph2sbf avkorter mot null med C-casts der det kringkastede heltallet trenger avrunding (hver avvikende verdi ligger innenfor 0,01 av en enhet fra Kshanas avrundede heltall). Forblir MODELLED: den registrerte terskelen var konjunksjonen
Tester
tests/gps_l1ca_gpssdrsim_cross_generator.rs::gps_sdr_sim_truncates_where_the_broadcast_integer_needs_rounding (pinned finding); tests/gps_l1ca_gpssdrsim_cross_generator.rs::ca_codes_lnav_fields_and_parity_match_gps_sdr_…
ValidertSignalgeometri i GNSS IQ-scenen mot en uavhengig basebåndgeneratoriq::scene (Scene, SatGeometry, TruthRecord)
Funksjon
IQ-scenegeneratorens fasit per satellitt for en GPS L1 C/A-scene med kringkastet efemeride (iq::scene: en SatGeometry med kringkastet efemeride, generert til TruthRecord-fasitposter): hvilke satellitter som er over horisonten, pseudoavstanden, kodefasen ved første sample, bærebølge-Doppler og siktevinklene, for en stasjonær mottaker, sammenlignet med kanaltilstanden gps-sdr-sim bygger den første blokken av sin egen I/Q-utdata fra, for samme efemeride, mottaker og starttid (ionosfære av på begge sider)
Uavhengig referanse
gps-sdr-sim (T. Ebinuma, MIT, commit 28ca29a6), en uavhengig GPS L1 C/A-basebåndgenerator, bygd med sin egen Makefile og kjørt som et eget program på sin medfølgende brdc0010.22n ved eksempelstedet i bruksteksten (scripts/gen_iq_gpssdrsim_ref.sh); et innsjekket kjøregrensesnitt lenket mot det samme bygget skriver ut kanaltilstanden (computeRange, computeCodePhase) bak programmets første blokk. Terskler fastsatt før generatoren ble kjørt (forhåndsregistrert 7777da53). Omfang: GPS L1 C/A-geometri for en stasjonær mottaker uten ionosfære, troposfære eller mottakerklokke; kanalmodellene, støyen og navigasjonsdatainnholdet i scenen er ikke en del av denne raden
Tester
tests/iq_gpssdrsim_cross_generator.rs::scene_geometry_matches_gps_sdr_sim_channels (11 channels: worst pseudorange 1.6e-3 m against 0.05 m, code phase 5.5e-6 chip against 2e-4, Doppler 7.4e-5 Hz against 0.02 Hz, look…
ModellertGNSS IQ-innhenting på uavhengig genererte I/Q-sampleriq::acq (acquire, AcqConfig); iq::io (decode_samples); iq::scene (GpsL1Ca)
Funksjon
iq::acq::acquire (FFT parallelt kodefasesøk med kvadratlov-Marcum-Q-terskel) med GpsL1Ca-replikaen, på 20 ms av gps-sdr-sims egen 8-bits I/Q-utdata dekodet av iq::io-sampledekoderen (ci8, 2,6 MHz, 11 satellitter, ingen støy): hver PRN 1 til 32 søkt i to vinduer på 10 ms, resultatet sammenlignet med kodefasen og Doppleren gps-sdr-sim modulerte
Uavhengig referanse
gps-sdr-sim (MIT, commit 28ca29a6) I/Q-sampler og dens egen kanaltilstand, forhåndsregistrert 7777da53: (B1) hver simulerte PRN innhentet, (B2) ingen annen PRN innhentet, (B3) kodefase innenfor 0,5 chip, (B4) Doppler innenfor 125 Hz. FUNN: B1, B3 og B4 holder i begge vinduene (verste 0,195 chip, 72 Hz), men B2 svikter: alle 21 PRN-ene gps-sdr-sim ikke simulerte krysser også terskelen (statistikk 151 til 206 mot 79,5; simulerte PRN-er 1 300 og oppover). Terskelen er satt for gaussisk støy med den målte samplingseffekten; gps-sdr-sim legger ikke til støy, så cellene til en fraværende PRN inneholder de andre satellittenes kryss-korrelasjon. Forblir MODELLED: den registrerte terskelen var konjunksjonen
Tester
tests/iq_gpssdrsim_cross_generator.rs::acquisition_threshold_is_crossed_on_gps_sdr_sim_noise_free_samples (pinned finding); tests/iq_gpssdrsim_cross_generator.rs::acquisition_finds_gps_sdr_sim_satellites_in_its_samples…
ModellertIQ-monitorer scoret i lab-avspillingskampanjer: deteksjon, bom, falske alarmer og lukket-form falsk-alarm-talliq::campaign (detect, runner, spec); iq::monitor (stats::gaussian_two_sided_pfa, sqm)
Funksjon
iq::campaign::detect og kampanjekjøreren: en valgfri [monitors]-tabell kjører IQ-monitorene på hver celle i kjørerens enkeltgjennomløp. Effekt- og spektralmonitorene ser samplene etter hver frontend-kjede; C/N0-, SQM- og låsemonitorene ser hver sporet kanals sløyfeoppdateringer. Hver alarm scores mot de oppgitte hendelsene: detektert eller oversett per (hendelse, alarmtype, kanal), tid til deteksjon, og falske alarmer utenfor hendelsene over eksponeringen deres. Hver tests lukkede falsk-alarm-tall oppgis: effekt per blokk (eksakt Gamma-hale), spektralt overskudd per blokk (tilnærming), kurtose (ensidig gaussisk), pulser (binomisk tak), SQM per midlet oppdatering (2Q(k) = Q(1/2, k^2/2), ny), og C/N0-CUSUMs ARL0 (Siegmund). Uten tabellen er celler, nøkler og sammendrag uendret. Ingen interferensbølgeform syntetiseres
Uavhengig referanse
Monitorenes egne lukkede former på Kshanas egne GPS L1 C/A-scener (støy og legitime signaler; svekkelseshendelser på satellittenes egne signaler), mot terskler forhåndsregistrert i docs/design/MONITORS-IN-CAMPAIGN.md (382ab2f4). FUNN: M1, M2 og M4 oppfylt. M3 oppfylt på deteksjon (18 av 18 svekkelser, P_md 0) og NOT MET på tidsleddet: median tid til deteksjon er 1,001 s mot 2 x ARL1-sampler = 0,433 s. CUSUM ser ett estimat per vindu på 1 s, så samplingstallgrensen ligger under ett sample. Bare intern konsistens: ingen reell mottaker eller registrert interferens er kontrollert
Tester
tests/iq_campaign_monitors.rs: m1_power_test_false_alarm_rate_matches_the_closed_form (73 of 5900 blocks against the 99 % binomial interval [40, 80] of P_fa 0.01)…
ModellertDeteksjons-ROC for IQ-monitorene fra en scoret lab-avspillingskampanjeiq::campaign (detect, report, runner); iq::monitor::spectral (kurtosis_reference)
Funksjon
iq::campaign::detect (windows, roc) og iq::campaign::report::rocs: hver celle i en kampanje med monitorer beholder, per alarmtype og kanal, maksimum av monitorens egen teststatistikk over hvert oppgitt hendelsesvindu (positiv) og over flislagte roc_window_s-vinduer utenfor hendelsene (negativ). Statistikkene er blokkeffektavviket, PSD-overskuddet, kurtose-z, SQM |z| for den midlede metrikken og C/N0-CUSUM. Rapporten slår dem sammen per type til en empirisk ROC på vindusnivå med sin AUC og arbeidspunktet ved den konfigurerte terskelen, skrevet som roc.json (kshana.campaign-roc/1) og en Detection ROC-seksjon i report.html. En kampanje uten monitorer skriver ingen av delene
Uavhengig referanse
Syntetiske kampanjer fra Kshanas egne GPS L1 C/A-scener (svekkelser av satellittenes egne signaler), mot terskler forhåndsregistrert i docs/design/DETECTION-ROC.md (b47e358d). FUNN: R2 oppfylt (tilfeldig nivå når det ikke er noe å detektere). R1 NOT MET: cn0_drop AUC 0,7855 mot 0,95, fordi hvert negativt vindu etter en hendelse arver CUSUMs avklingning fra deteksjonen (alle 18 negative etter hendelsen når 81 eller mer; alle 18 før hendelsen forblir på 0). Bare intern konsistens: ingen reell mottaker eller registrert interferens er kontrollert
Tester
tests/iq_campaign_roc.rs: r2_with_nothing_to_detect_the_roc_sits_at_chance (AUC cn0_drop 0.500, sqm_delta 0.566, power_drop 0.639 on stated events that attenuate nothing)…
ModellertKalibrering av den åpne mottakerens C/N0- og låsemodeller mot IQ-kampanjeresultater, med oppgitt prediksjonsfeiliq::labfit (campaign, cn0, iqfit, iqreport, schema, mod); iq::cli::labfit
Funksjon
iq::labfit (campaign, cn0, iqfit, iqreport) og [input] campaign på kshana iq labfit, Python kshana.iq_labfit og MCP-verktøyet labfit (kampanjemapper bare innenfor sin egen arbeidsmappe): leser en kshana iq campaign-utdatamappe ved dens DIGEST og grupperer de scorede cellene i tilpasningsenheter (signal x sløyfeutforming x frontend-kjede x jammertype, aldri slått sammen). Per enhet tilpasses målt C/N0 mot oppgitt J/S med spektralseparasjonsformen. Q_eff er ikke identifiserbar fra C/N0-data uten en uavhengig måling av jammer- og signaleffektene, så Q oppgis, aldri tilpasses (typetabellen, hendelsens q, eller for en ukjent type den mest skadelige oppgitte verdien, cw Q = 1). Den tilpassede parameteren er den identifiserbare forskyvningen delta_eff = delta - 10 log10 Q, med korrelasjonsvakten som rapporterer degenerasjonen. C/N0-bin som er låst under 90 % er sensurert og listet. Terskel-J/S oppgis direkte og ved den lukkede formen; sporingssløyfemodellen og de empiriske låsemodellene er koblet gjennom C/N0-modellen, med fall- og gjenlåsingsventetider. En seedet klyngebootstrap over opptak (1000 replikater) gir persentilintervaller; prediksjonsintervaller på 90 % kommer fra residualtrekk; utelat-ett-opptak-ut-tilbakeholdte datasett deles i interpolasjon og ekstrapolasjon; en forhåndsregistrert [validation]-tabell hashes og hver terskel bedømmes PASS/FAIL. Rapporter kshana.labfit-iq/1 som JSON, CSV og generert Markdown, med en units-blokk. Bare syntetisk (ingen tredjepartsopptak, ingen jammerbølgeform). Labfit-banen for mottakerlogg er uendret
Uavhengig referanse
Syntetisk parametergjenvinning på Kshanas egne GPS L1 C/A-scener med en kjent C/N0-profil pålagt fra formelen i seksjon 3,1, sporet og scoret av kshana iq campaign, mot terskler forhåndsregistrert i docs/design/LABFIT-FROM-IQ.md (seksjon 5,1, endret 2026-10-12 i b7117bf, seksjon 13). Kampanjenes C/N0-estimator (M2M4) ble fastsatt i 5b13e3c2, pushet før den første terskelvurderingen (innsjekket sammen med tilpasningskoden, ikke alene), etter én opplyst diagnostisk sporingskjøring. FUNN på 18-hendelsers terskelkampanjen: (c) PASS; (a') NOT MET, delta_eff-feil -1.097 dB mot 0,5 dB (fortsatt -0.89 dB på bin ved 38 dB-Hz og over); (b') NOT MET, 0 av 50 kampanjer dekker fasiten (feil -1.189 +/- 0,093 dB, intervall omtrent 0,3 dB); (d) NOT MET, lukket form 2,20 dB under direkte J/S ved tap, omtrent den tilpassede fallventetiden ganger rampehastigheten (2,09 dB); de opprinnelige Q-leddene i (a) og (b) er NOT MET fordi Q ikke er identifiserbar. OPPFØLGING (terskler forhåndsregistrert i 1e532f84, docs/design/evidence/labfit-followup/RESULTS.md): på en kampanje med trinnvis J/S gjenvinnes delta_eff innenfor +0,185 dB (S1 MET: rampefeilen er estimatorforsinkelse); (d) slik den er skrevet er på denne oppfylt av sporingssløyfemodellen (0,45 dB) men ikke av den empiriske (6,42 dB), så S2 er NOT MET; på en ny rampekampanje ligger (d) med den tilpassede fallventetiden pluss hver hendelses rampehastighet innenfor 1 dB for begge modeller (R1 MET), og (a') og (d) slik de er skrevet bommer igjen (-1.25 dB; 2,32 og 9,47 dB). Metoden er kontrollert, ingen mottaker er det: den kan ikke bli VALIDATED fra syntetiske data
Tester
tests/iq_labfit_campaign.rs: bar_c_holdout_prediction_intervals_cover_between_80_and_98_percent (PI90 coverage 0.891 over 558 bins, 0.900 over 10 time-to-loss events under each lock model)…
ModellertGPS LNAV-koding dekodet av et uavhengig mottakerbibliotekgps_lnav
Funksjon
Kshanas LNAV-delramme 1-3 (gps_lnav::encode_subframes) for de 32 brdc0010.22n-efemeridene gitt til RTKLIBs decode_word og decode_frame: paritet for hvert ord, delrammedekoding med konsistent datautgave, og hver dekodet parameter mot Kshanas heltall og mot inngangsverdien
Uavhengig referanse
RTKLIB v2.4.2-p13 (BSD-2-Clause, commit 71db0ffa) decode_word/decode_frame som et eget program, forhåndsregistrert ca5f0142: R1 paritet og dekoding, R2 dekodet verdi lik Kshanas heltall ganger IS-GPS-200-skalaen innenfor 2^-52 relativt, R3 innenfor et halvt kvantum av inngangsverdien. FUNN: R1 960 av 960 ord og 96 av 96 delrammer; R3 hver parameter, uke og referansetid eksakt; R2 svikter på 41 verdier (af1, delta-n, IDOT) med 1 til 4 enheter i siste siffer fordi RTKLIBs P2_43 er desimaltallet 1.136868377216160E-13, 2.6e-16 relativt fra 2^-43; deling med RTKLIBs konstant gir Kshanas heltall i alle tilfeller. Forblir MODELLED: den registrerte R2-terskelen var for stram for den uavhengige referansens egen konstant
Tester
tests/gps_lnav_rtklib_decode_oracle.rs::rtklib_recovers_every_integer_and_differs_only_by_its_decimal_two_to_the_minus_43 (pinned finding)…
ModellertGPS LNAV-navigasjonsmeldingskodinggps_lnav
Funksjon
IS-GPS-200 LNAV-delramme 1-3 (gps_lnav::encode_subframes: kvantisering med avrunding til nærmeste av hver klokke- og banepararameter ved spesifikasjonens skalafaktorer og verdi av pi, tos komplement-pakking, TLM- og HOW-ord, tabell 20-XIV-paritet med D29*/D30*-invertering, de paritetsløsende bitene i ord 2 og 10), meldingen en GPS L1 C/A-signalgenerator sender
Uavhengig referanse
RTKLIB v2.4.2-p13 (BSD-2-Clause, commit 71db0ffa) readrnx som tolker den daglige IGS-kringkastingsfilen BRDC00IGS_R_20250610000_01D_MN.rnx og decode_word/decode_frame som dekoder Kshanas ord, kjørt som et eget program; forhåndsregistrert d4d9eb9d før filen ble hentet, terskel med eksakte heltall. Mutasjon: avkorting i stedet for avrunding gir 235 feil. Tidligere sammenligninger av den samme koderen er registrert som funn: mot gps-sdr-sim, som avkorter (230 felt), og mot RTKLIBs skalerte verdier, hvis desimalkonstant 2^-43 bommet på en ett-ulp-terskel (41 verdier). Etterverifisering av integratoren (forblir MODELLED): sammenligningen stemmer og en mutasjon av paritetssettet gjør den også rød, men forhåndsregistreringen d4d9eb9d nådde den offentlige grenen kl. 20:02:29 UTC, to sekunder etter resultat-commit 1783f904 (20:02:27 UTC) som allerede inneholder RTKLIBs utdata for filen, så rekkefølgen «registrert før filen ble hentet» kan ikke vises; en ny registrering pushet før en usett kringkastingsfil hentes ville avgjort det
Tester
tests/gps_lnav_rtklib_integer_oracle.rs::kshana_lnav_integers_decode_in_rtklib_from_an_unseen_broadcast_file (32 satellitter i IGS-kringkastingsfilen fra 2 mars 2025: 960 av 960 ord består RTKLIB-paritet, 96 av 96…
ModellertInnhenting og C/N0-estimering på ekte IQ fra månenacquisition, portable_math, realdata::ion_sdr, realdata::lugre
Funksjon
Parallelt kodefasesøk (acquisition::pcps_acquire: portabel FFT, koherent folding, ikke-koherent akkumulering, kjikvadratterskel for en søkeomfattende falsk-alarm-sannsynlighet), forfining, åpen-sløyfe prompt-korrelasjon med kode-Doppler og M2M4 C/N0-estimatoren, kjørt på LuGRE L1 4-bits IQ-batcher lest gjennom realdata::ion_sdr
Uavhengig referanse
GNSS-SDR 0.0.19 (GPL-3.0, eget program, festet konfigurasjon) på de ni L1-batchene som ikke er fra overflaten og flymottakerens RAW C/N0 (LuGRE Mission Data, Zenodo 16411687, CC BY 4,0), forhåndsregistrert 768cb62b. FUNN: Kshanas leser dekoder alle 288 sammenlignede spenn identisk med en uavhengig konverter; GNSS-SDR erklærer 266 av 288 søk positive og Kshana er enig i alle 266 avgjørelsene, men bare 250 er lokalisert på GNSS-SDRs celle (A2 svikter); C/N0-delen er tom, siden ingen RAW-epoke fra flyvningen ligger innenfor 30 s av noen batch (nærmeste 141 s). De fleste positive er artefakter: de bare tos komplement-nivåene har et middel på -0.5 på I og Q, en nullfrekvenslinje 32 dB over støyen i en bin på 1 kHz, som begge mottakerne innhenter. To batcher (OP5, OP12) ble utelatt ved en feil: en lesing av metadataene deres uten sifre ble tatt for en motsigelse med headerne deres; den reelle årsaken var at leseren ikke kunne lese et sample bredere enn et ord (siden rettet). Forblir MODELLED
Tester
tests/lugre_acquisition_gnss_sdr_oracle.rs::finding_dc_artefacts_and_no_contemporaneous_flight_cn0 (pinned finding, data-gated); tests/lugre_acquisition_gnss_sdr_oracle.rs::acquisition_and_relative_cn0_on_lugre_iq_match…
ModellertInnhenting på ekte IQ fra månen mot baneprediktert Doppler (beslutning på samplingseffekt)acquisition, realdata::ion_sdr
Funksjon
acquisition::pcps_acquire med sin beslutning på samplingseffekt på de ni LuGRE L1-batchene som ikke er fra overflaten, med mid-rise-nivåer; Doppler-forskjeller mellom innhentede satellitter sammenlignet med forskjeller predikert fra ESAs endelige baner og den Firefly-rekonstruerte Blue Ghost-banen
Uavhengig referanse
Predikert Doppler fra ESA/ESOC endelige baner og den rekonstruerte NAIF CLPS-banen (xval/lugre-predicted-doppler/predict.py, uavhengig av Kshana), forhåndsregistrert 0d1839d2. FUNN: alle 288 søk krysser terskelen på støy (samplingseffektstatistikk omtrent 430 til 520 mot 346,3), så P1 holder trivielt og P3 holder (274 av 288 predikert synlige) mens P2 svikter på 4033 av 4036 par. Det båndbegrensede frontendet hever hver celles støy omtrent 1,46 ganger (festet: støygulv 292 mot det hvite støynivået 200 på OP2 PRN 1), noe samplingseffektstatistikken ikke ser. Forblir MODELLED
Tester
tests/lugre_acquisition_predicted_doppler_oracle.rs::noise_alone_crosses_the_sample_power_threshold_on_lugre_iq (pinned finding, data-gated)…
ModellertInnhenting på ekte IQ fra månen scoret mot baneprediktert Doppleracquisition, realdata::ion_sdr
Funksjon
acquisition::pcps_acquire med celle-midlende beslutning (topp over rutenettets middelcelle, robust mot båndbegrenset støy) på de ni LuGRE L1-batchene som ikke er fra overflaten, med mid-rise-nivåer; Doppler-forskjeller mellom innhentede satellitter sammenlignet med forskjeller predikert fra ESAs endelige baner og den Firefly-rekonstruerte Blue Ghost-banen
Uavhengig referanse
Predikert Doppler fra ESA/ESOC endelige baner og den rekonstruerte NAIF CLPS-banen (xval/lugre-predicted-doppler/predict.py, uavhengig av Kshana), forhåndsregistrert a81a9a4e. FUNN: P1 og P3 holder (4 batcher, 12 av 12 innhentinger predikert synlige) men P2 svikter på 8 av 8 par. De to sterkeste parene stemmer med prediksjonen i størrelse med motsatt fortegn (OP2 PRN 18/24: +7670,0 Hz målt, -7693.9 predikert; OP17 PRN 11/30: +11155,0, -11114.4), så den registrerte I-i-lav-nibble-rekkefølgen er det konjugerte av batchene; de seks deteksjonene rett over terskelen stemmer med ingen av fortegnene. Doppler-spredningen i forfiningen (30 til 50 Hz mellom to kjøringer) ble også undervurdert av registreringen. Forblir MODELLED
Tester
tests/lugre_acquisition_cell_average_doppler_oracle.rs::strong_pairs_match_the_prediction_only_with_the_doppler_sign_reversed (pinned finding, data-gated)…
ModellertInnhenting på tilbakeholdt ekte IQ fra månen mot baneprediktert Doppleracquisition, realdata::ion_sdr, realdata::lugre
Funksjon
acquisition::pcps_acquire (celle-midlende beslutning, falsk-alarm-sannsynlighet 1e-7) med refine_doppler_coherent på LuGRE L1-batchene registrert på månens overflate (I i høy nibble, mid-rise-nivåer); Doppler-forskjeller mellom innhentede satellitter mot forskjeller predikert fra ESAs endelige baner og Firefly-landingsstedets kjerne
Uavhengig referanse
Predikert Doppler fra ESA/ESOC endelige baner og NAIF CLPS Firefly-landingsstedskjernen (xval/lugre-predicted-doppler/predict_surface.py, uavhengig av Kshana), forhåndsregistrert 2108e6ff på batcher som aldri var åpnet før. FUNN: ikke-tomhet svikter; ingen batch inneholder to innhentinger. OP40 utelatt (metadata nevner en manglende fil); OP38, OP73, OP77_0, OP77_1 innhenter ingenting og viser ingen falsk alarm ved 1e-7 (høyeste statistikk 325 til 356 mot 385,9); OP74 og OP76 innhenter PRN 31 og OP78_0 og OP78_1 PRN 12, hver alene, alle predikert synlige. Forblir MODELLED. Opplyste avvik: den registrerte Doppler-terskelen på 10 Hz hviler på en syntetisk Monte Carlo av den koherente forfiningen, ikke på spredningen i de allerede sette batchene som integratoren ba om; OP40 ble utelatt før kjøringen fordi metadataene nevner en samplefil datasettet ikke leverer
Tester
tests/lugre_surface_acquisition_doppler_oracle.rs::each_surface_acquisition_is_a_single_predicted_visible_satellite (pinned finding, data-gated)…
ValidertFelles geometri for kommunikasjon og navigasjon på månenlunar_service
Funksjon
Topocentriske siktevinkler per satellitt (asimut med klokken fra nord, elevasjon) og skrå avstand på et navngitt selenografisk sted, gitt satellitten i stedets månefaste referansesystem (den validerte påstanden). Avstandsnøyaktigheten for signalet i rommet er eksponert som en scenarioparameter slik at tjenestevolumsveipet gir et avstandsKRAV i stedet for bestått/ikke bestått ved én fast sigma; denne parameteren er en utformingsinngangsverdi utenfor den validerte påstanden
Uavhengig referanse
ANISE 0.10.2 (Nyx Space, MPL-2.0, kjørt som et verktøy fra xval/anise-service-geometry, binærfilen lunar-look-angles-xval, som ikke kaller noen Kshana-kode): ANISEs egen rutine for asimut, elevasjon og avstand (azimuth_elevation_range_sez) fra steder bygd av dens konstruktør for breddegrad-lengdegrad-høyde på pck00011-Månen (kule 1737,4 km), med satellittene rotert inn i MOON_PA_DE440 gjennom moon_pa_de440_200625.bpc. 768 sampler over 8 steder (de 4 navngitte stedene og 4 andre, over og under horisonten), 12 epoker og 8 satellitter stemmer innenfor 1e-6 grader i asimut og elevasjon og 1 mm i avstand og stedsposisjon (fastsatt før sammenligningen); målt 2.2e-12 grader, 2.1e-13 grader og 5.6e-9 m. Påstand: stedsplassering og siktevinkler gitt satellitten i stedets månefaste referansesystem. Kshanas egen realisering av det månefaste middelrotasjonssystemet og avstandsnøyaktighetsparameteren ligger utenfor den; enhetstestene for lukket-form geometri beholdes som støttekontroller
Tester
lunar_service::tests (topocentrisk mot håndberegnet geometri: rett overhead, rett nord/øst/vest, antipodal, og den degenererte polare østretningen; det eksporterte synlighetsflagget stemmer med den uavhengige synlighets…
ModellertDifferensiell PNT på Månenlunar_dpnt
Funksjon
Differensiell referansestasjon i NovaMoon-klassen: fellesmodus-kansellering + grunnlinjevoksende residual + DGNSS-beskyttelsesnivåer
Uavhengig referanse
Identitet for differensiell feilkansellering + gjenbruk av DO-229E SBAS PL-maskineriet; enkeltdifferanse- + WLS-løsningen er i tillegg kontrollert mot RTKLIBs lsq()/matinv() (Takasu, BSD-2-Clause, kompilert C) — uavhengig løserkode, men den samme førsteordens LOS-differanse-algebraen, så fortsatt InternalConsistency
Tester
lunar_dpnt::tests (klokkens fellesmodus kanselleres eksakt; restavviket vokser med grunnlinjen; gjenbruker SBAS PL; satellittantallet respekteres til byggerens grense på 24, slik at en større konstellasjon ikke stille kan gi en…
ModellertEksport for interoperabilitet på månenlunar_interop
Funksjon
LunaNet/IOAG-tilpasset eksport av referansesystem + tid + efemeride for månen (CCSDS OEM + KIF) med rundtur-formatkontroll
Uavhengig referanse
kshanas OEM-eksport for månen tolket på nytt av det uavhengige tredjepartsbiblioteket oem (R. J. Anderson): referansesystem- og tidstokens og tilstand per epoke stemmer til skrivepresisjonen (1 mm / 1e-9 km/s) og en eksport uten TIME_SYSTEM avvises — en strukturell rundtur for utveksling; den fysiske semantikken for månens referansesystem og tid er validert av egne rader, så denne forblir MODELLED. 0,30 ekstern sammenligning, et funn (forblir MODELLED): en andre uavhengig leser, Orekit 12,2 CCSDS OEM-parser (Apache-2.0, strenge standardverdier), avviser begge månefilene fordi den ikke implementerer tidssystemene LTC og TCL (den dekoder crate-ens EME2000/UTC OEM, og dekoder månefilene når TIME_SYSTEM erstattes med TDB); oem 0.4.5 dekoder dem innenfor den skrevne presisjonen bare ved å falle tilbake fra det ikke-støttede tidssystemet. Utveksling av disse månefilene med vanlige CCSDS-lesere er ikke påvist
Tester
lunar_interop::tests (OEM bærer lunar REF_FRAME/TIME_SYSTEM; tidsmetadata gjør rundtur; KIF-konvolutt); tests/lunar_interoperability_export_reference.rs (kshanas utsendte lunare OEM tolket på nytt av den uavhengige oem…
ModellertScoring tilpasset PNT-resiliensrammeverkresilience::arch, resilience::score, resilience::diversity, resilience::timeline
Funksjon
Delscorer per dimensjon over Kshanas egne syv resilienskategorier (ikke DHS-begreper), RethinkPNT RDRR-funksjoner og Yang-kriterier, hver merket modellert med sin driver; foreløpig RPCF-nivå med en port for begrenset degradering. Simuleringsavledet egenvurdering, aldri sertifisering.
Uavhengig referanse
Håndavledede formler per metrikk: invers-Simpson-mangfold, vektet-middel-sammensetning, avgrensede/uavgrensede tidslinjevarigheter, svakeste-ledd-nivåstige
Tester
resilience::score::tests (monotonicity, composite bounds, level cap, modelled-provenance); resilience::diversity::tests (inverse-Simpson, common-mode, SPOF)
ModellertStudie av beslutningsustabilitet i resiliensscoreresilience::stats, resilience::study, resilience::panel
Funksjon
Kvantifiserer hvordan en enkelt sammensatt score / RPCF-nivå omordner arkitekturer under et forsvarlig vektingssimpleks og et trusselensemble (topp-1-vendingsrate, Kendall-tau-spredning, nivåvendingsrate, rangområder); analyser av deklarert mot målt og mangfoldskollaps.
Uavhengig referanse
Lukket-form identiteter for rangstatistikk (tau i [-1,1] med håndberegnede verdier; deterministisk seedet Dirichlet) og konstruerte stabile/ustabile vitner
Tester
resilience::stats::tests (Kendall-tau hand example, Dirichlet simplex, flip-rate); resilience::study::tests (stability control, instability witness, declared-vs-measured, diversity collapse)
ModellertRepresentativitet i demonstrasjonen og gap til flyvningrepresentativeness
Funksjon
Ærlighetsregister per resultat som kvalifiserer en demonstrasjonsutdata: dens eksterne ankre, modellerte forutsetninger, gap til flyvning og representative TRL-bånd, med håndhevede invarianter (Validated krever et eksternt anker; Modelled krever et gap og kan ikke hevde noe over TRL 4).
Uavhengig referanse
Lukket-form invarianter som svarer til compliance-disiplinen «representativitet begrunnet + gap til flyvning identifisert»; knyttet til grensen mellom verifikasjonsstatus og referansetype
Tester
representativeness::tests (validated-needs-external-anchor, modelled-needs-gap, modelled-TRL-ceiling, malformed-band, JSON fields)
ModellertEvidens for avveining mellom kvante og klassisk (felles form)qtrade
Funksjon
Ett reproduserbart TradeEvidence-objekt (fast ramme: scenario+seed+motor; felles verdier per FoM for kvante mot klassisk med fordel med riktig polaritet, valgfri 95% CI, merkelapp for validert/modellert) som bærer en representativitetspost, slik at hver kvante-PNT-vertikal rapporterer avveiningen på samme ærlige måte.
Uavhengig referanse
Lukket-form identiteter for fordel/vinner + tro innpakning av den eksisterende quantum_trade::TradeResult; ærlighet knyttet til representativitetsregisteret og verifikasjonsmerkelappene
Tester
qtrade::tests (nyttepolaritet høyere/lavere-er-bedre, pakker et virkelig TradeResult trofast, uærlig evidens avvist, validert-FoM trenger ekstern anker, deterministisk JSON)
ModellertFeilmodellbibliotek for kvanteenheterquantum_devices
Funksjon
Enhetskort (optisk/fanget-ion/kvikksølv-ion + klassiske klokker gjenbrukt fra holdover/clock_state; kaldatom-interferometer; klassiske + sammenfiltrings-/enkeltfoton-tidsoverføringslinker) som hver bærer en representativitetspost; sammenfiltringslinken legger til en skuddbegrenset tidspresisjonsmodell (~jitter/sqrt(R*tau), mørktellingsstraff, systematisk gulv).
Uavhengig referanse
Gjenbrukte klokke-/CAI-koeffisienter (holdover/clock_state, publiserte verdier) + lukket-form identiteter for skuddstøy/tap for sammenfiltringslinken
Tester
quantum_devices::tests (clock cards honest+ordered; entanglement precision ~1/sqrt(tau); detected rate -10x/10dB; dark counts degrade; systematic floor bounds; card modelled+valid)
ModellertPålitelig kvantetidssynkronisering (tidsoverføring + sikker formidling + anomali)timetransfer_chain
Funksjon
Ende-til-ende tidsoverføringskjede for kvante mot klassisk (klokkekyst + linkpresisjon i kvadratur), et gjenbrukt tidssynkroniseringsbeskyttelsesnivå, en sikkerhets-FoM mot forsinknings-/avspillingsangrep (1-P_md) og en deteksjonssannsynlighet for klokkeanomali + CUSUM-latens, utgitt som ærlig TradeEvidence med en representativitetspost.
Uavhengig referanse
Lukket-form kvadraturbudsjett over gjenbrukte validerte kjerner (ADEV mot Stable32/NIST; TPL-grense; deteksjon analytic_pd/pmd); ærlighet knyttet til representativitetsregisteret
Tester
timetransfer_chain::tests (presisjonen forbedres med integrasjon; kvante kan vinne OG tape; PL endelig-positiv; sikkerhets-FoM i [0 1] og vokser med angrepsforsinkelse; anomali-Pd monoton; avveiningen is_honest)
ModellertGNSS-fri kvantenavigasjonquantum_nav_od
Funksjon
Kvante (kaldatom-interferometer) mot klassisk navigasjonsklasse-INS med dødregning over et GNSS-bortfall: vekst i posisjonsfeil, holdover til en posisjonsterskel, og avveiningen kvante mot klassisk som ærlig TradeEvidence; ærlig observerbarhetsnotat (bias er uobserverbar uten posisjonsbestemmelse, så feilen vokser).
Uavhengig referanse
Gjenbrukte inertialbudsjetter kontrollert mot en uavhengig Octave-dobbeltintegrasjon av den samme dødregnings-ODEen (annen kjøretid, delt modell → ReferenceImpl) pluss Freier-2016 publisert kortidsstøy som et ensidig anker; det sammensatte kvante-mot-klassisk-resultatet forblir MODELLED
Tester
quantum_nav_od::tests (kvante slår klassisk over et langt utfall; fordelen er utfallsavhengig; avveiningen is_honest); tests/gnss_free_quantum_navigation_reference.rs (posisjonsvekst ved dødregning mot en uavhengig…
ModellertFeil-/anomalideteksjon for kvante-PNT-systemerquantum_faults
Funksjon
Merket katalog over kvantefeil (klokkefrekvenssprang/-drift/låsetap; sensorbiassteg/-bortfall), en ROC AUC for deteksjonsstatistikken med bootstrap-CI, og en minste detekterbar feil ved en fast falsk-alarm-rate; en kvanteklokkestøttet monitor detekterer mindre feil enn en klassisk, utgitt som ærlig TradeEvidence.
Uavhengig referanse
Lukket-form gaussisk AUC = Phi(mu/(sigma*sqrt2)) kontrollert mot den eksternt validerte eval_stats::bootstrap_auc_ci (mot scikit-learn) + analytiske deteksjonsterskler
Tester
quantum_faults::tests (analytiske AUC-kjente verdier; empirisk bootstrap-AUC omslutter den lukkede formen; kvante oppdager mindre feil / høyere AUC; fordelen forsvinner for store feil; katalog med 5 klasser; avveiningen is_honest)
ValidertMomentfri stivlegemeholdningsdynamikkattitude_dynamics
Funksjon
Eulers rotasjonsbevegelsesligninger (I ω̇ = τ − ω × Iω, hovedakse og generell treghetstensor) koblet til kvaternion-holdningskinematikk (q̇ = ½ q ⊗ ω) og propagert med en RK4-integrator med fast steg som renormaliserer kvaternionen i hvert steg
Uavhengig referanse
Basilisk 2.9.1 romfartøy-hub stivlegemepropagering (AVSLab, ISC; MRP-holdning gjennom sine egne koblede hub-ligninger, svIntegratorRKF78 ved relativ toleranse 1e-12), en uavhengig implementasjon av ligningene for momentfritt stivt legeme: Kshanas RK4-kvaternion (dt 0,01 s) og kroppsrater stemmer innenfor 1e-9 over 1e4 s på to generelle ikke-diagonale treghetsmomenter (verste 3.3e-11 og 3.4e-12 rad/s); toleranse fastsatt før sammenligningen. Validert påstand: momentfri bevegelse; leddet for eksternt moment er ikke sammenlignet. Bevarings- og symmetrisk-topp-kontrollene beholdes som støttende selvkonsistens. Intet miljø med fleksibelt legeme / reguleringssløyfe / eksternt moment
Tester
attitude_dynamics::tests (apply/solve inverse, spherical-top zero torque, principal-axis fixed point, short-run energy+momentum conservation, q̇=½q⊗ω, symmetric-top rate sign + body-cone precession)…
ValidertClohessy–Wiltshire / Hill relativ bevegelsesdynamikkcw_dynamics (propagate, second_order_correction, propagate_second_order)
Funksjon
Relativ bevegelse for en jager rundt et mål i en sirkulær referansebane i LVLH-systemet: de lineariserte Clohessy–Wiltshire-ligningene (ẍ−2nẏ−3n²x=0, ÿ+2nẋ=0, z̈+n²z=0) løst med den lukkede 6×6 tilstandstransisjonsmatrisen Φ(n,t) (Clohessy–Wiltshire 1960; Vallado Alg. 48) med betingelsen for avgrenset relativ bane ẏ₀=−2n·x₀, og en lukket-form andreordenskorreksjon (cw_dynamics::second_order_correction, CW-responsen på de kvadratiske leddene i de eksakte ligningene for sirkulær chief; Karlgaard og Lutze 2003, Newman, Lovell og Pratt 2015) sammensatt som cw_dynamics::propagate_second_order. Den validerte utdataen er propagate_second_order; den lineære Φ alene er karakterisert mot ikke-lineær fasit, ikke validert
Uavhengig referanse
Orekit 12,2 (Apache-2.0) NumericalPropagator, tolegeme, LOFType.QSW, kjørt som et eget program (fixture uendret siden runde 1). Terskel forhåndsregistrert 1e-3 m på hvert sample i hvert tilfelle; andreordensmotorrettingen ble kjørt på nytt mot den uendret (endring 8c8e768d, skrevet før propagatoren fantes, med opplysning om at førsteordensgapene var kjent). propagate_second_order stemmer innenfor 1.15e-7 m (C1), 9.8e-8, 5.4e-8 og 2.2e-8 m; halvering av andreordensleddet svikter ved 1.85e-3 til 3.14e-3 m. Den lineære Φ alene avviker fra ikke-lineær fasit med 1,2 til 6,3 mm ved 100 m over en tredjedel av en bane (det utelatte andreordensleddet; dens strenge test holdes ignorert), så den er karakterisert, ikke validert. Interne kontroller beholdt: Φ mot en RK4-integrasjon av Hill-ligningene, Φ(t)Φ(−t)=I, identitetene for avgrenset bane og −12π·x₀-drift, og tredjeordens residualskalering av andreordensleddet. Omfang: sirkulær chief, separasjoner nær 100 m, opptil en tredjedel av en bane; ingen eksentrisitet (Tschauner–Hempel), J2 eller differensielle dragledd; antakelse om liten separasjon
Tester
cw_dynamics::tests (Φ(0)=I, tverrbane-frakoblet SHM); tests/cw_dynamics_reference.rs (lukket-form Φ mot en uavhengig RK4-integrasjon med fast steg av de samme Hill-ODE-ene til <1e-6 over en tredjedel av en bane; Φ(t)Φ(−t)=I til…
ModellertTDOA/FDOA passiv senderlokaliseringgeolocation
Funksjon
Lokaliser en sender (jammer/spoofer, eller en opportunistisk kilde for omvendt PNT) fra ankomsttidsdifferanse over et mottakernettverk — τᵢ=(Rᵢ−R₀)/c hyperboloideskjæringen løst med Gauss–Newton minste kvadrater — og, ved å legge til ankomstfrekvensdifferanse (avstandsratedifferanser) med bevegelige mottakere, gjenvinn posisjon og hastighet i fellesskap; med Cramér–Rao nedre grense på posisjonskovariansen fra målegeometrien
Uavhengig referanse
Selvkonsistens i estimator og geometri: tur-retur fra forover til invers, Fisher/CRLB-identiteten J·CRLB=I, GDOP-monotoni, og estimatoren som oppnår sin egen Cramér–Rao-grense under Monte Carlo-støy — interne konsistenskontroller, IKKE et eksternt datasett, så raden forblir InternalConsistency. MODELLED passiv geolokalisering — punktkilde-siktlinjemodell; ingen flerveis / NLOS, mottakerklokkebias eller atmosfærisk refraksjon. 0,30 runde 2, mot Ho og Chan 1993 og Ho og Xu 2004 (forhåndsregistrert f89018b8, 1 % av hver trykte verdi), et funn (forblir MODELLED): den overflatebegrensede TDOA-grensen gjenskaper de geometriske faktorene for 40 N (-0.11 %, -0.02 %) og maksimal TDOA; den felles TDOA+FDOA-grensen gjenskaper fig. 6 (+0,06 %, -0.17 %) og, ved kilden forfatternes egen kode oppgir for fig. 7 (endring skrevet etter at dette resultatet var sett, opplyst), fig. 7 (+0,11 %, -0.02 %); den er lik forfatternes publiserte grensekode (BSD-lignende, kjørt under GNU Octave) til 3e-12; den kovariansvektede maksimum-sannsynlighetsløseren oppnår den trykte grensen (+0,3 til +0,4 %). Ottawa-faktorene artikkelen trykker fra en Monte Carlo (251, 7,1) avviker med +1,3 % og +4,4 %, utenfor terskelen på 1 %
Tester
geolocation::tests (støyfri TDOA forover→invers til 1e-6 m; J·CRLB=I med en symmetrisk PD-kovarians; CRLB-posisjonsvariansens spor er ikke-økende når en mottaker legges til; felles TDOA+FDOA gjenvinner en bevegelig…
Validert3-DoF ballistisk toppdeselerasjon ved inngang mot den publiserte Stardust-nominelleentry_eo_ascent::entry_heating (simulate_entry, inertial_to_relative, EntryHeatingScenario)
Funksjon
En 3-DoF punktmasse-inngang over en roterende sfærisk jord gjennom US Standard Atmosphere 1976, integrert med RK4 fra en inertial inngangstilstand, som rapporterer toppdeselerasjonen og dens høyde; den planetrelative inngangstilstanden fra den inertiale. Kan kjøres som scenariotypen entry-heating.
Uavhengig referanse
Stardust-nominelle av Desai, Mitcheltree og Cheatwood (1999, NASA NTRS 20050042027): maksimal deselerasjon 33,4 g fra 12,6 km/s planetrelativt med oppskytingsmassen 45,8 kg, en 6-DoF POST-bane med den fulle aerodynamiske databasen; inngangsgrensesnitt fra Desai, Lyons, Tooley og Kangas (NTRS 20090004445): radius 6503,14 km, inertial 12,9 km/s ved -8.2 grader. Terskler forhåndsregistrert i xval/entry-stardust/PREREGISTRATION.md før noen kjøring på disse inngangsverdiene; begge holdt ved første kjøring. DET SOM IKKE ER DEKKET: ett publisert tilfelle og én størrelse (toppdeselerasjon, som i den ballistiske tilnærmingen ikke avhenger av den ballistiske koeffisienten); inngangsbredde og kurs er antatt; oppvarming, varmebelastning og landingspunkt er ikke kontrollert mot den; punktmasse med konstant C_D, ikke 6-DoF.
Tester
tests/entry_stardust_published.rs (topp 35,44 g mot de publiserte 33,4 g, +6,1 %, terskel 10 %; planetrelativ inngangshastighet 12,551 km/s mot 12,6, terskel 0,1 km/s); entry_eo_ascent::entry_heating::tests (roterende ramme…
ModellertKonvektiv oppvarming i stagnasjonspunktet (Sutton-Graves) ved en 3-DoF-inngangentry_eo_ascent::entry_heating (stagnation_heat_flux, simulate_entry)
Funksjon
Konvektiv varmefluks i stagnasjonspunktet q = k sqrt(rho/R_n) V^3 med Sutton-Graves-konstantene for jordluft og Mars-atmosfæren (NASA TR R-376, 1971), dens topp og den integrerte varmebelastningen langs en 3-DoF-inngang, ballistisk eller løftende ved konstant krengning, på Jorden eller Mars.
Uavhengig referanse
Intern konsistens: relasjonen og konstantene slik de er trykt i NASA TR R-376, en halvstegs konvergenskontroll, og den forventede rekkefølgen av oppvarmings- og deselerasjonstopper. DET SOM IKKE ER DEKKET: ingen publisert oppvarmingsverdi er sammenlignet (Stardust-artiklene oppgir en konstruksjonsgrense og et konvektivt-pluss-strålings-estimat på omtrent 1200 W/cm2, som en bare konvektiv relasjon ikke kan matche); ingen strålingsoppvarming, veggtemperatur- eller katalysekorreksjon, eller respons fra varmeskjold.
Tester
entry_eo_ascent::entry_heating::tests::heat_flux_relation_has_the_published_form_and_constants; entry_eo_ascent::entry_heating::tests::lift_lowers_peak_deceleration_and_heat_flux_of_a_shallow_entry…
ModellertRadiometri, MTF, relativ kantrespons og GIQE 4 NIIRS for elektro-optisk avbilderentry_eo_ascent::eo_radiometry (Imager, snr_budget, giqe4_niirs, EoRadiometryScenario)
Funksjon
Signal-til-støy-budsjett for nadir-avbilder (lambertiansk scenestråling, kameraligningen, skudd-, mørk-, lese- og kvantiseringsstøy), system-MTF ved Nyquist som produktet av diffraksjon fra uhindret apertur, detektorapertur, lineær utsmøring og gaussisk jitter, kantresponsen og den relative kantresponsen integrert fra denne MTF-en, Q = lambda F / p, og GIQE versjon 4 NIIRS uten MTF-kompensasjon. Kan kjøres som scenariotypen eo-radiometry.
Uavhengig referanse
Lukkede former: diffraksjons-MTF ved halv avskjæring, rampekanten på ett piksel for en ren detektorapertur (RER 1), normal-CDF-kanten for en gaussisk uskarphet (RER = erf(0.5/(sigma sqrt 2))), skalering av skuddstøy, og GIQE 4-koeffisientene slik de er publisert (Leachtenauer et al., Applied Optics 36(32), 1997). DET SOM IKKE ER DEKKET: ingen ekstern avbilder, målt MTF eller vurdert bilde er sammenlignet; GIQE er en empirisk regresjon med sin egen feil; ingen spredt lys, atmosfærisk MTF, MTF-kompensasjon eller aliasing.
Tester
entry_eo_ascent::eo_radiometry::tests::diffraction_mtf_has_its_closed_form_values; entry_eo_ascent::eo_radiometry::tests::a_pure_pixel_aperture_has_a_ramp_edge_and_rer_one…
ModellertTap fra tyngdekraft, luftmotstand, styring og mottrykk ved oppskytingsstigningentry_eo_ascent::ascent (simulate_ascent, AscentScenario); reentry::us76_pressure
Funksjon
Plan tyngdekraftsvending-stigning for et flertrinnsfartøy over en ikke-roterende sfærisk jord gjennom US Standard Atmosphere 1976 (tetthet og trykk), med et pitch-spark, skyvekraft redusert av dysens mottrykk, trinnavbrenning ved eksakte stegrenser, og tapene fra tyngdekraft, luftmotstand, styring og mottrykk integrert ved siden av tilstanden. Kan kjøres som scenariotypen ascent-losses.
Uavhengig referanse
Intern konsistens: den eksakte identiteten avbrenningshastighet = sum Isp g0 ln(m0/mf) minus de fire integrerte tapene (residual under 1e-6 m/s), Tsiolkovskijs ligning på en vertikal vakuumbrenning med tyngdekraft som eneste tap, og US76-trykkene ved havnivå og tropopause. DET SOM IKKE ER DEKKET: ingen publisert raketts tap er sammenlignet; ingen jordrotasjon, kystfase, struping eller styring utover sparket; konstant C_D; ikke en baneoptimaliserer.
Tester
entry_eo_ascent::ascent::tests::the_loss_identity_holds_to_integration_error; entry_eo_ascent::ascent::tests::vertical_vacuum_burn_has_only_gravity_loss_and_stays_vertical…
ModellertTWSTFT tovegsligning, usikkerhetsbudsjett og linkstabilitet med flicker og døgnvariasjon i ikke-resiprositettwstft_budget (counter_readings, solve_offset, combined_uncertainty, flicker_phase, two_way_series, series_stability); time_transfer_budget (TimeTransferBudgetScenario, read_series)
Funksjon
TWSTFT tovegsligningen løst for T_A - T_B med stasjonenes sende- og mottaksforsinkelser, den ionosfæriske Ku-bånd opp/ned-asymmetrien, transponderens forsinkelsesforskjell og Sagnac-leddene, mot sin eksakte foroverrettede modell; et usikkerhetsbudsjett i kvadratur med link-TDEV som type A-ledd; en tovegsserie med hvit og flicker fasestøy (Kasdin-Walter), en døgnvariasjon i ikke-resiprositet og en konstant resiprositetsrest; og raten, residual-RMS, TDEV og ADEV for oppgitte Circular T-, MJD-CSV- eller IGS RINEX-stasjonsklokkeserier. Kan kjøres som scenariotypen time-transfer-budget.
Uavhengig referanse
Intern konsistens: foroverrettet modell og den løste ligningen stemmer til 1e-15 s, Sagnac-leddet er lik modulens uavhengige BIPM 2A omega/c^2-sløyfeform, det ionosfæriske leddet er 40,3 TEC (1/f_up^2 - 1/f_down^2)/c, og støyprosessene viser sine forventede TDEV-former. DET SOM IKKE ER DEKKET: ingen reell TWSTFT-måling eller kalibreringsrapport er sammenlignet; de oppgitte forsinkelsene og usikkerhetene er inngangsverdier, ikke målt; stabilitetene i oppgitte serier rapporteres, ikke validert.
Tester
twstft_budget::tests (tovegsligningen gjenvinner forskyvningen nøyaktig; Sagnac-leddet er lik BIPM-sløyfens lukkede form; det ionosfæriske leddet følger frekvensdelingen og troposfæren kanselleres; flickerfase har…
ModellertNumerikk for optisk atmosfære på skrå bane: Rytov-varians, scintillasjon, gamma-gamma-fadesannsynlighet, aperturmidling, sky og optisk dybde i klar luftoptical_atmosphere (rytov_variance, scintillation, gamma_gamma_cdf, fade_margin_db, aperture_averaging_factor, cloud_optical_depth, clear_air_optical_depth); optical_linkbudget (optical_link_budget_atmosphere)
Funksjon
Hufnagel-Valley Cn2 integrert langs en skrå bane for plan- og kulebølge-Rytov-variansen (opplink og nedlink), Andrews-Phillips-scintillasjonsindeksen og gamma-gamma-parametrene, gamma-gamma-fadesannsynligheten og fademarginen, aperturmidlingsfaktoren ved svak turbulens, den optiske skydybden for en flytende vannsøyle og den optiske dybden i klar luft fra Kim-sikt pluss Rayleigh, som erstatter det samlede atmosfæretapet i det optiske linkbudsjettet når en atmosfære oppgis. Kan kjøres innenfor scenariotypen optical-atmosphere.
Uavhengig referanse
Numerikken sammenlignes med et uavhengig program (xval/optical-atmosphere/oracle.py, mpmath 1.4.1 med 30 sifre, tanh-sinh-kvadratur på den opprinnelige høydevariabelen og Bessel-K gamma-gamma-tettheter) som ikke deler kode med Kshana, under terskler fastsatt før noen implementasjon fantes (xval/optical-atmosphere/PREREGISTRATION.md). HVORFOR MODELLED: den uavhengige referansen evaluerer de samme publiserte formlene, så den kontrollerer implementasjonen av de oppgitte formlene og ikke atmosfæren; intet ITU-R-valideringseksempel og ingen målt scintillasjons- eller skrå-bane-ekstinksjonsregistrering brukes (ITU-verdiene er et åpent lisensspørsmål og holdes utenfor repositoriet). Nivået på Cn2-profilen, sikten, skalahøydene for aerosol og molekyler, aperturmidlingens banelengde og momenttilpasningen som brukes til å bruke aperturmidling på gamma-gamma-parametrene er oppgitte inngangsverdier eller konvensjoner. En kildelinje i modulen noterer at en mye kopiert oversikt trykker den andre scintillasjonseksponenten som 7/6 der Andrews og Phillips oppgir 5/6; 5/6-formen er implementert
Tester
tests/optical_atmosphere_reference.rs (terskler A1-A3 fastsatt på forhånd mot den uavhengige mpmath-referansen: 216 Rytov-rutepunkter med verste relative feil 3.4e-7 mot en terskel på 1e-6, scintillasjon verst 4.5e-16, aperturfaktor…
ModellertVærdrevet tilgjengelighet for optisk bakkested og avstandskorrelert stedsdiversitetoptical_weather; optical_sitediv; optical_techniques; optical_atmosphere_scenario
Funksjon
Tilgjengelighet for en optisk link mot en oppgitt linkmargin fra et lognormalt klima for skyenes flytende vann (ITU-R P.840-mengde, geometrisk-optikk-ekstinksjon) og det uavhengige gamma-gamma-turbulensfadet, linkmarginen som trengs for målrettet tilgjengelighet og taket ingen margin løfter, lognormale avbruddsvarigheter, hva-hvis for forbedringsteknikker, og en enfaktors gaussisk-kopula-nettverkstilgjengelighet der parkorrelasjonen er exp(-avstand/dekorrelasjonslengde). Kan kjøres som scenariotypen optical-atmosphere.
Uavhengig referanse
Intern konsistens: lukkede grenser og monotoni for diversitetsmodellen, den lukkede formen for skytaket og de lognormale avbruddsidentitetene. INGEN ekstern uavhengig referanse hevdes og ingen er sammenlignet: ingen målt tilgjengelighet for optisk bakkestasjon eller registrering av skyfri siktlinje brukes. HVORFOR MODELLED: skyklimaet (sannsynlighet for sky, median og spredning for den flytende vannsøylen, avbruddsvarigheter), uavhengigheten mellom sky og turbulens, gaussisk-kopula-formen, dekorrelasjonslengden og hver teknikkgevinst er forutsetninger; de medfølgende scenarioene oppgir ILLUSTRATIVE klimaer, ikke et datasett. Å oppgradere denne raden krever en sitert målt tilgjengelighetsregistrering og en terskel registrert før sammenligningen
Tester
tests/optical_atmosphere_identities.rs (terskel A4: rho = 0 er lik den uavhengige unionen og rho = 1 det beste enkeltstedet, til 1e-12, og null brudd på monotonisitet i antall steder og i korrelasjonen; den første…
ModellertKontinuitet i tidssynkronisering og avstandsmåling gjennom optiske avbruddoptical_outage_holdover (couple, clock_psds); holdover (coast_phase_sigma, holdover_seconds, phase_to_range_m)
Funksjon
Avbruddsvarighetsfordelingen for et optisk sted koblet til den lukkede kystvariansen i holdover-klokkemodellen: feil i tidssynkronisering og avstandsmåling ved oppgitte avbruddskvantiler, holdover til en tidssynkroniseringsterskel, andelen av avbrudd og av avbruddstid innenfor den og tidssynkroniseringstilgjengeligheten A + U E[min(D, T_h)]/E[D], for de klassiske og kvanteklokkeklassene. Kan kjøres innenfor scenariotypen optical-atmosphere.
Uavhengig referanse
Intern konsistens med holdover-modulen, bit for bit; INGEN ekstern uavhengig referanse hevdes. Klasse-PSD-ene er de syntetiserte lang-tau-gulvene holdover-modulen allerede bærer, så tallene arver dens oppgitte forbehold om at holdover til en stram terskel styres av det forutsatte rødstøygulvet og ikke av den siterte Allan-deviasjonen. Avbruddsvarighetene er en lognormal modell med oppgitte parametere, ikke en målt registrering av skyopphold
Tester
tests/optical_atmosphere_identities.rs (terskel A6: tidssynkroniseringsfeilen per utfall er lik holdover::coast_phase_sigma og avstandsfeilen er lik phase_to_range_m bit for bit over 9 klokker, 3 gjennomsnittlige varigheter, 3 spredninger og 4…
ModellertOptisk linkmargin over tid: én seedet realisering av et steds væroptical_timeseries (site_series, SiteModel, SeriesSpec, Series); optical_atmosphere_scenario (TimeseriesSpec)
Funksjon
En valgfri [timeseries]-tabell (duration, step, seed) får optical-atmosphere-typen til også å skrive, per sted, én seedet realisering av den oppgitte stedsmodellen gjennom tid: skyepisoder (klare perioder eksponentielle, skyavbrudd lognormale med oppgitt middel og spredning, andelen tid i sky satt til oppgitt skysannsynlighet), én lognormal flytende vannsøyle per skyepisode, ett gamma-gamma-scintillasjonssample per steg, og ut fra dem linkmarginen, sky- og scintillasjonsfadene og link-opp-flagget, med realisert tilgjengelighet, skyandel, antall avbrudd og lengste avbrudd. Uten tabellen er resultatet dokumentet fra 0,37. Trekningene går gjennom portable fordelings- og matterutiner, så native og wasm32 gir de samme bytene.
Uavhengig referanse
Bare intern konsistens; INGEN ekstern uavhengig referanse hevdes og ingen finnes for en værrealisering. Kontrollene sammenligner ett trekk med den statistiske utdataen fra den samme modellen, så at en kontroll består sier at generatoren trekker fra de oppgitte fordelingene (trekkets tilgjengelighet og skyandel ligger innenfor forhåndsregistrerte toleranser for de oppgitte tallene), ikke at noe reelt sted oppfører seg slik. Serien er én realisering, ikke klimaet: tilgjengeligheten avviker fra den oppgitte med trekkets utvalgsfeil, og scintillasjonssampler ved ulike steg er uavhengige, en oppgitt forenkling av en prosess som dekorrelerer på millisekunder. Værinngangsverdiene forblir scenarioets forutsetninger.
Tester
tests/optical_atmosphere_timeseries.rs (terskler T1-T6 i xval/optical-atmosphere/PREREGISTRATION-timeseries.md, fastsatt før første kjøring: samme seed gir samme bytes og en annen seed andre bytes; ingen nøkkel uten tabellen; over…
ModellertTRK-2-18 Orbit Data File-leser og Mars rampet 2-veis Doppler-modellodf (parse_odf, Odf, OdfObservation, OdfRamp, seconds_1950); mars_od (DopplerModel, RampTable, compress_two_way, MarsDynamics, fit, fit_damped); naif_kernel (SPK type 1); gravity_pds (SphericalHarmonicField::from_shadr)
Funksjon
En leser for DSN Orbit Data Files (TRK-2-18): postgruppene på 36 byte (filetikett, identifikator, banedata, ramper per stasjon, klokkeforskyvninger, sammendrag, filslutt), og i hver banedatapost tidsmerket siden 1950, nedlinks- og opplinksforsinkelser, observabel, stasjoner, datatype, bånd, gyldighet, kanal, romfartøy, referansefrekvensen på 46 bit og komprimeringstiden; rampestart- og sluttider, rater og startfrekvenser. Oppå den en rampet 2-veis X-bånd Doppler-modell (integrerte opplinksramper, rundtur-lysgangstid med Shapiro og troposfære, DSN-stasjoner gjennom IAU 2006/2000A CIO-kjeden og IERS EOP, stasjonstid) og en batch-banebestemmelse for Mars-satellitt (GMM-3-felt, tredjelegemer, SRP, drag).
Uavhengig referanse
PDS3-etiketten som DSN-navigasjonens datakondisjoneringsprosess produserte med filen (NASA PDS Geosciences Node, MRO-M-RSS-1-MAGR-V1.0), kontrollert mot terskler forhåndsregistrert i xval/mro-odf/PREREGISTRATION.md før leseren fantes. MODELLED fordi én registrert terskel (radene i filslutt-tabellen, 121 i filen mot 120 i etiketten) ble bommet; etiketten er internt inkonsistent der. Trinn 2 (xval/mro-od/PREREGISTRATION.md, endringene A1 og A2 før det scorede resultatet): Doppleren predikert fra MRO-navigasjonsteamets rekonstruksjon (mro_psp5, NAIF) stemmer med den observerte rampede 2-veis Doppleren til 12,5 mHz på passeringer som ikke ble brukt i utviklingen, terskel oppfylt; den registrerte banebestemmelsen sviktet på den scorede buen (normalmatrisen ikke positivt definit) og ga ingen bane, så banetersklene ble ikke nådd. Kjøring 2 (xval/mro-od/PREREGISTRATION-RUN2.md, en dempet estimator, samme bue og terskler, en scoringsendring R2-A1 opplyst i docs/revisions) konvergerte: den estimerte banen ligger innenfor 0,36 km RMS (0,53 km maksimum) av rekonstruksjonen, terskler oppfylt, men etter-tilpasnings-Doppler-RMS er 48,6 mHz mot terskelen på 30 mHz, ikke oppfylt, så raden forblir MODELLED. DET SOM IKKE ER DEKKET: ingen estimert bane har oppfylt hver registrert terskel; ionosfære, solplasma og det meste av antenneforskyvningen (en radiell forskyvning på 1,5 m tilpasses på utviklingspassasjen) er ikke modellert.
Tester
tests/mro_odf_reader_label_oracle.rs (en ekte MRO ODF, 2007-304/305, mot PDS-etiketten: antall poster, gruppeposisjoner, stasjoner, start- og stopptider og datatyper stemmer; radantallet i tabellen på slutten av filen bommer med…
ValidertLukket-sløyfe MRP-tilbakekoblet holdningsregulering med reaksjonshjulaocs (AocsConfig, required_torque, motor_torques, rates, rk4_step, simulate, mrp_from_quaternion); aocs_kind (AocsScenario)
Funksjon
Treghetspekende holdningsregulering av en stiv hub med tre eller flere balanserte reaksjonshjul: MRP-tilbakekoblingsloven L_r = -K sigma_BR - P omega_BR (Schaub og Junkins), minimumsnorm-motormomenter for hjulene G_s u = -L_r begrenset til hvert hjuls grense, den koblede hub- og hjuldynamikken der hubens treghet bærer hjulenes spinntreghet, kvaternion-kinematikk, RK4 med null-ordens hold. Kan kjøres som scenariotypen aocs (sann-tilstand-sløyfe).
Uavhengig referanse
Basilisk 2.9.1 (AVSLab, ISC; bsk-hjulet kjørt som et eget verktøy, aldri lenket eller vendoret): romfartøy-hub, reactionWheelStateEffector (BalancedWheels, momentgrense på), simpleNav, inertial3D, attTrackingError, mrpFeedback (uten integralledd) og rwMotorTorque ved dt = 0,1 s med sin RK4, mot Kshanas egen implementasjon på tre tilfeller (tre ortogonale hjul; en firehjuls pyramide; et mettende firehjulstilfelle), terskler forhåndsregistrert i xval/aocs-basilisk/PREREGISTRATION.md før koden og kjøringen. Alle terskler holdt ved første kjøring. DET SOM IKKE ER DEKKET: sensorstøy i sløyfen, integraltilbakekobling, sporingsstyring, hjulfriksjon, jitter, hastighetsgrenser og effekt, ethvert reelt romfartøys forsterkninger; sammenligningen kontrollerer implementasjonen av loven og dynamikken mot en uavhengig, ikke en flyregulator.
Tester
tests/aocs_basilisk_oracle.rs (3 tilfeller, 601 sampler hver: MRP verst 2.4e-14, terskel 1e-9; kroppsrate 1.6e-15 rad/s, terskel 1e-9; hjulhastighet 2.9e-11 rad/s, terskel 1e-6; påført motormoment 1.2e-13 N m, terskel 1e-9; t = 0 momenter…
ModellertMultiplikativ EKF-holdningsestimering fra et gyro og en stjernesporeraocs_mekf (Mekf, GyroSim, attitude_error, spd_solve6); aocs_kind (estimator)
Funksjon
Lefferts-Markley-Shuster multiplikativ EKF: holdningsfeil i kroppssystemet og gyrobias-tilstander, propagering med gyrorate minus biasestimatet og Farrenkopfs diskrete prosessstøy (vinkel- og raterandomvandring), stjernesporeroppdateringer med residualen 2 vec(q^-1 q_st) i Joseph-form, og den multiplikative tilbakestillingen; en diskret Farrenkopf-simulator for gyro og stjernesporer. Typen aocs kan lukke reguleringssløyfen på sitt estimat.
Uavhengig referanse
Intern konsistens: filterets normaliserte estimeringsfeil i kvadrat mot fasit simulert fra de samme sensormodellene over Monte Carlo-seeds, og konvergens av holdnings- og biasestimatene. DET SOM IKKE ER DEKKET: ingen ekstern estimator eller flydata er sammenlignet (Basilisk 2.9.1 har ingen MEKF-modul); sensormodellene er lærebokversjonene, uten skjevstilling, skalafaktor eller effekter av stjernesporerens synsfelt.
Tester
aocs_mekf::tests::mekf_is_consistent_over_monte_carlo_seeds (40 seeds, gjennomsnittlig NEES med seks frihetsgrader over andre halvdel innenfor 4,5 til 7,5); aocs_mekf::tests::star_tracker_updates_bound_the_attitude_error…
ValidertWahba/TRIAD/QUEST holdningsbestemmelsewahba
Funksjon
Optimal treakset holdning fra vektede vektorobservasjoner (stjerne-/sol-/magnetometerretninger): den deterministiske tovektor-TRIAD, Davenports q-metode (den eksakte minimereren av Wahba-tapet — den optimale kvaternionen er egenvektoren til den største egenverdien til Davenport-matrisen K på 4×4, løst med en symmetrisk Jacobi-egenverdiløsning), og QUEST (Newton/sekant-rot av Ks karakteristiske ligning med start i Σ vekter, deretter gjenvinning av kvaternionen fra Gibbs-vektoren)
Uavhengig referanse
scipy.spatial.transform.Rotation.align_vectors (SciPy 1,13; Virtanen et al., Nature Methods 2020) — Kabsch/Markley SVD-løsningen av Wahbas problem, en genuint uavhengig algoritme (SVD av holdningsprofilmatrisen) og kodebase fra kshanas Davenport-K-egenverdiløsning / QUEST-karakteristisk-rot-metode, som beregner den SAMME entydig definerte Wahba-optimale holdningen. På støyfrie vektede vektorobservasjonssett gjenskaper TRIAD, q-metoden og QUEST scipys optimale rotasjon til <1e-9 rad (sammenlignet via den fortegnsinvariante holdningsfeilvinkelen). Den støyende Monte Carlo-statistiske påstanden «optimal slår TRIAD» forblir MODELLED (ingen ekstern uavhengig referanse); bare punktretnings-enhetsvektorobservasjoner — ingen modellering av sensorens synsfelt/bias/tidskorrelasjon, og QUEST er singulær ved 180° (q-metoden dekker det tilfellet)
Tester
wahba::tests (A(identitetskvaternion)=I; Jacobi-egenverdiløseren tilfredsstiller Kv=λv og bevarer sporet på en kjent symmetrisk matrise; K er symmetrisk); tests/wahba_reference.rs (TRIAD, Davenports q-metode og QUEST…
ValidertGNSS kvadratlov-innhentingsdeteksjonsstatistikkacquisition
Funksjon
Kvadratlov (ikke-koherent) innhentingsdetektor over et kodefase × Doppler-søk: falsk-alarm-sannsynlighet (sentral χ² med 2M frihetsgrader), terskelen som oppnår en målsatt P_fa (χ² CDF invertert ved halvering), og deteksjonssannsynlighet (ikke-sentral χ² med ikke-sentralitet 2M·ρ for SNR ρ etter korrelasjon per celle), med den generaliserte Marcum Q-funksjonen Q_M(a,b)=1−F_{χ'²(2M,a²)}(b²)
Uavhengig referanse
scipy.stats.ncx2 / scipy.stats.chi2 (SciPy 1,13; Cephes/Boost) — en uavhengig algoritme (fortsatt-brøk ikke-sentral/sentral χ²) fra kshanas ufullstendige gammaserie (raim::chi2_cdf / noncentral_chi2_cdf), som beregner den samme entydig definerte deteksjonsstatistikk-KJERNEN: den generaliserte Marcum Q_M(a,b)=ncx2.sf(b²,2M,a²), deteksjonssannsynligheten P_d, falsk-alarm-sannsynligheten P_fa og inversjonen P_fa→terskel, stemmer til ~1e-6 — det samme uavhengighetsgrunnlaget som den validerte raden «RAIM/ARAIM integrity statistical kernel». KUN KJERNEN: CFAR celle-midling per celle og binnedeling av kode/Doppler-tap forblir MODELLED
Tester
acquisition::tests (Marcum-Q i sentraltilfellet Q_1(0,b)=exp(−b²/2); identiteten P_d=Q_M(√(2Mρ),√γ); rundtur P_fa↔terskel på tvers av M og P_fa; ROC-monotonisitet — P_d stiger med SNR, faller med terskelen, P_d→P_fa når…
ValidertGNSS bærebølgefase heltallsflertydighetsløsning (LAMBDA)lambda
Funksjon
Heltalls minste kvadraters flertydighetsfastsetting på LAMBDA-måten: en volumbevarende heltalls (Z) dekorrelerende transformasjon (heltalls-Gauss størrelsesreduksjon av L D Lᵀ-faktoren) + et eksakt Schnorr–Euchner dybde-først branch-and-bound heltalls minste kvadraters søk, med forholdstesten på de to beste kandidatene (den validerte påstanden); pluss den lukkede bootstrapped suksessraten P_s=∏(2Φ(1/(2σ_{i|I}))−1), kontrollert bare internt og utenfor den validerte påstanden
Uavhengig referanse
RTKLIB v2.4.2-p13 lambda() (kildefilen lambda.c, T. Takasu, BSD-2-Clause), en uavhengig LAMBDA-reduksjon og MLAMBDA-søk kompilert fra C og kjørt som et verktøy, på 300 tilfeldige kovarianser (n 2 til 10): heltalls minste kvadrater har en entydig minimerer, så de fastsatte heltallene må være identiske (0 avvik) og de to beste kvadrerte normene, som mater forholdstesten, stemmer til 1e-9 relativt (målt 5.6e-13); toleranse fastsatt før sammenligningen. Validert påstand: ILS-løsningen og dens to beste normer. RTKLIB beregner ikke den bootstrapped suksessraten, som forblir kontrollert internt mot en Monte Carlo av avrundingsprosessen; Z-transformasjonens invarianter og brute-force-oppregningen beholdes som støttekontroller. Bare heltalls-Gauss-dekorrelasjon (omordningspermutasjonene i den fulle LAMBDA-reduksjonen fremskynder søket, men endrer verken det eksakte ILS-svaret eller den bootstrapped raten)
Tester
lambda::tests (L D Lᵀ rekonstruerer Q); tests/lambda_reference.rs (Z-transformasjonen er unimodulær |det Z|=1 med Q_z=ZᵀQZ SPD, determinantbevarende og lavere total korrelasjon utenfor diagonalen; Schnorr–Euchner-ILS stemmer med…
ValidertB-plane-sikting og patched-conic tyngdekraftassistansebplane
Funksjon
Hyperbolsk forbiflyvningsgeometri (a=−μ/v∞², e=1+r_p·v∞²/μ, svingevinkel δ=2·asin(1/e), siktefeil |B|=|a|·√(e²−1)), B-plane Ŝ/T̂/R̂-målpunktsystemet og B·T̂/B·R̂-dekomposisjonen, og en patched-conic tyngdekraftassistanse (v∞-størrelsen bevart, retningen avbøyd med δ, heliosentrisk Δv=2·v∞·sin(δ/2) uten drivstoffkostnad) med Tisserand-parameteren T_P=a_P/a+2√((a/a_P)(1−e²))cos i
Uavhengig referanse
GMAT R2026a (Apache-2.0, kjørt som et eget program) på 192 hyperbolske jordtilstander: B.T, B.R og |B| innenfor 1e-6 km (verste 1.35e-8 km), svingevinkelen og begge asymptotene innenfor 1e-9 rad (verste 9.3e-15 rad); hastighetsendringen ved assistansen fra GMAT C3 og asymptotene innenfor 1e-9 v_inf (verste 5.6e-14); heliosentrisk SMA, ECC og INC på 350 solsentrerte tilstander før og etter assistansen innenfor 1e-9 relativt og 1e-12 rad (verste 2.2e-14 og 4.1e-14 rad); Tisserand-parameteren mot sbpy 0.6.0 (BSD-3) på GMAT-elementer innenfor 1e-9 (verste 1.3e-15) og mot 3 - C3/v_c^2 (8.9e-16); og Tisserands lukkede form mot Kasuga og Jewitt (2019) tabell 8,1 for 12 objekter innenfor den trykte avrundingsgrensen (verste 0,39 av den; en P1 publisert regneeksempelverdi). Forhåndsregistrert (436293bf; heliosentrisk reparasjon 6fd9f5e6); endring 374c806b, skrevet etter at filene fra den uavhengige referansen var generert og før noen Kshana-verdi, utvidet inklinasjonsinngangsfilteret fra 1e-2 til 1e-3 rad, slik at flere og dårligere betingede tilstander ble beholdt. MODELLED omfang: patched-conic tolegeme-forbiflyvning i en sirkulær planetbane, ingen overgang mellom innflytelsessfærer, ingen forstyrrelser ved møtet og ingen efemeride
Tester
bplane::tests (forbiflyvningsskalarene tilfredsstiller de lukkede formene med to |B|-identiteter som stemmer overens og |B|>r_p; svingvinkelen avtar med periapsisradius og når grensene δ→0 / δ→π; avbøyning bevarer v∞-farten og…
ValidertCRPA anti-jam gruppestråleformingcrpa
Funksjon
Nulling med kontrollert-mottaksmønster-antenne: komplekse gruppestyringsvektorer a(û)=exp(j·k·pₙ·û), deterministisk nullstyring (enhetsforsterkning mot SV, eksakte nuller mot opptil N−1 jammere via minimumsnormen w=Aᴴ(AAᴴ)⁻¹b), og adaptive MVDR-vekter w=R⁻¹a_sv/(a_svᴴR⁻¹a_sv) som selvstyrer dype nuller mot sterke interferenskilder (med en kompleks lineæralgebrakjerne skrevet fra bunnen)
Uavhengig referanse
numpy.linalg / scipy.linalg (LAPACK zgesv kompleks løsning) — en uavhengig lineæralgebra-kodebase fra kshanas fra-bunnen-kompleksekjerne, som beregner de SAMME entydig definerte vektene: MVDR w=R⁻¹a_sv/(a_svᴴR⁻¹a_sv) og minimumsnorm-nullstyring w=Aᴴ(AAᴴ)⁻¹b, pluss de resulterende gruppeforsterkningene, stemmer til ~1e-9 — samme klasse uavhengig referanse som de validerte radene for DOP (gnss_lib_py) og Fisher-informasjon (numpy). MODELLED smalbånds fjernfelts gruppe med identiske isotrope elementer — ingen gjensidig kobling, avvik per element, begrenset båndbredde (STAP) eller feil i estimering av styringsvektor
Tester
crpa::tests (identiteter for komplekse tall, bl.a. z/z=1, |exp(jθ)|=1, zᴴz=|z|²; deterministisk nullstyring gir nøyaktig enhetsforsterkning for SV og <1e-9 jammer-nuller på en ULA med 4 elementer og 3 jammere; en gruppe med N elementer avviser…
ValidertIEEE-1139 potenslov-klokkestøy + flicker-FM-gulvpowerlaw
Funksjon
Den fem-koeffisienters IEEE-1139 PSD↔Allan-varians-omregningen S_y(f)=Σh_α f^α → σ_y²(τ) (hvit/flicker PM, hvit/flicker/random-walk FM), flicker-FM-gulvet σ_y=√(2 ln2·h_{-1}) som et førsteklasses tilpassbart ledd, og en ikke-negativ FM-familietilpasning i {(2π²/3)τ, 2 ln2, 1/(2τ)}-basisen som gjenvinner gulvet driftbasisen {1/τ,τ,τ³} ikke kan representere
Uavhengig referanse
allantools 2024,06 (A. Wallin; Kasdin & Walter 1992 / Vernotte 2015-koeffisienter) — en uavhengig tredjepartskodebase og siteringslinje som beregner den SAMME entydig definerte IEEE-1139 PSD→Allan-omregningen σ_y(τ) for hver av de fem potenslov-støytypene. kshanas powerlaw::allan_deviation stemmer med allantools' lukkede former (hvit/flicker-FM, RW-FM og hvit PM til <5e-9 relativt; flicker-PM til ~1e-5 — det genuine uavhengighetssignalet, siden kshana bruker NIST-SP-1065-tabellkonstanten 1,038 mot allantools' fulle 3γ−ln2), og flicker-FM-gulvet √(2 ln2·h_{-1}) stemmer med allantools over hele stigen — den samme terskelen som de validerte radene for MDEV/TDEV/Theo1/MTIE klarer. MODELLED stasjonær potenslovmodell — ingen deterministisk drift-ledd (τ²); koeffisienter per enhet / målte gulv forblir modellerte
Tester
powerlaw::tests (hver rene støytype viser sin signatur i ADEV-stigningstall i log-log — hvit FM −½, flicker-FM 0, random-walk-FM +½, hvit PM −1; flicker-FM-leddet er et flatt gulv lik √(2 ln2·h_{-1}) over fem dekader…
ValidertUtveksling av CCSDS OEM kovarians-blokkoem (covariance_block_kvn, parse_covariance_block)
Funksjon
Serialiser og tolk CCSDS 502,0 OEM COVARIANCE_START…COVARIANCE_STOP-blokken — den 6×6 posisjon/hastighet-kovariansen skrevet som sin nedre trekant med 21 elementer (kanonisk rekkefølge CX_X … CZ_DOT_Z_DOT) med valgfri COV_REF_FRAME, som utfyller den eksisterende OEM-tilstandsvektorskriveren/-tolkeren slik at kovarianser fra banebestemmelse og filtre går tur-retur i standardformatet
Uavhengig referanse
oem 0.4.5 (MIT, https://pypi.org/project/oem/) — den SAMME uavhengige CCSDS-502-tolkeren som den validerte raden «CCSDS OEM interoperability» stoler på, en helt separat kodebase (egen KVN-tokenizer, tilstandsmaskin for kovariansseksjonen og numpy-matrisesammenstilling). kshana sender ut et fullt OEM-segment med sin umerkede nedre-trekant-COVARIANCE-blokk med bare tall; oem tolker den og rekonstruerer den symmetriske 6×6, som stemmer med kshanas inngangskovarians element for element til f64-avrundingsfeil — en genuin bibliotek-mot-bibliotek-tur-retur for utveksling (sammenlignet mot oems rekonstruksjon, ikke en kshana-tolkning på nytt), som lukker radens tidligere gap «ingen tredjeparts-fixture»
Tester
oem::tests (en symmetrisk PD-kovarians gjør rundtur KVN→parse til f64-avrundingsfeil og forblir symmetrisk; blokken gir nøyaktig 21 nedre trekantsledd — i+1 per matriserad — med/uten COV_REF_FRAME; en blokk med…
ValidertINS/TRN-kystfeilvekst og terskelkryssingerinertial::coast (ErrorDynamics, ErrorSource, source_error_m, CoastModel, Contribution, Combination, TrnFixMode, first_crossing_s, InsTrnCoastScenario); scenario kind ins-trn-coast
Funksjon
Budsjett for posisjonsfeil mot kystvarighet bygd fra IMU-koeffisienter, der hver feilkilde (akselerometerbias, gyrobias, hastighetsrandomvandring, vinkelrandomvandring, skalafaktor under cruise og under vedvarende spesifikk kraft) propageres gjennom en ni-tilstands lokalnivå-INS-feilmodell med Schuler-tilbakekobling (inertial::coast::ErrorDynamics etter Groves 2. utg. kap. 14: holdnings-, hastighets- og posisjonsfeil, vertikalkanalen med sin tyngdegradient, WGS-84-radier og normaltyngde, en plan plattform på nordlig kurs ved den konfigurerte hastigheten, latitude_deg og height_m; systematiske ledd ved en utvidet matriseeksponensial, randomvandringer ved Van Loan), de flate-jord-monomene beholdt bare som leading_order_m; bidrag kombinert under en oppgitt regel (rss / lineær sum / deterministisk sum med stokastisk rss); kystvarighetene som når oppgitte posisjonsterskler fra kallende kode (10 m og 50 m som standard) lokalisert ved en foroverskanning etter første kryssing (first_crossing_s, siden de Schuler-begrensede kurvene ikke er monotone), med dominerende kilde ved hver kryssing; og en TRN-begrenset modus som gir det største terrengposisjonsbestemmelsesintervallet som holder hver terskel. Kan kjøres som scenariotypen ins-trn-coast
Uavhengig referanse
NaveGo v1.4 (commit 24d9488, LGPL-3.0), kjørt som et eget program under GNU Octave 8.4.0: frie inertial-kystkjøringer med samme IMU-feilprofil, med én rettet numerisk dødsone i kvaternionoppdateringen (qua_update.m: vakten på en rate under 1e-8 rad/s erstattet av wnorm == 0, brukt på en kopi ved kjøretid og sjekket for å stemme én gang; med vakten på frøs en sakte drivende plattformholdning og kuttet Schuler-tilbakekoblingen). Forhåndsregistrert (4262b969) med den rettede generatoren før den ble kjørt; motoren (440b3877) ble committet før noen rettet utdata ble åpnet; samme terskel på 5 %, 48 punkter, ledd, seeds og statistikk som runde 1. Resultat: 48/48 innenfor 5 % (verste +3,70 % hastighetsrandomvandring ved 1200 s, +3,33 % vinkelrandomvandring ved 1800 s); ved 3600 s gir NaveGo/Kshana 2375.4/2376.2 m for akselerometerbiasen og 130 885/131 675 m for gyrobiasen. Nullstilling av Schuler-transportrate-tilbakekoblingen svikter testen (+695 % ved 3600 s). Opplyst: enkeltkanals Schuler-prediksjoner og runde-1-verdiene fra NaveGo var kjent; modellen har ingen tilpasset parameter. Omfang: feilkurvene per ledd ved Tactical-klasse, 45 grader N, plan og nordpekende, opptil 3600 s; kryssingene, kombinasjonsregelen og TRN-modusen er deterministiske funksjoner av disse kurvene. IMU-klassekoeffisientene (Groves 2013 tabell 4,1 båndtall) og TRN-posisjonsbestemmelsens residual forblir MODELLED inngangsverdier. Runde 1 (erstattet): de flate-jord-monomene, nå leading_order_m, overdriver utover 600 s (2.2x til 8x ved én time). 0,30 revisjon: hver ins-trn-coast-utdata flytter seg (toppen for TRN i det medfølgende scenarioet 52,932679 -> 44,711834 m)
Tester
tests/ins_coast_schuler_navego_oracle.rs::coast_error_model_matches_the_corrected_navego_runs (48 punkter, seks feilledd ved 30 s til 3600 s, taktisk klasse, 45 grader N, horisontal og nordvendt: hvert punkt innenfor 5 %…
ModellertArbeidssyklus for apertur mellom navigasjon og kommunikasjonaperture_duty
Funksjon
Én kjøring tar en kontaktplan (en liste over aos_s/los_s-vinduer, der hvert ber aperturen om navigasjon eller kommunikasjon — det samme vindusvokabularet som passes::predict_passes sender ut, konvertert av aperture_duty::windows_from_passes), et aperturantall og en eksplisitt arbitreringspolicy, og returnerer navigasjonsarbeidssyklusen, kommunikasjonsarbeidssyklusen, tomgangsarbeidssyklusen og avbruddet per økt. Policyen er en inngangsverdi med en dokumentert standard (navigation-priority; også communications-priority og ikke-preemptiv first-come-first-served), og rapporten bærer den løste policyen, dens fulle definisjon og definisjonene av arbeidssyklus og avbrudd, fordi et arbeidssyklustall oppgitt uten sin arbitreringsregel ikke er reproduserbart. Planen er et eksakt intervallsveip over vindusgrensene, så et vindu som slutter nøyaktig der det neste begynner aldri konkurrerer, og apertursekunder for navigasjon, kommunikasjon og tomgang akkumuleres uavhengig i det ene sveipet. Kan kjøres som scenariotypen aperture-duty-cycle
Uavhengig referanse
Intern konsistens, fra tre størrelser beregnet med ulike uttrykk i samme sveip og deretter krevd å gå opp. Apertursekunder for navigasjon, apertursekunder for kommunikasjon og apertursekunder for tomgang akkumuleres hver for seg — tomgang fra (aperturer − |betjent|) per elementært intervall, aldri som en rest — og summen sjekkes mot aperturer × horizon_s, noe en feilparentesert grense, et dobbelttalt intervall eller et utelatt intervall bryter umiddelbart; de betjente tidene per økt kreves separat å summere tilbake til de to tjenestetotalene. Planleggerens strukturelle egenskaper måles i stedet for å antas: betjent tid sjekkes som ikke-avtagende i aperturantallet over 200 pseudotilfeldige planer for alle tre policyene (ikke åpenbart for den ikke-preemptive policyen, der en ekstra apertur endrer hvem som holder hva ved hver senere grense), og grenseregnestykket festes ved paret som berører hverandre / overlapper med ett sekund, der en off-by-one ellers ville skjules. Passeringsprediktor-broen kontrolleres mot utdata fra passes::predict_passes: med én apertur og ingen konkurrerende tjeneste er apertursekundene for navigasjon lik prediktorens egen summerte passeringsvarighet. Ingen ekstern uavhengig referanse hevdes og ingen finnes: funksjonen erstatter håndregning i stedet for å kontrolleres mot den, den medfølgende kontaktplanen er illustrerende og ikke fløyet, og ingen operativ planlegger publiserer et par av plan og svar med arbitreringsregelen oppgitt — et arbeidssyklustall beregnet under en uoppgitt policy er ikke sammenlignbart med ett beregnet under en oppgitt, og policyavhengigheten er målt (navigasjonsarbeidssykluser på 100/150 mot 50/150 på den identiske planen). Slewtid og omkoblingstid, datavolum, bufferstatus, energi og linklukking er utelatt i rapportens merkelapp i stedet for å bli modellert i det stille
Tester
aperture_duty::tests (et vindu som slutter nøyaktig når det neste begynner, konkurrerer ikke, og å flytte det ett sekund tidligere koster nøyaktig ett sekund — vakt mot off-by-one; overlappende vinduer utover aperturantallet…
ModellertRF-jamming av månens overflatenavigasjon (J/S per satellitt)lunar_jamming (composing jamming, lunar_service, lunar)
Funksjon
Månenativ jammer-til-signal-forhold, effektiv C/N₀ og tap av lås for en selenografisk overflatebruker under en jammer på månens overflate (eller hevet), over den illustrerende konstellasjonen i Moonlight/LCNS-klassen fra offentlige kilder. Setter sammen den åpne jammingkjeden (j_over_s_db, effective_cn0_dbhz, rx_antenna_gain_db, lock_status, q_factor, nominal_cn0_dbhz, free_space_path_loss_db) med den åpne månehimmelgeometrien (lunar_service::LunarConstellation + topocentric, lunar::selenographic_to_mcmf); ingen geometri eller radiometri utledes på nytt. I motsetning til jord-typen jamming er signalleddet ikke en fast mottatt effekt: hver satellitts isotrope mottatte effekt er dens egen linkbudsjett-EIRP − FSPL(skrå avstand), så J/S varierer fra satellitt til satellitt med månens avstand og elevasjon. Gir EN RAD PER SYNLIG (epoke, satellitt)-LINK som JSON og som en *.table.csv-artefakt, med begge mottatte effekter som J/S er differansen mellom skrevet ut ved siden av; aggregerte kvalitetsmål står ved siden av denne tabellen, aldri i stedet for den. Kan kjøres som scenariotypen lunar-jamming
Uavhengig referanse
Sammensetningskryss-kontroll mot en uavhengig kodebane i samme repositorium: hver J/S per link utledes på nytt som differansen mellom to linkbudsjetter beregnet med linkbudget::received_signal_power_dbw, hvis frirom-tap er det enkle uttrykket 20·log10(4πRf/c) i stedet for tre-leddssummen jamming::free_space_path_loss_db bruker — de to stemmer til < 1e-9 dB på hver rad (målt verste tilfelle 7.11e-14 dB, altså flyttallsavrunding). Interferenskjeden den setter sammen er separat eksternt forankret i tests/gnss_denied_jamming_resilience_reference.rs (uavhengig numpy/scipy-utledning på nytt av J/S og effektiv C/N₀ festet til Kaplan & Hegarty §9,4, pluss JammerTest 2024 målt C/N₀, Zenodo 10.5281/zenodo.15910563); månegeometrien den setter sammen er lunar_service/lunar-geometrien med sine egne uavhengige referanser. Lukket-form identiteter kontrollert her: en halvert jammeravstand legger nøyaktig 20·log10(2) dB til hver rad; J/S er nøyaktig invariant for brukerantennens boresight-forsterkning mens C/N₀ flytter seg med nøyaktig denne forsterkningen; en elevasjonsmaske endrer ingen gjenværende rad bit for bit. Selve raden forblir ReferenceImpl/Modelled: ingen målt jammingkampanje på månen finnes å validere mot, og konstellasjonen er en illustrerende geometri i Moonlight/LCNS-klassen fra offentlige kilder, ikke en fløyet efemeride
Tester
lunar_jamming::tests (17 lib tests: j_over_s_equals_the_difference_of_two_independent_link_budget_runs; the_report_prints_both_link_budget_legs_so_the_difference_is_checkable_from_it…
ModellertNektelseskontur på månen med et usikkerhetsbånd fra den målte C/N₀-spredningenlunar_jamming (denial_js_db, range_for_free_space_path_loss_m, Cn0Distribution, DenialContourPoint, ContourBand, DenialContour; inverting jamming::effective_cn0_dbhz, jamming::j_over_s_db and jamming::free_space_path_loss_db)
Funksjon
Rapporten lunar-jamming hviler ikke lenger nektelseskonturen på én skalar. Den sender ut hele den målte fordelingen av ønsket-signal-C/N₀ over tabellen per satellitt — n, min, p05, p25, median, p75, p95, maks, middel, utvalgsstandardavvik og utvalgets egen asymmetri (p95 − median) − (median − p05) — ved siden av radene per link, som er uendret. Konturen rapporteres så ved hver av disse ordensstatistikkene under BEGGE nektelseskriteriene motoren kjenner, aldri det ene i stedet for det andre: det etablerte effektforholdskriteriet (J/S = 30 dB, den samme terskelen som attack_surface og tracking_loop bruker, og kriteriet bak denial-kolonnen i den utgitte tabellen for lunar link-jamming), og kriteriet tap av lås (effektiv C/N₀ som faller til tracking_threshold_dbhz), som er kriteriet rapportens egen links[].status-kolonne scores med. Hvert konturpunkt oppgis på begge aksene i nektelsesplanet — jammer-EIRP som kreves ved scenarioets avstand, og nektelsesavstanden ved scenarioets EIRP — slik at båndet er et intervall på de samme aksene et konturplott tegnes på. Båndkantene ER contour(p05) og contour(p95): den samme lukkede avbildningen brukt på utvalgets egne kvantiler, ikke en sigma tilpasset utvalget og ikke median ± k·stdev, og rapporten sier det i en band_definition-streng ved siden av tallene. stdev sendes ut for kontinuitet og brukes av ingenting. En kvantil hvis C/N₀ allerede er ved eller under sporingsterskelen har ingen endelig nektende J/S; disse kolonnene sendes ut som null med en talt årsak i stedet for som en uendelighet eller en avkortet radius
Uavhengig referanse
Intern konsistens mot motorens egne foroverfunksjoner, som er alt denne funksjonen ærlig kan hevde. Hvert konturpunkt er en lukket-form inversjon, og hver inversjon kontrolleres ved å sende svaret tilbake gjennom FOROVERFUNKSJONEN rapportens egne rader ble scoret med: J/S-kolonnen gjennom jamming::effective_cn0_dbhz (som må returnere tracking_threshold_dbhz til < 1e-9 dB-Hz), avstandskolonnen gjennom jamming::free_space_path_loss_db og jamming::j_over_s_db (samme J/S til < 1e-9 dB), EIRP-kolonnen gjennom jamming::j_over_s_db ved scenarioets egen avstand. Konturen kontrolleres videre å være GRENSEN for nektelsesmengden og ikke et punkt inni den — lock_status mister låsen på en streng ulikhet, så dommen måles å snu fra DEGRADED til LOST over 1e-4 dB J/S på hver side av konturen, noe en kontur som er feil med en epsilon ville svikte. Den sterkeste kontrollen er per link og ikke per kvantil: å bruke den samme avbildningen på hver rads egen C/N₀ gjenskaper rapportens statuskolonne nøyaktig — 0 uenigheter på 38 av 38 rader ved det dokumenterte arbeidspunktet (kind = lunar-jamming, hver inngangsverdi standard unntatt jammer.range_m = 25 000 m), der 26 rader er LOST og 12 ikke er det. Monotoni er målt, ikke antatt: 20 001 sampler over [tracking_threshold + 1e-3, 80] dB-Hz, 0 brudd på en strengt avtagende avstand og en strengt økende nødvendig effekt, så kvantilrekkefølgen i båndet er vist og ikke bare hevdet. ExternalDataset avslås og Validated med den: ingen målt jammingkampanje på månen finnes å sammenligne en nektelsesradius mot, konstellasjonen er en illustrerende geometri i Moonlight/LCNS-klassen fra offentlige kilder og ikke en fløyet efemeride, og konturens inngangsverdier (EIRP, jammereffekt, antenneforsterkninger, støytemperatur) er representative størrelser. ReferenceImpl ble også vurdert og avslått — inversen og foroverutrykket er den SAMME algebraen lest i to retninger, så tur-retur fanger transkripsjons- og fortegnsfeil men er ikke en uavhengig implementasjon; å kalle det en kryss-kontroll ville være det lånte-uavhengighet-grepet matriseinvariantene finnes for å hindre. Hva båndet gir er målt og sitert og ikke hevdet: ved dette arbeidspunktet er enkeltskalar-konturen 27,402916 km og setter 25 km på den nektede siden for alle 38 rader, mens båndet 21,256108 .. 29,921360 km inneholder arbeidspunktet og derfor rapporterer splittelsen tabellen faktisk viser. De to kriteriene er også målt å være uenige — effektforholdsbåndet (38,186527 .. 53,691675 km) inneholder ikke 25 km i det hele tatt — og derfor skrives begge ut
Tester
lunar_jamming::tests (10 lib tests: the_contour_is_the_exact_inverse_of_the_functions_the_rows_were_scored_with; the_band_is_the_measured_quantiles_pushed_through_the_contour_not_a_sigma…
ModellertDeteksjonsstyrke for kryssmodalitets integritetsmonitorhybrid_integrity
Funksjon
Rapporten hybrid-optical-rf oppgir hva kryssmodalitets-kjikvadratmonitoren faktisk kan DETEKTERE, ikke bare at den består et feilfritt tilfelle: den minste detekterbare biasen per overvåket akse (øst, nord, opp, klokke) ved scenarioets oppgitte sannsynligheter for falsk alarm og oversett deteksjon, deteksjonsstyrkekurven på hver side av den, det støyfrie biasmultiplumet der den realiserte statistikken først krysser terskelen, og tiden til deteksjon for en biasrampe ved en oppgitt rate. Feil injiseres også gjennom den virkelige monitoren, og statistikken den returnerer rapporteres ved siden av den analytiske prediksjonen
Uavhengig referanse
To interne uavhengige referanser, intet eksternt datasett. (1) Lukket-form tur-retur: den minste detekterbare biasen fremkommer ved å invertere halen til den ikke-sentrale kjikvadratfordelingen på ikke-sentraliteten (raim::pbias) og verifiseres ved å mate den resulterende ikke-sentraliteten tilbake gjennom raim::noncentral_chi2_cdf ved monitorens egen terskel, som må returnere P_md. (2) Injeksjon mot analyse: en bias skrives inn i RF-estimatet for én akse og cross_raim::run_cross_raim kjøres på nytt, slik at statistikken som sammenlignes mot den analytiske ikke-sentraliteten er den monitoren beregnet, ikke en ny utledning. En seedet Monte Carlo av selve statistikken ligger i testene som en tredje kontroll; den er med vilje IKKE i rapporten, fordi et utvalgsestimat ville vært tregere og ikke reproduserbart bit for bit. ExternalDataset avslås: størrelsen er deteksjonsstyrken til DENNE monitoren ved DETTE scenarioets sigma-fordeling, og sigma-størrelsene MDB skaleres med er modellerte representative inngangsverdier, ikke målinger. ReferenceImpl ble også vurdert og avslått — Monte Carlo trekker den samme statistikken analysen beskriver, så den fanger transkripsjons- og koeffisientfeil men er ikke en uavhengig implementasjon av monitoren. 0,30 runde 2 (forhåndsregistrert 0135a9e4), blokkert (forblir MODELLED): SciPy 1.18.1 chi2/ncx2/brentq gjenskaper rapportens terskel (innenfor 5.4e-12), MDB per akse, styrkekurven, kryssingsmultiplumet og rampens tid til deteksjon (innenfor 5.3e-10) på fem konfigurasjoner; statistikkene for injiserte feil har ingen uavhengig referanse og sigma-størrelsene er modellerte inngangsverdier, så avgrensningen venter på en eierbeslutning
Tester
hybrid_integrity::tests (deteksjonseffektkurven går fra falsk-alarm-raten ved null feil til 1 − P_md ved minste påviselige skjevhet; den minste påviselige skjevheten matet tilbake gjennom noncentral_chi2_cdf ved…
ModellertGjenvekst av kovarians etter overlevering mot varslingsgrensenhybrid_integrity
Funksjon
Rapporten hybrid-optical-rf eksponerer filterets prosessstøymodell og oppgir hvor lenge løsningen etter overleveringen holder seg innenfor varslingsgrensen: for begge overleveringsretninger bærer den kovariansen per akse overleveringen etterlot, propagerer den fremover under en oppgitt randomvandrings-prosessstøy, og rapporterer tidspunktet da den dekningsskalerte 1σ når varslingsgrensene for horisontal, vertikal og tid, hvilken grense som binder først, tidskonstanten for variansfordobling, og en samplet kystprofil som omslutter kryssingen. Prosessstøy-PSD-ene, dekningsfaktoren og varslingsgrensene er alle inngangsverdier med dokumenterte standarder
Uavhengig referanse
Ingen ekstern uavhengig referanse. Kryssingen er en lukket-form løsning av randomvandringens variansvekst, og testene beregner den på nytt uavhengig fra verdiene rapporten selv publiserer og ikke fra emitterens interne tilstand. Startkovariansen er festet bit for bit til sporet den eksisterende overleveringsblokken allerede rapporterte, så kysten ikke kan propagere en kovarians ingen andre så. Prosessstøy-PSD-ene er MODELLED representative inngangsverdier og kryssingstidene skalerer direkte med dem, noe skaleringstesten oppgir som en målt egenskap og ikke en påstand. ExternalDataset avslås med vilje: kysttiden er en direkte funksjon av to modellerte PSD-er og av varslingsgrenser som selv er representative, og det finnes ingen målt optisk/RF-overleveringskyst på månen å sammenligne mot. En ekstern uavhengig referanse her ville kreve en publisert kurve for kovariansvekst etter overlevering eller holdover-nøyaktighet for en sammenlignbar mottaker med oppgitt prosessstøymodell, kontrollert til en toleranse
Tester
hybrid_integrity::tests (coastingen starter fra nøyaktig det kovariansssporet som overleveringsblokken rapporterer, for begge retninger, slik at den gjentatte diagonalen ikke kan avvike fra den rapporterte overleveringen; den rapporterte kryssingstiden…
ModellertAntennemønster utenfor boresight i månegeometri-eksportenlunar_service, antenna
Funksjon
Eksporten av geometri per satellitt bærer, per (epoke, satellitt), vinkelen utenfor boresight VED SATELLITTEN og sendeforsterkningen mot stedet fra det virkelige jevnt belyste sirkulære aperturmønsteret (Airy), og rapporterer antallet i strålen under dette mønsteret VED SIDEN AV antallet i strålen under den symmetriske tilnærmingen fra forsterkning til stråleåpning (θ_3dB[deg] = √(31000/G_lin)), med differansen sendt ut som en eksplisitt korreksjon i links, i satellitter per epoke, og som verste enkeltepoke. Begge implisitte aperturvirkningsgrader for tilnærmingen sendes ut (0,641 mot regelen 70·λ/D grader den siteres med, 0,920 mot en uniform sirkulær apertur), slik at virkningsgraden den stilltiende forutsetter er oppgitt og ikke utledet. Av som standard: blokken vises bare når både et eksportsted og en apertur er oppgitt
Uavhengig referanse
Blandet, og atskilt i stedet for slått sammen. MØNSTERET under er eksternt validert og har sin egen rad (en scipy.special.j1-fixture til < 0,05 dB i tests/validate_p1_orbital_footprint.rs, pluss her den publiserte Airy-halveffektabscissen x = 1,61634 lokalisert ved halvering og ikke antatt). GEOMETRIEN kontrolleres mot lukket-form trekanttrigonometri skrevet som et annet uttrykk enn skalarproduktet som testes. INNESLUTNINGEN av den virkelige strålen i den tilnærmede kjeglen er utledet algebra (28.019/√η mot 29,479 grader per λ/D), så korreksjonen kan bare være ikke-positiv for η ≤ 0,9035. Men selve ANTALLENE i strålen har ingen ekstern uavhengig referanse: ingen publisert tabell oppgir hvor mange satellitter i et skall i Moonlight/LCNS-klassen som holder et sted ved sørpolen innenfor halveffektstrålen til en gitt parabol, og konstellasjonen er en illustrerende tilnærming fra offentlige kilder, ikke en fløyet efemeride. Den målte uenigheten ved det dokumenterte arbeidspunktet — 0 linker i strålen under det virkelige mønsteret mot 28 under tilnærmingen, −2,33 satellitter per epoke, verste epoke 3, på 76 evaluerte linker — er derfor et MODELLED funn om tilnærmingen, festet som en regresjonsliteral (nærmeste rad ligger 0,069° fra begge strålekanter, fire størrelsesordener over enhver uenighet i siste siffer), ikke et eksternt validert dekningstall. Å merke raden ExternalDataset på grunnlag av mønsterets eget eksterne anker ville vært lånt validering, som er det grepet matriseinvariantene finnes for å hindre. 0,30 runde 2 (forhåndsregistrert d9755d28), blokkert (forblir MODELLED): SPICE-geometri og SciPy Bessel-funksjoner gjenskaper vinkelen utenfor boresight (verste 3.0e-5 grader), Airy-forsterkningen og flaggene for i strålen på 6 336 rader med tilstander fra fløyne orbitere og det dokumenterte arbeidspunktet; men på fløyen geometri deler flaggene seg etter satellittidentitet (nærmeste link er 1,66 grader fra strålekanten), synligheten på 5 grader kontrolleres som et flagg og ikke som en numerisk elevasjon, flagget for den symmetriske tilnærmingen bruker tommelfingerregelen 31000/G på en validert vinkel uten å validere regelen, og de implisitte virkningsgradene har ingen uavhengig referanse; avgrensningen venter på en eierbeslutning
Tester
antenna::tests og lunar_service::tests (halveffektkryssingen funnet ved halvering på mønsteret stemmer med den publiserte Airy-verdien x = 1,61634 og gir den nøyaktige bredden 1,02899·λ/D, og viser at den konvensjonelle 1,02…
ModellertTap av lås og spoof-innfanging i sporingssløyfen under interferenstracking_loop (composing sdr, jamming)
Funksjon
Tap av lås beregnet fra sløyfedynamikk i stedet for et effektforhold: bærebølge (Costas) og kode (ikke-koherent tidlig/sen) 1σ termisk jitter mot C/N₀ med kvadreringstapet, mot de oppgitte reglene 3σ_PLL + θ_e ≤ 45° og 3σ_DLL + rampeforsinkelse ≤ d/2 chip; C/N₀-terskler for fall og gjenlåsing med den bindende sløyfen navngitt og hysteresen UTLEDET fra den bredere innfangingsbåndbredden og ikke hevdet; den deklarerte tiden til tap av lås fra en tosterskels låsedetektor med bekreftelsesventetider, rapportert separat fra den fysiske faseflukttiden (Viterbis midlere tid mellom syklusslipp, i log₁₀ s fordi den spenner over hundrevis av dekader); den største kodeslewen og bærebølge-Doppler-raten offerets sløyfer kan følge; og NEKTELSESRADIUSEN sløyfedynamikken innebærer, rapportert ved siden av den eksisterende effektforholdsradiusen med deres fortegnsbehæftede differanse som et eget navngitt felt. Kan kjøres som scenariotypen tracking-loop
Uavhengig referanse
Motorens egen sdr-korrelator (sdr::correlate / synth_if / CaCode) steppet fremover på seedet syntetisk IF ved en kalibrert C/N₀ — en separat kodebane som når de samme tallene ved numerisk korrelasjon av samplet IQ i stedet for ved et algebraisk jitteruttrykk, så den er en annen vei og ikke en gjentakelse — pluss standard tabulerte modifiserte Bessel I₀-verdier for syklusslippleddet. Sløyfeteori etter Kaplan & Hegarty kap. 8 og Viterbi/Gardner for slipptiden. Raden forblir ReferenceImpl/MODELLED: kryss-kontrollen ligger i den samme kodebasen, og bessel_i0-kontrollen validerer én spesialfunksjon og ikke sporingsmodellen, så å oppgradere raden på dette grunnlaget ville vært selvbetjent merking. ExternalDataset ville kreve et registrert rå-IF-datasett med fasit-C/N₀ og et annotert tidspunkt for tap av lås (TEXBAT/OAKBAT-klassen); ingen følger med i dette treet, og selv med IQ publiserer disse datasettene ingen fasit for sløyfetilstand per epoke, så en deklarert tid for tap av lås kunne bare valideres mot en annen mottakers låsedetektor, som er et modellert valg og ikke en uavhengig referanse. Sløyfebåndbreddene, integrasjonstiden, korrelatoravstanden, innfangingsforholdet, ventetidene, jammereffekten og antenneforsterkningene er representative båndtall, ikke et datablad. 0,30 runde 2, GNSS-SDR 0.0.19 (GPL-3.0, kjørt som et program) på uavhengig generert IF (forhåndsregistrert 6ef7698c, endringer i målemetoden opplyst), et funn (forblir MODELLED): lukket-sløyfe PLL- og DLL-jitter stemmer innenfor 8 % ved 35 til 45 dB-Hz, den dynamiske belastningen på 10 Hz/s innenfor 1 % og førsteordens kode-rampeforsinkelse innenfor 2 %; ved 30 dB-Hz er PLL-jitteren 21 % høyere og DLL-jitteren 32 % lavere, de målte 15-graders-regel-tersklene ligger 1,5 dB over motoren, og andreordens sløyfen sliper 0,5 til 2 dekader oftere enn førsteordens slipptidsgrensen. 0,30 revisjon: Costas-slipptiden bruker nå sløyfe-SNR rho/4 (halvsyklusslipp); standard jitter_table log10_mean_time_to_cycle_slip_s faller fra 11,58 til 2,10 ved terskelen 25,47 dB-Hz
Tester
tracking_loop::tests (jitter i en åpen-sløyfe Costas-diskriminator mot sdr::correlate stegvis kjørt på seedet syntetisk IF, 3 samlede støyrealisasjoner × 900 epoker, som stemmer til 0,63% over 35-45 dB-Hz, med…
ValidertKoordinatkovarians for månens VLBI-stasjoner fra en sporingsplanlunar_vlbi_fim (composing lunar_vlbi, fim, cio, lunar_frame, frames)
Funksjon
Delay-partialer akkumulert over en plan av grunnlinjer × epoker til en Fisher-informasjonsmatrise, invertert til stasjonskoordinatkovariansen og stasjonssigma per koordinat, som erstatter en forutsatt isotrop ekvipartisjonslink fra en skalar forsinkelsespresisjon. Tilstanden bærer jordfaste (ITRS) stasjonskoordinater, så Jacobianen er den inertiale partialen rotert med hver epokes GCRS→ITRS-matrise og jordrotasjonen er det som gjør disse koordinatene observerbare — rapporten MÅLER det jordfaste siktlinjesveipet og fyrets deklinasjon og antar dem ikke. Rang, datumdefekt, kondisjonstall, informasjonsspekteret og null-rommet til det frie nettverket sendes ut ved hver kjøring, og ved rangmangel publiseres hovedsigmaen som NULL med en status i stedet for å leses ut av en nesten singulær invers. Ekvipartisjonsverdien c·σ_τ·√(g/N) for SAMME plan skrives ut ved siden av den beregnede med deres forhold, sammen med den isotrope sporgrensen √(p/trace(M)) som AM-HM gjør til et hardt gulv. Kan kjøres som scenariotypen lunar-vlbi-fim
Uavhengig referanse
En uavhengig vei i samme repositorium. Hver Jacobian-rad utledes på nytt ved sentral endelig differanse av lunar_vlbi::vlbi_delay_s evaluert fra tilstandens egne jordfaste og månefaste koordinater rotert fremover gjennom referansesystemkjeden — en bane som ikke beregner noen derivert og ikke deler noe uttrykk med de analytiske partialene — og informasjonsmatrisene de to veiene bygger stemmer til < 1e-6 av den største diagonalen. Lineæralgebrakjernen den setter sammen (information_matrix, crlb, sym_eig) er separat eksternt forankret mot numpy.linalg.eigh / numpy.linalg.inv i tests/fim_observability_reference.rs, og forsinkelsesobservabelen bærer lunar_vlbis egen delta-DOR fjernfelts uavhengige referanse; raden låner ingen av disse statusene. Lukket-form identiteter kontrollert her og merket som slike: σ²- og 1/N-skalering, og √(p/trace(M)) som en AM-HM nedre grense den beregnede sigmaen ikke kan slå, som sammenfaller med ekvipartisjonsverdien bare på en isotrop geometri — og derfor er det målte forholdet nøyaktig den anisotropien forutsetningen forkastet. 0,30 ekstern sammenligning (Bibliotek: NAIF SPICE CSPICE N0067 via spiceypy 8.2.0, MIT; DE440, ITRF93 earth_latest_high_prec, MOON_PA), forhåndsregistrert (50863551) sammen med en følsomhetskjøring for modellfeil på motorsiden: hver Jacobian-rad gjenoppbygges med sentrale differanser av konvergerte newtonske lysgangstidsdifferanser fra SPICE-geometri (lysgangstidsligningen er et kort skript over SPICE-posisjoner; SPICE bærer geometrien), med planen gjenoppbygd fra SPICE-elevasjoner. Planen, rangen, defekten, informasjonsspekteret, kondisjonstallet, stasjonssigmaene, hovedtallet, sporgrensen, ekvipartisjonsforholdene, null-rommet til det frie nettverket, siktlinjesveipet og fyrets deklinasjon stemmer innenfor de forhåndsregistrerte 1 % / 0,1 grader, som ligger over motorens kjente analytiske månefeil (3.2e-3 på sigmaer, målt før kjøringen). NumPy 2.3.5 gjør lineæralgebraen på nytt på motorens innsjekkede Jacobian til 2e-13 (P2). Validert som en Cramér-Rao-grense for det oppgitte reduserte parametersettet på de oppgitte illustrerende inngangsverdiene: månesentrumsefemeriden, klokkene, troposfæren og jordorienteringsparameterne holdes faste i begge ledd, så det er ikke en nøyaktighet fra en reell kampanje
Tester
lunar_vlbi_fim::tests (24 lib-tester: den analytiske Jacobianen mot en sentral finitt differanse av lunar_vlbi::vlbi_delay_s tatt gjennom en rute som roterer tilstandens egne koordinater fremover og aldri berører en…
ModellertKoordinatkovarians for et punkt på månens overflate fra en VLBI-forsinkelsesplan, holdt atskilt fra den for jordstasjonenlunar_vlbi_fim (composing lunar_vlbi, fim, cio, lunar_frame, frames)
Funksjon
Et tredje datumvalg, all-stations-fixed, som holder hver jordstasjon fast og estimerer BARE FYRETS månefaste koordinater — konfigurasjonen en usikkerhet for et punkt på månens overflate faktisk oppgis for, siden jordstasjonenes koordinater er en inngangsverdi til forsinkelsesmodellen og ikke en ukjent i den. Den finnes fordi stasjonsnivåkovariansen og overflatepunktkovariansen er FORSKJELLIGE STØRRELSER atskilt av vektarmen ρ/B, og ingenting hindret tidligere at den ene ble oppgitt mot den andre. Den utsendte blokken beacon_link bærer ρ, den lengste grunnlinjen, vektarmen, overflatepunktformen av ekvipartisjonslinken c·σ_τ·(ρ/B)·√(g/N), den beregnede sigmaen per fyrkoordinat og deres forhold — forholdet er null i stedet for misvisende når fyret ikke estimeres eller matrisen er rangmangelfull. B tas som den LENGSTE grunnlinjen som er til stede, den gunstigste, slik at forholdet bare kan undervurdere. Kan kjøres som datum = "all-stations-fixed" med estimate_beacon = true, som avvises med en melding som navngir den manglende inngangsverdien når fyret ikke estimeres
Uavhengig referanse
Lukket-form identiteter, uten at noen ekstern uavhengig referanse hevdes eller finnes. Vektarmen kontrolleres mot ρ/B og de to ekvipartisjonsformene mot hverandre til 1e-15 — algebraiske identiteter, så de fanger en koblingsfeil og ingenting annet, og er merket som slike. Det vesentlige resultatet er MEASURED og ikke hevdet: en forsinkelse fra en fast grunnlinje begrenser fyrets RETNING, så siktlinjekomponenten når informasjonsmatrisen bare gjennom nærfeltets avstandsledd, og testen leser den resulterende anisotropien av det utsendte spekteret i stedet for å utlede den. AM-HM gjør √(p/trace(M)) til et hardt gulv, så en isotrop ekvipartisjonslink bare kan UNDERVURDERE, og beregnet-over-ekvipartisjon-forholdet er nøyaktig anisotropien den forkastet. MEASURED på paret av Goldstone-lignende/Canberra-lignende stasjoner hvis korde er 10726,748 km: over 112 samplede dager tillater 36 ingen gjensidig synlig epoke i det hele tatt ved en maske på 10°, det mest noen gang gjensidig synlig er 17 av en plan med 49 sampler, og på de 73 brukbare dagene løper trekomponentforholdet fra 113,9× til fire størrelsesordener mer, median 1513×, mens en begrensning til de to tverrgående retningene siktlinjen ikke sulter gir 3,94× til 25,8×, median 7,8×. HVA DENNE RADEN IKKE PÅSTÅR: noen av disse tallene som en egenskap ved en reell kampanje. Den fastslår at overflatepunktstørrelsen nå er BEREGNET og ikke antatt, og at den ikke i det stille kan byttes om med stasjonsnivåstørrelsen. Forblir ReferenceImpl/MODELLED: ingen publisert overflatepunktkovarians for månens VLBI finnes å validere mot, stasjonene og fyrstedet er illustrerende og ikke oppmålt, og efemeriden, klokkene, troposfæren og jordorienteringsparameterne holdes FASTE, så dette er en Cramér-Rao-grense for et redusert parametersett og optimistisk i seg selv. Den samme størrelsen på kjernebanen (fyret på DE440-Månen) er validert på sin egen rad, «…, kernel path»; på denne analytiske banen er den minste fyrsigmaen 3,9 % under den radens SPICE-referanse, og derfor forblir denne raden MODELLED
Tester
lunar_vlbi_fim::tests (7 lib-tester: hver datumstavemåte gjør rundtur gjennom parse/as_str og en ukjent avvises; å holde fast hver stasjon uten fyret avvises med en feil som nevner estimate_beacon; den…
ValidertKoordinatkovarians for et punkt på månens overflate fra en VLBI-forsinkelsesplan, kjernebanelunar_vlbi_fim (epoch_geometry_with, schedule, schedule_jacobian); ephem_provider (KernelEphemeris); naif_kernel
Funksjon
Fyrkovariansen med alle stasjoner faste i scenariet lunar-vlbi-fim (hver jordstasjon holdt, fyrets månefaste koordinater estimert alene) med fyret plassert på JPL DE440-Månen lest av motorens egen kjerneleser (planetary_kernel_path; lunar_vlbi_fim::epoch_geometry_with, ephem_provider::KernelEphemeris). Bare månesentrum avviker fra den analytiske banen; IAU 2015-kroppsrotasjonen, stasjonene, jordrotasjonen og lineæralgebraen er de samme. De validerte utdataene er observasjonssettet, informasjonsspekteret på 3 x 3, rang og kondisjonstall, de tre månefaste fyrsigmaene og deres RMS, vektarmen og beregnet-over-ekvipartisjon-forholdet, på standardplanen. Kan kjøres som scenariet lunar-vlbi-fim med datum = "all-stations-fixed", estimate_beacon = true og planetary_kernel_path satt
Uavhengig referanse
Bindende bibliotekledd: NAIF SPICE Toolkit N0067 (spiceypy 8.2.0, MIT) på de440s, earth_latest_high_prec (ITRF93 med UT1 og polbevegelse) og DE440-månesystemene, fyret fast i MOON_ME; hver Jacobian-rad er en sentral differanse på 3 km av den konvergerte newtonske lysgangstidsdifferansen (M069-referansens egen lysgangstidskode, importert), aldri en Kshana-partial; synlighet gjenoppbygd fra WGS-84-elevasjoner; NumPy 2.3.5 / SciPy 1.18.1 (BSD-3-Clause, LAPACK) eigh og inv. P2-ledd: NumPy på motorens innsjekkede Jacobian. Forhåndsregistrert (4a51256) før fixturen eller den uavhengige referansen fantes, med terskler på 1 % på egenverdier, kondisjonstall, sigmaer, RMS og forhold, 1e-4 på vektarmen, eksakt observasjonssett og rang; P2 1e-9. Opplyst: sammenligningen bare på motorsiden av analytisk og kjerne-Måne (3,9 % på y-sigmaen) ble kjørt før forhåndsregistreringen, for å velge kjernebanen, og er oppgitt der. Resultat: begge ledd stemmer, verste 1.7e-3 (fyrets y-sigma 0,081211 m mot 0,081351 m). Mutasjon: transponering av kroppsrotasjonen i fyrpartialen svikter begge ledd. Begge sider leser DE440, så at tallene stemmer validerer geometrien og lineæralgebraen på DE440, ikke DE440. Utenfor påstanden: nøyaktigheten for et overflatepunkt i en reell kampanje (klokker, troposfære og jordorientering holdt faste; illustrerende stasjoner og fyrsted), og den analytiske standardbanen (raden over, som forblir MODELLED: på den analytiske Månen er y-sigmaen 3,9 % under denne uavhengige referansen)
Tester
tests/lunar_vlbi_surface_point_spice_oracle.rs::surface_point_covariance_kernel_path_matches_spice_geometry_and_numpy (16 observations identical; rank 3/3; eigenvalues within 5.9e-5; condition 5.9e-5; beacon sigmas…
ModellertDifferensiell PNT på månen — residualbudsjett for korreksjonslinkenlunar_dpnt
Funksjon
De tre leddene en differensiell korreksjon får mellom epoken den beregnes ved og epoken den brukes ved, hvert tidligere latt ligge som umodellert slingringsrom: oppmålingsfeil for referansestasjonen (korrelert på tvers av satellitter, uavhengig av grunnlinjen, ~1:1 posisjonsoverføring og beviselig ikke DOP-forsterket), korreksjonsalderdom (den frosne banefeilvektoren projisert på nytt på siktlinjen motorens egen propagator setter satellitten på én latens senere, pluss c·σ_y(τ)·τ klokkedrift fra den kalibrerte potensloven), og uniform linkkvantisering over en eksakt full skala på ±(orbit_err + clock_err) med varians step²/12. Rapportert i både avstands- og posisjonsdomenet, ved siden av — aldri i stedet for — den eksisterende residualen og beskyttelsesnivået, med en latenskurve ved siden av enkelttallet
Uavhengig referanse
Lukket-form identiteter og selvkonsistens: den uniforme kvantisererens varians step²/12, den eksakte kovariansoverføringen (GᵀG)⁻¹GᵀRG(GᵀG)⁻¹ som faller sammen til σ·PDOP for lik σ, oppmålingsleddets 1:1-overføring som en følge av û_user ≈ û_ref, og kvadraturlukking ved avslåing. PDOP-kryss-kontrollen mot orbit::dop deler normalmatrisen [−û, 1], så den er en konsistenskontroll og er merket som det og ikke som en uavhengig referanse. Intet ExternalDataset er tilgjengelig eller hevdet: ingen månestasjon har en publisert oppmålt nøyaktighet, ingen differensiell korreksjonslink på månen har en publisert latens eller meldingsformat, og kvantiseringsresultatet er en lukket form og ikke en måling. RTKLIB — allerede den eksterne kodereferansen for enkeltdifferanse- og vektet-minste-kvadrater-kjernen — kunne drives med en bevisst feiloppmålt base for å bekrefte 1:1-oppmålingsoverføringen, men det er uavhengig kode over den samme førsteordens siktlinjealgebraen. STØRRELSENE ER MODELLED: oppmålingsstandarden er denne crate-ens egen tildeling for realisering av månens referansesystem og ikke en målt stasjon, latensen og antall bit er ILLUSTRATIVE inngangsverdier, og veksten i selve feilvektoren for den kringkastede efemeriden er ikke modellert i det hele tatt — oppgitt i den utsendte alderdomslovstrengen, fordi det er leddet som mest sannsynlig dominerer en reell link
Tester
lunar_dpnt::tests (en rent additiv vakt der nøkkelsettets delta er nøyaktig {correction_link, units} med hver eksisterende verdi bit-identisk mot litteraler fanget før endringen; oppmålingsfeil gjør IKKE…
ModellertDekning og nøyaktighetskart for referansestasjon på månenlunar_station (over lunar_dpnt, lunar_service)
Funksjon
Monte Carlo-sveip av den differensielle PNT-modellen for månen over et brukerrutenett ved sørpolen og et døgn med epoker (typen lunar-station-coverage): for en differensiell referansestasjon på et kjent sted ved sørpolen, per punkt og over regionen, persentil av korrigert og ukorrigert posisjonsfeil (3-D, horisontal, vertikal), tilgjengelighet med en årsak for hver utilgjengelige epoke (user_lt4, station_missing_sat), dekning mot en terskel oppgitt før kjøringen, DO-229E-beskyttelsesnivåer, dekningsradiusen per asimutsektor, og korreksjonslinkbudsjettet ved stasjonen og ved det verste punktet. Ikke en påstand om ytelsen til noe reelt system; ikke tilknyttet eller støttet av noe byrå
Uavhengig referanse
Aritmetikk regnet ut på nytt av et uavhengig numpy-skript på eksporterte tilfeller (scripts/gen_lunar_station_ref.py, numpy 2.5.4; forhåndsregistrert i tests/fixtures/lunar_station/PREREGISTRATION.md, committet alene i 9caedf97 før første kjøring): på 20 tilfeller med alle feilledd på er de synlige settene og statusen identiske, de rå avstandsfeilene stemmer til 1.4e-14 m, posisjonsfeilvektorene og -størrelsene til 1.4e-9 m mot en terskel på 1e-6 m, og hvert punkts p95 er lik numpy.percentile bit for bit; stasjonskorreksjonene bommet på terskelen sin på 1e-9 m (verste 3.73e-9 m, 15 av 20 tilfeller), og med dem de korrigerte avstandsfeilene: kontrollert med 60-sifret aritmetikk ligger begge sider innenfor dobbeltpresisjonsavrunding av den eksakte verdien, siden oppmålingsleddet er en differanse av to avstander på 1e7 m hvis siste-plass-enhet er 1.86e-9 m; registrert, ikke justert. Typen reduseres eksakt til typen lunar-differential-pnt ved ett punkt, én epoke og ett forsøk. Feilmodellen, dekorrelasjonsmodellen og hver terskel er dette prosjektets egne eller ILLUSTRATIVE; ingenting her er en påstand om noe reelt system
Tester
tests/lunar_station_coverage_reference.rs (one_point_one_epoch_one_trial_reduces_to_lunar_differential_pnt: til 1e-12 m med og uten mottakerstøy; zero_baseline_floor_is_zero_in_every_trial: 0 til 1e-9 m…
ModellertTerrenghorisontmasker for månen fra en oppgitt profil eller en polar DEMlunar_terrain (over skyline, lunar_service::topocentric_basis); lunar_station; lunar_service (coverage_masked, masked_visible)
Funksjon
Asimutavhengige horisontmasker per sted for typen lunar-station-coverage (referansestasjonen og hvert brukerpunkt) og rutenettet moonlight-service-volume og dets eksportsted per satellitt (hver eksportrad får clears_terrain), i skyline-tabellformatet fra 0,36 (skyline::Skyline, lineær i asimut med omslag ved 360 grader; en oppgitt profil og en DEM-horisont ved ett sted kombineres som sitt punktvise maksimum): en oppgitt [terrain] station_horizon eller user_horizon merket med sin kilde, og/eller en horisont strålemarsjert over en sørpolar stereografisk DEM (LRO LOLA-rutenettoppsettet for polene, lest fra en beskrivelse som fastsetter størrelse og SHA-256, eller en breddegrad/lengdegrad realdata::lola_dem-flis med [terrain] dem_tile_path, gjengitt med sin SHA-256) langs store sirkler på månekulen med eksakt krumning, fra en oppgitt masthøyde, ved et oppgitt asimutsteg og rekkevidde. En satellitt teller ved et sted når den klarer den flate mask_deg og horisonten ved sin asimut (lunar_service::topocentric); en epoke horisonten etterlater med færre enn fire satellitter i et punkt, der den flate masken gir fire, telles som den utilgjengelige årsaken terrain_masked. Den medfølgende DEM-en er et utsnitt av det offentlig tilgjengelige LOLA LDEM_75S_240M-produktet, 5 x 5 blokkmiddel-resamplet til 1200 m (data/lunar-dem/NOTICE.md). Når den mangler, beholder hvert sted den flate masken og hvert dokument er byte-identisk
Uavhengig referanse
Lukket-form flater (InternalConsistency): den bare kulens dypp, et krater i et platå på kulen med en observatør på og utenfor midten, og en analytisk kjegle mot sin egen rasterisering. På det virkelige utsnittet stemmer en uavhengig numpy-strålekasting (scripts/gen_lunar_terrain_ref.py, numpy 2.5.3; forhåndsregistrert i tests/fixtures/lunar_terrain/PREREGISTRATION.md, committet alene i edbb9b02 før skriptet fantes) ved fem steder: stedshøyder til 1.0e-11 m og alle 1800 horisontelevasjoner til 5.5e-10 grader mot terskler på 1e-6, antall avkortede stråler eksakt; dette kontrollerer aritmetikken, ikke terrenget. Ingen publisert polar horisont- eller belysningsfigur er gjenskapt: det medfølgende utsnittet på 1200 m jevner ut relieffet under en kilometer som publiserte belysningsstudier oppløser, så DEM-horisontene er en MODELLED siktlinje over en resamplet reell DEM og ikke en validert horisont. Stasjonsstedet og konstellasjonen forblir ILLUSTRATIVE; ingenting her er en påstand om noe reelt system
Tester
lunar_terrain::tests (bare_sphere_horizon_is_the_dip: strålemarsjen gjengir -acos(R / (R + a)) til 1e-3 grader ved hver asimut; a_cone_on_a_lat_lon_tile_matches_the_analytic_cone: den samme kjeglen samplet på en 0,005 graders…
ModellertFlerveis og mottakermaskinvareledd for referansestasjon på månenlunar_receiver; lunar_station
Funksjon
Den valgfrie [receiver]-seksjonen i lunar-station-coverage (LRS-02): elevasjonsavhengig flerveissigma sigma(el) = a + b exp(-el / el0) hos brukeren og ved stasjonen (RTCA DO-229 luftbårne funksjonelle form, med a = 0,13 m, b = 0,53 m, el0 = 10 grader som standarder; på Månen er hver verdi ILLUSTRATIVE), hvit hos brukeren og førsteordens Gauss-Markov over epoker ved stasjonen (rho = exp(-dt / tau)); tidlig-minus-sen DLL termisk kodestøy sigma = L_c sqrt(B_L d / (2 C/N0) (1 + 2 / ((2 - d) T C/N0))); biaser mellom kanaler per kanal, konstante over et forsøk, hos brukeren og ved stasjonen. Stasjonsleddene går inn i korreksjonene, brukerleddene i de rå og korrigerte målingene, hver på sin egen seedede strøm. Når de mangler, er hvert dokument uendret
Uavhengig referanse
Lukkede former og statistikk av modellens egne trekk (InternalConsistency): DLL-formelen mot en håndberegning, DO-229-formen, nullgrunnlinjedifferansen mellom to mottakere, Gauss-Markov lag-1-korrelasjonen. Ingen måling av flerveis eller mottaker på månen finnes å sammenligne med; verdiene er ILLUSTRATIVE og ingenting her er en påstand om noen reell mottaker
Tester
lunar_receiver::tests (multipath_is_the_do229_form; dll_noise_matches_a_hand_computation: 0.825279 m at 45 dB-Hz, 0.5 Hz, d = 1, 20 ms; bad_sections_are_refused); tests/lunar_station_ext.rs…
ModellertVekst i efemeridefeil for referansestasjon på månen over korreksjonslatensenlunar_station (orbit_growth_range_sigma_m)
Funksjon
Den valgfrie inngangsverdien orbit_err_growth_m_per_s for lunar-station-coverage (LRS-03): en korreksjon brukt latency_s etter at den ble beregnet går glipp av veksten g latency_s i den kringkastede banefeilen, g isotrop med 3-D RMS-rate, trukket per satellitt og forsøk på sin egen seedede strøm (avstand 1-sigma-rate tau / sqrt(3)), oppå den frosne-feil-siktlinjeprojeksjonen på nytt. Når den mangler, er hvert dokument uendret. Et K5-tillegg til sammenligningen med publiserte påstander, forhåndsregistrert alene, kjører K5 ved 0,001, 0,01 og 0,1 m/s (ILLUSTRATIVE)
Uavhengig referanse
Vekstleddets lukkede sigma og førsteordens propageringskontroll (InternalConsistency). K5-tillegget (tests/fixtures/lunar_station_published/ADDENDUM-LRS03.md, forhåndsregistrert alene i 59d88248): K5 svikter ved hver rate, korrigert p95 3-D 369,8 m, 2315 m og 22797 m mot en terskel på 1,5 m (292,96 m registrert uten vekst), slik oppgitt før kjøringen. Ingen offentlig kilde oppgir en vekstrate på månen: ILLUSTRATIVE
Tester
tests/lunar_station_ext.rs (growth_absent_or_zero_is_the_frozen_error_run; the_growth_term_has_the_closed_form_sigma: linkfeilen med vekst på minus vekst av har utvalgs-sigma rate tau / sqrt(3) innenfor 6 % over 1600…
ModellertLøsningsmodi for den lunare referansestasjonen: høydebegrensning, tre satellitter, vindu med statisk brukerlunar_solution; lunar_station (solution_figures)
Funksjon
Den valgfrie [solution]-seksjonen i lunar-station-coverage (LRS-06): en høyde-pseudomåling lagt til som rad up . dx = e_h med oppgitt 1-sigma, vektet mot avstandsradene, et minimum på tre satellitter som bare er tillatt sammen med den, og en vektet minste kvadraters løsning over de siste window_epochs epokene med en felles statisk posisjon og én klokke per epoke (svaret fra et filter for en statisk posisjon uten prosessstøy over de samme dataene; epokenes feil behandles som uavhengige). Uten seksjonen er snapshot-løsningen og alle dokumenter uendret. Et tillegg til sammenligningen med publiserte påstander, med kildenes løsningsstil, forhåndsregistrert alene
Uavhengig referanse
Snapshot-reduksjonen og løserens lukkede tilfeller (InternalConsistency). Tillegget (tests/fixtures/lunar_station_published/ADDENDUM-LRS06.md, forhåndsregistrert alene i 001ca100) med en høydebegrensning på 1 m, tre satellitter og et vindu på 6 epoker (ILLUSTRATIVE innstillinger; kildene oppgir et filter, en høydebegrensning og tre satellitter, men ikke innstillingene deres): K1 til K5 feiler og K6 består, 1 av 6 som i den registrerte kjøringen; R300 korrigert p95 3D-feil faller fra 280,6 m til 2,11 m (horisontalt 0,90 m, ikke vurdert) og dekningen forblir 0. Vinduets antakelse om uavhengighet favoriserer det. Ikke en uttalelse om noe virkelig system
Tester
lunar_solution::tests (one_epoch_without_height_is_the_snapshot_solve: er lik lunar_dpnt::position_error_vector_from_range_errors til 1e-8 m, en løs høyderad endrer ingenting, en stram fester høydefeilen…
ModellertNøyaktighet og dekning for en lunar referansestasjon sammenlignet med publiserte påstanderlunar_station (over lunar_dpnt, lunar_service)
Funksjon
Typen lunar-station-coverage kjørt under de offentlige forutsetningene i det publiserte materialet om en lunar differensiell referansestasjon (fire navigasjonssatellitter i frosne elliptiske baner på 24 h, 10 m 95 % SISE, 0,30 m kodestøy, 1 s og 600 s korreksjonsforsinkelse, en stasjonsmåling under desimeternivå, det publiserte eksempelstedet for stasjonen, sirklene på 300 km og 600 km rundt sydpolen) og vurdert mot kildenes numeriske påstander under seks ensidige terskler forhåndsregistrert før kjøringen: dekning av hele sydpolen med p95 under én meter (K1, K2), p95 etter korreksjon under én meter og på desimeternivå (K3, K4), under én meter bevart ved 600 s forsinkelse (K5), og nøyaktighet bevart fra 10 km til 500 km grunnlinje (K6)
Uavhengig referanse
Referanse: de numeriske påstandene fra fem offentlige kilder, registrert med URL, hentedato, SHA-256 og lisens i tests/fixtures/lunar_station/SOURCES.md (arXiv:2602.08432v3; IOAG Cislunar PNT Workshop-lysbilder fra 2025 og 2026; UNOOSA ICG WG-B Lunar PNT, juni 2024), transkribert med sidehenvisninger i tests/fixtures/lunar_station_published/CLAIMS.md. Terskler, tilfeller og inndata ble forhåndsregistrert i tests/fixtures/lunar_station_published/PREREGISTRATION.md (revisjon 2, 05bf9a19, innsjekket alene før kjøringen). 0,36 første kjøring, et funn (forblir MODELLED): 1 av 6 terskler er bestått. Dekningen er 0,00 på begge sirklene mot >= 0,95, og den korrigerte p95 3D-feilen er 280,6 m (300 km) og 293,0 m ved 600 s forsinkelse, mot <= 1,5 m. Desimetertersklen (K4) kunne ikke bestås ved kildenes kodestøy på 0,30 m, noe som gjenspeiler en konflikt mellom kildene og ikke et modellresultat. K6 består (forhold 1,39 mot <= 1,5), men som forholdet mellom to geometridominerte størrelser er det ikke belegg for dekorrelasjon i noen retning. Årsak: satellittenes elementer er ikke offentlige, og med de ILLUSTRATIVE elementene i kodetreet deler en bruker og stasjonen fire satellitter over 5 deg i bare 8,2 % (300 km) og 6,3 % (600 km) av epokene, ved nesten singulær geometri (ukorrigert p95 3,8 km mot kildenes < 10 m). Kildenes simuleringer brukte et filter, en høydebegrensning og tre satellitter i felles sikt, noe snapshot-typen ikke modellerer. Sammenligningen bekrefter eller avkrefter derfor ikke den publiserte 'under én meter over hele sydpolen'. Den viser at resultatet fra denne modellen avhenger av baner som ikke er publisert. Ikke en uttalelse om noe virkelig system; ikke tilknyttet eller støttet av noe byrå
Tester
tests/lunar_station_published_oracle.rs::recorded_finding_one_of_six_bars_passes (the recorded figures against the registered bars); tests/lunar_station_published_oracle.rs::published_claims_comparison_run (ignored…
ValidertKjerne for lunart ARAIM-beskyttelsesnivålunar_service (lunar_protection_level, lunar_protection_level_with_sigma), lunar (lunar_araim_with_sigma), raim (araim_raim)
Funksjon
Steget fra geometri til kovarians i det lunare beskyttelsesnivået — (GᵀG)⁻¹ over alt-i-sikte og hver delgeometri med én feil, projisert på lokal vertikal og sporet til den horisontale blokken — og dets statistiske kjerne: Bonferroni-detektormultiplikatoren, den gaussiske øvre halen for hver feilhypotese, og rotløsningen som avbilder et integritetsrisikobudsjett på et beskyttelsesnivå, over et lunart tjenestevolum med 7 punkter
Uavhengig referanse
To etablerte tredjepartsimplementasjoner satt sammen, begge kjørt frakoblet, med fixturen regenerert fra start til slutt og verifisert byte-identisk. RTKLIB 2.4.2-p13 (T. Takasu, BSD-2-Clause), commit 71db0ff, src/rtkcmn.c kompilert fra C-kildekode med -ULAPACK: lsq() → matinv() → ludcmp()/lubksb() inverterer normalmatrisen med Crout LU med delvis pivotering, en algoritme uten slektskap med kshanas håndskrevne Gauss-Jordan invert4(); numpy.linalg.inv (LAPACK getrf/getri) inverterer hver av dem på nytt som en tredje uavhengig invers, og stemmer overens med RTKLIB til 1.112e-12 relativt. SciPy 1.17.0 / NumPy 2.4.1 (BSD-3-Clause) leverer norm.isf, norm.sf (Cephes ndtri/ndtr) og optimize.brentq mot kshanas Numerical-Recipes-serie for ukomplett gamma, invers med intervallhalvering og intervallhalvering i 200 steg — og SciPys direkte sf er en annen numerisk vei inn i den fjerne halen enn kshanas 1 − Φ, slik at kanselleringen i den dype halen måles i stedet for å speiles. Den vertikale aksen er den radielle enhetsvektoren (definisjonen av lokal vertikal på en sfærisk måne), og den horisontale variansen er sporet til den horisontale blokken, så ingen Øst/Nord-asimutkonvensjon deles. UTTRYKKELIG IKKE VALIDATED AV DENNE RADEN: σ_URE, apriorisannsynligheten for feil per satellitt og den illustrative konstellasjonen av typen Moonlight/LCNS er MODELLED inndata gitt til den uavhengige referansen som de er; og FORMEN på MHSS-integritetsligningen for én feil er transkribert fra den samme publiserte grensen som kshana implementerer — en delt lukket form er en delt antakelse, så denne raden dekker en gal evaluering av den ligningen, ikke et galt valg av den. Ingen tredjeparts MHSS ARAIM-implementasjon er tilgjengelig (RTKLIB har ingen inngang for beskyttelsesnivå, ingen slik PyPI-distribusjon finnes, Stanford MAAST er MATLAB), og det er den utestående oppgraderingen
Tester
tests/lunar_protection_level_reference.rs (7 tjenestevolumtilfeller — sørpolar, midtre breddegrader, ekvatorial, hevet høyland — 6 til 19 satellitter, σ_URE 10/30/60 m, P_HMI 1e-3 ned til 1e-7, beskyttelsesnivåer som spenner over…
ValidertARAIM MHSS-beskyttelsesnivåer mot publiserte referansevektoreraraim_reference (araim_reference_protection_levels, published_vectors), raim (araim_protection_level, araim_integrity_risk, normal_quantile)
Funksjon
Selve ligningen for beskyttelsesnivå med løsningsseparasjon under flere hypoteser: vektet minste kvadrater for alt-i-sikte og for hver enkelt feilmodus på en geometri i Øst/Nord/Opp med én klokketilstand per konstellasjon, delløsningenes sigmaer, løsningsseparasjonens sigmaer og ensidige nominelle biasprojeksjoner, Bonferroni K_fa-tersklene, risikoallokeringen for ikke-overvåkede feil, og VPL/HPL som løser integritetsrisikoligningen. Kan kjøres som scenariotypen araim-reference-check
Uavhengig referanse
EU-U.S. Working Group C ARAIM Technical Subgroup, Reference Airborne Algorithm Description Document v3.1 (20 juni 2019), Appendix D, regneeksempel — publiserte INNDATA (geometrimatrise med 10 satellitter og 2 konstellasjoner, diagonalene C_int/C_acc, b_nom, P_sat, P_const, LPV-200-konstanter) og publiserte UTDATA (VPL 18,3 m, HPL 13,45 m, EMT 7,2998 m, σ_v_acc 1,3694 m, K_fa_3 5,1083 og seks mellomresultater for konstellasjonsfeil), hentet 2026-09-20, kilde-SHA-256 7f42934488c5c2261363439fabd48385e39526df34d514f395e22b6990b6bdb7. Reprodusert innenfor referansens EGEN oppgitte toleranse TOL_PL = 5e-2 m: VPL 0,0074 m, HPL 0,0437 m; EMT og σ_v_acc til trykt presisjon. Den samme undergruppens Milestone 3 Report (2016) Annex A §A.IX oppgir det samme eksempelet, men er internt inkonsistent — en fortegnsfeil i rad 3 av G (+0,7477 der dokumentet fra 2019 skriver −0,7477; med pluss blir dokumentets egen σ_v_acc 0,8690 m mot dets publiserte 1,47 m), og en K_fa_3 evaluert ved 57 feilmoduser mens dokumentet oppgir N_fault_max = 1, altså 12, slik at dets EMT følger terskelen for 57 moduser og dets VPL/HPL ikke gjør det. Ingen konform implementasjon kan reprodusere alle utdataene på en gang. Dets geometriske mellomresultater reproduseres nøyaktig og dets beskyttelsesnivåer er registrert som målte avvik (VPL 0,0171 m, HPL 0,0842 m, EMT 0,4806 m), utelatt fra aksepttallet; toleransen ble ikke utvidet for å absorbere dem. OMFANG: bare N_fault_max = 1 — delmengder av feil med flere hendelser avvises i stedet for å avkortes, og utelukkelse, kjikvadratkontrollen av konsistens og omallokeringssteget mot dobbelttelling forblir MODELLED
Tester
tests/araim_reference_vectors.rs (2 publiserte vektorer + 6 negative kontroller, fixture tests/fixtures/araim_reference/wgc_araim_reference_vectors.txt: å droppe den nominelle skjevheten bommer på den publiserte VPL med 2,6457 m, en 10…
ModellertARAIM med samtidige hypoteser om feil i flere satellitteraraim_reference (add_v42_subset_plan, add_v42_protection_levels_to_order); raim (araim_subset_raim, SubsetRule)
Funksjon
araim_reference::add_v42_subset_plan: ADD v4.2-regelen for bestemmelse av delmengder (P_THRES, FC_THRES, overvåkede delmengder med færrest fjernet først) generalisert fra par til samtidige kombinasjoner av opptil max_order satellitt- og konstellasjonshendelser, med den eksakte apriorisannsynligheten P_no fault prod q_e; add_v42_protection_levels_to_order kjører ADD v4.2-veien for beskyttelsesnivå på den (orden 2 er nøyaktig den eksisterende veien). raim::araim_subset_raim (valgfri): avansert RAIM over denne hypotesemengden, hver overvåkede delmengde som én modus (p_fault, T, b, sigma) i integritetsrisikosummen, ikke-observerbare delmengder flyttet til den ikke-overvåkede risikoen, budsjettet skalert med ADD-allokeringen av den ikke-overvåkede risikoen, og delmengden med størst normalisert separasjon rapportert når en feil oppdages. Apriorisannsynligheter som krever dypere delmengder enn max_order avvises, aldri avkortes
Uavhengig referanse
Intern konsistens (InternalConsistency): reduksjonen av orden 2 til den MAAST-kontrollerte ADD v4.2-veien, uavhengig ny utledning av apriorisannsynlighetene og en konstruert feil i to satellitter. Ingen MAAST- eller RTKLIB-kjøring utover par er gjort, så de dypere hypotesemengdene og beskyttelsesnivåene til delmengde-RAIM er ikke kontrollert eksternt. araim_subset_raim deler forenklingene til araim_dual_raim (én sigma for integritet og nøyaktighet, én klokke, den enkle normale halen): den er ikke ADD-konform
Tester
tests/raim_multi_sv_subsets.rs (deeper_orders_change_nothing_when_pairs_suffice; triples_are_refused_at_order_two_and_planned_deeper: N_fault,max >= 3, den uovervåkede risikoen innenfor P_THRES, en delmengde som fjerner tre eller…
ModellertRAIM ved siden av kvalitetsmålene for klokkens holdoverclock_integrity (run, sky_at, IntegrityCfg); scenario (Scenario::integrity); report (RunResult::integrity_fom); api (clock dispatch)
Funksjon
Den valgfrie [integrity]-seksjonen i clock-typen (clock_integrity::run): fra et oppgitt sted og forhåndsinnstillinger for konstellasjoner (geometry::sky_geometry), ved hver integritetsepoke så lenge GNSS-tidslinjen ikke er nektet, snapshot-RAIM (raim::snapshot_raim: kjikvadrattest på paritet, beskyttelsesnivåer med helning) på satellittene over masken, med seedede gaussiske residualer med oppgitt sigma og en valgfri oppgitt bias; en egen integrity_fom-blokk med avgjørelser per epoke, beskyttelsesnivåer og tilgjengelighet. Nektede epoker rapporteres som utilgjengelige, aldri ekstrapolert; kvalitetsmålene for holdover er uendret, og uten seksjonen er utdataene byte-identiske
Uavhengig referanse
Intern konsistens (InternalConsistency): beskyttelsesnivåene er de fra snapshot_raim, som er validert mot RTKLIB i sin egen rad, beregnet på nytt på samme geometri; oppførsel uten feil og med injisert feil. Himmelen er en representativ geometri fra en forhåndsinnstilling (ikke en datert almanakk), residualene er syntetiske, og sigma, varslingsgrensene og sannsynlighetene er oppgitte inndata; ingenting her er en uttalelse om tilgjengeligheten til en virkelig mottaker
Tester
tests/clock_integrity.rs (the_block_is_separate_and_absent_by_default: holdover-tall uendret, 111 nektede epoker utilgjengelige uten beskyttelsesnivå, avvist med runs > 1…
ModellertRomlig, støyende observerbarhet av buelengde i flere cislunare familiercislunar_observability, observability_gramian, intersat_range, cislunar_srif
Funksjon
Observerbarhetsterskelen for buelengde i cislunart rom i det ROMLIGE CR3BP med seks tilstander i stedet for det plane med fire tilstander, på tvers av familiene DRO, L2-halo og L2 nesten-rettlinjet halo, med målestøy i Gramian og TO kriterier rapportert fordi det ikke finnes ett enkelt ærlig: det publiserte rangkriteriet, som beviselig er invariant overfor en homoskedastisk måle-sigma (veiing multipliserer observerbarhetsmatrisen med en skalar, slik at det relative singulærverdispekteret og dermed rang, defekt og kondisjonstall er uendret), og et estimerbarhetskriterium — den første buen der den formelle 1σ-posisjonsusikkerheten i hovedfarkostens starttilstand faller under en oppgitt grense — som er det som flytter seg med støy. Hver terskel bærer intervallet i epokenettet den ligger i; et kriterium som ikke nås er null med en begrunnelse. Plan modus forblir standard, og familier utenfor planet avvises der i stedet for å bli flatet ut til en tilstand som ikke kan representere dem
Uavhengig referanse
En uavhengig radtrappeform-rang ved Gauss-eliminasjon med delvis pivotering bekrefter hver rangavgjørelse med seks tilstander — en annen algoritme som ikke deler kode med egenverdi-/SVD-veien som testes. Tilstandsovergangsmatrisen 6×6 for CR3BP som dette bygger på har sin egen ReferenceImpl-referanse mot SciPy-variasjonsintegrasjon, og startbetingelsene for halo/NRHO kommer fra en korrektor som reproduserer den publiserte sørlige L2-Gateway-banen 9:2. Det eksisterende leddet med kvadratrotinformasjonsfilter telles uttrykkelig IKKE som støttende belegg: det bruker de samme Jacobianene og reduseres til den samme normalmatrisen, så det er en konsistenskontroll mellom to numeriske maskiner, og den utsendte utvidelsesetiketten sier det. IKKE eksternt forankret, og ExternalDataset er derfor avslått i stedet for lånt fra raden for STM: selve terskelbuelengdene avhenger av den MODELLED konstellasjonsutformingen, epokenettet og — målbart, med opptil 40× — singulærverdi-toleransen. De publiserte plane 2,09 h reproduseres nøyaktig ved rel_tol = 1e-6 og er selv toleranseavhengige (10,25 h ved 1e-4, 0,42 h ved 1e-8), noe som er en egenskap ved kriteriet og ikke ved banen. Ingen offentlig datasett publiserer en observerbarhetsterskel for buelengde for en valgt cislunar konstellasjon. MEASURED RESULTAT: den romlige terskelen med seks tilstander er 22,17 h for L2 NRHO og 40,42 h for L2-halo, og FINNES IKKE for den plane DRO-familien som den publiserte påstanden ble utledet på — rang 4 av 6 med datumdefekt 2 og to nøyaktig null egenverdier, en strukturell defekt som ingen buelengde gjenvinner
Tester
cislunar_observability::tests og observability_gramian::tests (standarddokumentet festet bit for bit med FNV-1a av JSON-en, sammendraget og SVG-en, med eksplisitte standardverdier påvist å være uten virkning og de åtte…
ModellertFeil i prediksjon av jordorientering i operativ stil, målt predikert mot endeligframe_eop, realtime_frame_eop
Funksjon
En minste kvadraters tilpasning av bias pluss rate over et glidende vindu pluss de viktigste periodiske leddene — årlig, halvårlig og de to viktigste sonale tidevannene for UT1; Chandler, årlig og halvårlig for polen — ekstrapolert med det siste residualet i vinduet ført videre: klassen IERS Bulletin A bruker, i stedet for persistensprediktoren som den publiserte horisonten bygde på. Vurdert på den eneste ærlige måten: en prognose for T+h bygd fra rapid-rader i Bulletin A ved eller før T, målt mot den SENERE publiserte endelige Bulletin B ved T+h, med persistens vurdert over nøyaktig samme epokesett mot de samme endelige verdiene ved siden av. En målepoke uten publisert endelig verdi forkastes i stedet for å vurderes på nytt mot rapid-kolonnen; et periodisk ledd som vinduet ikke kan begrense rapporteres som forkastet med de syklusene det faktisk dekker; et ufullstendig vindu avvises i stedet for å forkortes i det stille
Uavhengig referanse
Tre uavhengige veier, ingen av dem et publisert tall for prediksjonsnøyaktighet. (1) Et analytisk signal med kjente koeffisienter — den eneste måten å prøve ut det periodiske maskineriet på, siden ingen innsjekket serie er lang nok til å romme et årlig ledd. (2) Den lærebokmessige lukkede minste kvadraters løsningen, en annen algebra enn matriseløsningen som testes, på virkelige rader. (3) De ekte arkiverte prediksjonsradene fra Bulletin A som det virkelige produktet for 2026 publiserer, sammenlignet per ledetid som en overensstemmelsesstatistikk og uttrykkelig ikke som en feil: 0,256 ms ved 1 dag, 0,695 ms ved 2 dager, 1,252 ms ved 3 dager, økende til 3,885 ms ved 9 dager. Dette er altså KLASSEN Bulletin A, nær ved kort ledetid, ikke Bulletin A. De predikerte-mot-endelige residualene er virkelige målte størrelser over virkelige IERS-rader, men størrelsen deres kontrolleres bare mot RETNINGEN på sammenligningen, aldri mot et nøyaktighetstall publisert av IERS — å lese et virkelig produkt er proveniens, ikke en uavhengig referanse. MEASURED: på dag 1 gir den operative prediktoren 3,78 m feil i månerammen mot persistensens 11,39 m (3,01×), på dag 2 10,23 m mot 21,72 m (2,12×), på dag 3 20,33 m mot 30,57 m (1,50×) — og den er VERRE utover tre dager (0,87× ved 5 dager, 0,43× ved 10), noe rapporten tar med i stedet for å vise bare horisontene som smigrer den. IKKE reprodusert: det autoregressive residualfilteret og den tabulerte reduksjonen av sonale tidevann, vinduet på 365 dager i operativ drift kan ikke nås med de innsjekkede dataene, og INGEN arkivert tidligere utgave av serien finnes i dette depotet — så tabellen over arkiverte utgaver rapporterer ingen rader i stedet for å vurdere en syntetisert. 0,30 ekstern sammenligning, et funn (forblir MODELLED): vurdert mot de samme endelige verdiene over 178 arkiverte Bulletin A-utgaver med standardvinduet på 15 dager i crate-en er prediktorens UT1 MAE 2.4x til 12.6x den til Bulletin A ved 1 til 10 dager (terskel 1.5x) og 5,32 ms ved 10 dager, utenfor området 0,36 til 3,13 ms for 2nd EOP PCC; polen er 1.5x til 1.85x den til Bulletin A (innenfor 1.5x bare ved 6 og 7 dager); 19 av 21 forhåndsregistrerte betingelser feiler. Korreksjon til vei (3): produktradene for 2026 den ble sammenlignet med bærer IERS-flagget I (målt), ikke P, så disse overensstemmelsestallene er mot målte rapid-verdier, ikke mot prediksjoner fra Bulletin A. 0,30 runde 2, en prediktor med minste kvadrater pluss autoregresjon der de sonale tidevannene er fjernet analytisk, mot 178 arkiverte Bulletin A-utgaver ved terskelen fra runde 1 (forhåndsregistrert c93605b4), et funn (forblir MODELLED): 12 av 21 betingelser holder; UT1 MAE er 1,73 til 2.11x den til Bulletin A ved 2 til 10 dager (terskel 1.5x) mens polen er innenfor 1.27x ved hver ledetid. 0,30 revisjon: med inndata uten nettilgang nå klassifisert etter IERS-flagg er overensstemmelsestallene for vei (3) mot virkelige prediksjoner fra Bulletin A (0.256/0.695/1.252/3.885 ms ved 1/2/3/9 dager mot rapid-rader -> 0.133/0.421/0.839/2.786 ms)
Tester
frame_eop::tests, realtime_frame_eop::tests and tests/operational_eop_predictor_reference.rs (analytic-signal coefficient recovery to 1e-9 at a 365-day window; a bias-plus-rate fit equal to the closed-form…
ModellertLunart rammedatum fra en observasjonskampanjelunar_frame_campaign (composing lunar_vlbi, lunar_vlbi_fim, fim, lunar, lunar_frame_realise, frames, cio, lunar_frame)
Funksjon
Helmert-datumet med sju parametere propagert fra en SIMULERT OBSERVASJONSKAMPANJE i stedet for å bli gjenvunnet fra en injisert transformasjon. Jordstasjoner observerer en kildebelagt katalog over lunare overflate-radiofyr etter en eksplisitt plan; de partielle deriverte for lunar VLBI-forsinkelse akkumuleres i en Fisher-informasjonsmatrise for radiofyrkoordinater og sendes gjennom Helmert-designet A = [I₃ | [p]ₓ | p] til H = AᵀM_bA, slik at den rapporterte datumnøyaktigheten er en funksjon av observasjonsprogrammet — nøyaktig lineær i forsinkelsens sigma og monoton i buen gjennom den librasjonen rapporten MÅLER. Datumdefekten er temaet i stedet for en fotnote: rang, defekt, kondisjonstall, spektrum, uobserverbare retninger i basisen med sju parametere, den svakeste retningen selv ved full rang og hver parameters andel av den utsendes ved hver kjøring, og enhver parameter kampanjen ikke begrenser publiseres som NULL med en status. Korrelasjonen mellom radiofyrfeil er MEASURED, ikke antatt — nøyaktig null med stasjonene holdt faste, og skrevet ut med kostnaden når de estimeres. Kan kjøres som scenariotypen lunar-frame-campaign
Uavhengig referanse
Lukkede identiteter og en uavhengig vei i depotet, uten at noen ekstern uavhengig referanse påstås. Helmert-designet — den eneste nye deriverte i modulen — utledes på nytt med sentral differanse av lunar_frame_realise::apply_helmert, en vei som ikke deler noe uttrykk med den analytiske formen. Akkumuleringen den bygger på er den til lunar-vlbi-fim, hvis Jacobian er differansederivert mot lunar_vlbi::vlbi_delay_s der, og hvis lineæralgebrakjerne er separat eksternt forankret mot numpy i tests/fim_observability_reference.rs — denne raden låner ingen av disse statusene. Den fysiske uavhengige referansen er strukturell snarere enn numerisk: en radiofyrs partielle deriverte for forsinkelse er nærfeltsDIFFERANSEN mellom to nesten parallelle enhetsvektorer, så den dårligst bestemte translasjonsretningen MÅ være den kroppsfaste retningen mot Jorden, og testen hevder det beregnede svaret mot den separat målte retningen. MEASURED: kampanjeavledet translasjons-sigma 6,3975 m mot gjenvinningsfeilen på 0,3125 m i scenarioet med injisert transformasjon (20,5× strammere), mens rotasjon og skala går den ANDRE veien med 2,32× og 13,5× løsere — den injiserte veien antar én isotrop sigma og sprer derfor feilen jevnt over sju parametere, noe forsinkelsesobservabelen ikke gjør. Rang 7/7 men kondisjonstall 3.8e5, med én retning 99,57 % ren translasjon mot Jorden og førti ganger verre enn noen annen. HVA DENNE RADEN IKKE PÅSTÅR: at kampanjetallet er riktig i absolutte termer. Den fastslår at tallet nå UTLEDES fra en plan, en geometri og en feilmodell i stedet for fra et plantet svar. Forblir ReferenceImpl/MODELLED: ingen publisert kombinasjon av lunar VLBI-kampanje og datumkovarians finnes, stasjonsnettverket og forsinkelsens sigma er ILLUSTRATIVE inndata (radiofyrkatalogen er kildebelagt, kampanjen er ikke), observasjonene behandles som uavhengige mens troposfæren og klokken i en virkelig økt er korrelert mellom nærliggende skann, og efemeriden, klokkene, troposfæren og jordorienteringsparametrene holdes FASTE. 0,30 ekstern sammenligning, et funn (forblir MODELLED): med hver Jacobi-rad for radiofyr bygd på nytt fra NAIF SPICE-lysetider (DE440, ITRF93, MOON_ME; forhåndsregistrert 50863551) stemmer planen, Helmert-rangen, datumsigmaene (innenfor 4.7e-3), kondisjonstallet, den svakeste retningen (0,07 deg), librasjonssveipet og buerekkefølgen overens på seks scenarioer innenfor de forhåndsregistrerte 1 % / 0,2 / 0,05 deg. NumPy på den innsjekkede Jacobianen fra motoren stemmer overens til 3e-14 der stasjonene er faste. Med stasjonene estimert avviker det med 6.8e-6 mot en forhåndsregistrert 1e-9, hvis forutsetning om kondisjonstall var feil (Helmert-kondisjonstall 2.1e8; uavhengige NumPy-veier er uenige med 3e-6; et bidrag fra motorens reserveløsning med pseudoinvers på 1e-9 er ikke utelukket), så raden fremmes ikke på den forhåndsregistreringen. 0,36 ny registrering ved en kondisjonsskalert terskel (forhåndsregistrert b887eb05; t = max(1e-12, 10 kappa 2^-53) fra kondisjonen til den felles informasjonen og dens Helmert-reduksjon), et funn (forblir MODELLED, NOT MET): steg 0 UTELUKKER reserveløsningen med pseudoinvers for gapet på 6.8e-6 (ingen matrise oppstrøms for Helmert-matrisen faller tilbake på de seks opprinnelige scenarioene, tetteste margin en faktor 2,6), SPICE-leddet holder fortsatt på alle seks, og NumPy stemmer overens innenfor terskelen på seks av åtte scenarioer (standard, de to buene, 3x forsinkelsessigma, den kollineære defekten og den ferske kjøringen med faste stasjoner 2026-12-01; verst 0,13 av terskelen). Det feiler på stations_estimated (datumsigmaer opp til 6.8e-6, kondisjonstall 9.1e-6, norm med uavhengighet forkastet 3.5e-6, mot t = 5.9e-7), og på den ferske datoen har radiofyret ved sydpolen ingen observasjon, så informasjonen om radiofyret er rangdefekt (reserveløsning med pseudoinvers oppstrøms for Helmert-matrisen i begge ferske scenarioer) og den uendrede NumPy-referansen kan ikke evaluere stations_estimated_fresh (singulær matrise). Resultater: docs/design/evidence/mr05-lunar-datum-cond/RESULTS.md
Tester
lunar_frame_campaign::tests (21 lib-tester: Helmert-utformingen mot en sentral finitt differanse av lunar_frame_realise::apply_helmert — modulen datumet er FOR, som ikke beregner noen derivert og derfor fester [p]ₓ…
ModellertBekreftelse med uavhengig estimator av terskelen for cislunar buelengdecislunar_arc_recovery, batch_ls
Funksjon
En batch-estimator med minste kvadrater som GJENVINNER hovedfarkostens starttilstand fra simulerte målinger mellom satellitter over voksende prefikser av det samme epokenettet som tabellen for rang mot bue bruker, med målingenes partielle deriverte tatt som sentrale differanser av den sammensatte forovermodellen. Den bruker ingenting av maskineriet som terskelen ble målt med — ingen analytisk Jacobi-rad, ingen variasjonell tilstandsovergangsmatrise, ingen singulærverdi- eller egenverdidekomposisjon, ingen rangtoleranse, intet kvadratrotinformasjonsfilter — og deler bare dynamikken, startbetingelsene, den skalare observabelen og epokenettet, hver navngitt i det utsendte dokumentet. To kriterier, begge sveipet: gjenvinning uten støy (motstykket til rang) og Monte Carlo-estimerbarhet (motstykket til estimerbarhet, målt mot en kjent referanse i stedet for forutsagt fra en kovarians). Kan kjøres som scenariotypen cislunar-arc-recovery
Uavhengig referanse
En separat estimator i denne kodebasen med en annen algoritme og en usammenhengende kodevei: ikke-lineær vektet Gauss-Newton med partielle deriverte fra differanser, hvis avgjørelse leses som en målt feil i tilstandsgjenvinning i km og mm/s. Den har ingen uttrykk til felles med Gramians vei via rang og kovarians, og adskillelsen HÅNDHEVES av en vakt på kildetekstnivå i stedet for å bli hevdet. MEASURED på det publiserte plane DRO-nettet: ESTIMERBARHETSkriteriet er CORROBORATED — den målte Monte Carlo-grensen er 5,739130 h mot den formelle 5,739130 h (forhold 1,0000), og den målte RMS reproduserer den formelle 1σ over 21 buelengder til et geometrisk middelforhold på 0,9804. RANGkriteriet er IKKE bekreftet som en gjenvinnbarhetsgrense: estimatoren gjenvinner fra 0,782609 h mot Gramians 2,086957 h, forhold 0,375, og ved 1,826087 h — det siste prefikset som rangavlesningen scorer 3 av 4 på — gjenvinner den til 1.96e-5 av den apriori forskyvningen. Gjenvinningsgrensen er urørt over tre dekader av sin egen grense mens ranggrensen spenner fra 'aldri' til 0,782609 h over fire dekader av rel_tol, og de to faller nøyaktig sammen ved rel_tol = 1e-8. Dette spennet ble først registrert som å nå 0,260870 h; det tallet var en ARTEFAKT, produsert av en rangavlesning som telte 4 retninger fra 2 målerader under f64-støygulvet, og det rettes her i stedet for å bli stående. Rangavlesningen er nå avgrenset av Sylvesters ulikhet med begrunnelsen utsendt, og det korrigerte spennet metter seg nøyaktig ved buen der den uavhengige estimatoren gjenvinner, noe som styrker denne radens kryssvalidering i stedet for å svekke den: de publiserte 1e-6 er en konservativ KONVENSJON for singulærverdi, ikke en uttalelse om gjenvinnbarhet. Samme mønster romlig: NRHO 9,290323 h mot 21,677419 h, halo 22,978723 h mot 39,829787 h, med estimerbarhet i nøyaktig overensstemmelse i begge. Det plane DRO med seks tilstander gjenvinner ved ingen bue, og reproduserer uavhengig den familiens strukturelle datumdefekt fra en estimator som ikke er fortalt noe om den. IKKE eksternt forankret — dynamikken og startbetingelsene deles med analysen som testes og ingen offentlig datasett publiserer en slik terskel — så ExternalDataset er avslått
Tester
cislunar_arc_recovery::tests og tests/cislunar_arc_recovery_reference.rs (begge grensene og forholdstallene deres festet på det publiserte rutenettet; den målte feilkurven sammenlignet med den formelle kovariansen rad for rad med en…
ModellertLunart tjenestevolum fra virkelig, hentet konstellasjonsgeometrilunar_ephemeris, lunar_service
Funksjon
Godtar en tabulert månesentrert tilstandsefemeride (evalueringen av en SPK/BSP-kjerne) eller en publisert konstellasjonsdefinisjon bak ephemeris_path, kjører den identiske sveipen for dekning / DOP / beskyttelsesnivå mot den, og utsender σ_URE-avstandskravet den innebærer VED SIDEN AV de uendrede illustrative Kepler- og perturberte resultatene, med forskjellen som en egen navngitt størrelse. Hvert tall bærer en proveniensklasse som skiller kjerneavledet fra avledet av publiserte elementer fra modellert, slik at de aldri kan forveksles i et senere sitat
Uavhengig referanse
GEOMETRIEN er ekstern og hashet: tre fixturer hvis tall kommer bare fra dokumenter hentet med URL, hentedato og SHA-256, regenererbare med innsjekkede generatorer som verifiserer oppstrøms hash og AVBRYTER i stedet for å utsende et tall — referansekonstellasjonen for LANS-interoperabilitetsdemonstrasjonen (NASA NTRS 20250009447, SHA-256 d1b916be…), LNCSS-casestudiene (NAVIGATION 70(4) navi.613, CC BY, SHA-256 4e294687…), og en ekte efemeride for fløyne romfartøy for LRO, Danuri, Chandrayaan-2 og CAPSTONE evaluert fra JPLs egne rekonstruerte kjerner via Horizons. INGEN kjerne for en lunar navigasjonskonstellasjon finnes offentlig — Moonlight/LCNS, LCRNS og LNSS flyr ikke og NAIF publiserer ingenting for dem — og ingen ble funnet på. Det AVLEDEDE σ_URE-kravet har INGEN ekstern uavhengig referanse (ingen publiserer avstandsnøyaktigheten en lunar HPL på 50 m krever over dette tjenestevolumet), så det kontrolleres mot sin egen algebraiske identitet og, uavhengig, ved å kjøre hele sveipet på nytt ved det beregnede kravet og bekrefte at tilgjengeligheten snur der. MEASURED: det publiserte designet med 8 satellitter trenger σ_URE 2,9044 m ved 100 % dekning mot den illustrative konstellasjonens 0,3591 m ved 37,85 % — en 8,09× revisjon av et publisert tall under programregel R4. Den kvalitative konklusjonen holder (LNIS-klassen 30 m lukker fortsatt ikke en HPL på 50 m ved sydpolen), men mangelen var overdrevet åttedoblet. LANS-demoen med 5 satellitter gir NULL prøver av beskyttelsesnivå — fem satellitter kan ikke gi de seks i sikte som en hypotesemengde for én feil trenger — og kravfeltet er FRAVÆRENDE i stedet for fabrikkert; det samme gjelder de fire virkelige romfartøyene ved 0 % dekning. InternalConsistency er den ærlige typen: INNDATA er eksterne og hashet, men størrelsen denne raden handler om er bare validert mot seg selv. 0,30 ekstern sammenligning, et funn (forblir MODELLED): mot LNCSS-casestudiestatistikken i navi.613 på 346 nettpunkter faller 4 av 12 tilgjengelighetsstatistikker utenfor de forhåndsregistrerte 2 prosentpoengene (case A: -4.0, +22,5 og -3.6 pp; case B: -12.1 pp). Sannsynlige årsaker: elementer lest i feil referansesystem, tolegemers Kepler over 15 dager mot artikkelens uoppgitte kraftmodell, og et nett som ikke kan reproduseres fra teksten. PDOP-halvdelen kunne ikke evalueres (LANS skriver ikke ut noen numerisk statistikk); sammenligningstesten er innsjekket ignorert. 0,30 runde 2, et funn (forblir MODELLED): mot en uavhengig referanse med Orekit 12,2 / Hipparchus 3,1 som beregner hele rapporten (Orekit-propagering, sikt og DOP med DOPComputer, MHSS-beskyttelsesnivåer sammensatt i Hipparchus, kravet løst per prøve; forhåndsregistrert d3ce97b2) på alle fem hentede geometrier og to nett stemmer 155 av 160 verdier overens innenfor de forhåndsregistrerte tersklene (2 pp, 5 %, 1 %), inkludert sigma_URE-kravet for LNCSS A og C (3,879072208 m på begge sider for case A) og det fraværende kravet for LANS og banefarkostene. LNCSS B på det tette nettet feiler på sine statistikker for verste prøve (sigma_required 0,000923 mot 0,001511 m, hpl_max 1.63e6 mot 0.99e6 m) der nesten singulære geometrier (PDOP omtrent 1e6) forsterker overensstemmelsen i posisjon på meternivå; dets p95-krav stemmer overens (1,6343 mot 1,6357 m). Kravet for verste prøve er dårlig stilt på degenerert geometri. Mot navi.613: 4 av 12 fortsatt utenfor 2 pp (festet)
Tester
lunar_ephemeris::tests (parsing av format og referansesystem; Lagrange-interpolasjon nøyaktig i nodene og på et lineært spor utenfor noder; ICRF-elementer får IAU 2015-reduksjonen og er byte-like med en eksplisitt icrf_to_iau_moon…
ModellertEnhet og proveniens deklarert for hver rapportert størrelsefield_schema
Funksjon
Et maskinlesbart skjema som gir enhet, proveniensklasse og definisjon for hvert numeriske felt i hver scenariorapport, pluss én global port som kjører hver registrerte scenariotype og feiler hvis et utsendt numerisk felt mangler noen av dem. Proveniensvokabularet er lukket og hver klasse bærer et evidensnivå, med to klasser bevisst avbildet til inherits-scenario-label og depends-on-input i stedet for å få et nivå klassen ikke bestemmer
Uavhengig referanse
Selve det utsendte dokumentet: hvert numeriske blad må løses opp til en oppføring i dokumentets egen units-blokk. Det finnes ikke noe eksternt enhetsregister å kontrollere en DEKLARERT enhet mot, så en deklarert enhet er en gjennomgått påstand og ikke en verifisert en — porten verifiserer FULLSTENDIGHET og KORREKT FORM, ikke sannhet, og «validert» ville vært feil fordi ingenting eksternt bekrefter at m er riktig enhet for et felt som heter _m. En uavhengig kryssjekk av navnesuffikser ble kjørt over de 1 434 feltene som var beskrevet PÅ DET TIDSPUNKTET: av de 691 som bar et suffiks som angir enhet, er 40 uenige med den deklarerte enheten og alle 40 er forklart (suffikser for per sekund, minima, aperturesekunder, newtonmeter mot et suffiks som ser ut som nanometer), så ingen gal enhet kom for en dag. Den kryssjekken er ikke kjørt på nytt siden, og dekningen har vokst forbi den — tallet er stående på det som faktisk ble målt i stedet for å bli gjentatt ved dagens sum. Ved den endringen (0.27.0) gikk dekningen fra 7 av 56 typer til 60 av 61, og fra 389 av 1354 felt til 1 742 av 1 744 (docs/field-units-schema.json, som en foreldelsessjekk holder à jour). INGEN type er lenger udekket (tak 0, FUT-28, 0,36): den siste var sweep-nd, hvor to av kolonnene er nøklet av kalleren så enhetene deres er data; de beskrives nå som mixed - see note, og enheten til hver posisjon leses fra den SVEIPEDE pakkens egen enhetstabell inn i key_units og metric_units (eller tas fra aksens deklarerte unit, som må stemme overens med pakkens når begge finnes; null når ingen finnes, oppgitt i stedet for gjettet). cislunar-observability var den før den, og kom av listen da det utgitte dokumentet fikk en units-blokk: additivitetsfestet som hadde navngitt units som en forbudt nøkkel BEVISER nå at tillegget er additivt i stedet — fjern blokken igjen og dokumentet hasher fortsatt til de to konstantene som ble fryst før den fantes, så en utgitt verdi som flyttet seg under tillegget feiler fortsatt. Arbeidet avdekket også tolv enhets- eller dokumentasjonsdefekter i eksisterende kode, rapportert i stedet for rettet under R1
Tester
tests/field_units_global.rs (alle 61 registrerte typer kjører, én dokumentform hver: hvert numeriske blad må løses til en oppføring i dokumentets egen units-blokk; en feilformet oppføring teller som manglende for HVER type…
ValidertLunart rammedatum fra en VIRKELIG observasjonskampanjelunar_llr, realdata::llr_crd (composing fim, cio, frames, ephem, lunar_frame, lunar_frame_campaign)
Funksjon
Helmert-datumkovariansen med sju parametere, med de to simulerte inndataene erstattet av målte: planen er sendeepokene fra bakken for 337 arkiverte ILRS-normalpunkter for lunar laseravstandsmåling (2015-04-08 til 2015-06-27, Grasse MeO 7845 og Matera MLRO 7941, alle fem retroreflektorgruppene) og hver observasjonsvekt er det punktets egen arkiverte presisjon bin_rms/√n_raw — median 5,13 mm enveis avstand, lest ut av filen. Stasjonskoordinater IERS ITRF2020, reflektorkoordinater JPL DE430 Table 7. Kan kjøres som scenariotypen lunar-llr-datum. Det validerte kravet (0,36) er snevert: på den analytiske standardveien stemmer beregningen av datumkovariansen overens med en uavhengig referanse med SPICE-lysetid og NumPy på ferske målte normalpunkter; det er ikke en LLR-nøyaktighet og ikke belegg for at den analytiske månen er nøyaktig
Uavhengig referanse
Lukkede identiteter, en uavhengig vei i depotet og, siden 0,36, en uavhengig bibliotekreferanse med SPICE og NumPy på ferske målte data (nedenfor); ingen publisert lunar LLR-datumkovarians å kontrollere mot finnes, så ingen nøyaktighet påstås. Den eneste nye deriverte — avstandsderiverte med hensyn til reflektorens kroppsfaste posisjon — utledes på nytt med sentral differanse av tovegs lysetiden den deriverer, en vei som ikke deler noe uttrykk med den analytiske formen. Den fysiske uavhengige referansen er strukturell: den deriverte av en avstand ER to ganger siktlinjen, så den kroppsfaste koordinaten langs middelretningen mot Jorden må bestemmes mye bedre enn de to koordinatene i himmelplanet, som bare librasjonen når — målt til 50,7× til 71,7× på tvers av de fem gruppene mot et librasjonssveip rapporten måler uavhengig, med den isotrope småvinkelprediksjonen og den tverrgående anisotropien som forklarer gapet begge skrevet ut. HVA SOM ENDRET SEG: planen, antall observasjoner og hver observasjonsvekt er nå målt; 337 av 349 arkiverte punkter brukes og de 12 som ikke brukes hoppes over og telles, fordi ITRF2020 ikke har noen posisjon for Apache Point. MEASURED: translasjons-sigma for datumet 1.851746e-2 m mot den SIMULERTE kampanjens 6,3975 m (345×), rotasjon 36×, skala 24× — et forhold mellom et laseravstandsnettverk og et VLBI-forsinkelsesnettverk, så et funn og ikke en validering. Reflektorinformasjon rang 15/15 med kobling mellom gruppene nøyaktig 0; Helmert-rang 7/7, kondisjonstall 2.4e4. HVA DENNE RADEN IKKE PÅSTÅR: at tallet er riktig i absolutte termer. En virkelig LLR-løsning ko-estimerer månebanen, fysiske librasjoner, jordorientering, stasjonskoordinater og tidevanns- og relativistiske parametere, og rapporterer desimeter (DE430 Table 7s egne 0.12-0.27 m) der denne grensen er langt mindre; dette er en Cramér-Rao-grense for et oppgitt redusert parametersett, ikke en nøyaktighet. Utenfor det validerte kravet (modellert, ikke validert): efemeriden for månesentrum og IAU 2015-kroppsorienteringen er modellert, og troposfære, tidevann, stasjonsekssentrisitet, polbevegelse, UT1-UTC, relativistisk forsinkelse og stasjonsklokker er fraværende. Deres samlede størrelse er PUBLISERT i stedet for argumentert — observert-minus-beregnet enveis avstand 156 494 m RMS over de 337 punktene — og effekten på kovariansen er AVGRENSET i stedet for argumentert: å løse hele datumet på nytt med hver deriverte tiltet 0,1° (to ganger den målte verste tilten i efemeriden, vekslende fortegn) flytter leveransen med 0,288 %. EKSTERN KONTROLL (0,30 runde 2, forhåndsregistrert 6b27964a), et funn (forblir MODELLED): SPICE tovegs lysetid (DE440, ITRF93, DE440 lunar orientering) med partielle deriverte fra differanser, og en numpy-invers, på de samme 337 målte normalpunktene og vektene, stemmer overens på bokføring, begge rangene, null kobling, residual-RMS (2.1e-5) og 15 av 16 kovariansstørrelser. z-translasjons-sigma er 1,03 % for høy mot den forhåndsregistrerte terskelen på 1 %. Med månesentrum fra DE440 faller den til 0,049 % (c51f8b2, sett data), og på ferske normalpunkter fra 2019 holder datumet med kjerne-måne hver terskel (rad "…, kernel Moon centre"), der den analytiske månen også holder seg innenfor tersklene (verst 3.8e-3, kun informasjon), så den sammenligningen skiller ikke månemodellene. FERSK DATAKJØRING AV DEN ANALYTISKE VEIEN (0,36, forhåndsregistrert 31f5283 før noe punkt ble hentet): den uendrede referansen med SPICE og NumPy på 151 brukte EDC CRD v2-normalpunkter fra 2025-04..06 (et år ingen test hadde brukt; filer hentet på nytt og referansen kjørt på nytt uavhengig, se fixturens NOTICE) ved de samme tersklene: bokføring, ranger, antall per gruppe og null kobling er like; sigmaer og normer verst 1.11e-3 (terskel 1 %), kondisjonstall 8.95e-4 (2 %), forhold tvers/langs verst 1.79e-3 (2 %); SPICE O-C 10,79 m. VALIDATED på det belegget som en bibliotekkontroll av kovariansberegningen alene; den analytiske residual-RMS på det utsnittet er 222 km, så tersklene skiller ikke månemodeller (som på raden for kjerne). Resultater: docs/design/evidence/mr06-llr-analytic-fresh/RESULTS.md
Tester
tests/lunar_llr_real_data.rs (11 tester: alle 15 innsjekkede CRD-filer er byte-identiske med de registrerte sammendragene sine; alle 349 poster er gjort rede for, 337 brukt og 12 hoppet over av en oppgitt grunn; hver arkivert avstand innenfor…
ModellertLunar referansestasjonsgeodesi: lagt til retroreflektor og VLBI-radiofyr mot datumet med fem grupperlunar_llr (over lunar_frame_campaign::beacon_information, schedule_for and solve_datum_information, lunar_vlbi_fim)
Funksjon
Valgfrie inndata extra_reflectors og extra_beacons i scenarioet lunar-llr-datum legger til en station_geodesy-blokk: Helmert-informasjonen for de fem gruppene fra det arkiverte utsnittet av lunar laseravstandsmåling pluss informasjonen som en lagt til retroreflektor (målt ved de arkiverte normalpunktepokene der målestasjonen er over horisonten, hver med det normalpunktets arkiverte vekt) og et lagt til VLBI-radiofyr (observert av nettverket og planen i lunar-frame-campaign med jordstasjonene faste, gjennom de partielle deriverte for forsinkelse i lunar-vlbi-fim) på oppgitte steder legger på datumet med sju parametere, løst på nytt, med hver Helmert-parameters 1-sigma før og etter, forholdet mellom dem, normene før og etter og ytterverdiene for egenverdiene til Fisher-differansen. Fraværende eller tom er rapporten uendret
Uavhengig referanse
Kun intern konsistens: hvert lagt til sted er et eget punkt, og en laseravstand eller en VLBI-forsinkelse med fast stasjon berører ett punkt, så dets informasjon A_p^T M_p A_p er positivt semidefinitt og legges til; testen kontrollerer Fisher-differansen og hver varians mot det. Resultatet for de fem gruppene er den eksisterende raden med virkelige data og er uendret. Den tilføyde reflektoren gjenbruker epoker planlagt for de fem eksisterende gruppene, en ILLUSTRATIVE plan, og den tilføyde radiofyrens nettverk, plan og forsinkelsessigma er de ILLUSTRATIVE inndataene fra lunar-frame-campaign; stedet er en ILLUSTRATIVE posisjon ved sydpolen. Et sted ved sydpolen ser Jorden lavt på horisonten eller ikke i det hele tatt, noe de eksisterende testene for siktevinkel uttrykker; ingen av stedene måles kontinuerlig. Tallene er Cramer-Rao-grenser for et redusert parametersett, ikke et løst datum og ikke en uttalelse om noen virkelig stasjon
Tester
tests/lunar_station_geodesy.rs (empty_or_absent_extra_lists_are_bit_identical: tomme lister og grunnlinjeeksempelet gir standardrapporten og sammendraget byte for byte; an_added_site_never_increases_any_variance: den…
ValidertLunart rammedatum fra en VIRKELIG observasjonskampanje, kjerne-månesentrumlunar_llr (llr_geometry_with, LunarLlrDatumScenario); ephem_provider (KernelEphemeris); naif_kernel
Funksjon
Helmert-datumkovariansen med sju parametere for lunar-llr-datum fra arkiverte ILRS-normalpunkter og deres målte vekter, på veien med kjerne: det geosentriske månesentrum leses fra JPL DE440 av motorens egen kjernelser (planetary_kernel_path; lunar_llr::llr_geometry_with, ephem_provider::KernelEphemeris). Bare månesentrum skiller seg fra den analytiske raden; IAU 2015-orienteringen, fraværet av polbevegelse og UT1, katalogene, utvalgsreglene, vektene og lineæralgebraen er de samme. Det validerte kravet er bare at datumkovariansen på denne veien stemmer overens med en uavhengig referanse med SPICE og NumPy på ferske, usette normalpunkter. Sammenligningen skiller ikke månemodeller og kontrollerer ikke månesentrum: på samme utsnitt holder også den analytiske månen hver terskel, den forhåndsregistrerte mutasjonen (kjerne-månen lest én time for sent) ble ikke oppdaget, og et månesentrum som er omtrent 4 650 km feil holder også (se teksten om den uavhengige referansen). Det er ikke belegg for at kjerne-månen forbedrer datumet. Kan kjøres som scenariet lunar-llr-datum med planetary_kernel_path (og normal_points_dir for et annet utsnitt)
Uavhengig referanse
NAIF SPICE Toolkit N0067 (spiceypy 8.2.0, MIT) tovegs lysetider på DE440, ITRF93 jordorientering og DE440 lunar orientering (MOON_ME) med partielle deriverte fra differanser på 100 m, og numpy 2.3.5 (BSD-3-Clause, LAPACK) informasjonsmatrise og invers: den uendrede generatoren for sammenligningen på den analytiske raden (6b27964a), kjørt på et ferskt utsnitt (EDC CRD-normalpunkter, 2019-04..06) forhåndsregistrert i 830d945a før noe av det ble hentet, ved tersklene til den analytiske raden (1 % sigmaer og normer, 2 % kondisjonstall og forhold, nøyaktig bokføring, ranger og kobling) og dens egen kontroll av den uavhengige referansen (SPICE O-C 10,86 m < 100 m). Hver størrelse holder, verst 7.6e-5. Mutasjoner: den planlagte mutasjonen med én times forsinkelse av Månen oppdages IKKE (kovariansen avhenger av spredningen i siktlinjene, ikke tidspunktet deres); en strukturell mutasjon valgt i etterkant og oppgitt som sådan, som fjerner den deriverte for nedlinken, feiler hver sigma. Funn: på dette utsnittet holder også den analytiske månen (verst 3.8e-3), så terskelen skiller ikke månemodeller og dette validerer kovariansen på ferske data, ikke en forbedring med kjerne-måne. Integratorkontroll ved sammenslåingen (ikke forhåndsregistrert): kjerne-månen lest relativt til jord–måne-barysenteret i stedet for til Jorden (residual-RMS 4 649 km) og kjerneepoken uten TT minus UTC (69 s; residual 2,6 km) holder begge fortsatt hver terskel, mens fjerning av sqrt(n_raw) fra de målte vektene feiler alle 16 størrelsene med toleranseband; sammenligningen er følsom for vektene, de deriverte og lineæralgebraen, ikke for månesentrum. Begge sider leser DE440: dette validerer beregningen på DE440, ikke DE440. Utenfor kravet: en LLR-nøyaktighet (en Cramér-Rao-grense for et redusert parametersett)
Tester
tests/validate_llr_datum_kernel_moon_fresh.rs::llr_datum_kernel_moon_matches_spice_and_numpy_on_fresh_normal_points (447 usette normalpunkter fra 2019-Q2; sigmaer og normer innenfor 4.0e-5 av 1e-2, kondisjon 1.6e-5 av 2e-2…
ValidertInnebygd analytisk lunar efemeride — dens OPPGITTE NØYAKTIGHETSGRENSE kontrollert mot virkelige dataephem (moon_position), lunar_llr, realdata::llr_crd
Funksjon
ephem::moon_position, den lavpresisjons geosentriske lunare serien som crate-en faller tilbake på når ingen DE/SPK-kjerne er til stede, målt mot virkelig lunar laseravstandsmåling og mot en publisert planetefemeride over samme tidsrom. Denne raden validerer grensen som modulen oppgir om seg selv, IKKE en nøyaktighet: serien er bekreftet å være ikke verre enn den sier, ikke bekreftet å være god
Uavhengig referanse
TO uavhengige eksterne datasett som ikke deler noe. (1) 337 arkiverte ILRS-normalpunkter for lunar laseravstandsmåling (EUROLAS Data Center, DGFI-TUM, 2015-04-08 til 2015-06-27, fem retroreflektorgrupper, innsjekket med SHA-256 per fil og et skript for ny nedlasting og verifisering): observert-minus-beregnet enveis avstand 156 494 m RMS, med stasjonskoordinater fra IERS ITRF2020 og reflektorkoordinater fra JPL DE430 Table 7, så residualet domineres av serien for månesentrum. (2) JPL Horizons geometriske geosentriske månetilstander over samme tidsrom: 112 567 m RMS radielt, 195 655 m RMS vektor, verste epoke 360 324 m = 0,0536°. Et avstandsresidual reagerer på den RADIELLE delen av en efemeridefeil, så (1) og (2) er den samme størrelsen nådd på to måter og stemmer overens til 1,39× — noe som gir scenariet lunar-llr-datum grunnlag for å tilskrive residualet til efemeriden. Motorens egen moduldokumentasjon hevder ~0,3° / ~noen·10² km; begge målingene er innenfor, den vinkelmessige påstanden med 5,6× margin. OMFANG, oppgitt slik at ingen leser kan misforstå: dette validerer den oppgitte GRENSEN, ikke et nøyaktighetstall. Serien forblir uegnet for enhver anvendelse som trenger bedre enn ~1e5 m, og den begrensningen er radens innhold like mye som overensstemmelsen er det. Regenererbar frakoblet med de innsjekkede skriptene for henting og verifisering
Tester
tests/lunar_llr_real_data.rs::the_analytic_moon_series_disagrees_with_jpl_by_the_same_amount (12 ukentlige geosentriske tilstander, vinkelen i verste epoke påvist < 0,3° og RMS < 5e5 m mot modulens egen dokumenterte påstand…
ModellertPortintegritet — en grønn som betyr det den sierscripts/gate.sh, scripts/check-gate-receipt.sh, scripts/check-repeatability.sh, scripts/install-gate-hook.sh
Funksjon
Tre strukturelle vakter over selve verifiseringsprosessen, hver lukker en klasse feil som nådde den kanoniske porten som en intermitterende eller falsk rød. (1) Hver konstruert midlertidig sti i Rust-kildene må ha en unik komponent per kall; en prosess-ID avvises, fordi cargo kjører bibliotekstestene som parallelle tråder i ÉN prosess og pid er delt av dem alle. (2) Hver byte-for-byte- eller hash-festing må deklarere, ved siden av seg selv eller i modulhodet, hva den dekker og hva den bevisst utelater — slik at en tverrgående endring kan se med et blikk hvilke festinger som er i omfang og hvilke som i det stille har blitt detektorer for endringer i hele depotet. (3) En grønn kan bare påstås fra den FULLE suiten: scripts/gate.sh kjører cargo test --all, fanger den sanne utgangskoden uten noen pipe i veien, og skriver en kvittering som navngir commit, antall integrasjonsbinærer, antall tester og varigheten; pre-push-sjekken avviser en push hvis commit ingen gyldig kvittering navngir, på et rent tre. Repeterbarhet samples separat av scripts/check-repeatability.sh, som kjører bibliotekssuiten N ganger og feiler hvis settet av beståtte tester er forskjellig.
Uavhengig referanse
Lukket form: hver vakt kjøres over en fast kjent dårlig snutt som må utløse og en fast kjent god snutt som må forbli stille, begge bokstavelige konstanter detektoren ikke kan påvirke. De to kjent dårlige snuttene er defektene F22 og F25 i sin opprinnelige form. Dette er en INTERN uavhengig referanse og raden er MODELLED tilsvarende: den beviser at vaktene skiller defekten fra rettingen, ikke at klassene de beskriver er uttømmende. Deres oppgitte blindsoner — delt tilstand som ikke er en sti, en festing holdt i en kort navngitt konstant, en sjelden race som tre kjøringer ikke samples, og en kvittering som enhver som kan skrive filen kan forfalske — er skrevet ut i moduldokumentasjonen til tests/source_guards.rs og i hvert skripts hode i stedet for å bli oppdaget.
Tester
tests/source_guards.rs (9 tester: begge vaktene over hele kildetreet, pluss mutasjonsfixtures som gradierer hver vakt i begge retninger — F22-mønsteret rapportert på begge kolliderende stier, den leverte atomsekvensen…
ValidertSammensatt tids-PL — skalar MHSS-spesialisering (H=1_N)src/integrity/tpl_scalar.rs
Funksjon
Skalar tids-TPL med løsningsseparasjon over heterogene kilder; PL drevet av støyen fra delmengden med verste utelukkelse + UTC(k)-bias
Uavhengig referanse
P2: numpy 2.3.5 linalg.lstsq og scipy 1.18.1 (norm.isf, norm.sf, brentq) beregner med sine egne algoritmer på nytt estimatorene med vektet minste kvadrater for delmengdene, den generelle separasjonskovariansen sqrt(Δ Σ Δᵀ), biasene og beskyttelsesnivået ut fra dem på 300 innsjekkede inndata (tests/fixtures/tpl_scalar_numpy_oracle); PL stemmer overens innenfor 1e-9 relativt (verst 1.2e-10) og den drivende utelukkelsesdelmengden er identisk, toleransen fastsatt før sammenligningen. Multiplikatorene, apriorisannsynlighetene og overgrensene for bias er inndata, og strukturen i PL-ligningen (modusliste, ir/2-oppdeling, biasprojeksjon) er en oppgitt inndata, som for raden Kjerne for lunart ARAIM-beskyttelsesnivå; det validerte kravet er lineæralgebraen og PL på disse inndataene, ikke de fysiske størrelsene i et tidsscenario. ARAIM-opphav Blanch 2015 / Joerger 2014
Tester
integrity::tpl_scalar::tests (rank-1, fuse/exclude, bias-dominance, IR cross-check); tests/tpl_scalar_numpy_oracle.rs::scalar_mhss_pl_matches_numpy (300 committed cases: numpy lstsq subset estimators, general…
ModellertSammensatt tids-PL — P0-seedet gjennomkjøring av holdoversrc/integrity/composed_pl.rs
Funksjon
PL(τ)=max(TPL_handover,HPL(τ)); nedre semikontinuerlig PL(0+)≥PL(0−); K(IR/2) løpende maks; faseeksponenter τ/τ³/τ⁵
Uavhengig referanse
Egenskapstester (monotonitet, ingen nedgang ved overlevering) + eksponentlint mot holdover::coast_phase_variance
Tester
integrity::composed_pl::tests (monotone, P0-floor, K(IR/2), exponents, lower-semicontinuity)
ValidertSammensatt tids-PL — dekning av holdover-omhyllingskurve, regime over flere år (tau>=90d)src/integrity/composed_pl.rs
Funksjon
Den løpende maks-omhyllingskurven overgrense-dekker (uten gjennomtrengning av null) en virkelig metrologisk serie ved hver testede lag tau>=90d på et usammenhengende segment; kort tau (<=30d) er en oppgitt, modellert grense
Uavhengig referanse
BIPM Circular-T [UTC-UTC(USNO)] 5-dagersserie MJD 56074-60429 (872 pkt, webtai API); usammenhengende tilpasning/test, dekning over flere år uten gjennomtrengning av null
Tester
tests/cti_holdover_coverage_reference.rs
ModellertSammensatt tids-PL — LIL n.s.-omhyllingskurve (umulighet + konsistens)src/integrity/lil_envelope.rs
Funksjon
Ingen endelig holdover for verste tilfelle (Brownsk sup divergerer); IR-allokert HPL konsistent med Hartman-Wintner-omhyllingskurven når IR→0
Uavhengig referanse
Lukket form n.s.-omhyllingskurve √(2Dt·lnln t) identitet + HPL-dominanskontroll; Baweja arXiv:2606,24210 umulighetsskjøt
Tester
integrity::lil_envelope::tests (divergence, threshold, IR-tightening dominance)
ModellertHeterogen UTC(k)-overgrense for sporbarhetsbias i integritetsrc/integrity/hetero_budget.rs
Funksjon
Overgrense for bias per kilde b = (U/k_cov)·Phi^-1(1-tail/2) + aldring, som blåser opp en publisert utvidet Type B-usikkerhet til en allokert integritetshale; bro til tpl_scalar som bias_s
Uavhengig referanse
Uavhengig reproduksjon med numpy + stdlib-statistics av den lukkede formen for overgrensen (InternalConsistency). BIPM Circular-T [UTC-UTC(USNO)]-serien er kun en SITERT inndata — den er den SAMME serien som allerede er validert for raden R4 holdover-dekning og er IKKE validert på nytt her; å reprodusere verdiene beviser ingenting om R2. Dyp integritetshale er modellert. 0,30 ekstern sammenligning, et funn (forblir MODELLED): på BIPMs filer per laboratorium UTC-UTC(k) (102 laboratorier, 105 024 rader med publiserte usikkerheter) overskrides overgrensen b = 2,576 u ved halen 1e-2 av 50,8 % av radene (Clopper-Pearson 95 %: 50,4 til 51,1 %) og med mer enn 1 % ved 101 av 102 laboratorier. Den publiserte u er usikkerheten i BIPMs bestemmelse av UTC-UTC(k), ikke en grense for avviket, som rutinemessig går til mange ganger u; overgrensen slik den er spesifisert avgrenser ikke virkelig UTC(k)-sporbarhetsbias. 0,30 runde 2, en overgrense for de realiserte UTC-UTC(k)-avvikene trent på 2015-2022 og testet på BIPM Circular T-data 2023-2026 (forhåndsregistrert ca0921a4, samlet overskridelse høyst 1e-2), et funn (forblir MODELLED): den samlede overskridelsen er 0,0333 (694 av 20 826 rader over 82 laboratorier; 0,0127 uten de 430 radene som ikke har noen grense etter regel). D9 runde 3, en samlet hierarkisk aldringsgrense (utck_bound), forhåndsregistrert fb475550 og vurdert prospektivt på Circular T-utgaver fra 465: ikke kjørt ennå (utgave 465 ble publisert 2026-10-12 med omtrent 285 testverdier; den forhåndsregistrerte regelen om 1000 verdier trenger utgaver til omtrent 468, og kjøringen trenger de arkiverte filene per laboratorium fra 2026-09-30, siden BIPM siden har skrevet om 87 av de 113)
Tester
integrity::hetero_budget::tests + tests/hetero_budget_reference.rs; tests/hetero_budget_utc_k_oracle.rs::overbound_exceedance_on_real_utc_k_finding (data-gated: skips with a message when the BIPM series is absent)…
ModellertKorrelert kryss-kovarians for sporbarhetsbias (usikker allokering for felles modus)src/integrity/hetero_budget.rs
Funksjon
N×N bias-kryss-kovarians med rho·b_i·b_j utenfor diagonalen for kilder som deler en UTC(k)-realiserer; BEVIST correlated_fused_bias >= independent_fused_bias (naiv uavhengig allokering underavgrenser den fusjonerte biasen -> optimistisk -> usikker)
Uavhengig referanse
Uavhengig numpy-reproduksjon av kryss-kovariansen og ulikheten mellom korrelert og uavhengig fusjonert bias (InternalConsistency). Representativt kildesett; modellert scenario.
Tester
integrity::hetero_budget::tests (correlated_fused_bias_dominates_independent_when_correlated, rho_one_single_realizer_recovers_linear_sum) + tests/hetero_budget_reference.rs
ValidertGLS-hvitgjøring av felles modus (Aitken) + Mahalanobis-identitetsrc/integrity/gls_commonmode.rs
Funksjon
Håndskrevet Cholesky Omega=LL^T og hvitgjøring med foroversubstitusjon z=L^-1 r (Cov(z)=I når Cov(r)=Omega); Mahalanobis-kvadrat z^T z = r^T Omega^-1 r
Uavhengig referanse
P2: numpy 2.3.5 linalg.cholesky (LAPACK potrf), solve (gesv) og inv på 201 innsjekkede SPD-inndata (tests/fixtures/gls_whitening_numpy_oracle) kontrollerer den håndskrevne faktoren, det hvitgjorte residualet og hvitgjøringsoperatoren; Mahalanobis-kvadratet kontrolleres mot solve(Omega, r), som ikke bruker Cholesky, så identiteten z^T z = r^T Omega^-1 r bekreftes ad en separat vei. Alt innenfor 1e-12 relativt (verst 7.9e-16), toleranse fastsatt før sammenligningen. Det største kondisjonstallet er 19,3, så dårlig kondisjonerte matriser er ikke dekket. GLS/Aitken 1935-hvitgjøring er sitert.
Tester
integrity::gls_commonmode::tests + tests/gls_reference.rs + tests/gls_whitening_numpy_oracle.rs::whitening_and_mahalanobis_match_numpy_lapack (201 committed SPD cases: factor, whitened residual, whitening operator and…
ModellertKonsistensstatistikk for felles modus (separasjonsblind feil i delt referanse)src/integrity/gls_commonmode.rs
Funksjon
Skårestatistikk (1^T Omega^-1 r)^2/(1^T Omega^-1 1) ~ chi^2_1 for et skift i felles modus som løsningsseparasjon (kontraster ortogonale på 1) ikke kan se; et skift i felles modus blåser den opp mens parvise separasjoner forblir flate
Uavhengig referanse
Uavhengig numpy-reproduksjon av statistikken + egenskapstest på at en injeksjon i felles modus blåser den opp (InternalConsistency). Modellert scenario. 0,30 runde 2 (forhåndsregistrert f9aa360d), blokkert (forblir MODELLED): numpy 2.3.5 LAPACK gesv reproduserer statistikkverdien på 261 innsjekkede tilfeller (innenfor 3.5e-15 godt kondisjonert, 1.2e-9 ved kondisjonstall opp til 6.1e7); nullfordelingen chi-kvadrat(1) er et sitert teorem og de flate parvise separasjonene en identitet uten utdata fra motoren å sammenligne, så avgrensningen venter på en beslutning fra eieren
Tester
integrity::gls_commonmode::tests (common_mode_shift_inflates_statistic_but_not_contrasts, post_fit_common_mode_statistic_is_zero) + tests/gls_reference.rs…
ValidertUdetekterbar grense for felles modus, residual utenfor Omegasrc/integrity/gls_commonmode.rs
Funksjon
Udetekterbart tak for felles modus: den største feilstørrelsen langs en retning d som unnslipper BÅDE separasjon (alpha_ss = T_ss / hvitgjort kontrastnorm av d) og statistikken for felles modus (alpha_cm = sqrt(T_cm 1^T Omega^-1 1) / |1^T Omega^-1 d|), rapportert som min(alpha_ss, alpha_cm). Under en positivt definitt Omega utelukker de to blinde retningene (d proporsjonal med 1, og 1^T Omega^-1 d = 0) hverandre, så taket er ENDELIG for hver d ulik null; det er uendelig bare for en nullretning eller en Omega som ikke er positivt definitt. En retning utenfor den modellerte felles aksen er blind bare for statistikken for felles modus og avgrenses av separasjon
Uavhengig referanse
P2: numpy 2.3.5 linalg.solve (LAPACK gesv, LU uten Cholesky) beregner alpha_ss (terskelen over den hvitgjorte kontrastnormen for d etter at dens GLS-koeffisient for felles modus er fjernet), alpha_cm og minimum av dem på nytt på 256 innsjekkede inndata (Omega, d, T_ss, T_cm) (tests/fixtures/gls_outside_omega_bound_numpy_oracle), inkludert rene retninger i felles modus, retninger utenfor den modellerte felles aksen, og tilfellene med nullretning og ikke positivt definitt matrise som må gi +inf; forhåndsregistrert (d070699a; endring 8a44267b, før noen sammenligning, som gjenformulerer matriseformen); toleranser fastsatt før sammenligningen. Funksjonsteksten ble rettet ved beslutning fra eieren (2026-10-02): den hadde sagt at grensen er uendelig for en retning utenfor den felles aksen, noe som stred mot koden og denne sammenligningen. At den idealiserte detektoren med én kontrast nedre-avgrenser den udetekterbare størrelsen til en virkelig detektor for delmengder forblir modellert
Tester
integrity::gls_commonmode::tests (separation_alone_is_blind_to_common_mode, degenerate_direction_or_non_pd_gives_no_finite_ceiling, every_nonzero_direction_under_pd_omega_has_a_finite_ceiling)…
ValidertLunar datumidentifiserbarhet - lineæralgebra for dekomposisjonenlunar_identifiability
Funksjon
Schur-komplement-marginalen av blokken {lunocenter-X, scale} i Fisher-matrisen for Helmert-datumet med 7 parametere: den skalare degenerasjonsmetrikken lambda_min(S), CRLB for origo-X og korrelasjonen mellom origo og skala
Uavhengig referanse
Uavhengig SciPy/NumPy-referanse (scripts/gen_datum_identifiability_ref.py -> tests/fixtures/datum_identifiability/scipy_ref.csv): Schur-komplementet, dets egenverdier og den 2x2 inverse beregnet av et uavhengig bibliotek. Avgrenset til LINEÆRALGEBRAEN i dekomposisjonen; størrelsene på lunar korrelasjon/CRLB fra virkelig geometri forblir MODELLED.
Tester
tests/lunar_datum_identifiability_reference.rs::decompose_matches_scipy_reference (16 syntetiske 7x7 SPD-matriser fra veldisponerte til {0 3}-nær-degenererte; Schur lambda_min / origo-CRLB / |corr| mot…
ModellertLunar klassifisering av datumets nullrom (LLR rang-additivitet + librasjonens defektløft)lunar_identifiability, lunar_datum
Funksjon
Klassifisering av datumproblemet med intern avstandsmåling: en enkelt avstandsobservasjon bidrar med rang 1 (6-dimensjonalt nullrom); paret origo-X og skala er nesten null og fysisk DE440-librasjon løfter defekten til null mens paret forblir nesten degenerert
Uavhengig referanse
Geometrisk struktur reprodusert av motoren pluss den lukkede 2x2 Schur-identiteten; konsistent i STRUKTUR med Sosnica et al. 2025 (arXiv:2510,15484), hvis rapporterte størrelser IKKE reproduseres her. Klassifiseringen er strukturell; størrelsene på korrelasjon/CRLB under virkelig geometri er MODELLED (reflektorkoordinater og orientering holdt faste). 0,30 ekstern sammenligning, et funn (forblir MODELLED): mot Sosnica et al. 2025 er korrelasjonen mellom origo og skala fra avstands-Fisher (-0.993 / -0.988) innenfor 0,05 av de publiserte -0.97, men på artikkelens egen geometri med fem reflektorer er Helmert-korrelasjonen med 7 parametere og lik vekt -0.78 (den publiserte verdien hviler på feil per reflektor som artikkelen ikke skriver ut), og CRLB for origo (0,6 til 1,2 mm ved 3 mm avstandsstøy) er 96 til 98 % under artikkelens 3,07 cm mot en toleranse på 20 %. Størrelser ikke reprodusert
Tester
tests/lunar_datum_identifiability_reference.rs (single_internal_range_row_has_six_dim_datum_null_space; extending_the_librating_arc_lifts_the_origin_scale_degeneracy)…
ModellertLunar datuminformasjon fra flere teknikker (LLR + lunar VLBI + banefarkostavstand)lunar_datum, lunar_identifiability
Funksjon
Datum-Jacobi-rader for LLR-avstand jord–reflektor, differensiell lunar VLBI-forsinkelse med to stasjoner og avstand banefarkost–radiofyr over datumet med 7 parametere, kombinert til én konsistent forhåndskondisjonert Fisher; viser at tracking utenfor radial retning (banefarkost / dybdediversifisert) bryter degenerasjonen mellom origo-X og skala der transversal VLBI bare hjelper indirekte
Uavhengig referanse
Kontroller av hver teknikks partielle deriverte, analytisk mot differanse (intern); retningen på forbedringen er et geometrisk faktum. Plasseringer av radiofyr, planer og støy er MODELLED og representative (se tests/fixtures/llr_geometry/NOTICE.md).
Tester
lunar_datum::tests (LLR/VLBI/orbiter analytic partials vs finite difference); lunar_identifiability::tests (adding_an_offradial_technique_collapses_the_origin_scale_degeneracy; transverse-vs-radial via crlb_diag)
ValidertDE440-leverandør for lunar orientering etter hovedakserlunar_orientation
Funksjon
Rotasjon MOON_PA_DE440 til J2000 ved vilkårlige epoker innenfor 2014-01-01 til 2030-12-31 TDB, ved geodetisk interpolasjon R0·Exp(f·Log(R0ᵀR1)) mellom nodene i en innsjekket daglig serie med 6 209 rader (try_-funksjonene returnerer OrientationSpanError utenfor den, de feilfrie panikker; den klemmer aldri); innebygd ved kompilering så det ikke er noen filsystem-I/O ved kjøring og WASM-bygget bærer den
Uavhengig referanse
NAIF SPICE Toolkit (CSPICE N0067 gjennom spiceypy 8.2.0, kjørt som verktøy): pxform fra MOON_PA_DE440 til J2000 evaluerer JPLs binære PCK moon_pa_de440_200625.bpc direkte, med NAIFs egen rammekjerne moon_de440_250416.tf, ved 2 000 tilfeldige epoker utenfor nodene i det innebygde vinduet. Rotasjonsvinkelen mellom matrisene til Kshana og SPICE er innenfor 1.7e-5 rad (30 m ved middelradius 1737,4 km, fastsatt før sammenligningen); målt verst 1.7e-6 rad (3 m), RMS 7.8e-7 rad, og verst 1.75e-6 rad på 6 000 flere epoker trukket av verifisereren. De daglige nodene ble selv hentet ut fra den samme kjernen (scripts/gen_de440_moon_pa.py, fixture SHA-256 3076f81ef95d83f5efa240ed4c7ccb422f109407dde841fcf28d42dc63586eb7), så denne sammenligningen tester interpolasjonen mellom dem, som er kravet. Funnet av denne sammenligningen og rettet: den tidligere elementvise lineære interpolasjonen med Gram-Schmidt beholdt aksen, men ikke vinkelen i rotasjonen på 13,2 deg/dag, og hadde feil på opptil 2.0e-4 rad (340 m) nær kvartpunktene; det tidligere tallet på omtrent 14 m kom fra en vakt som bare sampler intervallmidtpunkter. Serien dekker 2014-01-01 til 2030-12-31 og gir feil utenfor den (runde 2); nodene for 2024-2025 regenereres fra samme kjerne til 4.3e-13. SPICE-sammenligningen utenfor nodene ovenfor dekker bare 2024-2025, som er det validerte vinduet; de utvidede nodene kommer fra samme kjerne og skript, men er ikke sammenlignet utenfor nodene. Et geometrisubstrat for identifiserbarhetsanalyse, ikke et orienteringsprodukt under meternivå
Tester
lunar_orientation::tests (de440_moon_pa_reproduces_fixture_rows, de440_moon_pa_shows_real_libration); tests/lunar_pa_frame_realisation_guard.rs::the_orientation_series_interpolation_error_is_tens_of_metres_not_sub_metre…
ModellertLunart LLR-substrat for datumgeometri (reflektorer i hovedakser, bakkestasjoner, analytiske avstandsderiverte)lunar_llr_geometry
Funksjon
De fem retroreflektorgruppene på nærsiden i PA-kroppsramme i meter og LLR-bakkestasjonene i geodetiske koordinater; reflektorens plassering fra kropp til treghetssystem gjennom DE440 PA-orienteringen; analytiske deriverte av avstanden jord–reflektor med hensyn til datumet med 4 parametere; og den rene LLR-Fisher-matrisen som viser degenerasjonen mellom lunosenter-X og skala som motiverer analysen med 7 parametere
Uavhengig referanse
Beregningen kontrolleres internt: hver analytisk deriverte mot en differanse, og tilfellet med null datum mot den nominelle avstanden. KATALOGEN kontrolleres eksternt og uavhengig - hovedakse-koordinatene i DE440 (Park et al. 2021, tests/fixtures/llr_geometry/de440_retroreflectors_pa.csv) er kryssjekket mot Table 6 i DE430-memorandumet om overflatekoordinater (tests/fixtures/lunar_llr/de430_retroreflectors_pa.csv, maskinuttrukket fra en SHA-256-verifisert PDF av tests/fixtures/lunar_llr/generate_de430_retroreflectors_pa.py) og stemmer overens til 1,12 m, mens mean-Earth-realiseringen av de samme fem gruppene avviker med 672 til 871 m. DEGENERASJONSSTRUKTUREN kontrolleres mot et publisert resultat: Sosnica et al. 2025, 'Definition and Realization of the International Lunar Reference Frame', arXiv:2510,15484, som for lunart hovedaksesystem rapporterer en korrelasjonskoeffisient mellom lunosenter-X og skala på r = -0.97, og at LLR ikke når Månens faktiske massesentrum med bedre nøyaktighet enn 12 cm på grunn av den korrelasjonen. Denne modulen gjenvinner den samme strukturen (|corr(t_x, scale)| mellom 0,9 og 0,9999, datumdefekt <= 1) fra et Fisher-design med bare LLR. Bekreftelsen er på tvers av efemerider, ikke en rundtur: artikkelen kombinerer INPOP21a, DE430 og EPM2021, mens denne modulen drives av DE440-libration. Det som IKKE reproduseres er størrelsen - korrelasjonen her er omtrent -0.988 mot deres -0.97, og CRLB med 4 parametere er under en millimeter mot deres oppnådde gulv på 12 cm, fordi orientering og reflektorkoordinater holdes faste her og løses der. Kun geometri og degenerasjonsstruktur; ingen nøyaktighetspåstand om et løst datum. 0,30 ekstern sammenligning: de målte avstandsdelene av denne modulen (reflectors(), stations_itrf(), DE440 PA-plasseringen og den barysentriske lysetiden llr_bcrs_one_way_m) er validert i sin egen rad, LLR measured-range model, mot 192 ILRS-normalpunkter (RMS 2,81 m mot 10 m). Denne raden forblir MODELLED fordi den målte sammenligningen ikke prøver ut resten av påstanden. Den geodetiske stasjonskatalogen stations() runder av APOLLO til 0,001 deg; med geosentrisk lysetid gir den 22,7 m på de samme punktene (test reflector_ranges_against_ilrs_normal_points; 96 m med den tidligere elementvise orienteringsinterpolasjonen). De analytiske avstandsderiverte og den rene LLR-Fisher beregnes gjennom llr_range_m og reflector_inertial med den analytiske månemodellen (ephem::moon_position, omtrent 0,3 deg fra GCRS) og uten lysetid
Tester
lunar_llr_geometry::tests (reflector_and_station_catalogs_are_well_formed, analytic_partials_match_finite_difference, llr_one_way_range_is_earth_moon_scale, zero_datum_reproduces_nominal_range…
ValidertLLR-modell for målt avstand (reflektorkatalog, ITRF2020-stasjoner, DE440 hovedakseplassering, IERS 2010 barysentrisk lysetid)lunar_llr_geometry (reflectors, stations_itrf, ItrfStation, StationCoordinates, llr_bcrs_one_way_m, body_to_bcrs_tdb, shapiro_leg_m, BcrsEvent); lunar_orientation (try_de440_moon_pa_body_to_inertial); lunar_vlbi (station_inertial_position_itrs)
Funksjon
Enveis avstand fra jordstasjon til reflektor for et normalpunkt i lunar laseravstandsmåling: de fem retroreflektorgruppene på nærsiden i DE440-hovedaksens (PA) kroppsramme i meter (lunar_llr_geometry::reflectors); stasjonene i stations_itrf(), nemlig Grasse 7845 og Matera 7941 fra ITRF2020 ved epoke 2015,0 med sine hastigheter, plassert i Geocentric Celestial Reference System (GCRS) ved IERS 2010-transformasjonen med polbevegelse fra Bulletin A (lunar_vlbi::station_inertial_position_itrs), og APOLLO 7045 ved operatørens publiserte omtrentlige geosentriske posisjon (ingen hastighet); reflektorens plassering fra kropp til treghetssystem gjennom DE440 PA-orienteringen (lunar_orientation::try_de440_moon_pa_body_to_inertial, som gir feil utenfor 2014-2030); og IERS Conventions 2010 Section 11,2 barysentrisk lysetid (lunar_llr_geometry::llr_bcrs_one_way_m: Eq. 11,19-transformasjonen fra kropp til BCRS for stasjon og reflektor, og Eq. 11,17 Shapiro-forsinkelsen fra Solen, Jorden og Månen). INNDATA, ikke del av kravet: de barysentriske tilstandene og potensialene for Jorden, Månen og Solen (DE440 gjennom SPICE), IERS UT1-UTC og polbevegelse, og den målte rundturen omregnet fra TT til TDB. PÅ TESTRIGGSIDEN, ikke del av kravet: Mendes-Pavlis zenitforsinkelse med FCULa-mapping, i testen, med elevasjon fra den geodetiske katalogen stations(). Ikke modellert: tidevann, stasjonsekssentrisiteter, termiske ledd for reflektorer
Uavhengig referanse
Målt: 192 ILRS CRD v2-normalpunkter for Månen (EUROLAS Data Center, DGFI-TUM, 2024-04 til 2024-06; Grasse 151, APOLLO 32, Matera 9; innsjekket ordrett med SHA256SUMS). Den predikerte enveis avstanden sammenlignes med c ganger halve den målte rundturen i TDB. Terskel fastsatt før sammenligningen: RMS høyst 10 m over alle 192 punkter OG over de 160 punktene fra de to ITRF2020-stasjonene alene. Terskelen er fra den tredje endringen av forhåndsregistreringen, 3e0f5cdf, innsjekket før motorendringen og kjøringen; tallet 10 m er uendret siden runde 1. Målt: 2,81 m (middel 2,67 m) på alle punkter; 2,96 m på ITRF2020-stasjonene; APOLLO 1,94 m; utsnittet for 2015 (349 punkter, sekundært) 3,82 m. Mutasjon: å nullstille Shapiro-leddene for Solen gir 10,19 m, som feiler. Historikk, oppgitt: 96 m med elementvis orienteringsinterpolasjon; 22,7 m etter geodetisk interpolasjon med den geodetiske katalogen; 10,94 m med ITRF2020-stasjoner og polbevegelse, men geosentrisk lysetid (et felles avvik på +10,9 m). Den barysentriske modellen ble skrevet etter at dette avviket var sett. Den er den publiserte modellen i IERS 2010 Section 11,2 uten fri parameter. Den tredje endringen erstattet en selvpålagt betingelse om alt ITRF2020/SLRF2020 etter resultatet BLOCKED. RMS for bare ITRF2020 holder uten APOLLO, som ikke har noen ITRF2020- eller SLRF2020-løsning, og dens posisjon er operatørens oppgitte omtrentlige. Et felles +2,7 m gjenstår, under terskelen og ikke justert. Terskelen er løs i forhold til resultatet: et manglende solledd på 7,6 m gir fortsatt 10,19 m. Ledd under terskelen løses ikke opp ett og ett: med polbevegelse nullstilt er RMS 6,15 m (ITRF2020-stasjoner 5,98 m), og med Eq. 11,19-transformasjonen fjernet er den 2,96 m; begge ville fortsatt holde. Stasjonshastigheter og Shapiro-leddene for Jorden og Månen er enda mindre. Sammenligningen validerer den sammensatte enveis avstanden ved 10 m RMS og solens Shapiro-ledd, ikke hver av de listede komponentene
Tester
tests/lunar_llr_geometry_range_oracle.rs::reflector_ranges_bcrs_iers2010_relativistic (192 ILRS-normalpunkter: RMS 2,81 m; de to ITRF2020-stasjonene alene 2,96 m; begge høyst 10 m)…
ValidertKoblet lunar ramme- og tidsskalagauge: det felles nullrommet for romlig datum, klokkeavvik og klokkeratelunar_gauge
Funksjon
assemble_coupled_info bygger den koblede Fisher-matrisen med 9 parametere over [t_x, t_y, t_z, s, theta_x, theta_y, theta_z, d_tau, d_alpha]; classify_null_space returnerer en basisinvariant dekomposisjon av nullrommet i bare romlige, bare tidsmessige og genuint koblede dimensjoner pluss koblingsnormen til projektoren fra romlig til tidsmessig; coupled_marginal_eigs gir Schur-komplementmarginalen {scale, offset}. På de innsjekkede nettverkene rapporterer motoren et datum med full rang (defekt 0) for det velstilte tilfellet og en nøyaktig defekt i én ratretning for tilfellet med én epoke (medgått tid null, så raten er uobserverbar per konstruksjon), og beregner marginalen {s, d_tau} i begge.
Uavhengig referanse
HVA SOM KONTROLLERES EKSTERNT, oppgitt snevert: kshana beregner egenverdidekomposisjonen med sin egen håndskrevne Jacobi-løser (fim::sym_eig) og marginalen med sin egen pseudoinvers; den uavhengige referansen beregner begge på nytt med numpy/LAPACK (np.linalg.eigvalsh/eigh/pinv) via scripts/gen_coupled_gauge_ref.py. Overensstemmelse til rel<1e-3 er derfor en kontroll med et uavhengig bibliotek av ARITMETIKKEN I DENNE CRATE-EN mot en standardimplementasjon, som er det validerte kravet og hele det. HVA SOM IKKE: sammenstillingen og klassifiseringen av nullrommet er denne modulens egne regler, og den uavhengige referansen reproduserer dem fra den samme spesifikasjonen i stedet for fra en uavhengig kilde - det bekrefter implementasjonen, ikke regelen. Geometrien for radiofyr og banefarkost er modellert og representativ. Observasjonsradene bærer den virkelige DE440-orienteringen for Månens hovedakser (lunar_datum::orbiter_range_row_datum7 -> lunar_orientation::de440_moon_pa_body_to_inertial), men det er en INNDATA begge sider mottar, ikke belegg for svaret, og det er registrert her som proveniens og ikke som begrunnelsen for statusen - samme skille main allerede trekker i raden om integritet i felles modus. Hvert flyttall i radene er avrundet til 6 desimaler før network.json skrives, så begge sider leser identiske IEEE-754 doubles og den eneste forskjellen som gjenstår er løseren.
Tester
tests/lunar_coupled_gauge_reference.rs::coupled_gauge_matches_numpy_on_real_de440_rows (9 egenverdier, defect/dim_spatial/dim_temporal/coupled_dim/p_st_norm og den marginale Schur-fordelingen for {scale,offset} for well_posed…
ModellertDegenerasjon mellom avstand og klokkeavvik i enveis lunar avstandsmåling, og designloven for geometrisk diversitetlunar_gauge
Funksjon
Degenerasjonen mellom radiell avstand per node og mottakerens klokkeavvik er nøyaktig ved 1 m til 3,336 ns (én over c). Schur-komplementmarginalen {scale, offset} (coupled_marginal_fisher) viser at i et geometrisk variert nettverk løfter tovegs avstandsmåling marginalen med omtrent samme faktor som et like stort antall ekstra enveisdata, mens i det idealiserte regimet med én node er løftet fra tovegs størrelsesordener større. Designloven som følger: geometrisk diversitet, ikke tovegs avstandsmåling som sådan, er det som skiller lunar rammeskala fra tidsskalaavvik i enveis avstandsmåling; en tovegs eller ekstern tidskobling trengs bare i regimet med lav diversitet eller én bruker.
Uavhengig referanse
Schur-komplementmarginal-Fisher av den koblede informasjonsmatrisen, i lineæralgebra på lukket form, kontrollert mot de to grenseregimene den forutsier. Ekvivalensen 1 m til 3,336 ns er definisjonen av meteren via c og er ikke et empirisk resultat. Observasjonsnettverkene er representativ modellert geometri, så designloven er en uttalelse om geometrien den er gitt og bærer ingen påstand om noe utplassert lunart nettverk.
Tester
lunar_gauge::tests (coupled_marginal_well_posed_network_is_psd, coupled_marginal_twoway_equals_more_oneway_in_diverse_network, coupled_marginal_twoway_lift_three_orders, oneway_range_row_has_correct_temporal_entries…
ValidertRelativistisk kobling mellom klokkerate og ramme for lunar tidsskalalunar_gauge, lunar_time
Funksjon
rate_frame_jacobian(_with) gir følsomheten til raten for lunar tidsskala for rammerealiseringen, fra det ekvatoriale effektive potensialet avkortet ved grad 2 (GM, ekvatorradius, J2, rotasjon; LunarSurfacePotential): d_alpha/d_scale = L_m, omtrent +3.1388e-11; d_alpha/d_velocity = -|v_moon|/c^2, omtrent -1.11e-14 (tidsavhengig); d_alpha/d_r_radial = g_eff/c^2, omtrent +1.806e-17 per meter. For et radielt datumskift på 1 m er dette en perturbasjon av raten på omtrent 1.8e-17 (en aritmetisk konsekvens av den radielle oppføringen), langt under rateavviket på omtrent 1.7e-11 for en lunar tidsskala mot TT
Uavhengig referanse
Forhåndsregistrert (5590ab21): L_m mot Ashby og Patla 2024 (AJ 167:149) Eq. (10), 3,13881(15)e-11, fra artikkelens GM, a_m, omega_m og J2 for de to feltene av grad 350 artikkelen siterer (Bertone et al. 2021, AIUB-GRL350A/B), innenfor 1e-4; den radielle oppføringen mot ekvatorialtyngde fra pyshtools 4.14.1 (BSD-3) for de samme feltene innenfor 1e-4 (målt 8.3e-5 og 6.7e-5, en smal margin); hastighetsoppføringen mot månehastigheten fra JPL Horizons DE441 innenfor 4.5e-3. En lukket form av grad 2 av en publisert verdi av grad 350 (residualgrad 3-350; Reference, ikke P1). Oppgitt: utfallet for oppføring 1 var kjent før forhåndsregistreringen, og den leverte standardradiusen 1738,14 km er artikkelens overflatedefinisjon, vedtatt etter runde 1. Tidevannsbidragene og sammenligningsbåndet forblir modellerte tall for referanseoverflaten
Tester
tests/lunar_rate_frame_coupling_preregistered.rs (entry1_d_alpha_d_scale_matches_the_published_l_m_for_both_cited_fields: L_m innenfor 2.8e-6 av Ashby og Patla 2024 med J2 fra AIUB-GRL350A/B…
ValidertBasisinvariant klassifisering av nullrommet for koblet ramme og tidsskalalunar_gauge
Funksjon
classify_null_space dekomponerer nullrommet til datumet i bare romlige (dimensjon d minus rang U_T), bare tidsmessige (d minus rang U_S) og genuint koblede (rang U_S pluss rang U_T minus d) deler, pluss koblingsnormen til projektoren fra romlig til tidsmessig p_st_norm, Frobenius-normen av ikke-diagonalblokken i nullromsprojektoren. Hver av disse er en funksjon av PROJEKTOREN og ikke av en valgt basis, så de er invariante under ethvert ortonormalt valg av nullvektorer - som er det som gjør klassifiseringen mulig å rapportere i det hele tatt.
Uavhengig referanse
SciPy/NumPy (BSD-3-Clause; scipy.linalg.null_space og numpy.linalg.svd, LAPACK gesdd) klassifiserer de samme innsjekkede matrisene ved snitt av underrom, dim null([F; E_T]) og dim null([F; E_S]), og SVD-nullromsprojektoren, som skiller seg fra Jacobi-egenvektorene og Gram-rangformlene i Kshana; forhåndsregistrert (d429993c): heltall nøyaktige, p_st_norm til 1e-9 (P2, et uavhengig numerisk bibliotek), med rangterskelen fastsatt på forhånd og et spektralgap på minst 1e6 hevdet. Radens krav er klassifiseringen av en oppgitt matrise, så P2 dekker den fullt ut. De konstruerte tilfellene omfatter direkte summer, koblede og blandede nullrom og tilfeldige ombasinger; de virkelige nettverksdimensjonene i raden for koblet gauge telles ikke opp på nytt her. Invarianstesten i crate-en (en rotert nullbasis gir identiske resultater) beholdes
Tester
lunar_gauge::tests (classify_is_invariant_under_null_basis_rotation - en akseparallell nullbasis og dens rotasjon på 0,6 rad gir identiske defect, dim_spatial, dim_temporal, coupled_dim og p_st_norm…
ModellertRepresentativ målemeny for flere teknikker og den additive Fisher-kombinasjonsregelenlunar_techniques
Funksjon
MeasurementBlock holder én kandidatmålekampanje som et 7x7 Fisher-informasjonsbidrag pluss en skalar relativ kostnad; block_from_rows bygger en fra rå datum-Jacobi-rader slik at hver blokk forhåndskondisjoneres identisk gjennom lunar_identifiability::assemble_multi_info; combine summerer informasjonen til en valgt delmengde, som er den riktige regelen fordi Fisher-informasjon er additiv over uavhengige målinger; representative_lunar_menu leverer en deterministisk meny med fire blokker (LLR, et tverrgående VLBI-limb-radiofyr, en banefarkost på nærsiden og en banefarkost på bakre side). Den budsjettbegrensede designoptimereren som bruker denne menyen er ikke en del av denne crate-en.
Uavhengig referanse
Additivitet av Fisher-informasjon over uavhengige målinger er en egenskap på lukket form, kontrollert her mot en uavhengig skrevet elementvis sum og mot ordensinvariansen og monotonien som følger av den. MERKNAD OM EVIDENS: kombinereren hadde tidligere ingen test i det hele tatt, og den ene testen i modulen summerte de to informasjonsmatrisene inline i stedet for å kalle den, så en ødelagt kombinerer ville ha latt modulen forbli grønn; testen går nå gjennom combine og feiler når den muteres. Alle radiofyrplasseringer, banefarkostgeometri, presisjoner per teknikk og relative kostnader er representative valg og ikke oppdragsverdier (se tests/fixtures/llr_geometry/NOTICE.md), så hver degenerasjonsmetrikk og hvert CRLB-tall nådd gjennom denne menyen arver den modellerte statusen til lunar_identifiability::decompose.
Tester
lunar_techniques::tests (combine_is_additive_order_independent_and_empty_is_zero - et tomt utvalg gir nullmatrisen, et enkelt utvalg er identiteten, et par er lik en uavhengig skrevet elementvis sum, og…
ValidertKonsistens for lunar ramme/dynamikk på tvers av leverandører (virkelig inter-efemeride)lunar_interop_budget
Funksjon
dekomponering med bare rotasjon (6 parametere translasjon+rotasjon) av uenigheten om den geosentriske Månen mellom DE440/INPOP21a/EPM2021 i en reduserbar felles ICRF-rammekobling og et ikke-reduserbart overskudd i orienteringen av lunar bane (den fulle Helmert-tilpasningen med 7 parametere er en separat offentlig funksjon som IKKE er dekket av denne eksterne kontrollen: dens evidens er en intern enhetstest for analytisk gjenvinning pluss tests/lunar_helmert_fit_cross_check.rs, som avstemmer den mot den validerte nøyaktige Gauss-Newton-tilpasningen i lunar_frame_realise og fester konvensjonen med motsatt rotasjonsfortegn mellom de to)
Uavhengig referanse
Tre uavhengige autoritative efemerider — DE440 (JPL), INPOP21a (IMCCE), EPM2021 (IAA RAS) — samplet via IMCCE calceph, kryssjekket med en uavhengig numpy SVD-tilpasning med minste kvadrater. HVORFOR DETTE ER validert DER lunar_common_mode IKKE ER DET, på de samme tre efemeridene: her ER den rapporterte størrelsen en egenskap ved de publiserte dataene — deres gjensidige uenighet — så efemeridene er den uavhengige referansen, ikke en inndata. I lunar_common_mode mater den samme uenigheten en MODELLED konstellasjonsgeometri og svaret er en egenskap ved den modellen, og derfor er den raden riktig modellert/ReferenceImpl.
Tester
tests/lunar_interop_budget_reference.rs (raw / rotation-residual / theta_moon / theta_frametie / theta_excess / reducible / irreducible for 3 leverandørpar mot den uavhengige SciPy SVD lstsq-tilpasningen i…
ModellertToleranse for konsistens på tvers av leverandører for en bruker med blandede leverandørerlunar_interop_budget
Funksjon
consistency_tolerance: inverterer et posisjonsbudsjett for brukeren til et krav per parameter om Helmert-overensstemmelse mellom leverandører (origo/skala/rotasjon) ved en referansearm, eventuelt oppblåst av CRLB for realisering hos én leverandør (P1)
Uavhengig referanse
Trekantgrense for verste tilfelle for virkningen av Helmert-punkt-Jacobian (lukket form)
Tester
lunar_interop_budget::tests (monotonisitet i budsjettet; RSS-budsjettreduksjon under en CRLB per leverandør; utarbeidet rotasjonstoleranse ved den lunare arm-lengden; bindende ledd = rotasjon)
ModellertFeilbudsjett for lunar interoperabilitet mellom flere leverandører og designlov for ramme mot efemeridelunar_interop_budget
Funksjon
interop_budget: reduserbar (felles rammekobling) mot ikke-reduserbar (dynamikk) oppdeling under konvensjonene PerProvider / CommonFrameTie / CommonEphemeris, med designlovmetrikken for ikke-reduserbar andel (~0,69 på virkelige DE440/INPOP/EPM: en felles rammemerking alene lar det dominerende gulvet stå)
Uavhengig referanse
RMS-aggregering av de validerte oppdelingene per par under hver konvensjon (lukket form)
Tester
lunar_interop_budget::tests (CommonEphemeris nuller budsjettet; CommonFrameTie < PerProvider; irreducible_fraction > 0,5 på de virkelige splittene; rekkefølge av konvensjoner)
ValidertAutonom lineæralgebra-pipeline for feilobserverbarhet i fritt nettverk (paritetsprojektor, detekterbarhet, MDB-ikke-sentralitet, bysantinsk blokk-spark)lunar_faultobs
Funksjon
På det virkelige DE440-nettverket per node for Månen (hver rad en differensiell enveis avstand mellom noder bygd via pernode_range_row med en virkelig DE440 Moon PA-rammesiktlinje) beregner motoren den vektede paritetsprojektoren P⊥ = I − G(GᵀWG)⁺GᵀW (den rangdefekte pseudoinversformen som overlever gaugen datum⊕tidsskala med 8 dimensjoner), T1-detekterbarhetsresidualet ‖P⊥·b‖ (feil innenfor området utslettes, generiske feil er detekterbare), Baarda-MDB-ikke-sentralitetens kvadratiske form cᵀWP⊥c (den riktige vektede formen med enkelt P⊥, IKKE formen med dobbelt P⊥ cᵀP⊥WP⊥c) med MDB = √(λ₀/cᵀWP⊥c), og antallene for bysantinsk blokk-spark detekter/identifiser for de stablede effektive peer-signaturene P⊥·B_T (kolonnerang, ikke bare ikke-null)
Uavhengig referanse
Uavhengig lineæralgebra-reproduksjon med numpy/scipy på virkelige DE440 Moon PA-rammesiktlinjerader (P⊥ fra SVD av det hvitgjorte designet W^{1/2}G; MDB-ikke-sentraliteten fra den klassiske kvadratiske normen i paritetsunderrommet etter Baarda (1968); blokkrangen fra en numpy SVD-telling av singulærverdier) — en genuint annen numerisk vei enn den sykliske Jacobi-egenverdidekomposisjonen av GᵀWG i crate-en. Omfang (per tests/fixtures/faultobs/NOTICE.md): dette validerer KUN LINEÆRALGEBRA-PIPELINEN på disse radene. Nodegeometrien er modellert. Det er IKKE en operativ integritetsgaranti, en sertifisering av beskyttelsesnivå eller noen RAIM/ARAIM-tilgjengelighetspåstand, og IKKE en oppdragsgaranti for bysantinsk feiltoleranse — ANTALLET tolererte feil for dette nettverket er modellert, mens GRENSEN detect>f / identify>2f for blokk-spark er sitert (Fawzi–Tabuada–Diggavi 2014; Shoukry–Tabuada 2016; blokkvis spark av Donoho–Elad 2003) og bevist instansiering i kode
Tester
tests/lunar_faultobs_reference.rs (faultobs_matches_numpy_scipy_on_real_de440_rows: P⊥ på 84×84 elementvis, trace(P⊥) = parity_dim = 52 og rank(G) = 32, påvisbarhetsnormer + flagg, MDB-kvadratformen cᵀWP⊥c +…
ModellertBysantinsk blokk-spark-grense for detektering/identifisering i det autonome nettverket per node for Månen (T3)lunar_faultobs
Funksjon
byzantine_bound instansierer koding/sparse-observerbarhetsgrensen for sikker tilstandsestimering på nettverksgeometrien per node: en bysantinsk peer injiserer en vilkårlig lineærkombinasjon av målingene den deltar i, og nettverket DETEKTERER enhver koalisjon på ≤ f = block_spark − 1 peers og IDENTIFISERER entydig enhver koalisjon på ≤ ⌊(block_spark − 1)/2⌋, der block_spark er den minste peer-koalisjonen hvis stablede effektive signaturer P⊥·B_T er kolonnerangdefekte. Peer-detekterbarhet er FULL KOLONNERANG for P⊥·B_j (en blokk som ikke er null men er rangdefekt er et angrep som ikke er null, som lander i range(G) og ikke etterlater noe residual), ikke bare P⊥·B_j ≠ 0
Uavhengig referanse
Geometrisk instansiering av grensen for blokkvis spark / sikker tilstandsestimering (Fawzi–Tabuada–Diggavi 2014; Shoukry–Tabuada 2016; blokkvis spark av Donoho–Elad 2003; Candès–Tao 2005) — IKKE konsensusterskelen 3f+1 til Lamport–Shostak–Pease ('Bysantinsk' navngir bare feilmodellen med vilkårlige/samarbeidende feil). Det spesifikke antallet tolererte feil er en modellert egenskap ved den representative nettverksgeometrien, kontrollert for selvkonsistens med håndkonstruerte analytiske tilfeller og tellingsformlene
Tester
lunar_faultobs::tests — byzantine_c3_rank_deficient_but_nonzero_is_undetectable (nonzero yet rank-deficient block ⇒ block_spark 1, f_detect 0; independent columns ⇒ block_spark 2, f_detect 1)…
ModellertAutonomt gulv for tidsmessig gauge ved holdover for den selvrefererende lunar konstellasjonen (T4)lunar_faultobs
Funksjon
holdover_floor fastslår at i et ensemble av autonome noder koblet bare av målinger mellom noder er den felles klokkeraten (δα_j += 1 ∀j) en fri parameter i ensembletid som ligger i N(GᵀWG): ingen mengde ekstra avstandsmåling mellom noder kan observere den (rate_in_gauge = true, temporal_gauge_dim = 2 sammen med det felles avviket). Dette er det genuine holdover-gulvet — det tidsmessige motstykket til gaugen for stiv rammeposisjon. Å legge til én ekstern absolutt ratekobling (en direkte lenke til en referanse utenfor nettverket) driver den felles raten ut av nullrommet (rate_in_gauge = false, temporal_gauge_dim = 1), noe som beviser at gulvet er en virkelig gauge, ikke en artefakt i oscillatormodellen
Uavhengig referanse
Argumentet om frie parametere i ensembletid (Percival 1978; Lewandowski & Thomas 1991) instansiert på det representative virkelige DE440-nettverket per node: en nulltest med relativt residual av den analytiske generatoren for felles rate mot GᵀWG, der kontrasten med brutt kobling skiller den genuine gaugen fra en artefakt i oscillatormodellen. Representativ modellert geometri, ikke et sertifisert tidsbudsjett
Tester
lunar_faultobs::tests — holdover_floor_self_ref_and_anchored (self-referential net: the common rate lies in N(GᵀWG), temporal_gauge_dim 2; after one external rate-tie row: rate expelled from the gauge…
ModellertFelles/differensiell oppdeling av leverandører, forening av én rangdefekt og beskyttelsesgapets helning (T5 / §0 / g7)lunar_faultobs
Funksjon
Tre fasetter av den ene dekomposisjonen ℝ^{state_dim} = N(GᵀWG) ⊕ range(GᵀWG) med gaugen datum⊕tidsskala med 8 dimensjoner som N(G) og de state_dim − 8 = 32 observerbare retningene som range(G): (T5) provider_mismatch_split klassifiserer en felles bias hos flere leverandører (∈ range(G)) som UDETEKTERBAR — trenger en ekstern kobling — og en differensiell bias (∉ range(G)) som selvovervåket / DETEKTERBAR; (§0) foreningen er at det SAMME blinde underrommet range(G) styrer den udetekterbare feilklassen, så datumgaugen N(G) og det feilblinde underrommet range(G) er én geometri, ikke to; (g7) slope returnerer helningen ‖Π_obs Δx̂‖ / ‖P⊥b‖_W → ∞ for Brown-beskyttelsesgapet for en feil b ∈ range(G) (estimatoren ødelagt med null paritet) og endelig for en detekterbar feil
Uavhengig referanse
Algebra på lukket form for paritetsprojektor / pseudoinvers på det representative virkelige DE440-nettverket per node: den felles/differensielle oppdelingen, foreningen N(G) ⊕ range(G) og helningen på Brown-(1992) beskyttelsesgapet følger alle av utslettelse av range P⊥·G = 0. Representativ modellert geometri, ikke et sertifisert beskyttelsesnivå
Tester
lunar_faultobs::tests — provider_mismatch_split_common_undetectable_differential_detectable (common bias undetectable, differential detectable), slope_infinity_in_range_finite_detectable (g7: slope ∞ for b ∈ range(G)…
ValidertTelecom-timing MTIE og TDEV på en tidsfeilserie for holdovertelecom_timing (mtie_sliding, mtie_curve_ns, tdev_curve_ns); allan (mtie, time_deviation)
Funksjon
Maksimal tidsintervallfeil og tidsavvik som scenariotypen telecom-timing rapporterer, på en holdover-registrering i telekomskala: en O(n) MTIE med glidende vindu og monoton kø (telecom_timing::mtie_sliding, nødvendig for at et døgn med sekundsamples skal forbli raskt) og motorens TDEV (allan::time_deviation), evaluert på nettet typen rapporterer og lest tilbake fra en full kjøring som tar inn serien
Uavhengig referanse
allantools 2024,06 — et uavhengig bibliotek for frekvensstabilitet fra tredjepart — mtie() og tdev() på tests/fixtures/telecom_timing/holdover_te_series.csv, serien parset fra den samme teksten med 17 signifikante siffer på begge sider; referansen registrerer seriens SHA-256 og kan regenereres frakoblet via tests/fixtures/telecom_timing/generate_telecom_timing_reference.py. Validerer ESTIMATORENE på denne registreringen, ikke den syntetiske holdoveren som frembrakte den
Tester
tests/telecom_timing_reference.rs (17 MTIE- og 12 TDEV-midlingsfaktorer på en innsjekket holdover-serie med 2 048 sampler fra en brikkeskala-atomklokke med aldring, flicker og temperatur, mot allantools 2024,06 til <1e-12 / <1e-9…
ModellertITU-T-masker for telekomsynkronisering med PASS/FAIL og margintelecom_timing (MASKS, eprtc_a_holdover_limit_ns, check_curve, check_mask)
Funksjon
Transkriberte grenser fra ITU-T G.8272 (07/2025) PRTC-A/B, G.8272.1 (2024) Amd. 1 (07/2025) ePRTC låst og ePRTC-A holdover (inkludert tidsfeilomhyllingen i Table 3), G.8273.2 (2023) Amd. 2 (11/2025) T-BC/T-TSC-klassene A-D og G.8271.1 (2022) Amd. 3 (05/2025) referansepunkt C, hvert intervall åpent eller lukket slik tabellen oppgir det, med hver oppføring 'for further study' utelatt; en avgjørelse og en margin ved det bindende punktet per kontroll, og tiden til hvert budsjett overskrides. Kan kjøres som scenariotypen telecom-timing
Uavhengig referanse
Transkripsjon av de navngitte anbefalingene (fritt nedlastbare fra itu.int), hver grense med sin tabell eller klausul, oppført med hver ubekreftede eller uimplementerte oppføring i docs/TELECOM-TIMING.md; identitetene for kontinuitet i knekkpunkter som tabellene innebærer kontrolleres i testene. En standardtranskripsjon med interne konsistenskontroller, ikke en etterlevelsestest og ikke en ekstern validering. 0,30 runde 2 (forhåndsregistrert 970003ee), blokkert (forblir MODELLED): de ti maskeverdiene og tretten ePRTC-A-holdoververdiene som anbefalingene skriver ut som regnede eksempler (G.8272 Figs. 1-2, G.8272.1 Amd.1 cl. 8.2.1 og Figs. V.1-V.3, G.8271.1 Amd.3 Figs. 7-2 til 7-4) reproduseres innenfor en halv trykt enhet, de fleste av dem tabellkonstanter eller knekkpunkter; G.8271.1 Fig. 7-2 merker 200 ns ved 1,3 s mot sin egen Table 7-1 (197,5 ns). Grensene for G.8273.2 klasse A-D har ingen trykt regnet verdi, og merkingene av knekkpunkter for G.8272.1 ePRTC låst (på heltrukne konstruksjonslinjer) ble utelatt av den forhåndsregistrerte utvalgsregelen, så de forblir transkripsjoner
Tester
telecom_timing::tests (mask_boundaries_follow_the_tables_exactly — åpne og lukkede ender, gapet ved τ = 400 s i G.8271.1 tabell 7-3, kontinuitet i hvert knekkpunkt tabellene tilsier…
ModellertITU-T-masker for wander-generering ved frekvenssynkronisering (G.811, G.812, G.8262, G.8262.1)telecom_timing (MASKS, Segment::tau_exponent, MeasurementFilter::LowPass10HzAtSource, MaskCondition::Autonomous)
Funksjon
Sju wander-genereringsmasker for MTIE og TDEV ved konstant temperatur for typen telecom-timing: G.811 (09/1997) PRC (autonom), G.812 (06/2004) typene I, II og III, G.8262 (10/2024) EEC-alternativene 1 og 2 og G.8262.1 (11/2025) eEEC (låst modus), inkludert potenslovleddene tabellene skriver (8 τ^0.5 og lignende), hvert intervall åpent eller lukket slik det er trykt, målt gjennom filteret på 10 Hz klausulene oppgir (antatt anvendt før sampling); referansescenariet scenarios/telecom-synce-eec.toml setter en fritt løpende OCXO mot de tre EEC-maskene. Ikke implementert: tilleggene for variabel temperatur, holdover, transienter, jitter og G.811-frekvensnøyaktigheten
Uavhengig referanse
Transkripsjon av de navngitte anbefalingene (lastet ned fra itu.int 2026-10-13), hver rad lest på nytt mot teksten, med kontinuiteten i knekkpunkter som de trykte koeffisientene innebærer avgrenset i testene (for eksempel 40 · 10^0,4 = 100,48 ns mot platået på 100 ns i G.812 Table 4). En standardtranskripsjon med interne konsistenskontroller, ikke en etterlevelsestest og ikke en ekstern validering. G.812 (06/2004) er oppført som erstattet av en forhåndspublisert utgave 08/2026 og G.811 har en Amd. 1 (04/2016); ingen av dem kunne leses, så ingen av dem er kontrollert. Scenariet med fritt løpende OCXO overdriver oscillatorens bidrag ved observasjonsintervaller som er lange mot sløyfens tidskonstant; det sier ingenting om noen utstyrsklokke
Tester
telecom_timing::tests (g811_prc_masks_follow_clause_6_1; g812_masks_follow_tables_3_4_6_and_7; g8262_masks_follow_tables_1_3_4_and_5; g8262_1_eeec_masks_follow_tables_1_and_3; a_linear_piece_is_evaluated_without_powf…
ModellertKlokkeloggformater (RINEX clock, TimeLab ASCII, TAPR TICC) lest til en normalisert faseserieclock_log (read_input, MeasuredPhaseReport, MEASURED_UNITS, TELECOM_LOG_UNITS); telecom_timing (SeriesInput::clock_log); api (clock kind [clock_log])
Funksjon
clock_log::read_input: ett parserlag som gjør en RINEX-klokkefil (AS/AR-poster for én navngitt klokke, versjonene 2 og 3,00 til 3,04), en fase- eller frekvenslogg i TimeLab-stil ASCII, eller en TAPR TICC-logg med tidsstempel eller intervall om til et uniformt fasenett, med tau0 oppgitt, fra en header, eller medianavstanden, hvert gap, avlesning utenfor nettet og duplikat telt, og en gap-policy som avviser, tar lengste løp eller lineær; koblet inn valgfritt i serien for telecom-timing ([series.clock_log], som legger til en blokk clock_log) og clock-typen ([clock_log], som legger til en blokk measured med ADEV, TDEV og MTIE, tabellens SHA-256 og fase-SHA-256; runs = 1). Uten tabellen er begge typene byte-identiske
Uavhengig referanse
Forhåndsregistrert i tests/fixtures/clock_log/PREREGISTRATION.md (innsjekket alene, 159334f2, før fixturen fantes); registrert i RESULTS.md. Tre seedede syntetiske logger, én per format (et TICC-gap på tre epoker, en RINEX-andre-klokke som skal ignoreres), lest tilbake av en uavhengig leser skrevet fra docs/CLOCK-LOG-FORMATS.md av samme forfatter: nett, gap og antall utfyllinger like og største faseforskjell 0 s (terskel 1e-13 s). allantools 2024,6 oadev, tdev og mtie på den fasen stemmer overens innenfor relativt 2.5e-14 (terskel 1e-10) ved hver midlingsfaktor den evaluerer; den evaluerer ikke MTIE over hele registreringen, som motoren rapporterer, så det ene punktet per logg har ingen verdi fra den uavhengige referansen og terskelen slik den er formulert er ikke nådd der. MODELLED: syntetiske logger, og leser-referansen deler forfatter; virkelige TimeLab-, TICC- og RINEX-klokkefiler fra instrumenter ble ikke sammenlignet
Tester
clock_log::tests (håndskrevne logger per format: topptekster, skilletegn, enheter, frekvensintegrasjon, TICC-kanaler og -moduser, gap og regler, avvisninger); tests/clock_log_allantools.rs (den forhåndsregistrerte sammenligningen…
ModellertKlokkeloggformatene linuxptp (ptp4l, phc2sys, ts2phc) og chrony (tracking, statistics) lest til en normalisert faseserieclock_log (parse_linuxptp, parse_chrony, grid_timed_offsets)
Funksjon
clock_log::read_input med formatene ptp4l, phc2sys, ts2phc, chrony-tracking og chrony-statistics: den loggede forskyvningen fra en linuxptp-servolinje (ns, linjens egen tidsstempel i hakeparentes, avlesninger før servoen første gang rapporterer s2 utelatt og telt) eller fra en chrony-tracking- eller statistikklogg (s, etter kolonneposisjon, UTC-dato og -tid) blir et uniformt fasenett gjennom de samme gap-policyene som de andre formatene; en kildevelger (clock) navngir ett av flere grensesnitt, klokker eller adresser; loggene mater serien for telecom-timing, clock-typen og holdover-test-typen
Uavhengig referanse
Fixturer skrevet for Kshana ut fra de offentlige linjeoppsettene til daemonene, med oppdiktede verdier (NOTICE.md i fixturemappen); ingen logg fra en virkelig installasjon ble lest og ingen uavhengig referanse sammenligner parsingen med en annen leser, så et oppsett som skiller seg mellom daemonversjoner kan fortsatt avvises eller feiltolkes. Estimatorene som mates av faseserien er de som er validert mot allantools i radene ovenfor
Tester
clock_log::tests (ptp4l_reads_the_locked_offsets_in_ns; linuxptp_reads_only_the_named_program; ts2phc_gap_is_refused_or_filled; linuxptp_reads_syslog_prefixed_lines_and_picks_an_interface…
ModellertHoldover-test vurdert fra en tidsfeilregistrering levert av operatørenholdover_test (HoldoverTestScenario, recovery, linear_fit); telecom_timing (check_mask, check_envelope, budget_results)
Funksjon
Typen holdover-test: en tidsfeilregistrering (en linuxptp-, chrony-, TICC-, TimeLab- eller RINEX-klokkelogg, eller par av time_s,time_error_ns) deles ved de to tidspunktene operatøren oppgir for fjerning og gjenoppretting av GNSS i et trinn for grunnlinje, et for holdover og et for gjenoppretting; grunnlinjen måles mot ITU-T-maskene skrevet for en låst klokke og holdoveren mot de som er skrevet for holdover eller en autonom klokke, ePRTC-A-holdoveromhyllingen og tidsfeilbudsjettene; holdoveren rapporterer frekvensforskyvningen med minste kvadrater som systemet holdt, og gjenopprettingen om og når |TE| kom innenfor et oppgitt bånd og ble der i en oppgitt oppholdstid, med toppen og det største trinnet. Hver grense er den telecom-timing-typen transkriberer; de to tidspunktene er operatørens påstand og verifiseres ikke
Uavhengig referanse
Håndberegning på registreringer bygd fra formler hvis helning, trinn, ekstremum og gjenopprettingstid er kjent før kjøringen (testene oppgir dem), og maskene, omhyllingen og budsjettene i radene for telecom-timing ovenfor. Ingen laboratoriemåling av en virkelig holdover ble vurdert og ingen ekstern uavhengig referanse ble sammenlignet, så typen gjør ingen påstand om noen klokke eller noe system; en partner med tidslaboratorium trengs før noe tall per klokkeklasse kan fremmes
Tester
holdover_test::tests (the_record_is_split_at_the_stated_times; holdover_figures_match_a_hand_computation; recovery_is_timed_from_the_restoration; masks_are_measured_on_the_step_their_condition_names…
ModellertTilgjengelighet for GNSS-signaler i Space Service Volume og utover, sammenlignet med ICG SSV-heftetssv (constellations, geom, sweep, pattern, check)
Funksjon
Tilgjengelighetssveipene til typen gnss-ssv: per konstellasjon (GPS, GLONASS, Galileo, BDS, QZSS, NavIC) og kombinert, andelen (bruker, epoke)-par med minst ett og minst fire signaler og det lengste utfallet, for en bruker på en kule (heftets globale skall på 2,562 punkter, 14 dager ved 1 minutt) eller på en bane (GEO, HEO, månetransfer), fra de keplerske banene i heftets vedlegg C, en konstant minste utstrålt effekt innenfor referansevinkelen utenfor siktaksen, jordblokkering av kulen pluss 50 km og en C/N0-terskel; brukerantenner fra heftets tabell B10
Uavhengig referanse
ICG Space Service Volume-heftet (UN OOSA ST/SPACE/75, 2018), selv en simulering, sammenlignet under en forhåndsregistrering innsjekket før kjøringen (xval/gnss-ssv/PREREGISTRATION.md; resultater i xval/gnss-ssv/RESULTS.md, festet av tests/ssv_booklet_results.rs, inkludert resultatene som ikke ble nådd). Kjøring 1 på den forhåndsregistrerte lesningen: konstantene for minste utstrålt effekt og månetersklene stemmer overens (S0, S6 nådd); tersklene for øvre og nedre SSV, RF-terskel, GEO og HEO er NOT MET, nesten alle gjennom GLONASS, for hvilken heftet gir 20 og 28 grader i tabellene B2 og B6 og 26 og 34 grader i tabell 4,2. En diagnostisk variant med vinklene fra tabell 4,2 stemmer overens i hver celle for øvre SSV, nedre SSV og de seks GEO-oppdragene (den erstatter ikke kjøring 1; cellene for RF, HEO og måne stemmer fortsatt ikke). De målte GPS L1-panelmønstrene reproduseres ikke av den parametriske stand-in (RMS 6 til 9 dB mot en terskel på 3 dB). Overensstemmelse viser at heftets oppgitte metode reproduseres, ikke at GNSS-signaler oppfører seg slik
Tester
ssv::geom::tests (the_grid_has_the_booklets_2562_points_on_the_unit_sphere; the_interval_form_equals_the_general_predicate; a_user_behind_the_earth_is_blocked_and_one_beside_the_limb_is_not); ssv::sweep::tests…
ModellertEffekter av limb-stråle på ionosfære, plasmasfære og atmosfære på streifende GNSS-signaler, og utformingen av mottakeren for svake signaler, i typen gnss-ssvssv (limb, weak)
Funksjon
En Chapman-ionosfære, en plasmasfære av Gallagher-typen og en nøytral atmosfære (brytningsbøyning, oksygenabsorpsjon, defokusering) integrert langs den rette strålen mellom sender og bruker: skrått totalt elektroninnhold, dets plasmasfæriske del, ekstra forsinkelse, tangenthøyde og tapet på streifende lenker; og en utforming av mottaker for svake signaler (koherent og ikke-koherent integrasjon, databitgrense, støtte, Dopplersøk) som setter C/N0-terskelen fra modellene for oppfangning og sporingssløyfe
Uavhengig referanse
Lukkede former og publiserte størrelser i testene (toppen til et Chapman-lag og bøyningen av overflatelimben, noen få TECU plasmasfære på en GPS-til-GEO-stråle); mottakerutformingen gjenbruker modellene for oppfangning og sporingssløyfe og deres tester. Ingen målte data fra limb-sondering eller mottak av svake signaler er sammenlignet med den
Tester
ssv::limb::tests (the_chapman_layer_peaks_at_its_height_with_its_density; the_surface_limb_bends_about_one_and_a_third_degrees; plasmaspheric_tec_is_a_few_tecu_for_an_equatorial_gps_to_geo_ray); ssv::weak::tests…
ModellertNavigasjonsfilter om bord for GNSS for romfartøy i høy bane og månetransferssv::nav (run_nav, Ekf)
Funksjon
Modusen [navigation] i typen gnss-ssv: et utvidet Kalman-filter med ni tilstander (posisjon, hastighet, mottakerklokkens bias og drift, en skala for solstrålingstrykk) på pseudoavstander hvis tilgjengelighet, støy og C/N0 kommer fra samme lenkegeometri som sveipene; referansen integreres med J2, tredjelegemene Sol og Måne og strålingstrykk med skygge, filteret modellerer J2 og tredjelegemene og estimerer strålingstrykket; rapporterer posisjons- og hastighetsfeil innenfor og over GNSS-banene, det lengste målingsgapet og gjennomsnittlig NEES
Uavhengig referanse
Simulert referanse mot filterets eget estimat (et konsistent filters gjennomsnittlige normaliserte estimeringsfeil i kvadrat er omtrent 3 for posisjonen) og determinisme for et fast seed. Ingen flyvedata eller registrerte GNSS-data fra høy bane er sammenlignet; Solen og Månen er sirkulære stand-ins med lav presisjon
Tester
ssv::nav::tests (the_filter_converges_where_signals_are_plentiful_and_is_deterministic; the_covariance_is_consistent_with_the_error; without_signals_the_filter_coasts_and_the_gap_is_reported); ssv::scenario::tests…
ModellertRelativ navigasjon for en formasjon av flere romfartøy i en sterkt elliptisk bane fra GNSSssv::formation (run_formation, RelEkf)
Funksjon
Modusen [formation] i typen gnss-ssv: en hovedfarkost og følgefarkoster kjører hver det absolutte filteret; følgefarkostens posisjon relativt til hovedfarkosten estimeres ved å trekke fra de absolutte estimatene og med et relativt filter på enkeltdifferensierte pseudoavstander for signalene begge farkoster sporer, med den relative dynamikken som differansen mellom to ikke-lineære baner
Uavhengig referanse
Den samme simulerte referansen som for det absolutte filteret: det relative filterets feil mot den sanne relative tilstanden, og kontrollen av at det gjør det minst like bra som å trekke fra to uavhengige absolutte posisjonsbestemmelser. Ingen flyvedata for formasjon er sammenlignet
Tester
ssv::formation::tests (differencing_beats_subtracting_absolute_estimates_and_is_deterministic); ssv::scenario::tests (navigation_and_formation_run_and_report; formation_needs_navigation_and_one_mode_only)
ModellertFeilbudsjett for navigasjon og tidssynkronisering for en kjede av oppdragsfaser fra oppskyting til gjeninntreden (mission-thread)mission_thread (scenario, handover, conversions, budget, phase)
Funksjon
Typen mission-thread: et dokument av faser, hver av dem én av åtte registrerte typer, kjørt i rekkefølge med 6x6-kovariansen, klokken og referansesystemet videreført under en oppgitt regel (carry; inflate, hvit akselerasjonsstøy over et oppgitt gap på en rettlinjet modell; reacquire, dødregning og så kildegulvet, aldri under det, aldri en nullstilling); konverteringer av referansesystem GCRF, MCI og MCMF og av tidsskala via TT, hver sin budsjettrad, med Månens tilstand fra et valgfritt DE440-kjerneutsnitt og den analytiske rekken som oppgitt reserveløsning; marginen mot et oppgitt krav, det svakeste leddet, hendelsene og en tidslinjefigur. Hvert tall er en oppgitt inndata eller en modell av en slik
Uavhengig referanse
Håndberegninger i testene (veksten i rettlinjet kovarians, den midlere siderale rotasjonen, den sekulære månklokkeraten) og, for Månens tilstand alene, de innsjekkede DE440-kjerneutsnittene mot festede JPL Horizons-verdier (verst 2,6 m og 7e-6 m/s). Ingen oppdragsdata sammenlignes med kjeden; fasene er egne rader. Dokumentet er en oppgitt kjede med ILLUSTRATIVE inndata, bare offentlige kilder og ingen støtte fra noe romfartsbyrå
Tester
mission_thread::scenario::tests::a_thread_runs_hands_over_converts_and_names_the_weakest_link; mission_thread::scenario::tests::bad_documents_fail_with_the_reason…
ModellertOppskyting og stigning til en parkeringsbane med GNSS-innhenting og signalbortfall (launch-ascent)mission_thread::earth::launch (LaunchAscent)
Funksjon
Fasen launch-ascent: en posisjons- og hastighetskovarians med konstant hastighet og hvit akselerasjonsstøy (dødregningsklassen), en GNSS-posisjonsbestemmelse med oppgitt nøyaktighet brukt etter innhentingstiden og utenfor oppgitte bortfall, en klokke med bias og drift disiplinert av de samme posisjonsbestemmelsene, og innsettingstilstanden i parkeringsbanen
Uavhengig referanse
Riccati-likevekten og håndberegningen av prediksjonen i testene. Ingenting her modellerer en bærerakett eller en mottaker; hvert tall er en oppgitt inndata
Tester
mission_thread::earth::launch::tests::with_gnss_the_sigma_settles_near_the_fix_and_an_outage_lets_it_grow; mission_thread::earth::launch::tests::before_acquisition_the_sigma_only_grows_and_a_longer_acquisition_is_worse…
ModellertRelativ navigasjon til dokkingvinduet i lav jordbane over sensoretapper (leo-rendezvous)mission_thread::earth::rendezvous (LeoRendezvous); cw_dynamics; mission_thread::sensors
Funksjon
Fasen leo-rendezvous: den relative tilstanden i målets LVLH-akser med den lukkede Clohessy-Wiltshire-overgangen, en 6x6 Kalman-kovarians med hvit akselerasjonsstøy og posisjonsoppdateringer hvis varians er sensorens ved gjeldende avstand, over etapper med en oppgitt sensor (ILLUSTRATIVE former for optisk kamera, lidar og radioavstandsmåling); dokkingvinduet er tiden fra den relative sigmaen holder seg innenfor fangstomhyllingen til slutten av fasen. Jagerfartøyets absolutte kovarians føres videre uendret, og en rad sier det
Uavhengig referanse
En énaksers håndberegning av prediksjon og oppdatering i testen; Clohessy-Wiltshire-overgangen er den cw_dynamics kontrollerer mot en uavhengig numerisk integrasjon. Sensorene er ILLUSTRATIVE, og ingen virkelig rendezvous sammenlignes
Tester
mission_thread::earth::rendezvous::tests::the_relative_sigma_falls_through_the_legs_and_opens_a_docking_window; mission_thread::earth::rendezvous::tests::without_relative_sensing_the_sigma_only_grows_and_no_window_opens…
ModellertTrans-lunar injeksjon og cislunar seilas: propagert middeltilstand og kovarians med sporingsoppdateringer (tli-and-cruise)mission_thread::earth::tli_cruise (TliCruise); propagator; ssv::sweep
Funksjon
Fasen tli-and-cruise: middeltilstanden fra motorens Cowell-propagator (jordens punktmasse og J2, Solen og Månen som tredje legemer, Månen fra oppdragstrådens DE440-kjerne der den dekker segmentet og Solen fra den analytiske rekken); kovariansen fra en tilstandsovergangsmatrise med foroverdifferanse for den propageringen (den nominelle kjøringen og seks forstyrrede kjøringer per segment) med hvit akselerasjonsstøy; TLI-brenningens størrelses- og pekefeil; posisjonsbestemmelser fra gnss-ssv hvis tilgjengelighet og PDOP kommer fra sveipet over romtjenestevolumet langs en oskulerende bane som står i for buen; avstands- og avstandsratesporing langs den geosentriske retningen skalert med bakkenettverkets driftssyklus, med oppdatering i Joseph-form
Uavhengig referanse
Liouvilles teorem (determinanten av tilstandsovergangsmatrisen for den konservative delen er én) og en finere differanse i testene; middeltilstanden sammenlignes med en offentlig bane i raden under, som den bommer på. Brenningsfeilen, oppdateringene og kovariansen sammenlignes ikke med noe
Tester
mission_thread::earth::tli_cruise::tests::the_stm_is_symplectic_for_the_conservative_part_and_matches_a_finer_difference; mission_thread::earth::tli_cruise::tests::with_no_tracking_the_covariance_is_the_stm_propagation_…
ModellertKovarians ved grensesnittet for gjeninntreden, korridorsannsynlighet, maksimal retardasjon og landingsfotavtrykk (entry)mission_thread::earth::entry (Entry); reentry
Funksjon
Fasen entry: returkysten fra tli-and-cruise uten brenning, som ender ved grensesnittet for gjeninntreden; banevinkelen og dens sigma fra den fulle kovariansen ved en gradient med endelig differanse; sannsynligheten for at vinkelen ligger innenfor en oppgitt korridor; den maksimale retardasjonen ved nominell vinkel og ved begge korridorkantene fra motorens plane ballistiske punktmasseinngang (utsprett oppdaget) ved siden av Allen-Eggers' lukkede form; landingsfotavtrykket fra en oppgitt følsomhet i rekkevidderetningen og grensesnittkovariansen på tvers av banens plan. Ingen løft, styring eller oppvarming er modellert
Uavhengig referanse
Håndberegninger i testene (vinkelens sigma er den vinkelrette hastighetssigmaen delt på farten; den gaussiske massen i en korridor). Den plane inngangen er motorens egen, og Allen-Eggers-formen er en sammenligning i lukket form; ingen fløyet gjeninntreden sammenlignes
Tester
mission_thread::earth::entry::tests::the_flight_path_angle_and_its_sigma_follow_the_velocity_error_over_the_speed; mission_thread::earth::entry::tests::the_corridor_probability_is_the_gaussian_mass_inside…
ModellertDekning og sporingsdrift fra bakkenettverket for en trådfase ([ground_network] av mission-thread)mission_thread::earth::ground_network
Funksjon
Bakkenettverkets overlegg: stasjoner med en minste elevasjon, kjøretøyets synlighet på en oppgitt geometri (inngangstilstanden fløyet to-legeme med J2, Månens posisjon for seilasen, eller en oppgitt driftssyklus), stasjonsoverleveringer som hver taper en oppgitt tid, og den resulterende driftssyklusen sendt til fasens oppdateringsrate for bakkesporing; det lengste intervallet uten stasjon i sikte er en budsjettrad
Uavhengig referanse
Kontroller av zenit- og antipodegeometri og den forventede synligheten til et fjernt mål i testene. Ingen virkelig nettverk, antenne eller plan er modellert
Tester
mission_thread::earth::ground_network::tests::a_vehicle_over_a_station_is_seen_and_one_on_the_other_side_of_the_earth_is_not; mission_thread::earth::ground_network::tests::the_moon_is_in_view_of_three_well_spread_statio…
ModellertRelativ navigasjon til dokking i en månebane (lunar-orbit-rendezvous)lunar_rendezvous (LunarRendezvousScenario); lunar_phase; mission_thread::lunar
Funksjon
Typen og fasen lunar-orbit-rendezvous: et felles batch-estimat med Gauss-Newton for to fartøyer over buen (tjueen parametere: begge tilstander og vedvarende posisjonsbiaser i signalet i rommet, felles og uavhengige), utvidet over en fjerdedel, en halvdel og hele buen med steghalvering, fra en absolutt posisjonsbestemmelse per fartøy (grensen for AFS-pilotkodesporing, ILLUSTRATIVE relésett) og en avstand over krysslenken, under månekraftmodellen i crate-en; den gjennomsnittlige normaliserte estimeringsfeilen i kvadrat, Clohessy-Wiltshire-kontrollen på en sirkulær bane og 6x6-kovariansen som føres videre
Uavhengig referanse
Selvkonsistens under en forhåndsregistrering (xval/mission-thread-lunar/PREREGISTRATION.md, resultater og estimatorhistorikken i RESULTS.md): gjennomsnittlig NEES for den relative tilstanden er 5,85 til 5,93 mot båndet 5,2 til 6,8 i fire konfigurasjoner, MET på den fjerde estimatorutformingen etter at tre utforminger med sekvensielt filter bommet; referansen og estimatoren deler én kraftmodell, så dette sier ingenting om modellfeil. Propagatoren den deler sammenlignes med LRO og CAPSTONE i en rad under
Tester
lunar_rendezvous::tests::b1_mean_nees_is_inside_the_registered_band_in_all_four_configurations; lunar_rendezvous::tests::circular_cw_check_is_within_the_pre_registered_bar…
ModellertBudsjett for landingsspredning på et sted nær månens pol (lunar-descent)lunar_landing (LunarLandingScenario); lunar_phase; terrain_nav
Funksjon
Typen og fasen lunar-descent: en inertiell feilmodell med fem tilstander per akse (posisjon, hastighet, akselerometerbias, helling, gyrobias) over en drevet nedstigning, støttet av AFS-posisjonsbestemmelser (alene eller differensielle, med tilfellet med klokkestøtte og tre reléer), en terrengrelativ posisjonsbestemmelse (motorens terrain-nav-matcher på syntetisk relieff, eller en Cramer-Rao-grense på en LOLA DEM med en regel for aperturproblemet) og månetid, med en Monte Carlo-landingsellipse
Uavhengig referanse
Den lukkede formen for inertiell drift, resultatene til de gjenbrukte typene selv og kalibreringen av 3-sigma-ellipsen (andelen innenfor stemmer med forventningen) i testene. Ingen fløyet eller testet landing sammenlignes
Tester
lunar_landing::tests::b4_with_no_aid_the_landing_error_is_the_closed_form_inertial_drift; lunar_landing::tests::b4_each_aid_reports_exactly_what_the_reused_kind_gives; lunar_landing::tests::b3_ellipse_calibration…
ModellertTilgjengelighet for posisjonering og tidssynkronisering på overflaten etter sted og årstid ved månens poler (lunar-surface)lunar_surface_map (LunarSurfaceMapScenario); lunar_phase
Funksjon
Typen og fasen lunar-surface: relétilgjengelighet og PDOP, jord- og solsynlighet og en disiplinert overflateklokke for hvert sted og hver årstid, med terrengsilhuetten fra moonlight-service-volume; en kjøring for ett sted tilsvarer den typens tilgjengelighet og PDOP bit for bit
Uavhengig referanse
Eksakt likhet med den eksisterende typen for ett sted, og monotonisitetskontroller, i testene. Relésettet er ILLUSTRATIVE, og ingen overflatemåling sammenlignes
Tester
lunar_surface_map::tests::b5_equals_the_service_volume_for_a_single_site; lunar_surface_map::tests::b5_equals_the_service_volume_with_the_real_terrain; lunar_surface_map::tests::terrain_never_adds_availability…
ModellertDrevet oppstigning fra et sted ved månens pol til en innsettingsbane (lunar-ascent)lunar_ascent (LunarAscentScenario); lunar_phase
Funksjon
Typen og fasen lunar-ascent: den inertielle feilmodellen med fem tilstander per akse kjørt over en drevet oppstigning med spesifikk kraft langs banen, støttet av AFS-posisjonsbestemmelser og månetid, som rapporterer posisjons- og hastighetskovariansen ved innsetting ført til bane og spredningen ved motoravstengning (rapportert, ikke ført videre)
Uavhengig referanse
Den lukkede formen for inertiell drift og monotonisitetskontroller i testene. Ingen fløyet oppstigning sammenlignes
Tester
lunar_ascent::tests::with_no_aid_the_insertion_error_is_the_closed_form_inertial_drift; lunar_ascent::tests::the_aid_never_hurts_and_the_velocity_is_carried_with_its_correlation…
ModellertPropageringen med månens kraftmodell mot offentlige rekonstruerte baner for månesatellitter og cislunare banerlunar_od (LunarForceModel); precise_od; mission_thread_lunar_oracles (example)
Funksjon
Propagatoren de lunare typene deler (GRAIL GL0660B grad og orden 150, Jorden og Solen som tredje legemer, relativitet, DE440-månorientering) sammenlignet med de offentlige JPL Horizons-banene til LRO (24 t, prøver hvert 10 minutt) og CAPSTONE (én omdreining på 6,5 dager, prøver hver time), under terskler fastsatt i en innsjekket fil før kjøringen
Uavhengig referanse
JPL Horizons-efemerider for romfartøy for LRO og CAPSTONE, mot terskler forhåndsregistrert i xval/mission-thread-lunar/PREREGISTRATION.md (endringene 1 til 6). LRO: MET, 33 m største 3D-forskjell og 2,4 m RMS radialt mot 500 m og 60 m. CAPSTONE: NOT MET, en forskjell i sluttposisjon på 136,8 km mot 25 km og en forskjell i periapsis på 28,4 km mot 10 km, årsakene er ikke isolert. Raden er Modellert fordi CAPSTONE-terskelen er bommet og sammenligningen tester den delte propagatoren, ikke noe filter, signal eller budsjett
Tester
tests/mission_thread_lunar_oracles.rs::the_stored_numbers_meet_or_miss_the_registered_bars_as_recorded; tests/mission_thread_lunar_oracles.rs::the_fixtures_match_their_recorded_hashes
ModellertPropageringen av middeltilstanden i cislunart rom mot den offentlige Artemis I-banen (tli-and-cruise)mission_thread::earth::tli_cruise; propagator; mission_thread_oracle (example)
Funksjon
Middeltilstandspropageringen i fasen tli-and-cruise (Cowell, jordens punktmasse og J2, Solen og Månen som tredje legemer, Månen fra et DE440-utsnitt) sammenlignet med den offentlige JPL Horizons-banen til Artemis I over en glidebue på 72 t fra 2022-11-16 18:00 TDB, ved epoker med 12 timers mellomrom, under terskler fastsatt i en innsjekket fil før kjøringen
Uavhengig referanse
JPL Horizons-mål -1023 (NASAs navigasjonsbane etter TLI slik den ble fløyet), mot terskler forhåndsregistrert i xval/mission-thread/PREREGISTRATION.md (endring 1 endrer bare forespørselens tidsspenn). NOT MET og oppgitt som bommet: 45,3 km største posisjonsforskjell mot 5 km, og 0,249 m/s hastighetsforskjell ved 72 t mot 0,05 m/s. En diagnostikk skrevet etter at utfallet var gitt plasserer bommen i fem impulsive hastighetssteg på 0,09 til 0,22 m/s i referansen (den forhåndsregistrerte lesingen om at vinduet ikke hadde noen brenning var feil); over de andre 67 timene gjengir modellen neste timestilstand med en median på 0,38 m. Tester bare middeltilstanden til én glidebue: ingen kovarians, noe filter, oppdatering eller annen fase
Tester
tests/mission_thread_oracle.rs::the_stored_numbers_miss_the_registered_bars_as_recorded; tests/mission_thread_oracle.rs::the_diagnostic_places_the_miss_in_five_impulsive_events_not_in_the_force_model…
ModellertFeilledd i kaldatom-interferometer: Raman-laserfasestøy, bias fra bølgefrontkrumning og oppløsning av fringe-flertydighetinertial::cai_error_terms
Funksjon
inertial::cai_error_terms (biblioteksfunksjoner, ennå ikke nåbare fra en scenariotype): vektingsfunksjonen for Raman-fase for et interferometer med tre firkantpulser (Cheinet et al. 2008, Eq. 8) med den lukkede formen for hvit fase (pi/2)^2 S_phi0/tau_R og en numerisk vei for ethvert spektrum; laserfrekvensstøyen som forsinkelsen ved retroreflektering ikke kansellerer (Le Gouet et al. 2007, Eqs. 9 til 11); ren defokus-bølgefrontbias sigma_v^2/R for en termisk sky og dens reduksjon med en deteksjonsradius; sannsynligheten for feil fringe-indeks erfc(pi/(sqrt(2) s)) for en hjelp fra et klassisk akselerometer og for to avhørstider, og dens invers
Uavhengig referanse
Hver lukkede form mot en uavhengig numerisk vei i testene (kvadratur i frekvensdomenet av den nøyaktige overføringsfunksjonen og forsinkelsesfilteret, en Monte Carlo over atomer for bølgefrontbiasen, en Monte Carlo over skudd for fringe-indeksen) og dens grensetilfeller. Én publisert regnet verdi: Cheinet et al. 2008 (arXiv:physics/0510197, Sec. IV) oppgir at ved tau_R = 20 us trengs en hvit Raman-fasestøy under -111 dB rad^2/Hz for 1 mrad per skudd; det hvite leddet alene gir 0,99 mrad (artikkelen utleder nivået med sin Eq. 17, flimmer pluss hvit). Intern konsistens og én regnet verdi, ikke en ekstern validering; høyere ordens aberrasjoner og støyen til en bestemt laser er ikke modellert
Tester
inertial::cai_error_terms::tests (raman_transfer_short_pulse_limit_matches_the_acceleration_transfer_function; white_raman_phase_closed_form_matches_quadrature; short_pulse_band_limited_closed_form_matches_quadrature…
ValidertGreenhall og Rileys eksakte ekvivalente frihetsgrader for Allan-, modifisert Allan- og Hadamard-variansallan (edf_greenhall, greenhall_edf_core); assurance::uncertainty (edf)
Funksjon
allan::edf_greenhall (med omslagene edf_greenhall_adev, _mdev og _hdev): hele algoritmen til Greenhall og Riley, Proc. 35th PTTI (2003), Section 3 (Eqns 7 til 13 og koeffisientene for stor J i Tables 1 til 3), for differanseordener 1 til 3, støyeksponenter +2 til -4 overalt der alpha + 2d > 1, overlappende og ikke-overlappende, modifiserte og umodifiserte estimatorer; NaN der den ikke gjelder, inkludert det umodifiserte tilfellet hvit PM med ceil(M/S) <= d, hvis lukkede form ikke er implementert. assurance::uncertainty::edf deler nå koden og beholder utdataene bit for bit
Uavhengig referanse
allantools 2024,6 ci.edf_greenhall, en tredjepartsimplementasjon av den publiserte algoritmen, kjørt av scripts/gen_greenhall_edf_ref.py over nettet forhåndsregistrert i xval/greenhall-edf/PREREGISTRATION.md (innsjekket alene, 0db0bb7a, før noen sammenligning): i alle 4 876 punkter der den returnerer en endelig edf stemmer kshana overens innenfor relativt 6.0e-13 (terskel 1e-9); i dens 46 punkter med NotImplementedError returnerer kshana NaN; hver tilfellesetikett forekommer; omslagene er lik kjernen bit for bit; uncertainty::edf er bit-identisk over 274 280 verdier (festet som en SHA-256 før refaktoreringen). I 32 punkter (alpha -4, d 3, umodifisert, tilfelle 2,2) feiler allantools i sitt oppslag i Table 2, så de har ingen verdi fra den uavhengige referansen og telles ikke. Stable32 ble ikke kjørt. 0,36 revisjon (docs/revisions/STUDIO15-greenhall-edf-portable.md): på portabel matematikk henter kjernen sin logaritme fra en double-double-evaluering avrundet én gang (allan::greenhall_ln), og den uendrede terskelen 1 holder igjen i alle 4 876 punkter, verste relative 6.0e-13; vakten for uncertainty::edf er rebasert til den portable dumpen for 0,36 (3 746 av de 274 280 verdiene flyttet seg, høyst 1.6e-12 relativt, fra basen med vertsmatematikk)
Tester
tests/greenhall_edf_allantools.rs (bars_1_to_3_against_allantools; bar_4_wrappers_equal_the_core); tests/greenhall_edf_no_moved_output.rs (uncertainty_edf_is_bit_identical_to_the_0_36_portable_baseline)…
ModellertHoldover-forhåndsinnstillinger for oscillatorer fra offentlige databladtelecom_timing (PRESETS, fit_noise, with_flicker_floor, synthesize_holdover); models (ClockModel)
Funksjon
Fire forhåndsinnstillinger — OCXO (Microchip OX-208), rubidium (Microchip 8040C), cesium (Microchip 5071A høyytelsesrør) og CSAC (Microchip SA.45s) — hver med databladets maksima for Allan-deviasjon, aldring og temperaturgrense; en ikke-negativ minste kvadraters tilpasning av frekvensstøy med hvit + flimmer + random walk skalert til å omhylle hvert databladpunkt, et flimmergulv aldri under tallet for lengste τ, lineær aldring og et sinusformet temperaturledd, syntetisert som en seedet holdover etter et GNSS-tap
Uavhengig referanse
De fire navngitte Microchip-databladene (dokumentnumre og URL-er i hver forhåndsinnstilling og i docs/TELECOM-TIMING.md) for inndatatallene; den lukkede aldringsrampen og tilpasningens omhyllingsegenskap som interne kontroller. Hvordan tallene blir en støymodell — tilpasningen, gulvregelen, måneden på 30 dager, den lineære temperaturlesingen — er et modelleringsvalg; ingen forhåndsinnstilling er en måling av en enhet. 0,30 runde 2, ensidige terskler mot målte enheter (forhåndsregistrert a01c491c), et funn (forblir MODELLED): IGS-stasjonen THU2 Symmetricom 8040C i ESA MGEX endelige klokker har en Allan-deviasjon på 0,35 til 0,87 av rubidium-forhåndsinnstillingen, men en holdover-feil på 1,07 til 1,60 av den; 5071A-registreringen ligger utenfor cesium-forhåndsinnstillingen til 1000 s (hvit fasestøy i målingen, 30x ved 1 s) og i holdover (1,15 til 8,74); den verste produksjons-SA.45s fra 2011 er 1.26x CSAC-forhåndsinnstillingen ved 1 s; OX-208 har ingen målt registrering (blokkert)
Tester
telecom_timing::tests (every_preset_carries_a_named_datasheet_and_figures; the_noise_fit_envelopes_every_datasheet_point; pure_aging_matches_its_closed_form — den diskrete aldringsrampen innenfor 0,1 % av (1/2)·D·t² over en…
ValidertHoldover-prediksjon fra en målt klokkeregistrering, kontrollert på tilbakeholdte dataslot_timing (ClockNoise::from_phase_record, fit_weighted, slot_budget, breach_after_sync_s)
Funksjon
Den målte registreringsveien til typen slot-timing: den overlappende Allan-deviasjonen til en faseregistrering tilpasset med edf-vektet ikke-negativ minste kvadrater i basisen hvit fase og IEEE Std 1139 frekvensmodulasjon (slot_timing::fit_weighted), deretter invertert for frittløpstiden der tidsfeilen når en terskel (slot_timing::slot_budget). Gulvet for rød støy måles fra registreringen i stedet for å antas
Uavhengig referanse
En virkelig fritt løpende atomklokke: 556 990 sekundfasesamples fra en cesium 5071A-standard målt mot en hydrogenmaser (A. Wallin, distribuert med allantools; festet commit og SHA-256 i scripts/fetch_cs5071a.sh), den samme registreringen tests/cs5071a_reference.rs bruker for estimatorene. De tilbakeholdte to tredjedelene er en ekstern måling prediksjonen aldri så. Betinget av data: arbeidsflyten realdata-clock henter registreringen og kjører testen med KSHANA_REQUIRE_REALDATA=1. Validerer veien tilpass-så-inverter på en atomstandard dominert av hvit FM over frittløpstider opp til omtrent 50 000 s; ikke databladet eller klassekildene, ikke de deterministiske leddene. IKKE en krystalloscillator: på en målt OCXO-registrering (tests/slot_timing_ocxo_holdout.rs, allantools, 5,5 h mot en hydrogenmaser) er den tilbakeholdte prediksjonen konservativ, på 0,59 til 0,70 av det målte bruddet, og for det meste utenfor terskelen, fordi oscillatorens støygulv ble halvert under registreringen; i utvalget er den innenfor 0,98 til 1,17. Krystalltilfellet forblir MODELLED. IKKE atomklokker i bane heller: på 10 GPS Block IIF-satellittklokker (tests/slot_timing_igs_holdout.rs, IGS endelige 30 s-klokker, 14 dager, protokoll skrevet før nedlasting) havner 8 innenfor terskelen og 2 (G25, G30) er optimistiske med opptil omtrent 2x, så under protokollen forblir tilfellet i bane MODELLED
Tester
tests/slot_timing_cs5071a_holdout.rs (holdover_inversion_predicts_the_held_out_caesium_record: tilpass på første tredjedel av registreringen, forutsi brudd på ett sigma ved 0,5, 0,75, 1, 1,5, 2 og 2,5 ns, mål det på den…
ModellertSekunder til en fritt løpende klokke forlater vakten til et tidsindeksert slot, og fix-kadensen som holder den innenforslot_timing (predicted_error_s, breach_after_sync_s, terms_at, slot_budget, ClockNoise::from_datasheet, SlotTimingScenario); clock_state (ClockClass::Tcxo, Ocxo, Rafs, source)
Funksjon
Typen slot-timing: den predikerte feilen E(t) = k·√(σ₀² + σ_x²(t)) + (|y₀| + |c_T·ΔT|)·t + ½|D|t² invertert for bruddet, gjenværende tid, resynkroniseringsintervallet netto av fix-latens og fixer per døgn, hvert ledd spesifisert med det dominerende navngitt; klokker fra de seks standardene i ClockClass (TCXO, OCXO og RAFS lagt til, hver med ett datablad som kilde), forhåndsinnstillingene for telecom-timing, et innebygd datablad eller en målt registrering; et brudd utover kildens lengste midlingstid flagges som ekstrapolert
Uavhengig referanse
Lukkede former for hvert ledd alene og den uavhengige rotsøkingen holdover::holdover_seconds; databladtallene er de navngitte dokumentene (docs/SLOT-TIMING.md). En klassestandard hviler på et antatt gulv for rød støy og en databladkilde er en omhylling av maksima, så ingen av dem er en måling av noen enhet
Tester
tests/slot_timing_igs_holdout.rs (10 GPS Block IIF-satellittklokker, 14 dager med endelige IGS-klokker: 8 innenfor terskelen 1,5, G25 og G30 optimistiske med opptil omtrent 2x, festet); tests/slot_timing_ocxo_holdout.rs (en målt…
ModellertBeskyttelsesnivå for tidssynkronisering for en mottaker i bane under GNSS-spoofingorbital_timing (orbital_timing, visibility_half_angle_rad, max_pass_s, crosslink_neighbour_is_outside_footprint)
Funksjon
orbital_timing::orbital_timing, tilgjengelig som spoofing-seksjonen i slot-timing-typen: hastighet og omløpstid i sirkulær bane, lengste tid en spoofer på bakken kan nå satellitten per overflyvning, gulvet til den klokkestøttede monitoren og CUSUM-deteksjonsforsinkelsen, det betingede beskyttelsesnivået (gulvet pluss drift over forsinkelsen), trekket en spoofer med oppgitt maksimal rampehastighet rekker å akkumulere før satellitten forlater fotavtrykket sitt eller en uavhengig kontroll kjøres, og om hver kontroll via bakkekontakt eller krysslenke er uavhengig av én spoofer på bakken
Uavhengig referanse
Reduksjon til det eksisterende beskyttelsesnivået for tidssynkronisering og de lukkede formene for synlighet med sirkulær bane og sfærisk jord. Betinget av deteksjon, én terrestrisk spoofer med oppgitt rampehastighet, en overflyvning rett overhead på en jord uten rotasjon; ikke validert på en spoofet mottaker i bane
Tester
orbital_timing::tests (reduces_to_the_terrestrial_tpl — nøyaktig tpl::timing_protection_level_ns når klokken ikke har noe flicker-, hvitfase- eller random-run-ledd; leo_geometry_matches_its_closed_forms…
ValidertLukkede former for effekttetthetsspektre og spektrale separasjonskoeffisienter for L-bånd-signalernavsignal (Modulation::psd, spectral_separation_coeff_offset, q_from_ssc); spectrum (psd_nulls_hz, psd_peak_hz, main_lobe_null_to_null_hz, Jammer::ssc)
Funksjon
Effekttetthetsspektre med enhetsareal for GPS L1 C/A og L2C (BPSK(1)), GPS L5 og Galileo E5a (BPSK(10)), sine-BOC(1 1) og Galileo E1 MBOC(6,1,1/11) (navsignal::Modulation::psd, med en MBOC-variant lagt til), deres numerisk lokaliserte nullpunkter og maksima (spectrum::psd_nulls_hz, psd_peak_hz, main_lobe_null_to_null_hz), og den spektrale separasjonskoeffisienten til et signal mot et vilkårlig spektrum ved en vilkårlig forskyvning (navsignal::spectral_separation_coeff_offset) eller mot en tone, flat støy, en chirp eller tilpasset støy (spectrum::Jammer::ssc), med anti-jam-koeffisienten Q = 1/(R_c kappa)
Uavhengig referanse
Publiserte lærebokverdier: BPSK(n)-hovedloben på 2n x 1,023 MHz fra null til null og anti-jam-koeffisientene Q = 1 for en smalbåndet (CW) jammer og Q = 1,5 for en spredtspektrum-jammer tilpasset C/A (Kaplan & Hegarty, Understanding GPS/GNSS, 3. utg., avsnitt 9,4); BOC(m,n)-hovedlobene sentrert på pluss eller minus m x 1,023 MHz (Betz, Binary Offset Carrier Modulations for Radionavigation, NAVIGATION 48(4), 2001); de spektrale separasjonskoeffisientene -61.8, -64.8 og -67.8 dB/Hz for C/A med C/A, BOC(1 1) med BOC(1 1) og C/A med BOC(1 1) (Betz 2001; Hein m.fl., MBOC: The New Optimized Spreading Modulation Recommended for Galileo L1 OS and GPS L1C, Inside GNSS, mai/juni 2006), gjengitt her fra deres lukkede former for autokorrelasjon etter Parseval. BOC(1 1)-maksimum ligger ikke ved 1,023 MHz: loben strekker seg fra bærebølgens nullpunkt til 2,046 MHz og har toppen ved 0,759 MHz, og testen fastlegger begge. MBOC-blandingen er ICD-definisjonen, kontrollert bare for enhetsareal og linearitet
Tester
spectrum::tests (bpsk_main_lobe_null_to_null_is_two_n_times_1_023_mhz — BPSK(1) 2,046 MHz og BPSK(10) 20,46 MHz lokalisert numerisk på den lukkede formen; boc11_lobes_are_centred_at_plus_minus_1_023_mhz — bærebølgenull…
ModellertVannfallsdiagram av L-bånd-spekteret med J/S per bånd og effektiv C/N0 under en skriptet jammer-tidslinjespectrum (SpectrumScenario, SpectrumModel::bin_psd_w_per_hz, SpectrumModel::band_state, effective_cn0_multi_dbhz, system_temp_k, Jammer::power_fraction_in, Jammer::duty)
Funksjon
spectrum-typen: et frekvens-mot-tid-rutenett av effekttettheten i L-båndet (termisk gulv k T_sys med T_sys = T_ant + 290 K (F - 1), signalene ved sine minste mottatte effekter i grensesnittspesifikasjonen, og jammere med kontinuerlig bølge, smalbånd, chirp og tilpasset støy med av- og på-tidspunkter), der hver celle er gjennomsnittet over sin binge og rad (chirper nøyaktig over hele og delvise sveip, jammere etter driftssyklus), effektiv C/N0 per bånd = [1/(C/N0) + sum (J/S) kappa]^-1 per rad, J/S per bånd, J/S i båndet, og et SVG-vannfallsdiagram med C/N0-søyler. Rapporten inneholder en kryssjekk mot kjeden til jamming-typen på de samme linkinndataene
Uavhengig referanse
Reduksjon til anti-jam-ligningen og linkbudsjettet til den eksisterende jamming-typen (den samme koden, kalt med de samme inndataene), og den lukkede formen for støygulvet k T0 F. Signalspektrene under er den validerte raden ovenfor; jammereffekter, tidslinje og båndbredder i frontenden er scenarioinndata, spektrene er kontinuerlige (ingen spredekodelinjer), og ingen automatisk forsterkningsregulering, blanking eller antennemønster virker på jammeren. Det finnes ikke noe målt jammet spektrum i depotet å kontrollere sammensetningen mot. Q-tabellen til jamming-typen (CW og smalbånd 1, bredbånd og feiet 2 siden 0,36: lærebokverdiene, fastlagt mot de lukkede formene i navsignal) stemmer med denne modellens CW-verdi og avviker fra det den utleder for støy tilpasset C/A (1,5) og for flat støy fra null til null uten normalisering i båndet (2,2); rapporten skriver ut begge
Tester
spectrum::tests (agrees_with_the_jamming_kind_chain — J/S lik jamming::j_over_s_db og effektiv C/N0 lik jamming::effective_cn0_dbhz med Q = 1/(R_c kappa) til 1e-9 dB, og ankerpunktet på 32,105 dB for jamming…
ValidertSigMF-opptak inn og ut, og Welch-spektralestimater av komplekse IQ-datasigmf (read, write, encode, decode, parse_meta, meta_to_json); spectrum (welch_psd, fft_in_place, synthesise_iq)
Funksjon
sigmf: leser og skriver opptak i Signal Metadata Format (JSON .sigmf-meta med feltene core global, captures og annotations; rå .sigmf-data som cf32_le, ci16_le eller ci8, heltallsdekoderne delt med realdata::iqif::load_iq), alt på strenger og bytebuffere. spectrum::welch_psd: periodogrammer med Hann-vindu, overlapp og gjennomsnitt, tetthetsskalert, på en radix-2-transformasjon i selve craten (spectrum::fft_in_place). Disse to er det validerte kravet. spectrum::synthesise_iq trekker modellen som IQ, og spectrum-typens [iq]-seksjon kjører modell til IQ til SigMF til Welch og sammenligner med modellen; dens [recording]-seksjon estimerer et ekte opptak (native bygg); syntesen og disse modellsammenligningene ligger utenfor det validerte kravet
Uavhengig referanse
scipy 1.18.1 scipy.signal.welch (BSD-3-Clause) med det samme periodiske Hann-vinduet, overlapp, tetthetsskalering, ingen detrend og tosidig gjennomsnitt: hver binge innenfor 1e-12 relativt (observert 6.0e-14) over 27 tilfeller, med segmentantall hentet fra scipys eget spektrogram. sigmf-python 1.13.0 (LGPL-3.0, kjørt som verktøy) skriver fem tredjepartsopptak (cf32_le, ci16_le, ci8, to opptak med annotasjoner, en ikke-null første sample_start) som craten dekoder bitidentisk med identiske core-felt, og leser craten sine opptak tilbake bitidentisk; metadataskjemaet for SigMF v1.2.6 rapporterer null feil på cratens metadata. Toleransene ble fastsatt før den første sammenligningen. Utenfor kravet: spectrum::synthesise_iq og sammenligningene av [iq] og [recording] med modellen (en syntese har ikke ett eneste riktig svar; en periodisk chirp viser linjer, Fresnel-rippel og kanthaler som den glatte modellen utelater, total effekt innenfor 2 %), konvensjonen for skalering fra heltall til flyttall (craten dividerer med 32767 og 127, sigmf-pythons autoscale med 2^15 og 2^7, noe spesifikasjonen lar stå åpent; sammenligningen bruker rå koder), flerkanalsopptak og de datatypene leseren avviser
Tester
sigmf::tests (cf32_round_trip_is_exact_to_single_precision; ci16_round_trip_is_within_half_a_code; ci16_is_little_endian_i_then_q; integer_encoding_counts_saturation; metadata_uses_the_core_namespace…
ValidertPlanetposisjoner gjennom hele solsystemet fra Keplers baneelementer fra JPL (Standish)ephem (standish_state, standish_elements, standish_nominal_error, ecliptic_to_icrf); ephem_provider (AnalyticSolarSystem); solar_system (SolarSystemScenario)
Funksjon
Heliosentriske posisjoner for Merkur, Venus, jord-måne-barysenteret, jorden, Mars, Jupiter og Saturn fra Standish tabell 1 (1800 e.Kr. til 2050 e.Kr.), og for alle åtte planetene fra tabell 2a/2b (3000 f.Kr. til 3000 e.Kr., med middelanomalitermene b, c, s, f), etter algoritmen på JPL-siden trinn for trinn og rotert til ICRF (International Celestial Reference Frame) med sidens skråstilling; jorden skilles fra barysenteret med månerekken til Montenbruck & Gill og massforholdet. Sammensatt som ephem_provider::AnalyticSolarSystem slik at et hvilket som helst legeme er tilgjengelig relativt til et hvilket som helst annet, og kjørbar som solar-system-typen
Uavhengig referanse
JPL Horizons DE441 geometriske heliosentriske vektorer (ekliptikk og ICRF), hentet etter at forhåndsregistreringene 80451866, 8d38a28b og 558cc807 var committet. Terskel: per planet og komponent RMS på høyst 1.0x de omtrentlige feilene i Explanatory Supplement 3. utg. tabell 8.10.1 (EMB-raden for jorden); delingen mellom jorden og EMB kontrolleres direkte mot DE441 399 minus 3, høyst 0,3 grader og 8,1 km ved hver epoke 1950-2050 (lengdeterskelen på 8,1 km kommer fra nøyaktigheten til månerekken oppgitt i Kshanas egen efemeridedokumentasjon, med henvisning til Montenbruck og Gill, og ble ikke kontrollert mot boken; den målte verdien 6,09 km ligger nær den). RMS-statistikken ble valgt med viten om at en tidligere sammenligning med 27 epoker nådde 1.87x nominelt ved maksimum; enkeltepokefeil når 3.83x (3.87x i ICRF-tilfellet). Supplementet definerer ikke sine tall som RMS. Tilfelle B roterer begge sider med IAU 1976-skråstillingen skrevet inn i testen, slik at rotasjonen ikke kontrolleres mot seg selv. Standardtabellvalget i AnalyticSolarSystem er ikke utprøvd (testene tvinger tabell 1). Uranus og Neptun fra tabell 1 er en egen MODELLED-rad
Tester
tests/solar_system_standish_preregistered.rs::standish_rms_errors_are_within_explanatory_supplement_table_8_10_1 (barysentre 1800-2050 fra tabell 1 og 3000 f.Kr.-3000 e.Kr. fra tabell 2, 8908 og 21857 epoker, verste RMS…
ValidertPosisjoner for Solen, Månen, Merkur og Venus fra DE440-kjernen ved UTC-epoker (KernelEphemeris)ephem_provider (KernelEphemeris::relative_position_utc, utc_to_tdb_jd2); naif_kernel; timescales
Funksjon
Geometriske posisjoner for Solen, Merkur, Venus, jorden og Månen i forhold til hverandre (J2000/ICRF-akser, meter) fra en JPL DE440-kjerne gjennom ephem_provider::KernelEphemeris ved UTC-epoker: legemsnavn avbildet til NAIF-koder, UTC ført gjennom skuddsekundtabellen og TT til TDB med TDB-TT-rekken med to ledd, kjernen lest av motorens egen leser. Et legeme kjernen bare har som systembarysenter (Mars til Neptun, Pluto i de440s) avvises og erstattes aldri. Standish-raden uten kjerne forblir nettleser- og reservestien
Uavhengig referanse
Skyfield 1,54 (MIT), med sin egen skuddsekundtabell, sin egen TDB-TT og sin egen leser av den samme NAIF de440s.bsp (jplephem), kjørt som et eget program ved UTC-epoker. Forhåndsregistrert (0bfafe6d) før testdataene fantes, med rutenettet sådd fra hashen til den committen, med en terskel på 5e-5 s ganger relativ hastighet (motorens oppgitte TDB-TT-nøyaktighet med to ledd) pluss 1e-13 av barysentrisk avstand pluss 1e-5 m, per komponent. Resultat: alle 600 innenfor, verste 0,66 av terskelen (2,96 m på et raskt par, TDB-TT-rekkens egen feil). Mutasjon: TT brukt som TDB feiler ved 33 ganger terskelen. Begge sider leser DE440: dette validerer leverandøren og dens tidskjede, ikke DE440. Utenfor kravet: planetene bortenfor Venus som legemer (de440s har bare barysentrene deres), planetmånene, og presisjon under TDB-TT-rekken med to ledd (noen få meter for de raskeste parene)
Tester
tests/kernel_ephemeris_skyfield_oracle.rs::kernel_ephemeris_matches_skyfield_at_utc_epochs (600 posisjoner ved 200 UTC-epoker 1973-2026 trukket fra forhåndsregistreringens hash; verste 0,66 av terskelen, 2,96 m)…
ValidertLystid mellom legemer i solsystemetradiometric (light_time_solution, two_way_range, shapiro_delay); solar_system (link, link_on); ephem_provider (AnalyticSolarSystem)
Funksjon
Den newtonske enveis lystiden fra et hvilket som helst legeme til et hvilket som helst annet, mottatt ved en epoke, løst av den radiometriske fastpunkt-løseren for lystid (radiometric::light_time_solution, sender ved sin forsinkede posisjon) gjennom solar_system::link_on på en vilkårlig EphemerisProvider; solar-system-typen kjører den på det analytiske solsystemet i heliosentrisk system (solar_system::link). Tovegsavstanden fra radiometric::two_way_range og Shapiro-forsinkelsen fra Solen fra radiometric::shapiro_delay rapporteres hver for seg og sammenlignes ikke eksternt. Sendt ut for hvert legeme mot en observatør og for en ekstra link av solar-system-typen, og for nedlinken fra legeme til jorden av body-pnt-typen
Uavhengig referanse
JPL Horizons DE441 newtonsk enveis lystid på nedlegget LT (VEC_CORR=LT, observatør jordsenteret), forhåndsregistrert (480037d3, endring 54d5c86f som bare endret avstanden mellom interpolasjonsnodene etter at det første uttrekket sviktet forutsetningen om 10 m interpolasjonspresisjon, før noen lystid ble sammenlignet) med en terskel på 1e-6 s per lystid, løseren matet med barysentriske DE441-posisjoner slik at iterasjonen med forsinket sender er synlig (en løser med første iterat bommer med opptil 0,1 s). På de analytiske Standish-posisjonene er lystiden bare så god som disse posisjonene (se raden om planetposisjoner); den leverte linken behandler Solen som et treghetssenter, noe som holder seg innenfor den posisjonsfeilen men ikke er validert separat. two_way_range og shapiro_delay sammenlignes ikke eksternt
Tester
tests/solar_system_light_time_solver_preregistered.rs::light_time_solver_on_de441_positions_matches_horizons_lt_within_1e_6_s (barysentrene til Merkur, Venus, Mars, Jupiter og Saturn, Solen og Månen til jorden…
ModellertUranus og Neptun fra Standish tabell 1, Pluto og planetenes hastigheterephem (standish_state, StandishElements::state_at_mean_anomaly, Planet::Pluto); solar_system (position_label)
Funksjon
Posisjoner for Uranus og Neptun fra Standish tabell 1 (standard innenfor 1800 e.Kr. til 2050 e.Kr.), Pluto fra raden i tabell 1 fra 1992 som den gjeldende JPL-siden ikke lenger oppfører, og den heliosentriske hastigheten til hver planet: den todelte deriverte med middelbevegelsen elementene gir, pluss dreiningen av ellipsen fra endringsratene til perihel, inklinasjon og node
Uavhengig referanse
Målt mot JPL Horizons DE441 (de samme committede testdataene), men ikke validert: de oppgitte tallene i tabell 1 for Uranus og Neptun overskrides med opptil 2,0 og 5,2 ganger mot heliosentriske DE441-posisjoner (Neptun holder dem mot barysentriske posisjoner, noe som tyder på at tilpasningen ikke var heliosentrisk), siden oppgir ingen feil for Pluto, og det finnes ingen publisert grense for hastighetene. Tabell 2a/2b holder sine egne tall for Uranus og Neptun og dekkes av den validerte raden
Tester
tests/solar_system_horizons_reference.rs (standish_table1_uranus_and_neptune_exceed_the_nominal_error: festet på 2,04 og 5,16 ganger den nominelle lengdegradsfeilen, under seks ganger…
ModellertPosisjoner for Månen og sju store måner (Phobos, Deimos, de galileiske månene, Titan)ephem (satellite_state, Satellite, SatelliteMethod, moon_icrf, moon_icrf_velocity); ephem_provider (AnalyticSolarSystem)
Funksjon
Den geosentriske Månen fra rekken til Montenbruck & Gill (hvis ledd på -1.3972 grader per århundre allerede viser den til J2000-jevndøgnet), og planetosentriske posisjoner og hastigheter for Phobos, Deimos, Io, Europa, Ganymede og Callisto fra JPL Solar System Dynamics sine middelelementer i hver månes Laplace-plan med middellengderaten hentet fra den IAU-synkrone rotasjonsraten (tabellen oppgir perioden med for få siffer til å holde fasen), og for Titan fra IAU-rotasjonsmodellen (månen på minus den legemsfaste x-aksen ved middelavstand), fordi Titans trykte Laplace-planrad ikke gjengir Horizons selv ved sin egen epoke
Uavhengig referanse
Målt mot JPL Horizons satellittefemerider (DE441, MAR099, JUP365, SAT441) committet i tests/fixtures/solar_system/horizons_satellites_icrf.csv med spørringen og hentedatoen; det finnes ingen publisert nøyaktighet for middelelementer eller for plasseringen fra rotasjonsmodellen, så de fastlåste tersklene fanger regresjoner og validerer ikke. Middelelementene utelater de resonante og solare forstyrrelsene, og Phobos' sekulære akselerasjon er ikke modellert
Tester
tests/solar_system_horizons_reference.rs (moons_track_horizons_to_the_measured_angles: verste vinkelfeil sett fra planeten over 2000 til 2040, Phobos 5,65 grader, Deimos 0,38, Io 0,40, Europa 1,63, Ganymedes 0,22…
ModellertFysiske konstanter for hvert legeme i solsystemet og rapporten for hele systemetbody (Body::by_name, Body::facts, Body::prime_meridian, SOLAR_SYSTEM, BodyFacts); solar_system (SolarSystemScenario, position_label)
Funksjon
Body får Merkur, Venus, Jupiter, Saturn, Uranus, Neptun, Pluto, Phobos, Deimos, Io, Europa, Ganymede, Callisto og Titan (gravitasjonsparameter, referanseradius, J2 der den er publisert med radiusen den refererer til, IAU-pol og nullmeridian), et navneoppslag og en BodyFacts-post (NAIF-kode, klasse, overordnet legeme, ekvatorial radius og middelradius); solar-system-typen rapporterer dem for alle atten legemer sammen med posisjoner, lystider og et banespor over ett omløp, der hvert legeme er merket VALIDATED eller MODELLED
Uavhengig referanse
Transkripsjon av publiserte konstanter, hver sitert der den er definert: gravitasjonsparametere fra JPL Horizons sine legemesposter og JPLs tabell over fysiske satellittparametere, radier fra JPLs tabeller over fysiske parametere (IAU WGCCRE 2015), poler og nullmeridianer fra IAU Working Group on Cartographic Coordinates and Rotational Elements (middelverdier, uten T-rate og periodiske ledd), J2 fra Smith m.fl. 2012, Iess m.fl. 2018 og 2019, og Jacobson 2009 og 2014. Kontrollert for intern konsistens (Jupiters rotasjonsperiode mot System III-raten, hver J2 mot sin referanseradius), ikke mot en ekstern uavhengig referanse. 0,30 runde 2: GM-verdiene ble overtatt fra gm_de440 og elementene for Phobos og Deimos fra pck00011, slik at 0 av 84 konstanter for de fjorten tilføyde legemene nå avviker fra NAIF (var 12), noe som er en transkripsjonskontroll og ikke telles. 0,36: den IAU-legemsfaste orienteringen og GM for de fjorten tilføyde legemene er skilt ut til sin egen VALIDATED-rad ("IAU body orientation and gravitational parameter of the fourteen added solar-system bodies"); denne raden beholder det som er igjen. J2 og middelradius er sitert, ikke validert; posisjonene i rapporten hviler på sine egne rader; og rapportens prime_meridian_deg for jorden, Månen og Mars forblir på konvensjonelle konstanter (opptil 6.6e-3, 2.8e-2 og 9.6e-4 rad fra IAU_<BODY>). Revisjoner i 0,30: Phobos GM 7.087e5 -> 7.087546066894452e5, Deimos 9.62e4 -> 9.615569648120313e4, Uranus 5.7939506103e15 -> 5.793951256527211e15, Neptun 6.83509997e15 -> 6.835103145462294e15, Pluto 8.69326e11 -> 8.696138177608748e11 m³/s²; Phobos ekvatorialradius 13,1 -> 13,0 km; prime_meridian_deg inneholder nå de kvadratiske og periodiske leddene
Tester
body::tests (every_catalogue_body_resolves_by_name_and_carries_its_record; a_zonal_field_is_referenced_to_its_sources_radius; retrograde_rotators_have_negative_rates_and_periods_match_the_iau_rate); solar_system::tests…
ValidertIAU-orientering og gravitasjonsparameter for de fjorten tilføyde legemene i solsystemetbody (Body::iau_rotation_et, Body::iau_angles_et, Body)
Funksjon
Body::iau_rotation_et, rotasjonen fra J2000 til det IAU-legemsfaste systemet for Merkur, Venus, Jupiter, Saturn, Uranus, Neptun, Pluto, Phobos, Deimos, Io, Europa, Ganymede, Callisto og Titan med hver århundrerate, kvadratisk ledd og periodiske ledd legemet har i pck00011, og gravitasjonsparameterfeltet mu for de samme fjorten legemene. Solen, jorden, Månen og Mars har konvensjonelle konstanter som eies av andre rader og dekkes ikke
Uavhengig referanse
NAIF SPICE Toolkit (CSPICE N0067 gjennom spiceypy) pxform('J2000', 'IAU_<BODY>') på pck00011.tpc, en uavhengig implementasjon av den samme IAU-rotasjonsmodellen, og NAIF gm_de440.tpc for GM, med testdata generert av et eget program som ikke kaller noen Kshana-kode (tests/fixtures/body_orientation_spice_oracle/, NOTICE.md). Forhåndsregistrert 154bc54 (med den opprinnelige terskelen på 1e-9 rad fra c2434204) før testdataene med ny epoke fantes; de nye testdataene ble generert på nytt uavhengig og er byte-identiske. GM er en transkripsjon av DE440 kontrollert mot den publiserte filen, ikke en uavhengig bestemmelse av GM. Resultater: docs/design/evidence/mr08-body-orientation/RESULTS.md
Tester
tests/body_orientation_spice_oracle.rs::orientation_matches_spice_pxform_for_the_fourteen_added_bodies (41 epoker 1955 til 2044, 574 matriser innenfor 1e-9 rad, verste Phobos 1.43e-10 rad)…
ModellertPosisjonering rundt et hvilket som helst legeme i solsystemet med en lokal konstellasjon og en dypromslink fra jordenbody_pnt (BodyPntScenario, formal_sigma, fix_error); orbit (dop); batch_ls (gauss_newton); mars_pnt (chord_clears_sphere); mars_frame (bodyfixed_to_inertial)
Funksjon
body-pnt-typen: en orbiter eller en landingsfarkost på overflaten rundt et legeme valgt ved navn navigerer med enveis pseudoavstander fra en Walker-navigasjonskonstellasjon rundt legemet (todelte baner med legemets sekulære J2-drift, en ukjent brukerklokke) og en valgfri klokkefri tovegsavstand fra jorden, med jordens retning og avstand fra den analytiske efemeriden ved hver epoke; siktlinjer blokkert av legemets kule og en elevasjonsmaske på overflaten; per epoke GDOP og PDOP for konstellasjonen alene (orbit::dop), den formelle posisjonsusikkerheten med og uten jordraden, og sådde Gauss-Newton-posisjonsbestemmelser (batch_ls::gauss_newton) for hver variant, med lystiden og rundturen fra legemet til jorden
Uavhengig referanse
Lukkede former og selvkonsistens: Keplers tredje lov for relébanens periode, banens radius og overflateradiusen holdt over kjøringen, at tillegg av en måling aldri øker den formelle usikkerheten, og at de sådde feilene stemmer med kovariansen. Relébanene ser bort fra tredjelegemer (Jupiters trekk på reléer rundt Europa er ikke modellert), støyen er gaussisk på oppgitte nivåer og målemodellen er øyeblikkelig, så dette er ikke validert mot navigasjonsdata fra noe oppdrag
Tester
body_pnt::tests (relay_period_is_keplers_third_law_for_the_body; an_orbiter_keeps_its_radius_and_a_lander_sits_on_the_surface; the_earth_range_never_worsens_the_formal_uncertainty…
ValidertGeometri for Walker-konstellasjoner og de publiserte nominelle posisjonene for GPS, Galileo og GLONASSconstellation (WalkerSpec::elements, gps_slots, galileo_walker, glonass_slots, GPS_BASELINE_SLOTS, GPS_EXPANDABLE_SLOTS)
Funksjon
Generatorene til constellation-design-typen: Walker delta- og stjernemønstre i T/P/F-konvensjonen (nodeavstand 360/P eller 180/P, avstand i planet 360·P/T, faseforskyvning mellom plan 360·F/T), og GPS-grunnkonstellasjonen og den utvidbare med 24 posisjoner, Galileo- og GLONASS-forhåndsinnstillinger bygget fra deres publiserte nominelle elementer, plassert i et jordfast system med Greenwich-timevinkelen dokumentene deres oppgir
Uavhengig referanse
Publiserte byrådokumenter: Galileo Open Service Service Definition Document utgave 1,1 (European GNSS Service Centre) tabell 1 og 23, referansekonstellasjonen 2016-11-21 00:00 UTC; GLONASS Interface Control Document utgave 5,1 (2008) avsnitt 5,2, formelen for posisjonene til nodelengde og breddeargument; GPS Standard Positioning Service Performance Standard 5. utgave (april 2020) tabell 3.2-1, 3.2-2 og 3.2-3, inkludert kolonnen for ekvatorkryssing av bakkesporet, som er en uavhengig angivelse av den jordfaste geometrien forhåndsinnstillingen må gjengi. Validerer generatorene og transkripsjonen; BeiDous faser i middels bane og noder i skråstilt geosynkron bane er ikke publisert og dekkes ikke
Tester
constellation::tests::walker_24_3_1_reproduces_galileo_os_sdd_table_23 (alle 24 RAAN- og middelanomalirader til 1e-9 grader); constellation::tests::glonass_icd_slot_formula_is_a_walker_24_3_1 (ICD-sporformelen og en…
ValidertGlobal fortynning av presisjon for GPS-grunnkonstellasjonenconstellation (coverage, dop_at, NormalAccum)
Funksjon
Dekningsmotoren til constellation-design på GPS-grunnkonstellasjonen med 24 posisjoner under vilkårene i vedlegg B til GPS Standard Positioning Service Performance Standard (SPS PS) (ett siderisk døgn, 287 trinn på fem minutter, et globalt rutenett på 4 x 4 grader vektet med cosinus til breddegraden, alle i sikte, maske på 5 grader, én mottakerklokke): den globale HDOP-fordelingen, PDOP-medianen og tilgjengeligheten med PDOP på høyst 6, globalt og på det verste stedet
Uavhengig referanse
GPS SPS PS 5. utgave (april 2020) vedlegg B avsnitt B.3.2.2 og B.3.2.3, den publiserte globale gjennomsnittlige HDOP-fordelingen for den fullt besatte grunnkonstellasjonen med 24 posisjoner (median 0,94, 90 % 1,16, 95 % 1,25, 98 % 1,37, gjennomsnitt 0,96), tabell 3.8-1 (PDOP-tilgjengelighet) og tabell B.3-1 (ensemble-PDOP for en degradert konstellasjon, brukt bare som øvre grense), pluss en håndutledet lukket form for én epoke. VDOP- og PDOP-fordelingene for hele konstellasjonen er publisert bare som en figur, så PDOP er fastlåst ensidig; det verste tid-rom-punktet (HDOP 2,40 og VDOP 5,22 her, 2,49 og 5,43 publisert) avhenger av rutenettet og rapporteres, ikke fastlåst
Tester
constellation::tests::gps_baseline_global_dop_matches_the_sps_performance_standard (HDOP-median 0,940, 90 % 1,165, 95 % 1,255, 98 % 1,370, middel 0,965 mot 0,94, 1,16, 1,25, 1,37 og 0,96, terskel 0,03 på hver fastsatte…
ModellertDekning og kart over fortynning av presisjon for vilkårlige konstellasjonsutforminger med flere konstellasjoner i stor skala, rundt et hvilket som helst sentrallegemeconstellation (coverage, ConstellationDesignScenario, beidou_slots, body_by_name)
Funksjon
constellation-design-typen utover de to fastlåste tilfellene: eksplisitte utforminger og utforminger med flere skall, flere konstellasjoner per kjøring med én mottakerklokke per konstellasjon, jorden, Månen og Mars fra legemekonstantene, BeiDou-forhåndsinnstillingen (fase i middels bane og kryssing ved 118 grader Ø i skråstilt geosynkron bane modellert), satellitter i sikte per celle, GDOP, PDOP, HDOP, VDOP og tilgjengelighet, nedsamplede bakkespor, og et forhåndsfilter for synlighet etter undersatellittens breddegrad som kjører en utforming med 5 000 satellitter på et 10-graders rutenett på en brøkdel av et sekund
Uavhengig referanse
Intern konsistens: brute-force-skanningen av elevasjon, de håndberegnede reduksjonene og reduksjonene mot orbit::dop, og den lukkede Walker-geometrien og geosynkrone geometrien. Todelte baner med valgfri sekulær J2, et sfærisk legeme med lokal vertikal langs radien, bare geometrisk synlighet (ingen signaleffekt, satellittens helsetilstand, terreng eller tredjelegemeforstyrrelse), og den relative fasen mellom systemer tatt fra ulike referanseepoker, så den er ikke et øyeblikksbilde av noen dato. Gjennomgang i 0,30, et funn (forblir MODELLED): forhåndsinnstillingene når de publiserte ensidige gulvene for DOP-tilgjengelighet (BeiDou OS Performance Standard 3,0, Galileo OS SDD) ved 100 %, men med motorens PDOP doblet i en kladdekopi når de dem fortsatt (verste punkt 99,36 %), så gulvene kan ikke oppdage selv en feil på 100 % i størrelsen denne raden beregner; å stramme dem inn etter kjøringen ville være en toleranse satt i etterkant. Opprykk krever en tosidig sammenligning av DOP-verdier på identisk geometri med en toleranse satt på forhånd. 0,30 runde 2 (tests/coverage_dop_full_oracle.rs, forhåndsregistrert add671d6), et funn (forblir MODELLED): Orekit 12,2 posisjoner, elevasjon, asimut og bakkespor med gnss_lib_py 1.0.4 GDOP/PDOP/HDOP/VDOP (felles klokke) og en numpy-invers (én klokke per konstellasjon) stemmer på hver terskel for Galileo, GPS, BeiDou, Galileo+GPS (én klokke hver) og en Jord-utforming med 1584 satellitter (DOP innenfor 2e-14 relativt, identisk posisjonsbestemmelse, tilgjengelighet og synlighetsantall). På utformingene for Månen og Mars stemmer elementer, posisjoner, synlighet og spor, men DOP overskrider den forhåndsfastsatte relative terskelen på 1e-9 i celler der største PDOP er 1434 eller mer (opptil 8e-6), og 4 celler avviker med én posisjonsbestemmelsesepoke på numerisk singulær geometri (motorens pivot 1e-10 mot numpy-rang), så raden er ikke validert. Revisjoner i 0,30: TDOP/GDOP-referanseklokken er nå konstellasjonen med lavest nummer i sikte (constellation-multi-gnss-coverage global GDOP maks 2,2236 -> 2,1205, gjennomsnitt 1,122 -> 1,131), og antall synlige per konstellasjon summeres som heltall
Tester
constellation::tests (prefilter_matches_brute_force_exactly — hvert kart og hver teller er lik en skanning med den direkte elevasjonstesten; five_thousand_satellites_on_a_coarse_grid — 5 000 satellitter, skriver ut kjøretiden og…
ModellertEt lenket oppdrag på tvers av scenariotyper på én felles tidslinjecampaign (run_campaign_detailed, run_chain, presets, extract, to_svg)
Funksjon
Fasene til campaign-typen: hver fase kjører ett eller flere scenarioer av eksisterende typer gjennom run_toml, leser utdataene deres inn i navngitte kanaler (klokkens tidsfeil og vakt, gjennomsnittlig effektivt forhold mellom bærebølge og støytetthet og sporingsgulv, vertikalt beskyttelsesnivå og alarmgrense, posisjonsfeil, satellitter som spores, alarmflagg) med forhåndsinnstillinger per type eller eksplisitte resultatstier, plasserer dem ved fasestart og holder dem ut på et felles rutenett, med fasegrenser og hendelser; tilstand føres videre med carry (en kanal fortsetter fra sluttverdien i forrige fase), handoff (nummeret til en forrige fase skrevet inn i neste scenario) og end_at (en fase slutter på et tidspunkt en kjøring beregnet, for eksempel deteksjonstidspunktet til en spoofing-monitor); en kampanjehash og en digest over hvert medlemsresultat
Uavhengig referanse
Sammensetningsidentiteter mot de frittstående kjøringene av de samme typene: en kampanje med én fase gjengir det frittstående resultatet bit for bit, den videreførte forskyvningen er lik forrige kjørings egen siste sample, og fasen avsluttet av end_at har nøyaktig kjøringens deteksjonstidspunkt som lengde. Den additive videreføringen over en fasegrense og nullte ordens hold er modelleringsvalg, og hver fase er like god som typen som kjørte den; ingen lenket oppdrag er kontrollert mot et målt oppdrag
Tester
tests/campaign_composition_reference.rs (a_one_phase_clock_campaign_reproduces_the_standalone_run_bit_for_bit, a_one_phase_integrity_campaign_reproduces_the_standalone_run_bit_for_bit…
ModellertParametersveip og sådde Monte Carlo-ensembler over en hvilken som helst scenariotypecampaign (run_sweep, run_monte_carlo, ensemble); sweep (GenericAxis, coords_of, set_dotted_value); inertial (metric_stat)
Funksjon
Sveipet til campaign-typen (én til tre punktnotasjonsnøkler av en hvilken som helst type, på det generiske sveipets akseverdier, eventuelt med et ensemble i hver node) og monte_carlo-seksjonene: realisasjon k kjører ved base_seed + k; hver metrikk rapporterer gjennomsnitt, standardavvik, persentilene 5./50./95. etter nærmeste rang og et persentil-bootstrap-konfidensintervall med fast seed på 95 % for gjennomsnittet (inertial::metric_stat); metrikkenhetene leses fra den sveipede typens egen enhetsblokk
Uavhengig referanse
Den lukkede formen for fasens tilfeldige gange under hvit frekvensstøy, varians q_wf tau (NIST Technical Note 1337), for statistikkmaskineriet, og byteidentitet med de frittstående kjøringene for såingen. Den kontrollerer ensemblearitmetikken på motorens egen klokkemodell, ikke et eksternt datasett
Tester
tests/campaign_composition_reference.rs (a_fixed_seed_ensemble_is_byte_stable_and_each_realisation_is_the_standalone_run; the_ensemble_mean_and_spread_match_the_white_fm_closed_form — 200 seeds of a…
ModellertFlere scenarioer under felles forhold, med en samlet oppsummeringcampaign (run_compose)
Funksjon
Compose-seksjonen til campaign-typen: navngitte felles verdier (for eksempel effekten og posisjonen til én jammer) skrevet inn i hvert medlem på nøklene det binder dem til, hvert medlem kjørt, og per metrikk den minste, største og gjennomsnittlige verdien på tvers av medlemmene med medlemmet navngitt; metrikkenhetene må stemme på tvers av medlemmene
Uavhengig referanse
Sammensetningsidentitet mot den frittstående kjøringen. Aritmetikken for felles forhold er bokføring; fysikken er medlemstypenes, hver med sin egen rad
Tester
tests/campaign_composition_reference.rs (a_one_node_sweep_and_a_one_member_composition_read_the_standalone_number — en sammensetning med ett medlem leser det frittstående tallet og resultatsammendraget)
ModellertAvgrenset optimalisering av én metrikk over kampanjeparameterecampaign::optimize (run_optimize, nelder_mead)
Funksjon
Optimize-seksjonen til campaign-typen (CAP-32): én til tre punktnotasjonsnøkler i scenarioet avgrenset til [lo, hi] på lin- eller log-skala, én metrikk lest ved resultatsti, mål minimize, maximize eller target; metode grid (sveipets akseverdier) eller en deterministisk Nelder-Mead-simpleks i normaliserte koordinater med boksprojeksjon og standardkoeffisientene; en manglende eller ikke-endelig metrikk skåres som verst og blir stående i sporet; med runs > 1 er metrikken gjennomsnittet over felles seeds; hver evaluering er en ekte kjøring av den navngitte typen, oppført i trace og telt i reproduserbarhetsdigesten
Uavhengig referanse
Bare internt: den eksakte lukkede formen -20 log10(avstand) av linkligningen, et uavhengig brute-force-rutenett over samme type, og Rosenbrock-funksjonen. Runde 1s 1D-terskel er NOT MET (boksen fastsatt på forhånd utelot løsningen på 3 dB; optimalisereren stoppet ved grensen), registrert i docs/design/evidence/cap32-optimize/RESULTS.md og ikke skåret på nytt. Optimum er lokalt for boksen og startpunktet; ingen påstand om globalt optimum
Tester
tests/campaign_optimize_reference.rs (forhåndsregistrert fbe6c8b3 og, etter en protokollbom i runde 1, 441f31bc: p2_prime_interior_target_range_matches_the_closed_form — 1-D-målløsning innenfor 6.1e-15 av r* = r0 10^((m(r0)…
ValidertBåndbegrensede lukkede former for et hvilket som helst avstandsmålingssignal: effekt i båndet og early-late-kodesporingsjitter mot publiserte verdier, med Gabor-båndbredden og forskjøvet spektral separasjon kryssjekketnavsignal (sine_integral, bpsk_power_in_band_closed_form, bpsk_gabor_bandwidth_closed_form_hz, dll_jitter_bandlimited_s, dll_jitter_small_spacing_limit_s, bpsk_offset_ssc_closed_form, altboc_15_10_psd, parse_modulation)
Funksjon
navsignal: sinusintegralet (sine_integral), BPSK-R-andelen av effekten innenfor et dobbeltsidig bånd i lukket form (bpsk_power_in_band_closed_form), den båndbegrensede BPSK-Gabor-båndbredden i lukket form (bpsk_gabor_bandwidth_closed_form_hz), den båndbegrensede koherente og ikke-koherente early-late-jitteren i delay-lock-loop for et hvilket som helst spektrum med enhetsareal etter Betz & Kolodziejski 2009 (dll_jitter_bandlimited_s) og dens Gabor-grense for forsvinnende avstand (dll_jitter_small_spacing_limit_s), den forskjøvede BPSK-spektrale separasjonskoeffisienten i lukket form (bpsk_offset_ssc_closed_form), Galileo E5 AltBOC(15 10)-spekteret (altboc_15_10_psd) og en parser for modulasjonsetiketter (parse_modulation); brukt av leo-signal-typen for hver signalutforming
Uavhengig referanse
Eksternt fastlåst: 90,3 prosent hovedlobeeffekt, den koherente early-late-jitteren ved det oppgitte driftspunktet, tabellverdiene for sinusintegralet og BPSKs egen spektrale separasjonskoeffisient 2/(3 R_c) ved null forskyvning. Bare interne kryssjekker, ikke ekstern validering: den lukkede formen for båndbegrenset BPSK-Gabor-båndbredde og dens asymptote, og den forskjøvede BPSK-spektrale separasjonskoeffisienten ved forskyvninger ulik null, begge utledet her og kontrollert mot kvadratur. Publiserte lukkede former: BPSK-R sinc-kvadrat-spekteret og dets 90 prosent hovedlobeeffekt (Kaplan & Hegarty, Understanding GPS/GNSS, 3. utg.); den koherente early-late-kodesporingsjitteren sigma^2 = B_L d / (2 C/N0) chips^2 (Kaplan & Hegarty, avsnitt 8) og den båndbegrensede generaliseringen med dens Gabor-båndbreddegrense (Betz & Kolodziejski, Generalized Theory of Code Tracking with an Early-Late Discriminator, Part I, IEEE Transactions on Aerospace and Electronic Systems 45(4), 2009); sinusintegraltabellene til Abramowitz & Stegun (tabell 5,1); den spektrale separasjonskoeffisienten som Fourier-transformasjonen av den kvadrerte autokorrelasjonen (Betz 2001). AltBOC-spekteret er kontrollert bare for enhetsareal og loboposisjon (uttrykket i Galileo Open Service Signal-in-Space Interface Control Document integrerer til 8 og dividerer med det).
Tester
navsignal::band_limited_tests (sine_integral_matches_tables_and_its_limit — Si(1), Si(pi), Si(2 pi) til 1e-12; bpsk_power_in_band_closed_form_matches_textbook_and_numeric — 0,9028 av effekten i hovedloben for…
ValidertMaksimal Doppler for en navigasjonssatellitt i lav jordbane, som dimensjonerer akkvisisjonssøketleo_signal (max_doppler_hz)
Funksjon
leo_signal::max_doppler_hz: den største satellitt-Doppleren på en overflyvning rett overhead ved elevasjonsmasken for en sirkulær bane, v R_E cos(el) / (R_E + h) ganger f / c, fra hver forhåndsinnstillings egen bærebølge og banehøyde; leo-signal-typen legger til oscillator- og brukerledd og gjør den om til Doppler-binger
Uavhengig referanse
Publiserte tall: Xona Pulsar X1 maksimal Doppler 32 til 34 kHz (Leclère, Marathe & Reid, ION GNSS+ 2025, https://arxiv.org/abs/2509.19551); Iridium-Doppler opp til +/-36 kHz (Resilient Navigation and Timing Foundation, Recent PNT Improvements and Test Results Based on Low Earth Orbit Satellites). Jordens rotasjon er utelatt, noe som flytter tallet med opptil omtrent 2,3 kHz; begge de publiserte tallene er nådd uten den.
Tester
leo_signal::tests::max_doppler_matches_published_xona_and_iridium_figures — Xona Pulsar X1 (1593.3225 MHz, 1080 km) 33.2 kHz inside the published 32 to 34 kHz; Iridium (1621 MHz, 780 km) within 0.5 kHz of the published…
ModellertSignalutforminger for posisjonering, navigasjon og tidssynkronisering i lav jordbane: kodesporing, akkvisisjon, GNSS-kompatibilitet og en båndavveining for et hvilket som helst systemleo_signal (LeoSignalScenario, SignalDesign, Component, Shape, code_jitter_m, gabor_bandwidth_hz, detection_probability, threshold_for_pfa, mean_acquisition_time_s, ssc_leo_into_gnss, ssc_gnss_into_leo, jammer_tolerance, gnss_victim, preset, public_signal)
Funksjon
leo-signal-typen: parametriserte signalutforminger (bånd, senderbåndbredde, ITU-tildeling; akkvisisjons-, data- og pilotkomponenter med BPSK(n), BOC(m,n), MBOC eller flate spektre, effektandeler, FDMA-underbærebølger, kodelengder og datarater) fra innkompilerte offentlige forhåndsinnstillingsfiler (Xona Pulsar, Iridium STL, Starlink-signal av anledning, CentiSpace, en generisk C-bånd-utforming og generiske UHF/L/S/C/bredt-C-utforminger, hver med sin kilde-URL og upubliserte verdier merket REPRESENTATIVE) eller skrevet inline; per signal den båndbegrensede effekttettheten, andeler av effekten i båndet, Gabor-båndbredde, kodejitter mot C/N0 og avstand og avstandsmålingsnøyaktigheten, akkvisisjonssøkerommet, deteksjonssannsynlighet med kvadratisk lov og gjennomsnittlig serielle og kodeparallelle akkvisisjonstid, den spektrale separasjonskoeffisienten inn i og ut fra GPS L1 C/A, Galileo E1, GPS L5, Galileo E5a, E5b og AltBOC med C/N0-degraderingen, og CW-, bredbånds- og tilpasset J/S-toleranse fra SSC-kjeden til spectrum-typen; en båndavveining av ionosfæreforsinkelse, friromstap, avstandsmålingsnøyaktighet ved lik C/N0 og lik EIRP og jammertoleranse; og kvalitative formkontroller av en utforming mot en beskrevet måling
Uavhengig referanse
De validerte lukkede formene i de to radene ovenfor, identiteten for falsk alarm med kvadratisk lov P_d(snr = 0) = P_fa og Holmes' gjennomsnittlige akkvisisjonstid, og reduksjon til spectrum-typens egen SSC-kjede (den samme Jammer::ssc-koden). Utformingene selv er inndata: forhåndsinnstillinger merket REPRESENTATIVE eller WORKSHOP er ikke publiserte spesifikasjoner, forbedrede Feher-QPSK-, kodeskiftnøkling- og OFDM-spektre er tilnærmet, og formkontrollene sammenligner former, ikke kalibrerte nivåer.
Tester
leo_signal::tests (every_public_preset_parses_and_cites_a_url; detector_reduces_to_pfa_and_grows_with_snr; detection_probability_with_several_looks_matches_the_noncentral_chi_square…
ModellertFlerbånds vannfallsdiagram (UHF, L, S, C) med utformede signaler og jammere per båndspectrum (Band::unit_psd, Band::tracked_power_dbw, BandDesign, BandCfg, PanelCfg, SpectrumScenario, Waveform, multi_band_svg); leo_signal (SignalDesign::to_spectrum_band)
Funksjon
spectrum-typen utvidet utover L-båndet: bånd gitt som en forhåndsinnstilt signalutforming (tegnet med hver komponent, båndbegrenset til senderbåndbredden, C/N0 og J/S referert til den sporede komponenten) eller som en egendefinert bærebølge og modulasjon; ekstra vannfallspaneler over et vilkårlig frekvensområde på samme tidslinje og fargeskala; en bredbånds (barrage) jammer ved siden av CW, smalbånd, chirp og tilpasset støy; J/S per bånd og effektiv C/N0 fra den uendrede kjeden for spektral separasjonskoeffisient
Uavhengig referanse
Reduksjon til den eksisterende spektrumkjeden og anti-jam-ligningen til jamming-typen (et bånd med én komponent gir de samme tallene som før utvidelsen) og signalspektrene i de validerte radene. Jammereffektene, tidslinjen, båndbreddene i frontenden og de utformede signalene er inndata, og et utformet signal avkortes ved senderbåndet (ingen utstråling utenfor båndet).
Tester
tests/leo_signal_reference.rs (flerbånds-fossefallet kjører med fire paneler, UHF-, L5-bånd-, S- og C-jammerne nekter hver bare sitt eget bånd, og en kjøring med vanlig bånd er uendret av utvidelsen)…
ValidertSpesifikke regndempingskoeffisienter for et hvilket som helst bånd en LEO-PNT-link brukerleo_link::itu (p838_coefficients, p838_k_alpha, rain_specific_attenuation_db_km)
Funksjon
ITU-R (International Telecommunication Union, Radiocommunication Sector) P.838-3 ligning (1) til (5): k_H, alpha_H, k_V, alpha_V fra kurvetilpasningene i tabell 1 til 4, de sti- og polarisasjonsavhengige (k, alpha) og den spesifikke dempingen k R^alpha; brukt av regnleddet til leo-pass-typen
Uavhengig referanse
ITU-R P.838-3 (03/2005) tabell 5, anbefalingens egne tabulerte k_H, alpha_H, k_V, alpha_V, committet i tests/fixtures/leo_link/p838_3_table5.csv med PDF-URL-en og hentedatoen. Tabellen er avrundet til sine trykte siffer, så terskelen er den avrundingen
Tester
tests/leo_link_reference.rs (p838_coefficients_reproduce_table5_to_its_printed_digits: alle 115 rader i tabell 5, 1 GHz til 1000 GHz, hver koeffisient innenfor 0,6 av sitt siste trykte siffer; verste observerte 0,51)
ValidertLangtids regndemping langs skråsti på en jord-rom-linkleo_link::itu (p618_rain_attenuation_db, RainPath)
Funksjon
ITU-R P.618-14 avsnitt 2.2.1.1 trinn 2 til 10 (skrå og horisontal sti under regnhøyden, horisontal reduksjon og vertikale justeringsfaktorer, A0.01 og dens skalering til 0,001 % til 5 % av et gjennomsnittsår), med regnhøyden (P.839) og R0.01 (P.837) som inndata fordi motoren ikke har noen av de digitale kartene; anvendt per bånd og epoke av leo-pass-typen
Uavhengig referanse
ITU-R Study Group 3 valideringseksempelfil CG-3M3J-13-ValEx-Rev8.3.0 for P.618-14, slik den er tabulert av valideringssidene til ITU-Rpy, med hvert steds P.839-4-regnhøyde fra de samme eksemplene; committet i tests/fixtures/leo_link/p618_14_rain_attenuation.csv med URL-ene og hentedatoen. Validerer prosedyren gitt h_R og R0.01, ikke kartene
Tester
tests/leo_link_reference.rs (p618_rain_attenuation_matches_the_itu_validation_examples: 56 tilfeller på fem steder, 14,25 og 29 GHz, 0,001 % til 1 %, innenfor 1e-4 dB; observert 5e-6 dB)
ValidertTroposfærisk amplitudescintillasjon på en jord-rom-linkleo_link::itu (p618_scintillation_db, wet_refractivity, ScintillationPath)
Funksjon
ITU-R P.618-14 avsnitt 2.4.1 trinn 3 til 9 (referansesigma fra N_wet, effektiv stilengde, antenneforhold for midling, fadingdybde for 0,01 % til 50 % av tiden), med N_wet som inndata eller beregnet fra temperatur, fuktighet og trykk med uttrykkene i ITU-R P.453-14; under 4 GHz merker leo-pass-typen verdien som en ekstrapolering
Uavhengig referanse
ITU-R Study Group 3 valideringseksempler (CG-3M3J-13-ValEx-Rev8.3.0) for P.618-14-scintillasjon, med hvert steds P.453-14 N_wet fra de samme eksemplene; committet i tests/fixtures/leo_link/p618_14_scintillation.csv med URL-ene og hentedatoen. Uttrykket for våt refraktivitet fra temperatur og fuktighet dekkes ikke av denne raden
Tester
tests/leo_link_reference.rs (p618_scintillation_matches_the_itu_validation_examples: 42 tilfeller på sju steder, 14,25 og 20 GHz, innenfor 1e-5 dB; observert 5e-7 dB)
ValidertBygningsinntrengningstap for en LEO-PNT-bruker innendørsleo_link::itu (p2109_building_entry_loss_db, BuildingClass); detection (normal_inv_cdf)
Funksjon
ITU-R P.2109-2 vedlegg 1 ligning (1) til (10) med tabell 1: tapet som ikke overskrides med sannsynlighet P for tradisjonelle og termisk effektive bygninger ved elevasjonen til stien ved fasaden, 80 MHz til 100 GHz; anvendt per bånd og epoke på en bruker innendørs av leo-pass-typen (UHF-tilfellet innendørs)
Uavhengig referanse
Verdiene i ITU-R Study Group 3 valideringsarbeidsboken for Clutter og BEL, slik de er transkribert i valideringsskriptet til referanseimplementasjonen i MATLAB (github.com/eeveetza/p2109), committet i tests/fixtures/leo_link/p2109_bel.csv med URL-en og hentedatoen. Arbeidsboken skriver ut tre desimaler
Tester
tests/leo_link_reference.rs (p2109_building_entry_loss_matches_the_itu_workbook: 568 verdier, 28 GHz ved 0 grader og 2 GHz ved 45 grader, begge klasser, P fra 1e-7 til 0,998, innenfor 0,001 dB)
ValidertFørsteordens ionosfæreforsinkelse per bånd, den ionosfærefrie kombinasjonen og friromstapleo_link::iono (group_delay_m, iono_free_coefficients, iono_free_noise_amplification); leo_link (fspl_db); linkbudget (free_space_loss_db)
Funksjon
Gruppeforsinkelse 40,3 STEC/f^2 per bånd; de ionosfærefrie koeffisientene f1^2/(f1^2 - f2^2) og -f2^2/(f1^2 - f2^2) og støyforsterkningen sqrt(a1^2 s1^2 + a2^2 s2^2) for et hvilket som helst bånd-par; friromstapet 20 log10(4 pi R f/c) fra linkbudget::free_space_loss_db i sin kilometer-megahertz-form
Uavhengig referanse
IS-GPS-200 avsnitt 20.3.3.3.3.2, som oppgir L1/L2-forholdet for gruppeforsinkelse gamma = (77/60)^2 som følger av førsteordens 1/f^2-skalering, og Friis' overføringsformel (Proc. IRE, 1946). Validerer skaleringslovene, ikke en skrå TEC
Tester
tests/leo_link_reference.rs (first_order_iono_reproduces_the_is_gps_200_group_delay_ratio: gamma = (77/60)^2 to 1e-12, L1/L2 and L1/L5 amplification 2.978 and 2.588…
ValidertMaksimal Doppler en stasjonær bruker ser fra en LEO- eller MEO-baneleo_link::geometry (max_static_user_range_rate, DopplerEnvelope, doppler_hz)
Funksjon
leo_link::geometry::max_static_user_range_rate: et søk over hver baneposisjon og hver bruker ved satellittens horisont i en sirkulær bane, med jorden i rotasjon, etter den største avstandsraten, pluss banehastigheten og den største jordfaste satellitthastigheten; rapportert per bånd som Doppler-omhyllingskurven av leo-pass-typen og brukt som søkevindu for kaldstart i dens lavenergimodell
Uavhengig referanse
Leclere, Marathe og Reid, Insights into Xona Pulsar LEO PNT: Constellation, Signals, and Receiver Design, ION GNSS+ 2025, arXiv 2509,19551, tabell 1 (stasjonær mottaker på en kule med radius 6371 km, jordens rotasjon den eneste andre effekten): 37751,7 / 33628,5 / 31813,4 / 4018,4 Hz på L1. Dekker sirkulære todelte baner
Tester
tests/leo_link_reference.rs (doppler_envelope_reproduces_the_pulsar_paper_table_1: Pulsar IOV 520 km 97 grader, Pulsar FOC polar 1080 km 97 grader, Pulsar FOC skrånende 1080 km 53 grader og GPS 20180 km 55 grader; banehastighet…
ModellertEn LEO-PNT-overflyvning og dens linkbudsjett per bånd mot MEO-GNSS-satellittene i sikteleo_pass (LeoPassScenario); leo_link::geometry (design_pass, link_geometry, numerical_check, SatMotion, UserMotion); leo_link::antenna; leo_link::itu (p676_gaseous_attenuation_db); leo_link (system_noise_temperature_k, cn0_dbhz)
Funksjon
leo-pass-typen: satellitter fra en utformet overflyvning, elementer, en TLE gjennom SGP4 eller en Walker-konstellasjon fra constellation-design; per bånd og epoke siktevinklene, avstand, avstandsrate og avstandsakselerasjon i lukket form (kontrollert ved hver kjøring mot sentrale differanser og rapportert), friromstap, EIRP med isoflux-, gaussisk eller flatt mønster, en patch-, halvkule- eller isotrop brukerantenne, gassdemping etter ITU-R P.676-10 vedlegg 2, P.618-regn og -scintillasjon, P.2109-bygningsinntrengningstap, polarisasjonsmismatch, systemstøytemperatur, C/N0, Doppler og Doppler-rate, og førsteordens forsinkelse fra en Klobuchar- eller vertikal-TEC-skrå TEC skalert med Chapman-andelen under satellitten; ionosfærefrie par med kodestøy ved toppen av overflyvningen; Galileo- eller GPS-bærebølger fra mottatte effekter i grensesnittdokumentene gjennom den samme mottakeren
Uavhengig referanse
Lukkede former og selvkonsistens: identitetene for avstandsrate og avstandsakselerasjon mot numeriske deriverte, at isoflux-forsterkningen opphever veksten i avstand, lærebokgrensene for polarisasjonstap, den kvalitative observasjonen LEO mot GNSS (en klokkeformet overflyvning på minutter med topp flere dB over flate GNSS-bærebølger på 44-51 dB-Hz). EIRP-ene og mønstrene er publiserte mottatte effekter omgjort til en EIRP eller representative valg, gassleddet er den avløste forenklede metoden i P.676-10, og ingenting er sammenlignet med en målt LEO C/N0
Tester
leo_pass::tests (the_leo_pass_is_a_bell_above_flat_gnss; closed_form_doppler_agrees_with_the_numerical_derivative: under 0.01 Hz and 0.01 Hz/s; indoor_uhf_suffers_less_building_loss_than_c_band…
ModellertNavngitte LEO-PNT-systemforhåndsinnstillinger med oppgitte kilder, og en systemuavhengig motorleo_link::presets (SystemPreset, BandPreset, all, by_id, gnss_meo); leo_pass (resolve_bands)
Funksjon
leo_link::presets: generisk flerbånds (UHF, L, S, C), generisk C-bånd, Xona Pulsar X1/X5, Iridium STL, Starlink som et signal av anledning med bare Doppler, CentiSpace og en valgfri Celeste IOD-forhåndsinnstilling, hver med kilden merket PUBLIC (med URL), REPRESENTATIVE eller WORKSHOP, der workshop-kilden ligger i den valgfrie Celeste IOD-forhåndsinnstillingsfilen og bare kompileres inn når den filen finnes; hvert bånd og hver bane kan overstyres i et scenario, og et scenario kan unnlate å navngi noen forhåndsinnstilling
Uavhengig referanse
Transkripsjon av de siterte offentlige tallene og en konsistenskontroll: en EIRP satt fra en publisert minste mottatte effekt forutsier den publiserte maksimale innenfor 0,5 dB med et flatt mønster. Det er en kontroll av avstandsspredningen, ikke en validering av noen satellitts antenne; representative forhåndsinnstillinger gir ingen påstand om et ekte system
Tester
leo_link::presets::tests (every_preset_is_sourced_and_self_consistent; only_the_celeste_preset_is_sourced_from_the_workshop); leo_link::presets::xona_pulsar::tests…
ModellertPosisjonering med lavt energiforbruk: tid til første posisjonsbestemmelse og energi per posisjonsbestemmelse mot driftssyklusleo_link::energy (fix_budget, duty_curve, IotReceiver, IotSignal); leo_pass (iot_section)
Funksjon
leo_link::energy og [iot]-seksjonen til leo-pass-typen: koherent integrasjon begrenset av Doppler-raten, ikke-koherente summer med kvadratisk lov opp til en deteksjonsterskel, et Doppler-bingesøk over banens omhyllingskurve for stasjonære brukere (kald) eller et støttet vindu (varm), parallelt eller serielt kodesøk, navigasjonsmeldingstid ved kaldstart, energi per posisjonsbestemmelse og batterilevetid over intervaller mellom posisjonsbestemmelser, for hvert LEO-bånd og GNSS-signalet
Uavhengig referanse
Intern konsistens i en oppgitt utformingsmodell: hver effekt, terskel og søkevalg er inndata, og modellen ser bort fra flertydighet i bitkanter, tapt deteksjon og ny akkvisisjon. Ikke sammenlignet med en målt mottaker
Tester
leo_link::energy::tests (stronger_signals_and_smaller_doppler_windows_fix_faster; the_doppler_rate_caps_the_coherent_time; battery_life_grows_with_the_fix_interval_toward_the_sleep_floor); leo_pass::tests…
ValidertGlobalt gjennomsnittlige vekter for avstandsfeil i signal i rommet for en hvilken som helst banehøydeleo_navmsg::sisre (sisre_weights, StatsAcc)
Funksjon
leo_navmsg::sisre::sisre_weights: den radiale vekten w_R og den kvadrerte tverrvekten w_AC^2 som gjennomsnitt av cos^2 og halve sin^2 av nadirvinkelen til siktlinjen over brukere jevnt fordelt på den synlige jordkalotten over en elevasjonsmaske, for en hvilken som helst baneradius, ved Simpson-integrasjon; brukt av hvert leo-navmsg SISRE-tall (ved 510 km, w_R 0,46 og w_AC^2 1/2.5)
Uavhengig referanse
Den publiserte SISRE-vektfaktortabellen til Montenbruck, Steigenberger og Hauschild (2018), Multi-GNSS signal-in-space range error assessment - Methodology and results, Advances in Space Research 61(12):3020-3038, doi 10.1016/j.asr.2018.03.041: GPS 0,98 og 1/49, GLONASS 0,98 og 1/45, Galileo 0,98 og 1/61, BeiDou MEO 0,98 og 1/54, BeiDou IGSO/GEO 0,99 og 1/126. Det samme gjennomsnittet evaluert ved LEO-radier gir LEO-vektene; ingen publisert LEO-tabell er fastlåst, så LEO-verdiene er den validerte metoden anvendt, ikke validert separat
Tester
leo_navmsg::sisre::tests (weights_reproduce_the_published_meo_and_geo_table — GPS 0,979 og 1/48.9, GLONASS 1/45.0, Galileo 0,984 og 1/61.1, BeiDou MEO 1/54.2, geostasjonær 0,992 og 1/126.2 ved en maske på 0 grader, hver…
ValidertBrukeralgoritmen for kringkastet efemeride fra Galileo ICD som grunnlag for en LEO-navigasjonsmeldingleo_navmsg::elements (kepler_point, kepler_frame, ephemeris_at, sat_state)
Funksjon
leo_navmsg::elements::kepler_point: Keplers evaluering fra Galileo OS SIS ICD (Keplers ligning, korreksjoner av andre harmoniske, jordfast node) skrevet separat fra motorens RINEX-evaluator, som returnerer posisjonen sammen med breddeargumentet, inklinasjonen og noden som langs-/tvers-/radialkorreksjonssystemet bygges fra, og utvidelsesleddene fra Liu m.fl. 2025
Uavhengig referanse
RTKLIB 2.4.2-p13 eph2pos ECEF-posisjoner (en uavhengig implementasjon av den samme ICD-algoritmen) for ekte BKG/IGS-kringkastede poster fra 2024-09-10, begge committet med proveniens i tests/fixtures/rinex_sp3_interop (NOTICE, rinex_ecef_reference.txt, brdc_multignss_slice.rnx). Dette validerer den Keplerske brukeralgoritmen; langs-/tvers-/radialkorreksjonene som er lagt oppå dekkes av sine egne rader, og Liu-leddene av raden om Liu m.fl. 2025 med 22 parametere
Tester
tests/leo_navmsg_reference.rs (the_galileo_user_algorithm_reproduces_rtklib_to_a_millimetre — fire ekte Galileo-kringkastede efemerider E10, E19, E24, E25 ved tk = 0, +/-600, +/-1800, +/-3600 s, hver akse innenfor 1 mm av…
ValidertCRC-24Q-rammekontroll for LEO-navigasjonsmeldingenleo_navmsg::codec (crc24q, encode, decode)
Funksjon
leo_navmsg::codec::crc24q: generatorpolynom 0x1864CFB, startverdi 0, ingen refleksjon, ingen sluttlig XOR, kontrollen Kshanas LEO-ramme bærer over hver foregående byte
Uavhengig referanse
CRC-katalogens kontrollverdi for disse parametrene (reveng.sourceforge.io CRC-katalogen, CRC-24/LTE-A: bredde 24, poly 0x864CFB, init 0, check 0xCDE703), som er CRC-24Q-parametrene til RTCM 10403 og Galileo OS SIS ICD, og eksempelrammen for meldingstype 1005 trykt i RTCM 10403
Tester
leo_navmsg::codec::tests (crc24q_matches_the_catalogue_check_value — 0xCDE703 for ASCII-strengen 123456789; crc24q_matches_the_rtcm_1005_example_frame — de tre kontrollbytene 0x360B98 i RTCM 10403-meldingstype…
ValidertTilpasning av kringkastet LEO-efemeride og avstandsfeil i signal i rommet mot tilpasningsintervall og oppdateringsperiodeleo_navmsg::fit (fit_message, lstsq, polyfit); leo_navmsg::truth (TruthOrbit, TruthClock); leo_navmsg (sequence_stats, LeoNavmsgScenario)
Funksjon
Tilpassingen og avveiningen til leo-navmsg-typen: en referansebane integrert med sonal J2-J6- eller EGM2008-gravitasjon til valgt grad og luftmotstand, og en sådd fri eller styrt klokke; en Levenberg-Marquardt-tilpasning av det Keplerske Galileo-settet på ikke-singulære elementer med svake priorer, deretter polynomer for korreksjon langs banen, på tvers av banen og radialt ved lineære minste kvadrater; klokkepolynomet tilpasset fratrukket brukerens relativistiske ledd; SISRE (bare bane og med klokke) over bruksperioder sentrert i tilpasningsvinduene, mot tilpasningsintervall og oppdateringsperiode. Validert del: tilpasningen med 16 parametere og dens SISRE for bare bane mot tilpasningsintervall på ekte presise baner, og den integrerte J2-J6/EGM2008(20, 70)/luftmotstand-referansebanen mot Orekit 12,2 innenfor 4,6 mm over 6 t (terskel 2 cm, samme tetthetsinndata); korreksjonspolynomene, klokketilpasningen (sådd fri eller styrt klokke) og avveiningen av oppdateringsperiode forblir modellert
Uavhengig referanse
Ekte presise vitenskapelige baner som referanse (TU Graz IfG/ITSG operasjonelle redusert-dynamiske baner, frie til enhver bruk mot anerkjennelse; SHA-256-verdier i NOTICE for testdataene) tilpasset med settet på 16 parametere over buer på 20 og 30 min, mot statistikken Liu m.fl. 2025 (Remote Sensing 17(16):2894, CC BY 4,0) publiserer for de samme satellittene og dagene: RMS langs, på tvers og radialt hver innenfor 1.5x (målt 0,804 til 1,087), SISRE innenfor 1.5x (målt 0,716 til 0,809) og SISRE-vektene innenfor 0,005 av tabell 2 (målt 0,0007); toleranser fastsatt før sammenligningen. Terskelen per komponent gir testen tenner: å nullstille inklinasjonsraten lar hvert SISRE-forhold ligge innenfor 1.5x men feiler terskelen for tvers av banen. Det jevne SISRE-forholdet 0,72 til 0,81 er artikkelens: dens trykte SISRE-verdier bruker vektene i tabell 2 ukvadrert i stedet for sin egen ligning 9, som Kshana følger (Montenbruck m.fl. 2018). Den integrerte referansebanen (sonal J2-J6, EGM2008 til grad 20 og 70, luftmotstand) stemmer med Orekit 12,2 (CS GROUP, Apache-2.0) og Hipparchus 3,1, propagert fra samme starttilstand i de samme systemene med samme tetthetsinndata, innenfor 4,55 mm over 6 t (terskel 0,02 m fastsatt før kjøringen, forhåndsregistrering 65e4d46c). Utenfor kravet: korreksjonspolynomene, klokketilpasningen og avveiningen av oppdateringsperiode, som beholder interne kontroller (en todelt referansebane gjenvunnet av settet på 16 parametere til under 1 mm, og en intern numpy-kryssjekk av de eksporterte meldingene på GRACE-FO med dens CLK1B-klokke, som ble skrevet og kjørt av dette prosjektet og ikke er en uavhengig referanse)
Tester
leo_navmsg::tests::a_two_body_truth_is_recovered_by_the_keplerian_fit_to_a_millimetre; leo_navmsg::tests::the_user_algorithm_reproduces_the_fitted_truth_to_a_millimetre_with_corrections…
ModellertOppdatering av LEO-navigasjonsmeldingen midt i en overflyvning med kontroll av kontinuitet ved byttetleo_navmsg (LeoNavmsgScenario::midpass, worst_case_jump, elevation, geodetic_to_ecef)
Funksjon
Analysen midpass-update til leo-navmsg: den høyeste overflyvningen over en bruker innenfor et søkespenn, meldinger på en global tidsplan med bruksperioder sentrert i tilpasningsvinduene, og ved hvert bytte 3D-posisjonshoppet, klokkehoppet, brukerens pseudoavstandshopp, det største hoppet over en hvilken som helst synlig siktlinje (lukket form over nadirkjeglen), avstandsfeilen før og etter, og PASS/FAIL mot en terskel
Uavhengig referanse
Intern konsistens (hoppidentiteten og kjeglegrensen mot brute-force-sampling). Terskelen er en inndata; ingen publisert LEO-kontinuitetskrav er fastlåst
Tester
leo_navmsg::tests::a_mid_pass_update_is_continuous (hvert byttes avstandssprang er lik endringen i avstandsfeil, og en korrigert tilpasning på 300 s oppdatert hvert 150 s passerer en terskel på 5 cm)…
ModellertDokumentert binær koding av LEO-navigasjonsmeldingen med et kvantiseringsfeilbudsjettleo_navmsg::codec (encode, decode, write_payload, read_payload, field_table, quantisation_budget)
Funksjon
leo_navmsg::codec: Kshanas egen ramme (innledning, versjon, modell, lengde, nyttelast, CRC-24Q) for de fire efemeridemodellene, klokkepolynomet, SVID, issue of data, bånd, helsetilstand, et Klobuchar-sett, NeQuick-G-koeffisienter og UTC-parametere, hvert felt med oppgitt bredde og trinn (field_table), kvantisering med avvisning utenfor område, og et budsjett over den største endringen i posisjon og klokke et halvtrinns endring i hvert felt gir over gyldighetsvinduet
Uavhengig referanse
Rundturidentiteter og selve budsjettet. Formatet er Kshanas eget, modellert etter de publiserte meldingskomponentene og feltsettet i Galileo ICD; det er ikke bitoppsettet til Celeste eller noe annet system (ingen er offentlig), så det finnes ikke noe eksternt oppsett å validere mot
Tester
leo_navmsg::codec::tests (signed_fields_round_trip_through_the_bit_packer; week8_resolves_near_the_reference); leo_navmsg::tests::every_model_round_trips_through_the_binary_frame (every model within 2 mm of the exact…
ModellertEksport av LEO-navigasjonsmeldinger i RINEX-4-stil og CSVleo_navmsg::text (rinex_export, rinex_import, csv_export, csv_import, calendar, from_calendar)
Funksjon
leo_navmsg::text: en blokk i RINEX-4-stil (> EPH-posthode, satellitt- og epokelinje med tre klokkeledd, D19.12 kringkastede banelinjer) med systembokstav L og posttypene KP16, KRAC, LU22 og APOL, merket i hvert hode som en Kshana-utvidelse som ikke er en del av RINEX 4,02, og en CSV-tabell med et standard kolonneskjema og forhåndsinnstilte skjemaer, hver med en importør
Uavhengig referanse
Rundturer og kalenderaritmetikken. RINEX 4,02 definerer ingen LEO-navigasjonsposter (IGS RINEX 4,02), så oppsettet er en dokumentert utvidelse med arXiv 2401,17767 sitert som tidligere arbeid; ingen ekstern leser av det finnes å kontrollere mot
Tester
leo_navmsg::text::tests (calendar_round_trips_and_knows_the_gps_origin; d19_is_rinex_shaped); leo_navmsg::tests::rinex_and_csv_round_trips (hver modell innenfor 0,1 mm etter tekstblokken, CSV-en eksakt)
ValidertLEO-efemeridemodellen med 22 parametere fra Liu m.fl. 2025 og dens tilpasning på ekte presise banerleo_navmsg::elements (kepler_point, Liu22Extra); leo_navmsg::fit (fit_message, fit_kepler, initial_params, formal_sigma); leo_navmsg::truth (TruthOrbit)
Funksjon
Liu22-varianten av leo_navmsg::elements::EphemerisModel, evaluert av kepler_point med Liu22Extra: settet på 16 parametere pluss en rate for store halvakse a_dot, en rate for middelbevegelsen n_dot som inngår som n = sqrt(mu/A0^3) + dn + n_dot tk, transkribert fra artikkelens ligning 1 (tilpasningssammenligningen avhenger ikke av denne skaleringskonvensjonen, så betydningen av en sendt nDot-verdi er ikke validert her), og radiusharmoniske Crs1, Crc1, Crs3, Crc3 én og tre ganger per omløp på det ukorrigerte breddeargumentet. Tilpasningen med leo_navmsg::fit::fit_message følger artikkelens avsnitt 2,3 start og estimator (hver korreksjon starter på null; ordinære minste kvadrater uten priorer; artikkelens grense på 100 iterasjoner), men stopper på Kshanas regel for parameterkonvergens (hvert steg under 1e-3 av sin formelle sigma) i stedet for artikkelens regel om en RMS-endring under 0,1 mm. Tilpasset over buer på 20 og 30 minutter av en tabulert presis bane
Uavhengig referanse
Målt: TU Graz IfG/ITSG operasjonelle redusert-dynamiske baner (frie til enhver bruk mot anerkjennelse; SHA-256-verdier i NOTICE for testdataene) for GRACE-A, GRACE-C, Sentinel-2A og Sentinel-6A er referansen, tilpasset over buer på 20 og 30 min og sammenlignet med radene med 22 parametere (a_dot, n_dot, Crs3, Crc3, Crs1, Crc1) i tabell 4, 5, 6 og 8 hos Liu, Su, Xie, Zhou og Qu (2025), Remote Sensing 17(16):2894, doi 10.3390/rs17162894 (CC BY 4,0; tall sitert, ikke medfølgende). Terskler fastsatt før den første sammenligningen: RMS langs, på tvers og radialt hver innenfor 1.5x tosidig, og SISRE innenfor 1.5x, for hver satellitt og begge buelengder. Gjenkjøringen i runde 2 ble forhåndsregistrert (aa559785) før motorendringen og før de tilbakeholdte banene ble hentet: tilpasningen etter artikkelens ligning 1 og avsnitt 2,3, pluss to nye tilbakeholdte dager per satellitt mot de samme trykte verdiene. Målt: hvert forhold for artikkelens dager 0,755 til 1,138, og hvert tilbakeholdt forhold 0,683 til 1,186. Opplyst: forholdene langs banen for 20 min i den første kjøringen, 1,71 (Sentinel-2A) og 1,86 (Sentinel-6A), var kjent før gjenkjøringen. De laveste tilbakeholdte SISRE-forholdene ligger nær den nedre grensen 0,667 fordi artikkelens trykte SISRE bruker vektene i tabell 2 ukvadrert (se raden om tilpasningen med 16 parametere). Forhåndsregistreringen oppga artikkelens stoppregel feil (artikkelen stopper på en RMS-endring under 0,1 mm); den forhåndsregistrerte regelen for parameterkonvergens ble beholdt. Mutasjon: å gjenopprette nullsentrerte priorer gir Sentinel-6A 20 min langs banen 1,08 mot 0,70 cm (1,54), som feiler. Gjennomgangsprøve: konvensjonen fra før 0.30 (en faktor 1/2 på n_dot) lar hvert tall være uendret, så sammenligningen begrenser funksjonsrommet til modellen med 22 parametere og kvaliteten på tilpasningen, ikke n_dot-konvensjonen. Utenfor kravet: ATOMIC ECEF-polynomet og den syntetiske modellsammenligningstabellen med fem høyder, som har sin egen MODELLED-rad
Tester
tests/leo_navmsg_fit_real_orbit_oracle.rs::liu22_model_matches_the_published_sisre (fire artikkeldager: langs-, tvers-, radial- og SISRE-forhold 0,755 til 1,138 av Liu et al. 2025, innenfor 1.5x)…
ModellertATOMIC ECEF-polynom uten klokke og den syntetiske modellsammenligningen for LEO ved fem høyderleo_navmsg::elements (EcefPoly, ephemeris_at); leo_navmsg (liu_comparison, LIU2025_TABLE)
Funksjon
EcefPoly-varianten av leo_navmsg::elements::EphemerisModel: et ECEF-polynom per akse uten klokkeledd, det relativistiske leddet fra -2 r.v/c^2, skåret mot en styrt klokke. Også modellsammenligningsanalysen (liu_comparison over LIU2025_TABLE), som tilpasser modellen med 22 parametere ved artikkelens fem høyder over buer på 20 minutter av en bane integrert av Kshana og skriver ut resultatet ved siden av den publiserte SISRE
Uavhengig referanse
ATOMIC-modellfakta fra InsideGNSS (polynom av 6. orden, omtrent ett minutts gyldighet, 30 s oppdatering, styrt klokke, 24 cm klokkefeil). Dette er beskrivende fakta uten publiserte tall å sammenligne mot. Tabellen med fem høyder skriver ut SISRE fra Liu m.fl. 2025 (8,88, 6,21, 2,87, 2,11 og 0,75 cm ved 320, 475, 786, 966 og 1336 km over en bue på 20 minutter) ved siden av Kshanas tilpasning på sin egen integrerte bane (4,25, 2,87, 2,20, 1,25 og 0,51 cm; forhold 0,46 til 0,77), ikke fastlåst, fordi artikkelen tilpasset ekte presise baner og referansene er forskjellige. Modellen med 22 parametere og tilpasningen selv er validert mot ekte baner i raden Liu et al. 2025 22-parameter LEO ephemeris model and its fit on real precise orbits. Revisjon i 0,30: tabelltallene endret seg med tilpasningen etter artikkelens konvensjon (GRACE-A 5,40 -> 4,25 cm, GRACE-C 4,12 -> 2,87, Sentinel-2A 2,95 -> 2,20, HY-2A 2,38 -> 1,25, Sentinel-6A 0,70 -> 0,51)
Tester
leo_navmsg::tests::liu22_beats_the_16_parameter_set_over_a_20_minute_arc; leo_navmsg::tests::the_ecef_polynomial_fits_a_minute_to_millimetres…
ValidertIonosfære- og UTC-tjenester for ett frekvensbånd i en LEO-navigasjonsmeldingleo_navmsg::services (klobuchar_delay_m, effective_ionisation_level, system_to_utc)
Funksjon
leo_navmsg::services: den kringkastede Klobuchar-forsinkelsen ved en hvilken som helst bærebølge (motorens L1-modell skalert med (f_L1/f)^2), det effektive NeQuick-G-ioniseringsnivået Az = ai0 + ai1 mu + ai2 mu^2 med reglene for alle nuller og [0, 400] sfu, og systemtid til UTC med ICD-ens tre skuddsekundtilfeller
Uavhengig referanse
GNSSTk 15.3.1 (ARL:UT, LGPL-3.0, commit 55ea3344, kjørt som et eget program gjennom en harness; ingen GNSSTk-kode følger med): getIonoCorr for KlobucharIonoNavData ved L1, L2 og L5, getEffIonoLevel for NeQuickIonoNavData for Az med reglene for alle nuller og [0, 400] sfu, og getOffset for GPSLNavTimeOffset for UTC-driften, innenfor 1e-3 m, 1e-6 sfu og 1e-9 s; og ERFA via pyerfa 2.0.1.5 (BSD-3), som utleder UTC fra IERS-tabellen over skuddsekunder, for ICD-ens tre skuddsekundtilfeller på tvers av de virkelige skuddsekundene 2015-06-30 og 2016-12-31, inkludert avlesningen 23:59:60, innenfor 1e-9 s (GNSSTk implementerer ikke ICD-regelen for dagslengde i tilfelle (b), så den ble ikke brukt der, som skrevet i forhåndsregistreringen). Inndata er de virkelige IGS BRDC-hodekoeffisientene. Forhåndsregistrert (6a66994b; endring 88807a7e committet en delmengde på 21 602 rader av skuddsekundrutenettet før noen Kshana-verdi ble sammenlignet). NeQuick-integrasjonen av elektrontettheten er ikke implementert, og det gjøres ingen korreksjon for en LEO-satellitt som flyr inne i ionosfæren
Tester
leo_navmsg::services::tests (klobuchar_scales_with_inverse_frequency_squared — the L1 value is RTKLIB's 6.1278 m; nequick_az_rules; utc_without_an_event_is_tow_minus_leap_seconds_folded_to_a_day…
ValidertDoppler en bakkemottaker må håndtere fra en LEO-navigasjonssatellittleo_fusion::geom (EarthOrbit); leo_fusion::doppler (range_rate, doppler_envelope)
Funksjon
Eksakt avstandsrate for en satellitt hvis jordfaste posisjon og hastighet kommer fra en todelt bane med sekulær J2-drift og jordens rotasjon (leo_fusion::geom::EarthOrbit::state, hastigheten den eksakte tidsderiverte av posisjonen), gjort om til Doppler ved en bærebølge; den største absolutte Doppleren, Doppler-raten og rykket over en elevasjonsmaske over et vindu (leo_fusion::doppler::doppler_envelope), rapportert per LEO-system av leo-pvt-typen i doppler-modus
Uavhengig referanse
Publiserte tall gjengitt fra den oppgitte banen og bærebølgen: Iridium-Doppler opp til pluss eller minus 36 kHz (Resilient Navigation and Timing Foundation, Recent PNT improvements and test results based on LEO satellites) og Xona Pulsar X1 maksimal Doppler 32 til 34 kHz (Leclère, Marathe og Reid, ION GNSS+ 2025, arXiv:2509,19551). Iridium-tallet er en avrundet øvre grense, derfor terskelen på 5 %. Doppler-raten og rykket rapporteres men er ikke validert: det modellerte rykket for en overflyvning rett overhead for Pulsar X1 er omtrent 1,0 Hz/s^2 mot det publiserte 1,26
Tester
tests/leo_doppler_reference.rs (iridium_doppler_reaches_the_published_36_khz: én satellitt på 780 km og 86,4 grader fløyet i et døgn ved 1621 MHz over fire breddegrader, maksimum innenfor 5% av 36 kHz…
ModellertPosisjonering fra LEO-Doppler, med én og flere satellitter, med tilstander for klokkedrift og hastighetleo_fusion::doppler (solve, formal_covariance, single_pass_geometry, offset_site, closest_approach); leo_fusion::pvt_kind (run_doppler)
Funksjon
Batch Gauss-Newton-posisjonering fra avstandsrate med analytiske partielle deriverte (d rho_dot / d r = -(I - u u^T)(v_s - v_u)/rho, d/dv = -u, d/d drift = 1), en konstant brukerhastighet som valg, en høydepseudomåling for en bruker på overflaten, dempede steg; den formelle kovariansen ved referansen; projeksjoner langs banen, på tvers av banen og vertikalt; nøyaktigheten for én overflyvning mot brukerens avstand på tvers av banen; tidspunktet for nærmeste passering. Doppler-modusen til leo-pvt-typen legger til feilen mot vindulengde og en modus for signaler av anledning med bare Doppler (forhåndsinnstillingen starlink-sop)
Uavhengig referanse
Intern konsistens: gjenvinning uten støy, den kinematiske identiteten rho_ddot = (|v|^2 - rho_dot^2 + d.a)/rho derivert numerisk, null Doppler ved nærmeste passering, speilløsningen for en enkelt overflyvning, og sådde feil mot den formelle kovariansen. Starlink-tallet til Kozhaya, Saroufim og Kassas (NAVIGATION 72(1), 2025: omtrent 2 m på 20 s med tre satellitter) er bare en sammenligning: den modellerte mottakeren, med en perfekt efemeride og hver feil i en Doppler-sigma på 30 Hz, er flere ganger mindre nøyaktig over det samme vinduet, og artikkelens mottaker og målerate er ikke gjengitt
Tester
leo_fusion::doppler::tests (range_acceleration_obeys_the_kinematic_identity_and_vanishes_doppler_at_closest_approach; noise_free_multi_satellite_doppler_recovers_the_user: til 1 mm og driften til 1e-6 m/s…
ModellertFelles posisjonsbestemmelse med GNSS- og LEO-pseudoavstander med intersystembiaser og feilmodeller per signalleo_fusion::joint_pvt (solve, dop, code_sigma_dll_m, SystemClock); leo_fusion::system (SystemCfg, System); leo_fusion::pvt_kind (run_joint)
Funksjon
Posisjonsbestemmelser med vektet Gauss-Newton minste kvadrater over en hvilken som helst blanding av systemer, én mottakerklokke per system (intersystembiasen estimert sammen med posisjonen) eller en kjent kringkastet forskyvning på referansetidsskalaen; sigma per måling levert av kalleren, som standard motorens termiske støy i delay-lock-loop (navsignal::dll_code_jitter_chips) ved C/N0 for elevasjonen kombinert med avstandsfeilen i signal i rommet; uvektet DOP (GDOP, PDOP, HDOP, VDOP, TDOP) i det lokale geodetiske systemet, formelle øst-nord-opp-sigma og bias-sigmaene; den felles modusen i leo-pvt sammenligner posisjonsbestemmelser med bare GNSS, bare LEO og fusjonerte, og sveiper DOP mot antallet tilføyde LEO-satellitter
Uavhengig referanse
En håndutledet DOP med fire satellitter (én satellitt i zenit og tre ved horisonten med 120 graders mellomrom, hvis normalmatrise inverteres for hånd), den strukturelle identiteten at et system med egen klokke og én satellitt ikke tilfører noen geometri, gjenvinning uten støy av posisjon, klokke og bias, og sådde feil mot kovariansen. Bare interne kontroller; ikke sammenlignet med en mottakers utdata. Ekstern sammenligning i 0,30, et funn (forblir MODELLED): på en multi-GNSS IGS-dag (ABMF 2018-05-13, GPS og Galileo C1C, kringkastet efemeride, Klobuchar) stemmer intersystembiasen med RTKLIB v2.4.2-p13 rnx2rtkp (median differanse -0.11 ns etter 0,30-rettingen av kringkastet gruppeforsinkelse, -0.35 ns før; terskel 1 ns), men bare 93,6 % av 280 epoker (93,2 % før rettingen) ligger innenfor 3 m av ITRF2020-koordinaten mot de forhåndsregistrerte 95 %. RTKLIB selv når 88,2 % på de samme dataene, så terskelen ligger utenfor det enkeltfrekvent kringkastet posisjonsbestemmelse klarer på denne stasjonen og dagen, snarere enn at det er en avvikende løser; sammenligningstesten er committet som ignorert. 0,30 runde 2, strengere inndata ved den uendrede terskelen 3 m / 95 % / 1 ns, et funn (forblir MODELLED): med det ionosfærefrie Galileo E1/E5a-paret (forhåndsregistrert 6927e039) ligger 79,9 % av epokene innenfor 3 m (RTKLIB 67,9 %); med presise CODE MGEX-baner, -klokker, satellittantenneforskyvninger og kodebiaser (forhåndsregistrert 7d8c3597) 94,2 % (RTKLIB 94,1 %), og intersystembiasen avviker fra RTKLIB med -1.03 ns fordi RTKLIB i enkeltmodus ser bort fra satellittantenneforskyvninger (+0,04 ns når begge utelater dem)
Tester
leo_fusion::joint_pvt::tests (dop_matches_the_hand_derived_zenith_plus_three_horizon_case: HDOP = VDOP = sqrt(4/3), TDOP = sqrt(1/3), PDOP = sqrt(8/3), GDOP = sqrt(3) to 1e-9…
ModellertKonvergens for presis punktposisjonering (PPP) med bare GNSS og med LEO-støtteleo_fusion::ppp (run, PppScenario, LI_2019)
Funksjon
Et utvidet Kalman-filter for flyttalls-PPP på ionosfærefri kode og fase: statiske koordinater, en hvit mottakerklokke, én intersystembias per ekstra system, en tilfeldig gange for våt zenitforsinkelse avbildet med 1/sin(elevasjon), en flyttalls flertydighet per satellittbue lagt til ved oppgang og fjernet ved nedgang, og den presise bane- og klokkefeilen felles for en satellitts kode og fase, behandlet som én korrelert oppdatering med to rader i en Joseph-stabilisert form; målinger simulert fra samme modell; konvergenstid (feil under terskelene til slutten av kjøringen), feilkurver og den kjøringsgjennomsnittlige posisjons-NEES for bare GNSS og hvert LEO-tilfelle, kjørt som leo-ppp-typen
Uavhengig referanse
NEES-kjikvadrattesten er en intern konsistenskontroll (referansen og filteret deler modellen). Trenden er sammenlignet med Li m.fl., LEO constellation-augmented multi-GNSS for rapid PPP convergence, J. Geod. 93:749-764 (2019), doi 10.1007/s00190-018-1195-2: multi-GNSS 9,6 min forkortet til 7,0, 3,2, 2,1 og 1,3 min med 60, 96, 192 og 288 LEO-satellitter. Det medfølgende scenarioet gir 7,4, 4,8, 3,2, 2,7 og 2,3 min med sine egne representative skall på 1000 km, 60 grader, støy og stasjoner; artikkelens konstellasjoner, støy og konvergensdefinisjon er ikke gjengitt, så dette er en MODELLED konsistens i trenden (monoton forkorting, den største konstellasjonen under en tredjedel av tiden med bare GNSS), ikke en validering
Tester
leo_fusion::ppp::tests (the_filter_is_consistent_over_monte_carlo_seeds: 24 seeds, kjøringsmidlet NEES-middel i [2,4, 3,6] og minst 75% av epokene innenfor det tosidige kjikvadratbåndet på 95%; målt med 150 seeds, middel…
ValidertPosisjoneringsnøyaktighet i 5G ikke-terrestriske nett (NTN) fra signalbåndbreddeleo_fusion::ntn (gabor_bandwidth_flat_hz, gabor_bandwidth_bpsk_hz, gabor_bandwidth_numeric_hz, rms_duration_numeric_s, toa_crb_sigma_m, doppler_crb_sigma_hz, frequency_crb_sigma_hz, NtnScenario::geometry, NtnScenario); leo_fusion::joint_pvt (formal_sigma_enu)
Funksjon
Cramér-Rao-grensen for ankomsttid fra rotmiddelkvadrat-båndbredden (Gabor), c/(2 pi beta sqrt(2 (C/N0) T)), for et flatt OFDM-spektrum (beta = B/sqrt(12)), et båndbegrenset BPSK-spektrum (teller i lukket form) eller et hvilket som helst spektrum ved kvadratur, og på frekvensen til en kompleks tone, sqrt(3/(2 pi^2 (C/N0) T^3)); posisjonsbestemmelser fra ankomsttid på nedlinken med en ukjent mottakerklokke og en Doppler-posisjonsbestemmelse med én satellitt over en overflyvning i 3GPP n256 MSS S-båndet, kjørt som ntn-positioning-typen
Uavhengig referanse
Publiserte regneeksempler (P1): Bachl, Lei og Nabeel, arXiv:2608,10270 (2026), grenser for én SSB i NR NTN gjengitt fra 3GPP TS 38,211 SSB-kartet gjennom Kshanas egne numeriske funksjoner (W_rms 1,9616 mot 1,96 MHz, sigma_t 38,755 mot 39 us, sigma_f 100.79/87.28 mot 101/87 Hz, sigma_rho 0.5970/0.5831 mot 0.60/0.58 m, hver innenfor en halv enhet av det trykte siste sifferet); Betz 2001 tabell 1 BPSK-R RMS-båndbredder (1.128/3.477 mot 1.1/3.5 MHz, supplerende); kovariansene for posisjonsbestemmelse fra ankomsttid og Doppler stemmer med numpy 2.4.6 numpy.linalg.inv på den eksporterte geometrien (P2; 5e-15 og 1.2e-5 relativt, terskler 1e-5 og 1e-3). Forhåndsregistrert (9f2875db; del C 0d66dccd). Motorens posisjonsbestemmelse joint_pvt::formal_sigma_enu (grensen evaluert ved den sanne posisjonen, ikke den støyfylte posisjonsbestemmelsen) ble skrevet etter at den første kjøringen med 200 kHz sviktet ved 6.5e-5, og ble kjørt på nytt ved den uendrede toleransen. Formene for flatt spektrum og kompleks tone som scenarioet kjører (gabor_bandwidth_flat_hz, doppler_crb_sigma_hz) når P1-kontrollen gjennom identitetsenhetstester i selve craten. Grenser på en kanal uten flerveis, ikke oppnådd nøyaktighet. Revisjon i 0,30: ntn-5g-positioning toa_median_sigma_3d_m 2,0903959 -> 2,0903962 m (NR 5 MHz) og 25,938613 -> 25,938839 m (NB 200 kHz)
Tester
leo_fusion::ntn::tests (the_numerical_rms_bandwidth_matches_the_closed_forms; the_range_bound_scales_as_one_over_bandwidth_and_root_cn0: 0.4157 m by hand at 5 MHz, 45 dB-Hz, 0.1 s…
ModellertLEO-støttet tidsoverføring til UTC mot C/N0 og mottakeroscillatorenleo_fusion::timing (simulate, utc_offset_s, system_to_utc_s); leo_fusion::pvt_kind (run_timing)
Funksjon
Klokkemålinger fra hver LEO-satellitt i sikte ved en kjent posisjon, kombinert med invers varians fra pseudoavstandsstøymodellen, filtrert av et Kalman-filter med to tilstander (fase, frekvens) hvis prosessstøy er den hvite og tilfeldig-gange-frekvensstøyen til oscillatorklassen (slot_timing::ClockNoise, clock_state::ClockClass; driftvariansen til holdover::coast_phase_variance), en sådd referanseklokke fra de samme nivåene, og uttrykket i IS-GPS-200 avsnitt 20.3.3.5.2.4 for systemtid til UTC med en usikkerhet i kringkastet forskyvning lagt til som en bias per kjøring; timing-modusen i leo-pvt sveiper oscillatorer og C/N0-forskyvninger
Uavhengig referanse
Intern konsistens: det publiserte forskyvningsuttrykket evaluert for hånd, den normaliserte feilen over 40 seeds, og gulvet satt av usikkerheten i forskyvningen. NIST-tallet for Iridium-tidsmottakere med en miniatyratomklokke (under 40 ns fra UTC(NIST) over 40 dager) er bare en sammenligning; det medfølgende Iridium-scenarioet gir 10 til 11 ns RMS ved nominell effekt med sin representative avstandsfeil på 5 m. Flicker-frekvensstøy og ionosfæreforsinkelse er ikke simulert
Tester
leo_fusion::timing::tests (the_utc_offset_follows_the_is_gps_200_expression; continuous_tracking_approaches_the_measurement_floor_and_gaps_cost_time; the_filter_is_consistent_over_seeds…
ValidertLEO-dekning og fortynning av presisjon for polare og arktiske brukere mot MEO-GNSSleo_fusion::polar (latitude_sweep, latitude_sweep_at, element_sets, satellite_states_at); leo_fusion::joint_pvt (dop); sgp4 (MeanElementSet::from_earth_fixed, SgpOrbit, teme_to_itrs_matrix)
Funksjon
Satellitter i sikte og median PDOP, HDOP og VDOP med tilgjengelighet mot breddegrad, over samplede lengdegrader og epoker, for bare MEO-GNSS-systemene, bare LEO-systemene og alle sammen, hvert system med sin egen maske og klokkemodell, kjørt som polar-modusen til leo-pvt; banene er SGP4/SDP4-elementsett ved sveipepoken (2026-01-01T00:00:00 UTC i polar-modusen) ført til det jordfaste systemet på den validerte stien for jordbaner (IAU 2006/2000A, UT1 = UTC, ingen polbevegelse)
Uavhengig referanse
Orekit 13.1.8 (Apache-2.0) med Hipparchus 4.0.3: motorens GCRS-tilstander rotert til ITRF av Orekit (IERS 2010), WGS-84 TopocentricFrame-synlighet mot hvert systems maske, org.orekit.gnss.DOPComputer for én klokkeukjent og NumPy 2.4.6 numpy.linalg.inv (P2) for flere; med stien kontrollert mot python-sgp4 og ERFA (raden 'One Earth-orbit path'). Terskler fastsatt før kjøringen (forhåndsregistrert 72ea9eb0; T2 og T3 er terskelene for runde 2 i 0,30). Trinnet TEME -> GCRS frosset ved J2000 gjør testen rød (4739 feil). Bare geometri; ingen scintillasjon, terreng eller signaleffekt. GNSS-VDOP stiger mot polen (1,20 ved ekvator til 1,51 ved 89,9 grader for GPS og Galileo i det medfølgende scenarioet) mens et nesten polart LEO-skall konvergerer der. Historikk: runde 2 (3254d456) stemte på tabulerte todelte tilstander; D8 runde 1 sitt fulle krav mot Orekits egen TLE-propagering (e947e69d) var et funn, Orekits SDP4 ved e = 0 og dens IERS 1996 TEME, fastlåst
Tester
tests/leo_polar_coverage_on_path_orekit_oracle.rs (konfigurasjon A og B, 4040 sampler: jordfaste posisjoner innenfor 6.8e-5 m, terskel 0,2 m; antall i sikte identiske på 4040/4040; median-DOP innenfor 2.3e-11 relativt, terskel…
ModellertNavngitte LEO-PNT-systemer som valgfrie datasett med forhåndsinnstillinger, hver med sin kildeleo_fusion::presets (all, by_id, cn0_range_dbhz, noise_density_dbw_hz); leo_fusion::system (SystemCfg::build)
Funksjon
Systemuavhengige inndata: hvert system er Walker-skall, eksplisitte elementer eller en GNSS-forhåndsinnstilling, et signal (bærebølge, chiprate, båndbredde, mottatt effekt eller C/N0-område), en SISRE, en Doppler-sigma og en klokkemodell; forhåndsinnstillinger fyller bare ut det et scenario utelater, én fil hver med kilder merket PUBLIC (med URL), WORKSHOP eller DERIVED og de upubliserte verdiene oppført som representative: Xona Pulsar X1/X5, Iridium STL, Starlink-signaler av anledning, CentiSpace, et representativt C-bånd-system, ATOMIC-efemeridemodellen uten klokke, og én forhåndsinnstilling utledet fra workshopen i den valgfrie Celeste IOD-forhåndsinnstillingsfilen, holdt tilbake ved å slette den filen og dens scenarioer
Uavhengig referanse
Transkripsjon av de siterte offentlige verdiene, kontrollert for struktur (hver offentlig kilde har en URL, Walker-mønstre går opp, C/N0 fra mottatt effekt over kT ved 290 K), ikke mot en ekstern uavhengig referanse. Representative verdier er navngitt i hver forhåndsinnstilling og er illustrerende
Tester
leo_fusion::presets::tests (every_preset_has_a_source_and_every_public_source_a_url; only_one_preset_uses_workshop_material; noise_density_at_290_k_is_minus_204_dbw_per_hz); tests/workshop_preset_isolation.rs…
ModellertEtt LEO-PNT-system fra ende til ende: signalutforming, linkbudsjett for overflyvning, navigasjonsmelding og fusjonert posisjonering, der hvert trinns utdata gis videre til nesteleo_pnt_chain (LeoPntChainScenario); leo_pass (BandCfg::signal, design_tracking); leo_navmsg (LeoNavmsgScenario::broadcast_sisre); leo_fusion::pvt_kind; leo_fusion::ppp
Funksjon
leo-pnt-chain-typen: en leo-signal-utforming (offentlig forhåndsinnstilling eller inline) setter senterfrekvens, båndbredde, chiprate og EIRP-fordeling for et leo-pass-bånd; overflyvningen gir C/N0 for den sporede komponenten og båndbegrenset kodejitter per epoke; en C/N0-linje etter minste kvadrater i sin(elevasjon), SISRE fra leo-navmsg-meldingen (tilpasset ved banen til satellitten i overflyvningen, pluss et oppgitt banebestemmelsesledd i kvadratsum) og utformingens bærebølge og chiprate går til hvert LEO-system i en felles posisjonsbestemmelse med leo-pvt og, valgfritt, til LEO-tilfellene i leo-ppp; hver overlevering rapporteres med verdi og enhet
Uavhengig referanse
Selvkonsistens i overleveringene: hver videregitte verdi er lik det oppstrøms trinnets egne utdata, og å mutere en oppstrøms inndata flytter hvert nedstrøms tall som avhenger av den. Trinnene beholder sine egne etiketter; kjeden tilfører ingen fysikk og ingen ekstern uavhengig referanse
Tester
leo_pnt_chain::tests (a_sine_line_fit_recovers_its_line); tests/leo_pnt_chain.rs (every_upstream_change_moves_the_downstream_figures: en sterkere EIRP, et lengre tilpasningsintervall og et større banebestemmelsesledd hver…
ModellertSpoofing-deteksjon ved konsistens mellom LEO-Doppler og overflyvningsgeometrileo_link::spoof (range_rate_position_gradient, line_of_sight, fll_frequency_jitter_hz, doppler_consistency_window, doppler_consistency); leo_pass (SpooferCfg, spoof_section)
Funksjon
[spoofer]-seksjonen i leo-pass-typen: en spoofer forfalsker, selvkonsistent i avstand og avstandsrate, signalene sett ved en påstått posisjon som hopper og/eller skyves bort fra den sanne etter et startpunkt (per LEO-bånd og for MEO-GNSS-signalet); mottakeren forutsier hver avstandsrate fra den kringkastede banen og en uavhengig prior posisjon og hastighet, og tester de målte avstandsratene med en generalisert kjikvadratstatistikk med minste kvadrater over et vindu av epoker (klokkedrift en forstyrrelsesparameter eller med en prior), på GNSS-kanalene, LEO-kanalene og alle kanaler, med termisk støy i frequency-lock-loop fra C/N0 (Kaplan & Hegarty 2006, avsnitt 5.6.2); deteksjonssannsynlighet fra den ikke-sentrale kjikvadratloven ved en oppgitt sannsynlighet for falsk alarm, deteksjon erklært ved en oppgitt sannsynlighet for tapt deteksjon
Uavhengig referanse
Lukkede former og identiteter, ikke en ekstern måling: gradienten til avstandsraten mot en sentral differanse, informasjonsformstatistikken mot den tette kovariansformen, en ren klokkedrift som gir null, en skyv forklart av prioren som gir høyst |dx|^2/sigma_p^2, statistikken kvadratisk i et hopp. Ingen deteksjonsverdi er sammenlignet med et målt angrep; spoofereren er idealisert (ingen signatur i effekt, ankomstvinkel eller korrelasjonstopp)
Tester
leo_link::spoof::tests (the_gradient_is_the_derivative_of_the_range_rate; fll_jitter_matches_the_formula_by_hand; a_common_mode_residual_is_a_clock_drift_and_is_not_detected…
ModellertSpoofing-deteksjon ved konsistens på tvers av bånd i et LEO-signal med flere båndleo_link::spoof (cross_band_step); leo_pass (spoof_section: pairs, cross_band)
Funksjon
For hver LEO-satellitt og hvert par av avstandsmålingsbånd danner [spoofer]-seksjonen den geometrifrie pseudoavstandskombinasjonen, fjerner mottakerens ionosfæremodell og tester dens steg fra epoke til epoke mot de to båndenes kodestøy og en oppgitt tolerert umodellert ionosfærerate (tosidig gaussisk, eksakt deteksjonssannsynlighet); en spoofer som forfalsker noen bånd og ikke andre, eller hvert bånd uten ionosfæren, oppdages ved starten; en som forfalsker hvert bånd og simulerer ionosfæren, oppdages ikke, noe resultatet oppgir
Uavhengig referanse
Identiteter: startsteget til en ionosfærefri spoofer er lik parets modellerte differanse i ionosfæreforsinkelse, terskelen er den tosidige normale kvantilen ganger standardavviket til steget pluss grensen for raten. Mottakerens ionosfæremodell er motorens, så den autentiske residualen er null i gjennomsnitt per konstruksjon; ingen ekstern uavhengig referanse
Tester
leo_link::spoof::tests (the_cross_band_threshold_and_power); tests/leo_resilience_verticals.rs (a_ground_spoofer_leaves_the_ionospheric_step_and_an_ionosphere_aware_one_does_not…
ModellertIonosfæresondering: skrå TEC fra to-bånds forsinkelse i en LEO-overflyvningleo_pass (IonoFreePair::geometry_free_stec_tecu, geometry_free_stec_sigma_tecu); leo_link::iono::geometry_free_stec_tecu
Funksjon
For hvert båndpar til en leo-pass-satellitt gir rapporten det skrå totale elektroninnholdet den geometrifrie kodekombinasjonen gjenvinner ved toppen av overflyvningen, (P2 - P1) f1^2 f2^2 / (40,3 (f1^2 - f2^2)), og dets 1-sigma fra de to båndenes termiske kodestøy, slik at en hvilken som helst LEO-PNT-utforming med flere bånd kan avveies som en ionosfæresonde
Uavhengig referanse
Førsteordens dispersjonsidentitet, eksakt per konstruksjon mot motorens egen førsteordens forsinkelse (hvis 1/f^2-skalering er VALIDATED mot IS-GPS-200 i sin egen rad); presisjonen er bare termisk kodestøy, uten flerveis eller biaser mellom frekvenser. 0,30 runde 2, målt (forhåndsregistrert 5e795f93), et funn (forblir MODELLED): CODE globale ionosfærekart CODG1330.18I mot ABMF C1C/C2W-kode med CODE-biasene gir 33 av 36 buemiddel innenfor 3 TECU (verst +6,84 TECU på en kveldsbue; RMS per epoke 3,95 TECU), mot en terskel om hver bue; ikke validert
Tester
tests/leo_resilience_verticals.rs (the_geometry_free_tec_is_the_pass_slant_tec: er lik passeringens skrå TEC i toppen til 1e-9 og dens sigma er lik RSS-kodestøyen over 40,3 (1/f1^2 - 1/f2^2))…
ValidertDatumkovarians for månesystemet med stasjonene estimert, mot utvidet presisjon på 50 sifferlunar_frame_campaign, fim
Funksjon
Helmert-datumkovariansen med sju parametere i scenarioet lunar-frame-campaign med jordstasjonene estimert (stasjon 1 forankret), slik lunar_frame_campaign beregner den i binary64: den felles Fisher-informasjonen for stasjoner og fyrtårn akkumulert fra forsinkelsesjakobianen, stasjonsblokken marginalisert med et Schur-komplement gjennom en spektral Jacobi-invers, H = AᵀSA dannet med Helmert-utformingen og invertert spektralt. Problemet er dårlig betinget per konstruksjon (Helmert-tilstandstall 2.1e8 til 2.3e8, tilstandstall for felles informasjon 1.6e12 til 3.0e13): en relativ endring på 1e-9 i Schur-korreksjonen flytter datumsigmaene med opptil 28 %. Rapportert: de sju datumsigmaene, Helmert-tilstandstallet og den svakeste retningen. PÅSTAND, SNEVRET INN: motorens datumsigma og tilstandstall ligger innenfor den a priori verste-tilfelle-feilgrensen til en bakoverstabil dobbeltpresisjonskjede på dette problemet; dette hevder ikke at de er så nøyaktige som dobbel presisjon tillater (en faktoriseringsrute er omtrent tusen ganger mer nøyaktig på de samme inndataene, og den valgfrie kvadratrot-løseren omtrent ti millioner ganger), og den svakeste retningen er validert bare der terskelen er under en rett vinkel (kontrollen med stasjonene fastholdt)
Uavhengig referanse
mpmath 1.3.0 (BSD-3-Clause) med 50 signifikante siffer, selvkontrollert ved 80 (enighet 1.1e-38 eller bedre), på motorens committede jakobian, vekter og Helmert-utforming: mpmaths egen LU-løsning for Schur-komplementet, dens invers for H og dens Jacobi-egenverdidekomposisjon (P2, et uavhengig numerisk bibliotek). Forhåndsregistrert 804662d5 før testdataene fantes, med terskler fra en førsteordens bakoverfeilformel: konstanten (3n+1)n + m ganger enhetsavrundingen (Higham, Accuracy and Stability of Numerical Algorithms, teorem 10,4, formen i nivå B), ganger hver størrelses eksakte førsteordens følsomhet for den felles informasjonen, Schur-komplementet og H. Målt: datumsigma innenfor 4.8e-6 på 2026-03-18 (terskler 9.6e-2 til 2.2e-1), 9.7e-6 på 2024-01-01 (terskler 2.8e-2 til 6.9e-2) og 2.0e-14 med stasjonene fastholdt (terskler 1.0e-11 til 2.8e-7); tilstandstall innenfor 4.6e-6, 1.3e-5 og 4.1e-14. På scenarioene med stasjonene estimert er tersklene verste tilfelle og fire størrelsesordener over den målte feilen, og terskelen for den svakeste retningen der overstiger en rett vinkel, så den ene kontrollen telles ikke; på kontrollen med stasjonene fastholdt stemmer den svakeste retningen til 6.6e-16 rad mot en terskel på 9.4e-11, målt med korden mellom enhetsvektorer (en tidligere acos-komparator kunne ikke oppløse vinkler under 1.5e-8 rad; terskelen er uendret). Diagnostikk: NumPy 2.3.5 Cholesky- og QR-ruter når 9e-9 og 5e-9 på inndataene for 2024-01-01, dens invers- og egenverdiruter 2.9e-6 og 6.2e-6: motoren ligger innenfor sin grense men er omtrent tusen ganger mindre nøyaktig enn en faktoriseringsrute. Validerer lineæralgebraen på de committede inndataene, ikke jakobianen (SPICE-delen av kampanjeraden gjør det) og ikke den fysiske nøyaktigheten til den illustrerende kampanjen
Tester
tests/lunar_frame_campaign_mpmath_oracle.rs (lunar_frame_campaign_datum_matches_mpmath_extended_precision: tre scenarioer — stasjoner estimert på en ny kampanjedato 2026-03-18 (bindende), stasjoner fastholdt på den datoen…
ValidertDatumløser med kvadratrotinformasjon mot utvidet presisjon på 50 sifferlinalg_sr, lunar_frame_campaign
Funksjon
En valgfri løser med kvadratrotinformasjon (lunar-frame-campaign solver = "srif"; standard uendret) som aldri danner eller inverterer en informasjonsmatrise for datumet: Householder-QR (ortogonal-triangulær dekomposisjon) av den hvitede forsinkelsesjakobianen som en målingsoppdatering i et kvadratrotinformasjonsfilter, jordstasjonene marginalisert gjennom den avsluttende triangulære blokken (hvis Gram-produkt er Schur-komplementet), en andre QR av R_bb A for Helmert-datumet med sju parametere, sigma som radnormene til den triangulære inversen, og spekteret (tilstandstall, svakeste retning) fra en ensidig Jacobi-singulærverdidekomposisjon. Indreprodukter kompenseres med et Dekker-splittet feilfritt produkt, slik at hver operasjon er en korrekt avrundet grunnleggende IEEE-754-operasjon eller kvadratrot; identiske resultater på hver plattform argumenteres ut fra det, ikke testet på tvers av plattformer
Uavhengig referanse
mpmath 1.3.0 (BSD-3-Clause) med 50 signifikante siffer, selvkontrollert ved 80 (enighet 1.4e-43 eller bedre), på motorens committede jakobian, vekter og Helmert-utforming (P2, et uavhengig numerisk bibliotek: mpmaths egen LU-løsning, invers, Cholesky- og Jacobi-egenverdidekomposisjon). Forhåndsregistrert b41908c9 før løseren ble skrevet, med terskler fra en førsteordens bakoverfeilgrense i kvadratrotform: Householder-QR-konstanten mn pluss (3n+1)n ganger enhetsavrundingen (Higham, Accuracy and Stability of Numerical Algorithms, teorem 19,4 og kapittel 8) ganger eksakte følsomheter. Målt: datumsigma innenfor 3.0e-13 på 2026-06-09 (terskler 4.1e-7 til 5.3e-7), 1.9e-15 med stasjonene fastholdt (terskler ned til 4.8e-12), 3.8e-13 på 2026-03-18 og 2.3e-13 på 2024-01-01, der standard spektralløser er feil med 4.8e-6 og 9.7e-6; tilstandstall innenfor 4.9e-13; svakeste retning innenfor 1.4e-13 rad (kontroll 1.7e-16 mot 5.1e-10). KONTROLLENS GRENSE: tersklene bekrefter bare datumfeil under omtrent 2e-7 relativt; de målte tallene på 1e-13 er observasjoner, ikke det tersklene bekrefter. Kontrollen forkaster standard spektralløser (sigma 9.7e-6 mot 2.9e-7 på 2024-01-01; på den bindende datoen 1.3e-6 mot 4.9e-7, en margin på 1,3 til 2,6) og en feilaktig tatt triangulær invers (kolonnenormer: rød), men et snudd Householder-fortegn, et ikke-kompensert prikkprodukt og sigma fra en spektral invers av H dannet fra kvadratrotfaktoren (3.7e-9) består alle, så den viser ikke at hvert kvadratrottrinn er nødvendig. Validerer lineæralgebraen til den valgfrie løseren på committede inndata, ikke jakobianen og ikke standardløseren; bitreproduserbarhet på tvers av plattformer argumenteres ut fra operasjonene som brukes og er testet bare som identitet ved gjenkjøring på én plattform
Tester
tests/lunar_frame_campaign_srif_mpmath_oracle.rs (srif_datum_matches_mpmath_extended_precision: fire scenarioer — stasjoner estimert på en ny kampanjedato 2026-06-09 (bindende), stasjoner fastholdt på den datoen (kontroll)…
ValidertMaritime tillitsmonitorer: aritmetikken de hviler på (NMEA-dekoding, geodetiske forskyvninger, kinematiske statistikker og statistikker for sensorresidualer)receiver_trust (ingest, maritime)
Funksjon
For et fartøy dekoder receiver_trust NMEA 0183-setningene en mottaker og dens instrumenter sender ut (GGA, RMC, VTG, HDT, VHW, VBW, ZDA, GSV), danner øst-nord-forskyvningen mellom posisjonsbestemmelser (maritime::en_offset_m), og ut fra disse statistikkene monitorene avgjør på: den implisitte farten, residualen til dødregning, implisitt akselerasjon og implisitt svingrate over vinduer på 30 s, residualene for kurs mot kurs over grunnen, fartslogg mot fart over grunnen og antennehøyde (medianer over 10 s), og spredningen og økningen i signal-til-støy for satellittene.
Uavhengig referanse
HVA SOM KONTROLLERES EKSTERNT, snevert angitt: (1) dekodingen av hvert felt monitorene leser, mot pynmea2 1.19.0 (MIT) på 8 syntetiske logger (1 086 epoker), til 1e-9 i feltets enhet (breddegrad og lengdegrad, høyde, geoideseparasjon, HDOP, hastigheter, kurs, heading, signal-til-støy; heltall og datoer eksakt; klokkeslett til 1e-6 s), største avvik på nivå med det siste sifferet i et flyttall med dobbel presisjon; (2) øst-nord-forskyvningen mellom to posisjonsbestemmelser, som avstand og peiling, mot WGS84-geodeten til geographiclib 2,1 (MIT) på 223 par av posisjonsbestemmelser med grunnlinjer på opptil 2 km, fra -45 til 70 grader bredde og på tvers av antimeridianen, til 0,01 m og 0,001 grader (peilingen mot geodetens middelasimut, retningen til korden); (3) monitorenes inndatastatistikker ved 341 skårede epoker av en syntetisk reise på 400 s med en sving og et posisjonssteg, mot Python-omberegninger som bruker geographiclib for avstand og asimut, pynmea2 for dekoding og numpy for medianer og standardavvik: implisitt fart til 0,005 m/s, residual for dødregning til 0,02 m, akselerasjon til 5e-4 m/s^2, svingrate til 1e-3 grader/s, medianene for residualene og spredningen og økningen i signal-til-støy til 1e-6. HVA SOM IKKE KONTROLLERES: vinduslengdene, tilleggene og tersklene til monitorene er dette prosjektets egne regler; Python gjengir dem fra den samme dokumentasjonen, så enighet underbygger implementasjonen av aritmetikken, ikke reglene. THS-setningen har ingen pynmea2-klasse og ROT-setningen leses ikke; ingen av dem er dekket. Tabellen fra en NMEA-talker og satellittnummer til en satellitt-ID i RINEX-stil er dette prosjektets egen (bare nummeret, talkeren og verdien sammenlignes). Inndataene for tidssteg, vertsklokke og autentiseringsstatus har ingen uavhengig referanse. Alle data er syntetisk tekst fra receiver_trust::synth; ingenting her er en måling, og det gis ingen uttalelse om hvordan noen monitor presterer på ekte interferens. Peiling: sammenlignet med geodetens middelasimut. Den forhåndsregistrerte sammenligningen mot foroverasimuten ved posisjonsbestemmelse 1 feilet ved 0,001 grader (77 av 223 par, verst 8.3e-3 grader) på grunn av en definisjonsmessig forskjell, ikke aritmetikk; endringen ble gjort etter den første kjøringen og begge resultatene er registrert (sammenligningen av foroverasimut blir stående i testen som en beskrivende grense på 0,01 grader som ikke er forhåndsregistrert). Opplyst: de første kjøringene fant inndata som utnyttet for lite (akselerasjon og svingrate ble klemt til null ved hver epoke, og sporet over antimeridianen krysset den aldri), en feil i den syntetiske generatoren (ingen lengdeomslag) og, for peilingen, at den registrerte størrelsen fra den uavhengige referansen (geodetens foroverasimut ved første posisjonsbestemmelse) avviker fra kordens retning med omtrent halve meridiankonvergensen (77 av 223 par utenfor 0,001 grader, verst 8.3e-3); inndataene ble rettet og peilingen sammenlignet mot middelasimuten ved samme toleranse (endringene 1 til 3 i forhåndsregistreringen, gjort etter at resultatene var sett og dermed ikke blinde); sammenligningene av kurs og heading ble gjort sirkulære (360 og 0 grader er én kurs, endring 5). Mutasjon: en skalering på 1e-4 av østforskyvningen feiler geodesisammenligningen.
Tester
tests/maritime_trust_reference.rs (t1_nmea_decoding_matches_pynmea2, t2_east_north_offsets_match_the_wgs84_geodesic, t3_t4_monitor_input_statistics_match_the_oracle) against…
ModellertMaritim tillitsscore: aggregeringen av monitorenes evidens til en score fra 0 til 100 og dens tre båndreceiver_trust (score, monitors, live)
Funksjon
Hver monitor reduserer sin evidens til et forhold mellom statistikk og terskel; scoren er 100 minus summen over monitorer av vekt ganger en avgrenset lineær rampe av forholdet (0 opp til 0,5, 1 ved 1,5), avgrenset til 0 til 100 og avrundet til 0,1, med bånd ved 90 og 55; hver epoke lister monitorene som trakk fra og poengene deres.
Uavhengig referanse
Implementasjon mot spesifikasjon, IKKE en ekstern uavhengig referanse: en clean-room-reimplementasjon i Python (scripts/maritime_score_cleanroom.py), skrevet av en leser som bare fikk docs/RECEIVER-TRUST.md og docs/MARITIME-TRUST.md og ikke Rust-kilden, stemmer med score_from_ratios på 600 forholdsvektorer (score, bånd, poeng og rekkefølgen på fradragene, differanse 0), etter at dokumentasjonen ble komplettert der den første leseren fant den taus eller inkonsistent (rekkefølge ved likhet, avrunding, forholdet for en monitor som er bestått-eller-ikke, to eksempler hvis tall ikke stemte med formelen). Det viser at dokumentasjonen er tilstrekkelig og at koden gjør det den sier. HVA SOM IKKE KONTROLLERES, og hvorfor raden forblir MODELLED: selve regelen (vektene, rampen, båndgrensene, evidensholdet) er dette prosjektets egen, forhåndsregistrert men uten ekstern kilde, og ingenting her viser at en score på 80 eller 40 betyr det en navigatør ville ønske at den betyr ved ekte interferens; ingen tall av den typen oppgis. Monitorenes terskler er likeledes dette prosjektets egne (rad A kontrollerer bare aritmetikken deres).
Tester
tests/maritime_trust_reference.rs::t5_score_matches_the_clean_room_reading_of_the_documented_rule; receiver_trust::score::tests (monotone in every statistic, adding a monitor never raises the score, healthy statistics…
ValidertNMEA 0183 treningsstrøm: formatkontroll og dekodede verdiernmea_synth (track, sentences, scenarios); cli nmea-scenario
Funksjon
Syntetiske NMEA 0183-strømmer for bro for mannskapstrening (kshana nmea-scenario): GGA, RMC, VTG, ZDA, GNS, GSA, GSV, HDT, VBW og PKSHT-markøren, generert fra et referansespor med modellerte effekter fra mottaker, himmel, jamming og spoofing. Bare tekstutdata; ingenting sendes.
Uavhengig referanse
HVA SOM KONTROLLERES EKSTERNT, snevert angitt: alle 225 227 setninger fra åtte syntetiske treningsstrømmer (fire biblioteksscenarioer, seeds 1 og 7; GGA, RMC, VTG, ZDA, GNS, GSA, GSV, HDT, VBW og PKSHT-markøren) leses av pynmea2 1.19.0, en uavhengig NMEA-parser, med gyldig sjekksum og forventet talker og type. Posisjonen, farten over grunnen, kursen over grunnen, headingen, UTC-tid og -dato, posisjonsstatusen og GGA-satellittantallet den dekoder er lik generatorens referansespor innenfor toleranser fastsatt før den første sammenligningen (1.5e-6 grader, 0,06 kn, 0,07 km/t, 0,11 grader kurs, 0,5 grader heading, 0,02 s), kjørt av scripts/gen_nmea_training_ref.py med testdataene i tests/fixtures/nmea_training_ref/. Forventningen til GGA-satellittantallet ble rettet etter den første kjøringen til NMEA-konvensjonen (00 uten posisjonsbestemmelse); numeriske toleranser uendret fra forhåndsregistreringscommitten. HVA SOM IKKE KONTROLLERES: at en mottaker, kartplotter eller brosystem godtar strømmene; realismen i modellene for mottaker, himmel, jamming eller spoofing (nominell himmel, modellert støy, drag- og replay-profiler, alle MODELLED); HDOP, høyde, og DOP- og GSA/GSV-innholdet utover syntaks og antall; instruktørloggen. Ingenting sendes, og det påstås ingen anti-jam- eller anti-spoof-ytelse.
Tester
tests/nmea_training_reference.rs (pynmea2 oracle comparison); tests/nmea_training_scenarios.rs::every_sentence_is_checksum_valid_and_the_reader_accepts_it, ::every_sentence_type_is_present_each_epoch…
ValidertInterferenskart: betydningen av nøyaktighetskoder, AIS-verdier for ikke tilgjengelig, tildeling av rutenettceller, rutelengde per celletilstand og maskering av innlandinterference_map (adsb::nacp_epu_bound_m, adsb::nic_rc_bound_range_m, adsb::AdsbParams::classify, ais::ais_position_is_valid, ais::ais_speed_kn, grid::Grid::cell_of, route::exposure, land::LandMask::is_inland)
Funksjon
Tolkningen av ADS-B-kodene for navigasjonsnøyaktighet og integritet som kartet bruker (EPU-grensen en NACp-kode står for, grensen for inneslutningsradius en NIC-kode står for, og klassene lav og god metoden utleder fra dem); AIS-verdiene for ikke tilgjengelig i posisjon og fart som AIS-leseren forkaster; den faste breddegrad/lengdegrad-rutenettcellen en posisjon faller i; rutelengden, og dens fordeling etter celletilstand (degradert, ikke degradert, ikke vurdert, ikke observert), som rute-eksponering rapporterer; og om en posisjon ligger innenfor land fra et landpolygon med mer enn en buffer. En celle merket som degradert eller anomal er en uttalelse om rapporterte nøyaktighetsfelt eller usannsynlige posisjoner, ikke et funn av interferens, og ingenting her kontrollerer det.
Uavhengig referanse
HVA SOM KONTROLLERES EKSTERNT, snevert angitt: fem uavhengige implementasjoner leser de samme syntetiske inndataene. (1) pyModeS 2,21 dekoder syntetiske DF17-rammer for operasjonell status og luftposisjon; Kshanas NACp EPU-grenser stemmer innenfor 0,5 m (største differanse 0,4 m), dens NIC-inneslutningsgrenser for kodene 5 til 11 stemmer innenfor 1 m, og dens klasser lav og god plasserer alle 12 NACp-kodene og hver NIC-kode referansen produserer (0 til 11) på samme side av tersklene referansens grenser impliserer (0 avvik). (2) pyais 3.3.0 dekoder AIVDM-setninger av type 1 hvis nyttelastbiter skriptet pakker fra de rå ITU-R M.1371-feltverdiene; Kshana avviser nøyaktig de dekodede posisjonene for ikke tilgjengelig (breddegrad 91, lengdegrad 181) og fart (102,3 kn), og beholder 0 til 102,2 kn som dekodet (0 avvik over 94 rammer). (3) shapely 2.2.0 covers() på cellepolygoner stemmer med grid::Grid::cell_of for 1770 punkter over cellestørrelsene 0,5, 0,25, 1 og 0,07 grader, inkludert punkter nær kanten, begge poler og antimeridianen (0 avvik). (4) shapely 2.2.0 snitt mellom rute og celle med geodetiske WGS84-lengder fra GeographicLib 2,1 stemmer med rute-eksponering på 8 syntetiske ruter, inkludert to som krysser antimeridianen: total lengde til 0,6 % (største differanse 0,49 %, kulen mot ellipsoiden) og hver celletilstands lengde til 0,6 % pluss 125 m per stykke (største 21 % av den toleransen). (5) shapely 2.2.0 contains() med pyproj asimutal-ekvidistant avstand til kystlinjen stemmer med innlandsmasken på 2000 m på 992 rutenettsentrumspunkter rundt fire syntetiske øyer, én med en innsjø (0 avvik; 4 punkter innenfor 20 m av bufferen ble utelatt og telt). Toleransene ble fastsatt i tests/fixtures/interference_map_ref/PREREGISTRATION.md før noen sammenligning, og ikke endret etterpå; to feil i de syntetiske inndataene som den første kjøringen fant er registrert der. HVA SOM IKKE KONTROLLERES: Kshana dekoder ikke rå Mode S-rammer eller AIVDM-setninger, så dette validerer tolkningen av allerede dekodede verdier, ikke en dekoder. Referansens NIC-inneslutningsradier for kodene 1, 2 og 4 avviker fra DO-260B (20, 8 og 2 NM), så bare kodene 5 til 11 sammenlignes numerisk. Posisjonsregelen (0, 0), høydegulvet, kildetypefilteret, hashingen av identifikatorer, metodens terskler og statistikker og valget av cellestørrelse er Kshanas egne og er ikke kontrollert mot noe. Rutesammenligningen bruker den samme rette stidefinisjonen i breddegrad og lengdegrad på begge sider, så den kontrollerer lengder og celletildeling, ikke at denne stien er den riktige for et fartøy eller fly. Ingenting her viser at en merket celle er interferens. Inndataene er syntetiske; referansedataene skrives av scripts/gen_interference_map_ref.py (pyModeS er GPL-3.0 og brukes bare i det frakoblede skriptet; CI trenger ikke Python).
Tester
tests/interference_map_reference.rs::adsb_accuracy_and_integrity_codes_agree_with_pymodes (12 NACp codes, 59 NIC rows); tests/interference_map_reference.rs::ais_field_rules_agree_with_pyais_decoding (94 frames)…
ModellertKilderegion for interferens: en mulig senderregion fra posisjonsrapporter fra fly og skipinterference_map::emitter (estimate, sessions, build_units, profile, GaussianFix::from_tdoa), interference_map::emitter_out (locate), kshana interference-map locate
Funksjon
En mulig region for hvor en kilde til forringede navigasjonsrapporter kan befinne seg, fra posisjonsrapporter fra ADS-B (NIC/NACp) eller AIS: radiosiktlinje på en 4/3-jordradius fra rapporthøyden og et høydeområde for senderantennen, en begrenset effektiv rekkevidde for den ukjente effekten, berørte enheter som trekker posterioren mot rekkevidden sin og uberørte enheter med siktlinje som presser mot den, gruppert i økter i tid og rom. Utdata er regioner med høyest tetthet ved oppgitte konfidensnivåer, et posteriort tyngdepunkt med en momentellipse, øktens start, slutt, varighet, berørt areal og antall distinkte fly over publiseringsminimum, en døgnprofil og timer per dag. Terrengfri; én kilde per økt; troverdigheten er betinget av modellen. Valgfri fusjon med en TDOA-posisjonsbestemmelse fra geolocation.
Uavhengig referanse
Ingen eksterne ennå. Bare syntetiske rundturer forover og invers, fra en generator som deler estimatorens modell, så de kontrollerer koden og kalibreringen av de oppgitte nivåene under den modellen og ingenting om virkelige sendere. En ekstern kontroll mot de publiserte senderstedene fra Jammertest 2025 ble forhåndsregistrert (docs/emitter-region/PREREGISTRATION.md, underskrevet av eieren før noen skåret kjøring) og kjørt én gang (docs/emitter-region/RESULTS.md): ADS-B NOT ASSESSABLE (2 planlagte økter, færre enn det registrerte minimumet på 4) og AIS NOT ASSESSABLE (ingen publisert økt), så ingen terskel ble testet og raden forblir MODELLED
Tester
interference_map::emitter unit tests (projection round trip, horizon figure, synthetic forward and inverse round trips: the known emitter lies inside the stated region at about the stated rate, edge cases, session…
ValidertTrådformater for tillitstelemetri: Prometheus tekstutdata og OpenTelemetry OTLP/HTTP JSONtelemetry (prometheus: Registry, render; otlp: build_payload, Exporter (feature otlp); sample)
Funksjon
GNSS-tillit (score, bånd, årsaker, port og, på forespørsel, posisjon) som Prometheus tekstutdata servert på /metrics og som OTLP/HTTP JSON-metrikker, med en grense på kardinaliteten til årsaksetiketter.
Uavhengig referanse
HVA SOM KONTROLLERES EKSTERNT, snevert angitt: vår Prometheus-tekstutdata for en syntetisk strøm på 84 linjer (etikettverdier med anførselstegn, omvendte skråstreker, linjeskift og ikke-ASCII-tekst, 64 årsaksserier pluss en 'other'-sammenslåing, port- og posisjonsmålere) godtas av tekstparseren til prometheus_client 0.26.0, og metrikkfamiliene, typene, hjelpeteksten, etikettsettene og verdiene den leser er helt lik registerets tilstand (verdier ved f64-likhet). Vår OTLP/HTTP JSON for det samme registeret leses av protobuf 7.36.2 json_format.Parse(ignore_unknown_fields=False) inn i ExportMetricsServiceRequest i opentelemetry-proto 1.45.1, og hvert metrikknavn, hver beskrivelse, enhet, art, monotonisitet, aggregeringstidsmessighet, attributt, verdi, starttid og tid er helt lik registerets tilstand. Begge parserne ble vist å avvise et ukjent felt, en feiltypet verdi og en misdannet linje (scripts/gen_telemetry_formats_ref.py). Skjema 1,3 (0,36), forhåndsregistrert (fb226057) før noe verktøy leste det: for en syntetisk skjema-1.3-strøm på 64 linjer (geometristatuser, DOP-er, etiketter og signaltap til stede, null, fraværende og ukjente; fradragsklasser; ikke-lesbare linjer) leser de samme to parserne geometriseriene (Prometheus kshana_trust_geometry*, OTLP kshana.geometry.*) og klasseetiketten på kshana_trust_reason_active nøyaktig slik registeret tilsier (24 familier og 54 samples; 12 metrikker og 31 punkter), promtool 3.5.0 check metrics avslutter med 0 uten lint-problem, og OpenTelemetry Collector contrib 0.135.0 godtar OTLP/HTTP JSON (status 200, ingenting avvist) og filutskriveren registrerer forespørselen uendret (xval/telemetry-1.3, datastyrt: utgivelsesarkivene hentes med festet SHA-256 og utdataene deres committes). HVA SOM IKKE KONTROLLERES: HTTP-endepunktet, levering, tidsavbrudd og gjentilkobling er ikke kontrollert av noen uavhengig referanse, og heller ikke prometheus-mottakeren i Collector; registeret leses gjennom aksessorer, så en feil i selve registertilstanden ville ikke fanges; kontrollen 'committet utdata er gjeldende' for OTLP kjøres bare med otlp-featuren; metrikknavnene og nytten deres for et driftssenter er ikke validert; CEF og LEEF er ikke dekket (se neste rad).
Tester
tests/telemetry_formats_reference.rs (prometheus_client_reads_our_exposition_as_the_registry_implies, the_official_otlp_proto_reads_our_json_as_the_registry_implies, awkward_reason_text_survives_the_parser…
ValidertSIEM-hendelser fra tillitstelemetri: Common Event Format (CEF) over syslogtelemetry (syslog: cef, rfc5424, SyslogSink; time)
Funksjon
Hendelser ved båndbytte (eller per epoke) som Common Event Format-nyttelaster i en RFC 5424-konvolutt over UDP eller TCP, med en dokumentert feltavbildning og CEF-escaping.
Uavhengig referanse
HVA SOM KONTROLLERES EKSTERNT, snevert angitt: mot to uavhengige åpen kildekode-parsere (referanser: pycef 1,11 (PyPI, MIT); Logstash CEF-kodeken (logstash-codec-cef 6.2.7 i Logstash 8.15.3)), på et korpus av CEF-linjer denne craten skrev (157 før endring 4 nedenfor, 170 etter den, 176 etter endring 5): hvert båndbytte og hver epoke i en committet syntetisk tillitsstrøm på 84 linjer, pluss adversarial tekst i verter, årsaker, tidsetiketter og portnavn som inneholder likhetstegn, omvendte skråstreker, omvendt skråstrek-likhetstegn, rør, linjeskift, vognretur, tabulatorer, rekker av mellomrom, flerbyte- og astraltegn og nøkkellignende tekst, ekstreme scorer og forskyvninger, hvert bånd med og uten et forrige bånd. pycef leser linjene hvis header ikke trenger escaping (153 før endring 4, 166 etter den, 172 etter endring 5) og gjenvinner, eksakt, headerfeltene, alvorlighetsgraden, det eksakte nøkkelsettet i utvidelsen og hver verdi (tall ved f64-likhet), etter unescape-reglene i CEF-spesifikasjonen, som pycef ikke anvender og som scripts/gen_cef_ref.py anvender. Logstash-kodeken, som unescaper selv, leser hver linje (157, så 170, så 176), møter den samme terskelen, og gjenvinner også fire headerfelt som trenger escaping (et rør, en omvendt skråstrek og et likhetstegn i versjonsstrengen), som pycefs headermønster ikke kan lese, så headerescaping hviler på Logstash-kodeken alene. Sammenligningsterskelen ble registrert i commitene 5172e579 (pycef) og 0a7598aa (Logstash) før noen av parserne ble kjørt, og begge nådde den ved første sammenligning. Fem endringer er opplyst. Endringene (1) til (3) rørte ingen sammenligningsregel og ingen forventet verdi: (1) en påstand om korpusstørrelse ble rettet fra 5 til 4 båndbytter, en feiltelling, siden strømmen har 4; (2) rørskilletegnet i Logstash-kjøreren ble rettet etter et første forsøk som ikke ga noen hendelser; (3) tillitsscoren og epokeforskyvningen ble flyttet fra CEF-heltallsfeltene cn1 og cn2 til flyttallsfeltene cfp1 og cfp2, en endring av trådformatet gjort i denne utgivelsen, hvoretter korpuset ble generert på nytt og begge referansene kjørt på nytt med terskelen uendret, og de nådde den igjen. Endring (4), 0,36, utvidet korpuset og det forventede nøkkelsettet, registrert i d6331429 før noen av parserne ble kjørt på de nye linjene: skjema 1,3-inndata legger til satellittgeometrien i de egendefinerte feltene cs6 (etikett geometry: status, så ';' og fradragsklassene), cfp3 (geometryHdop) og cfp4 (geometryPdop); 13 geometritilfeller (korpuset til 170 linjer) og de tre nye nøklene; begge nådde terskelen, ellers uendret, ved første sammenligning (pycef 166 av 170 linjer lest, de 4 header-tilfellene av nivå 2 som før; Logstash 170 av 170). Endring (5), 0,36, la til 6 geometrietikett-tilfeller (korpuset til 176 linjer), registrert i 9a8e4fa9 før noen av parserne ble kjørt på dem: fra inndata som bærer geometrietiketten får cs6 et tredje felt (';' og etiketten) og cn1 (geometryUsedSatellites) antall brukte satellitter; avbildningstabellen til Logstash-kodeken ble lest først (ingen flexString-felt, dermed cs6 i stedet for flexString1); begge nådde terskelen ved første sammenligning (pycef 172 av 176, Logstash 176 av 176), og hver tidligere referansepost ble gjengitt uendret. HVA SOM IKKE KONTROLLERES: ingen av parserne typekontrollerer cfp-verdiene (begge beholder dem som tekst), så bruken av flyttallsfeltene hviler på CEF-ordboken og ikke på en uavhengig referanse; ingen leverandør-SIEM ble kjørt; navnene på utvidelsesnøklene og avbildningen er denne craten sitt valg, og parserne viser bare at de leses tilbake som skrevet; RFC 5424-konvolutten, levering, tidsavbrudd og gjentilkobling er ikke dekket; pycef er en liten parser sist utgitt i 2020, og Logstash-kodeken er den mer omfattende referansen.
Tester
tests/cef_reference.rs (pycef_reads_every_tier_1_event_as_the_sample_implies, the_logstash_cef_codec_reads_every_event_including_escaped_headers_as_the_sample_implies…
ModellertSIEM-hendelser fra tillitstelemetri: Log Event Extended Format (LEEF) over syslogtelemetry (syslog: leef, rfc5424, SyslogSink; time)
Funksjon
Hendelser ved båndbytte (eller per epoke) som Log Event Extended Format 2,0-nyttelaster i en RFC 5424-konvolutt over UDP eller TCP, med en dokumentert feltavbildning.
Uavhengig referanse
HVA SOM KONTROLLERES: denne cratens egne tester med eksakte strenger av den dokumenterte LEEF-feltavbildningen, og RFC 5424-konvoluttfeltene; det finnes ingen vedlikeholdt åpen kildekode-LEEF-parser (et søk i Python-pakkeindeksen fant ingen), så formatet er kontrollert mot sin egen spesifikasjon lest av den samme forfatteren, ikke mot en ekstern uavhengig referanse. HVA SOM IKKE KONTROLLERES: om LEEF-nyttelastene godtas av noen leverandørs parser eller SIEM; escaping-reglene utover de dokumenterte; oppførselen til en ekte syslog-samler.
Tester
telemetry::syslog::tests (eksakte LEEF-strenger, escaping, alvorlighetsgrad, RFC 5424-konvolutt, leveringstidsavbrudd og gjentilkobling); tests/telemetry_cli.rs
ValidertIntegritet i bevispakker: signatur, hashkjede og verifikasjonsprosedyreevidence (bundle: create_bundle, sign_detached, chain_link, sha256_hex; verify: verify_bundle, verify_detached; tsr; assemble; cli)
Funksjon
En signert, hashkjedet bevispakke for en GNSS-tillitshendelse: SHA-256 over hver fil og en kjede over manifestet, en Ed25519-signatur over de eksakte manifestbytene, og en verifikator som navngir hver feil (en endret, fjernet, omdøpt, byttet eller tilføyd fil, et omordnet eller redigert manifest, et manifest rehashet uten nøkkelen, en pakke signert på nytt, en feil festet nøkkel, og et tidsstempeltoken som er fjernet, erstattet, søppel eller over et annet dokument).
Uavhengig referanse
HVA SOM KONTROLLERES EKSTERNT, snevert angitt: (1) Ed25519-funksjonene pakken bruker til å signere og til å verifisere strengt (evidence::bundle::sign_detached, evidence::verify::verify_detached) gjengir de offentlige nøklene og signaturene til RFC 8032 avsnitt 7,1 testvektorene 1, 2, 3 og 1024 byte for byte, godtar dem, og avviser hver snudde bit i vektor 1 og hver sjuende bit i de andre og en ikke-kanonisk S+L-signatur; vektorene leses fra RFC-teksten og gjengis av to uavhengige implementasjoner (cryptography/OpenSSL og PyNaCl/libsodium) i scripts/gen_ed25519_rfc8032_ref.py. (2) evidence::bundle::sha256_hex, hashen bak hver pakkehash og kjeden, gjengir eksemplene i FIPS 180-4 SHA-256 (abc; meldingen på 448 bit; én million a), den tomme meldingen og hashlib-digester av en stige fra 0 til 130 byte på tvers av grensene for padding, eksakt. (3) En verifikator skrevet i Python fra docs/EVIDENCE-PACKS.md alene (scripts/evidence_verify_cleanroom.py: hashlib og cryptography; forfatteren leste ingen Rust-kode) stemmer med Rust-verifikatoren på 71 syntetiske intakte og manipulerte pakker, eksakt, på verdiktet, settet av feil med filnavn, signaturverdiktet, og kjedehodet regnet om fra filene og det manifestet registrerer. Første kjøring stemte 64 av 71; avvikene var én tvetydighet i spesifikasjonen (å kontrollere en festet nøkkel mot et ulesbart manifest), ett avvik i referansens grensesnitt og ett ufullstendig bygget tilfelle; spesifikasjonssetningen ble gjort tydeligere, referansen reimplementert fra teksten og tilfellet fullført, uten at noen toleranse eller forventning ble endret (registrert i commit d54e14c6). HVA SOM IKKE KONTROLLERES: clean-room-verifikatoren er en uavhengig implementasjon av en annen forfatter, ikke en tredjepartsautoritet, og den deler spesifikasjonens valg, så den underbygger denne implementasjonen av reglene, ikke reglene; vektorene validerer primitivene, ikke utformingen av pakkeformatet. I denne raden leses RFC 3161-tokenet bare for sitt meldingsavtrykk, og testtokenene er syntetiske og usignerte; autoritetens signatur og kjede verifiseres, valgfritt (kshana evidence verify --tsa-ca), av den separate raden 'RFC 3161 timestamp-token signature and chain verification'. Manipulasjonstilfellene er syntetiske. Ingenting her er en juridisk vurdering av, eller en bekreftelse på, noen pakke.
Tester
tests/evidence_crypto_reference.rs (RFC 8032 section 7.1 vectors 1, 2, 3 and 1024; FIPS 180-4 SHA-256 examples; exact); tests/evidence_pack_reference.rs::kshana_and_the_clean_room_verifier_agree_on_every_case (71…
ValidertVerifisering av signatur og kjede for tidsstempeltoken etter RFC 3161evidence::tsa (verify_token, pem_certificates); evidence::verify (VerifyOptions::tsa_anchors, Failure::TimestampAuthorityInvalid); evidence::cli (--tsa-ca)
Funksjon
evidence::tsa::verify_token, og valgfri kshana evidence verify --tsa-ca <anchors.pem> for en pakkes timestamp.tsr: en RFC 3161 TimeStampResp eller bart TimeStampToken (CMS SignedData over en TSTInfo) kontrollert frakoblet mot betrodde ankere slik openssl ts -verify kontrollerer det: innholdstypen og meldingsdigesten i de signerte attributtene over TSTInfo; signaturen over de signerte attributtene (RSA PKCS#1 v1.5, RSASSA-PSS, ECDSA P-256 og P-384; offentlige RSA-operasjoner på crypto-bigint); ESS-signeringssertifikatet v1 (SHA-1) eller v2 hash som navngir signatursertifikatet, funnet blant tokenets og kallerens ubetrodde sertifikater; signatørens kritiske, eneste utvidede nøkkelbruk timeStamping; kjeden til et betrodd selvutstedt anker med hvert sertifikats signatur, CA-status og nøkkelbruk, og hvert sertifikat gyldig ved tokenets genTime; og meldingsavtrykket mot dataene. Ikke kontrollert: tilbakekalling (CRL, OCSP), navne- og policybegrensninger, nonce
Uavhengig referanse
OpenSSL 3.0.13 (openssl ts -verify -attime genTime, og openssl cms -verify -cades -purpose timestampsign pluss TSTInfo-avtrykket for RSA-PSS-tokener), kjørt av tests/fixtures/evidence_tsa/run_openssl.sh på de 27 tilfellene i cases.tsv: RSA PKCS#1 v1.5 med SHA-256 og SHA-512 og ESS v1 og v2, en ECDSA P-384-rot over en P-256-mellomutsteder og P-256- og P-384-TSA-er, RSA-PSS, et token uten signatursertifikatet med og uten at det leveres, CAdES-signerte tokener, en snudd signaturbyte (tre algoritmer), en endret TSTInfo (to), en snudd mellomsignatur, et ESS-tvillingsertifikat, feil ankere (fire), et utløpt TSA-sertifikat, en ikke-kritisk og en feil utvidet nøkkelbruk, og feil data (tre). Forhåndsregistrert i tests/fixtures/evidence_tsa/PREREGISTRATION.md (committet alene, 30ad70b2, før verifikatoren fantes; OpenSSL-verdiktene kjørt på nytt etterpå, byte-identiske). Første kjøring: alle 27 verdikter stemmer (B1) og hver genTime stemmer til sekundet (B2). Omfang, snevert angitt: selvgenererte testsertifikater og -tokener, laget av den samme OpenSSL som dømmer dem; OpenSSL er en uavhengig implementasjon, ikke en tidsstempelautoritet; ingen offentlig autoritets token følger med (freetsa.org oppgir ingen lisens). Ingenting her bekrefter noe ekte tidsstempel
Tester
tests/evidence_tsa_openssl.rs::every_case_agrees_with_openssl (the pre-registered comparison); evidence::tsa::tests (civil dates and times, base64, the RSA public operation)…
ModellertTerskler for interferens hos mottakertillit kalibrert på datasettet JammerTest 2024receiver_trust::calibration (run_dataset); receiver_trust::monitors (MonitorConfig::profile, JAMMERTEST_2024_CALIBRATED); realdata::jammertest; examples/jammertest_trust_calibration.rs
Funksjon
receiver_trust::calibration::run_dataset: den forhåndsregistrerte kalibreringen av monitorene for C/N0-fall, AGC og jamming-indikator på det offentlige datasettet JammerTest 2024 (Zenodo 15911589, GPL-3.0-or-later, hentet ved kjøring, aldri medfølgende): per mappe en tidslinje på 1 s fra mon_rf.csv og rinex.csv, monitorene kjørt én gang, hver epoke etter kalibreringen merket ren eller jamming fra mappens attack_log (forskjøvet fra CEST til UTC, vakt på 60 s), hver terskel sveipet over et fast rutenett, den minste terskelen med samlet sannsynlighet for falsk alarm på rene epoker på høyst 0,01 valgt, og antall med leave-one-folder-out som tilbakeholdt datasett; en kryssjekk av UBX-leseren. Utvalget leveres bare som den valgfrie profilen [monitors] profile = "jammertest-2024-calibrated" (cn0_drop_db 1,5, agc_k_sigma 3,5, jam_ind_threshold 29); standardregelen og alle utdata uten den er uendret
Uavhengig referanse
Datasettets publiserte hendelseslogger (attack_log-vinduer), som hendelsesreferanse, under forhåndsregistreringen xval/jammertest-trust/PREREGISTRATION.md (committet alene, 0fa012b, før harnessen kjørte). Første og eneste kjøring (xval/jammertest-trust/RESULTS.md): 14 av 24 mapper kunne evalueres (7 med jamming), 3 502 rene og 9 560 jamming-epoker. Sannsynlighet for falsk alarm på rene epoker i tilbakeholdt datasett: cn0_drop_db 0,0231 (81/3502) mot en terskel på 0,02, FAIL; agc_k_sigma 0,0003, bestått; jam_ind_threshold 0,0094, bestått; unionen av de tre: falske alarmer 0,0328, deteksjon 0,807 mot 0,05 og 0,50, bestått. Etter den registrerte regelen er raden MODELLED (én terskel feilet). Snevert: én mottakertype (u-blox ZED-F9P), én hendelse, planlagte ettminuttsslotter som referanse (deteksjon en nedre grense; ren betyr utenfor de loggede vinduene); kalibrert på CSV-loggene, og UBX-leseren gir flere falske alarmer på to mapper. Maritime bånd for tillitsscore er ikke kalibrert
Tester
tests/receiver_trust_jammertest_calibration.rs::the_recorded_calibration_reproduces (ignorert, datastyrt av KSHANA_JAMMERTEST_DIR: det registrerte utvalget, tilbakeholdte antall, terskelutfall og utfall)…
ModellertJammertest-skåring: en mottakerlogg skåret per planlagt test (deteksjonsforsinkelse, uteblitte alarmer, falske alarmer, tid til gjenoppretting) mot den publiserte testplanenjammertest::plan (parse_catalog, parse_plan, import, import_attack_log, events_toml); jammertest::score (score_run); jammertest::dataset (run_dataset); jammertest (score_log, score_pack); examples/jammertest_score_2024.rs
Funksjon
jammertest::{plan, score, dataset} (kshana jammertest import|score): NPRAs testkatalog og sendeplan (MIT, hentet med en festet SHA-256, aldri medlevert i kildekoden) lest som planlagt referanse med katalog-ID-ene bevart; en kjøring av receiver-trust skåret per test (første alarm minus planlagt start, oppdaget/sen/uteblitt mot en toleranse, tid til første alarmfrie strekning, alarmer utenfor alle tidsluker og deres sikkerhetsmargin), med en signert bevispakke som bærer skåringskortet. Planen består av planlagte tidsluker, ikke registrerte sendetidspunkter
Uavhengig referanse
Planens antall tidsluker per testområde (76, 77 og 45 tidsluker, hvorav 61, 63 og 32 sender) ble talt opp uavhengig med et skript over den samme JSON-filen; angrepsloggens (attack_log) vinduer i datasettet fra 2024 er hendelsesreferansen, under xval/jammertest-score/PREREGISTRATION.md (innsjekket alene, c2e6d3b, før skåreren ble kjørt). Første og eneste kjøring (xval/jammertest-score/RESULTS.md): den registrerte regelen om minstemengde data SVIKTET (4 skårbare jammingvinduer fra 4 av 12 UBX-mapper mot et minimum på 10 vinduer fra 2 mapper: 5 mapper ble forkastet av grunnlinjeregelen, 3 UBX-logger har bare GPS-ukesekunder), så terskelene B1 til B4 kan ikke vurderes; ingenting ble løsnet eller kjørt på nytt. v2 (xval/jammertest-score/PREREGISTRATION-v2.md, innsjekket alene, kun håndtering av data: logger med bare GPS-tid plassert ut fra datoen, de 12 mappene med bare CSV, en økt med bevegelig plattform for bevegelige rovere; samme terskler og samme regel om minstemengde data): 14 av 24 mapper beholdt, men bare 7 skårbare jammingvinduer, regelen om minstemengde data sviktet igjen, ingen terskel kan vurderes (RESULTS-v2.md). Planlagt referanse: en planlagt tidsluke er ikke en registrering av faktisk sending, en uteblitt deteksjon kan være en test som aldri ble kjørt, en forsinkelse regnes fra planlagt start, og ren betyr utenfor de planlagte tidslukene. Deteksjon med monitorer i måledomenet sier ingenting om en spoofer med lav effekt. Én mottakertype (u-blox ZED-F9P). NMEA-datasettet fra SimulaMet fra 2025 brukes ikke (ingen oppgitt lisens, bak abonnementsmur)
Tester
tests/jammertest_plan_roundtrip.rs (datastyrt av KSHANA_JAMMERTEST_PLAN_DIR: sporantall per testområde i planen fra 2025, katalog-id-er, TOML-rundtur); tests/jammertest_score.rs (en syntetisk logg med et kjent fall…
ValidertTest-bench-eksport (kshana bench-export): jordfaste og geodetiske kolonner, kolonner for lokal hastighet, orienteringskolonner og utdata i NMEA 0183interop::testbench (write_motion_csv, write_nmea, trajectory_of, export); fusion::pack::truth_trajectory
Funksjon
Bevegelses-CSV-filens kolonner for jordfast posisjon, geodetisk posisjon, jordfast hastighet, heading/pitch/roll og UTC, og NMEA-setningene GGA/RMC, skrevet ut fra syntetiske scenarioer (gnss-ins, inkludert automotive-urban-canyon, jamming, gnss-sim). Kun bevegelse og hendelser; det skrives ingen signaler, og det hevdes ingen ytelse for noen simulator eller mottaker.
Uavhengig referanse
HVA SOM KONTROLLERES EKSTERNT, uttrykt snevert: mot pyproj 3.8.0 (PROJ 9.8.1), geographiclib 2,1, pynmea2 1.19.0 og scipy 1.18.1, kjørt av scripts/gen_testbench_ref.py på 4 syntetiske scenarioer, med toleranser fastsatt før den første sammenligningen (hver av dem er skriverens verste avrundingstilfelle): de jordfaste kolonnene er lik WGS 84-omregningen av de geodetiske kolonnene (verst 1.3e-4 m, terskel 3e-4) og omvendt (1.3e-9 grader, terskel 2e-9; høyde 1.3e-4 m, terskel 3e-4) på hver rad; den jordfaste hastigheten rotert til nord-øst-ned med PROJs toposentriske operasjon er lik motorens sanne NED-hastighet (7.5e-5 m/s, terskel 2e-4); heading, pitch og roll er lik scipys yaw-pitch-roll av motorens sanne kvaternion (5.0e-7 grader, terskel 1e-6); hver NMEA-setning tolkes i pynmea2 med gyldig kontrollsum, og dens dekodede posisjon (1.2e-3 m, terskel 5e-3), høyde, fart, kurs (5.0e-4 grader, terskel 1e-3) og tid er lik bevegelsesverdiene; UTC-kolonnen er lik uavhengig aritmetikk på dato og klokkeslett. SHA-256 for de nøyaktige CSV- og NMEA-bytene som ble kontrollert, er festet. HVA SOM IKKE KONTROLLERES: scenarioets sanne bane i seg selv (kjøreprofilen og integrasjonen av den); konvensjonene (heading er kroppens yaw, ikke kursen, og avviker fra den med opptil omtrent 77 grader på automotive-urban-canyon; GGA-kvalitet, antall satellitter og HDOP er plassholdere); om noen laboratoriesimulator leser filene slik det er ment; enhver ytelse for simulator eller mottaker. De uavhengige referansene kontrollerer omregninger og kodinger, ikke fysikken i scenarioet. Håndtering av lokalt koordinatsystem kontrolleres bare gjennom hastighetsrotasjonen og NMEA-fart og -kurs (CSV-filen har ingen kolonne for lokal posisjon).
Tester
tests/testbench_reference.rs (7 tests: oracle pins, export bytes, worst case over every row, position columns, local velocity vs true NED velocity, Euler angles vs scipy, NMEA vs pynmea2); tests/interop_testbench.rs…
ModellertCompliance-kartlegging mot offentlige rammeverkcompliance
Funksjon
compliance (kshana compliance-report): en kobling fra Kshana-utdata til punkter i offentlige rammeverk, utelukkende etter nummer, fylt ut fra kjøringene som er oppgitt; et resultat teller for en funksjon bare når det bærer evidensen koblingen nevner, en tom mengde gir ingen evidens, og formuleringen er "gir belegg for"; rapporten er ikke en konklusjon om at noe rammeverk er oppfylt, og ikke en vurdering eller godkjenning fra noen.
Uavhengig referanse
Referanser kontrollert mot en skriptuttrukket overskriftsindeks over de siterte offentlige dokumentene, lest 2026-10-10 (tests/compliance_references.rs). HVA SOM KONTROLLERES: 49 siterte referanser til punkter, seksjoner, avsnitt eller overskrifter finnes i det siterte dokumentet, og 7 siterte URL-er ble løst opp på den registrerte datoen (2 via en annen vei); negative kontroller feiler. HVA SOM IKKE KONTROLLERES: at noen parafrase, kobling eller mangel er riktig; EN 16803-punkter (betalt, kun katalogtekst); senere revisjoner; indeksen er ikke en uavhengig implementasjon.
Tester
tests/compliance_report.rs::mapping_is_well_formed; tests/compliance_report.rs::wording_rule_holds_in_mapping_report_and_docs; tests/compliance_report.rs::empty_set_evidences_nothing…
ModellertMaritime integrasjoner: Signal K-plugin, OpenCPN-gatestrøm og skårepanel, referansebyggreceiver_trust (live: gaten, dens TCP-lytter, PKSHT); utenfor crate-en: integrations/signalk (JavaScript), integrations/opencpn (JavaScript-relé, C++ innebygd plugin), deploy/reference-build (systemd-enheter, container)
Funksjon
Tillitsscoren, båndet, årsakene, gate-tilstanden og mottakerrapportert posisjon publisert under navigation.gnss.kshana i en Signal K-server med en warn-, alarm- og normal-varsling (integrations/signalk); den gatede NMEA-strømmen, med posisjonsbestemmelsen merket ugyldig mens tilliten er kollapset og en PKSHT-setning per syklus, levert til OpenCPN over TCP av selve gaten eller av et lite relé, og et innebygd OpenCPN-skårepanel som leser PKSHT-setningen (integrations/opencpn); og systemd-enheter og en container som kjører gaten (deploy/reference-build). Der disse viser utdata, bærer de den veiledende erklæringen: Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon.
Uavhengig referanse
HVA SOM KONTROLLERES, uttrykt snevert: at disse integrasjonene fungerer mot den virkelige programvaren de er skrevet for. EVIDENSEN er sjekket inn i integrations/signalk/evidence/README.md (med JSON-filene) og integrations/opencpn/evidence/README.md (med skjermbilder og logger), hver med skriptet som gjengir den. (1) Signal K: pluginen lastet inn i den festede npm-pakken signalk-server 2.33.0, i et privat navnerom kun for loopback, matet med syntetiske data. Serverens egne REST- og WebSocket-grensesnitt viste de publiserte banene, skåremetadataene og et varsel som gikk fra fraværende til warn, alarm, normal (etter holdetiden) og warn igjen da dataene stoppet. Med den virkelige kshana kjørt av pluginen på NMEA-dataene serveren selv mottok, gikk varselet til warn og deretter alarm, og den rapporterte posisjonen ble publisert; serverens egen navigation.position ble skrevet av dens NMEA-leverandør, aldri av pluginen. Kjørt på nytt mot levende JSON-skjema 1,2. (2) OpenCPN: pluginen bygd mot OpenCPNs plugin-API-header og wxWidgets 3.2.4, lastet inn i Ubuntu 24,04-pakken av OpenCPN 5.8.4 under en virtuell skjerm; OpenCPN lastet den, kjørte initialiseringen og ga den PKSHT-setningene fra den gatede strømmen, og panelet ble rødt på det ikke-pålitelige båndet. I én ren kjøring sluttet OpenCPNs egen skipsposisjon å oppdateres, og posisjonsindikatoren falt, da gaten merket posisjonsbestemmelsen ugyldig. En andre kjøring matet direkte fra gatens TCP-lytter viste levering til pluginen, men ikke et rent før-og-etter. (3) Relétestene spiller av et registrert utdrag av den gatede strømmen gjennom en ekte TCP-socket og kontrollerer hva en forbruker mottar (bytene uendret, gyldige kontrollsummer på hver setning, også de omskrevne, GGA og RMC som stemmer overens, én PKSHT per syklus med gate-feltet der posisjonsbestemmelsen er ugyldig), og ende-til-ende-skriptet kontrollerer at en forbruker av gatens lytter mottar nøyaktig de bytene den samme gaten skriver til standardutdata. (4) PKSHT-parserne (JavaScript og C++) kjøres over setninger registrert fra kshana-utdata og avviser en feil kontrollsum, en feil versjon eller en score utenfor 0 til 100. (5) systemd-enhetene kontrolleres med systemd-analyze verify (systemd 255, binærfiler erstattet med stubber) og med vakter mot et skall i ExecStart, omstartspolicyen og sandkassenøklene; containerens inngangspunkt og dens håndtering av argumenter kontrolleres med en stubb-binærfil. HVA SOM IKKE KONTROLLERES: det finnes ingen ekstern uavhengig referanse for noen verdi disse integrasjonene viser. Tillitsverdiene selv er radene ovenfor, og en integrasjonskjøring viser bare at rørleggerarbeidet bærer dem fram; derfor er denne raden MODELLED og ikke VALIDATED (docs/VALIDATION.md). Ingen virkelig båt, mottaker, lang kjøring, annen versjon av noen av vertene, annet operativsystem eller skrivebord ble brukt; alle data er syntetisk tekst, og ingenting her er en måling. Varslets lyd og visuelle håndtering hos en virkelig Signal K-klient, OpenCPNs verktøylinjeknapp, innstillinger og utdatert tilstand, og pakking for OpenCPNs plugin-behandler ble ikke prøvd. systemd-sandkassenøklene ble bare kontrollert for syntaks, ikke kjørt under en levende systemd, og bygget av containerbildet og dets helsekontroll har ingen innsjekket evidens her. Ingen deteksjons- eller falskalarmtall hevdes. Veiledende programvare, ikke typegodkjent navigasjonsutstyr (IEC 61108, IEC 61162): operatøren er fortsatt ansvarlig for fartøyets navigasjon.
Tester
tests/receiver_trust_live_cli.rs (porten og dens TCP-lytter, Rust-siden); integrations/signalk/test/adapter.test.js, integrations/signalk/test/model.test.js og integrations/signalk/test/plugin.test.js (24 Node…
ModellertSporing med BOC(1 1): DLL-skalering og oppløsning av bump-jump-flertydighet (valgfri)iq::track::boc (BocKind, BocTracking, BumpJump, boc11_dll_scale); iq::track::channel (the bump-jump taps and Channel::bump_jumps)
Funksjon
Feltet boc i iq::track::LoopConfig (valgfritt, None som standard): de tre DLL-diskriminatorene skalert slik at de leser kodefeilen i chip med enhetsstigning på hovedtoppen til sinus-BOC(1 1), og en bump-jump-monitor på veldig tidlige og veldig sene korrelatorer ved én halvperiode av underbæreren (0,5 chip) som hopper kode-NCO-en mot hovedtoppen når en opp/ned-teller når N (8 som standard). Uten valget er alle utdata uendret.
Uavhengig referanse
Intern konsistens mot injisert referanse og lukkede formler, under terskler forhåndsregistrert i 6b68f6cc (docs/design/evidence/boc-bump-jump/). Et BeiDou B1C-datasignal (PRN 19, 5 MS/s) generert av iq::scene: med valget av blir en start på sidetoppen falskt låst ved den predikerte ±(0,5 + d/4) chip (målt ±0,549); med valget på, ett hopp mot hovedtoppen ved 0,08 s og et RMS-tall i sent vindu på 0,0008 chip ved 45 dB-Hz og 0,0048 chip ved 35 dB-Hz; ingen hopp fra hovedtoppen ved 35, 40 og 45 dB-Hz over 4 s; den skalerte EMLP-stigningen 0,94 til 0,99 på det samplede signalet (uskalert 3,6 til 3,8). Bump-jump-detektoren alene, på korrelatortripler med den eksakte BOC(1 1)-støykovariansen, ga ingen falske hopp i 100 000 oppdateringer ved 25 til 45 dB-Hz og oppdaget 1000 av 1000 starter på sidetopp ved 35 dB-Hz. NOT MET (funn F1): det forhåndsregistrerte enhetstestrutenettet for skaleringen inneholder avvik utenfor diskriminatorenes lineære område, der de skalerte avlesningene bommer på avviket med opptil 48 %. HVA SOM IKKE KONTROLLERES: IQ fra felt, båndbegrensede frontender, sammensatte MBOC/QMBOC-replikaer og enhver ekstern mottaker.
Tester
tests/iq_boc_bump_jump.rs (b1_b2_b3_side_peak_and_false_jumps_on_the_iq_chain, b4_scaling_on_the_sampled_signal, b5_false_jump_rate_and_detection_at_correlator_level); iq::track::boc unit tests…
ModellertIQ-kanal for ionosfærisk scintillasjon (Cornell-modellen) mot målt 50 Hz GPS L1-scintillasjoniq::channel::scint (Scintillation, ScintParams); realdata::scint50 (parse_log, segments, measured_windows, model_windows, compare)
Funksjon
iq::channel::scint, Cornell-scintillasjonsmodellen (Rice-intensitet, andreordens Butterworth-spekter, fase arg z) drevet ved et målt vindus S4 og intensitetens dekorrelasjonstid, sammenlignet på det den genererer utover disse to inngangene; realdata::scint50 leser den målte loggen, fjerner trenden og kjører sammenligningen.
Uavhengig referanse
Målte data under terskler forhåndsregistrert i b6ccb499 (xval/scint-malindi/): Zenodo-post 16941224 (INGV, Malindi, 18 mars 2023, GPS PRN 26, intensitet og bærebølgefase ved 50 Hz, CC BY 4,0, SHA-256 kontrollert). 22 kvalifiserende vinduer på 60 s (N1 nådd). MET: intensitetsfordelingen (Kolmogorov-Smirnov D 0,0415, terskel 0,05) og fasescintillasjonen knyttet til S4 (median av målt/modell sigma-fase 0,779, terskel 2/3 til 3/2). NOT MET (funn F1): modellens andel dype fades er 2,38 ganger den målte (terskel 0,5 til 2), og dens gjennomsnittlige fade er 3,51 ganger så lang (terskel 2/3 til 3/2). Funn F2: den registrerte behandlingen leser modellens innpakkede fase, noe en selvkontroll avdekket; B3 gjentatt i etterkant med utpakket fase gir 0,804. HVA SOM IKKE KONTROLLERES: andre netter, stasjoner, breddegrader eller signaler; mottakerstøy i modellen. Raden forblir MODELLED.
Tester
tests/iq_scint_malindi_measured.rs (cornell_model_verdict_is_the_recorded_one, det registrerte utfallet påvist som registrert, funn F1; finding_model_fades_are_deeper_and_longer_than_measured…
ModellertValgfri celle-midlende CFAR i IQ-akkvisisjoniq::acq (CfarConfig, ca_cfar, ca_cfar_cells, ca_cfar_pfa, ca_cfar_alpha)
Funksjon
iq::acq::ca_cfar og ca_cfar_cells (valgfri): en celle i et akkvisisjonsrutenett sammenlignes med gjennomsnittet av referanseceller i sin Doppler-rad (vern- og steglag, med omlegg rundt perioden), med en faktor alpha fastsatt ut fra den lukkede formelen for CA-CFAR-falskalarmsannsynligheten for M ikke-koherente blokker (ca_cfar_pfa, ca_cfar_alpha). Detektoren på samplet effekt forblir standarden, og alle eksisterende utdata er uendret.
Uavhengig referanse
Lukket formel, under terskler forhåndsregistrert i 3724aefa (docs/design/evidence/acq-cfar/). CA-CFAR-falskalarmsannsynligheten for Gamma(M)-celler, mot Monte Carlo av den eksakte modellen: 18 av 18 tilfeller innenfor 3 binomiale sigma. På hver celle i iq::acq-søk (GPS L1 C/A, 2,5 MS/s, 210 000 celler hver) ved en utformingsrate på 1 %: 0,977 % og 0,969 % på gaussisk støy og 1,006 % og 0,999 % på 2-bits kvantisert støy (M = 1 og 4; terskel pluss/minus 20 %); beslutninger uendret når inngangen skaleres. NOT MET (funn F1): på et støyfritt 2-bits signal er deteksjonen og dens celle riktige, men 1,28 % av cellene utenfor toppen i toppens rad (terskel 1 %) overskrider grensen, ved kodens deterministiske korrelasjonssidelober. HVA SOM IKKE KONTROLLERES: andre CFAR-varianter, todimensjonale vinduer, båndbegrensede frontender, feltdata.
Tester
tests/iq_acq_cfar.rs (c1_closed_form_matches_monte_carlo_of_the_exact_model, c2_false_alarm_rate_on_gaussian_noise, c3_false_alarm_rate_on_two_bit_noise, c5_decisions_do_not_depend_on_the_input_scale…
ModellertSpektrummodell: GLONASS-, BeiDou- og Galileo E6-bånd (valgfri)spectrum (default_band, MORE_BAND_NAMES, GLONASS_CHANNELS)
Funksjon
spectrum::default_band løser opp, bare etter navn (MORE_BAND_NAMES), GLONASS L1OF og L2OF på hver FDMA-kanal K = -7 til 6 (BPSK, 0,511 Mchip/s), BeiDou B1I (BPSK(2)), B1C (MBOC(6,1,1/11)), B2a og B3I (BPSK(10)) og Galileo E6 (BPSK(5)), med bærebølgene og minste mottatte effekter fra deres grensesnittkontrolldokumenter; standard båndsett og alle eksisterende utdata er uendret.
Uavhengig referanse
Publiserte grensesnittkontrolldokumenter og lukkede formler, under terskler forhåndsregistrert i 5806f28b (docs/design/evidence/spectrum-bands/): GLONASS ICD utgave 5,1, BDS-SIS-ICD B1I 3,0, B1C 1,0, B2a 1,0 og B3I 1,0, Galileo OS SIS ICD utgave 2,1. MET: hver bærebølge, chiprate og mottatt effekt som transkribert (28 GLONASS-kanaler), BPSK første nullpunkter ved chipraten, B1C-sammensetningen lik MBOC(6,1,1/11) slik effekttabellen i dens ICD angir, C/N0-baneidentiteten og byte-identiske spektrumscenarioer. NOT MET: enhetsarealterskelen, som var uoppnåelig slik den var skrevet (funn F1; arealene er lik den lukkede formelen for andel i båndet), og overensstemmelsen per bin mellom IQ-lagets B1I- og B1C-bølgeformer og modellens envelope (1,26 og 1,56 dB mot 0,5 dB, funn F2; GLONASS 0,07 dB), fordi Gold- og Weil-koder har ujevne linjespektre; båndmidlet stemmer hovedlobene innenfor 0,25 dB. HVA SOM IKKE KONTROLLERES: registrert IQ, andre signaler, interferens innenfor ett system.
Tester
tests/spectrum_more_bands.rs (s1_new_bands_carry_their_icd_values, s2_nulls_and_b1c_parts, s4_cn0_paths_agree_on_the_new_bands; s2_closed_form_densities_verdict_is_the_recorded_one, finding F1, pinned by…
ValidertBeiDou B1I primære avstandskoder mot en uavhengig generatoriq::signals::beidou (b1i_bits, b1i)
Funksjon
iq::signals::beidou::b1i_bits og b1i: Gold-kodene i BDS-SIS-ICD-B1I-3.0 avkortet til 2046 chip, PRN 1 til 63, slik IQ-laget genererer, akkvirerer og sporer dem.
Uavhengig referanse
GNSS-SDR v0.0.19 (tag v0.0.19, commit 1ddd4562), en uavhengig åpen kildekode-implementasjon av den samme ICD-en: dens beidou_b1i_code_gen_int, kompilert frittstående, genererte alle 63 kodene. Bare programmets utdata er sjekket inn: tests/fixtures/iq_signals/beidou_b1i_gnss_sdr.txt, et prefiks på 64 chip og SHA-256 for hver kode på 2046 chip. Utdataene er BeiDou B1I PRN-kodene som den offentlige BDS-SIS-ICD-B1I-3.0 definerer; ingen GNSS-SDR-kildekode eller binærfil finnes i repoet. Terskel forhåndsregistrert i 911106d1 (xval/beidou-b1i-gnss-sdr/): alle 2046 chip for alle 63 PRN-er identiske, ingen invertering, forskyvning eller omdøping. Resultat: 63 av 63 identiske; fixturen ble generert på nytt fra en fersk utsjekking av v0.0.19 (kildefilens SHA-256 som registrert) og er byte-identisk. HVA SOM IKKE KONTROLLERES: NH20-sekundærkoden, GEO-PRN-listen, bærebølgen og chiprate.
Tester
tests/iq_signals.rs::beidou_b1i_matches_gnss_sdr_generator_for_all_63_prns
ValidertGPS L1C avstands- og overleggskoder mot de trykte kontrollkolonnene i IS-GPS-800Jiq::signals::gps (l1c_weil, l1c_ranging_bits, l1c_p_bits, l1c_d_bits, l1co_s1_run, l1c_o_bits); iq::signals::tables
Funksjon
iq::signals::gps::l1c_p_bits, l1c_d_bits og l1c_o_bits: Weil-avstandskodene L1CP og L1CD (beregnet Legendre-sekvens, Weil-indeks, utvidelsessekvens satt inn før chip p) og L1CO S1-overleggskodene, PRN 1 til 63.
Uavhengig referanse
IS-GPS-800J (01-AUG-2022, distribusjonserklæring A), kontrollkolonnene den trykker ved siden av generatorparametrene: tabell 3.2-2 de første og siste 24 chipene i hver L1CP- og L1CD-kode, tabell 3.2-3 de første og siste 11 bitene i hver L1CO-kode, tabell 6.2-1 Legendre-sekvensen med lengde 10223; transkribert av scripts/extract_is_gps_800_tables.py fra PDF-en (SHA-256 c4aad710...). Terskler forhåndsregistrert i fe372e26 (docs/design/evidence/l1c-codes/): 252 av 252 kolonner, 63 av 63 overlegg og 10 223 av 10 223 Legendre-biter identiske; uttrekkets --check går gjennom; en negativ kontroll feiler på omdøpte, inverterte og forskjøvne koder. HVA SOM IKKE KONTROLLERES: selve generatorparametrene (de kommer fra de samme tabellene), chipene mellom de trykte kolonnene, TMBOC-underbærermønsteret og L1CO S2-kodene.
Tester
tests/iq_signals_gps_l1c.rs (c1_l1cp_and_l1cd_initial_and_final_24_chips_match_is_gps_800j_table_3_2_2, c2_l1co_initial_and_final_11_bits_match_is_gps_800j_table_3_2_3…
ValidertLunaNet AFS-I- og AFS-Q-primærkoder mot de trykte kontrollkolonnene i LSIS-AFS V1.0iq::signals::lunanet (afs_i_bits, afs_q_primary_bits, legendre_bits); iq::signals::lunanet_tables; iq::lunanet_afs::check_spec
Funksjon
iq::signals::lunanet::afs_i_bits og afs_q_primary_bits (signalnavnene lunanet-afs-i og lunanet-afs-q i kshana iq): AFS-I Gold-koden (2047 kortsyklet til 2046, G2 forsinket per PRN) og AFS-Q Weil-primærkoden (beregnet Legendre-sekvens, Weil-indeks, utvidelsessekvens satt inn før chip p), PRN 1 til 210.
Uavhengig referanse
Mot de trykte tabellene i LSIS-AFS V1.0 (merket TBC i spesifikasjonen): LunaNet Interoperability Specification V5, Applicable Document 1 Volume A: LunaNet Signal-In-Space Recommended Standard, Augmented Forward Signal (LSIS-AFS) V1.0, 29 januar 2025 (NASA; PDF SHA-256 986e0795...), kontrollkolonnene den trykker ved siden av generatorparametrene: tabellene C-1 til C-5 og D-2 til D-6 første og siste 24 chip i hver AFS-I- og AFS-Q-kode, tabell D-1 Legendre-sekvensen med lengde 10223; uttrukket av scripts/extract_lunanet_afs_tables.py (xval/lunanet-afs/oracle/). Terskler forhåndsregistrert i b3ba5d5 (xval/lunanet-afs/PREREGISTRATION.md) før generatoren fantes: B1 420 av 420, B2 identisk, B3 420 av 420. Dokumentet merker kodetabellene sine {LSIS-TBC} og sier at de bare er til test og integrasjon, så dette kontrollerer konstruksjonen mot den utgavens tabeller, ikke mot en senere utgave. En forhåndsregistrert påstand om den trykte G2-starttilstanden (B1b) ble oppgitt med feil retning og er NOT MET (0 av 210), festet; det korrigerte forholdet (2047 minus forsinkelsen) holder for 210 av 210 og er registrert som post hoc. HVA SOM IKKE KONTROLLERES: selve generatorparametrene (samme tabeller), chipene mellom de trykte kolonnene, tertiærkoden, meldingslaget og LDPC-kodingen.
Tester
tests/lunanet_afs_codes.rs (b1_afs_i_gold_codes_match_the_printed_first_and_last_24_chips_for_all_210_prns, b2_the_legendre_sequence_of_length_10223_is_the_printed_table_d1…
ModellertLunaNet AFS-tertiærkoder og meldingslag (SB1 BCH, CRC-24Q, interleaver) mot LSIS-AFS V1.0iq::lunanet_afs; iq::signals::lunanet (afs_q_tertiary_bits, afs_q_overlay_bits, afs_q_tiered); surface (lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate)
Funksjon
iq::signals::lunanet::afs_q_tertiary_bits, afs_q_tiered; iq::lunanet_afs: synkroniseringsmønster, SB1 BCH(51 8)-koder og dekoder med 256 hypoteser, CRC-24Q, blokk-interleaveren på 60 x 98, en kontroll av symbolstrømmer (kshana lunanet-afs-check) og en teststrømgenerator med plassholder-underrammer. LDPC-kodingen med rate 1/2 av underrammene 2 til 4 er ikke implementert (matrisene finnes i et eget vedlegg).
Uavhengig referanse
LSIS-AFS V1.0 (som ovenfor): Legendre-sekvensen med lengde 1499 (tabell E-1, identisk) og de første og siste 24 tertiærchipene (tabellene E-2 til E-6: 419 av 420 kolonner identiske; dokumentet trykker de samme siste 24 chipene, A14850, for PRN 147 og PRN 151, og generatoren gjengir PRN 151s, så oppføringen for PRN 147 er mest sannsynlig en trykkfeil; terskelen på 420 av 420 er NOT MET, og avviket er festet); det gjennomgåtte eksempelet i figur 8 for SB1-koden (ett eksempel: 0x045 koder til 0x229F61DBB84A0); CRC-24Q mot katalogens kontrollverdi 0xCDE703 for ASCII 123456789; dokumentets egen rammearitmetikk. Terskler forhåndsregistrert i b3ba5d5. Ett avvik registrert og ett gjennomgått eksempel for meldingslaget, så raden forblir MODELLED. HVA SOM IKKE KONTROLLERES: LDPC og CRC-ordene inne i underrammene 2 til 4, meldingsinnhold og enhver registrert strøm
Tester
tests/lunanet_afs_codes.rs (b4_legendre_1499_matches_and_tertiary_codes_match_except_one_printed_column, the_spec_check_reports_every_bar_and_pins_the_b4_miss); iq::lunanet_afs::tests…
ModellertStandardpakker: scenarioer skåret mot terskler fastsatt før kjøringenstandards_pack; compliance (standards-pack facts in compliance-report)
Funksjon
standards_pack (kshana standards-pack): testprofilene i DHS Resilient PNT-rammeverket for nivå 1 til 4, IMO MSC.1/Circ.1575 nøyaktighetsnivåer og integritetsevaluering, og ICAO Doc 9849 vedlegg F-pakkene monitor, assess og mitigate: hver test kjører en medfølgende scenariotype og sammenligner resultatfelt med terskler oppgitt i pakken, og tester som trenger en mottakerlogg er oppført som NEEDS INPUT og ikke skåret.
Uavhengig referanse
Ingen eksterne for scenarioresultatene: hver pakketest kjører en MODELLED scenariotype. Tersklene er pakkeforfatterens oppgitte profil (DHS-rammeverket oppgir ingen verdier; IMOs nøyaktighetsgrenser er tabell C-1 i MSC.1/Circ.1575, lest i sin helhet; ICAO-pakken følger ICAOs egen presentasjon av RFI Mitigation Plan fordi Doc 9849 er en betalt publikasjon og ikke ble lest), sjekket inn før enhver skåret kjøring i PREREGISTRATION.md-filer i xval-stil under standards/. En MET terskel sier at et modellert scenario nådde en oppgitt terskel, ingenting om et produkt
Tester
tests/standards_packs.rs (pinned_outcomes: statusen til hver test, inkludert bommene L4-T1 og de fire IMO-nøyaktighetstestene); standards_pack::tests
ModellertBevispakke for laboratorie-rundtur (scenario, testbetingelser, mottakerlogg, score)evidence::roundtrip, evidence::assemble, interop::testbench (write_conditions_json), iq::campaign::conditions
Funksjon
evidence::roundtrip (kshana evidence round-trip) og eksporten av mottakerloggen kshana.test-conditions/1 fra kshana bench-export: en signert pakke som registrerer scenarioets hash, hashen til de oppgitte betingelsene, loggens hash og scoren mot de oppgitte hendelsene, og som avviser betingelser som ikke stemmer med skåringshendelsene eller en logg hvis hash ikke er den oppgitte. Det skrives, spilles av eller planlegges ikke noe signal.
Uavhengig referanse
Ingen ekstern: pakken knytter sammen hasher og en MODELLED skåring av mottakerloggen, kontrollert på syntetiske data (den eksporterte NMEA-en fra et medfølgende scenario behandlet som mottakerens logg). Ingen laboratoriekjøring hevdes
Tester
tests/round_trip_pack.rs (pack_links_scenario_conditions_log_and_score_and_verifies, conditions_that_disagree_with_the_scoring_events_are_refused, a_stated_log_hash_that_does_not_match_is_refused…
ModellertIQ-sporingsmotor mot GNSS-SDR 0.0.19 på uavhengige opptakiq::track (Channel, LoopCore, design); iq::cli::track
Funksjon
Hele sporingsmotoren i IQ-laget (iq::track gjennom kshana iq track: overlevering fra akkvisisjon, korrelatorer, NCO-er, andreordens Costas-PLL på 15 Hz, førsteordens karrierestøttet EML-envelope-DLL på 2 Hz, låseindikator og C/N0-estimatorer) på GPS L1 C/A ved 30 til 45 dB-Hz.
Uavhengig referanse
GNSS-SDR 0.0.19 (GPL-3.0-or-later, Ubuntu 24,04-pakken, kjørt som et eget program; bare avledede tall er sjekket inn) som sporer de samme numpy-opptakene (uavhengige av motoren), begge målt mot den analytiske referansen. Terskler forhåndsregistrert i 48edd4a5, endret før noe testopptak i 1e4288c4 (en FLL på 10 Hz bare under innhenting i begge mottakerne, etter at den registrerte kalibreringen sviktet på en feil overlevering i GNSS-SDR, funn F3). MET ved 30, 35, 40 og 45 dB-Hz: bærebølgejitter innenfor 4,3 %, kodejitter innenfor 4,6 % og Doppler-middelverdi og -spredning innenfor GNSS-SDRs. NOT MET: motorens NWPR C/N0 leser 2,3 til 7,1 dB under GNSS-SDRs SNV (funn F4, den kjente NWPR-grensen; dens M2M4 er innenfor 0,06 dB av referansen); fase-låseindikatorene avviker per definisjon (F5); ved 30 dB-Hz slapp GNSS-SDR to ganger, og motoren ikke (F6). GNSS-SDRs egen overlevering låste seg på en feil frekvens i 3 av 30 kalibreringskjøringer. HVA SOM IKKE KONTROLLERES: andre signaler, fjerning av databiter, gjenakkvisisjon, feltopptak. Raden forblir MODELLED.
Tester
tests/iq_track_gnss_sdr_oracle.rs (calibration_passes_for_both_receivers, registered_bars_give_the_recorded_verdict, recorded_numbers_are_pinned), on numbers derived by…
ModellertCRPA-antenneforsterkninger i jamming-typen mot en uavhengig numpy-omberegningjamming (CrpaCfg, crpa_weights, run_jamming); crpa (null_steering_weights, mvdr_weights, covariance)
Funksjon
Den valgfrie [crpa]-seksjonen i jamming-typen: en stråle per kanal mot hver satellitt (nullstyring med jammeren som null, eller MVDR på sigma^2 I + P_j a_j a_j^H), som skalerer hver lenkes støy med ||w||^2 og jammeren med |w^H a_j|^2 før den eksisterende anti-jam C/N0-ligningen.
Uavhengig referanse
En uavhengig numpy-omberegning (xval/crpa-jamming/oracle.py, ingen felles kode: numpy-styringsvektorer, numpy.linalg.solve og inv) av hver lenke i jamming-demo-geometrien med en firkantet gruppe på 4 elementer, under begge vektingene. Terskler forhåndsregistrert i 08d83b4d. MET: A1 (alle 150 scenarioresultater byte-identiske uten seksjonen, etter en rettelse: det første bygget la crpa-enhetene til i enhetstabellen for hver jamming-kjøring), A2 (ett element er lik ingen gruppe til 1e-12 dB), A3 på gruppens støyforsterkning og effektiv C/N0 (912 lenkevektinger innenfor 1e-9 dB, verst 2.1e-14 dB) og på nullstyringens jammernull (under -200 dB på begge sider), A4 (MVDR innenfor 0,1 dB av nullstyring ved en JNR på 80 dB). NOT MET: A3 på MVDR-jammerforsterkningen, 194 av 456 lenker over 1e-9 dB på 0,36 bærbar matematikk (202 på vertens matematikk; docs/revisions/STUDIO15-batch4-rebaseline.md) (verst 1.7e-6 dB) på residualer på -100 til -188 dB, der float64-kansellering begrenser begge implementasjonene (numpys inv og solve er uenige med hverandre på 169 lenker, verst 7.9e-7 dB); den effektive C/N0 disse mater, påvirkes ikke. HVA SOM IKKE KONTROLLERES: gjensidig kobling, elementavvik, bredbåndsprosessering, flere jammere, enhver antennemaskinvare. En omberegning av de samme ligningene, ikke en ekstern uavhengig referanse; raden forblir MODELLED.
Tester
tests/jamming_crpa.rs (a1_crpa_units_only_with_the_section, a2_one_element_is_no_array, a3_verdict_is_the_recorded_one, a4_mvdr_tends_to_the_null_at_high_jnr), against xval/crpa-jamming/expected.json from…
ModellertTerrengskygge av jammeren i jamming-typen mot en uavhengig numpy-omberegning på en virkelig SRTM-rutejamming_terrain (TerrainCfg, jammer_terrain, knife_edge_loss_db); jamming (run_jamming_sky)
Funksjon
Den valgfrie [terrain]-seksjonen i jamming-typen: den store sirkelens terrengprofil mellom jammer og mottaker på en SRTM .hgt-rute med en jordbuling med k-faktor, den dominerende knivseggen (største Fresnel-Kirchhoff nu) og enkeltknivseggtapet i ITU-R P.526-15 avsnitt 4,1, trukket fra jammerens mottatte effekt.
Uavhengig referanse
En uavhengig numpy-omberegning (xval/jamming-terrain/oracle.py, ingen felles kode: egen .hgt-lesing, bilineær interpolasjon, WGS 84-rundtur, profil, buling, nu og J(nu)) av ti jammerplasseringer rundt en mottaker ved Badwater Basin på den innsjekkede virkelige SRTM-ruten tests/fixtures/terrain/N36W117_sub6.hgt. Terskler og plasseringer forhåndsregistrert i 92cd2bfd. Alle MET: additivitet (alle 150 scenarioresultater byte-identiske uten seksjonen); hver plasserings profilpunkter og hinder er lik, og nu og tap innenfor 1.6e-10 (terskel 1e-9); tapet øker aldri når jammeren stiger fra 2 til 4902 m; tapet senker hver J/S med nøyaktig seg selv og ingenting annet; J(nu) innenfor 1e-12 dB av den uavhengige referansens. Funn: plasseringer på tvers av Black og Funeral Mountains taper 44 til 48 dB; to plasseringer på dalbunnen taper 8 og 15 dB av jordbulingen alene ved antennehøyder på 2 m, grensetilfellet for enkeltknivseggmodellen. HVA SOM IKKE KONTROLLERES: enhver målt utbredelse, diffraksjon over flere eggs, bakkerefleksjon, bakkeklutter, DEM-ets egen feil. En omberegning av den samme modellen, ikke en ekstern uavhengig referanse; raden forblir MODELLED.
Tester
tests/jamming_terrain.rs (b1_terrain_units_only_with_the_section, b2_every_placement_matches_the_independent_numpy_recomputation, b3_the_loss_never_rises_as_the_jammer_rises…
ModellertAkkvisisjonshysterese og frontend-kvantiseren i jamming-typen mot uavhengige omberegningerjamming_rx (AcquisitionCfg, AcqState, FrontEndCfg, front_end); jamming (run_jamming_sky); iq::frontend::quant (optimum_step_sigma)
Funksjon
De valgfrie seksjonene [acquisition] (en satellitt akkvireres ved eller over en akkvisisjonsterskel etter en forsinkelse for gjenakkvisisjon og holdes mens den er ved eller over sporingsterskelen) og [front_end] (AGC-avlesningen 10 log10(1 + J/N) og ADC-ens kvantiseringstap for gaussisk inngang, trukket fra hver lenke, merket som ikke gyldig for ikke-gaussiske jammere) i jamming-typen.
Uavhengig referanse
En uavhengig Python-omberegning av hvert akkvisisjonsflagg (xval/jamming-acq-agc/hysteresis.py) fra motorens effektive C/N0 per epoke, en uavhengig numpy-Monte Carlo av kvantiseringstapet (xval/jamming-acq-agc/quantiser_mc.py, eget søk etter optimalt steg, 2^22 sampler) og IQ-lagets AGC-sløyfe. Terskler forhåndsregistrert i 70c72fcc, med et supplerende kjøringssett satt ved 37793290. MET: additivitet (alle 150 scenarioresultater byte-identiske uten seksjonene); hvert flagg er lik på de supplerende kjøringene (1824 lenker, 732 av dem viser hysteresen); monoton i terskelen; kvantiseringstapet innenfor 0,0007 dB av Monte Carlo ved 1 til 4 bit (terskel 0,02 dB); AGC-avlesningen innenfor 0,012 dB av AGC-sløyfen (terskel 0,05 dB). NOT MET: de registrerte hysteresekjøringene (jamming-demo ved 10 til 30 dBW) var uinformative, med hver lenke tapt, og deres H2 og H4 er bare trivielt nådd. Funn: med en CW-jammer taper en 1-bits ADC omtrent 5 dB mer enn det gaussiske tallet motoren anvender, og flagger det som ikke gyldig. HVA SOM IKKE KONTROLLERES: selve akkvisisjonssøket, AGC-dynamikk i tid, enhver mottakermaskinvare. Omberegninger av den samme modellen, ikke en ekstern uavhengig referanse; raden forblir MODELLED.
Tester
tests/jamming_acq_agc.rs (h1_g1_units_only_with_their_section, h2_no_hysteresis_is_no_hysteresis, h2s_no_hysteresis_is_no_hysteresis_on_the_supplementary_runs, h3_flags_match_the_independent_recomputation…
ModellertBegrenset FLL-innhenting under standardutformingens gulv for overgang fra FLL til PLL (valgfri)iq::track (LoopConfig, FllGate, design); iq::track::channel (the FLL gate)
Funksjon
iq::tracks valgfrie carrier.fll_pull_in_max_s (feltet fll_pull_in_max_s i iq::track::LoopConfig): under fll_assist = pull-in overleverer FLL-en til PLL-en etter en fast innhentingstid uansett PLI, med en tilsvarende returvarighet til PLI første gang når fll_off_pli.
Uavhengig referanse
Intern konsistens mot injisert referanse: en syntetisk datafri GPS L1 C/A-kilde (PRN 13, 1500 Hz, 4,1 MHz, 8 s, ti støyfrø) hvis bærebølgefase er kjent, under terskler forhåndsregistrert i 58789af0 (docs/design/evidence/fll-handover-floor/). MET: kontrollen (standarden uten tak overleverer aldri i 9 av 10 frø ved 33 dB-Hz); additivitet (standardens hash og de eksisterende sporingstestene uendret); innhenting av en overlevering med 100 Hz avvik ved 45 dB-Hz. NOT MET: med et tak på 1,0 s, overlevering og holding i hver kjøring (16 av 20 ved 33 dB-Hz, 8 av 20 ved 31 dB-Hz; resten går i sløyfe mellom tvungne overleveringer og FLL-ens retur) og fasejitter innenfor 25 % av PLL alene (10,8 mot 6,1 grader ved 33 dB-Hz). HVA SOM IKKE KONTROLLERES: databiter, andre signaler og samplingsrater, feltopptak. Standarden er uendret; raden forblir MODELLED.
Tester
tests/iq_fll_handover_floor.rs (registered_bars_give_the_recorded_verdict, d1_the_key_is_part_of_the_hash_only_when_set, d4_the_capped_design_pulls_in_a_100_hz_handoff_error), on…
ModellertRTKLIB .pos-løsningsleser for receiver-trustreceiver_trust::machines::rtklib (read_rtklib_pos); receiver_trust::LogFormat::RtklibPos
Funksjon
Leser en RTKLIB-løsningsfil (kalender- eller GPS-uke/TOW-tid, bredde/lengde eller ECEF-posisjon, brukte satellitter) inn i tidslinjen til receiver-trust (receiver_trust::machines::rtklib).
Uavhengig referanse
Ingen ekstern: ingen fil produsert av RTKLIB ble lest, og kolonneoppsettet er fra RTKLIB-manualen. Kontrollert bare på selvskrevne filer; ECEF-omregningen gjenbruker frames::ecef_to_geodetic, som har sine egne rader
Tester
receiver_trust::machines::rtklib::tests (lat/lon epochs, week/TOW and ECEF, dms refused, hostile input); tests/receiver_trust_machines.rs::rtklib_pos_runs_as_a_receiver_log; integrations/gnss_lib_py/test_bridge.py
ModellertNovAtel OEM7 ASCII- og binærlogger (BESTPOS, RANGE, RXSTATUS) for receiver-trustreceiver_trust::machines::novatel (read_novatel, novatel_crc32); receiver_trust::LogFormat::Novatel
Funksjon
Leser BESTPOS (posisjon), RANGE (C/No per signal) og RXSTATUS (mottakerens jammerflagg, som epokens egenrapport) fra ASCII- og binære OEM7-logger, CRC-kontrollert, skrivebeskyttet (receiver_trust::machines::novatel).
Uavhengig referanse
Ingen ekstern som terskel for bestått. Feltoppsettene og CRC-en følger den offentlige OEM7-dokumentasjonen (docs.novatel.com); CRC-rutinen ble kontrollert én gang mot CRC-en dokumentasjonen oppgir for sitt eget BESTPOSA-eksempel (sitert, ikke gjengitt). Fixturene er selvskrevne; ingen logg fra en virkelig mottaker ble lest
Tester
receiver_trust::machines::novatel::tests (festet CRC, ASCII- og binærposter, dårlig CRC hoppet over, fiendtlig inndata); tests/receiver_trust_machines.rs::novatel_jammer_flag_reaches_the_receiver_self_report
ModellertRTCM 3 MSM4- og MSM7-leser for bærebølge-til-støy for receiver-trustreceiver_trust::machines::rtcm3 (read_rtcm3, crc24q); receiver_trust::LogFormat::Rtcm3
Funksjon
Leser C/N0 for hver signalcelle i RTCM 3 MSM4- og MSM7-meldinger (GPS, GLONASS, Galileo, SBAS, QZSS, BeiDou, NavIC) fra en rammestrøm, CRC-24Q-kontrollert (receiver_trust::machines::rtcm3). Oppsettene er fra de BSD-lisensierte pyrtcm-tabellene, ikke fra teksten i RTCM-standarden.
Uavhengig referanse
ReferenceImpl i en engangskontroll, ikke en test i suiten: dekoderen i pyrtcm 1.2.0 leser de samme selvskrevne rammene til samme C/N0 og epoketid. Den deler kilden til tabellene med denne leseren, så den kontrollerer bitbehandlingen, ikke oppsettet. Ingen opptak fra en virkelig mottaker eller basestasjon ble lest
Tester
receiver_trust::machines::rtcm3::tests (CRC-24Q-katalogens kontrollverdi, MSM4/MSM7 C/N0 og epokesammenslåing, GLONASS-tid og SBAS-id-kartlegging, dårlig CRC og andre meldinger)
ModellertGNSS-SDR-monitoradapter for receiver-trustreceiver_trust::machines::gnss_sdr (read_gnss_sdr_monitor); receiver_trust::LogFormat::GnssSdr
Funksjon
Leser GNSS-SDR Monitor-meldinger (Gnss_Synchro) og PVT-monitormeldinger, videresendt som JSON-linjer med proto-feltnavnene, til C/N0 per kanal, posisjonsbestemmelse, brukte satellitter, HDOP og himmel (receiver_trust::machines::gnss_sdr; integrations/gnss-sdr/relay.py).
Uavhengig referanse
Ingen ekstern: feltnavnene kommer fra GNSS-SDR-dokumentasjonen; verken leseren eller relay.py ble kjørt mot en levende GNSS-SDR eller et virkelig opptak
Tester
receiver_trust::machines::gnss_sdr::tests; integrations/gnss-sdr/example.jsonl
ModellertInnlesing av IMU-logger, gyro-heading som inngang og Allan-tilpasning av parametere for hybride sensorerreceiver_trust::machines::imu, imu_fit; surface::imu_fit; scenario [log.imu]
Funksjon
Leser en IMU-CSV (dokumenterte kolonner, eller EuRoC-oppsettet); integrerer gir-raten til den headingen heading-course-monitoren leser ([log.imu]); og tilpasser støyparameterne for akselerometer og gyro i de hybride scenarioene og fusjonsscenarioene fra en stasjonær logg ved overlappende Allan-avvik (imu-fit).
Uavhengig referanse
Ingen ekstern: tilpasningen er kontrollert på syntetiske hvitstøylogger med kjente koeffisienter, headingen på logger med konstant gir-rate. Ingen virkelig IMU-logg ble tilpasset, og q_aa er ikke tilpasset
Tester
receiver_trust::machines::imu::tests; receiver_trust::machines::imu_fit::tests (known white-noise coefficients recovered within 10 %, refusals, TOML parses as AccelCfg); tests/receiver_trust_machines.rs (heading…
ModellertHome Assistant MQTT-oppdagelse og tilstandseksport for tillitstelemetritelemetry::mqtt (discovery, state_json, connect_packet, publish_packet, MqttSink); surface::TelemetryFormat::Mqtt
Funksjon
Et JSON-tilstandsdokument og Home Assistant MQTT-oppdagelsesmeldinger for tillitsstrømmen, skrevet ut som tekst på alle flater og publisert over MQTT 3.1.1 QoS 0 av CLI-et (telemetry::mqtt; trust-telemetry --mqtt-tcp, --print-mqtt, format mqtt).
Uavhengig referanse
Ingen ekstern: pakkene ble lest av en loopback-lytter skrevet for testen, ikke av en virkelig megler, og Home Assistant ble ikke kjørt
Tester
telemetry::mqtt::tests (packet bytes, loopback broker, dead broker counted); tests/receiver_trust_machines.rs::trust_telemetry_mqtt_text_has_discovery_then_state
ModellertROS 2-pakke for receiver-trust og gnss_lib_py-brointegrations/ros2/kshana_trust (bridge.py, trust_node.py); integrations/gnss_lib_py/kshana_gnss_lib_py.py
Funksjon
En ROS-fri bro som skriver posisjons- og satellittmeldinger som NMEA og skårer dem gjennom Python-bindingen (integrations/ros2/kshana_trust), og en bro fra gnss_lib_py NavData til receiver-trust gjennom formatet rtklib-pos (integrations/gnss_lib_py).
Uavhengig referanse
Ingen ekstern: ROS-noden ble ikke kjørt på en levende ROS 2-graf, og feltnavnene i ublox_ubx_msgs ble ikke kontrollert mot en kjørende driver. gnss_lib_py (MIT) ble kjørt for brotesten
Tester
tests/receiver_trust_machines.rs (rtklib_pos_runs_as_a_receiver_log: formatet gnss_lib_py-broen skriver, kjørt gjennom receiver-trust); Python-testene for broene er…

Generert fra motorens verifikasjonsmatrise og festet av en test. Bla i listen, eller åpne en rad for å se funksjonen, den uavhengige referansen og testene. Hele tabellen, med alle kolonner samtidig, finnes i dokumentasjonen: Funksjonsreferanse.

ProTrenger du dette registeret som en reproduserbar bevispakke på revisjonsnivå for et gjennomgangsorgan? Kshana Pro pakker det.

04Reproduserbar som standard

Kjør den på nytt. Få de samme tallene.

Gratis kjerne Et resultat kan gjengis bit for bit fra scenario, seed og motorversjon. Ingenting her krever lisens, konto eller oss.

Stempelet hver result.json bærerRegistrert kjøring

Dette er fra den registrerte kjøringen av klokkens holdover. Åpne den i Kshana Studio, eller kjør den selv på nytt:

scenario_hash
5ba83a232b94e902273fb6dcb71dd27d8109401dc8834d0a735eebf230ed5378
seed
42
engine_version
0.40.0
schema_version
0.7

Motor v0.40.0 · clock-holdover.toml · seed 42Åpne i Kshana StudioRapport

  1. Installer motoren.Eller pip install kshana, eller en annen kanal.
  2. Kjør det samme scenarioet.Den skriver result.json, chart.svg, report.html og table.csv ved siden av scenarioet.
  3. Sammenlign stempelet.Scenario-hashen er en SHA-256 (256-bit Secure Hash Algorithm) som beregnes over det kanoniske scenarioet: seed, terskler, modellparametere. Endrer du en inndata, endres hashen. Hvert diagrams bunntekst bærer de første 12 heksadesimale tegnene.
  4. La motoren kontrollere seg selv.Ved hver bygging bekrefter tester at de publiserte tallene fortsatt kan gjengis (tests/published_figures_still_reproduce.rs) og at hver registerrad nevner en test og viser til evidens som finnes (tests/verification_rows_name_a_test_that_exists.rs, tests/verification_rows_cite_evidence_that_exists.rs).
05Standardrutenett

Snakker formatene du allerede leverer.

18 standarder og formater som motoren implementerer. Et grønt merke betyr at den er kontrollert mot virkelige data, et publisert eksempel eller en uavhengig referanseimplementering.

  • TLE / SGP4AIAA 2006-6753KontrollertTLE sett med to linjers elementer · SGP4 Simplified General Perturbations 4, en banemodell · AIAA American Institute of Aeronautics and Astronautics
  • RINEX 3ekte IGS-data → oppmålt koordinatKontrollertRINEX Receiver Independent Exchange Format · IGS International GNSS Service
  • SP3-c / dtilpasning til ekte presise ESA/ESOC-banerKontrollertSP3 Standard Product 3, et format for presise baner · ESA European Space Agency · ESOC European Space Operations Centre
  • CCSDS OEM / OMMtolker OEM-eksempelet i CCSDS 502.0-B-3 Blue BookKontrollertCCSDS Consultative Committee for Space Data Systems · OEM melding om baneefemeride · OMM melding om banemiddelelementer
  • IS-GPS-200kringkastet efemeride → PVT med ekte dataKontrollertIS-GPS-200 GPS-grensesnittspesifikasjon for L1- og L2-signalene · GPS Global Positioning System · PVT posisjon, hastighet og tid
  • IEEE 1139ADEV/MDEV/TDEV/HDEV mot referanseavvikene i NIST SP 1065KontrollertIEEE Institute of Electrical and Electronics Engineers · ADEV Allan-avvik · MDEV modifisert Allan-avvik · TDEV tidsavvik · HDEV Hadamard-avvik · NIST National Institute of Standards and Technology
  • RAIM / ARAIMpåvisningskjerne for øyeblikksbilde (χ²/ikke-sentral χ²/normal) mot SciPy · ARAIM MHSS-budsjett venter på gjennomgangKontrollertRAIM autonom integritetsovervåking i mottakeren · ARAIM avansert autonom integritetsovervåking i mottakeren · MHSS løsningsseparasjon med flere hypoteser
  • SBAS / DO-229EDO-229E HPL/VPL mot RTKLIB SBAS-PL-gaffelen på ekte EGNOS-data · L1/L5 ionosfærefriKontrollertSBAS satellittbasert utvidelsessystem · DO-229E RTCA minimum operational performance standards for satellite-based augmentation system receivers, revision E · HPL horisontalt beskyttelsesnivå · VPL vertikalt beskyttelsesnivå · RTKLIB et åpen kildekode-bibliotek for GNSS-posisjonering · EGNOS European Geostationary Navigation Overlay Service
  • IONEX / KlobucharKlobuchar L1-forsinkelse mot RTKLIB ionmodel · IONEX-leser for TEC-kart er tolerant, ingen ekstern uavhengig referanse ennåKontrollertIONEX Ionosphere Map Exchange format · RTKLIB et åpen kildekode-bibliotek for GNSS-posisjonering · TEC totalt elektroninnhold
  • IGRF-14mot offisielle BGS IGRF-14-verdierKontrollertIGRF-14 International Geomagnetic Reference Field, 14. generasjon · BGS British Geological Survey
  • CCSDS 133,0primærhode mot CCSDS 133.0-B-2 + spacepackets-py-vektorerKontrollertCCSDS Consultative Committee for Space Data Systems
  • CCSDS TDMtolker TDM-eksempelet i CCSDS 503.0-B-2 Blue BookKontrollertCCSDS Consultative Committee for Space Data Systems · TDM sporingsdatamelding
  • CCSDS 401 / DSNlinkligning mot publisert DESCANSO/JPL Galileo DCTKontrollertCCSDS Consultative Committee for Space Data Systems · DSN Deep Space Network · DESCANSO Deep Space Communications and Navigation Systems Center of Excellence · JPL Jet Propulsion Laboratory · DCT designkontrolltabell, regnearket for linkbudsjett
  • IMO-veiledning om GNSS-interferens (skip)IMO-veiledning for skip, kartlagt etter klausulnummerImplementertGNSS Global Navigation Satellite System
  • EU NIS2, artikkel 21tiltak for risikostyring, kartlagt etter klausulnummerImplementert
  • EN 16803rombasert PNT i transport, kartlagt etter klausulnummerImplementertPNT posisjonering, navigasjon og tidssynkronisering
  • Det amerikanske DHS-rammeverket for robust PNTrammeverk for robust PNT, kartlagt etter klausulnummerImplementertDHS United States Department of Homeland Security · PNT posisjonering, navigasjon og tidssynkronisering
  • EASA-veiledning om GNSS-interferens (luftfart)EASA-veiledning for luftfart, kartlagt etter klausulnummerImplementertGNSS Global Navigation Satellite System
Når en gjennomgang trenger mer

Samme evidens, pakket eller gjort for deg.

Motoren og alt ovenfor forblir gratis. To betalte veier bygger på dem, under kontrakt.

Pro

Kshana Pro: et oppdragsdossier og en bevispakke

Kshana Pro pakker evidensen et gjennomgangs- eller innkjøpsorgan ber om, reproduserbart. Det bygger på dette registeret, der hver funksjon navngir sin uavhengige referanse og sin test, og på stempelet hvert resultat bærer. Med én kommando kontrollerer et oppdragsdossier hvert krav mot virkelige kjøringer og skriver en verifikasjonsmatrise med åpne punkter og en PDF (Portable Document Format).

Be om en Pro-evaluering Se et virkelig dossier

Skreddersydd studie

En skreddersydd studie: spørsmålet ditt, besvart

En skreddersydd studie besvarer ditt eget spørsmål med de samme merkelappene: hvert tall er validert eller modellert, ikke en sertifisering. Eksportkontrollert arbeid håndteres under klarering og NDA (taushetserklæring).

Be om en studie Hvorfor og hvem den er for

Benchmark

Sammenlign metoder på de samme loggene.

kshana-bench fastsetter oppgavene, delingene og målene for deteksjon av GNSS-interferens og holdover i tidssynkronisering, med grunnlinjer der tersklene ble skrevet ned før første poengsatte kjøring. En poengsum beskriver en logg eller et korpus, aldri et produkt.

06Forskning og sitering

Publisert forskning.

6 artikler på arXiv, det åpne preprint-arkivet, bygget på den åpne motoren. Hver åpner seg til et tall kjørt på nytt på motoren, funnene, kommandoen og DOI-en (Digital Object Identifier).

Måne-navigasjon · arXiv:2610,23871

Cislunar navigation is an observability problem: arc-length thresholds, Gramian conditioning, and the Doppler lever

I cislunart rom gjelder ikke dilution of precision: lenker med bare avstand gjør hastigheten uobserverbar til enhver tid, så krav hører hjemme i budsjetter for buelengde, kondisjonering og målingstype.

Tall
012345Range only, one instantRange only, one instant: 2 · GDOP undefined: the velocity columns of the range Jacobian vanish2Range and range rate, one instantRange and range rate, one instant: 4 · a snapshot solution exists; GDOP 6.3534Range only, tracked for 1.83 hRange only, tracked for 1.83 h: 3 · the last sampled arc short of full rank3Range only, tracked for 2.09 hRange only, tracked for 2.09 h: 4 · the first sampled arc at full rank; Gramian condition 1.6e+09 at 6 h4
ModellertMotor v0.40.0 · cislunar-observability.toml · deterministisk, ingen seedÅpne i Kshana Studio
Hovedfunn
  • I motorkjøringen har geometri med bare avstand ved ett tidspunkt rang 2 av 4, så en dilution of precision er udefinert; hele tilstanden blir observerbar etter en bue på 2,09 timer.
  • Å legge til avstandsrate løfter den øyeblikkelige rangen fra 2 til 4: en Doppler-kapabel lenke gjør at en øyeblikksløsning finnes der en lenke med bare avstand ikke kan gi en.
  • Utover terskelen bedres kondisjoneringen med buelengden, så krav leses bedre som budsjetter for buelengde, kondisjonering og målingstype.
Hvordan Kshana gjengir det

Typen cislunar-observability differensialkorrigerer fire plane fjerne retrograde baner, setter sammen Jacobianene for avstand og avstandsrate gjennom tilstandsovergangsmatrisen for tre legemer, og rapporterer den observerbare rangen over en voksende sporingsbue, observerbarhets-Gramianens kondisjonstall og et kvadratrotinformasjonsfilter som beregner den samme størrelsen på nytt på en andre vei.

Figuren. Det medfølgende scenarioet: fire differensialkorrigerte plane fjerne retrograde baner, sporet med avstandsmåling mellom satellitter over en bue på 6 timer samplet hvert 0,26 time.

Reproduser det

Kjører scenariotypen cislunar-observability (scenarios/cislunar-observability.toml) med den installerte motoren.

Åpne i Kshana Studio
Siter den
BibTeX · baweja2026cislunar
@misc{baweja2026cislunar,
  title         = "{Cislunar navigation is an observability problem: arc-length thresholds, Gramian conditioning, and the Doppler lever}",
  author        = {Baweja, Chakshu},
  year          = {2026},
  eprint        = {2610.23871},
  archivePrefix = {arXiv},
  primaryClass  = {eess.SP},
  doi           = {10.48550/arXiv.2610.23871},
  url           = {https://arxiv.org/abs/2610.23871}
}

Måne-navigasjon · arXiv:2607,06212

The Cost of Lunar South-Polar Geometry, and Surface Beacons as the Efficient Fix: A Dilution-of-Precision Analysis

Planlagte baner klumper seg over hodet for en måne-sørpolbruker; noen få avstandsfyr på nærliggende høyder utbedrer geometrien billigere enn flere satellitter.

Tall
0510156 satellites, no beacons6 satellites, no beacons: 11.66 · 5 satellites and 0 beacons in view · 11.2 m (1 sigma)11.666 satellites + 1 visible beacons6 satellites + 1 visible beacons: 4.998 · 5 satellites and 1 beacons in view · 4.8 m (1 sigma)4.99824 satellites, no beacons24 satellites, no beacons: 2.893 · 19 satellites and 0 beacons in view · 2.8 m (1 sigma)2.893
ModellertMotor v0.40.0 · lunar-beacon.toml · deterministisk, ingen seedÅpne i Kshana Studio
Hovedfunn
  • I den medfølgende kjøringen reduserer det ene fyret som kommer over horisonten den geometriske dilution of precision fra 11,66 til 4,998; en konstellasjon på 24 satellitter når i stedet 2,893.
  • Satellittene en sørpolbruker ser klumper seg i en liten flekk over hodet, så geometrien begrenses av spredningen deres, ikke av antallet.
  • Noen få fyr på høyereliggende terreng når en geometri som en utforming med bare baner bare når med en mye større flåte.
Hvordan Kshana gjengir det

Typen lunar-beacon bygger avstandsgeometrien til en bane-konstellasjon pluss de oppmålte overflatefyrene som kommer over den luftløse horisonten, på dilution-of-precision-kjernen kontrollert mot et uavhengig bibliotek, og rapporterer hver konfigurasjons dilution of precision og nøyaktigheten i meter.

Figuren. Én epoke av det medfølgende scenarioet, med standardgeometrien: satellittene alene, satellittene pluss fyrene som kommer over horisonten, og en konstellasjon på 24 satellitter i stedet.

Reproduser det

Kjører scenariotypen lunar-beacon (scenarios/lunar-beacon.toml) med den installerte motoren.

Åpne i Kshana Studio
Siter den
BibTeX · baweja2026cost
@misc{baweja2026cost,
  title         = "{The Cost of Lunar South-Polar Geometry, and Surface Beacons as the Efficient Fix: A Dilution-of-Precision Analysis}",
  author        = {Baweja, Chakshu},
  year          = {2026},
  eprint        = {2607.06212},
  archivePrefix = {arXiv},
  primaryClass  = {astro-ph.EP},
  doi           = {10.48550/arXiv.2607.06212},
  url           = {https://arxiv.org/abs/2607.06212}
}

Måne-navigasjon · arXiv:2607,02566

Earth-baseline VLBI restores the observability of a lunar surface station in joint orbit-and-clock determination

Avstandsmåling i månenettverket fastsetter bare relativ geometri; en forsinkelse fra very-long-baseline-interferometri over jordbaserte grunnlinjer binder en overflatestasjon til jordens referansesystem, selv med få satellitter. VLBI very long baseline interferometry

Tall
1 m10 m100 m1,000 m10,000 mWithout the interferometry tieWithout the interferometry tie: 2,182 m · Fisher information rank 15 of 16: the station position is not observable, no Cramér–Rao bound2,182 mWith the Earth-baseline interferometry tieWith the Earth-baseline interferometry tie: 3.5 m · full rank 16 of 16 · Cramér–Rao bound 20.1 m3.5 mlog scale
ModellertMotor v0.40.0 · lunar-joint-od-clock.toml · seed 42Åpne i Kshana Studio

Registrert på macOS som publisert. En ny kjøring på Linux x86-64 gir 2184 m / 3,537 m (vertsavhengighet i løserens iterasjon, issue #36 rad 6).

Hovedfunn
  • Avstandsmåling inne i månenettverket lar klyngen forskyve og rotere seg usett; klokkene forblir observerbare, så defekten er rent posisjonell.
  • I motorkjøringen (3 satellitter) har Fisher-informasjonen uten interferometriforbindelsene rang 15 av 16; med dem har den full rang og en Cramér–Rao-grense på 20,1 m.
  • Med en rik konstellasjon skjerper interferometribindingen bare grensen; med en sparsom gjenoppretter den stasjonens absolutte posisjon.
Hvordan Kshana gjengir det

Typen lunar-joint-od-clock fusjonerer interferometriforsinkelser over jordbaserte grunnlinjer, lokale avstander på Månen og avstander mellom satellitter i én batch-minstekvadraters tilpasning, kjører den med og uten interferometriforbindelsene på samme seed, og rapporterer rangen til Fisher-informasjonen, datumdefekten og Cramér–Rao-grensen.

Figuren. Det medfølgende simulerte nettverket: 3 månesatellitter, 6 jordstasjoner, én overflatestasjon, samme seed og referanse for begge tilpasningene.

Reproduser det

Kjører scenariotypen lunar-joint-od-clock (scenarios/lunar-joint-od-clock.toml) med den installerte motoren.

Åpne i Kshana Studio
Siter den
BibTeX · baweja2026earth
@misc{baweja2026earth,
  title         = "{Earth-baseline VLBI restores the observability of a lunar surface station in joint orbit-and-clock determination}",
  author        = {Baweja, Chakshu},
  year          = {2026},
  eprint        = {2607.02566},
  archivePrefix = {arXiv},
  primaryClass  = {eess.SP},
  doi           = {10.48550/arXiv.2607.02566},
  url           = {https://arxiv.org/abs/2607.02566}
}

Integritet for tidssynkronisering · arXiv:2606,24210

A Conditional Timing Protection Level: Holdover-Limited Undetected Time Error Under GNSS Spoofing

En registrert spoofing viser en mottaker for tidssynkronisering som leverer tid langt mer feil enn den rapporterer; ingen ubetinget grense finnes, så artikkelen avgrenser den uoppdagede feilen betinget. GNSS Global Navigation Satellite System

Tall
10 ns100 ns1 µs10 µs100 µs1 ms10 ms10 s30 s60 sserved error 1.01 ms, receiver unawareaccuracy it claimed ≤ 51 nsTiming Protection Level 114 ns at 1 sTiming Protection Level 119 ns at 5 sTiming Protection Level 128 ns at 10 sTiming Protection Level 200 ns at 30 sTiming Protection Level 458 ns at 60 sprotection level 114 ns458 ns
ModellertMotor v0.40.0 · examples/tpl_jammertest.rs · deterministisk, ingen seed
Hovedfunn
  • En offentlig registrert spoofing trakk mottakerens leverte tid med omtrent 1,01 ms mens den rapporterte høyst 51 ns.
  • Mot en tilstrekkelig langsom rampe finnes ingen endelig ubetinget grense, så grensen er betinget av at en uavhengig kontroll på tvers av satellitter oppdager angrepet.
  • Motorens Timing Protection Level er 114 ns ved 1 s deteksjonsforsinkelse og 458 ns ved 60 s.
Hvordan Kshana gjengir det

Modulen Timing Protection Level legger en monitors deteksjonsgulv til oscillatorens coasting over deteksjonsforsinkelsen. Eksempelet kalibrerer den med skalarene gjenvunnet fra den offentlige opptaket JammerTest 2024; råopptaket leveres ikke.

Figuren. Eksempelets utskrift: det betingede Timing Protection Level ved fem deteksjonsforsinkelser, og de to skalarene den gjenvant fra det offentlige opptaket JammerTest 2024.

Reproduser det

Genererer studieartefakten på nytt fra examples/tpl_jammertest.rs, i en klone av repositoriet.

Siter den
BibTeX · baweja2026conditional
@misc{baweja2026conditional,
  title         = "{A Conditional Timing Protection Level: Holdover-Limited Undetected Time Error Under GNSS Spoofing}",
  author        = {Baweja, Chakshu},
  year          = {2026},
  eprint        = {2606.24210},
  archivePrefix = {arXiv},
  primaryClass  = {eess.SP},
  doi           = {10.48550/arXiv.2606.24210},
  url           = {https://arxiv.org/abs/2606.24210}
}

Motstandsdyktighetsscoring · arXiv:2607,05415

How Stable Is a PNT Resilience Score? Decision-Instability of Single-Number Resilience Ratings under Framework-Aligned Weighting

Enkelttalls robusthetsvurderinger for posisjonering, navigasjon og tidssynkronisering er bare stabile der én utforming dominerer; vekting, trussel og oppgitte teknikker kan snu dem. PNT positioning, navigation and timing

Tall
0%5%10%15%20%25%NominalNominal: 22%22%Wideband jammingWideband jamming: 1.25%1.25%SpoofingSpoofing: 1.1%1.1%MeaconingMeaconing: 1.1%1.1%Combined threatsCombined threats: 1.1%1.1%
ModellertMotor v0.40.0 · examples/resilience_report.rs · seed 12345
Hovedfunn
  • Omvekting alene endrer den best rangerte arkitekturen i 22% av trekningene under nominelle forhold, og i høyst 1,25% under hver aktive trussel.
  • Et modenhetsnivå satt av det svakeste leddet avhenger av trusselen som antas, ikke bare av arkitekturen.
  • Fordi den sammensatte scoren belønner oppgitte teknikker, kan en utforming som oppgir flere score høyere enn en mer robust en.
Hvordan Kshana gjengir det

Modulen resilience scorer sju referansearkitekturer over de sju rammeverkskategoriene og fem trusler, trekker kategorivektene tilfeldig fra en Dirichlet-fordeling og teller hvor ofte toppranken endres. Eksempelet skriver hele studien som én deterministisk fil.

Figuren. 7 referansearkitekturer, 2 000 tilfeldige kategorivektinger per trussel.

Reproduser det

Genererer studieartefakten på nytt fra examples/resilience_report.rs, i en klone av repositoriet.

Siter den
BibTeX · baweja2026stable
@misc{baweja2026stable,
  title         = "{How Stable Is a PNT Resilience Score? Decision-Instability of Single-Number Resilience Ratings under Framework-Aligned Weighting}",
  author        = {Baweja, Chakshu},
  year          = {2026},
  eprint        = {2607.05415},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CR},
  doi           = {10.48550/arXiv.2607.05415},
  url           = {https://arxiv.org/abs/2607.05415}
}

Radiofrekvensinterferens · arXiv:2606,22054 · versjon 2

Anticipating the Optimism Gap: Predicting Distribution-Shift Degradation of RF-Impairment Detectors from In-Distribution Statistics

Hvor mye en interferensdetektor taper under forskjøvne forhold kan forutsies fra dens egne scorer innenfor fordelingen; syntetiske resultater, kontrollert på åpne feltopptak. RF radio frequency

Tall
-0.10-0.05-0.050.000.000.050.050.100.100.150.150.200.200.250.25R² 0.46, detector left outpredicted →↑ actual
ModellertMotor v0.40.0 · examples/optimism_study.rs · seed 1, 2, 3, 4, 5
Hovedfunn
  • Gapet mellom areal under kurven innenfor fordelingen og under forskyvning vokser etter hvert som forskyvningen blir dypere, og avhenger av hvor mange observerbare størrelser en detektor bruker, snarere enn av om den er lært.
  • I motorkjøringen forutsier en ridge-modell på scorestatistikk innenfor fordelingen gapet for en detektor den ikke har sett (R² 0,46) og for en interferensklasse den ikke har sett (R² 0,33).
  • Hovedfunnene er syntetiske; artikkelen kontrollerer dem deretter på åpne feltopptak.
Hvordan Kshana gjengir det

Forstyrrelsesstudien genererer et syntetisk, parameterforankret korpus for fire interferensklasser, scorer tretten detektorer ved fire forskyvningsgrader over fem seeds, og tilpasser gapprediktoren med kryssvalidering med én utelatt og en permutasjonstest.

Figuren. 260 celler av detektor, klasse og alvorlighetsgrad; hver prediksjon er gjort for en detektor utelatt fra tilpasningen.

Reproduser det

Genererer studieartefakten på nytt fra examples/optimism_study.rs, i en klone av repositoriet.

Siter den
BibTeX · baweja2026anticipating
@misc{baweja2026anticipating,
  title         = "{Anticipating the Optimism Gap: Predicting Distribution-Shift Degradation of RF-Impairment Detectors from In-Distribution Statistics}",
  author        = {Baweja, Chakshu},
  year          = {2026},
  eprint        = {2606.22054},
  archivePrefix = {arXiv},
  primaryClass  = {eess.SP},
  doi           = {10.48550/arXiv.2606.22054},
  url           = {https://arxiv.org/abs/2606.22054}
}

Siter motoren

Hver utgivelse er arkivert på Zenodo med en siterbar DOI, og en CITATION.cff følger med i repositoriet. Siter motorversjonen, scenarioet og seeden.

Baweja, C. (2026). Kshana — a PNT-resilience simulator with quantum-sensor performance models (Version 0.40.0). Ashforde OÜ. https://doi.org/10.5281/zenodo.20528627

BibTeX for motoren
BibTeX
@software{kshana,
  title   = {Kshana — a PNT-resilience simulator with quantum-sensor performance models},
  author  = {Baweja, Chakshu},
  version = {0.40.0},
  year    = {2026},
  doi     = {10.5281/zenodo.20528627},
  url     = {https://github.com/ashfordeOU/kshana},
  license = {AGPL-3.0-only}
}