Maskinöversättning, inte granskad av en modersmålstalare. Engelska är referensen.
Evidens
Varje förmåga bär sin evidens.
401 förmågor, var och en betygsatt. 176 validerade mot oberoende externa referenser. 221 ärligt märkta som modellerade. 4 ägda av partner. Ingenting avrundas uppåt.
Verifieringsmatris v0.40.0Från arkivet
176Validated
221Modelled
4Partner-owned
401förmågor
Håll muspekaren över eller fokusera en cell för att läsa dess förmåga och den referens som graderar den.
Validerad: en oberoende extern referens stämmerModelledPartner-owned
Motor v0.40.0 · web/data/verification-matrix.json, genererad från src/verification.rs · 401 rader · inget scenario eller frö: motorns eget registerLäs registret
Gratis kärnaRegistret, resultaten, reproducerbarhetsstämpeln och testerna bakom dem finns alla i den öppna motorn.
ProPaketerar evidensen i ett reproducerbart bevispaket av revisionskvalitet för en granskningsnämnd. Se nedan
Skräddarsydd studieBesvarar din egen fråga med samma etiketter, ingen certifiering. Se nedan
01Validerade resultat · varje jämfört värde
Kontrollerat mot någon annans svar.
Varje ruta visar varje värde som motorn jämfört med en oberoende referens: publicerade vektorer, ett separat bibliotek för flygdynamik, precisa efemerider, ett statistikbibliotek, en standardpublikation och en uppmätt klockserie som hållits undan från anpassningen. Håll muspekaren över eller fokusera ett märke för dess värde.
Banor · analytiskaValidated
666/666
SGP4-banpropagering (Simplified General Perturbations 4)
Varje referensvektor från AIAA (American Institute of Aeronautics and Astronautics) återskapad, inklusive fallen för djuprymd SDP4 (Simplified Deep-space Perturbations 4). Sämsta fall 4.12 mm.
En kvadrat per jämförd vektor, färgad efter sitt positionsfel.
Motor v0.40.0, bygge 3395218 · tests/numerical_cowell_propagator_reference.rs · deterministisk, inget fröIngen Kshana Studio-vy: den här jämförelsen körs som ett motortest.
Banor · millimeter till meterValidated
0.61m Galileo/0.10m Swarm-A
Varje banrest på en skala
Från propagatorkontrollerna till anpassningar mot ESA:s (European Space Agency) precisa efemerider. Månomloppsfarkosten, ovanför tröskeln, visas också.
Varje rest på en logaritmisk skala från en millimeter till tjugo meter.
Motor v0.40.0 · docs/AGENCY-ORBIT-VALIDATION.md resttabeller, med de två propagatorkontrollerna omräknade vid bygge 3395218 · deterministiskt, inget fröIngen Kshana Studio-vy: precis banbestämning körs som motortester.
Klockor · stabilitetValidated
12av 12 publicerade värden
Allan-avvikelse
Återskapar referensvärdena i NIST (National Institute of Standards and Technology) Special Publication (SP) 1065, tabell 31, på dess egen datamängd med 1000 punkter.
Fyra avvikelser mot medelvärdesbildningstid, med de publicerade värdena som ringar.
Validerad betyder att en oberoende extern källa stämmer: publicerade referensvektorer, ett separat verktyg eller uppmätta data. Allt annat står som modellerat. Välj en etikett för att tända dess celler.
Graderade förmågor
176av 401 validerade
Håll muspekaren över en cell
Antalen är exakta, hämtade från motorns verifieringsmatris. Cellerna följer registrets radordning.
Tre ord, använda strikt
Kshana-utdatamotorkörning
Oberoende referenspublicerad referens
Validated
Endast med en oberoende extern referens: publicerade referensvektorer, en separat implementation eller uppmätta data som hållits utanför anpassningen. Registret anger referensen och testet, och matrisens invarianttester upprätthåller regeln.
Modelled
En publicerad modell eller ett dokumenterat modelleringsval, internt testat, ännu utan oberoende extern referens. Det sägs högt och avrundas inte uppåt.
Partner-owned
Konstruktion av rymdfarkostens plattform, navigationsnyttolast och antennhårdvara, kvantnyttolasthårdvara samt produktsäkring av flyghårdvara. Kshana gör anspråk på ingen av dem; en partner äger dem.
Med Pro: ett uppdragsdossier kontrollerar varje krav mot verkliga körningar och behåller dessa etiketter i sin verifieringsmatris: ett krav som uppfyllts på MODELLED- eller PARTNER-grund flaggas. Se ett verkligt dossier
03Valideringsregister
Alla 401 rader, en rad vardera.
Varje rad anger sitt krav, sin status och modulen som implementerar det. Öppna en rad för dess oberoende referens och tester, eller välj ett område för att begränsa urvalet.
Efter område: stapellängden är antal rader, färgen är status. Välj ett för att filtrera.
ValidatedModelledPartner-owned
ValidatedIdentifiering av potenslagsbrus med autokorrelation vid lagg 1allan (lag1_noise_id,lag1_acf)
Förmåga
allan::lag1_noise_id: brusidentifieraren med autokorrelation vid lagg 1 av Riley och Greenhall (2004) (decimerad fas med sin kvadratiska term borttagen, eller gruppmedelvärdesbildad frekvens med sin linje borttagen; upprepade första differenser tills delta = r1/(1+r1) < 0,25 eller d = dmax), som returnerar den heltaliga och den oavrundade potenslagsexponenten alpha (+2 vitt PM till -2 slumpvandrande FM) vid valfri medelvärdesfaktor; den sätter frihetsgraderna för brustypen i enhetskorten i biblioteket med uppmätta klockor
Oberoende referens
allantools 2024,6 autocorr_noise_id (A. Wallin och bidragsgivare, LGPL-3.0-or-later, körd som ett separat program av fixturgeneratorn): en oberoende implementering av den publicerade Riley-Greenhall-algoritmen, en entydigt definierad storhet under de angivna konventionerna. Validerar identifieraren, inte brusinnehållet i någon verklig klocka
Tester
tests/clock_library_lag1_noise_id_allantools.rs (140 fall: tio Kasdin-potenslagsregistreringar, b = 0 till -4, som fas- och frekvensdata, af = 1 till 64; alpha_int och d identiska, sämsta |d alpha| 9.6e-13 och |d rho| 4.8e-13…
ValidatedAutentisering av navigeringsdata i mottagaren för Galileo OSNMAosnma (page,subframe,dsm,merkle,signature,tesla,mac,maclt,navdata,verifier,ubx,cli)
Förmåga
osnma + kshana osnma verify: en öppen verifierare i ren Rust på mottagarsidan för Galileo OSNMA (SIS ICD Issue 1,1, Receiver Guidelines Issue 1,3) från I/NAV-sidor eller en ström av u-blox UBX-RXM-SFRBX: publika nycklar i Merkle-träd (DSM-PKR), ECDSA P-256/P-521-signaturen för DSM-KROOT, verifiering av TESLA-nyckelkedjan (SHA-256 eller SHA3-256), verifiering av MACSEQ och taggar (HMAC-SHA-256 eller CMAC-AES) för ADKD 0, 4 och 12 med korsautentisering, kedjeslut/återkallelse/förnyelse, förnyelse och återkallelse av publik nyckel samt larmmeddelandet; status per satellit Authenticated/Failed/Unavailable med en orsak för varje fel eller fördröjning. Rådgivande: inte typgodkänd navigationsutrustning och inte en tjänst för navigeringsintegritet; inget anspråk görs på någon prestanda mot spoofing
Oberoende referens
De officiella testvektorerna för Galileo OSNMA som European GNSS Service Centre publicerat som bilaga till Receiver Guidelines (Test_vectors.zip, sha256 ef9b9afc6ef9e1c57393415cf2a1dc80c4035e7c06123907ea0bb97dd3ccf370): 18 av 18 uppsättningar, 186 382 taggar autentiserade, 0 misslyckade, körda offline 2026-10-10 (evidensposten finns i kshana-pro docs/evidence). Omfattning: vektorerna validerar den kryptografiska verifieringen (Merkle, KROOT/ECDSA, TESLA-kedja, MACK-taggar, ADKD 0/4/12) och dess utfall på de publicerade scenarierna; de använder bara HMAC-SHA-256, en SHA-256-kedja, nycklar på 128 bitar, taggar på 40 bitar och uppslagsposterna 33 och 34, så CMAC-AES, SHA3-256-kedjor och andra parametrar täcks endast av publicerade known-answer-tester för primitiver och av syntetiska tester. Härdningen av betrodd tid, databindning, utgång och bekräftelse av huvud testas av de syntetiska attacktesterna, inte av ett externt orakel. Inte kontrollerat: spärrlistor för certifikat, live-signaler eller en live-mottagare (UBX-ordlayouten kontrolleras bara på syntetiska ramar), Merkle-träd med SHA3-256, färskhet utan en oberoende tid. Inte en EU-tjänst
ValidatedKarakterisering av frekvensstabilitetallan
Förmåga
Allan-/modifierad/Hadamard-deviation + identifiering av potenslagsbrus med χ²-konfidensintervall
Oberoende referens
NIST SP 1065 (Riley) / Stable32 referensdeviationer på NBS14
Tester
tests/allan_reference.rs (NBS14 vs Stable32 to 1e-4); allan::tests
ValidatedFrekvensstabilitet på en verklig uppmätt klockaallan
Förmåga
Överlappande Allan- och överlappande Hadamard-deviation på en verklig cesiumstandard
Oberoende referens
Stable32 överlappande ADEV/HDEV på den uppmätta fasserien för cesiumklockan 5071A (allantools)
Tester
tests/cs5071a_reference.rs (verklig 5071A Cs mot H-maser, 556 990 punkter, 16 medelvärdesfaktorer mot Stable32 till 1e-3; datastyrd via scripts/fetch_cs5071a.sh)
ValidatedParitet för Allan-skattare på den kanoniska referensserien i Stable32allan
Förmåga
Överlappande Allan + modifierad Allan + tidsdeviation över hela AF-stegen
Oberoende referens
Stable32 referensdeviationer för PHASE.DAT (Riley; standardserien för regression)
Tester
tests/phasedat_reference.rs (Stable32 PHASE.DAT, 139 averaging factors, OADEV/MDEV/TDEV to 1e-3; data-gated via scripts/fetch_phasedat.sh)
ValidatedFrekvensstabilitet med utökat område (Theo1 / TOTDEV)allan
Förmåga
Theo1 och total deviation (TOTVAR) — skattare av stabilitet vid lång tau med utökat område som når ~75 % av registret där Allan-deviationen tar slut nära ~50 %; den biasfria hybriden ThêoH (allan::theoh_curve) som bygger på dem förblir MODELLED
Oberoende referens
allantools 2024,06 — ett oberoende frekvensstabilitetsbibliotek från tredje part — theo1 (NIST SP 1065 ekv 30) och totdev (NIST SP 1065 ekv 25) på den hermetiska LCG-datamängden i NIST SP 1065 §12,4; kan regenereras offline 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-datamängden med 1000 punkter, 6 + 6 medelvärdesfaktorer mot allantools 2024,06 till <1e-9); allan::tests (vit-FM i sluten form följs; TOTVAR=ADEV…
ValidatedMaximum Time Interval Error (MTIE) — wander-mått för telekomallan (mtie,mtie_curve)
Förmåga
MTIE(τ): den största svängningen topp till topp i tidsfel över ett glidande fönster av τ = m·tau0, den wander-statistik enligt ITU-T G.810/G.823/G.8261 som gränserna för synkroniseringsnät (MTIE-masker) är skrivna mot — ett extremvärde (max/min) som skiljer sig från RMS-familjen Allan
Oberoende referens
allantools 2024,06 — ett oberoende frekvensstabilitetsbibliotek från tredje part — mtie() på den hermetiska LCG-fasserien i NIST SP 1065 §12,4; MTIE är en ren max/min-statistik, så skattarens utdata är bitexakt mot allantools på den identiskt byggda fasarrayen (de incheckade referenskonstanterna med 15 signifikanta siffror ligger inom 1 ULP). Kan regenereras offline via tests/fixtures/mtie/generate_mtie_reference.py
Tester
tests/mtie_reference.rs (MTIE på den hermetiska NIST SP 1065 §12,4 LCG-faserien med 1000 punkter, 9 medelvärdesfaktorer m=1..256 mot allantools 2024,06 mtie till <1e-9, observerat ≤4e-15); allan::tests (handhärledd topp-till-topp…
ValidatedModifierad Allan / tidsdeviation (MDEV / TDEV)allan (modified_adev,time_deviation)
Förmåga
MDEV(τ): den överlappande modifierade Allan-deviationen (skattare med glidande fönster och andra differens som skiljer vitt från flicker-fasbrus), och TDEV(τ) = τ/√3·MDEV(τ), tidsdomänens wander-statistik enligt ITU-T G.811/G.812/G.823 som synkroniseringsmaskerna är skrivna mot
Oberoende referens
allantools 2024,06 — ett oberoende frekvensstabilitetsbibliotek från tredje part — mdev() och tdev() på den hermetiska LCG-fasserien i NIST SP 1065 §12,4 (samma serie som raderna Theo1/TOTDEV/MTIE), som beräknar samma entydigt definierade skattare; matchade till <1e-9 relativt. Kan regenereras offline via tests/fixtures/mdev_tdev/generate_mdev_tdev_reference.py. (Den datagrindade phasedat_reference.rs kontrollerar dem också mot Stable32 till 1e-3; det här är den täta, alltid aktiva hermetiska korskontrollen)
Tester
tests/mdev_tdev_reference.rs (MDEV + TDEV på den hermetiska NIST SP 1065 §12,4 LCG-faserien med 1000 punkter, 8 medelvärdesfaktorer m=1..200 mot allantools 2024,06 mdev/tdev till <1e-9 relativt, plus identiteten τ/√3 på…
ValidatedFrekvensstabilitet hos en optisk klocka på en verklig uppmätt kurvaquantum_trade (qparams_from_adev_curve),powerlaw
Förmåga
NNLS-återskapande av potenslag (vitt FM + golv av rött brus) ur en publicerad uppmätt Allan-deviation för den optiska klockövergången hos ⁸⁸Sr — återger σ_y(τ) och den centrala skalningen 4.7e-16/√τ vid kort τ med ett genuint uppmätt golv vid lång τ, i stället för det syntetiserade golv av optisk klass som holdover.rs annars antar
Oberoende referens
Norcia, Young, Eckner, Oelker, Ye, Kaufman, Science 366:93 (2019), Fig. 4 uppmätt ADEV; kurvan hämtad ordagrant från Zenodo 10.5281/zenodo.3382347 (CC-BY-4.0). Avgränsad till att återge den publicerade uppmätta stabilitetskurvan — enhetstalen för holdover till tröskel per klockklass förblir MODELLED
Tester
tests/optical_clock_adev_reference.rs (Norcia m.fl. ⁸⁸Sr-pincettklockans σ_y(τ), 8 medelvärdestider 0,92–117,76 s ordagrant medföljande under CC-BY-4.0: NNLS rekonstruerar kurvan till ~10 % RMS / ≤21 % sämsta punkt; återvunnet…
ARAIM multipelhypotes-lösningsseparation enligt ARAIM Airborne Design Document (ADD) v4.2 (araim_reference::add_v42_protection_levels och add_v42_protection_levels_ecef: bestämning av delmängder med reglerna P_THRES och FC_THRES, VPL, HPL, den effektiva övervakartröskeln EMT och sigma_acc); RAIM-feldetektering med χ² på ögonblicksbild med uteslutning av en enskild satellit (raim::snapshot_raim, raim::snapshot_raim_fde) och lutningsbaserad HPL/VPL på den geodetiska lokala nivån; samt kombinationen av skyddsnivåer för SBAS enligt DO-229E (sbas::sbas_protection_level) på L1-tjänsten. INTE täckt, uttryckt tydligt: bekvämlighetsfunktionerna med enhetlig sigma raim::araim_raim och raim::araim_dual_raim är INTE konforma med ADD (på matchade indata missar de Stanford MAAST med 0,75 m VPL / 4,04 m HPL respektive 0,39 m VPL / 1,93 m HPL, ett fynd); jämförelsen för SBAS L5 med dubbla frekvenser och flera konstellationer (DFMC) är ett fynd (308 användarepokspar utan GEO i sikte skyddas av Kshana men inte av MAAST, vars grind för GEO-mottagning Kshana inte modellerar); raim::solution_separation_raim saknar extern jämförelse
Oberoende referens
Tre oberoende verktyg, förhandsregistrerade (0123cee1) innan någon fixtur eller orakelutdata fanns, toleranser fastställda då. (1) ARAIM: Stanford MAAST för ARAIM 2 (commit ab70e2a3, BSD-3) mhss_raim_baseline_v5.m, körd som ett separat program under GNU Octave 8,4 med en kompatibilitetsshim för unique() på drivrutinssidan (redovisad, ingen algoritmändring), vid ADD:s TOL_PL på 0,05 m: Rust-koden återger ADD:s referensimplementering på 270 verkliga fall. Redovisat: Kshanas ADD-väg skrevs efter förhandsregistreringen och följer ADD så som MAAST implementerar den; en oberoende undanhållen datamängd från granskaren (270 nya användargeometrier och ett andra integritetsstödmeddelande, MAAST körd på nytt mot den frusna koden) klarade samma tröskel. (2) RAIM på ögonblicksbild: RTKLIB v2.4.2-p13 (BSD-2) estpos/valsol/raim_fde i en separat C-testmiljö för detektering och uteslutning; lutnings-PL från RTKLIB matinv/xyz2enu plus SciPy 1.18.1 chi2/ncx2, där båda sidor utvärderar samma slutna uttryck (Brown; Parkinson och Axelrad), så PL-kontrollen täcker implementeringen, inte formeln. (3) SBAS: Stanford MAAST (commit 7d32b049) usr_vhpl, omodifierad, på MAAST:s egna registrerade WAAS-sändningar: nivåer för L1 inom 1e-4 m efter omskalningen av K och en lika skyddad mängd. Samma jämförelser gav de fynd som anges i förmågan: ARAIM-funktionerna med enhetlig sigma är inte konforma med ADD, och likheten för L5-mängden misslyckas på 308 par utan GEO i sikte (nivåerna på de 3267 par som båda verktygen skyddar stämmer till 1e-13 m). K-faktorerna för DO-229E/DO-316 är avskrivna konstanter och den verkliga geometrin är en indata; ingen av dem räknas som orakel. Revision 0,30: skyddsnivåerna i snapshot_raim flyttades från den radiella till den geodetiska lokala nivån (upp till 0,31 m HPL och 0,14 m VPL vid 16 grader N)
Tester
tests/integrity_araim_stanford_oracle.rs::araim_mhss_matches_stanford_maast_add_v4_2 (270 fall med verklig geometri, Celestrak GPS+Galileo och IGS SP3: sämsta |dVPL| 2.2e-3 m, |dHPL| 1.1e-3 m, |dEMT| 2.1e-10 m mot ADD…
ValidatedBanpropagering och banbestämningsgp4,propagator,orbit_determination,precise_od
Förmåga
SGP4/SDP4, Cowell 6-DOF + störningar, batch-/sekventiell OD
Oberoende referens
Verifieringsvektorer för SGP4 enligt AIAA 2006-6753
ValidatedNumerisk Cowell-propagator och kraftmodellpropagator,forces
Förmåga
Numerisk Cowell-propagator med hierarkisk kraftmodell (två kroppar, zonala J2–J6, tredjekroppseffekt från Sol/Måne, SRP med kanonkula, exponentiellt luftmotstånd); RK4 med stegdubbling / DP5(4) / DOP853
Oberoende referens
Orekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 — ett oberoende bibliotek, en annan integrator och en annan rekursion för sfäriska harmoniska. De konservativa nivåerna (två kroppar → zonala J2–J6 → tredjekropp Sol/Måne → SRP med kanonkula) stämmer till under en meter över en båge på 24 h, vilket validerar integratorn + kraftalgebran; nivån för luftmotstånd och den absoluta noggrannheten i indata för Sol-/Månefemerid och densitet förblir MODELLED (endast karakterisering)
Tester
tests/numerical_cowell_propagator_reference.rs (275 epoker = 11 fall × 25 timtillstånd, LEO+GTO, mot Orekit 12,2 DormandPrince853; konservativa nivåer T1–T5 sämsta |Δr| 0,08 m över 24 h; luftmotståndsnivån karakteriserad vid 333 m)
ValidatedSRP-skugga för avplattad jord (valfri)srp_shadow,forces (srp_accel_with_lit_fraction),propagator
Förmåga
Belyst andel för SRP med ellipsoiden WGS-84 som skuggande kropp (skenbar jordradie från ellipsoidens limb mot Solen, linsformel med dubbla skivor; srp_shadow::oblate_conical_shadow), valfri i Cowell-kraftmodellen via propagator::ForceModel::srp_shadow (standard: den sfäriska koniska skuggan, oförändrad)
Oberoende referens
Orekit 12,2 (Apache-2.0) SolarRadiationPressure.getLightingRatio med en skuggande kropp av typen WGS-84 och en sfärisk OneAxisEllipsoid, körd som ett separat program med Solen fixerad i samma tröghetsposition. Trösklar förhandsregistrerade i xval/srp-oblate-shadow-orekit/PREREGISTRATION.md (6d6d269c): 1e-6 på båda, och en spridning > 1e-2 mellan avplattad och sfärisk; alla uppfyllda. Ellipsoidens axel är tröghetssystemets z-axel på båda sidor (ingen precession-nutation)
Tester
tests/srp_oblate_shadow_orekit_oracle.rs (2400 geometrier över skuggkanten, 884 i penumbra, LEO till GEO, solens deklination 0 och +-23.44 deg, 8 azimuter: sämsta |dnu| 7.41e-9 för WGS-84 och 2.24e-9 för den sfäriska…
ValidatedSRP med box-wing och ECOM2, med partialer (valfri)srp_boxwing,propagator,precise_od
Förmåga
SRP som inte är kanonkula: en plattmodell box-wing (Vallado ekv. 8-44; enkelsidiga kroppspaneler, solpekande vingar) med tabellerna för Galileo FOC, IOV och IOV vid livslängdens slut ur GSC:s satellitmetadata, i nominell GNSS-girstyrning, med analytiska partialer för strålningsfaktorn och varje panels spekulära och diffusa koefficienter; och den empiriska modellen ECOM2 (D2/B1) med sina partialer. Box-wing är valfri i Cowell-propagatorn (propagator::ForceModel::box_wing_srp, som sätter dess fält srp_boxwing) och i modellen för precis banbestämning (precise_od::PreciseForceModel::box_wing_srp), och ersätter termen med kanonkula med cr som strålningsfaktor; båda är som standard None, vilket lämnar varje befintlig väg byte-identisk. ECOM2 är inte kopplad till någon kraftmodell
Oberoende referens
Orekit 12,2 (Apache-2.0) BoxAndSolarArraySpacecraft med FixedPanel och PointingPanel, SolarRadiationPressure(dRef = 1 au, pRef = 1361/c), GenericGNSS nominell gir och ECOM2(nD = 2, nB = 1), körd som ett separat program med Solen i fixerade tröghetspositioner; derivatan av strålningsfaktorn från Hipparchus Gradient, derivator per panel som centrala differenser av Orekit (Orekit har inga). Trösklar förhandsregistrerade i xval/srp-boxwing-orekit/PREREGISTRATION.md (e59df6bf), innan någon Orekit-utdata fanns: 1e-12 relativt (1e-11 från ände till ände, 1e-9 för differenserna); alla uppfyllda (RESULTS.md). VALIDATED gäller enbart utvärderingen av modellen: GSC-tabellerna är avskrivna indata, och att en box-wing duger för verkliga Galileo-banor, termisk återemission, den modifierade girlagen vid låg beta och förmörkelsesvängar ingår inte; SRP-prediktionen för Galileo förblir MODELLED
Tester
tests/srp_boxwing_orekit_oracle.rs (252 geometrier för Galileo-banor, 7 solfall inklusive perihel- och aphelavstånd, 100 slumpmässiga attityder; platt-platt-summa sämsta 2.05e-15 relativt över 1056 fall; från början till slut med…
Belyst andel för SRP som den icke-skymda delen av det limbmörkade solflödet (lag enligt Eddington-approximationen I(mu)/I(1) = 2/5 + 3/5 mu, Gauss-Legendre-kvadratur) över en sfärisk jord eller WGS-84 (srp_shadow::limb_darkened_shadow, ShadowModel-varianten OblateEarthLimbDarkened)
Oberoende referens
Ingen extern: Orekit 12,2 har ingen limbmörkad belysningskvot. Endast kontrollerad mot slutna uttryck för samma lag
Tester
srp_shadow::tests (den ringformiga slutna formen, den enhetliga lagen som återger den koniska skuggan, gränserna full sol och umbra)
ValidatedTermosfärens densitet enligt NRLMSISE-00nrlmsise00
Förmåga
En portning av den empiriska termosfären NRLMSISE-00 (gtd7 och gtd7d: artdensiteter, total massdensitet med anomalt syre, temperaturer; de 24 omkopplarna; lägen med dagligt Ap och 3-timmars ap-array) från C-versionen i public domain av NRL:s Fortran
Oberoende referens
pymsis 0.13.0 (MIT) version=0, som kör NRL:s Fortran GTD7D i enkel precision, och C-portningen av NRLMSISE-00 (release 20190709, public domain) kompilerad som ett separat program, plus C-distributionens 17 publicerade testutdata. Trösklar förhandsregistrerade i xval/nrlmsise00-pymsis/PREREGISTRATION.md (e90ae26a) innan portningen fanns; alla uppfyllda (RESULTS.md). Validerar portningen, inte modellens noggrannhet mot uppmätt densitet
Tester
tests/nrlmsise00_reference.rs (720 rutnätspunkter, 90 till 1000 km, 4 latituder, 2 lokala tider, 3 dagar, låg/måttlig/hög aktivitet: densitet inom 1.866e-6 relativt och temperatur inom 1.97e-4 K från pymsis; bitidentisk…
ValidatedNivå för luftmotståndets densitet med NRLMSISE-00 (valfri)forces (density_at,drag_accel_with_density),propagator
Förmåga
forces::DensityModel (Exponential som standard, Nrlmsise00 { f107a, f107, ap }) och propagator::ForceModel::drag_density: kvadratiskt luftmotstånd mot den medroterande atmosfären med NRLMSISE-00-densiteten i den geodetiska WGS-84-punkten (jordens rotationsvinkel med UT1 = TT, lokal soltid UT + lon/15), konstant rymdväder per modell; avstängd som standard och bitidentisk
Oberoende referens
Orekit 12,2 (Apache-2.0) NumericalPropagator/DormandPrince853 med DragForce över Orekits egen implementering av NRLMSISE00, körd som ett separat program med samma system för jordens rotationsvinkel, WGS-84-form, konvention för lokal soltid (en medelsol) och TT som UT; konventionsuppsättningen kontrollerades orakel mot orakel (Orekit mot pymsis, 5.2e-5 i densitet). Trösklar förhandsregistrerade i xval/drag-tier-orekit/PREREGISTRATION.md (21647478): 0,5 m + 1e-3 av luftmotståndets förskjutning, och två känslighetskontroller > 100 m; alla uppfyllda. Inte täckt: modellens noggrannhet mot uppmätt densitet, tidsvarierande rymdväder, ett GMAT-ben
Tester
tests/drag_tier_orekit_oracle.rs (4 fall x 25 timtillstånd över 24 h, cirkulär 51,6 deg, 400 km vid låg/måttlig/hög aktivitet och 300 km: sämsta |dr| 0,0303 m och |dv| 3.36e-5 m/s mot 3,3 till 141,8 km luftmotstånd…
ValidatedStandardmässigt exponentiellt luftmotstånd mot en oberoende implementering (ekvatoriellt)forces (atmospheric_density,drag_accel),propagator
Förmåga
Standardluftmotståndet i Cowell-propagatorn: kvadratiskt luftmotstånd mot den medroterande atmosfären med forces::atmospheric_density, den styckvis exponentiella tabellen i Vallado Tabell 8-4 vid den sfäriska höjden (propagator::ForceModel::drag med standardvarianten Exponential av forces::DensityModel)
Oberoende referens
GMAT R2022a (NASA GSFC, Apache-2.0) GmatConsole med atmosfären Exponential (samma tabell med 28 band), punktmassejord och PrinceDormand78, körd, aldrig inkluderad i förvaret. Trösklar förhandsregistrerade i xval/drag-exponential-gmat/PREREGISTRATION.md (640c85c1) på luftmotståndets förskjutning för respektive sida (körning med minus körning utan luftmotstånd), vilket tar ut de två värdena på jordens mu och integratorerna; alla uppfyllda (RESULTS.md). GMAT tar geodetisk höjd och kshana sfärisk höjd: de sammanfaller bara vid ekvatorn, så VALIDATED gäller ekvatoriella banor; utanför ekvatorn skiljer sig modellerna med avsikt (10,4 % av förskjutningen över 24 h vid 51,6 grader, 400 km). GMAT:s publika bygge har inte NRLMSISE-00 (plugin saknas), så nivån för NRLMSISE-00 har bara oraklet från Orekit. Tabellens noggrannhet mot uppmätt densitet är inte täckt
Tester
tests/drag_exponential_gmat_oracle.rs (ekvatoriella fall E400, E300 och E250x600 vid J2000.0, 25 timtillstånd över 24 h: den luftmotståndsinducerade förskjutningen stämmer med GMAT:s till högst 0,016 av tröskeln 0,5 m + 1e-3|D|…
ModelledSol och Måne enligt DE440 i Cowell-kraftmodellen (valfri)propagator (ForceModel::with_ephemeris,ForceEphemeris),ephem_provider
Förmåga
Valfri efemeridnivå för termerna för tredje kropp och SRP i den numeriska Cowell-modellen ForceModel: geocentrisk Sol och Måne från valfri EphemerisProvider (en DE440 SPK-kernel via KernelEphemeris) vid TDB = TT + (TDB - TT), som vägrar en leverantör som inte kan betjäna epoken och räknar varje återgång till den analytiska serien; avstängd som standard
Oberoende referens
Orekit 12,2 (Apache-2.0) NumericalPropagator/DormandPrince853 med ThirdBodyAttraction och SolarRadiationPressure på Orekits egen DE440-läsare (orekit-data lnxp1990.440), körd som ett separat program; kshana läser ett bit-för-bit-likt, SPICE-kontrollerat utsnitt av NAIF de440s.bsp. Trösklar förhandsregistrerade i xval/propagator-de440-orekit/PREREGISTRATION.md (22a5a01d). Banans tröskel (0,5 m) och känslighetskontrollen är uppfyllda, men tröskeln för Sol-/Månposition (3 m / 0,2 m) missades på 6,39 m / 0,244 m. SPICE som läser samma kernel vid dess exakta TDB missar Orekit med samma storlek (6,25 m / 0,240 m), så gapet ligger mellan NAIF:s väg för de440s och Orekits DE440-läsare eller tidsskala; orsaken är inte isolerad. Registrerat och fastlåst, så raden förblir MODELLED
Tester
tests/propagator_de440_orekit_oracle.rs (5 fall x 25 timtillstånd över 24 h, LEO, GEO och HEO, tredje kropp och tredje kropp + SRP: sämsta |dr| 0,0170 m, |dv| 1.84e-5 m/s; analytisk serie som kontroll missar med 9,96 m; Sol…
Den dygnsvisa lufttrycksvågen S1 som en störning av geopotentialen: Biancale och Bode (2006) modell N1, grad 2 till 6, genom belastningsformeln i IERS 2010 ekv. 6,21 (tides::atmospheric_tide_s1, s1_air_tide_acceleration), valfri i Cowell- och precisionskraftmodellerna (air_tide_s1, avstängd som standard)
Oberoende referens
Ingen extern för geopotentialeffekten. De 24 koefficienterna är avskrivna från GFZ STR06/01 Tabell 1 modell N1 och kontrollerades på nytt rad för rad mot rapporten (SHA-256 890865ae); gradtalen 0, 1, 7 och 8 används inte. Ray och Ponte (2003) trycker ingen tabell över sfäriska harmoniska, så ingen andra källa jämfördes
Tester
tides::tests (S1-termen är dygnsperiodisk, vrider 90 deg på en kvarts dygn och har lastfaktoramplituden för varje rad; fysisk storleksordning vid LEO); propagator::tests::the_s1_air_tide_flag_adds_exactly_the_s1_acceleration
ValidatedKoefficienter för atmosfärstiden S2 enligt IERS-konventionentides (s2_air_waves,atmospheric_tide)
Förmåga
Rays (2001) lufttrycksharmoniska för S2 (n <= 4, prograd och retrograd) omvandlade till den fullt normaliserade sinus-ledande formen i IERS 2010 ekv. 6.20-6.21 (amplitud dividerad med N_nm, epsilon = 90 grader - psi) och tillämpade som S2-termen i tides::atmospheric_tide
Oberoende referens
Biancale och Bode, GFZ Scientific Technical Report STR06/01 (2006), Tabell 5, modell A2: Ray (2001) publicerad i fullt normaliserade harmoniska med faser av sinustyp, en oberoende återgivning av samma modell. Förhandsregistrerad i xval/s2-air-tide-fix/PREREGISTRATION.md (5e31c37a) tillsammans med den rättning den validerar. Täcker enbart koefficientomvandlingen; lufttidvattnets geopotentialeffekt har inget externt orakel
Tester
tests/s2_air_tide_gfz_table5.rs (21 av 21 vågor stämmer med den publicerade modellen A2: sämsta 0,00050 cm, 0,050 deg mot trösklar på 0,0006 cm, 0,1 deg); tests/tides_iers.rs (S2-amplitudband)
ValidatedTesseral geopotential i Cowell-propagatornpropagator (Geopotential,EarthFixedFrame),gravity_sh
Förmåga
Valfritt tesseralt fält EGM2008 (till grad/ordning 70) som central gravitation i den numeriska Cowell-modellen ForceModel, utvärderat i ett jordfast system roterat med IAU:s jordrotationsvinkel 2000 (eller kedjan CIO GCRS-till-ITRS); avstängt som standard, så ingen befintlig utdata ändras
Oberoende referens
Orekit 12,2 (CS GROUP, Apache-2.0) NumericalPropagator/DormandPrince853 med HolmesFeatherstoneAttractionModel över samma koefficienter (tools/egm2008_to70.gfc) i ett kroppssystem roterat med samma formel för jordrotationsvinkeln, körd som ett separat program. Trösklar förhandsregistrerade (f0e0e65, ändrade före någon jämförelse i 2da899a): |dr| <= 0,5 m och |dv| <= 5e-4 m/s, och båda negativa kontrollerna missar med > 100 m; alla uppfyllda, trösklarna skärptes sedan till 0,1 m och 1e-4 m/s. Inte validerat: noggrannheten i jordens orientering (båda sidor använder UT1 = TT utan precession-nutation i Era-systemet), alternativet med Cio-system (endast intern kontroll), grader över 70
Tester
tests/cowell_tesseral_orekit_oracle.rs (6 fall x 25 timtillstånd över 24 h: EGM2008 8x8 och 70x70 på LEO 45 deg, polär 89,9 deg, solsynkron 98,2 deg, GTO, och 70x70 med Sol/Måne och SRP; sämsta |dr| 0,0355 m…
ModelledSfäriskt harmoniskt gravitationsfält av hög grad (EGM2008 till 2190)gravity_sh,propagator (FieldEvaluator)
Förmåga
Underflödessäker och polsäker utvärdering av ett fullt normaliserat fält till grad 2190 (SphericalHarmonicField::acceleration_hf / potential_hf, Holmes-Featherstone 2002 modifierad framåtkolumn med gradienten fri från 1/cos phi), en strömmande inläsare för ICGEM .gfc (from_gfc_file / from_gfc_reader; hela EGM2008 hämtas vid körning, ingår inte), och Holmes-Featherstone-utvärderaren som kan väljas i den valfria Cowell Geopotential
Oberoende referens
Orekit 12,2 (Apache-2.0) HolmesFeatherstoneAttractionModel och pyshtools 4.14.1 (BSD-3-Clause) MakeGravGridPoint, körda som separata program; trösklar förhandsregistrerade i xval/high-degree-gravity/PREREGISTRATION.md (276c869f) och xval/cowell-tesseral-200-orekit/PREREGISTRATION.md (0aa312a6). Orekit stämmer överallt där det är definierat, men pyshtools missar sin förhandsregistrerade tröskel vid de två punkterna nära polen (upp till 7.3e-10 m/s^2; en kontroll med 50 siffror i mpmath lägger felet hos pyshtools), det finns inget orakelvärde exakt på polaxeln, och den förhandsregistrerade känslighetskontrollen för grad 70 i banan över 24 h missades (0,726 m mot > 1 m). Varje miss är registrerad, inte justerad bort, så raden förblir MODELLED
Tester
tests/gravity_sh_high_degree.rs (Orekit vid 8 punkter utanför axeln: max |da| 2.2e-17 m/s^2 vid N = 70, körs alltid; 3.5e-17, 3.9e-17 och 7.3e-17 m/s^2 vid N = 200, 360, 2190, datastyrt av KSHANA_EGM2008_GFC)…
ValidatedIntegratorn DOP853integrator,propagator
Förmåga
Hairer DOP853 8(5 3) explicit Runge-Kutta med den kombinerade felskattaren av 5:e/3:e ordningen, stegregulatorn från SciPy/Hairer, automatiskt begynnelsesteg, ett stegskydd som stänger vid fel och tät utdata av 7:e ordningen; kan väljas som propagatorns Integrator-variant Dop853 / propagator::propagate_dop853
Oberoende referens
SciPy 1.18.1 (BSD-3-Clause) solve_ivp(method=DOP853) och dess rutiner för enstaka steg, felnorm, tät utdata och begynnelsesteg, en oberoende implementering; exakta tvåkroppstillstånd från mpmath 1.3.0 med 40 siffror. Trösklar förhandsregistrerade i xval/dop853-scipy/PREREGISTRATION.md (ae1b25e) före den första jämförelsen; alla uppfyllda (xval/dop853-scipy/RESULTS.md). SciPys första steg ges till båda lösarna i de fullständiga körningarna; rutinen för begynnelsesteg jämförs separat. Inte täckt: RKF7(8), detektering av styvhet, händelselokalisering
Tester
tests/dop853_scipy_oracle.rs (8 enstaka steg: tillstånd inom 5.55e-15 relativt, FSAL-derivata 3.46e-15, tät utdata 1.99e-14, beslut om godkännande/avslag identiska; 3 fullständiga körningar vid rtol = atol = 1e-12 (LEO 58000 s, e = 0,7…
ValidatedRobust lösare för Keplers ekvationkepler,propagator
Förmåga
Elliptisk Kepler-lösare för alla 0 <= e < 1 och alla medelanomalier: kubisk startgissning av Markley (1995) och korrektion av femte ordningen, en residual fri från kancellation (1-e)E + e(E - sin E) - M, och skyddad Newton-polering (kepler::solve_kepler_markley, propagator::solve_kepler_robust)
Oberoende referens
mpmath 1.3.0 (BSD-3-Clause) rötter med 50 siffror från de exakta binära indata. Trösklar förhandsregistrerade i xval/kepler-mpmath/PREREGISTRATION.md (df22174), angivna relativt |E| med argumentet om konditionering för e -> 1, M -> 0; alla uppfyllda (xval/kepler-mpmath/RESULTS.md). De äldre lösarna (solve_kepler_checked, orbit::solve_kepler, ephem::solve_kepler) är numeriskt oförändrade, eftersom incheckad utdata beror på dem, och täcks inte av den här raden
Tester
tests/kepler_mpmath_oracle.rs (405 rutnätspunkter, e från 0 till 0,999999, M i [-pi, pi] ned till 1e-12: sämsta |E - E_ref| 0,898 eps|E| mot en tröskel på 8 eps|E|; 9 punkter med lindat M vid sämst 0,013 av sin tröskel; ingen Newton…
ModelledBatch-banbestämning med avståndshastighet och az/el med stationsmaskeringorbit_determination (determine_orbit_batch_tracking,propagate_with_stm,is_visible),batch_ls (gauss_newton_analytic)
Förmåga
Återskapa ett epoktillstånd ur blandad spårning av avstånd, avståndshastighet och azimut/elevation över en elevationsmask med Gauss-Newton på H = (dh/dx(t)) Phi(t, t0): analytiska mätpartialer och en variationell tillståndsövergångsmatris med analytiska partialer för två kroppar + J2 (integrerad med RK4, inte en STM i sluten form)
Oberoende referens
Orekit 12,2 (Apache-2.0) BatchLSEstimator med egna ögonblickliga geometriska mätningar av RangeRate och AzEl (korskontrollerade mot Orekits TopocentricFrame), körd som ett separat program på identiska maskerade, seedade observationer. Trösklar förhandsregistrerade i xval/od-measurements-orekit/PREREGISTRATION.md (0cf9076). Varje tröskel uppfylldes utom B4, tillståndsmatchningen utan brus på 1 cm, som missades i 2 av 4 scenarier (1,46, 1,74 cm): Orekits egen skattning utan brus ligger så långt från sin simulerade referens (orsaken på Orekits sida är inte isolerad). Registrerat och fastlåst, så raden förblir MODELLED. Inte modellerat: ljustid, aberration, refraktion, jordrotation, ett sekventiellt filter för de här mättyperna
Tester
tests/od_tracking_measurements_reference.rs (8 scenarier: avståndshastighet, az/el och blandat, LEO och MEO, brusfritt och med seedat sigma 5 m / 5 mm/s / 1e-4 rad, masker på 5 och 10 deg, mot Orekit 12,2: synliga mängder identiska…
ModelledViktning av observationer efter noggrannhetskod i SP3sp3,precise_od
Förmåga
Avbilda noggrannhetskoder i SP3 (huvudets ++-exponenter i 2^n mm, basen %f, standardavvikelser base^n mm per post) på positionssigma per observation för motorn för precis banbestämning (sp3::parse_sp3_accuracy, Sp3Accuracy::position_sigma_m)
Oberoende referens
Ingen extern: vikterna är ett modellval (formatet SP3 definierar koden bara som producentens noggrannhetsindikator; den läses här som en standardavvikelse per axel). De befintliga registrerade körningarna från organisationerna är oförändrade
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…
ValidatedPlanetära gravitationsfält från PDS SHADR-tabellergravity_pds,gravity_sh
Förmåga
Läs PDS SHADR-tabeller med sfäriska harmoniska (from_shadr, på SphericalHarmonicField i src/gravity_pds.rs: enhetsomvandling, C00 = 1 angiven, kontroller av fullständighet och normalisering) och utvärdera den kroppsfasta gravitationen för Mars GMM-3 (grad/ordning 120) och månfältet GRAIL GL0660B (grad/ordning 660)
Oberoende referens
pyshtools 4.14.1 (BSD-3-Clause) läser samma PDS-filer och utvärderar punktgravitation, körd som ett separat program, samt de publicerade huvudena och etiketterna för PDS-produkterna. Trösklar förhandsregistrerade i xval/planetary-gravity-pyshtools/PREREGISTRATION.md (32c5b50); alla uppfyllda (RESULTS.md). Data: NASA PDS Geosciences Node, public domain; beskärningar av grad 20 medföljer med NOTICE, fullständiga filer hämtas vid testtillfället
Tester
tests/planetary_gravity_pds.rs (utsnitt av grad 20 körs alltid: sämsta |dg|/|g| 9.7e-16, störningsrelativt 3.4e-11; GMM-3 d/o 120 över hela sfären 3.7e-15 / 6.3e-12 och GL0660B d/o 660 vid |lat| <= 60 deg 5.0e-14 /…
ModelledKoppla ett publicerat gravitationsfält till en kroppgravity_pds,body,propagator,mars_frame
Förmåga
with_gravity_field (på Body, i src/gravity_pds.rs): koppla valfritt inläst sfäriskt harmoniskt fält (till exempel GMM-3 eller GL0660B) till en Body så att propagatorn utvärderar det kroppsfast; valfritt, standardkroppar oförändrade
Oberoende referens
Endast intern konsistens. Varje publicerat fält är definierat i producentens kroppsfasta system (GMM-3 i Marssystemet av Konopliv et al. 2006, GL0660B i månens huvudaxelsystem DE421), medan fältet utvärderas i IAU-systemet; förskjutningen är inte modellerad
ValidatedBatch- och sekventiell banbestämningorbit_determination,precise_od (batch_ls::gauss_newton,fusion::ukf)
Förmåga
Återskapa ett epoktillstånd [r,v] ur avstånd från markstationer med en differentialkorrigerare av Gauss–Newton i batch och ett sekventiellt filter, över en kraftmodell med två kroppar+J2
Oberoende referens
Orekit 12,2 (CS GROUP, Apache-2.0) BatchLSEstimator (Levenberg–Marquardt) + KalmanEstimator (EKF) — ett oberoende skattningsbibliotek från tredje part med en matchad kraftmodell; återskapat epoktillstånd + RMS för residualer efter anpassning stämmer till <1e-3 m utan brus och <3 m vid ett brusgolv 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)
ValidatedLösare för radiometrisk ljustid i djupa rymdenradiometric (light_time_solution)
Förmåga
Retarderad (nedlänk) enkelriktad ljustidslösning τ = |r_rx − r_target(t−τ)|/c för radiometrisk navigering i djupa rymden (jorden→Mars/Solen/Månen)
Oberoende referens
ANISE 0,10 (Nyx Space, MPL-2.0) ljustid med konvergerad newtonsk aberration (Aberration::CN; motsvarar SPICE spkapo) över JPL DE440 — en oberoende SPICE-implementering i Rust; kshanas retarderade lösare med fixpunkt matchade till under en nanosekund. De bredare måtten för Doppler / Shapiro / reducerad dynamisk OD förblir MODELLED
Tester
tests/deep_space_mars_radiometric_reference.rs (24 sträckor över 8 epoker 2020–2027 mot ANISE DE440; sämsta |Δτ| 1.03e-9 s, |Δrange| 0,31 m vid upp till 2,5 AU)
ValidatedSatellitposition ur sändningsefemerid (RINEX för flera GNSS)rinex (parse_nav,RinexEphemeris::sv_position_ecef)
Förmåga
Keplersk → ECEF-satellitposition ur sändningsefemerid för IS-GPS-200 / Galileo-OS / BeiDou-OS från en tolkad navigeringspost i RINEX-3
Oberoende referens
RTKLIB v2.4.2-p13 eph2pos() kompilerad från C-källkod (T. Takasu, BSD-2-Clause) — en oberoende implementering av IS-GPS-200/SIS-ICD, matad med identiska navigeringsposter i RINEX-3; satellitens ECEF-position matchade till ~62 nm. (Interpolation av precisa efemerider i SP3 valideras separat — se 'SP3 precise-ephemeris interpolation')
ValidatedInterpolation av precisa efemerider i SP3sp3 (Sp3Interpolator::position_ecef)
Förmåga
Lagrange-interpolation enligt IGS-standard av satellitpositioner ur precisa efemerider i SP3 med jordrotationskorrektion per nod (rotera varje nod med ω⊕·(t_node−t) in i frågeögonblickets jordfasta system före polynomanpassningen)
Oberoende referens
RTKLIB peph2pos() kompilerad från C-källkod (preceph.c; T. Takasu, BSD-2-Clause) — de facto IGS-referens, en oberoende implementering; kshanas interpolator (som nu har samma jordrotationskorrektion per nod) matchade till ~15 nm på en verklig SP3-produkt, ned från ~5,5 cm före korrektionen
Tester
tests/sp3_interp_reference.rs (72 off-node SV-epoch cases / 6 satellites vs RTKLIB peph2pos; worst per-axis |Δ| 1.5e-8 m)
ModelledKodare för navigeringsmeddelanden utöver GPS LNAV (GPS CNAV, Galileo I/NAV och F/NAV)gnss_navmsg (gps_cnav,gal_inav,gal_fnav,fec)
Förmåga
GPS CNAV-meddelandetyperna 10/11/30, Galileo I/NAV-ordtyperna 1-5 i nominella jämna/udda sidor och Galileo F/NAV-sidtyperna 1-4: ICD-fältpackning och kvantisering, CRC-24Q, faltningskodning med hastighet 1/2 och K=7 (G2 inverterad för Galileo), blockinterfoliering och synkmönster, med matchande testavkodare
Oberoende referens
Intern tur-och-retur och ICD-kända svar; ingen avkodare från tredje part har körts (testmiljön för RTKLIB/GNSS-SDR som läser KSHANA_NAVMSG_ORACLE_JSON är datagrindad). MODELLED
Tester
gnss_navmsg::tests (CRC-24Q-kontrollvärde 0xCDE703; konvolutionell impulssvar; Viterbi korrigerar injicerade fel; layoutbredder); tests/gnss_navmsg_roundtrip.rs (fältens startbitar är lika med ICD:ns bitnummer; kodning ->…
ValidatedLäsare och interpolation för IONEX globala jonosfärskartor på en verklig CODE GIMionex (parse_ionex,parse_ionex_file,IonexFile::vtec_at,IonexFile::slant_tec_at,interpolate_tec_in_time,TecGrid::vtec_at)
Förmåga
Läsare för IONEX 1,0 (huvud, I5-värden i fasta kolumner, TEC- och RMS-kartor, absoluta epoker, saknade värden) med bilinjär rumslig interpolation, formatets tidsinterpolation med närmaste / på varandra följande / roterad karta (ekv. 1-3) och tunnskals-TEC längs sikten
Oberoende referens
CODE GIM:s tryckta värden (exakta i varje nod; kartan hämtas vid testtillfället, ingår inte i förvaret eftersom dess licens inte är bekräftad) och en oberoende omimplementering med Pythons standardbibliotek av IONEX 1,0:s interpolationsformler incheckad tillsammans med fixturen (trösklar förhandsregistrerade e4d8b1f, 1e-9 TECU). Kontroll från tredje part (B6, förhandsregistrerad, första körningen): RTKLIB v2.4.2-p13 iontec (BSD-2-Clause, körd som separat verktyg) vid 6885 frågepunkter stämmer med IonexFile::vtec_at till 3.6e-13 TECU i båda interpolationslägena mot en tröskel på 1e-5 TECU. Datagrindad: CODE GIM hämtas vid testtillfället, SHA-låst; RTKLIB läser hela filen eftersom dess getindex avvisar latitudbeskärningen. tests/fixtures/ionex_code_gim/fetch.sh hämtar den och kontrollerar SHA-256, testet misslyckas på alla andra byte, och run_rtklib.sh är den dokumenterade vägen för att reproducera (nätverksåtkomst krävs). Uppgraderad till VALIDATED genom ägarens beslut på datagrindad evidens (2026-10-13)
Tester
tests/ionex_code_gim_oracle.rs (incheckad syntetisk IONEX-karta mot formelreferensen: 20 075 noder exakta, interpolation max |Δ| 3.5e-13 TECU; datastyrt av KSHANA_IONEX_CODE_GIM_DIR, den verkliga slutliga CODE-GIM…
ModelledHatch-bärvågsutjämning av kod på verkliga RINEX-observationerhatch (HatchFilter),pvt (assemble_epoch_precise_smoothed,CarrierSmoother)
Förmåga
Divergensfritt Hatch-filter (jonosfärsfri kod buren av den jonosfärsfria bärvågen, fönster på N epoker, omstart vid förlorad låsning, geometrifritt hopp eller lucka) i sammanställningen för precis enpunktspositionering
Oberoende referens
FYND mot den publicerade ITRF2020-koordinaten för WTZR: de förhandsregistrerade trösklarna (utjämnad median och p95 högst 0,6 x rå; tests/fixtures/gnss_wettzell_2025055/PREREGISTRATION_HATCH.md) missades, kvoter 0,718 och 0,923; det kvarvarande felet på meternivå är biasliknande (kodbias för C1C, antenn, tidvatten, multipath över lång period), inte det vita brus som utjämningen tar bort. MODELLED: filtrets statistik kontrolleras internt
ValidatedRTK-dubbeldifferenser med heltalsfixering via LAMBDA på verkliga RINEX-observationerrtk_real (run_rtk),lambda (resolve)
Förmåga
Relativ positionering på kort baslinje ur verklig GPS-kod och bärvågsfas på två frekvenser: dubbeldifferenser mot den högsta satelliten med sin fullständiga kovarians, ett Kalman-filter med flyttal över baslinjen och enkeldifferensernas osäkerheter med omstart vid slip, minsta kvadrat med heltal via LAMBDA med kvottest, och baslinjen betingad på de fixerade heltalen
Oberoende referens
Publicerade ITRF2020-koordinater för WTZR och WTZZ (IGN ITRF2020_GNSS.SSC, lösning 3, med RINEX-antennhöjderna) som ger referensbaslinjen; trösklar förhandsregistrerade i tests/fixtures/gnss_wettzell_2025055/PREREGISTRATION_RTK.md innan koden skrevs. Endast kort baslinje: inga jonosfäriska eller troposfäriska dubbeldifferenser modelleras
Tester
tests/rtk_real_wettzell_oracle.rs (IGS-stationer WTZR bas / WTZZ rover, 1,4 m, 2025-02-24 00-03 h, 30 s: 359 epoker, positionsbestämningar vid 100 % från 00:10, fel i fast baslinje median 4,5 mm, p95 5,5 mm; första 10 min fast 2,6 mm…
ValidatedTidslösning för mottagarklockan med PPP mot IGS slutliga stationsklockappp_real (run_ppp,PppEpoch::clock_m)
Förmåga
Mottagarklockan skattad av det statiska PPP-filtret med flyttal på verklig GPS-kod och fas på två frekvenser med IGS slutliga banor och klockor: en tidsöverföring från mottagaren till IGS-tid, PPP:s jonosfärsfria tidslösning.
Oberoende referens
IGS slutliga kombinerade klocka för stationen WTZR (AR-poster i IGS0OPSFIN_20250550000_01D_05M_CLK, SHA-256 d19f3d45...993d, en kombination av flera analyscentras nätverkslösningar; IGS-produkter, fri användning med angivande av källa); trösklar förhandsregistrerade i xval/ppp-time/PREREGISTRATION.md före någon jämförelse; alla höll vid första körningen. VAD SOM INTE ÄR KONTROLLERAT: en station och ett konvergerat tvåtimmarsfönster; IGS-tid, inte UTC(k); den konstanta förskjutningen innehåller mottagarens kodbiaser och är begränsad, inte kalibrerad; ingen spårbarhet till 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)
ValidatedPrecis punktpositionering med flyttal på verkliga RINEX-observationerppp_real (run_ppp,parse_antex_receiver,solid_tide_ecef,phase_windup)
Förmåga
Statiskt PPP-filter med flyttal (utvidgat Kalman-filter) på verklig GPS-kod och bärvågsfas på två frekvenser med IGS slutliga banor och klockor: jonosfärsfri kombination, antennförskjutningar för satellit och mottagare (mottagarvariationer), fast jordtidvatten, fasupplindning, Shapiro-fördröjning, skattad zenitfördröjning från vattenånga, osäkerheter med flyttal per båge med detektering av slip via geometrifritt / Melbourne-Wübbena
Oberoende referens
Publicerad ITRF2020-koordinat för WTZR (IGN ITRF2020_GNSS.SSC, lösning 3, propagerad med sin hastighet) — trösklar förhandsregistrerade i tests/fixtures/gnss_wettzell_2025055/PREREGISTRATION_PPP.md innan filtret skrevs; utveckling endast på den samlokaliserade stationen WTZZ. Inte modellerat: havsbelastning, satellit-PCV, upplösning av heltalsosäkerhet
Tester
tests/ppp_real_wettzell_oracle.rs (IGS-station WTZR, 2025-02-24 00-06 h, 30 s, undanhållen från utvecklingen: horisontellt i sista epoken 1,5 mm, upp −2,9 cm; 04-06 h 240/240 epoker inom 0,10 m 3-D, p95 6,7 cm; enbart kod p95…
ValidatedLäsning av navigeringsfiler i RINEX 4rinex (parse_nav,parse_nav_with)
Förmåga
Navigeringsfiler i RINEX 4.00-4.02: poster > EPH för GPS LNAV, Galileo I/NAV och F/NAV, BeiDou D1/D2 och QZSS LNAV avkodade till typen för sändningsefemerider; poster för CNAV, CNV1-3, FDMA, SBAS, STO, EOP och ION hoppas över till nästa posthuvud; en post vars huvud anger en annan satellit, eller en trunkerad post, avvisas
Oberoende referens
Samma dags sammanslagna sändningsfil i RINEX 3 från IGS (publicerade data, skrivna av en annan filgenerator från samma sändningsmeddelanden); trösklar förhandsregistrerade i tests/fixtures/brdc_rinex4_2026200/PREREGISTRATION.md (7aa264b) före första körningen
Tester
tests/rinex4_nav_brd400_oracle.rs (IGS BRD400DLR_S RINEX 4,02 mot BRDM00DLR_S RINEX 3,04 från 2026-07-19, utsnitt 00-02 h: G 37 / E 478 / C 72 poster matchade åt båda håll, varje fält identiskt, position vid Toe 0 m; hel dag…
ModelledLäsning av observationsfiler i RINEX 4rinex_obs (parse_obs)
Förmåga
Observationshuvuden i RINEX 4.0x (DOI, LICENSE OF USE, STATION INFORMATION, MERGED FILE; etiketter matchade i kolumnerna 61-80 för version 4 och senare) och epokposter
Oberoende referens
Formatkontroll på en verklig publicerad RINEX 4,00-fil (värden som läses tillbaka är lika med filens tryckta literaler) och ett huvud härlett ur specifikationen; ingen oberoende läsare har körts, så MODELLED
Tester
tests/rinex4_obs_mao0.rs (de första 4 epokerna i IGS MGEX-filen RINEX 4,00 MAO000USA_R_20231980000_01D_30S_MO, 58 satelliter, 7 system: rubrikposter och värden i första epoken är lika med de publicerade litteralerna)…
ModelledSatellitposition ur sändning för BeiDou GEOrinex (RinexEphemeris::sv_position_ecef_bds_geo,NavParseOptions)
Förmåga
BDS-SIS-ICD-B1I v3.0 §5.2.4.12 position för geostationär satellit ur en sändningsefemerid (tröghetsliknande system, därefter Rz(Ω̇e·tk)·Rx(−5°)), valfri via fältet include_beidou_geo i NavParseOptions, så standardläsaren hoppar fortfarande över GEO
Oberoende referens
Förhandsregistrerad (7aa264b, 110fef9) mot en precis IGS MGEX-bana med GEO; ingen sådan produkt var nåbar från sessionen som byggde den, så jämförelsen är ännu inte gjord och raden är MODELLED (kontrollerad endast mot de publicerade nominella GEO-positionerna)
Tester
tests/bds_geo_broadcast_oracle.rs (verkliga C01-C04-poster: geostationär radie, longituder 140.02/80.04/110.55/159.99 deg vid de publicerade platserna, |latitud| 2,13 deg med lutningen mot 6,65 utan; den förhandsregistrerade…
ValidatedInterpolation av precisa klockor i SP3sp3 (Sp3File::clock_s,clock_nodes),precise_products (ClockRinex::from_sp3)
Förmåga
Satellitklockans förskjutning mellan de tabulerade klocknoderna i SP3 genom linjär interpolation över de två omslutande giltiga noderna (schemat pephclk i RTKLIB; sentinellen för dålig klocka hoppas över), och samma noder matade in i kedjan för precisa produkter som poster likvärdiga med RINEX-klocka
Oberoende referens
IGS slutliga kombination av satellitklockor på 30 s (IGS0OPSFIN 30S CLK, 2025-02-24): publicerade klockskattningar vid frågeögonblicken, inte interpolerade ur SP3; trösklar förhandsregistrerade i tests/fixtures/sp3_clock_igs_oracle/PREREGISTRATION.md före första körningen (RMS 0,15 ns, p95 0,30 ns, nodmedian 1e-12 s, diskriminering 2x)
Tester
tests/sp3_clock_igs_oracle.rs (IGS slutlig SP3 på 15 min från 2025-02-24 mot IGS slutliga klockor på 30 s, 32 GPS-satelliter: nodmedian |Δ| 2.6e-13 s; 3038 mittpunktsposter RMS 0,121 ns, p95 0,265 ns; att hålla noden i stället…
ModelledTätt kopplad GNSS/INS med bärvågsfas och osäkerheter med flyttalfusion::carrier_tc (run_carrier_tc,CarrierTcCfg),fusion::trajectory (truth_epochs)
Förmåga
Feltillståndsbaserat EKF över 15 INS-tillstånd, en mottagarklocka med två tillstånd och en osäkerhet med flyttal i bärvågen per spårad satellit; pseudoavstånd, bärvågsfas och valfri avståndshastighet från en SGP4 Walker-konstellation (ljustid och Sagnac), korrektioner med Klobuchar och Saastamoinen/Niell tillämpade i slingan vid filtrets egen position; detektering av slip med tidsdifferentierad bärvåg och en tröskel per satellit vidgad av hastighetsosäkerheten; omstart av osäkerheten vid slip och återinfångning
Oberoende referens
Intern konsistens: mätningarna syntetiseras ur de modeller som filtret använder (χ² NEES/NIS över seeds, en brusfri konvergens, slipinjektion). MODELLED; inga verkliga mottagardata eller filter från tredje part jämförs
Tester
tests/fusion_carrier_tc.rs (färd i form av en 8:a: stabil 3-D RMS 0,025 m med bärvåg mot 0,470 m med kod på identiska mätningar; 12 seeds, medelvärde NIS/dof 1,00 och stabil NEES/dof 0,92; ett 1-cykels slip detekterat vid sin epok utan…
ModelledGNSS/INS-paket för sjö, järnväg och flyg med ett alternativ för tät kopplingfusion::pack (TightCfg,[tight]),scenarios gnss-ins-maritime /gnss-ins-rail /gnss-ins-aviation
Förmåga
Tre scenarier för gnss-ins på banbiblioteket (ett fartyg som slingrar sig med 8 m/s med ett avbrott på fem minuter; ett tåg genom en skärning med två satelliter och en tunnel; ett flygplan vars avbrott täcker en 25-graders krängd sväng) och paketets valfria tabell [tight]: pseudoavstånd från en SGP4 Walker-konstellation sammanförda av navigatorn med sluten slinga, varje satellit över masken vid nominell drift och de högsta få vid försämrad drift
Oberoende referens
Internt: varje pakets kvalitetsmått mot dess egen referens och en jämförelse mellan lös och tät koppling på identiska indata. MODELLED; granskningens jämförelse med NaveGo har inte körts
Tester
tests/gnss_ins_packs.rs (varje paket: fuserat under fri INS över bortfallet för båda sensorerna; räls: tät 5,3 m mot lös 12,9 m navigeringsklass och 15,6 m mot 18,8 m taktisk över bortfallet, tillgänglighet 0,97 mot 0,95…
ModelledKopplat PNT-filter för pseudoavstånd med biastillstånd och 3D-utvidgning i fusionspaketetfusion::coupled (CoupledPntFilter,CoupledPntBiasFilter,CoupledPnt3d),fusion (run_coupled_suite),hybrid (CoupledCfg)
Förmåga
Ett staplat Kalman-filter över position, hastighet, klockfas och frekvens matat med pseudoavstånd som kopplar position och klocka (uppdateringar i Joseph-form som bär korskovariansen); en variant med 1 frihetsgrad utökad med ett konstant tillstånd för accelerometerbias som fusionspaketet kör under [coupled]; och 3D-versionen med 8 tillstånd med rader för siktlinjen
Oberoende referens
Intern konsistens: referensen simulerad ur filtrens egna modeller (χ² NEES över Monte Carlo-seeds, det frikopplade paketet på identiska sensorer). MODELLED
Tester
tests/fusion_coupled_filters.rs (3-D-filter över 60 seeds: medel-NEES i andra halvan 8,12 för 8 tillstånd, χ²-summa i sista epoken inom sitt 95 %-band; en klockkorrigering på 0,1 ns minskar 3-D-positionens sigma från 5,58 m till 3,07 m; bias…
ValidatedLöst kopplat GNSS/INS-EKF med hävarm på datamängden KF-GINSfusion::kfgins (run,loaders,score),fusion::closed_loop (propagate_increments,fuse_position_lever_arm),fusion::gnss_ins_ekf (update_position_lever_arm)
Förmåga
Det slutna 15-tillståndsfiltret EKF för feltillstånd drivet av IMU-ökningar med GNSS-antennpositioner sammanförda genom hävarmsmodellen H = [I 0 −[(C_b^n l_b)×] 0 0], konfigurerat från en KF-GINS YAML-fil (begynnelsetillstånd och sigman, ARW/VRW, Gauss-Markov-biaser)
Oberoende referens
Datamängdens publicerade referensbana och C++-programmet KF-GINS (GPL-3.0, commit 8291a93e, körd som ett separat verktyg); trösklar förhandsregistrerade i xval/kfgins/PREREGISTRATION.md, och KF-GINS kördes inte på de här data före den registreringen (kontrollerat i dess Results). Alla sex trösklar höll vid första körningen. DATAGRINDAD: demodatamängden KF-GINS (verklig IMU Leador-A15 och RTK GNSS med en referensbana) saknar licens, så den ingår inte i förvaret; xval/kfgins/fetch.sh hämtar den vid testtillfället med varje fils SHA-256 låst, och testet misslyckas vid avvikelse; vägen för att reproducera, som kräver nätverksåtkomst, finns i xval/kfgins/PREREGISTRATION.md. Uppgraderad till VALIDATED genom ägarens beslut på datagrindad evidens (2026-10-13)
Tester
tests/fusion_kfgins_dataset_oracle.rs (syntetiska inläsare och hävarmstester på roterande plattform alltid; datastyrt av KSHANA_KFGINS_DIR, körd 2026-10-13 på demodatamängden KF-GINS: horisontell / vertikal RMS 0,0109 /…
ValidatedExport för testbänk läst av en simulators rörelsefilsläsare (gps-sdr-sim)interop::testbench (write_motion_csv,write_nmea,export)
Förmåga
De rörelsefiler som exporteras för testbänk och ges till en öppen GNSS-simulators egna läsare kommer tillbaka som den exporterade banan: NMEA GGA-filen (-g), utsnittet med tid/latitud/longitud/höjd ur rörelse-CSV (-x) och dess utsnitt med tid/x/y/z (-u), på 6 gnss-ins-scenarier (inklusive paketen för sjö, järnväg och flyg, lästa till simulatorns tak på 3000 sampel) och 2 stationära. Endast rörelse; ingen signal skrivs eller genereras.
Oberoende referens
VAD SOM KONTROLLERAS EXTERNT, uttryckt snävt: gps-sdr-sim (MIT, commit 28ca29a6) readNmeaGGA, readUserMotion och readUserMotionLLH med sin egen WGS 84 llh2xyz, anropade genom xval/testbench-gpssdrsim/driver.c (ingen signalfunktion anropad), mot rörelse-CSV:s jordfasta kolumner rad för rad, med trösklar förhandsregistrerade i xval/testbench-gpssdrsim/PREREGISTRATION.md före någon körning: varje sampel lästes på alla 8 scenarier; NMEA sämsta 1,21 mm (tröskel 1 cm); LLH-utsnitt sämsta 0,145 mm (tröskel 1 mm); fyrkolumners jordfast utsnitt exakt (tröskel 1 um, ändring 1); gnss-ins-rader på simulatorns rutnät på 10 Hz till 2.3e-13 s. FYND (körning 1, fastlåst): CSV-filen i full bredd med borttaget huvud går inte att läsa med -u, eftersom läsarens radbuffert på 100 tecken delar varje rad på 161 tecken i två sampel; docs/TEST-BENCH.md anger utsnittet med fyra kolumner. VAD SOM INTE ÄR KONTROLLERAT: fysiken i scenariots referensbana; gps-sdr-sims signalutdata; någon annan simulators läsare; någon mottagare.
Tester
tests/testbench_gpssdrsim_oracle.rs (6 tester: oberoende referens och scenarier, exportbytes fastlåsta, NMEA- och LLH-läsare, fyrkolumners ECEF-urval, FINDING i körning 1 på CSV-filen i full bredd, radrutnät på 10 Hz)
ModelledBibliotek med GNSS/INS-banor och import av CSV-referensfusion::trajectory (TrajectoryCfg,Trajectory,kinematic_imu,parse_truth_csv),fusion::pack ([trajectory])
Förmåga
Valbara rörelseprofiler för paketet gnss-ins (rakt, figur-8, urban stanna-och-kör, flygplans stigning och koordinerad sväng, kartläggningsdrönare), definierade av kommandon för Euler-hastighet och acceleration längs spåret slutna på referenstillståndet med den kinematiska IMU:n (termer för centripetal, gravitation och Coriolis), och importerad CSV-referens omvandlad till den IMU som återger den; den historiska körningen oförändrad när ingen profil anges
Oberoende referens
Internt: identiteter för stelkroppskinematik, CSV-tur-och-retur och filtrets egen kovarians. MODELLED (ingen verklig körlogg jämförs)
Tester
fusion::trajectory::tests (samordnad sväng har ingen sidokraft och lastfaktor 1/cos φ; CSV-import återger en flugen profil till 1e-3 m/s och 1 m); tests/gnss_ins_trajectory_library.rs (varje profil körs och fusion…
ValidatedMekanisering av strapdown-INSinertial::mechanization,inertial::attitude,inertial::imu_errors
Förmåga
Strapdown-tröghetsmekanisering med kvaternionsattityd i WGS-84 NED (kompenserad för coning/sculling) som propagerar ett navigeringstillstånd ur ökningar av (Δθ, Δv)
Oberoende referens
NaveGo v1.4 (R. Gonzalez et al., LGPL-3) körd under Octave — en oberoende publicerad INS-verktygslåda driven av den identiska strömmen av ökningar (Δθ,Δv). Attityden matchar bit för bit (samma konventioner för NED / skalär-först-kvaternion / jordhastighet / transporthastighet); hastighet/position stämmer till två dokumenterade skillnader — nordkomponenten av gravitationen från lodavvikelsen som NaveGo inkluderar och kshana medvetet utelämnar (lodlinjegravitation; matchad mot Groves slutna uttryck i varje siffra, med en kontroll av ett förnuftigt golv) och skillnader av O(dt²) mellan integratorer — inte fel i mekaniseringen
Tester
tests/classical_strapdown_ins_reference.rs (statiska/sväng-/koningprofiler, 30 epoker vardera, mot NaveGo: attityd bitidentisk 0 rad; hastighet/position inom namngivna analytiska gränser)
ValidatedSyntes av gravitationsfältsfunktionaler (gravitationsstödd / GNSS-fri navigeringskarta)gravity_sh
Förmåga
Sfärisk harmonisk gravitationsstorlek + störning (mGal) ur valfri ICGEM .gfc-modell; normalgravitation enligt GRS80
ModelledCR3BP för jord–måne 9:2 NRHO mot den bana CAPSTONE flögcr3bp (differential_correct_halo,PeriodicOrbit)
Förmåga
Den cirkulära begränsade södra 9:2 nära-rätlinjiga haloomloppsbanan kring L2 som cr3bp::differential_correct_halo korrigerar (banfamiljen för Gateway och CAPSTONE), jämförd för sin medelgeometri (period, perilunradie, apolunradie) med den bana CAPSTONE faktiskt flög. Ett mått på hur väl CR3BP-medlemmen beskriver den verkliga banan; en CR3BP-bana är inte en bana i en efemerimodell och jämförs inte epok för epok
Oberoende referens
Mätt mot JPL Horizons rekonstruerade CAPSTONE-efemerid (NAIF -1176, CAPSTONE_merged, månencentrerad ICRF, 2023-03-01..31 med 10 min), incheckad byte för byte (tests/fixtures/capstone_horizons/, NOTICE.md), förhandsregistrerad 4e868170 innan den hämtades, som en mätning med trösklar på medelgeometrin. Inte en validering: CR3BP utelämnar Solen, månens excentricitet och den stationshållning CAPSTONE utförde, så trösklarna beskriver hur representativ modellbanan är, inte en noggrannhet. Resultat: docs/design/evidence/cap29d-capstone-nrho/RESULTS.md
Tester
tests/capstone_nrho_horizons.rs::cr3bp_nrho_matches_capstone_mean_geometry (CAPSTONE mars 2023, 4 perilunar och 5 apolunar: period 6,5004 d mot 6,5699 d (1,07 %, tröskel 3 %), apolun 71 182 mot 71 215 km (0,05 %, tröskel 5 %)…
ValidatedRoterande CR3BP-tillstånd avbildade på månencentrerad ICRF på linjen jord–måne enligt DE440cr3bp (to_moon_centred_icrf,from_moon_centred_icrf,to_moon_centred_icrf_de440)
Förmåga
cr3bp::to_moon_centred_icrf avbildar ett dimensionslöst roterande tillstånd i CR3BP för jord–måne på en månencentrerad ICRF-position och -hastighet på den ögonblickliga linjen jord–måne (längdenhet avståndet jord–måne, tidsenhet den inversa banhastigheten, systemets fulla vinkelhastighet inklusive dess hastighet utanför planet från månens acceleration), med inversen from_moon_centred_icrf, och cr3bp::to_moon_centred_icrf_de440 läser månens geocentriska tillstånd ur en DE440 SPK. Den avbildar tillstånd; den gör inte en CR3BP-bana till en bana i en efemerimodell
Oberoende referens
NAIF SPICE Toolkit (CSPICE N0067 genom spiceypy 8.3.0) sxform av ett dynamiskt system med två vektorer (primär +X längs månens position relativt jorden, sekundär +Y längs dess hastighet, de440s), tillämpad på det dimensionella roterande tillståndet byggt ur SPICE:s eget månetillstånd, av ett separat program som inte anropar någon Kshana-kod (tests/fixtures/cr3bp_to_mci_spice/, NOTICE.md). Förhandsregistrerad 2313eb1b, ändrad före någon körning i d5ef79b3 så att systemets vinkelhastighet utanför planet ingår (utan den skulle hastigheten vara upp till 8e-2 m/s fel). En bibliotekskontroll av transformen enbart. Resultat: 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 fall: 12 epoker i januari 2025 x punkterna L1 och L2, två södra L2-halo och ett DRO-begynnelsetillstånd från JPL Three-Body…
ValidatedSolsystemstyp på en JPL-kernel (planetary_kernel_path)solar_system (SolarSystemScenario::planetary_kernel_path,KernelOut); ephem_provider (KernelEphemeris)
Förmåga
Typen solar-system med planetary_kernel_path: varje redovisad kropp vars egen NAIF-kod finns i SPK hämtar sin heliocentriska J2000-position och -hastighet från kerneln genom motorns egen läsare (etikett KERNEL), en länk vars båda ändar finns i kerneln beräknas på den, barycentra ersätts aldrig med en planet, och varje annan kropp förblir analytisk med sin egen etikett; rapporten får ett kernelblock (sökväg, SHA-256, de kroppar och länkar som hämtats från den) bara när alternativet är satt. Med de440s.bsp är det Merkurius, Venus, jorden och månen
Oberoende referens
NAIF SPICE Toolkit (CSPICE N0067 genom spiceypy 8.3.0) spkezr heliocentriska tillstånd på hela de440s.bsp, ett separat program som inte anropar någon Kshana-kod (tests/fixtures/solar_system_kernel/, NOTICE.md); motorn läser bit-för-bit-utsnitt av de440s. Förhandsregistrerad f8e946ea. En bibliotekskontroll av kopplingen: DE440 i sig och de analytiska kropparna valideras inte här. Resultat: docs/design/evidence/cap31-solar-system-kernel/RESULTS.md
Tester
tests/solar_system_kernel_oracle.rs::kernel_backed_solar_system_matches_spice (Merkurius, Venus, Jorden och Månen vid 2026-01-01, 2030-06-15 och 2040-12-31: sämst 3.3e-5 m och 1.0e-11 m/s mot 1 mm och 1e-6 m/s…
ValidatedPorkchop på efemeriden DE440maneuver (porkchop_kernel,PorkchopGrid); ephem_provider (KernelEphemeris)
Förmåga
maneuver::porkchop_kernel: svepet över uppskjutningsdatum x ankomstdatum av avgångens C3 (km²/s²) och ankomstens V-infinity (km/s) med lösaren för Lambert med ett varv i progradriktning och kollinearitetsskyddet på 0,5 grader, på heliocentriska J2000-tillstånd för två valfria NAIF-kroppar som läses ur en JPL DE440 SPK av craten egen läsare. Ett varv, prograd, inga begränsningar för bärraket eller ankomst: ett svep, inte en uppdragsutformning
Oberoende referens
NAIF SPICE Toolkit (CSPICE N0067 genom spiceypy 8.3.0) heliocentriska tillstånd på de440s.bsp och pykep 3.0.1 lambert_problem (ESA, C++-kärnan kep3, MPL-2.0), en oberoende Lambert-lösare, körd som ett separat program som inte anropar någon Kshana-kod (tests/fixtures/porkchop_de440/, NOTICE.md); motorn läser ett bit-för-bit-utsnitt av de440s. Förhandsregistrerad 2d857fb1. En bibliotekskontroll av svepet. Resultat: docs/design/evidence/cap20b-porkchop-de440/RESULTS.md
Tester
tests/porkchop_de440_oracle.rs::de440_porkchop_matches_spice_and_pykep (Jorden till Mars barycenter, 16 avgångar 2026-09-01..2027-01-29 x 19 ankomster 2027-06-01..2028-02-26: 304 celler ändliga på båda sidor, sämsta C3…
ValidatedOptimerare för impulsiva överföringar på efemeriden DE440maneuver (optimise_transfer_kernel,TransferObjective,TransferType,TransferOptimum); ephem_provider (KernelEphemeris)
Förmåga
maneuver::optimise_transfer_kernel: avgångs- och ankomstdatum för en ballistisk överföring med två impulser och ett varv som minimerar avgångens C3 eller ankomstens V-infinity inom Typ I eller Typ II, som ett kontinuerligt optimum (ett rutnät på 2 dagar över båda fönstren, därefter 2D Nelder-Mead), på heliocentriska tillstånd ur DE440 SPK. En datumoptimerare för en etapp, inte en uppdragsutformning: inga alternativ för bärraket, parkeringsbana, manövrar i djupa rymden eller flera varv
Oberoende referens
En oberoende optimerare: NAIF SPICE Toolkit (CSPICE N0067 genom spiceypy 8.3.0) heliocentriska tillstånd på samma utsnitt av de440s, pykep 3.0.1 lambert_problem (ESA, MPL-2.0) och SciPy 1.18.1 Nelder-Mead, utan att anropa någon Kshana-kod. NASA:s handbok för jorden till Mars (MIDAS, efemerid ej angiven, datumrutnät på 2 dagar) är en sekundär publicerad referens och avgör inte statusen
Tester
tests/transfer_optimiser_oracle.rs::transfer_optimiser_matches_spice_pykep_scipy (Jorden till Mars barycenter, avgångar 2026-09-15..2027-01-15 x ankomster 2027-05-01..2028-03-01, Typ I/II x min C3 / min V-infinity…
ValidatedLösare för Lambert-överföring med flera varvmaneuver (lambert_multirev,LambertSolution,LambertBranch)
Förmåga
Varje lösning av Lamberts problem med upp till tre fullständiga varv (maneuver::lambert_multirev: lösningen med ett varv, därefter vänster och höger gren för varje varvantal, Izzo 2015), med gränshastigheterna v1 och v2, för prograda och retrograda överföringar, i kanoniska och heliocentriska SI-enheter, inklusive överföringar inom 1 % av ett varvantals minsta flygtid och geometrier nära 180 grader. Enbart en tvåkroppslösare (inga störningar)
Oberoende referens
pykep 3.0.1 lambert_problem (ESA, C++-kärnan kep3, MPL-2.0), ett oberoende bibliotek, körd som ett separat program av scripts/gen_lambert_multirev_ref.py; endast dess numeriska utdata är incheckad. Förhandsregistrerad a75de851 (fallmängd, trösklar, utfallsregel) före någon jämförelse; referensen regenererades oberoende och är byte-identisk. Resultat: docs/design/evidence/lambert-multirev/RESULTS.md
Tester
tests/lambert_multirev_oracle.rs::multirev_lambert_matches_pykep_on_the_preregistered_cases (382 fall: 300 slumpmässiga 3-D, 18 nära 180 deg, 24 nära minimitiden för M = 1..3, 40 heliocentriska; 1058 lösningar; antal och…
ValidatedLösare för Lambert-överföring med två kropparmaneuver (lambert)
Förmåga
Lösare för Lambert av Izzo-2015 med ett varv (r1, r2, flygtid → gränshastigheter) över överföringar LEO→GEO→heliocentriska, prograda och retrograda
Oberoende referens
lamberthub 1.0.0 izzo2015 (J. Martínez Garrido, MIT) — en oberoende Lambert-lösare från tredje part. Lambert-problemet med ett varv (M=0) har en entydig lösning, så överensstämmelsen mellan bibliotek är en genuin extern kontroll; matchade till <1e-4 m/s (observerat ~1e-11), samma slags 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)
ValidatedReferenssystem och tidsskalorframes,precession,nutation,cio,timescales
Förmåga
IAU 2006/2000A precession-nutation, CIO GCRS↔ITRS, tidsskalor med skottsekunder
Oberoende referens
IAU SOFA / ERFA referensvektorer; Vallado AIAA 2006-6753 (0,1–4 mm)
ValidatedTvådelade julianska datum och skottsekunder på tidsvägen för jordbanorjd2 (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)
Förmåga
Ett UTC-kalenderdatum och en UTC-tid till ett tvådelat julianskt UTC-datum med konventionen dtf2d i SOFA för dagar som slutar på en skottsekund (86 401 s långa, 23:59:60.x giltigt), UTC till TAI och tillbaka, och UT1 från UTC via TAI, på tvådelade datum från 1972-01-01: den tidsväg som SGP4 (Sgp4::propagate_at, mätt från en tvådelad epok) och den jordfasta rotationen IAU 2006/2000A (sgp4::teme_to_itrs_matrix_eop med den tvådelade jordrotationsvinkeln) tar
Oberoende referens
pyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; SOFA-algoritmerna så som ERFA-projektet släpper dem), ett oberoende bibliotek: erfa.dtf2d("UTC"), erfa.utctai och erfa.taiutc på de incheckade ögonblicken, gapet bildat del för del på de tvådelade datumen, tröskel 1e-6 s fastställd före körningen (förhandsregistrerad e947e69d). Sämsta gap 9.6e-12 s (dtf2d) och 1.9e-11 s (utctai, taiutc). Varje UTC-dag som tas som 86 400 s, eller skottdagens bråkdel som lämnas oskalad, gör testet rött. UT1 via TAI (iauUtcut1) kontrolleras av ERFA-benet på raden för jordbanevägen. Omfattning: UTC från 1972-01-01; den tidigare UTC med driftande takt är inte modellerad
Tester
tests/jd2_sofa_time_oracle.rs (224 UTC-tidpunkter: sex kring var och en av de 27 skottsekunderna 1972-2016, två fasta, 60 seedade över 1972-2026; dtf2d, utctai och taiutc inom 1e-6 s vardera, sämst 1.9e-11 s); jd2::tests…
ValidatedTvådelade julianska datum genom jordrotation på banvägenjd2 (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)
Förmåga
Jordrotation ur ett tvådelat julianskt UT1-datum på banvägen, så att den jordfasta positionen behåller den mikrosekund som ett datum i enkel f64 förlorar (omkring 3e-9 rad nära 2020): jd2::gmst82 (IAU 1982 GMST, TEME-konventionen, på de två delarna), cio::gcrs_to_itrs_matrix_jd2 (CIO-matrisen GCRS till ITRS med jordrotationsvinkeln från de två delarna), och, byggda på dem och internt kontrollerade, frames::teme_to_itrf_jd2 / itrf_to_teme_jd2, orbit::Propagator::position_in_frame_jd2 och own_jd2_utc, ephemeris-scenariots valfria two_part_jd (ECEF-positionen, markspåret och stationsvyn; avstängd som standard, oförändrad), och förlustfria From-omvandlingar mellan jd2::Jd2 och timescales::TwoPartJd. Precession-nutation och epoken i Cowell-kraftmodellen förblir i enkel f64, där en avrundning på 40 us ligger under 1e-15 rad eller långt under felet i den analytiska efemeriden för Sol/Måne
Oberoende referens
pyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; SOFA-algoritmerna så som ERFA-projektet släpper dem), ett oberoende bibliotek: gmst82 och c2t06a på de incheckade tvådelade datumen, polrörelse 0,1 och 0,3 bågsekunder. Förhandsregistrerad b10475ee (datum, trösklar) innan funktionerna skrevs och innan oraklet kördes. De interna testerna (scenariots alternativ, tur-och-retur för TEME/ITRF, typomvandlingarna) är stödjande självkonsistens
Tester
tests/jd2_earth_rotation_erfa_oracle.rs::two_part_earth_rotation_agrees_with_erfa (40 tvådelade UT1/TT-datum 1980-2050 inklusive +1, +10, +50 us-steg vid två datum: gmst82 inom 1e-12 rad, sämst 0; GCRS till ITRS…
ValidatedSystemmatriser mot ERFA-vektorer: IAU 2006 bias-precession, TEME till GCRS och CIO-kedjan med celestiala polförskjutningarprecession (precession_matrix); nutation (teme_to_gcrs_matrix); cio (gcrs_to_cirs_matrix_with_offsets)
Förmåga
Tre systemmatriser jämförda element för element eller via rotationsvinkel med ERFA vid godtyckliga epoker: precession::precession_matrix (IAU 2006 bias-precession med Fukushima-Williams-vinklar), nutation::teme_to_gcrs_matrix (rotationen TEME till GCRS P^T N^T Rz(-EE) med IAU 2006 precession, IAU 2000B nutation och dagjämningsekvationen med sina två ledande komplementära termer), och cio::gcrs_to_cirs_matrix_with_offsets (rotationen GCRS till CIRS med IERS celestiala polförskjutningar dX, dY adderade till modellens CIP X, Y före rotationen, konventionen i SOFA cookbook; ny). Själva modellvalen (2000B-nutation på TEME-vägen, den komplementära serien med två termer) är inte validerade, endast deras implementering
Oberoende referens
pyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; SOFA-algoritmerna så som ERFA-projektet släpper dem), ett oberoende bibliotek: pmat06; numat(obl06, nut00b) med dagjämningsekvationen från eect00 (hela den komplementära serien), sammansatt som P^T N^T Rz(-EE); xys06a därefter c2ixys(X + dX, Y + dY, s). Förhandsregistrerad 979c1e39 (epoker, förskjutningar och trösklar) innan oraklet kördes. Residualen i TEME på 1.1e-10 rad är den förutsagda effekten av att behålla två komplementära termer (omkring 3 mm vid GNSS-bana)
Tester
tests/frames_erfa_vector_oracle.rs::frame_matrices_agree_with_erfa_vectors (40 TT-epoker 1950-2100, dX och dY upp till 0,5 mas: prekessionselement inom 1e-13, sämst 0; TEME till GCRS inom 5e-10 rad, sämst 1.10e-10 rad…
ValidatedUTC före 1972 (eran med driftande takt) på tidsvägen med tvådelade julianska datumtimescales (tai_minus_utc_on_date); jd2 (Jd2::from_utc_calendar,utc_to_tai,tai_to_utc)
Förmåga
UTC från 1960-01-01 till 1971-12-31, när UTC gick med en förskjuten takt mot TAI och steg i bråkdelar av en sekund, på vägen med tvådelade julianska datum: TAI - UTC ur drifttabellen för varje period (timescales::tai_minus_utc_on_date), UTC-kalenderdatumet till ett tvådelat julianskt UTC-datum med dagslängden 86 400 s + dleap (Jd2::from_utc_calendar), UTC till TAI med dagsbråkdelen skalad från UTC till SI-sekunder (jd2::utc_to_tai) och TAI tillbaka till UTC (jd2::tai_to_utc), enligt SOFA dtf2d, utctai och taiutc. Före 1960 tas TAI - UTC som 0 (SOFA:s värde; UTC odefinierad) och ligger utanför anspråket. Den enkla f64-funktionen timescales::tai_minus_utc begränsar fortfarande till 10 s före 1972 och täcks inte
Oberoende referens
pyerfa 2.0.1.5 (liberfa 2.0.1, BSD-3-Clause; SOFA-algoritmerna så som ERFA-projektet släpper dem), ett oberoende bibliotek: erfa.dtf2d("UTC"), erfa.utctai och erfa.taiutc på de incheckade ögonblicken, gapet bildat del för del. Förhandsregistrerad 23c40661 (ögonblick, tolerans och kontrollsumman för 1972+) före ändringen i motorn och innan oraklet kördes. Drifttabellen är avskriven från samma SOFA iauDat-tabell som oraklet använder, så jämförelsen täcker omvandlingsaritmetiken (dagslängd, skalning från UTC till SI, iteration), inte själva den historiska tabellen
Tester
tests/jd2_pre1972_sofa_oracle.rs::pre_1972_utc_conversions_agree_with_erfa (117 UTC-tidpunkter: fyra kring var och en av de 15 starterna av ett TAI-UTC-uttryck 1960-1972 och 60 seedade över 1960-1971; dtf2d, utctai och taiutc…
ValidatedSatellitklocka ur sändning för GLONASS och propagering av sändningsbanaglonass (GlonassEphemeris::sv_clock_bias_s,position_ecef,parse_glonass_nav)
Förmåga
GLONASS-satellitklockans sändningsbias -tau_n + gamma_n (t - t_b) vid en tid avläst på satellitklockan (glonass::GlonassEphemeris::sv_clock_bias_s, förskjutningen korrigerad för klockbiasen med två fixpunktsiterationer), och den jordfasta PZ-90-positionen för sändningens tillståndsvektor propagerad med RK4 genom rörelseekvationerna i GLONASS ICD inom +/-15 min från referensepoken (GlonassEphemeris::position_ecef), från verkliga navigeringsposter för GLONASS i RINEX 3. Ingen transformation PZ-90.11 till ITRF tillämpas (de stämmer på centimeternivå sedan 2014; RTKLIB tillämpar ingen heller). Inte kopplad till någon scenarioutdata: biblioteksfunktion
Oberoende referens
RTKLIB v2.4.2-p13 (T. Takasu, BSD-2-Clause, commit 71db0ffa) geph2clk och geph2pos, kompilerade från C-källkod i en separat testmiljö (xval/rtklib-glonass) som läser samma RINEX-fil med RTKLIB:s egen läsare, så tolkningen, tecknet på -tau_n, enheterna och iterationen jämförs liksom klockan och banan. Förhandsregistrerad e099c42a innan funktionen fanns och innan testmiljön byggdes. Båda sidor utvärderar samma slutna uttryck för klockan, så jämförelsen av klockan täcker implementeringen, inte formeln. Banintegratorerna skiljer sig (RTKLIB tar steg om 60 s och sedan resten, Kshana lika steg om högst 60 s) och det gör även konstanterna (RTKLIB mu 3.9860044e14, Kshana PZ-90.11 3.986004418e14); det sämsta fallet på 1,1 mm är den skillnaden, så som förutsagt före körningen. Omfattning: sändningsefemeriden inom sitt giltighetsintervall, inte den verkliga banan eller klockan (ingen jämförelse med precisa produkter)
Tester
tests/glonass_broadcast_rtklib_oracle.rs::glonass_broadcast_clock_and_orbit_match_rtklib (292 fall: de 4 GLONASS-posterna i den verkliga IGS MGEX-utsändningsfilen från 2013-01-01 x 73 förskjutningar inom +/-900 s; klocka inom 1e-14…
ValidatedEn enda väg för jordbanor: SGP4-elementuppsättningar till GCRS och ITRS på kedjan IAU 2006/2000A med jordorienteringsparametrarsgp4 (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)
Förmåga
Den propagerings- och systemväg som varje dirigerad jordbanetyp delar: en SGP4-uppsättning medelelement med en tvådelad UTC-epok (sgp4::MeanElementSet, läst ur konstellationens designelement via MeanElementSet::from_earth_fixed) propagerad med SGP4/SDP4 till TEME (sgp4::SgpOrbit), och rotationerna TEME -> ITRS och GCRS -> ITRS i kedjan IAU 2006/2000A med UT1 - UTC och polrörelse (sgp4::teme_to_itrs_matrix_eop, gcrs_to_itrs_matrix_eop, formerna utan parametrar teme_to_itrs_matrix och gcrs_to_itrs_matrix). TEME är den sanna ekvatorn för datumet med medeldagjämningen, nådd från GCRS genom IAU 2006 bias-precession, IAU 2000B-nutationen och dagjämningsekvationen
Oberoende referens
Ben 1: python-sgp4 2,24 (MIT-licens; D. Vallados C++-referens för SGP4, koden som tog fram verifieringsvektorerna i AIAA 2006-6753), WGS-72, förbättrat läge. Ben 2: pyerfa 2.0.1.5 (ERFA, BSD-3-Clause, SOFA-rutinerna): c2t06a med TT från utctai/taitt och UT1 från utcut1, och för TEME c2t06a . pnm06a^T . rz(-ee06a). Trösklar fastställda före körningen (förhandsregistrerad 72ea9eb0). Redovisat: den första körningen misslyckades på ben 2 vid 2016-12-31T23:59:59,5 med en sekunds rotation (UT1 taget från UTC:s kvasijulianska datum på en dag med skottsekund); motorn rättades (jd2::utc_to_ut1) och den andra körningen stämmer vid oförändrade trösklar. Utelämnad polrörelse (46 fel) eller WGS-84-konstanter i stället för WGS-72 (4432 fel) gör testet rött. Den här utformningen med tre ben ersatte en jämförelse från ände till ände med Orekit som föll på Orekits SDP4 vid e = 0 och på dess IERS 1996 TEME (fyndet förblir fastlåst i tests/leo_polar_coverage_full_claim_orekit_oracle.rs)
Tester
tests/earth_orbit_path_sgp4_erfa_oracle.rs (etapp 1: 4432 TEME-positioner för de 232 incheckade elementmängderna mot python-sgp4 2,24, sämst 6.1e-8 m, tröskel 1 cm; etapp 2: 108 tidpunkter, 23 av dem med jordorientering…
ValidatedAvvägning vid utformning av avståndskodernavsignal (CodeFamily)
Förmåga
Gränser för sidolober och korskorrelation hos m-sekvenser/Gold, längd↔osäkerhet
Oberoende referens
Publicerad korskorrelation för GPS C/A Gold (−23,9 dB); Gold 1967-gräns
ModelledPositionsfel ur geometri: RMS-fel = sigma_UERE x DOP för motorns positionsbestämning med minsta kvadratdop_error_mc (run_geometry,check,TOLERANCES); dop_error_ci (run,GEOMETRIES); pvt (solve_spp); orbit (dop,dop_cofactor)
Förmåga
dop_error_mc::run_geometry och check: en seedad Monte Carlo (N = 20 000 epoker per geometri, sigma = 1,5 m, ChaCha8-seed 36 + i) av motorns egen iterativa positionsbestämning med minsta kvadrat (pvt::solve_spp, enhetsvikter, löst från den sanna positionen) på de 8 geometrierna i tests/fixtures/dop/dop_reference.csv, som jämför felvarianserna i öst, nord, upp och klocka, RMS för H/V/P, korrelationen öst–nord, medelfelen och andelen inom den horisontella ellipsen på 95 % med sigma^2 Q, där Q är kovariansfaktorn i kärnan orbit::dop (orbit::dop_cofactor, samma aritmetik) på samma geometri
Oberoende referens
Intern konsistens mot ett slutet uttryck: under den linjära gaussiska modellen är kovariansen för minsta kvadrat sigma^2 (H^T H)^-1 (Kaplan och Hegarty (red.), Understanding GPS: Principles and Applications, 2:a uppl., Artech House, 2006, kap. 7). Metod och toleranser i designnoten för geometri 0,36, avsnitt 5,2, fastställda i en förhandsregistrering före första körningen: varje varians inom 5 % (5 standardfel för en stickprovsvarians vid N = 20 000), varje RMS inom 2,5 %, korrelationen öst–nord inom 0,035 (5/sqrt(N)), varje medelvärde inom 5 standardfel, ellipsandelen på 95 % inom 0,95 +/- 0,0077 (5 binomiala standardfel); negativa kontroller (PDOP fördubblad; fel som växer som 1/sin(elevation) mot den ovägda Q) måste misslyckas. HUR DEN SAMMANSÄTTS: Q är kovariansfaktorn i kärnan orbit::dop, VALIDATED mot gnss_lib_py 1.0.4 på samma 8 geometrier i tests/dop_reference.rs (raden 'GNSS geometry / dilution of precision'); den här raden lägger till steget från de faktorerna till meter genom motorns lösare och lånar inte den radens status. VARFÖR MODELLED: ingen extern datamängd ingår; överensstämmelsen visar att skattaren och bruset realiserar sigma x DOP under lärobokens modell, inte att någon mottagares fel är lika med UERE x DOP, och sigma_UERE är en indata
Tester
tests/uere_dop_monte_carlo.rs (position_error_is_sigma_times_dop_on_the_gnss_lib_py_geometries: alla 104 kontroller godkända vid första körningen efter förhandsregistreringen e50c88d2, sämsta varians 3,2 %, RMS 1,6 %, korrelation 0,012…
ModelledGeometrimedveten förtroendeklassificering: satellitgeometri bredvid mottagarens förtroendepoäng och en klass på varje avdragreceiver_trust (geometry: GeometryTracker,geometry_ratio,sky_ratio,geometry_points,GeometryLabel; score: DeductionClass,score_with; monitors; live); telemetry (sample,prometheus,syslog,otlp)
Förmåga
receiver_trust::geometry: satellitgeometri per epok (good, degraded med orsakerna few-satellites/high-pdop/high-hdop/sky-blocked, eller unknown när loggen saknar GSV, NAV-SAT eller GSA) härledd ur redovisade elevationer och azimut genom orbit::dop eller hämtad från GSA, med en etikett som alltid redovisas och aldrig poängsätts (good, fair, poor, unknown) och HDOP, PDOP, VDOP, antal satelliter och signalförlust i ord; en geometriövervakare i fartygspoängen som inte drar något om inte geometrin är poor (kvoten max(hdop/4, pdop/6, 5/n_used) över 1), därefter trappar upp till ett tak på 15 poäng vid 1,5 som enbart geometri inte kan ta under det försämrade bandet (tak, slut på trappan och golv i [geometry]; inget larm); en klass på varje avdrag (geometry, environment, inconsistency) där förlorad låsning mot satelliter under 15 grader klassas som geometry, satelliter i sikte men inte spårade klassas som environment, och ett avdrag för poor-geometri vars angivna HDOP ligger bortom max(1,0, 25 % av det härledda HDOP) från den angivna himlen klassas som inconsistency
Oberoende referens
Intern konsistens: klassificeringen kontrolleras mot de regler den anger och mot handhärledda kvoter på syntetiska ändringar av den incheckade demologgen, och pinnarna för oförändrat håller utdata från 0.35.0: ingen poäng ändras om inte geometrin är poor; etiketten redovisas alltid. VARFÖR MODELLED: trösklarna är valda, inte anpassade (proveniens i varje körnings geometry_model; siffrorna ur IEC 61108-1 och GPS SPS som de citeras, ska kontrolleras mot standardernas text), och det finns ingen extern märkt datamängd med naturlig geometriförsämring mot attacker att validera klassificeringen mot. Det härledda DOP återanvänder kärnan orbit::dop, VALIDATED mot gnss_lib_py, vars status den här raden inte lånar. En geometriklass är ett påstående om himlen, inte ett fynd att ingen attack förekom
Tester
tests/natural_degradation_trust.rs (a_stated_skyline_reads_the_fjord_as_geometry: på den syntetiska fjordpassagen i scenarios/training/fjord-natural-degradation.toml dras samma 624 epoker av med och utan…
ValidatedSändningsmodell för jonosfären (Klobuchar, IS-GPS-200)gnss_sim (klobuchar_delay_m)
Förmåga
Klobuchars jonosfäriska gruppfördröjning längs sikten för en frekvens (L1) ur de åtta sända koefficienterna α/β
Oberoende referens
RTKLIB ionmodel (tomojitakasu/RTKLIB, src/rtkcmn.c) — oberoende referensimplementering kompilerad från källkod; matchad till < 1e-4 m
Tester
tests/klobuchar_reference.rs (10 cases across elevation/azimuth/local-time, two coefficient sets)
ValidatedStatistisk kärna för integritet i RAIM/ARAIM (lagar för χ² / icke-central χ² / normal)raim (chi2_cdf,chi2_quantile,noncentral_chi2_cdf,normal_cdf,normal_quantile,pbias)
Förmåga
Den fördelningskärna som varje skyddsnivå vilar på: tröskeln för feldetektering på ögonblicksbild χ²₁₋ₚfₐ(dof), icke-centraliteten för missad detektering pbias=√λ och multiplikatorerna K_fa/K_md/K_V för lösningsseparation
Oberoende referens
SciPy 1.17.0 (scipy.stats.chi2/.norm/.ncx2 + optimize.brentq) — oberoende bibliotek (Cephes/Boost), en annan algoritm än Kshanas serie för ofullständig gamma; matchad till ≤1e-6 relativt. Endast kärnan. *Allokeringen* av P_HMI-budgeten i ARAIM MHSS saknar inte längre ett publicerat numeriskt orakel — WG-C ARAIM Technical Subgroups eget räknade exempel backar nu upp den separata raden 'ARAIM MHSS protection levels against published reference vectors', matchad vid referensens egen TOL_PL = 5e-2 m — så den här radens omfattning är den statistiska kärnan och den raden bär 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)
ValidatedSkyddsnivå för SBAS (HPL/VPL med viktad minsta kvadrat enligt DO-229E)sbas (sbas_protection_level)
Förmåga
Skyddsnivåer med viktad minsta kvadrat enligt DO-229E Appendix J: D=(GᵀWG)⁻¹ ur elevation/azimut och felbudget per satellit, huvudaxeln i den horisontella felellipsen och vertikalt σ, skalade med de publicerade K-faktorerna
Oberoende referens
RTKLIB SBAS-PL-gaffel — zsiki/rtklib_ws waasprotlevels() (Siki & Takács 2017, "DO-229D Appendix J"), körd av rnx2rtkp -ws på verkliga EGNOS GEO-PRN120-meddelanden + verklig RINEX från BUTE/Budapest; oberoende implementering från tredje part, HPL matchad till < 2e-3 m. gLAB v6.0.0 (core/filter.c) bekräftade identisk konvention. Båda orakel avrundar K_V→5,33 mot Kshanas exakta Φ⁻¹(1−5e-8)=5,3267 (~0,06 %), så det vertikala kontrolleras som det K-faktorfria d_U
scikit-learn roc_auc_score på testdelningen OPSSAT-AD (Ruszczak et al. 2025, CC BY 4,0) — verklig telemetri från OPS-SAT
Tester
tests/opssat_ad_reference.rs (verklig ESA OPS-SAT, AUC återger scikit-learn till 1e-9); tests/ai_ml_rf_impairment_detection_evaluation_reference.rs (122 fall på den verkliga OPSSAT-AD-testuppdelningen: full operationspunkt…
NNLS-anpassning av uppmätt ADEV, konsistensband med χ² för NEES/NIS och den diskreta processbruskovariansen enligt van Loan för klockan (holdover-frirullning) — avvägningsmotorns beräkningsmässiga ryggrad
Oberoende referens
scipy 1.17.1 — optimize.nnls / stats.chi2.ppf / linalg.expm; NNLS+Q exakt, χ² <5e-4 vid driftens frihetsgrader. Endast kärnor — tal för enheters prestanda förblir Modelled (nästa rad)
Tester
tests/scipy_reference.rs (NNLS; χ² at operating dof ≥ 48; van-Loan Q)
ValidatedGeomagnetiskt referensfält (syntes av IGRF-14)igrf,igrf_data
Förmåga
Sfärisk harmonisk syntes av huvudfältet IGRF-14 — komponenterna X/Y/Z/F, deklination och inklination — som matar lagret för magnetiska anomalier i alt-PNT
Oberoende referens
ppigrf 2.1.0 (K. M. Laundal, MIT) — IAGA-VMOD:s referensimplementering av IGRF i ren Python som levereras med de officiella koefficienterna IGRF14.shc (IAGA:s 14:e generation, Zenodo 10.5281/zenodo.14012302); en oberoende kodbas från tredje part som beräknar det entydigt definierade fältet IGRF-14, matchad över ett globalt rutnät
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°)
ValidatedDetektionsstatistik — gaussisk AUC och minsta detekterbara felquantum_faults,eval_stats,detection
Förmåga
Analytisk binormal ROC AUC = Φ(μ/(σ√2)) och det minsta detekterbara felet σ·(Φ⁻¹(1−P_fa)+Φ⁻¹(P_d)) som ligger under kvantfels- och avvikelsedetektorerna
Oberoende referens
scipy 1,17 (Cephes ndtr/ndtri) + scikit-learn roc_auc_score (Pedregosa et al., JMLR 2011), båda BSD-3-Clause — oberoende bibliotek som beräknar samma entydigt definierade storheter för gaussisk svans / AUC, matchade till golvet för A&S-erf (~7e-8). Fördelen för kvant mot klassisk som byggs ovanpå förblir MODELLED
ValidatedKärna för rangordningsstatistik (Kendall-τ / Dirichlet / percentil)resilience::stats
Förmåga
Kärnor för rangkorrelation och omsampling under studien av beslutsinstabilitet för resiliens: Kendall τ-b, Dirichlet-medelvärde, tävlingsrangordning och konfidensintervall med percentiler
Oberoende referens
scipy 1,18 (stats.kendalltau variant='b', rankdata) + numpy.percentile (BSD-3-Clause) — oberoende implementeringar (merge-sort τ) av den entydigt definierade rangstatistiken, matchade till 1e-12. Studien av beslutsinstabilitet som bygger på de här kärnorna förblir MODELLED
Tester
tests/resilience_score_decision_instability_reference.rs (124 fall mot scipy 1,18 / numpy 2,4: 61 Kendall τ-b till 2e-16, rangordning exakt, Dirichlet-medelvärde + percentil-KI till 1e-12)
ValidatedKärna för härledning av prioriteringar i MCDA (egenvektor i AHP / konsistenskvot)mcda::ahp
Förmåga
Prioritetsvikter i Analytic Hierarchy Process = normaliserad principal (Perron) egenvektor till en reciprok matris för parvisa jämförelser med potensmetoden, med Saatys Consistency Index / Consistency Ratio och acceptansgränsen CR<0,10
Oberoende referens
Saatys (1980) kanoniska tabell över Random Index (RI(5)=1,12) återgiven exakt + SciPy/LAPACK scipy.linalg.eig (BSD-3-Clause) som oberoende egenvärdeslösare som beräknar samma entydigt definierade Perron-egenvektor/egenvärde, matchad till <1e-9. Beslutslagret för Pareto / känslighet / MAUT som byggs på den här kärnan förblir MODELLED (aggregatorerna WSM/WPM/TOPSIS/VIKOR/PROMETHEE/ELECTRE är separat externt validerade — se raderna nedan)
Tester
tests/mcda_ahp_reference.rs (Saatys slumpindextabell från 1980 n=1..10 EXAKT; prioritetsvektor + λ_max + CR mot SciPy/LAPACK eig på en konsistent 3×3 och inkonsistenta 3×3 / 4×4, matchade till <1e-9)
ValidatedKärnor för viktad aggregering i MCDA (WSM / WPM)mcda::wsm,mcda::wpm
Förmåga
Weighted Sum Model (min–max-normaliserat additivt aggregat + rangordning) och Weighted Product Model (summanormaliserat, reciprokt för kostnad, multiplikativt aggregat) — de två poängsättarna för värdeaggregering i avvägningsstudier
Oberoende referens
pymcdm (methods.WSM + normalizations.minmax_normalization; methods.WPM + normalizations.sum_normalization) — ett oberoende, mycket använt Python-bibliotek för MCDA från tredje part som beräknar samma entydigt definierade viktade aggregat; matchade till <1e-9. Kan regenereras offline via tests/fixtures/mcda_wsm/ och tests/fixtures/mcda_wpm/. Skräp in ger skräp ut på indata; lagret för känslighet/robusthet förblir MODELLED
Tester
tests/mcda_wsm_reference.rs (WSM-poäng + rangordning) och tests/mcda_wpm_reference.rs (WPM-poäng + rangordning), vardera mot pymcdm till <1e-9 på en fast 4×3 nytto-/kostnadsbeslutsmatris
ValidatedRangordning i MCDA efter avstånd till idealet (TOPSIS)mcda::topsis
Förmåga
Technique for Order of Preference by Similarity to Ideal Solution — min–max-normalisering, viktade positiva/negativa idealösningar, relativ närhet Cᵢ = d⁻/(d⁺+d⁻) och rangordning
Oberoende referens
pymcdm methods.TOPSIS + normalizations.minmax_normalization — ett oberoende MCDA-bibliotek från tredje part som beräknar samma entydigt definierade närhetskoefficienter; matchade till <1e-9. Kan regenereras offline via tests/fixtures/mcda_topsis/generate_topsis_reference.py
Tester
tests/mcda_topsis_reference.rs (närhetskoefficienter + rangordning mot pymcdm till <1e-9 på en fast 4×3 nytto-/kostnadsmatris)
ValidatedKompromissrangordning i MCDA (VIKOR)mcda::vikor
Förmåga
VlseKriterijumska Optimizacija — gruppnytta Sᵢ, individuell ånger Rᵢ och kompromissindex Qᵢ vid strategivikten v=0,5, med rangordning där lägre är bättre
Oberoende referens
pymcdm methods.VIKOR(v=0,5) — ett oberoende MCDA-bibliotek från tredje part som beräknar samma entydigt definierade områdesnormaliserade S/R/Q-aggregering; överensstämmer till <1e-9. Kan återskapas offline via tests/fixtures/mcda_vikor/generate_vikor_reference.py
Tester
tests/mcda_vikor_reference.rs (Q-index + rangordning mot pymcdm till <1e-9 på en fast 4×3 nytto-/kostnadsmatris)
ValidatedMCDA-rangordning med nettoflöde (PROMETHEE II)mcda::promethee
Förmåga
Preference Ranking Organization METHod — parvist preferensindex med de sex vanliga generaliserade kriterieformerna, positiva och negativa rangordningsflöden samt den fullständiga rangordningen efter nettoflöde (vanligt kriterium validated)
Oberoende referens
pymcdm methods.PROMETHEE_II('usual') — ett oberoende MCDA-bibliotek från tredje part som beräknar samma entydigt definierade nettoflöde; överensstämmer till <1e-9. Kan återskapas offline via tests/fixtures/mcda_promethee/generate_promethee_reference.py. Preferensformerna med tröskelvärden (q/p/σ) reduceras till samma generaliserade kriterialgebra och kontrolleras fortsatt som egenskaper
Tester
tests/mcda_promethee_reference.rs (nettoflöde för överordning + rangordning, vanligt kriterium, mot pymcdm till <1e-9 på en fast 4×3 nytto-/kostnadsmatris)
ValidatedMCDA-kärna för valet vid rangordning (ELECTRE I)mcda::electre
Förmåga
ELimination Et Choix Traduisant la REalité — konkordans- och diskordansmatriser, dominansrelationen med konkordans och icke-veto samt kärnan för valet vid rangordning (konvention med enbart nyttokriterier, viktsumma normaliserad till ett och en enda global skala)
Oberoende referens
pyDecision algorithm.electre_i (Valdecy Pereira) — ett oberoende beslutsbibliotek för flera kriterier från tredje part som beräknar samma entydigt definierade konkordans, diskordans, dominans och kärna; överensstämmer element för element till <1e-9. Kan återskapas offline via tests/fixtures/mcda_electre/generate_electre_reference.py. Valen av ĉ/d̂-trösklar är indata från analytikern (känslighetsanalysen förblir MODELLED)
Tester
tests/mcda_electre_reference.rs (konkordans-, diskordans- och dominansmatriser element för element + kärn-/dominerad mängd mot pyDecision till <1e-9 på en fast 4×3 datamängd med enbart nytta)
Weighted Aggregated Sum Product ASSessment (linjärnormaliserad konvex blandning λ·WSM+(1−λ)·WPM vid λ=0,5) och MOORA-kvotsystemet (vektornormaliserad viktad nyttosumma minus viktad kostnadssumma) — den stabilitetshärdade värdeblandningen och den teckenbärande kvotsystempoängen
Oberoende referens
pymcdm (methods.WASPAS + normalizations.linear_normalization, l=0,5; methods.MOORA-kvotsystem, vektornormalisering) — ett oberoende, mycket använt MCDA-bibliotek för Python från tredje part som beräknar samma entydigt definierade aggregat; överensstämmer till <1e-9. Kan återskapas offline via tests/fixtures/mcda_waspas/ och tests/fixtures/mcda_moora/. Skräp in ger skräp ut för indata; lagret för känslighet och robusthet förblir MODELLED
Tester
tests/mcda_waspas_reference.rs (WASPAS-preferenser + rangordning) och tests/mcda_moora_reference.rs (MOORA-poäng + rangordning), vardera mot pymcdm till <1e-9 på en fast 4×3 nytto-/kostnadsbeslutsmatris
COmplex PRoportional ASsessment — kolumnsummenormaliserad nyttosignifikans S⁺ plus termen för inverterad kostnadssignifikans, den relativa signifikansen Q och nyttograden U = Q/max Q (bästa alternativ = 1)
Oberoende referens
pyDecision algorithm.copras_method (Valdecy Pereira) — ett oberoende MCDA-bibliotek från tredje part som beräknar samma entydigt definierade relativa signifikans och nytta enligt COPRAS. pyDecision används medvetet: COPRAS i pymcdm 1.4.0 kollapsar algebraiskt till den triviala S⁺+S⁻ och är ingen trogen referens, medan pyDecision implementerar den kanoniska Q = S⁺+(min(S⁻)·ΣS⁻)/(S⁻·Σ(min(S⁻)/S⁻)). Överensstämmer till <1e-9; kan återskapas offline via tests/fixtures/mcda_copras/generate_copras_reference.py
Tester
tests/mcda_copras_reference.rs (nyttograder + rangordning mot pyDecision till <1e-9 på en fast 4×3 nytto-/kostnadsmatris)
ValidatedCUSUM: detekteringsfördröjning och ARLtpl (Cusum),security
Förmåga
Värsta fallets detekteringsfördröjning (⌊h/(z−k)⌋+1) för en tabular-CUSUM-detektor och genomsnittlig körlängd utom kontroll, som används av övervakarna för skyddsnivån för tidssynkronisering och för spoofing
Oberoende referens
Publicerad ARL för tabular-CUSUM: Siegmunds (1985) approximation med brownsk rörelse (Hawkins & Olwell 1998, ekv. 3,7) korsförankrad mot ARL-tabellerna i Montgomery, Introduction to Statistical Quality Control (Wiley) för k=½, h∈{4 5}; den deterministiska fördröjningen överensstämmer exakt med en förstapassageoracle. Den sammansatta TPL-gränsen förblir MODELLED
Tester
tests/timing_protection_level_under_spoofing_reference.rs (16 fall med deterministisk latens EXAKTA mot en första-passage-referens; 8 ARL₁-fall, Monte Carlo @60k försök mot Siegmund-approximationen + publicerad Montgomery…
ValidatedKlock-holdover: utrullningsvarians och tröskelinversionholdover (coast_phase_variance,holdover_seconds)
Förmåga
Tillväxt av fasfelsvariansen under utrullning q_wf·t + q_rw·t³/3 + q_drift·t⁵/20 och dess monotona inversion till en holdover-tröskel för tidsfel
Oberoende referens
scipy 1,18 (BSD-3-Clause): linalg.expm som beräknar den diskreta processbruskovariansen enligt Van-Loan 1978 Q₀₀ = ∫₀ᵗ ΦQcΦᵀds via Padé-skalning-och-kvadrering på den utvidgade 6×6-matrisen — en oberoende väg som aldrig ser kshanas polynomkoefficienter; plus optimize.brentq som inverterar samma monotona kurva jämfört med kshanas bisektion. Siffrorna för brusgolvet för rött brus per klass (ClockClass) förblir 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)
ValidatedDiversitetskärna med inverterad Simpsonresilience::diversity (effective_diversity)
Förmåga
Effektiv arkitektonisk diversitet = inverterad Simpson / Hill-tal av ordning 2, 1/Σpᵢ², över källkvaliteter per oberoendegrupp (diversitetstermen i motståndskraftspoängen)
Oberoende referens
scikit-bio 0.7.3 skbio.diversity.alpha.inv_simpson (McDonald et al., BSD-3-Clause) — ett oberoende bibliotek från tredje part som beräknar det entydigt definierade inverterade Simpson-indexet; återskapat byte för byte. Poängramverket DHS-RPCF (vikter och nivåer) som byggs ovanpå förblir MODELLED
ValidatedAzimutberoende skylinemask: synlig mängd, azimut och elevation samt DOP under maskenskyline (Skyline::cut_deg,Skyline::visible); frames (look_angles,is_visible_skyline); orbit (UserPath,sky_view,cofactor_from_los); geometry (sky_geometry)
Förmåga
skyline + frames::look_angles + geometry::sky_geometry: den geodetiska (WGS-84) azimuten och elevationen för en satellit från en markstation, en azimut/elevations-masktabell linjärt interpolerad i azimut med omslag vid 360 deg, den synliga mängden el >= max(mask_deg, mask(az)) samt DOP med gemensam klocka och ENU-och-klock-kofaktormatrisen för den mängden (kärnan bakom orbit::dop). Det är så avsnittet [skyline] avgör synlighet i scenariotyperna gnss-sim, jamming, leo-pvt, leo-pass och nmea-scenario och, med markstationen user_site, i orbit och integrity
Oberoende referens
Orekit 12,2 (Apache-2.0): en TopocentricFrame på en WGS-84 OneAxisEllipsoid för siktvinklarna och en ElevationMask per tabell, körd av xval/orekit-skyline/OrekitSkyline.java på incheckade jordfasta tillstånd (propageringen jämförs inte), med gnss_lib_py 1.0.4 (wheel-metadata MIT) get_dop för DOP och ENU-och-klock-DOP-matrisen för de mängder som Orekit finner synliga. Förhandsregistrerad (xval/orekit-skyline/PREREGISTRATION.md, commit e4b9d912) innan någon av de oberoende referenserna kördes på jämförelseindata; Orekits linjära interpolation med omslag bekräftades i förväg med en syntetisk sond. Omfattning: tabellmasker, geodetiska siktvinklar, den maskerade synliga mängden och dess DOP med gemensam klocka samt kofaktor. Kontrolleras INTE här: reduktionerna för gatukanjon, sektor och terräng och förinställningarna (deras 360-punktstabeller kom in som indata; raderna 'Street-canyon, sector and terrain reductions to a table' och 'Skyline presets'), klocktillstånden per system och felellipsen (raden 'Horizontal error ellipse and per-system cofactor from the geometry covariance'), GMST-rotationen för markstationen user_site i orbit/integrity och hur den för varje propagator daterar ett enda ögonblick (Orekit får jordfasta tillstånd), samt varje verkligt hinder (endast fri sikt)
Tester
tests/skyline_orekit_oracle.rs (skyline_masks_agree_with_orekit_and_gnss_lib_py_as_pre_registered: 1173 siktvinklar på sex platser och fyra epoker, sex masktabeller, 142 synliga mängder; sämsta |d el| 1.3e-13 deg och |d az|…
ModelledReduktioner av gatukanjon, sektor och terräng till en tabellskyline (Canyon::cut_deg,Sector::contains,TerrainPoint::elevation_deg,reduce_terrain,SkylineCfg::build)
Förmåga
skyline: gatukanjonen i sluten form (skär atan((h - a) / d) med d = (w/2) / abs(sin(az - s)), öppna ändar för en ändlig längd), skarpkantade sektorer medsols med omslag, samt terrängpunkter reducerade till en tabell med krökningssänkningen d^2/(2 * 4/3 R); skylinen är deras punktvisa maximum med en eventuell tabell
Oberoende referens
Internt: de slutna formerna kontrolleras mot handberäknade värden (murkrönshöjder för en angiven gata, villkoret för öppen ände, krökningssänkningen för en angiven punkt). Ingen extern oberoende referens: utformningsnoten avgränsar dessa reduktioner som MODELLED, och Orekits ElevationMask tar en tabell, så jämförelsen i raden 'Azimuth-dependent skyline mask: visible set, azimuth and elevation, and DOP under the mask' läser deras 360-punktstabeller som indata och kontrollerar dem inte
skyline::PRESETS: fyra REPRESENTATIVE geometrier med utformningsnotens angivna mått och en proveniensrad var: city-street (en kanjon, gata 0 deg, 20 m mellan 30 m höga väggar, antenn 1,5 m), harbour-approach (sektorer: öppet mot havet över 180 deg, kajbyggnader 8 deg över 90 deg, vågbrytaren 3 deg), fjord (terräng: väggar 600 m över antennen på 1,5 km avstånd på vardera sidan om en nord-sydlig kanal, krökningssänkning tillämpad), container-terminal (sektorer: staplar 12 deg över den landvända hälften, kranbommar 35 deg och 25 deg över två smala sektorer); kan åsidosättas fält för fält
Oberoende referens
Ingen: valda och angivna mått, ingen kartläggning av någon gata, hamn, fjord eller terminal (gatans proportioner ligger inom bandet 0.5-2 enligt Oke (1988); fjorden är av samma storleksordning som de västnorska fjordarna; staplarna använder high-cube-höjden i ISO 668). Testet kontrollerar förinställningarna mot deras egna angivna mått, en transkriptionskontroll som valideringsregeln inte räknar
ValidatedHorisontell felellips och kofaktor per system från geometrikovariansengeometry (sky_geometry,ellipse); orbit (cofactor_from_los)
Förmåga
geometry::sky_geometry: ENU-och-klock-kofaktorn (H^T H)^-1 med en mottagarklocka gemensam eller en per system (kärnan orbit::cofactor_from_los), och den horisontella felellipsen från dess öst-nord-block (halvaxlar k sigma sqrt(lambda), k = sqrt(-2 ln(1 - p)), huvudaxelns azimut från norr)
Oberoende referens
numpy 2.5.4 (BSD-3-Clause), xval/numpy-ellipse/ellipse.py: numpy.linalg.inv av G^T G och numpy.linalg.eigh av dess horisontella block på de incheckade indata, ett oberoende numeriskt bibliotek som utför inversen och egenvärdesuppdelningen med egna algoritmer (standard P2). Förhandsregistrerad i xval/numpy-ellipse/PREREGISTRATION.md (commit 0bbeeaee) före körningen; drivrutinens utdataformatering rättades en gång efter förhandsregistreringen (ett numpy-skalärvärde skrivet som np.float64(...)), utan ändring av protokollet eller toleranserna. Det validated påståendet är linjär algebra på dessa indata; den gaussiska felmodellen och UERE är angivna indata, inte en uppmätt noggrannhet eller en integritetsgräns
Tester
tests/ellipse_numpy_oracle.rs (ellipse_and_cofactor_agree_with_numpy_as_pre_registered: 270 fall, de 142 incheckade synliga mängderna från skyline-jämförelsen under en gemensam klocka och under en klocka per system; sämsta…
geometry (sky_geometry, sky_monte_carlo, skyline_presets, skyline_profile, skyplot_svg; CLI kshana sky och kshana skyline, Python- och WASM-funktioner med samma namn, MCP sky_geometry): utifrån en plats, en tid och konstellationsförinställningar (eller satelliter som azimut/elevation eller ECEF) de satelliter som är synliga och maskade under en skyline, GDOP/PDOP/HDOP/VDOP/TDOP, kofaktorn med enhetsvarians (H^T H)^-1 och kovariansen i öst-nord-upp med en mottagarklocka per system eller en gemensam, den horisontella felellipsen (halvaxlar k sigma sqrt(lambda), k = sqrt(-2 ln(1 - p)), orientering 0,5 atan2(2 Q_EN, Q_NN - Q_EE) från norr), samt n slumpade minstakvadratfel med frö under oberoende gaussiska avståndsfel med deras empiriska kovarians, RMS och 95 % inneslutning. Kofaktorn är orbit::cofactor_from_los, den enda kärnan bakom orbit::dop och orbit::dop_cov (dop är en reduktion av dop_cov): ingen andra DOP-implementation
Oberoende referens
DOP-faktorerna för en enda klocka vilar på kärnan som är validated mot gnss_lib_py 1.0.4 (raden 'GNSS geometry / dilution of precision (DOP)'); den här radens egna kontroller är interna: sky_geometry återskapar orbit::dop och dop_cov på samma geometri, ellipsen återskapar en analytisk 2x2-egenvärdesuppdelning, ECEF- och azimut/elevations-indata stämmer överens, och molnets med frö RMS och 95 % inneslutning stämmer överens med geometrin. ENU-kovariansen med en klocka per system och ellipsen är VALIDATED i raden 'Horizontal error ellipse and per-system cofactor from the geometry covariance' (numpy, P2); det som förblir MODELLED här är sammansättningen: förinställningens propagering till en representativ himmel, Monte Carlo-molnet (kontrollerat mot geometrin det samplar, en kontroll av självkonsistens) och ytorna. Konstellationsförinställningarna ger en representativ himmel, inte en daterad; den gaussiska felmodellen och UERE är angivna indata, inte en uppmätt noggrannhet eller en integritetsgräns
Tillväxt av utrullningsfel i sluten form + holdover till tröskel; kvantklockklasser
Oberoende referens
Flerstegsrekursion för clock_state-kovarians (korskontroll inom samma kodbas); den underliggande kärnan för utrullningsvarians och holdover-inversion är externt validated mot scipy (se 'Clock-holdover coast-variance & threshold inversion'). Holdover-siffrorna per klass för det röda brusgolvet förblir MODELLED
Tester
holdover::tests (mot flerstegs Kalman-kovariansrekursion; vit FM exakt; rundtur); koasting-variansens kärna validerad externt i tests/gnss_denied_clock_holdover_reference.rs (mot scipy Van-Loan/brentq)
ModelledUppmätta klockenhetskort (förutsägelse på undanhållen datamängd)clock_library (card,condition,series),realdata::clk,allan (lag1_noise_id)
Förmåga
clock_library: ett enhetskort (vitt fasbrus, vitt, flicker och slumpvandrings-FM plus ett linjärt frekvensdrift) anpassat till en tredjedel av en namngiven uppmätt klockpost efter en loggad konditioneringsomgång (luckor, fasavvikare, fassteg och skurar borttagna; frekvenssteg loggade), viktat med de frihetsgrader för brustyp som identifierats med lag-1, och dess förutsagda Allan-avvikelse poängsatt på de undanhållna två tredjedelarna; läsare för RINEX- och IGS-klockfiler, BIPM-filer per laboratorium och Circular T avsnitt 1; omvandling av ett kort till brusmodellen för slottiming, den utökade Kalman-klockmodellen och brusnivåerna för spoofing-övervakaren
Oberoende referens
Uppmätta poster, undanhållna: kombinerade slutliga IGS-klockor med 30 s för de 11 GPS Block IIF-satelliterna 2026-03-01 till 14 (ett fönster som inget test hade öppnat; IGS, öppet med angivande av källa) och JammerTest 2024-mottagaren u-blox ZED-F9P i dess opoängsatta stillastående sessioner (GPL-3.0-or-later). Extern D9-jämförelse (förhandsregistrerad 2ec76864, varje korts förutsagda / uppmätta Allan-avvikelse inom [1/1.5, 1,5] vid dess anpassade medelvärdestider), ett fynd (förblir MODELLED): 10 av 11 GPS IIF-kort ligger inom tröskeln; G27 är optimistisk på tvåtimmarsskalan (0,662 vid 7680 s, sämsta faktor 1,510), det periodiska fel på timskala som ett potenslagskort inte bär. Mottagarens TCXO-kort är blockerat: utanför de loggade sändningarna lämnar datamängdens övriga sessioner 167 epoker mot de 3600 som krävs. Redovisat, inte blint (poster som öppnats av tidigare rader): cesiumkortet för 5071A ligger inom tröskeln (sämst 1,070 upp till 4096 s), OCXO-kortet är konservativt och utanför den (2,348 vid 128 s; dess brusgolv ändras under posten), och strontiumkortet för Norcia anpassat på de tre kortaste publicerade punkterna ligger inom den vid de två poängsatta punkterna (1,291, 1,405). Passiva vätemasrar för Galileo (ingen källa utan inloggning för slutliga Galileo-klockor kunde nås) och Deep Space Atomic Clock (ett öppet värde i rymden) är blockerade. D9 omgång 2, ZED-F9P-mottagarens TCXO som modellklass på 14 dagar för 12 statiska stationer i Wroclaw (Zenodo 6488497, CC BY 4,0; förhandsregistrerad fb475550), ett fynd: med den registrerade pipelinen kunde 11 av 12 stationer inte utvärderas (RAIM förkastade de flesta jonosfärsfria epoker) och BX14 misslyckades; en redovisad omkörning med en korrigerad pipeline (förhandsregistrerad c9cc0d49) klarar 1 av 11 blinda stationer (BX12, 1,412; BX07 1,532 och BX13 1,542 strax utanför), eftersom klockor i enkelpunktsmottagare från intermittenta 30 s-filer inte är en ren oscillatorpost
ModelledUppmätta klockkort för GPS Block IIF med termer per varv (förutsägelse på undanhållen datamängd)clock_library (card)
Förmåga
clock_library::card::DeviceCard::fit_phase_periodic: ett enhetskort som bär fastermerna med en till fyra perioder per varv (period T/k, T = 43 082,05 s), anpassade gemensamt med den kvadratiska termen med minsta kvadrat på en tredjedel av en uppmätt satellitklockpost, där varje terms Allan-bidrag i sluten form 4 A^2 sin^4(pi tau / P) / tau^2 ingår i den förutsagda Allan-avvikelsen
Oberoende referens
Uppmätta poster, undanhållna: kombinerade slutliga IGS-klockor med 30 s för de 11 GPS Block IIF-satelliterna 2026-04-01 till 14 (ett fönster som inget test hade öppnat; IGS, öppet med angivande av källa). Extern D9-jämförelse (förhandsregistrerad fb475550, förutsagd / uppmätt Allan-avvikelse inom [1/1.5, 1,5] vid varje anpassad medelvärdestid på varje satellit), ett fynd (förblir MODELLED): 9 av 11 kort ligger inom tröskeln; G03 (1,947) och G25 (1,581) är optimistiska mellan 60 s och 2000 s eftersom deras undanhållna poster är brusigare än deras anpassningstredjedelar (G25:s undanhållna del har 16 luckor och 29 fasavvikare), en förändring i klockan snarare än en saknad periodisk term. Om de periodiska termerna tas bort ur förutsägelsen misslyckas alla 11 kort (1,77 till 4,96), så termerna bär förutsägelsen
ModelledTillståndsskattning av klockan ombordclock_state
Förmåga
Kalmanklocka med 3 tillstånd (fas/frekvens/drift) enligt van-Loan, Joseph-stabiliserad
Oberoende referens
filterpy 1.4.5 KalmanFilter (R. Labbe, MIT), med F via scipy.linalg.expm och Q via Van-Loans 1978 blockmatris — en oberoende referensimplementation som återskapar hela kshanas filterbana. Konsistens mellan implementationer: klockfysiken och Allan-kalibreringen är inte externt validated, så detta förblir MODELLED. Extern jämförelse 0,30, ett fynd (förblir MODELLED): på slutliga IGS-klockor med 30 s för 11 GPS Block IIF-satelliter (2025-08-17 till 30), med Q anpassad till ADEV för första halvan och filtret poängsatt på den undanhållna andra halvan, är filtret konsistent ett steg framåt (0,906 till 0,971 av epokerna inom dess 95 %-band, tröskel 90 %) men överkonfident vid en timme på 9 av 11 klockor (0,486 till 0,829) och dess innovationssummor faller utanför [2,4, 3,6] på 5. Det anpassade vita fasbruset är noll på varje satellit, och felet på timskala (periodiska termer, flicker-FM) finns inte i modellen med 3 tillstånd. Omgång 2 för 0,30, ett utökat filter (flicker-FM samt tillstånd för en och två perioder per varv) på nya undanhållna IGS-klockor från 2025-09-01 till 14 (förhandsregistrerad 4b1a841e), ett fynd (förblir MODELLED): konsistenskriterierna för ett steg och en timme håller på alla 11 satelliter (0,948 till 0,988 och 0,907 till 0,996), men innovationssummekriteriet misslyckas på G24 (0,964) och G30 (1,929) mot [2,4, 3,6]. D9 omgång 3, det utökade filtret från omgång 2, avstämning och kriterier oförändrade efter den frysta konditioneringsdetektorn i clock_library, på nya IGS-klockor från 2026-04-01 till 14 (förhandsregistrerad fb475550), ett fynd (förblir MODELLED): (a) ett steg 0,941 till 0,968 och (c) medelvärde för trippel-NIS 2,641 till 3,549 håller på alla 11 satelliter; (b) en timme misslyckas på G09 (0,894) och G26 (0,876) mot 0,90
Tester
clock_state::tests (analytisk van-Loan Q; NEES; PSD-positivitet); tests/clock_state_reference.rs (fullständig predict+update-bana — tillstånd x och 3×3-kovarians P över 1925 steg / 4 parametermängder mot filterpy 1.4.5; sämst…
ModelledFelbudget för tidsöverföringtimetransfer,timetransfer_adv
Förmåga
Tvåvägs/TWSTFT (Sagnac), GNSS common-view, PPP; länkjitter till avstånd
Oberoende referens
Sagnac-storleken kontrollerad mot ett auktoritativt PUBLICERAT VÄRDE — N. Ashby, 'Relativity in the GPS', Living Reviews in Relativity 6:1 (2003), ekv. 1,29: ett östvänt varv runt ekvatorn ackumulerar 207,4 ns (2ωA_E/c²); kshana återskapar 207,386 ns. Oberoende styrkt av RTKLIB 2.4.3 geodist() (Takasu, BSD-2-Clause), som bär samma 2Aω/c²-geometri. Den sammansatta budgeten för BIPM TWSTFT-transponder/common-view/PPP har ingen extern oberoende referens, så förmågan förblir Modelled
Tester
timetransfer::tests (reciprok upphävning; Sagnac-identitet i två former); tests/time_transfer_error_budgeting_reference.rs (Sagnac vid ekvatorialt jordomlopp = 207,386 ns mot publicerade Ashby 207,4 ns till <0,05 ns…
ModelledNavigationssignalers modulering och kodföljningsanalysnavsignal
GPS C/A Gold-korskorrelation och autokorrelation stämmer EXAKT (heltal ±65/−1/63) med oberoende kodgenerering enligt IS-GPS-200; PSD-formen för BPSK-R(1)/BOC(1 1) mot ett oberoende scipy-periodogram. Slutna former för modulering/SSC/DLL (Betz 2001 / Kaplan & Hegarty) förblir analytiska, så raden förblir MODELLED — men delpåståendet om kodkorrelation är externt bekräftat. Omgång 2 för 0,30, mot de tryckta värdena i Betz 2001 och Hein et al. 2006 (förhandsregistrerad 9f4f2ce8, en halv tryckt enhet), ett fynd (förblir MODELLED): alla 45 spektralceller i tabell 1, korrelationsvärdena vid 1 GHz, MBOC-störningssiffrorna och 2 av 3 förskjutningar i fig. 17 stämmer; de första sidolobsmaxima vid 24 MHz, förskjutningen för BOC(8 4) i fig. 17 och varje sämsta flervägsbias i fig. 18-21 (11 till 15 % låg) stämmer inte. Kshana och en oberoende NumPy-utvärdering av den förhandsregistrerade läsningen stämmer överens, så skillnaden ligger i den läsningen eller i en ospecificerad detalj i artikeln; orsaken är olöst
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…
ValidatedGenerering av spridningskod för GPS L1 C/Asdr
Förmåga
G1/G2 LFSR-generator för C/A-kod som återskapar de i IS-GPS-200 publicerade oktala verifieringsvektorerna för de första 10 chipen för PRN 1–9 (plus längd 1023 chip, balans med 512 ettor, trevärd periodisk autokorrelation)
Oberoende referens
IS-GPS-200 tabell 3-Ia 'Code Phase Assignments' — de auktoritativa, publicerade OKTALA verifieringsvektorerna för de första 10 chipen från den amerikanska statsmakten (public domain; GPS Directorate, navcen.uscg.gov); kshanas egen G1/G2-LFSR återskapar varje vektor för PRN 1–9 exakt. De efterföljande slutna formerna för modulering/SSC/DLL förblir Modelled (separat rad)
ModelledPrestanda för kvantinertialsensorinertial::quantum_imu
Förmåga
Accelerometer med kallatominterferometer från första principer (k_eff·T², QPN)
Oberoende referens
Publicerade numeriska vektorer ur primärartiklar om CAI (överföringsfunktion enligt Cheinet 2008; känslighet enligt Peters/Freier): k_eff·T² stämmer exakt, ASD för skottbrus är ett ensidigt golv inom ~2× av varje publicerat instrument (verkliga enheter har tekniskt brus över kvantgolvet). Ett intervall, inte jämställdhet. Omgång 2 för 0,30 (förhandsregistrerad fcb9ac64), ett fynd (förblir MODELLED): rotationsbruset med enbart QPN mot de uppmätta punkterna i Gauguet et al. 2009 fig. 14 ger kvoter 0,695 till 0,788 vid de tre godkända punkterna (0,751 vid driftpunkten) och missar den förhandsregistrerade tröskeln på 30 % med 0,5 punkter; QPN-golvet ligger 21 till 31 % under det uppmätta bruset, vilket är väntat för en modell utan laser- och detektionsbrus. Gradiometersammansättningen stämmer med modelllinjen för QPN i Janvier et al. 2022 (kvot 1,013 till 1,017, Reference). Det uppmätta testet kan inte avgöra ett sammansättningsfel på sqrt(2); bara linjen med ojämn kontrast i Janvier kan det
Tester
quantum_imu::tests (k_eff; Mach-Zehnder T²; Freier-2016-golvets intervall); tests/quantum_inertial_sensor_reference.rs (överföringsfunktion |H(ω)|, k_eff·T² och skottbrus-ASD mot publicerade Cheinet 2008 / Peters / Freier…
ModelledFringe-tvetydighet / dynamiskt område för kvantinertialsensorinertial::quantum_imu
Förmåga
Dynamiskt område för fringe-tvetydighet i Mach–Zehnder: den 2π-periodiska fringe-avläsningen sätter en största entydiga specifika kraft a_max=π/(k_eff·T²), och det entydiga området i upplösningsceller a_max/σ_a=π/σ_Φ är oberoende av den optiska skalfaktorn — förstärkningen i känslighet med T² kostar entydigt område i exakt samma takt (avfrågningstiden växlar upplösning mot område, och antalet celler fastläggs av avläsningens fasbrus)
Oberoende referens
Självkonsistens i interferometerns fringe-modell: halvfringe-kanten, den 2π-periodiska aliasstrukturen och skalfaktorns utjämning i kvoten mellan område och upplösning är algebraiska identiteter i sluten form som kontrolleras mot motorns egna Mach–Zehnder-fas- och känslighetsfunktioner — kontroller av intern konsistens, INTE en extern datamängd, så raden förblir InternalConsistency. MODELLED idealisk tre-puls fringe-tvetydighet; inga gränser för vågfrontsaberration eller kontrastförlust på det entydiga området
Tester
quantum_imu::tests (a_max ligger vid kanten ±π av halvfransen med skalningen 1/T² av området; återvinning av lindad fas är exakt inom [−a_max,a_max] och ger alias med exakt 2·a_max utanför; det entydiga dynamiska området…
ModelledMotståndskraft för kvantinertial dödräkninginertial::quantum_imu (QuantumNavBudget)
Förmåga
Sammansatt positionsbudget för bias + skalfaktor + VRW + stabilitetsavtagande under holdover
Oberoende referens
Oberoende numpy-Monte Carlo-SDE-integrering av dubbelintegrerat vitt accelerationsbrus (validerar den analytiska VRW-variansen med en verkligt oberoende algoritm) + ett publicerat värde som förankring enligt Groves 2013 för termerna för bias och skalfaktor; CAI-enhetssiffrorna kvantifierar partnerns hårdvara och förblir MODELLED
Tester
budget_tests (bias mot AccelModel-integrator; VRW mot analytisk integral); tests/quantum_inertial_dead_reckoning_reference.rs (VRW mot en oberoende numpy-Monte Carlo-dubbelintegration av vitt accelerationsbrus, sämst…
EKF med 15 felstillstånd, löst kopplad (validated på en verklig IMU/GNSS-körning mot NaveGo); en tätt kopplad UKF för pseudoavstånd/Doppler och ett kopplat klock- och positionsfilter (endast konsistens, utanför det validated påståendet)
Oberoende referens
NaveGo v1.4 (R. Gonzalez, LGPL-3.0, körs som verktyg under GNU Octave, aldrig länkad): dess löst kopplade ins_gnss på dess egen verkliga IMU/GNSS-körning med landfordon med Ekinox, där båda lösningarna poängsätts mot Ekinox referensbana. Båda filtren läser samma float32-indata med 20 Hz, och Kshanas konfiguration översätts mekaniskt från datamängdens publicerade parametrar. Kshanas horisontella och vertikala positions-RMS och dess RMS för positionsinnovation ligger inom 1.2x av NaveGos (uppmätt 0,912, 0,940 och 0,861) och dess normaliserade medelinnovation är högst 1,5 (uppmätt 0,395: ungefär 2.5x underkonfident, givet datamängdens angivna GNSS-sigma); toleranserna fastställdes före jämförelsen. Omfattning: GNSS finns med 5 Hz under hela körningen, så inget avbrott eller utrullning testas och kontrollen fångar grova filterfel snarare än finjustering (råa positionsbestämningar med korrigerad hävarm skulle hamna nära den vertikala tröskeln); hävarmstransformen beräknas i testselen. Den tätt kopplade UKF och det kopplade klock- och positionsfiltret behåller sina konsistenskontroller med filterpy 1.4.5 (linjära posteriorer till 2.4e-12) och förblir utanför det validated påståendet
Tester
fusion::tests (UKF==linjärt KF-identitet; bortfallsglidning; NEES); tests/gnss_ins_sensor_fusion_reference.rs (50 fall mot filterpy 1.4.5: linjärt EKF löst/tätt + kopplade PNT-posteriorer till ≤2.4e-12; UKF 40-epoks körning sämst…
ModelledMotståndskraft mot jamming utan GNSSjamming
Förmåga
Geometrisk J/S-länkbudget, C/N₀ med jamming-skydd, signalförlust per satellit
Oberoende referens
Ekvationen för länkbudgeten av C/N₀ med jamming-skydd korskontrollerad mot en oberoende härledning i numpy (delar samma slutna form → InternalConsistency) plus en karakterisering av C/N₀-försämring i verkliga JammerTest-2024. Omgång 2 för 0,30, blockerad (förblir MODELLED): den uppmätta C/N0-nedgången i JammerTest 2024 mot en länkbudgetförutsägelse (förhandsregistrerad 6a66994b, inom 3 dB) kördes inte eftersom F8.1-antennens position och riktning vid Bleik och L1-andelen av rampeffekten i flerbandet 1.6.4 inte är dokumenterade i testkatalogen eller den officiella loggen
Tester
jamming::tests (broadband_q_equals_the_spectral_separation_closed_form och cw_q_equals_the_spectral_separation_closed_form: Q-tabellen, CW och smalband 1, bredband och svepande 2, fastlåst till navsignals slutna former…
ModelledDetektering av spoofingspoof,spoof_detect,spoof_monitors
Förmåga
Klockstödd χ², RAIM, AGC, SQM sammanvägda till ett säkerhetskvalitetsmått per epok
Oberoende referens
Scenarioparametrar för TEXBAT (Humphreys 2012) — karakterisering, inte fastlåsta vektorer. Extern jämförelse 0,30, ett fynd (förblir MODELLED): på JammerTest 2024 (Bleik; data under GPL-3.0) gav övervakarna på observationsnivå (klockstödd chi-två, RAIM, lösningsfel) inget larm inom 10 s för något av de 8 utvärderbara publicerade spoofing-starterna (där fönstret före starten var rent kom det första larmet 10,2 till 39 s efter den publicerade slotstarten), och tre fönster före start innehöll falsklarm från klockövervakaren (81, 64 och 173 epoker). Den första observerbara effekten var en förlust av GPS-följning på två frekvenser, inte en RAIM-inkonsistens. De publicerade starterna är slotstarter i schemat med minutupplösning; att de föregår RF-inspelningen är en tolkning, inte en mätning. Omgång 2 för 0,30, mot arrangörernas officiella JammerTest 2024-logg (sekundupplösning; förhandsregistrerad 6a66994b med en Hadamard-kalibrerad klockövervakare med tre tillstånd utan låsning), ett fynd (förblir MODELLED): övervakaren larmar inom 10 s vid 4 av 10 loggade starter; vid de andra sex är den 18 till 211 s sen eller ger falska klocklarm före start (1 vid 2.1.4, 85 vid 2.3.15). D9 omgång 3 (ett mottagarkort från JammerTest-enhetens övriga sessioner, förhandsregistrerad 2ec76864) blockerad: 167 träningsepoker mot 3600. D9 omgångarna 4 och 4b (brusnivåer från ett modellklasskort för u-blox ZED-F9P, Wroclaw 2021, förhandsregistrerad fb475550; 4b en redovisad omkörning med korrigerad extraktion, c9cc0d49), ett fynd (förblir MODELLED): inga falsklarm före start vid alla 10 loggade starter och 6 av 10 inom 10 s; 2.1.1, 2.3.5, 2.3.10 och 2.6.1 förblir sena (+211, +23, +18, +51 s), oförändrat av klockans brusnivå
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)…
ModelledSkyddsnivå för tidssynkronisering (Timing Protection Level) vid spoofingtpl
Förmåga
Gräns i sluten form för värsta fallets oupptäckta tidsfel = övervakarens golv + oscillatorns utrullnings-σ över CUSUM-detekteringsfördröjningen, redovisad som ett band för det röda brusgolvet
Oberoende referens
Sätter ihop Validated primitiver (allan/holdover van-Loan, säkerhetsgolv); kalibrerad på JammerTest 2024 scenario 2.1.1 (~1,01 ms verklig dragning av levererad tid mot ≤51 ns påstått). En brygga över Validated delar — inte i sig en extern validering. Extern jämförelse 0,30, ett fynd (förblir MODELLED): i spoofing-scenarierna i JammerTest 2024 överstiger det uppmätta oupptäckta tidsfelet för levererad tid den nominella TPL vid 3 av 8 detekterade starter: 184,3 mot 34,6 ns (2.1.4), 295,7 mot 159,3 ns (2.3.5) och 143,0 mot 69,0 ns (2.3.11); tre av de fem som ligger inom är triviala (ett låst falsklarm före start). Trolig orsak: utrullningstermen från en kalibrering på 60 s med noll driftbrus täcker inte mottagarens TCXO:s frekvensvandring över 15 till 39 s. Det uppmätta felet är Kshanas egen enpunktsklockskattning mot en linje anpassad till dess egna skattningar före start, så inte ens överensstämmelse hade varit helt oberoende. Omgång 2 för 0,30, mot starterna i den officiella JammerTest 2024-loggen och det uppmätta mottagartidsfelet (förhandsregistrerad 6a66994b), ett fynd (förblir MODELLED): vid 4 av 10 loggade starter överstiger det oupptäckta felet TPL med driftstillstånd (634,7 mot 458,5 ns vid 2.1.1, 232,6 mot 16,2 ns vid 2.3.5, 41,3 mot 6,0 ns vid 2.3.10, 218,6 mot 47,4 ns vid 2.6.3)
CR3BP STM + korrigerare med enkelskjutning och differentialkorrektion; södra NRHO runt L2
Oberoende referens
NASA/JPL Three-Body Periodic Orbit Database (SSD, periodic_orbits.api; Earth–Moon L2 södra halo-familjen, metodik enligt Howell/Davis) — externt publicerad period T, Jacobi-konstant C och initialvillkor för vinkelräta korsningar; kshanas STM-korrigerare med enkelskjutning, initierad med katalogens initialvillkor och störd, konvergerar tillbaka till katalogens medlemmar
Tester
cr3bp::tests (STM mot finita differenser); tests/cislunar_mission_analysis_reference.rs (5 JPL L2-S NRHO-medlemmar: 9:2 + 4 grannar; sämsta |ΔC| 1.5e-5, |ΔT|/T 9.6e-5, perilun 0,7 km i JPL:s längdenheter)
Matchning mot gravitationskartor, terrängreferens (TERCOM/SITAN), magnetisk anomali
Oberoende referens
IGRF-14-koefficienter; CRLB för matchat filter från första principer. Fältet i benchmarken för verkligt gravitationsfält kontrolleras externt (raden 'Gravity-anomaly synthesis from a spherical-harmonic model'), men dess navigeringsresultat har ingen extern oberoende referens
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…
ValidatedSyntes av gravitationsanomali från en sfäriskt harmonisk modellgravity_sh,altpnt::maps,gravimeter
Förmåga
Gravitationsanomali i sfärisk approximation (Barthelmes STR09/02 ekv. 126, ICGEM gravity_anomaly_sa) från fullt normaliserade koefficienter mot en nivåellipsoid i sluten form (WGS84/GRS80), med nollgradstermen, rasterlagd för matcharen av gravitationskartor
Oberoende referens
ICGEM Calculation Service (GFZ Potsdam), en oberoende implementation: EGM2008 avkortad vid grad 70, gravity_anomaly_sa, WGS84, tidvattenfri, nollgradsterm, h = 0. Tjänstens utdata har ingen uttrycklig licens, så rastren hämtas vid testtillfället med en fastlåst SHA-256 (tools/fetch_icgem_grid.sh) och endast tio värden citeras med angivande av källa
Tester
tests/icgem_gravity_anomaly_oracle.rs (egm2008_n70_matches_cited_icgem_values i CI på tio citerade ICGEM-noder; egm2008_n70_gravity_anomaly_sa_matches_icgem över de fullständiga hämtade 0.25-deg-rutnäten för Tchad 9-15N 19-25E och…
ValidatedLäsare för digitala höjdmodeller (SRTM) på verklig terrängaltpnt::terrain
Förmåga
Egenutvecklad SRTM .hgt-parser (16 bitar big-endian, norra raden först, medveten om tomrum) + bilinjär samplare som läser en verklig DEM-ruta i public domain och löser en dokumenterad lantmäteribenchmark
Oberoende referens
NASA/USGS SRTM v3 (1 bågsekund) ruta N36W117 — höjddata i PUBLIC DOMAIN från den amerikanska statsmakten, från den öppna AWS-spegeln elevation-tiles-prod, decimerad till 6 bågsekunder och incheckad under tests/fixtures/terrain/ (se NOTICE.md), plus beskärningar i full upplösning av N36W117 och N36W119 korskontrollerade nod för nod mot GDAL:s oberoende SRTMHGT-läsare och lantmäteribenchmarkarna Mount Whitney (4421 m) och Badwater (−86 m). Den dokumenterade benchmarken Badwater Basin (−86 m, lägst i Nordamerika) förankrar den georeferenserade avläsningen. Terrängmatchningen/TERCOM-positionsbestämningen som använder DEM förblir Modelled (separat rad för Alternativ/kompletterande PNT)
Tester
tests/terrain_nav_validation.rs (real_srtm_committed_badwater_tile_reads_real_relief — den incheckade decimeringen till 6 bågsekunder av den offentligt tillgängliga SRTM v3-rutan N36W117 placerar Badwater Basin, den lägsta punkten i Nord…
ModelledReproducerbarhet och programvaruförsäkranreport,scenario; CI (golden/determinism/SBOM)
Förmåga
Deterministiska grindar med scenariohash, SBOM och golden-filer över plattformar
Oberoende referens
SBOM som följer det officiella JSON-schemat för CycloneDX 1,5 (+ giltiga SPDX-identifierare) — en extern publicerad standard, noll valideringsfel över hela beroendegrafen; den del som rör determinism och byte-reproducerbarhet för FoM förblir en fastlåst självkonsistenskontroll, så raden förblir 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…
ModelledUtvärdering av AI/ML-detektering av RF-störningar (13494)impairment_eval
Förmåga
Märkt syntetiskt störningskorpus + detektoroberoende sele för ROC/AUC/förväxlingsmatris/Pfa-Pmd; läckageskydd, stratifierad uppdelning, rapport om optimism vid fördelningsskifte (inom mot utanför regimen). Kan köras från CLI/bindningarna som scenariotypen impairment-eval (scenarios/impairment-eval.toml)
Oberoende referens
AUC-gränser i sluten form (Mann–Whitney) + en perfekt oberoende detektor; korpuset är SYNTETISKT (parameterförankrat, inte fält/IQ)
ModelledStudie av optimismgapet vid AI/ML-detektering av RF-störningar och en gapprediktor enbart med IDimpairment_study,impairment_ml,eval_stats
Förmåga
Kontrollerad syntetisk studie av optimismgapet i AUC mellan inom och utanför fördelningen över detektorer med publicerade metoder och inlärda detektorer (logistisk regression / MLP med ett dolt lager): trender enligt skalningslag per klass (Spearman ρ + lutning på 1−svårighetsgrad) och en ridge-prediktor enbart med ID som skattar gapet endast utifrån diagnostik inom fördelningen, poängsatt med lämna-en-detektor-utanför och lämna-en-klass-utanför. Reproducerbart via cargo run --release --example optimism_study
Oberoende referens
Handhärledd statistik mot slutna former (binormal AUC Φ(d'/√2), DeLong-varians, Spearman med tied-rank, exakt OLS-återvinning) + korsvalidering med utelämnande av en mot baslinjen att förutsäga medelvärdet. Korpuset är SYNTETISKT (parameterförankrat, aldrig fält/IQ) och optimismgapet är ett skifte i svårighetsgrad från syntetiskt till syntetiskt, INTE ett resultat från simulering till fält
Tester
impairment_study::tests (AUC per klass för den oberoende referensen ≈1, inlärt optimism-gap>0, rutnätsform + bootstrap-KI omsluter medelvärdet + positiv skalningstrend, ID-särdrag ändliga, gap-prediktorn slår predict-the-mean under BÅDA…
ModelledKvant mot klassisk PNT-avvägning och motståndskraft utan GNSS (13503)quantum_trade
Förmåga
Inläsning av uppmätt ADEV (NNLS), avvägningstabell (holdover för tid/inertial + nytta), kuvert för motståndskraft mot tid; golvförbehållet följer med i artefakten. Kan köras från CLI/bindningarna som scenariotypen quantum-trade (scenarios/quantum-trade.toml)
Oberoende referens
Kärnan för anpassning av uppmätt ADEV till PSD (NNLS) stämmer med scipy.optimize.nnls (tests/scipy_reference.rs / tests/quantum_vs_classical_pnt_trade_reference.rs) — en oberoende extern kärna; men avvägningens SIFFROR kvantifierar (validerar aldrig) en partnerklocka/CAI, så själva avvägningen förblir MODELLED, utan validerings-gloria
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…
ModelledRymdväder och aktivitetsdriven termosfärisk densitetspace_weather
Förmåga
Sol- och geomagnetiska index (definitionstabell Kp↔ap), exosfärstemperaturen enligt Jacchia-1971 och den termosfäriska densiteten enligt Jacchia 1971 (SAO Special Report 332: statiska diffusionsprofiler som återskapar dess tabell 7, med dygnsvariation samt geomagnetiska, halvårs-, säsongs-latitud- och heliumvariationer) mot den statiska atmosfären USSA76. Kan köras från CLI/bindningarna som scenariotypen space-weather (scenarios/space-weather.toml)
Oberoende referens
Definitionstabell Kp↔ap + sluten form för exosfärstemperaturen enligt Jacchia-1971 (stämmer till <1 K mot de publicerade förankringarna, tests/space_weather_reference.rs); densiteten karakteriseras mot pymsis NRLMSISE-00 (en oberoende NRL-modell): solcykelsvingen vid 800 km är 10.4x mot 13.6x för NRLMSISE-00. Revision 0,30: den kalibrerade förstaordningens aktivitetsfaktor ersattes av Jacchia 1971 (standardscenariots densitet vid 400 km 4.176e-12 -> 6.929e-12 kg/m3; reference_exospheric_temperature_k togs bort, mean_exospheric_temperature_k lades till). Omgång 2 för 0,30, uppmätta accelerometerdensiteter från TOLEOS för CHAMP/GRACE/GRACE-FO (ESA Swarm DISC; förhandsregistrerad 20eed695), ett fynd (förblir MODELLED): banmedelvärden vid 400 till 500 km ligger inom en faktor 2 vid solmaximum utanför stormar (CHAMP 2001 521/521, GRACE-A 2002 120/120, GRACE-FO 2024 526/547), men Jacchia 1971 är ungefär 1.7x för tät vid solminimum 2008 (GRACE-A 412/544 inom en faktor 2), så densiteten är inte validated
Tester
space_weather::tests (Kp↔ap exakt i rutnätspunkter + rundtur + monoton, dagligt Ap-medelvärde, exosfärisk T mot publicerade förankringar för solminimum/medel/maximum + stormtillskott, densitet ett vid referensen, solcykelsvängning i…
ValidatedCCSDS OEM-interoperabilitet (import av efemerider från GMAT/Orekit/STK)oem
Förmåga
CCSDS 502,0 OEM-importerare (parse_oem), tolerant mot COMMENT-rader / extra metadatanyckelord / kovariansblock och den exakta inversen av skrivaren; rundtur + inläsning av extern fil med en hastighetskonsistenskontroll. Kan köras från CLI/bindningarna som scenariotypen oem-interop (scenarios/oem-interop.toml)
Oberoende referens
Oberoende CCSDS-502-parser från tredje part oem 0.4.5 (MIT, https://pypi.org/project/oem/) — en separat kodbas som avkodar kshanas utsända EME2000/UTC-OEM byte för byte identiskt (24 tillstånd över 2 fixturer, pos/vel Δ = 0) och vars strikta läsare bekräftar metadatatoken; kshanas parser stämmer likaledes med den på en medföljande extern OEM. Två ärliga interoperabilitetsfynd (biblioteket oem avvisar kshanas konvention med flera segment per satellit och dess kovariansrader med flera poster) är dokumenterade i testet — så detta validerar utbyte av enskilda objekt som följer standarden, inte att varje kshana-variant fullt ut följer CCSDS-502
Tester
tests/ccsds_oem_interop_reference.rs (24 tillstånd / 2 fixturer avkodade byte för byte lika av den oberoende oem-parsern, pos/vel Δ = 0); oem::tests (tolka en OEM från ett externt verktyg med extra nyckelord/kommentarer/kovarians…
ModelledUppskjutningsfönster och uppstigningsgeometri (missionsanalys)launch
Förmåga
Tvåkropps-uppskjutningsazimut (sin Az = cos i / cos lat), lägsta nåbara inklination, cirkulär hastighet, jordrotationens bonus österut, Δv för plansbyte med dogleg och dagliga tillfällen, och, givet en epok och rader från IERS finals2000A, platshastigheten kring den sanna polen (launch::site_rotation_speed_at). Kan köras från CLI/bindningarna som scenariotypen launch-window (scenarios/launch-window.toml)
Oberoende referens
Sfärisk trigonometrisk uppskjutningsgeometri i sluten form mot publicerade förankringar med genomräknade exempel (Vallado, Fundamentals of Astrodynamics 4:e uppl., Algoritm 37 uppskjutningsazimut + kap. 6 plansbyte; tests/launch_window_ascent_geometry_reference.rs). Dessa återanvänder samma slutna form som kshana implementerar (en paritets- och transkriptionskontroll mot publicerat värde, InternalConsistency); MODELLED tvåkropp, ingen modell för hastighetstriangel med roterande jord / uppstigning / motståndsförlust. Extern jämförelse 0,30 mot Orekit 12,2 (Apache-2.0), ett fynd (förblir MODELLED): geometrin stämmer inom avrundning (inklination avläst från utbrännningsazimut över 158 fall, sämst 2.6e-15 rad; lägsta inklination, cirkulär hastighet och delta-v för dogleg till 3e-16), men platshastigheten från jordrotationen missar den förhandsregistrerade 1e-6 relativt vid latitud 62,9 deg (1.12e-6). Gapet växer som tan(lat), i linje med en polrörelseförskjutning av polen på omkring 5.8e-7 rad i Orekits jordsystem som den sfäriska ω·R·cos(lat) utelämnar. Påståendet avgränsades inte före körningen, så raden kan inte höjas på grundval av den här jämförelsen. Omgång 2 för 0,30 (förhandsregistrerad 71bebf63): med en epok och IERS-rader stämmer platshastigheten för den sanna polen (scenariofältet site_rotation_speed_true_pole_m_s) med Orekit inom 1e-6 på 24 platser över fyra longituder (sämst 4.9e-8), men den nominella hastigheten utan epok som scenariot som standard ger som jordrotationens bonus missar fortfarande med 1.12e-6, så raden förblir MODELLED i väntan på ett beslut om standardutdata
Maximal retardation (oberoende av ballistisk koefficient), hastighet och höjd vid maximal g-kraft samt hastighet vid maximal uppvärmning för ett ballistiskt inträde i en exponentiell atmosfär. Kan köras från CLI/bindningarna som scenariotypen reentry (scenarios/reentry.toml)
Oberoende referens
Analytiskt inträde i sluten form enligt Allen–Eggers, dessutom korskontrollerat mot en numerisk integrering med scipy 1,18 solve_ivp (DOP853) av SAMMA inträdes-ODE med enbart luftmotstånd (tests/ballistic_re_entry_corridor_reference.rs, 36 fall, sämst a_max rel 2.9e-9) — en kontroll av numerisk integral mot den egna analytiska formen, alltså fortfarande InternalConsistency, INTE en extern validering. MODELLED ballistiskt (ingen lyftkraft), ingen aerotermisk modell eller TPS — uppvärmningsutdata är en hastighet, inte ett värmeflöde. Extern jämförelse 0,30, ett fynd (förblir MODELLED): mot rekonstruktionen av inträdet för Stardust SRC (Desai och Qualls, NASA NTRS 20080008567) är Allen–Eggers maximala retardation för det tryckta tröghetsinträdestillståndet (12,9 km/s, -8.2 deg, H 7200 m) 61,8 g mot den bäst skattade banans 32,89 g, +88 % mot en tolerans på 15 %: lösningen med konstant banvinkel och utan gravitation ungefär fördubblar toppen för ett flackt inträde med högre fart än flykthastigheten. Stardust bar ingen accelerometer, så rekonstruktionen är en banskattning. Omgång 2 för 0,30, blockerad (förblir MODELLED): en integrerad plan punktmassalösning (reentry::simulate_planar_entry, US76, gravitation med omvänd kvadrat, krökning) stämmer med de bäst skattade banorna för Stardust och Genesis inom 15 % (+11,3 %, +5,6 %), men dessa maxima är simuleringsutdata från myndigheter, inte mätningar, så detta är enbart en korskontroll. Accelerometerjämförelsen (förhandsregistrerad a94a283d) är blockerad i väntan på en läsbar kopia av analysen av Hayabusa2 REMM (doi 10.57350/jesa.16)
Tester
reentry::tests (topp-g oberoende av ballistisk koefficient + fysikaliskt g-band, växer med brantare γ / snabbare ingång, topp-g-hastighet = V_e·e^(−1/2) och topp-uppvärmning = V_e·e^(−1/6) snabbare, topp-g-höjd fysikalisk +…
ValidatedFotavtryck och täckningsgeometri för EO-nyttolasteo_payload (j2_node_rate,j2_nodal_period,ground_track_spacing_equator_j2,sun_synchronous_inclination)
Förmåga
SMAD-geometri med rymdtriangel: jordens vinkelradie, svepbredd, GSD i nadir, maximal åtkomst utanför nadir och cirkulär period, plus den nodala perioden för J2 av första ordningen (eo_payload::j2_nodal_period) och markspårsavståndet vid ekvatorn R_e (omega_E - dOmega/dt) T_nodal (eo_payload::ground_track_spacing_equator_j2) med en flagga för sammanhängande täckning, för en banhöjd, inklination och sensorns FOV/IFOV. Kan köras från CLI/bindningarna som scenariotypen eo-coverage (scenarios/eo-coverage.toml); dess standardinklination är den solsynkrona från eo_payload::sun_synchronous_inclination, ett bekvämlighetsvärde som inte ingår i det validated påståendet
Oberoende referens
Orekit 12,2 (Apache-2.0) och GeographicLib 2,1 (MIT), båda körda som separata program, förhandsregistrerade (766823f3) före motorändringen och före någon körning av de oberoende referenserna: sfärstorheter inom 1e-9 relativt (sämst: vinkelradie 5.4e-16, svepbredd 7.0e-13, åtkomst 1.9e-14), period 1e-12 (1.6e-16), GSD i nadir 1e-7 (2.9e-10), den nodala perioden för J2 och nodavståndet inom 0,1 % av en numerisk J2-propagering i Orekit med noddetektor (1.2e-5 och 6.7e-5), den sammanhängande flaggan exakt (168/168), och mot WGS-84-ellipsoiden limben inom 0,3 deg (0,186 deg) och största markavståndet inom 0,5 % (3.2e-3). Om termen för nodal regression tas bort misslyckas 35 av 42 nodpunkter. MODELLED omfattning: fotavtryck på sfärisk jord; ingen radiometri, MTF, atmosfär, jitter eller glint; den solsynkrona standardinklinationen jämförs inte. Den tidigare korskontrollen med Skyfield/SGP4 behålls som regressionstest. Revision 0,30: avståndet bär nu den nodala regressionen från J2 (standardscenario 2756,37 -> 2752,17 km)
Tester
eo_payload::tests (vinkelradie 64° vid 700 km + krymper med höjden, nadir→zenit/noll avstånd, horisont→ε=0/största centralvinkel, fel bortom horisonten, svepbredd växer med FOV / GSD med höjden, ~2750 km nodavstånd…
ValidatedCCSDS Space Packet (133,0) TM/TC-inramningspace_packet
Förmåga
CCSDS 133.0-B Space Packet: kodning och avkodning av primärhuvudet (version/typ/sekundärhuvud/APID/sekvensflaggor/räknare/datalängd) + ett inramningsscenario. Kan köras från CLI/bindningarna som scenariotypen space-packet (scenarios/space-packet.toml)
Oberoende referens
spacepackets 0.32.0 (us-irs/spacepackets-py, R. Mueller, Apache-2.0) — en oberoende implementation från tredje part av CCSDS 133.0-B-2; kshanas encode_packet/decode_packet stämde byte för byte (primärhuvudet på 6 oktetter för 33 fall + hela det kodade paketet för 12)
Tester
space_packet::tests (rubrikbitar följer CCSDS-133-layouten, kodning→avkodning rundturar alla fält, utanför intervall/trunkerat avvisas); tests/ccsds_space_packet_reference.rs (33 fall mot spacepackets 0.32.0, inkl. 12…
ValidatedCCSDS Space Packet: sekundärhuvud, paketfelskontroll och segmenteringspace_packet (TimeCode, SecondaryHeader, paketfelskontroll, segmentering och återsammansättning, strömavkodning)
Förmåga
Tillägg i CCSDS 133.0-B-2 Space Packet vid sidan av primärhuvudet: ett sekundärhuvud med en tidskod enligt CCSDS 301.0-B (CUC eller CDS, explicit eller implicit P-fält) och hjälpdata, fältet CRC-16 för paketfelskontroll, segmentering av en stor användardataenhet och dess återsammansättning, strömavkodning med kontroller av sekvensluckor och ordning samt PUS-TM-paket. Utdata för primärhuvudet är byte för byte identiska med tidigare
Oberoende referens
Förhandsregistrerad (003ef3eb) före varje jämförelse; fyra oberoende implementationer, ingen under GPL, inget medföljande: ccsdspy 2.0.1 (BSD-3-Clause) avkodar 34 paket skrivna av Kshana i 5 strömmar (primärhuvud, P-fält, grov och fin tid, CDS-fält, hjälpdata, användardata, PEC) och båda segmenterade enheterna på 1000 oktetter byggs upp igen från dess användardata med 0 avvikelser, och den flaggar strömmarna med utelämnat och ombytt paket som Kshana avvisar; CRC för 8 meddelanden och 57 PEC-fält är lika med CPython binascii.crc_hqx och spacepackets-rs 0.18.0 (kontrollvärde 0x29B1); 66 fall med CUC- och CDS-tidskod är lika med skrivning och läsning i spacepackets-rs 0.18.0 oktett för oktett (3 CDS-fall även spacepackets-py 0.32.0); 4 PusTm-paket från spacepackets-py 0.32.0 är byte för byte identiska med Kshanas. Omfattas inte: tidskoder med myndighetsepok (7 fall vilar på enhetstester), TC-överföringsramar och varje länklager under paketet
Tester
tests/space_packet_ext_oracle.rs (fem förhandsregistrerade trösklar: CRC, tidskoder, strömmar, lucka och ordning, PUS TM; noll avvikelser); space_packet::tests
ValidatedExport av SPICE SPK (typerna 9 och 13)spk_writer (SpkSegment,to_bytes,from_bytes,eval,et_from_label,oem_to_spk_segments)
Förmåga
Skrivare och läsare för NAIF SPICE SPK-kärnor av typerna 9 (Lagrange, ojämna tidssteg) och 13 (Hermite, ojämna tidssteg), med DAF-layout, segmentbeskrivare och epokkataloger, samt export av en CCSDS OEM till en SPK-kärna (UTC- eller TDB-epoker till efemeridtid)
Oberoende referens
CSPICE N0067 via spiceypy 8.3.0, skottsekundskärnan naif0012.tls, förhandsregistrerad (5059fd2a) innan SPICE läste någon av Kshanas kärnor: SPICE:s inventering av Kshanas fyra kärnor är exakt; spkpvn och spkgeo vid 5 516 epoker och 690 kedjeutvärderingar är bit för bit lika med Kshanas egen utvärdering och håller sig inom tröskeln vid varje nod (sämst 0,022 av den); Kshana läser kärnor skrivna av SPICE bit för bit identiskt; för samma indata är Kshanas kärnor byte för byte identiska med SPICE:s (0 avvikande byte i fyra filer); OEM-epoker omvandlas till efemeridtid inom 6.0e-8 s från str2et (tröskel 1e-6 s) och SPICE utvärderar OEM-exporten inom tröskeln (sämst 0,060). Syntetiska Kepler-bågar: inget om fysikalisk noggrannhet. Andra SPK-typer skrivs inte
Tester
tests/spk_writer_spice_oracle.rs (inventering, utvärdering, bit- och byteidentitet, OEM-epokomvandling; fyra planerade mutationskontroller gör den röd)
ValidatedSPICE SPK-typerna 3 och 21 (Chebyshev, utökade differenslinjer)spk_writer (SpkType::Chebyshev3,SpkType::DiffLines21,SpkSegment,InterpolatedSpk)
Förmåga
Skrivare och läsare för NAIF SPICE SPK-segment av typ 3 (Chebyshev-polynom för position och hastighet över fasta intervall, grad 0 till 27) och typ 21 (utökade modifierade differensmatriser, differenslinjerna i JPL:s integratorer, MAXDIM 15 till 25), från givna poster, i filer som även innehåller segment av typ 9 och 13; val av post och utvärdering i samma ordning som SPICE-läsarna. Kshana anpassar inte Chebyshev-koefficienter och producerar inga differenslinjer
Oberoende referens
CSPICE N0067 via spiceypy 8.3.0 (spkw03, spkw13 och, från samma bibliotek via dess f2c-symbol, spkw21; spkpvn, spkgeo), förhandsregistrerad (e1cf80d8) innan koden fanns, de syntetiska posterna dragna ur den commitens SHA-1: för tre filer (typ 3 grad 0, 12 och 27 med 3 till 150 poster; typ 21 MAXDIM 15, 20 och 25 med 1 till 250 linjer, noll till två katalogposter och en centrumkedja; typ 3, 21 och 13 i en fil med kommentarer) är SPICE:s inventering av Kshanas kärnor exakt, Kshanas kärnor är byte för byte identiska med dem som SPICE skriver från samma poster, och spkpvn och spkgeo är lika med Kshanas läsare bit för bit på Kshanas och på SPICE:s filer (48 876 komponenter åt vardera hållet, tröskel 1e-12 relativt). Syntetiska poster: inget om fysikalisk noggrannhet; verkliga kärnor av typ 21 producerade av JPL ingår inte i fallmängden
Tester
tests/spk_3_21_spice_oracle.rs (inventory, evaluation both ways, byte identity); spk_writer::tests
ValidatedCCSDS Attitude Data Messages (AEM, APM)adm (AemMessage,ApmMessage,quaternion_a_to_b),ndm_xml
Förmåga
Skrivare och läsare för CCSDS 504.0-B-2 Attitude Data Messages i KVN och NDM/XML: AEM version 2,0 (och 1,0 i KVN, med dess ATTITUDE_DIR, QUATERNION_TYPE och numeriska rotationssekvenser) med lägestyper för kvaternion, Eulervinklar och spinn och deras derivata-, vinkelhastighets- och nutationsvarianter, flera segment; APM version 2,0 med block för kvaternion, Euler, vinkelhastighet, spinn, tröghet och manöver; A-till-B-kvaternionen för en post (504.0-B-2 bilaga F)
Oberoende referens
Orekit 13.1.8 (Apache-2.0) parsers och skrivare, körda som separat program (xval/adm-orekit), förhandsregistrerade (7a6a05fe) före varje jämförelse: Orekit parsar varje meddelande skrivet av Kshana (14 AEM KVN, 11 AEM XML, 4 APM KVN, 4 APM XML) och varje värde ligger inom sin tröskel (kvaternioner 1e-14, vinklar 1e-9 deg; sämst 0,054 av en tröskel); Kshana parsar de 31 meddelanden som Orekit skriver från samma indata inom varje tröskel; rotationen för var och en av 135 kvaternion-, Euler- och spinnposter är lika med AemSegment.getAngularCoordinates inom 1e-12 (sämst 0,0071 av tröskeln). Alla 15 XML-meddelanden från Kshana valideras mot schemat NDM/XML 4.0.0 (datastyrt, hämtat med fastlåst SHA-256). Fynd: Orekits APM-skrivare vägrar en manöver utan MAN_DELTA_MASS (valfritt i standarden), så APM-manövrar täcks bara i riktningen där Kshana skriver. Utanför fallmängden: AEM 1,0 */RATE-typer och XML, upprepade APM-block
ValidatedCCSDS Orbit Data Messages (OPM, OMM, OCM)odm (OpmMessage,OmmMessage,OcmMessage,Section,OcmBlock),ndm_xml
Förmåga
Skrivare och läsare för CCSDS 502.0-B-3 Orbit Data Messages i KVN och NDM/XML: OPM 3,0 och 2,0 (tillståndsvektor, oskulerande keplerelement, rymdfarkostparametrar, kovarians, manövrar, användardefinierade parametrar), OMM 3,0 och 2,0 (medelelement via medelrörelse eller halv storaxel, TLE-relaterade parametrar med BSTAR eller BTERM och AGOM, kovarians) och OCM 3,0 med bana (CARTP, CARTPV, CARTPVA; absoluta eller relativa epoker), fysikaliska egenskaper, kovarians (CARTP, CARTPV i LTM-ordning), manöver och användardefinierade block; en OMM med full precision från en SGP4-elementuppsättning vid sidan av den oförändrade OmmFile::to_omm_kvn
Oberoende referens
Orekit 13.1.8 (Apache-2.0) parsers och skrivare för OPM, OMM och OCM, körda som separat program (xval/odm-orekit), förhandsregistrerade (cc6841da) före varje jämförelse: 27 av de 30 meddelanden som Kshana skrivit (6 OPM-, 5 OMM- och 5 OCM-fall i KVN, samt XML för version 3,0) parsas i Orekit med varje värde inom 1e-14 relativt och varje epok inom 1e-9 s (904 värden, sämst 0,021 av en tröskel), och Kshana läser alla 25 meddelanden som Orekit skriver tillbaka inom samma trösklar (858 värden, sämst 0,020); alla 14 XML-meddelanden från Kshana valideras mot schemat NDM/XML 4.0.0 (datastyrt). Fynd, fastlåsta, som avgränsar påståendet: Orekit kräver ELEMENT_SET_NO (valfritt i 502.0-B-3), vägrar COMMENT i användardefinierade XML-parametrar (schemat tillåter det), skriver inte BTERM utan BSTAR (så BTERM och AGOM täcks bara i riktningen där Kshana skriver) och lägger relativa OCM-epoker som SI-sekunder, så under TDB skiljer de sig från TDB-kalenderavläsningen med omkring 1.9e-10 s/s (UTC, TAI och TT stämmer). Den äldre utdatan från OmmFile::to_omm_kvn, som omger OMM-metadata med META_START/META_STOP, avvisas av Orekit (noterat). Utanför omfattningen: OCM PERT- och OD-block, elementuppsättningar som inte är kartesiska, andra kovariansordningar
Tester
tests/odm_orekit_oracle.rs (L1 Orekit läser 30 Kshana-filer, L2 Kshana läser 25 Orekit-filer; iakttagelser fastlåsta och verifierade att de återkommer); odm::tests
ValidatedFelbudget för lägesreglering och pekning med 3 frihetsgrader (AOCS)attitude_budget
Förmåga
Gravitationsgradientens störmoment i värsta fall ((3/2)(μ/R³)ΔI) som toppvärdet över lägen (det validated påståendet), plus en RSS-budget för pekfel över namngivna bidrag på 1σ med den dominerande termen (en kvadratsumma av tal som anroparen anger, utanför det validated påståendet). Kan köras från CLI/bindningarna som scenariotypen attitude-budget (scenarios/attitude-budget.toml)
Oberoende referens
Basilisk 2.9.1 GravityGradientEffector (AVSLab, ISC), en oberoende C++-implementation av gravitationsgradientmomentet med fullt tensorvärde: Kshanas topp (3/2)(μ/R³)ΔI är lika med Basilisks moment vid läget 45 deg inom 1e-12 relativt (sämst 2.1e-15) över 5 höjder och 8 tröghetstensorer, och begränsar Basilisks moment över 2000 slumpade lägen per fall; toleransen fastställdes före jämförelsen. Validated påstående: toppen av gravitationsgradientmomentet. RSS-pekbudgeten är en kvadratsumma av tal som anroparen anger, utan extern sanning, och förblir utanför det; den handkodade maximeringen av hela tensorn med Hipparchus finns kvar som stödjande självkonsistens. Ingen simulering av reglerloop/6-DoF/flexibla moder
Tester
attitude_budget::tests (GG-momentet försvinner för en symmetrisk kropp, växer lägre ned, linjärt i ΔI, RSS-kvadratsumma, variansandelarna summerar till 1); tests/attitude_gg_torque_reference.rs (20 fall mot en oberoende…
ValidatedPrediktion av överflygningar för markstation (marksegment)passes
Förmåga
Synlighetspass i tidsdomänen (AOS/TCA/LOS, maximal elevation, varaktighet) för en motorpropagator över en station ovanför en elevationsmask, med interpolerade uppgångs- och nedgångskorsningar och total åtkomst: passes::predict_passes, den geometriska schemaläggaren (ingen refraktion eller ljustid). Scenariotypen passes kör den skenbara prediktorn i raden 'Apparent ground-station pass prediction with refraction and light time'
Oberoende referens
Orekit 12,2 (CS GROUP, Apache-2.0) + Hipparchus 3,1 — ett oberoende bibliotek för flygdynamik: ElevationDetector (Brents rotlösare) + EventsLogger över en ITRF-efemerid, stationen som en WGS-84 TopocentricFrame. AOS/LOS/maximal elevation/antal pass/total åtkomst stämmer på identisk bana + station + mask + fönster (incheckad fixtur; drivrutin xval/orekit-passes)
ValidatedSkenbar prediktion av markstationspass med refraktion och ljustidpasses (predict_passes_apparent,apparent_look_angles,ApparentOptions,p834_tau_s_deg,p834_tau_deg,p834_theta_m_deg,p834_apparent_elevation_deg,PassesScenario)
Förmåga
Synlighetspass (AOS, TCA, LOS, maximal skenbar elevation, varaktighet) för en SGP4-elementuppsättning över en WGS-84-station på den validated jordbanevägen (IAU 2006/2000A, valfria jordorienteringsparametrar), med troposfärisk refraktion enligt ITU-R P.834-9 (ekvationerna 9 till 14, rekommendationens tryckta koefficienter) och nedlänkens ljustid, var och en möjlig att slå på och av; korsningar lösta med bisektion till 1e-7 s och kulminationen med gyllene snittet. Kan köras från CLI/bindningarna som scenariotypen passes (scenarios/passes.toml), båda korrektionerna på som standard
Oberoende referens
Orekit 13.1.8 (CS GROUP, Apache-2.0) med Hipparchus 4.0.3: TLEPropagator på samma elementuppsättningar i en TEME som Orekit bygger enligt den angivna definitionen (dess IERS 2010 TOD roterad med GAST - GMST), ElevationDetector och ElevationExtremumDetector med och utan ITURP834AtmosphericRefraction, samt AngularAzEl med AngularRadioRefractionModifier för ljustidsfallet, korsningar och maximum lösta av Hipparchus; 60 fall (fyra banor, fem stationer på havsnivå, masker 0, 5 och 10 deg, 24 timmar). Trösklar fastställda före körningen (förhandsregistrerad e947e69d, del 3 av 72ea9eb0). Om ljustiden ignoreras (9777 fel) eller P.834-konstanten 1,728 ändras till 1,828 (7883 fel) blir testet rött. Omfattning: stationer på havsnivå; Orekits P.834-koefficient h*theta0^2 är 0,011380 där rekommendationen trycker 0,01380 (fastlåst), så höjder över havsnivån jämförs inte. Omgång 1, mot Orekits standard-TEME enligt IERS 1996, höll varje pasströsklar men missade riktningströskeln med TEME-konventionsgapet på 72 mas (fastlåst)
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)…
ModelledAdaptiv kodning och modulering enligt DVB-S2 längs ett LEO-nedlänkspasscontact_schedule (es_n0_db,select_modcod,fspl_db,atmospheric_loss_db,ccm_modcod,pass_capacity,AcmLinkScenario); passes::predict_passes_apparent
Förmåga
Es/N0 i nedlänken längs varje pass för en satellit över en station (EIRP, fritt rumsdämpning, atmosfärsdämpning enligt cosekantlagen, övriga förluster, G/T, Boltzmanns konstant, symbolhastighet), den mest effektiva MODCOD i DVB-S2 som klarar sin kvasifelfria tröskel i ETSI EN 302 307-1 V1.4.1 tabell 13 plus en implementationsmarginal vid varje steg, passets ACM-datavolym samt baslinjen med konstant kodning som sluter vid masken och längsta avståndet. Kan köras som scenariotypen acm-link. Illustrativa indata; MODELLED.
Oberoende referens
Intern konsistens: spektraleffektiviteten som beräknas i sluten form från tabell 5a K_bch och ramlängderna stämmer med de effektiviteter som tabell 13 anger (en transkriptionskontroll av tröskeltabellen); länkbudgetens delar stämmer med sina slutna former; urvalet är monotont i Es/N0 och respekterar marginalen; ACM flyttar minst lika stor volym som konstant kodning. Passgeometrin kommer från den separat VALIDATED skenbara passprediktorn. VAD SOM INTE GÖRS: inget externt verktyg eller uppmätt länk har jämförts; trösklarna är standardens ideala AWGN-värden, inte ett modems; regnfädning, pekförlust längs passet och piloter modelleras inte.
ModelledSchemaläggning av markkontakter för flera satelliter och flera stationer med konfliktlösningcontact_schedule (conflicts,objective,delivered,schedule_chronological,schedule_greedy,schedule_optimal,ContactScheduleScenario)
Förmåga
Kandidatkontakter från varje pass mellan satellit och station med dess ACM-datavolym; konflikter där en antenn skulle betjäna två satelliter inom sin omställningstid eller en satellit skulle sända ned till två stationer samtidigt; ett prioritetsviktat leveransmål begränsat av varje satellits kö; en lat plan med girig marginalnytta, en baslinje med först-till-kvarn och en exakt branch and bound på upp till 26 kandidater, med den giriga planens optimalitetsgap redovisat. Kan köras som scenariotypen contact-schedule. Illustrativa indata; MODELLED.
Oberoende referens
Intern konsistens: den exakta branch and bound stämmer med uttömmande uppräkning på små slumpmängder, varje plan kontrolleras vara genomförbar mot konfliktreglerna, och den giriga planen slår aldrig det exakta optimumet. VAD SOM INTE GÖRS: ingen extern schemaläggare eller operativ plan har jämförts; kontakter tas hela (ingen delning), kön är fast vid fönstrets början, svängtid utöver den fasta omställningstiden och ombordlagring modelleras inte.
Fri rumsdämpning, C/N₀, Eb/N₀, marginal och sluten länk över länkekvationen i CCSDS 401 / DSN 810-005 för EIRP/G·T/avstånd/hastighet/band mot ett krävt Eb/N₀. Kan köras från CLI/bindningarna som scenariotypen link-budget (scenarios/link-budget.toml)
Oberoende referens
Publicerad designkontrolltabell för telekom i djuprymden som fastlåsta numeriska vektorer: DESCANSO / J. H. Yuen (red.), Deep Space Telecommunications Systems Engineering, JPL Pub 82-76, tabell 1-1 (Galileo X-band) — kshana sätter ihop tabellens delposter och återskapar dess publicerade totala L_fs 290,54 dB och Pr/N0 54,6 dB-Hz; fri rumsdämpning kontrolleras också mot ITU-R P.525
ModelledSparsam inramning av kostnad per täckning / ROIfrugal (over walker)
Förmåga
Kostnad per procent täckning + täckning per euro som ROI över motorn för konstellationsdimensionering; kostnaden per satellit är ett låg/nominellt/högt intervall som anroparen anger källan till (inga påhittade priser)
Oberoende referens
Kostnadsaritmetik i sluten form mot handhärledda värden; en ekonomisk INRAMNING av ett modellerat täckningstal, inte en offert eller en validated kostnadsmodell
Tester
frugal::tests (hand-derived cost-per-coverage 48/96=0.5, ROI ratio 2.667, bracket-ordering + zero-coverage guards)
ModelledIntegritetspåverkan av missad detektering (kontextmedveten HPL/VPL mot larmgräns)integrity_impact (over raim)
Förmåga
Avbildar en oupptäckt spoofing- eller jamming-bias på effektivt fel → Stanford-region (tillgänglig/otillgänglig/MI/HMI) mot kontextspecifika HAL/VAL (öppen himmel mot urban)
Oberoende referens
Sätter ihop den externt validated Stanford-klassificeringen för RAIM (raim::classify_stanford); själva avbildningen från missad detektering till larmgräns är modellerad, inte en certifierad integritetsallokering
Tester
integrity_impact::tests (samma miss växlar Available→MI→HMI när sammanhanget skärps; konservativ PL→Unavailable; HMI per axel; indatagränser)
ModelledParameterblad med citerade felmodeller för CAI (13503)inertial::cai_params (over inertial::quantum_imu)
Förmåga
Intervall (bäst/nominellt/konservativt) för prestanda hos kallatominterferometer — biasinstabilitet, slumpvandring i hastighet/vinkel, skalfaktorstabilitet, avfrågningsbegränsad samplingstakt, dynamiskt område för fringe-tvetydighet — var och en spårbar till en referens; matar QuantumNavBudget utan att modellera hårdvara
Oberoende referens
Intern konsistens: det citerade VRW-intervallet korskontrollerat mot fysiken i CaiAccelerometer::accel_asd + råa dynamiska området beräknat från gränsen för fringe-tvetydighet; talen är MODELLED intervall från en litteraturgenomgång (needs_source_confirmation), ingen enhet validated, ingen validerings-gloria
Tester
inertial::cai_params::tests (fysikalisk VRW hamnar inom det citerade VRW-intervallet på alla 3 nivåer; rått franstvetydighetsområde beräknat ur k_eff·T²; konservativ budget driftar mer än bästa; varje intervall har källa +…
ModelledBenchmark för tidsintegritet — epokklassificerare med Stanford-integritetsdiagramsrc/benchmark/stanford.rs
Förmåga
Epokklassificering med TIB Stanford-integritetsdiagram (nominell / otillgänglig / MI / HMI)
Oberoende referens
Oberoende numpy-omimplementation av regeln med fyra regioner (scripts/gen_tib_scorer_reference.py) på samma urval; metod Cited från Stanford–ESA-integritetsdiagrammet (Tossaint et al., ION GNSS 2007) och RTCA DO-229 WAAS MOPS. INTE en ExternalDataset-noggrannhetsreferens — benchmarken är immun mot ärlighetsproblem (honesty-immune).
Tester
src/benchmark/stanford.rs::tests (fyra regioner + inklusiva gränser + |fel| + PL>AL otillgänglighet); tests/tib_scorer_reference.rs (klassificeringsantal mot oberoende numpy på en fast syntetisk mängd)
ModelledBenchmark för tidsintegritet — poängsättare för integritetstäckningsrc/benchmark/coverage.rs
Förmåga
Poängsättning av TIB-integritetstäckning (andel HMI/MI/tillgänglighet + utlåtande om överskridande täckning)
Oberoende referens
Oberoende numpy-omräkning av regioner i tests/fixtures/tib/reference.json; endast korskontroll av poängsättarens maskineri, inget noggrannhetspåstående.
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)
ModelledBenchmark för tidsintegritet — felkatalog (parametriska generatorer)src/benchmark/faults.rs
Representativa parametriska felgeneratorer (Modelled); den icke detekterbara mängden (symmetrisk fördröjning, replay inom färskhet) är Cited från Mizrahi RFC 7384 och Narula & Humphreys (IEEE JSTSP 2018). Ingen extern oberoende referens — en felkatalog gör inget uppmätt påstående.
ModelledBenchmark för tidsintegritet — utlåtande om absorption av icke detekterbara felsrc/benchmark/scorecard.rs
Förmåga
TIB-utlåtande om absorption av icke detekterbara fel (symmetriska/replay måste absorberas av PL, aldrig rapporteras som detekterade)
Oberoende referens
Egenskapskontroll att enumen Verdict strukturellt inte kan rapportera ett icke detekterbart fel som detekterat (Mizrahi RFC 7384); absorberat ⟺ PL ≥ offset. Ingen noggrannhetsreferens.
Tester
src/benchmark/scorecard.rs::tests (referens-PL absorberar; trasig PL oabsorberad-aldrig-detekterad; utfall för detekterbar täckning; ärlighetsegenskapen att inget utfall för täckning/detektion kan nås för en odetekterbar…
Partner-ownedIngenjörsarbete för rymdfarkostbuss (AOCS/termik/strukturer/framdrivning/effekt)
Förmåga
Tillhandahålls inte — Kshana är en simulator för navigeringsprestanda, inte en bussleverantör
Oberoende referens
Ingen: märkt Partnerägd
Tester
Partner-ownedHårdvaruutformning av navigations-RF-nyttolast och antenn
Förmåga
Tillhandahålls inte — Kshana modellerar signalprestanda, inte hårdvara för nyttolast eller antenn
Oberoende referens
Ingen: märkt Partnerägd
Tester
Partner-ownedHårdvaruutformning och mognadsutveckling av kvantnyttolast
Förmåga
Tillhandahålls inte — endast prestandamodeller; hårdvara för kallatomer och klockor är en partners
Oberoende referens
Ingen: märkt Partnerägd
Tester
Partner-ownedProduktförsäkran för flygburen hårdvara (strålning/EEE/MAIT)
Förmåga
Tillhandahålls inte — Kshana behandlar bara PA för programvara; PA för flygburen hårdvara är en partners
Ashby & Patla 2024, 'A Relativistic Framework to Estimate Clock Rates on the Moon', Astronomical Journal 167:149 (NIST; grund för IAU/IAG LunaNet LTC): Månens ytpotential L_m = 3.13881e-11 och sekulär totalsumma 56,02 µs/dygn stämmer som publicerade numeriska värden; geocentrisk månhastighet korskontrollerad 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)
ModelledSjälvbeskrivning i rapporten för hybrid optisk/RFhybrid_integrity
Förmåga
Rapporten hybrid-optical-rf anger den länkkonfiguration den faktiskt kördes med (bärvågens våglängd, sändar- och mottagarapertur, avstånd, pulsbredd, integrationstid, verkningsgrader och förluster, standardvärden uppslagna) och bär ett enhetsblock som anger enhet och proveniensklass för varje storhet som en artikel sannolikt citerar, inklusive spåren av överlämningskovariansen i kvadratmeter
Oberoende referens
Ingen extern oberoende referens, och ingen är möjlig: detta är självbeskrivning, inte en mätning. Det registreras eftersom avsaknaden av det var en brist -- P5 var tvungen att citera bärvågens våglängd och sändarapertur från källkodens standardvärden, och att sluta sig till att en bar variance var i kvadratmeter utifrån en intern konsistenskontroll. Slutsatsen var riktig, vilket är precis varför det spelade roll: ingenting hade fångat om den varit fel
Tester
hybrid_integrity::tests (den lösta konfigurationen ekas för standardvärden och för åsidosättanden, utan att våglängden rundtur genom meter; varje units-post bär både en enhet och en proveniensklass; varje…
ModelledTillgänglighet för hybridlänk optisk/RF på RF-sidanhybrid_integrity,linkbudget,jamming
Förmåga
Rapporten hybrid-optical-rf anger en RF-länktillgänglighet, sammansatt av storheter som motorn redan beräknar snarare än av en importerad klimatologi, och anger sammansättningen som en namngiven regel: A_rf = I_closure * I_track, där I_closure är utlåtandet om sluten länk för den enkelriktade länkbudgeten enligt CCSDS-401 / DSN-810-005 (linkbudget::link_budget, Eb/N0-marginal >= 0) vid scenariots eget avstånd och I_track är utlåtandet för följningsloopen (jamming::lock_status) på det C/N0 som SAMMA budget gav. Varje faktor för sin indatas proveniensklass vidare till utdata, och de faktorer som avsiktligt INTE ingår i produkten -- geometrisk synlighet, störningsblockering och en klimatologi för RF-avbrott -- namnges med skälet i stället för att tyst sättas till 1. Det uppslagna RF-ledet återges som ett eget block rf_link_configuration, och de kontinuerliga talen bredvid indikatorn (länkmarginal, C/N0-marginal, de slutna formerna för sluten länk och följningsavstånd samt avståndsutnyttjandet) är avståndsinversioner av samma budget. Rapporten anger fullt ut, på blocket och i den enhetspost som en läsare hamnar på, att detta tal är MARGINAL-/GEOMETRIBEGRÄNSAT och DETERMINISTISKT medan optisk tillgänglighet är VÄDER-/KLIMATOLOGIBEGRÄNSAD och probabilistisk, så att de två aldrig kan citeras som ett jämförbart par av procenttal
Oberoende referens
Ingen extern oberoende referens, och ExternalDataset avstås från. De två indata är en Eb/N0-marginal och en C/N0-tröskelkorsning, båda funktioner av en MODELLED EIRP, kvalitetsmått och sammanlagd förlustallokering; det finns ingen uppmätt tillgänglighetspost för en hybridtjänst optisk/RF mellan Jorden och Månen att kontrollera det sammansatta talet mot. De kontroller som finns är interna och anges som sådana: sammansättningen räknas om från rapportens egna publicerade marginaler snarare än från sändarens interna delar, och länkens slutningsavstånd kontrolleras genom att länkekvationen körs om VID det och kräva att marginalen försvinner -- en rundtursinversion, inte en oberoende implementation. Talets ärliga gräns är noterad på själva rapporten: det är en deterministisk 0/1-indikator, inte en sannolikhet, eftersom ingenting i den här motorn mäter en fördelning av RF-länkavbrott på det här bandet och den här geometrin. Den saknade indatan namnges i rf_availability.factors_not_included i stället för att hittas på, och att tillhandahålla den är vad en probabilistisk RF-tillgänglighet skulle kräva
Tester
hybrid_integrity::tests (tillgängligheten är lika med produkten av de två indikatorerna omräknad ur rapportens egna marginaler, och dessa marginaler är själva återmonterade ur rapportens egen EIRP, fritt-rymd-förlust…
ModelledJämförelse mellan optisk och RF-avståndsmätning på lika villkorhybrid_integrity,optical_linkbudget,linkbudget,navsignal
Förmåga
Rapporten hybrid-optical-rf ger kvoten mellan optisk och RF-avståndsmätning med den ENA konfiguration som båda leden utvärderades vid i samma objekt: samma enkelriktade väg, samma avstånd och samma ackumuleringstid. Det optiska ledet är motorns fotonbegränsade ToA-CRLB på det enkelriktade fotonantalet; RF-ledet är motorns termiska kodföljningsjitter för DLL med tidig-sen-korrelator vid det C/N0 som motorns egen länkbudget ger för samma enkelriktade avstånd. Loopens brusbandbredd är härledd, inte vald: B_L = 1/(2*integration_s) lägger RF-ledet på exakt den optiska ackumuleringstiden, och om en anropare åsidosätter den så att de två medelvärdestiderna skiljer sig åt blir kvoten REFUSED -- null, med avvikelsen och båda tiderna namngivna -- i stället för att anges vid två arbetspunkter. Ingen kvot bildas mot scenariots VALDA parametriska rf_position_sigma_m, och avvisningen anger varför: den indatan bär ingen konfiguration alls. Den publicerade tvåvägs optiska huvudsiffran och den exakta faktorn som överbryggar den till jämförelseledet för enkelriktad väg ges bredvid kvoten, så rapporten inte kan läsas som om den bär två oense optiska sigma
Oberoende referens
Ingen extern oberoende referens för KVOTEN, och ExternalDataset avstås från avsiktligt. Den underliggande RF-kedjan har en -- tests/validate_p5_rf_ranging_precision.rs kontrollerar linkbudget::link_budget och navsignal::dll_code_jitter_chips mot en oberoende Python/NumPy-fixtur och mot det hårdkodade värdet i Kaplan & Hegartys genomräknade exempel (2.814e-3 chip / 0,825 m vid 45 dB-Hz) -- och den optiska CRLB har sin egen rad i sluten form. Att göra anspråk på någon av dessa förankringar för den här raden vore lånad validering, vilket matrisens invarianter finns för att förhindra: storheten här är en KVOT vid en konfiguration med en MODELLED EIRP, kvalitetsmått, sändareffekt och apertur, och ingen uppmätt jämförelse mellan optisk och RF-avståndsmätning vid en gemensam arbetspunkt finns att kontrollera den mot. Det som kontrolleras internt är det som kvoten faktiskt kan få fel: att de två leden ligger vid en och samma arbetspunkt. Det mäts genom att skala den gemensamma ackumuleringstiden och kräva att båda leden rör sig enligt samma kvadratrotslag och att kvoten ligger still, och det upprätthålls genom att kvoten avvisas helt när medelvärdestiderna skiljer sig åt. Båda leden är gränser för termiskt brus/skottbrus och båda utesluter mediafördröjning, klockfel och tvetydighet, så uteslutningen är identisk på båda sidor; rapporten säger det i stället för att lämna det åt slutledning
Tester
hybrid_integrity::tests (kvoten är lika med de två utsända benen dividerade, till 1e-15 relativt, och dess reciproka och decibelformer stämmer överens; varje bens avstånds- och tidssigma förhåller sig exakt som c; den utsända gemensamma…
ModelledSjälvbeskrivning i länkbudgetrapportenlinkbudget
Förmåga
Länkbudgetrapporten anger varje absolut konstant som dess egen marginal beräknades från -- den bärfrekvens som den fria rumsdämpningen använde, EIRP, kvalitetsmåttet, den sammanlagda förlusten och Boltzmann-termen -- plus det G/T som krävs där marginalen är noll, länkkonstanten (EIRP - förluster - krävt Eb/N0) som är den enda kombination som en publicerad tabell över hastighet och förstärkning någonsin kan fastlåsa, och, när en anropare anger en systembrustemperatur, den mottagarantennförstärkning som det kvalitetsmåttet innebär
Oberoende referens
Ingen extern oberoende referens: detta är självbeskrivning över en ekvation som redan är validerad mot en publicerad designkontrolltabell (se raden för enkelriktad länkbudget). Det registreras eftersom avsaknaden av det var ett uppmätt fel -- att återskapa den publicerade d1_rate_gain_beamwidth.csv krävde att en effektiv konstant löstes baklänges till 0,0034 dB utifrån alla trettio rader, och motorn både namnger nu den kombinationen och bevisar genom test att ingen publicerad tabell någonsin kunde ha skilt dess tre komponenter åt
Tester
linkbudget::tests (över tre band, fyra dekader av avstånd och båda utfallen för slutenhet räknas marginalen och fritt-rymd-förlusten under den om ur rapporten ensam till bättre än 1e-9 dB; det krävda G/T…
ModelledTabell över skärningspunkter för lunar tid per klockklasslunar_time_budget
Förmåga
En körning av lunar tidsbudget ger en rad för skärningspunkten mellan klocka och referenssystem per klockklass mot en enda delad systemterm, så att klockan är den enda variabeln i jämförelsen; varje rad bär skärningspunkten nådd på två sätt -- bisekterad ur den allmänna potenslagskurvan för tidsfel och inverterad algebraiskt ur radens dominerande brustyp -- med den relativa skillnaden mellan dem
Oberoende referens
Två olika beräkningar i samma kodbas av samma storhet, inte en som upprepas: bisektion på IEEE-1139-potenslagskurvan vet ingenting om brustyp, medan den slutna formen inverterar den dominerande typen algebraiskt, så en felklassad brustyp eller ett dåligt intervall syns som en inte obetydlig relativ skillnad. De fyra värdena återskapar också artikelns publicerade tabell till hälften av dess sista tryckta siffra -- men den tabellen rekonstruerades själv ur samma slutna form, så det är en reproducerbarhetskontroll och inte en extern oberoende referens, och systemtermen den mäts mot är en Modelled allokering
Tester
lunar_time_budget::tests och lunar_time_budget_scenario::tests (alla fyra klasser närvarande i en körning och i en begärd delmängdsordning; varje rad stämmer med sin egen slutna form till bättre än 1e-12 relativt; skalning av…
ValidatedGemensamt UT1- och polrörelsefel över en gemensam radmängdframe_eop,realtime_frame_eop
Förmåga
En tabell redovisar UT1-prediktionsfelet, polfelet för polrörelsen och deras kvadratiska kombination vid Månen över en IDENTISK epokmängd per horisont och ger de epoker som varje komponent mättes vid. Separat anger scenariot vilken EOP-indata som gäller och bryter ned dess radräkning, och ger alltid tabellen över prediktion mot slutlig horisont med ett uttryckligt påstående om varför den är tom när den är det
Oberoende referens
astropy 8.0.1 utils.iers (BSD-3) som läser produkten IERS finals2000A med sin egen regel Bulletin-B-annars-A, och pyerfa 2.0.1.5 (SOFA) fullständiga rotationer från himmelskt till terrestriskt system (c2i06a, sp00, pom00, c2tcio; jordrotationsvinkeln enligt IERS 2010 ekv. 5,15 i exakt aritmetik), körda som separata program på ordagranna rader ur den frysta finals2000A.all från 2026-09-30; förhandsregistrerad (455b8fb5) med ändringarna A1 och A2 som endast fastställde de oberoende referensernas numeriska precision (båda redovisade med de körningar de följde efter): varje epoklista i tabell 3 lika, UT1- och polstatistik inom 6e-16, kombinationen inom 1.9e-7, 12/12 fall med prediktion mot slutlig. Kombinationskontrollen kan inte upplösa polfel under omkring 1e-4 relativt eftersom UT1 dominerar den; polens noggrannhet vilar på polstatistikkontrollen vid 1e-9. Reglerna för epokmängd och reserv är generatorn som speglar Kshanas definitioner, och statusen för tomma tabeller är utformningsbeteende utan extern sanning. Storleksordningar: IERS Annual Report 2019 tabell 3a realiserade prediktionsfel, Kshana/IERS 1,001 till 1,100 vid 1 till 90 dygn (tröskel [0,8, 1,25], Measured). Radräkning: astropy (rad med offlineindata). Omgång 1 (behållen som regressionstest): mot noggrannhetsformeln tryckt i 178 utgåvor av Bulletin A stämmer polen inom 1.5x och UT1 gör det inte, vilket prövar IERS-formeln mot dess realiserade fel
Tester
frame_eop::tests och realtime_frame_eop::tests (alla tre komponenter bär lika, elementvis identiska, strikt stigande epokmängder över båda verkliga IERS-utdragen; den gemensamma mängden kollapsar till snittet när…
ValidatedStandardindata för jordorientering offline är en verklig IERS-produktrealtime_frame_eop,eop
Förmåga
Standardvärdet vid körning för realtime-frame-eop är bibliotekets egen inbäddade kopia av ett ordagrant utdrag ur IERS finals2000A (tools/finals2000A_20260930.txt: 174 konsekutiva dagliga rader, MJD 61224-61397, utskurna ur finals2000A.all från 2026-09-30) som bär alla tre radvintager som formatet definierar, klassificerade med IERS I/P-flaggorna (eop::row_vintage): 30 slutliga Bulletin B, 54 snabba uppmätta rader (flagga I utan Bulletin B-block) och 90 prediktioner i Bulletin A (flagga P). En bar körning utan filargument och utan nätverk ger en ifylld tabell per horisont, räkningen rader = final_rows + rapid_rows + prediction_rows (174 = 30 + 54 + 90) och predicted_rows.n = 90 över MJD 61308-61397; gränsen vid utfärdandet för jämförelserna prediktion mot slutlig är den sista uppmätta raden. Det tidigare utdraget med 32 rader (tools/finals2000A_2026.txt, varje rad med flagga I) och utdraget med fem rader och enbart slutliga värden följer fortfarande med och används: på dem är predicted_rows.n 0, en egenskap hos indatafilen och inte ett parserresultat
Oberoende referens
astropy 8.0.1 astropy.utils.iers.IERS_A (BSD-3-Clause), som läser samma byte med sin egen läsare, och tabellen i IERS Bulletin A Vol. XXXIX nr 039, kopierad siffra för siffra; förhandsregistrerad (6fdae01b) med sex exakta kriterier innan astropy kördes. Alla sex håller: 30 slutliga, 54 snabba och 90 predicerade rader med lika MJD-listor, varje predicerad rad med flagga P, räkningen vid standardkörning lika, och prediktionerna lika med Bulletin A inom den sista tryckta siffran. Redovisat: utskärningen valdes med en vanlig kolumnskärning av flaggorna och Bulletin B-blocket, som visade 30/54/90, före committen; utdraget är en ordagrann skiva som det här förrådet skar ur en IERS-produkt (SHA-256 i fixturens NOTICE). Det validated påståendet är vintageklassificeringen och räkningen för den medföljande standardindatan och dess predicerade rader; godtyckliga användarindata klassificeras med samma flaggregel men ingår inte i jämförelsen. Omgång 1 för 0,30 (ersatt): den tidigare standarden kallade 12 rader med flagga I för prediktioner i Bulletin A; motorn klassificerar nu efter flagga. REVISIONER: de celler vid standardkörning som flyttats anges från gammalt till nytt i docs/revisions/M035-default-eop-recut-cell-changes.md (predicted_rows 12 -> 90, polgolvet 0,06776 -> 0,05550 mas, jordorienteringstermen 14,01601 -> 14,01583 m, totalen 20,09759 -> 20,09746 m och 67,03834 -> 67,03790 ns, raderna i tabell 2 i tests/golden/realtime-frame-eop.csv och siffrorna för hur väl den operativa prediktorn stämmer); tidigare 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 (sex exakta kriterier: utdragets bytes; 174 rader; antal per årgång och fullständiga MJD-listor…
ModelledFångstfotavtryck mot höjd och strålbreddantenna
Förmåga
Svep i två axlar av det mönstervägda, höjdbegränsade fångstfotavtrycket vid ytan över sändarens höjd och parabolens diameter, utsänt som en rad per arbetspunkt med den halveffektsstrålbredd som varje diameter innebär, och limbfångst redovisad som en TRÖSKEL -- per rad limbens J/S, dess marginal och den sändareffekt som skulle sluta den; per raster de lokaliserade korsningarna, eller ett uttryckligt påstående att limben inte nås någonstans på rastret, med underskottet
Oberoende referens
Mängdinklusion: förhållandet mellan störare och signal går in som en likformig förskjutning i decibel, så den fångade mängden vid högre sändareffekt innehåller mängden vid lägre och andelen kan bara stiga -- en egenskap som Airy-mönstret INTE ger i strålbredd eller höjd, där den fångade regionen bryts upp i ringar och andelen verkligen är icke-monoton. Ingen publicerad tabell anger den fångade skivandelen för en lunar omloppssändare mot höjd och strålbredd, så det finns inget externt att kontrollera dessa celler mot; mönstret under är separat Validated mot publicerade Besselvärden och behåller sin egen rad
Tester
antenna::tests och attack_surface::tests (rutnätet är fullständigt och varje fångad andel ligger i [0 1]; fångad andel är icke-avtagande i sändeffekt vid varje nod; den är INTE monoton i strålbredd eller…
ModelledReproducerbarhet för lunar tidsfelsbudgetlunar_time_budget_scenario
Förmåga
Scenariot lunar-time-budget publicerar sina matrisvärderade utdata som en tabell i långt format (rasterindex, medelvärdestid, term) vid sidan av rapporten, så att de sju kurvorna x(tau) per term och kvadratsumman av totalen är motorutdata snarare än något en läsare återbygger ur metodavsnittet
Oberoende referens
Endast självkonsistens: den publicerade totalen kontrolleras mot kvadratsumman av termerna i samma fil, och den utsända kurvan återskapar den publicerade p3_time_budget_curve.csv över alla 57 punkter. Båda kontrollerna delar den här motorns egna termdefinitioner, så ingen av dem är oberoende. Klocktermen vilar på publicerade klockspecifikationer, men STORLEKARNA på golven för länk, referenssystem, relativitet och efemerid är dokumenterade budgetallokeringar utan extern oberoende referens
Tester
lunar_time_budget_scenario::tests (alla 57 medelvärdestider x 8 termer närvarande, rutnätsindex går 0..=56 och bär 8 rader vardera; totalraden är lika med kvadratroten ur kvadratsumman av de sju termerna bredvid vid varje tau; den…
ModelledLunar stationstidslaboratorium: holdover för miniRAFS mot LTClunar_time_lab (over clock_specs,lunar_time_budget,lunar_time)
Förmåga
Det valfria blocket [time_lab] i scenariot lunar-time-budget modellerar en lunar referensstationsklocka (som standard klassen miniRAFS, eller någon namngiven klass, eller ett enhetskort anpassat till angivna stabilitetspunkter) styrd mot Coordinated Lunar Time och sedan fritt löpande eller omstyrd var N:e sekund: tidsfelskurvan x(t) som kvadratsumman av klockans potenslagsterm, en konstant styrrest (ILLUSTRATIVE), en konstant realiseringsrest för LTC och en frivillig term för stationshöjdens gång; tiden efter en styrning till 1, 10 och 100 ns (eller angivna trösklar) med bisektion bredvid den slutna inversen för den dominerande brustypen, och den dominerande termen vid varje angiven horisont, alla med enheter
Oberoende referens
Endast intern konsistens: den bisekterade tiden till tröskel kontrolleras mot den slutna inversen för klockans dominerande brustyp, och den fritt löpande klocktermen mot budgetens egen klockterm. Klockklasserna vilar på publicerade endagsspecifikationer (deras egna rader); LTC-gången härleds inte på nytt här och behåller sin egen VALIDATED rad (Lunar coordinate time); styrresten är ILLUSTRATIVE, realiseringsresten är en budgetallokering och ingen termisk modell ingår. Målet på nanosekundnivå som beskrivs i materialet om Lunar PNT från ICG WG-B i juni 2024 citeras som ett källpåstående, inte antaget som ett påstående; inget här är ett påstående om någon verklig stationsklocka
Tester
lunar_time_lab::tests (free_run_clock_term_is_the_budget_clock_term: med styrning av är klocktermen lika med budgetens klockterm till biten för alla fyra klasser; bisection_matches_the_closed_form inom 1e-9…
ModelledLunar geodetisk VLBIlunar_vlbi
Förmåga
Närfälts-VLBI-fördröjning för en jordbaslinje som observerar en lunar beacon + partialer
Oberoende referens
Plan-vågs delta_dor (samma kodbas) i fjärrfältsgränsen; partialer med finita differenser. Extern jämförelse 0,30, ett fynd (förblir MODELLED): mot konvergerade ljustider i ANISE 0,10 genom DE440 (75 fördröjningar 2024-01-01 över tre DSN-baslinjer, genererade av xval/anise-lunar-od utan Kshana-kod) ligger ingen fördröjning inom toleransen 1 ps. Det största gapet är 24 µs, från den analytiska månmittpunkten (omkring 200 km från DE440), den enda ögonblicksgeometrin utan ljustidsiteration (3,6 µs) och den utelämnade polrörelsen; beaconpartialer skiljer sig med upp till 2.9e-3 relativt mot 1e-6. Påståendet i modulens dokumentation att systemapproximationerna ligger under modellens noggrannhet håller inte på den här nivån. Omgång 2 för 0,30: kärnvägen (lunar_vlbi::KernelGeometry) är validated mot NAIF SPICE-ljustider i sin egen rad, Lunar geodetic VLBI, kernel path; ANISE-jämförelsen av den vägen (75/75 inom 1 ps, sämst 0,12 ps, tests/lunar_vlbi_anise_oracle.rs::kernel_delay_matches_the_anise_light_time_difference) är enbart en korskontroll av kärnutvärdering, eftersom ljustidslösningen i den selen är projektets egen. Den här raden (den analytiska standardvägen) förblir MODELLED med fyndet ovan
Närfälts-VLBI-fördröjning för en jordbaslinje som observerar en lunar beacon, med partialer för beacon och station, på kärnvägen (lunar_vlbi::KernelGeometry): DE440 för Jorden och Månen, DE440 lunara huvudaxlar, ITRF93-jordorientering med UT1 och polrörelse, varje ljustid konvergerad i det barycentriska systemet, partialer med ljustidsfaktorn 1/(c - u.V). Kan köras som scenariot lunar-vlbi med planetary_kernel_path, earth_orientation_kernel_path och moon_orientation_kernel_path satta; de validated utdata är serien geometric_delay_s på kärnvägen och epoch_partials. På kärnvägen lägger delay_s till den analytiska differentierade Shapiro-termen, som inte jämförs, och delay_rate och near_field_correction_us jämförs inte
Oberoende referens
NAIF SPICE Toolkit N0067 (spiceypy 8.2.0, MIT) konvergerade newtonska ljustider (spkcpt/spkcpo, CN) från en beacon fast i MOON_PA_DE440 till DSN-stationerna DSS-14, DSS-43 och DSS-63 från NAIF:s stationskärna earthstns_itrf93_260814.bsp, med de440s, moon_pa_de440_200625, moon_de440_250416.tf, earth_latest_high_prec och naif0012; partialer är fempunkts centrala differenser av SPICE-ljustider, inte Kshanas formel 1/(c - u.V). Förhandsregistrerad (a689c797, 2024 epoker) med trösklar på 1 ps för varje fördröjning och 1e-6 relativt för varje partial. Den första körningen misslyckades (17/75 fördröjningar inom 1 ps, sämst 1.03e-11 s): SPICE bär ET som ett enda dubbelt tal, vars avstånd vid 2024 avrundar emissionsepoken med upp till 6e-8 s, omkring 6 ps ljustid, och resten stämmer med den avrundningen vid korrelationen 0,99999 (fastlåst; granskaren återskapade den oberoende). Ändringen 66e365d4, skriven efter det resultatet och innan dess fixtur fanns, flyttade samma oberoende referens och trösklar till 25 timvisa epoker nära J2000, där ET-avståndet är högst 1.5e-11 s: 75/75 fördröjningar inom 1 ps (sämst 6.2e-14 s), 75/75 beaconpartialer (sämst 7.4e-9), 150/150 stationspartialer (sämst 3.8e-11). Utanför påståendet: den analytiska standardvägen (serie för Månen och medelvärdet av lunart system, 24 µs från ANISE genom DE440, raden Lunar geodetic VLBI), den differentierade Shapiro-termen som scenariot lägger till analytiskt, media och skalan mellan barycentriskt och geocentriskt
Tester
tests/lunar_vlbi_spice_oracle.rs::kernel_delay_and_partials_match_spice_light_times_near_j2000 (75 fördröjningar vid 25 epoker nära J2000 över DSS-14, DSS-43 och DSS-63: fördröjningar inom 1 ps, sämst 0,06 ps; kroppsfast beacon…
ValidatedNAIF-kärnläsare: DAF-behållare, SPK typ 2 och binär PCK typ 2naif_kernel (DafFile,SpkKernel,PckKernel); ephem_provider (KernelEphemeris)
Förmåga
Motorns egen rena Rust-läsare för binära NAIF-kärnor (naif_kernel): DAF-behållaren (båda byteordningarna, länkade sammanfattningsposter), SPK typ 2-segment med Chebyshev-position kedjade genom sina centra till en lägsta gemensam förfader, och binära PCK typ 2-segment med Eulervinklar omvandlade till en rotation från J2000 till kroppen, med epoker tagna som tvådelad ET så att en förskjutning under en mikrosekund behåller sin precision. Det är vad KernelEphemeris (ephem_provider) och kärnvägarna i lunar_vlbi, lunar_llr och lunar_vlbi_fim läser DE440 genom. Påståendet är att den läser JPL-kärnor korrekt; det är inte ett påstående att DE440, eller motorns analytiska sol- och månserier, är noggranna
Oberoende referens
Två oberoende kärnläsare på samma NAIF-filer: NAIF SPICE Toolkit N0067 (CSPICE via spiceypy 8.2.0, MIT; spkezr och pxform) och ANISE 0.10.6 (Nyx Space, MPL-2.0; Almanac.translate och Almanac.rotate), båda körda som separata program på de440s.bsp och moon_pa_de440_200625.bpc. Förhandsregistrerad (abcd9133) innan någon fixtur eller något värde från de oberoende referenserna fanns: rasterfröet är de första 16 hexsiffrorna i den commitens hash, så varken de 200 epokerna eller kroppsparen kunde väljas med resultatet i sikte; varje epok bär också Månen och Solen relativt Jorden. Trösklar fastställda i förväg utifrån Chebyshev-utvärdering med dubbel precision (högst 15 koefficienter, n^2 u = 2.5e-14 per utvärdering, två utvärderingar och upp till två hopp per sida): position 1e-13 R + 1e-5 m, hastighet 1e-13 V + 1e-10 m/s, R och V den större storleken relativt den lägsta gemensamma förfadern; rotationselement 1e-13 W + 1e-15, W koefficientsumman för den täckande posten; ANISE lägger till 2 ns relativ rörelse för sina nanosekundsepoker. Resultat: vart och ett av 600 tillstånd och 200 rotationer ligger inom sin tröskel mot båda oberoende referenserna, på de utskurna och på de fullständiga kärnorna; sämst 6.0e-3 av tröskeln (position), 5.9e-3 (hastighet), 3.7e-3 (rotation). Mutation: att utvärdera varje post vid -s ger 3597 misslyckade jämförelser. Redovisat: en tidigare kontroll med 25 epoker mot SPICE (4.6e-5 m, tests/naif_kernel_reader_check.rs) sågs före den här raden och är inte dess belägg; fixturgeneratorns första körning avbröts på ett tomt rasterintervall innan något värde producerats och rättades. Båda sidor läser DE440, så överensstämmelsen validerar läsaren, inte efemeriden
Tester
tests/naif_reader_spice_oracle.rs::reader_matches_spice_and_anise_on_the_post_registration_grid (600 de440s.bsp-tillstånd och 200 MOON_PA_DE440-rotationer vid 200 epoker 1849-2150 och slumpmässiga kroppspar dragna ur…
ModelledEarth-GNSS på lunart avståndearth_gnss_lunar
Förmåga
Mottagning av Earth-GNSS på lunart avstånd: det svagsignalslager som P7 tabell 1 nämner och som motorn saknade modell för. Per satellit och per epok beräknar den vinkeln från siktlinjens axel mot sändarens nadir, om Jorden skymmer den raka vägen, det sneda avståndet och dess fria rumsdämpning, sändarförstärkningen vid den vinkeln, den mottagna effekten och bärvåg-till-brus-densiteten; därefter aggregerar den bara länkarna som klarar en följningströskel, och sveper ett helt konstellationsvarv så att svaret blir en FÖRDELNING snarare än en ögonblicksbild. Tre fakta driver resultatet och rapporten anger var och en: Jorden spänner 13,90 deg från konstellationsradien så att strålens TOPP är geometriskt otillgänglig för varje stråle på väg mot Månen; det som återstår är huvudlobens kant och sidolober, det regim som LuGRE arbetade i vid Månen 2025; och L1-vägförlusten är omkring 208 dB, ungefär 25 dB mer än en markbunden användare betalar. MEASURED på den medföljande GPS-klassgeometrin med 24 satelliter över 64 epoker under en omloppsperiod: SIGNALtillgänglighet 0,375 med en bästa länk på 30,93 dB-Hz, och tillgänglighet för positionsbestämning 0,000 - högst två samtidigt följbara länkar, aldrig de fyra som en position behöver. Skillnaden mellan de två tillgänglighetstalen är poängen, och rapporten tillåter inte att de förväxlas: Earth-GNSS på lunart avstånd är ett lager av TIDSKVALITET, inte positionskvalitet, och ett prior för skiktad motståndskraft måste ta tillgängligheten för positionsbestämning. Konditioneringen ges av samma skäl - varje synlig satellit ligger inom en kon några grader bred sedd från Månen, så siktlinjerna är nästan parallella av konstruktion. Kan köras som typen earth-gnss-lunar Omformulerat enligt D7: påståendet på lunart avstånd är den RELATIVA bärvåg-till-brus-densiteten mellan satelliter vid en epok, från uppmätta tvådimensionella sändarmönster (NAVCEN Block IIR/IIR-M), plus geometrisk synlighet; absolut C/N0 påstås inte (Parker et al. redovisar en gemensam förlust på 7 till 12 dB).
Oberoende referens
Identiteter i sluten form och intern konsistens; INGEN extern oberoende referens görs gällande. Limbens halvvinkel kontrolleras mot asin(R_earth/r_orbit) och geometrin mot den; den fria rumsdämpningen, DOP-kärnan och SGP4-propageringen som detta sätter ihop är var och en externt validerade i sina egna rader och den här raden lånar inte deras status. VARFÖR MODELLED, och det är sändarmönstret: förstärkningen vid vinkel är en likformigt belyst cirkulär apertur, Airy-mönstret, medan en verklig GPS L1-antenn är en spiralgrupp med tolv element och en formad huvudlob med topp utanför axeln för att jämna ut effekten över jordskivan och sidolober som inte är Airy. Publicerade uppmätta mönster finns och är inte medföljande här, så ordning och storleksordningar bär, medan dB för en enskild satellit inte gör det. EN FÖRSTA IMPLEMENTATION AV DEN HÄR RADEN VAR FEL PÅ ETT SÄTT SOM ÄR VÄRT ATT NOTERA: Airy-uttrycket gäller bara i framåthalvklotet, dess argument går som sin(theta), och vid theta nära 180 deg viker det runt och ger FULL FÖRSTÄRKNING I SIKTLINJEN bakom aperturen - så de två starkaste länkarna i den första rapporten var satelliter som riktade sina antenner bort från Månen, och de var de enda två som klarade tröskeln. Bakom aperturen tillämpar modellen nu ett platt golv för bakloben, angivet som en gräns snarare än en påhittad mönsterform. Avsiktligt frånvarande, var och en gör budgeten OPTIMISTISK: ingen jonosfärisk eller troposfärisk förlust på de limbstrykande strålarna, ingen polarisations-, pek- eller implementationsförlust, och en sfärisk Jord utan refraktiv utvidgning. Månens position är en INDATA, inte ett efemeriduppslag, eftersom storheten som testas är länken och stråle-geometrin. Att höja den här raden till Validated kräver ett uppmätt sändarmönster och LuGRE-normalpunkter att kontrollera mot; ingetdera finns i förrådet och ingetdera hittas på här. Omgång 2 för 0,30, ett fynd (förblir MODELLED): en länkväg med uppmätta indata (verkliga SP3-positioner, sändareffekt per block, tabellerade sändar- och mottagarmönster, hysteres för förvärv och följning) kontrollerades mot Montenbruck et al. 2023 tabell 3 för GENESIS vid 6000 km (förhandsregistrerad 5b414f0a): medelvärden för zenitantennen stämmer på 5 av 6 inom en dB av artikelns känslighet; medelvärden för nadirantennen är 1,0 till 2,4 satelliter högre än tryckt, sannolikt eftersom artikeln använde azimutberoende GPS-sidolobsmönster som inte är publicerade. Siffrorna för lunart avstånd i den här raden använder fortfarande Airy som ersättning. 0,30+ D7, ett fynd (förblir MODELLED): den omformulerade storheten, C/N0-SKILLNADEN mellan Block IIR/IIR-M-satelliter som följs vid en epok, predicerad med NAVCEN:s uppmätta L1-mönster per SVN (tvådimensionella, i giringsstyrningens system) mot LuGRE:s flyg-C/N0 (förhandsregistrerad 768cb62b: 99 % synliga, par-RMS <= 3,0 dB, median <= 2,0 dB, minst 50 poster och 30 par) har för lite data: de 26 kvalificerande transit- och lunara omloppsepokerna innehåller 15 följda IIR/IIR-M-poster (mest följs IIF och III) och ett par. Alla 15 predicerades synliga och det enda parets residual är -0.06 dB; inget påstås
Tester
earth_gnss_lunar::tests (11 bibliotekstester: jordlimbens halvvinkel mot sin slutna form asin(R/r) med ytterligare ett påstående att VARJE icke-ockulterad länk ligger utanför den konen, så att ockultationstestet och limbvinkeln…
ModelledLunar banbestämning: Earth-GNSS mot radiometri från markenlunar_infra::{orbit,gnss,od}
Förmåga
Banbestämning i en nästan rätlinjig halobana (eller en elliptisk fryst bana) från två oberoende datatyper: pseudoavstånd från Earth-GNSS mottagna ombord (länkregeln i raden Earth-GNSS på lunart avstånd, plus månockultation) och tvåvägs avstånd och avståndshastighet från marken från tre stationer i Deep Space Network. Var och en är en minstakvadratlösning i ett batchsteg kring referensbanan med sin formella kovarians; en Monte Carlo med frö av skillnaden mellan de två skattningarna prövar om de två kovarianserna förklarar den (q = d' (P_G + P_R)^-1 d, chi-två med sex frihetsgrader när modellerna stämmer) och vad en omodellerad acceleration gör med statistikan.
Oberoende referens
Ett oberoende scipy/numpy-program integrerar samma variationsekvationer (tröskel O1). Ingenting jämförs med en mätning av en lunar bana. Den oberoende referensen kontrollerar numeriken i angivna formler, inte fysiken, så raden förblir MODELLED. Begränsad trekroppsmodell: ingen sol, inga lunara harmoniska, jordens rotationsaxel längs banans normal, ILLUSTRATIVE indata för mottagare och station.
Tester
tests/lunar_infra_od_consistency.rs (tröskel O1: tillståndsövergångsmatrisen kedjad över tre dagar och över en period är lika med scipy DOP853 till ett relativt 1e-6; tröskel C1: medel-q och andelen inom 95 %; tröskel C2: urval över…
ModelledLunar bärvågsfaslösning av heltalsosäkerhet: yta och omloppsfarkostlunar_infra::phase; lambda
Förmåga
Enkeldifferentierad bärvågsfas och kod från Earth-GNSS mellan mottagare vid en lunar ytstation och en omloppsfarkost, med klockdifferensen per epok profilerad bort, en heltalsosäkerhet per sammanhängande pass och det längsta passet som gauge. Kovariansen för float-heltalsosäkerheten är ett Schur-komplement; LAMBDA löser heltalen, den bootstrappade andelen redovisas bredvid en Monte Carlo-andel med frö för lyckad heltalsminstakvadratlösning och positionssigma för float- och fixerad lösning. Redovisat som funnet: vid de registrerade 12 dBi går dubbeldifferensproblemet inte att bilda (ändring 1 flyttade standardvärdet till 25 dBi efter att endast tillgänglighetsräkningar setts), och vid 25 dBi uppnås heltalsfixering INTE - utom räckhåll (några procent som mest) även om float-lösningen förbättras med bågen.
Oberoende referens
En oberoende numpy-lösning av samma normalekvationer från de exporterade raderna (Q3) och en uttömmande heltalsuppräkning (Q4). Ingen GNSS- eller lunar bärvågsfasmätning jämförs med. MODELLED.
Tester
tests/lunar_infra_carrier_phase.rs (tröskel Q1: Monte Carlo-framgång minst bootstrap-gränsen minus tre standardfel; Q2: inget fall med bågens längd bortom tre standardfel; Q4: LAMBDA är lika med brute-force…
ModelledLunar samestimering av referenssystem: ytstationer och omloppsfarkosterlunar_infra::frame; lunar_datum; lunar_identifiability; lunar_llr_geometry
Förmåga
Fisher-information för det lunara referenssystemets datum med sju parametrar från laseravståndsmätning från jordstationer till de fem reflektorerna enbart och med avståndsmätningar från omloppsfarkost till ytstation tillagda: informationsmatrisen, rang, Cramér-Rao-sigman, degenerationsmåttet i den lunara identifierbarhetsmodulen och slumpade stationsmängder med frö. Banan hålls känd i de lunara axlarna (dess fel bärs av omloppsfarkostens avståndssigma).
Oberoende referens
En oberoende numpy-finit differens av framåtmodellen (F2). Ingenting jämförs med verkliga lunara referenssystemslösningar. Faktorn är villkorad av den antagna kända banan och avståndssigmat på 1 m. MODELLED.
Tester
tests/lunar_infra_studies_3_5.rs (tröskel F1: CRLB-spåret stiger inte och det minsta egenvärdet faller inte med länkar till omloppsfarkoster, i exemplet och i 20 seedade slumpmängder; tröskel F2: avståndspartiella är lika med en…
ModelledPrecision för referenssystemsbindning i rymden: samlokaliserad GNSS, VLBI och laseravståndsmätninglunar_infra::tie; fim::crlb_srif
Förmåga
Cramér-Rao-precision för förskjutningarna i translation, skala och rotation mellan teknikerna GNSS, VLBI och laseravståndsmätning när en rymdfarkost bär alla tre, med rymdfarkostens position eliminerad vid varje epok och nio störparametrar för lokala bindningar med ett prior, svept över noggrannheten i den lokala bindningen. Kovarianser med kvadratrotsmetoden (normalekvationerna förlorar siffrorna när teknikerna är nästan perfekta).
Oberoende referens
Ett oberoende numpy-staplat system med positionsobekanta eliminerade med explicita Schur-komplement (T3). Ingen data från GRASP, Genesis eller andra missioner jämförs med. MODELLED.
Tester
tests/lunar_infra_studies_3_5.rs (tröskel T1: translationssigman faller inte när den lokala kopplingen lossnar; T2: med teknikernas sigma skalade med 1e-6 ligger varje pars translationssigma inom 1 % av sqrt(2) gånger den lokala kopplingens…
ModelledKänslighet för lunara Love-tal och librationlunar_infra::geodesy; lunar_od::degree2_tide_accel; lunar_time
Förmåga
Fisher-information för h2, k2, l2 och de fysikaliska libration-amplituderna från laseravståndsmätning (radiell och horisontell tidvattenförskjutning, reflektorrotation), omloppsfarkostföljning (graden-2-accelerationen k2 integrerad längs siktlinjen, trend borttagen), en ytgravimeter (gravimetrisk faktor 1 + h2 - 1,5 k2) och en ytklocka (fraktionell gång (1 + k2 - h2) W2/c2, knuten till de lunara tidskonstanterna). Nominella värden för h2 och l2 är linjäriseringspunkter; studien säger vad som är känsligt för vad, inte vad talen är.
Oberoende referens
En oberoende numpy-sammansättning med finita differenser (G2) och utvärdering i sluten form (G4). Känsligheten för k2 hos omloppsfarkostfamiljen är ett värde i den övre delen av intervallet (banans tillstånd absorberar här bara en konstant och en trend). Ingen mätning av lunar tidvatten eller libration jämförs med; k2 citeras från Lemoine et al. 2014 som ett nominellt värde. MODELLED.
Tester
tests/lunar_infra_studies_3_5.rs (tröskel G1: analytiska partiella derivator är lika med en central finit differens av varje framåtmodell till 1e-8; G2: 5x5-informationen är lika med en oberoende numpy-sammansättning till 1e-6; G4: klocktidvattnet…
ModelledLunar förstärkning av DOP med ytbeaconslunar_beacon
Förmåga
Beaconförstärkt DOP för en lunar ytanvändare: raderna med siktlinjer till synliga satelliter och raderna med avståndsmätning mot synliga ytbeacons sätts ihop till en enda designmatris och utvärderas genom den delade DOP-kärnan, och den resulterande DOP avbildas på en realiserad 1-sigma-noggrannhet I METER genom ett användarekvivalent avståndsfel per beacon som sätts ihop som kvadratsumman av termer för klocksynkronisering, flervägsutbredning och inmätning. Beaconsynlighet är den geometriska horisonten med två höjder för en luftlös Måne, som saknar refraktiv utvidgning och därför är exakt snarare än approximativ. Kan köras som scenariot lunar-beacon, som redovisar enbart satelliter, satelliter plus beacons och en större konstellation som den konkurrerande vägen till samma geometri. MEASURED på den medföljande golden-geometrin (användare vid -80 deg, tre inmätta beacons, en illustrativ LCNS med sex satelliter vid t=0, mask 5 deg): 5 synliga satelliter ger PDOP 9,6941 och en 3D-1-sigma på 11,222 m; att lägga till de beacons som faktiskt klarar horisonten ger PDOP 4,1160 och 4,765 m, en faktor 2,355; tjänsten med 24 satelliter ger i stället PDOP 2,4226 och 2,804 m, en faktor 4,002. Rapporten skriver ut antalet SYNLIGA beacons snarare än det konfigurerade, och på den här geometrin klarar bara EN av de tre beaconsen horisonten: de två flankerande platserna ligger omkring 333 km från användaren mot en horisont på 86 km för en antenn på 2 m, så en läsare lämnas aldrig åt att anta att alla tre bidrog
Oberoende referens
DOP-aritmetiken är kärnan crate::orbit::dop, separat externt validerad mot gnss_lib_py i tests/dop_reference.rs; den här raden lånar inte på nytt den radens status. Horisonten för beaconsynlighet är den slutna formen L01, och sigma = DOP x sigma_URE är den vedertagna GNSS-relationen (Kaplan och Hegarty, Understanding GPS/GNSS, avsnitt 7). Inom den här raden kontrolleras själva förstärkningen mot en oberoende DOP-väg i förrådet och fastlåses mot en incheckad golden-fil. VARFÖR MODELLED: konstellationsutformningen, beaconplaceringen, antennhöjderna och alla tre felbudgetstorlekarna är illustrativa indata snarare än en driftsatt inmätning eller en uppmätt länk, så de redovisade metrarna är en egenskap hos ett valt scenario och inte hos någon utplacerad tjänst. NOTERING OM PROVENIENS: den här förmågan angavs i README och prövades av två valideringstester, men hade INGEN matrisrad och ingen scenariotyp, så den kunde inte nås från en körning alls. Den påstods i prosa, saknades i registret och var onåbar i motorn på en och samma gång. Raden och typen lades till tillsammans. Omgång 2 för 0,30 (förhandsregistrerad db0eb9ec), blockerad (förblir MODELLED): synlighet i ANISE 0.10.6 och en numpy-DOP på radens geometri stämmer (synliga mängder exakta inklusive 72 fall nära horisonten och 48 nära masken; DOP inom 7.2e-13), men de redovisade metrarna är DOP gånger ett illustrativt kvadratsummerat avståndsfel på 1,158 m utan oberoende referens; den avgränsning som skulle utesluta dem väntar på ett ägarbeslut
Tester
lunar_beacon::tests (horisontsynlighet mot den slutna formen L01; den beacon-förstärkta DOP mot den nakna; felbudgetens kvadratrotssumma; relationen mellan DOP och meter)…
ValidatedIntegritetsblindhet för gemensamt lägelunar_common_mode
Förmåga
Exakt uppdelning i paritetsunderrum av ett mätfel i den del som RAIM inte kan se och den del den kan se. För den linjäriserade ögonblicksmodellen y = G·x + e kan varje fel dy entydigt delas upp i en BLIND komponent i range(G) — absorberad som ett tillståndsfel S·dy och utplånad av residualprojektorn Pperp = I − G·S, alltså osynlig för VARJE residualtest, inte bara för en viss tröskel — och en DETEKTERBAR komponent i paritetsrummet. Modulen returnerar projektorn, uppdelningen och den blinda andelen, så att en anropare kan kvantifiera hur mycket av ett visst fel som en ögonblicksövervakare strukturellt inte kan rapportera. Tillämpad på det verkliga golvet mellan efemerider: den metersmåa skillnaden mellan DE440 och INPOP21a samt mellan DE440 och EPM2021 i den geocentriska månpositionen absorberas nästan helt som användarpositionsfel (median för blind andel 1,000000; median för blindt positionsfel 2,3955 m och 2,0050 m) mot en pariteteresidual på nivån 1e-15 m
Oberoende referens
P2: numpy linalg.lstsq (LAPACK gelsd SVD, BSD-3) räknar om minstakvadratuppdelningen på incheckade indata MED en verklig paritetsdel (dy = E·Δs + w, w ~ N(0, 1 m), frö 20261001) på geometrin med 8 satelliter och en delmängd med 6 satelliter, 1464 fall över båda verkliga efemeridparen, förhandsregistrerad (f672a314): blind_dx, residual, blind_norm och detectable_norm inom 1e-12 relativt |dy| och blind_fraction inom 1e-12 absolut (sämst blind_dx 1.06e-14, residual 4.4e-15, blind_fraction 3.1e-15). numpy bygger G självt från de incheckade positionerna, medan motorn använder normalekvationer med Gauss-Jordan; en sned vänsterinvers gör testet rött vid 5.5e-2 |dy|. Ändring 1 (86c53301, efter en första körning, redovisad) lättade endast en förutsättning för indata på paritetsandelen (varje fall minst 1e-3 och 95 % av varje geometri minst 0,05), inte tröskeln för överensstämmelse. Validated påstående, som P2 tillåter: den linjära algebran i uppdelningen på dessa indata; storlekarna på golvet mellan efemerider och den illustrativa lunara geometrin (8 LCNS-liknande noder vid 5000 km) är indata, inte validated, och blindheten är en känd egenskap hos all RAIM med ögonblicksbild. Jämförelsen med numpy i omgång 1 (tests/lunar_common_mode_integrity_reference.rs) kontrollerade bara identiteten S·G = I eftersom dess indata låg i range(G); den behålls som regressionstest. Efemeridernas proveniens: tests/fixtures/inter_ephemeris/NOTICE.md (JPL, IMCCE, IAA RAS)
Tester
lunar_common_mode::tests (8 bibliotekstester: uppdelningen är additiv och rekonstruerar dy; en gemensamtlägeskovarians ger en positiv skyddsnivå för gemensamt läge medan en ren paritetskovarians ger en nära noll; den…
ModelledSkyddsnivå för gemensamt läge och totalt integritetskuvertlunar_common_mode
Förmåga
cmpl_horizontal begränsar k-sigma-felet i horisontell position som bidras av den blinda klassen för gemensamt läge, genom att bilda blind_position_covariance = S*Cov*S^T och projicera den till ENU; integrity_envelope redovisar hpl_total = hpl_araim + cmpl. Skillnaden som paret finns för att göra: RESIDUALTESTET i RAIM/ARAIM är bevisligen blint för fel i range(G), men SKYDDSNIVÅN i ARAIM är det inte - dess term för felfritt fall begränsar dem redan upp till en leverantörs URA plus nominell bias. CMPL är därför bara det EXCESS mellan leverantörer som URA/ISM för en enskild leverantör inte överskrider, och summan är en konservativ gräns enligt triangelolikheten snarare än en RSS, giltig endast där det excesset inte redan ryms inom URA.
Oberoende referens
Analytisk projektoralgebra kontrollerad mot sig själv: en kovarians begränsad till range(G) måste ge en positiv CMPL, en kovarians begränsad till paritetsrummet måste ge ungefär noll, och kuvertet måste summera två bidrag som är ortogonala i mätrummet. Kovariansen för gemensamt läge, konstellationsgeometrin och k är representativa Modelled indata, INTE en certifierad budget, och inget påstående görs att triangelgränsen är snäv. NOTERING OM PROVENIENS: cmpl_horizontal, blind_position_covariance och integrity_envelope är publika och levereras, och deras enhetstester var redan citerade av raden om blindhet för gemensamt läge, men SJÄLVA KUVERTPÅSTÅENDET hade ingen rad - så det enda förbehåll som håller det ärligt, att summan är en triangelgräns och inte en RSS, angavs ingenstans i registret. Raden registrerar påståendet och förbehållet tillsammans.
Batchfusion av VLBI + lunart lokalt avstånd + avstånd mellan satelliter för att återvinna positioner och klockor för stationer och konstellation
Oberoende referens
P2: numpy 2.4.6 (numpy.linalg.lstsq med LAPACK gelsd, numpy.linalg.inv; BSD-3) räknar om varje Gauss-Newton-steg, den konvergerade viktade minstakvadratlösningen, de formella sigman och stationsfelet på de incheckade jakobianerna och observationerna för sex simulerade nät, förhandsregistrerad (5094bc31) vid max(1e-8, 100 kappa eps) relativt. Den första körningen föll på nätet utan VLBI (6.1e-7 mot 1e-8, en invers av normalekvationerna vid konditionstalet 1.4e5); motorfixen som skrevs efter det resultatet (batch_ls::gauss_newton_qr, ett Householder-QR-steg som används av estimate och formal_covariance) kördes om vid oförändrad tröskel: steg 1.1e-14 till 2.4e-11, sigman högst 1.3e-11. Det validated påståendet är den linjära algebran i fusionslösningen på dessa indata, inte de fysikaliska storlekarna i det simulerade nätet eller dess observationsmodeller: raden för lunar geodetisk VLBI-fördröjning förblir MODELLED (dess analytiska väg skiljer sig från ANISE med upp till 24 µs), och referenssystemen har egna rader. Återvinning av en injicerad simulerad sanning och NEES-konsistens förblir interna kontroller; den tidigare korskontrollen med Orekit 12,2 / Hipparchus Levenberg-Marquardt (tests/lunar_joint_multi_technique_od_reference.rs) använder batch_ls::gauss_newton, som estimate inte längre anropar, och behålls som en kontroll av den primitiven. Revision 0,30: standardvärdet för stationsfel i lunar-joint-od-clock 3,541344 -> 3,541350 m med VLBI och 2183,119 -> 2183,558 m utan (QR-lösning). Revision 0,36 (STUDIO-15, portabel matematik; docs/revisions/STUDIO15-portable-math-rebaseline.md): 3,541350 -> 3,536885 m med VLBI och 2183,558 -> 2184,021 m utan, och lösningen utan VLBI stannar efter 5 iterationer, inte 2 (ett avbrott begränsat av avrundningsfel på det illa konditionerade nätet); den förhandsregistrerade jämförelsen kördes om på återexporterade indata vid oförändrad tröskel (numpy 2.4.6, alla sex nät klarar)
ValidatedFisher-information och observerbarhet enligt Cramér–Raofim
Förmåga
Fisher-information M=HᵀWH, Cramér–Rao-gräns (nedre gräns), observerbarhetsrang och nollrum för datumdefekt (Moore–Penrose-pseudoinvers) samt D-, A-, E- och T-optimala skalärer för experimentutformning från en symmetrisk Jacobi-egenvärdeslösare
Oberoende referens
NumPy 2.4.1 (numpy.linalg.eigh / .inv; BSD-3-Clause, LAPACK-baserad) — en oberoende tredjepartsreferens som beräknar samma entydigt definierade egenvärden, σ²(XᵀX)⁻¹-Cramér–Rao-kovarians och GNSS-faktorer för försämring av precisionen med en annan algoritm (LAPACK divide-and-conquer + LU) än Kshanas cykliska Jacobi-svep och spektrala pseudoinvers; överensstämmelse till 1e-9. Samma klass av externa bibliotek validerar redan DOP-motorn (mot gnss_lib_py) och χ²/erf-kärnorna (mot SciPy). Dessutom korskontrollerad mot de slutna uttrycken för CRLB enligt Kay (1993) och mot Monte Carlo-uppnåelse av CRLB (internt)
Tester
tests/fim_observability_reference.rs (egenvärden mot numpy.linalg.eigh; CRLB-kovarians mot σ²(XᵀX)⁻¹ via numpy.linalg.inv; GNSS GDOP/PDOP/HDOP/VDOP/TDOP ur informationsmatrisen mot numpy — alla matchade till 1e-9)…
ModelledObserverbarhet för absolut stationsposition på månen (datumdefekt)lunar_combination (lunar_observability) + fim
Förmåga
Observerbarhet via Fisher-information för den gemensamma månlösningen: utan baslinjer till jorden ligger det absoluta referenssystemets datum i nollrummet till HᵀWH (stationens position är inte observerbar); ≥3 baslinjer återställer full rang och begränsar stationens Cramér–Rao-fel, som estimatorn uppnår
Oberoende referens
Analytisk struktur för datumdefekten — det oobserverbara läget i det absoluta referenssystemet ligger i nollrummet till Fisher-informationen (slutet uttryck), rangtröskeln stämmer med den publicerade motiveringen för en utformning med 3 stationer, och estimatorn uppnår den resulterande CRLB i Monte Carlo. Själva månens geometri är ett representativt nätverk (inte en flugen efemerid), så raden förblir MODELLED; den underliggande FIM/CRLB-motorn kontrolleras separat mot de slutna uttrycken enligt Kay (1993). 0,30 omgång 2 (förhandsregistrerad fab02df9), blockerad (förblir MODELLED): NumPy/SciPy räknar om rangen och defekten vid den angivna tröskeln 1e-9, stationsaxlarnas andel av nollrummet (inom 8.4e-10) och stationens CRLB (inom 1.2e-10) på 17 incheckade, av Kshana genererade konfigurationer (P2). Inte uppgraderad: påståendet att estimatorn uppnår gränsen (Monte Carlo-effektivitet omkring 0,98) saknar oberoende referens, och den avgränsning som skulle låta den förbli MODELLED väntar på ett beslut från ägaren
Tester
lunar_combination::tests (rangbristfällig utan jordbaslinjer; tre baslinjer återställer full rang — tröskeln på 3 stationer ur informationens rang, inte lösningsfel; stations-CRLB nås av skattaren vid…
ValidatedRealisering av månens referenssystemlunar_frame_realise
Förmåga
Anpassning av ett Helmert-datum med 7 parametrar och ICRF-orienteringsknytning från ett nätverk av punkter
Oberoende referens
Oberoende lösare med slutet uttryck för viktad likformighetstransformation enligt Umeyama (Horn) (SVD-baserad med numpy/scipy; Umeyama 1991 IEEE TPAMI, Horn 1987 JOSA A) — en annan algoritm än kshanas iterativa Gauss–Newton-anpassning, som når samma entydigt definierade viktade minstakvadratoptimum på byte-identiska punktnätverk
Tester
lunar_frame_realise::tests (återvinner injicerad Helmert-transform); tests/lunar_reference_frame_realisation_reference.rs (14 fall mot en oberoende lösare med sluten form Umeyama-SVD; sämsta |Δ| translation 2.0e-5 m…
ValidatedTäckningsvolym för navigeringstjänst på månenlunar_service
Förmåga
DOP, täckning och tillgänglighet av Moonlight-klass på månen samt generaliserade ARAIM-skyddsnivåer för månen över en täckningsvolym
Oberoende referens
Oberoende tredjepartsreferens ANISE 0.10.2 astro::Orbit, Keplerpropagator (Nyx Space, MPL-2.0) — en ekvinoktial tvåkroppskodväg som skiljer sig från kshanas Newton-Raphson-Kepler; per-satellit-position i MCI stämmer inom <1e-3 m och det härledda antalet synliga satelliter och mängden synliga satelliter är exakt lika i varje rutnätspunkt. DOP-kärnan är validerad mot gnss_lib_py; integritet använder publicerade LunaNet/LCNS-parametrar
Tester
lunar_service::tests (DOP återanvänder den validerade kärnan; PL reduceras till sydpolsfallet); tests/lunar_navigation_service_volume_reference.rs (MCI-position per satellit till <1e-3 m + EXAKT mängd synliga satelliter över…
ModelledGenerering av spridningskoder för LunaNet AFS (LSIS V1.0)lunar_afs::codes,lunar_afs::lsis,lunar_afs::params (IS-GPS-800J indices)
Förmåga
Augmented Forward Signal-koderna i LSIS V1.0 (29 januari 2025): AFS-Q:s primärkod på 10230 chip genererad enligt pilotkonstruktionen för L1C i IS-GPS-800 med indexen i IS-GPS-800J (samma 210 tilldelningar som LSIS bilaga D skriver ut), AFS-I:s Gold-koder på 2046 chip genererade från g1 = x^11 + x^2 + 1 och g2 = x^11 + x^8 + x^5 + x^2 + 1 där varje PRN:s G2-fördröjning hämtas från standardens Annex 3-fil, de fyra sekundärkoderna, tertiärkoderna på 1500 chip, den preliminära nodtilldelningen enligt tabell 11 och den skiktade pilotkoden. LSIS-innehållet läses vid körning från ett lokalt cacheminne som verifierats med SHA-256 och fyllts från den NASA-hostade PDF-filen, och distribueras aldrig vidare
Oberoende referens
Referens: de värden som LSIS V1.0 skriver ut för validering (tabell C-1 till C-5, D-1 till D-6, E-1 till E-6) och dess elektroniska kodfiler i Annex 3, under ett kriterium om noll avvikelser som fastställdes före jämförelsen. Kriteriet missas av en utskriven cell som är internt oförenlig med standardens egen Annex 3-fil, så raden förblir MODELLED; en erratanotering är utkastad. Samma chip är också lika med LANS-AFS-SIM:s (rad "LunaNet AFS baseband rendering against an independent generator, given its channel state")
Tester
lunar_afs::codes::tests (register med maximal längd, Legendre-balans, rundtur för G2-fördröjning, nivåsammansättning); tests/lunar_afs_codes_lsis_reference.rs::afs_codes_finding_one_misprinted_table_cell (utan LSIS-cachen…
ValidatedBasbandsrendering för LunaNet AFS mot en oberoende generator, givet dess kanaltillstånd (LSIS V1.0)lunar_afs::waveform::render,lunar_afs::codes,lunar_afs::frame
Förmåga
Renderingskärnan i AFS-basbandet (LSIS-130: komplex envelopp I + jQ, I = AFS-I Gold-koden gånger ramen på 500 symboler/s vid 1,023 Mchip/s, Q = den skiktade AFS-Q-piloten vid 5,115 Mchip/s, bärvågsrotation, chip- och symbolsynkronisering) återger en oberoende generators samplingar när den styrs av den generatorns egna inspelade kanaltillstånd (kodfaser och kodhastigheter, bärvågsfas och bärvågsfrekvens, amplitud per kanal). Täcks inte: nodmodellen som härleder detta tillstånd från Doppler, fördröjning och bärvåg-till-brustäthet, effektfördelningen 50/50 som beräknas från bärvåg-till-brustätheten (amplituderna tas från simulatorn) samt SigMF-metadata och skrivning av 8-bitars samplingar
Oberoende referens
Bibliotek: LANS-AFS-SIM (T. Ebinuma, BSD-2-Clause, commit 480c6bf353717bafc04b5ee5bafb38ed90e61aae, S-bandsbygge, körs som ett separat program); Kshanas samplingar styrs enbart av simulatorns inspelade kanaltillstånd, och ett bygge med enbart utskriftsspårning har kontrollerats vara byte-identiskt med det opatchade. Trösklar fastställda före körningen: noll chip- och symbolavvikelser, |rho| >= 0,999 över körningen och >= 0,99 per block om 2 ms, fas inom 0,05 rad. Lika I- och Q-amplituder är en indata till jämförelsen, så effektfördelningen testas inte av den. LANS-AFS-SIM läser sina tertiärkoder från LSIS Annex 3-filen, så den delen är inte oberoende av kodraden. LANS-AFS-SIM och PocketSDR-AFS har samma upphovsperson och räknas som en enda oberoende implementation. Datastyrd: jämförelsen med LANS-AFS-SIM kräver den lokala LSIS V1.0-cachen (xval/lunar-afs/fetch_lsis.sh, SHA-256-verifierad) och hoppas över med ett meddelande utan den
Tester
tests/lunar_afs_waveform_lans_afs_sim_oracle.rs::afs_chips_match_lans_afs_sim (de 210 primära AFS-Q-koderna alltid; med KSHANA_LANS_RUN och LSIS-cachen alla 630 koder, noll chipavvikelser)…
ValidatedKanalkodning av LunaNet AFS-ram, FID 0 (LSIS V1.0)lunar_afs::frame,lunar_afs::ldpc,lunar_afs::lsis
Förmåga
FID 0-ramen i LSIS V1.0 på 12 s och 6000 symboler: synkroniseringsmönster på 68 symboler, BCH (51, 8) för delram 1 (generator oktal 763), CRC-24 ((1 + X)·P(X)) på delramarna 2–4, LDPC-kodning med hastighet 1/2 med de utskrivna A, B^-1, C, D (LSIS Annex 1, läst vid körning från den SHA-256-verifierade lokala cachen) och standardens punktering, blockinterfolierare 60 x 98; en uttömmande avkodare för delram 1 som flaggar ett TOI utanför 0..99, och en normaliserad min-sum-LDPC-avkodare skriven enbart utifrån H = [[A, B, 0], [C, D, I]]
Oberoende referens
Bibliotek: LANS-AFS-SIM (T. Ebinuma, BSD-2-Clause, commit 480c6bf353717bafc04b5ee5bafb38ed90e61aae), vars egna BCH, CRC, LDPC och interfolierare ger ramar som är symbolidentiska med Kshanas för samma innehåll (noll avvikelser, tröskel fastställd före körningen). Styrkt av referensvärden: det genomräknade BCH-exemplet i figur 8 i LSIS V1.0 och kontrollvärdet för CRC-24/LTE-A (Greg Cooks katalog över parametriserade CRC-algoritmer), båda bitexakta; samt av att PocketSDR-AFS avkodar varje delram i de ramar som den synkroniserade i tre körningar med godkänd CRC och matchande bitar i delram 2. Paritetskontrollen är nära en intern identitet (den bekräftar att den utskrivna B^-1 inverterar den utskrivna B) och räknas inte som en oberoende referens. Datastyrd: jämförelsen med LANS-AFS-SIM kräver den lokala LSIS V1.0-cachen (xval/lunar-afs/fetch_lsis.sh, SHA-256-verifierad) och hoppas över med ett meddelande utan den
Tester
tests/lunar_afs_waveform_lans_afs_sim_oracle.rs::afs_frames_and_baseband_match_lans_afs_sim (med LSIS-cachen: de 3 ramar som LANS-AFS-SIM sänder, byggda ur samma FID, TOI och databitar: noll av 18 000 symboler…
ModelledAvkodbarhet med sluten slinga för LunaNet AFS med en oberoende mottagare (LSIS V1.0)lunar_afs::waveform (recording and truth labels),xval/lunar-afs/run_pocketsdr.sh
Förmåga
En Kshana AFS-inspelning som en oberoende programvarumottagare tagit in, följt och avkodat och som jämförts med inspelningens egna referensetiketter. Detta visar enbart att standarden följs och att etiketterna är konsekventa; det är inget påstående om kanalfysik, utbredning, mottagen effekt eller länkbudgetar, vars värden i inspelningen är valda indata
Oberoende referens
Bibliotek: PocketSDR-AFS (T. Ebinuma efter T. Takasus PocketSDR 0,13, BSD-2-Clause, commit 5b23809f30d68518b7fad7a564fd0fac57cc497d, S-bandsbygge, kopia med enbart utskrift på loggnivå), under kriterier fastställda före varje körning. Den tredje förhandsregistrerade jämförelsen uppfyller sina trösklar C1 och C2 för avkodning och följning fullt ut men inte sitt skydd G0 som det är skrivet (två körningar av den omodifierade mottagaren skiljer sig åt i samma fyra införvärvningsposter), och den andra missade med 5 överträdelser, så raden förblir MODELLED. LANS-AFS-SIM och PocketSDR-AFS har samma upphovsperson och räknas som en enda oberoende implementation; kontrollerna av utskrivna vektorer i raden för ramkodning skyddar mot en gemensam feltolkning
ModelledGPS L1 C/A: formatkontroll mellan generatorergps_lnav,sdr
Förmåga
GPS L1 C/A-spridningskoder (sdr::CaCode) och LNAV-delramar 1–3 (gps_lnav: fältkvantisering enligt IS-GPS-200 med specifikationens pi, tvåkomplementspackning, TLM- och HOW-ord, paritet enligt tabell 20-XIV med D29*/D30*-inversion, de paritetslösande bitarna i orden 2 och 10) jämförda bit för bit med gps-sdr-sim på dess medföljande brdc0010.22n (32 satelliter)
Oberoende referens
gps-sdr-sim (MIT, commit 28ca29a6, körs som ett separat program via ett incheckat testverktyg), förhandsregistrerad f88f2969 med en bitexakt tröskel för (A) C/A-chip, (B) varje beräknat LNAV-fält, (C) varje paritetsbit. RESULTAT: (A) 0 av 32 736 chip skiljer sig åt, (C) pariteten i 0 av 1 920 ord skiljer sig åt, (B) 230 av 1 152 beräknade fält skiljer sig med en enhet: gps-sdr-sims eph2sbf trunkerar mot noll med C-casts där det sända heltalet kräver avrundning (varje avvikande värde ligger inom 0,01 av en enhet från Kshanas avrundade heltal). Förblir MODELLED: den registrerade tröskeln var konjunktionen
ValidatedSignalgeometri för GNSS IQ-scen mot en oberoende basbandsgeneratoriq::scene (Scene,SatGeometry,TruthRecord)
Förmåga
IQ-scengeneratorns sanning per satellit för en GPS L1 C/A-scen med sänd efemerid (iq::scene: en SatGeometry med sänd efemerid, genererad till TruthRecord-sanningsposter): vilka satelliter som är ovanför horisonten, pseudoavståndet, kodfasen vid det första samplet, bärvågs-Doppler och synvinklarna, för en stillastående mottagare, jämfört med det kanaltillstånd som gps-sdr-sim bygger det första blocket av sin egen I/Q-utdata från, för samma efemerid, mottagare och starttid (jonosfär av på båda sidor)
Oberoende referens
gps-sdr-sim (T. Ebinuma, MIT, commit 28ca29a6), en oberoende GPS L1 C/A-basbandsgenerator, byggd med sin egen Makefile och körd som ett separat program på dess medföljande brdc0010.22n vid exempelplatsen i dess användningstext (scripts/gen_iq_gpssdrsim_ref.sh); ett incheckat testverktyg som länkats mot samma bygge skriver ut kanaltillståndet (computeRange, computeCodePhase) bakom programmets första block. Trösklar fastställda innan generatorn kördes (förhandsregistrerad 7777da53). Omfattning: GPS L1 C/A-geometri för en stillastående mottagare utan jonosfär, troposfär eller mottagarklocka; scenens kanalmodeller, brus och navigeringsdata ingår inte i den här 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…
iq::acq::acquire (FFT-parallell kodfassökning med Marcum-Q-tröskel för kvadratisk detektor) med GpsL1Ca-repliken, på 20 ms av gps-sdr-sims egen 8-bitars I/Q-utdata avkodad av samplingsavkodaren iq::io (ci8, 2,6 MHz, 11 satelliter, inget brus): varje PRN 1 till 32 söks i två fönster om 10 ms, och resultatet jämförs med den kodfas och den Doppler som gps-sdr-sim modulerade
Oberoende referens
gps-sdr-sim (MIT, commit 28ca29a6) I/Q-samplingar och dess eget kanaltillstånd, förhandsregistrerad 7777da53: (B1) varje simulerad PRN införskaffad, (B2) ingen annan PRN införskaffad, (B3) kodfas inom 0,5 chip, (B4) Doppler inom 125 Hz. RESULTAT: B1, B3 och B4 håller i båda fönstren (sämst 0,195 chip, 72 Hz), men B2 misslyckas: alla 21 PRN som gps-sdr-sim inte simulerade passerar också tröskeln (statistika 151 till 206 mot 79,5; simulerade PRN 1 300 och uppåt). Tröskeln är satt för gaussiskt brus med den uppmätta samplingseffekten; gps-sdr-sim lägger inte till något brus, så cellerna för en frånvarande PRN innehåller de andra satelliternas korskorrelation. Förblir MODELLED: den registrerade tröskeln var konjunktionen
ModelledIQ-övervakare bedömda i labbuppspelningskampanjer: detektion, missar, falsklarm och slutna uttryck för falsklarmstaliq::campaign (detect,runner,spec); iq::monitor (stats::gaussian_two_sided_pfa,sqm)
Förmåga
iq::campaign::detect och kampanjkörningen: en valfri tabell [monitors] kör IQ-övervakarna på varje cell i körningens enda pass. Effekt- och spektralövervakarna ser samplingarna efter varje frontändskedja; övervakarna för C/N0, SQM och låsning ser varje följd kanals slingutjämningar. Varje larm bedöms mot de angivna händelserna: detekterat eller missat per (händelse, larmtyp, kanal), tid till detektion och falsklarm utanför händelserna över deras exponering. För varje tests slutna uttryck anges falsklarmstalet: effekt per block (exakt gammasvans), spektralt överskott per block (approximation), kurtosis (ensidig gaussisk), pulser (binomialtak), SQM per medelvärdesbildad uppdatering (2Q(k) = Q(1/2, k^2/2), nytt) och ARL0 för C/N0-CUSUM (Siegmund). Utan tabellen är celler, nycklar och sammandrag oförändrade. Ingen störningsvågform syntetiseras
Oberoende referens
Övervakarnas egna slutna uttryck på Kshanas egna GPS L1 C/A-scener (brus och legitima signaler; dämpningshändelser för satelliternas egna signaler), mot trösklar förhandsregistrerade i docs/design/MONITORS-IN-CAMPAIGN.md (382ab2f4). RESULTAT: M1, M2 och M4 uppfyllda. M3 uppfylld för detektion (18 av 18 dämpningar, P_md 0) och NOT MET för tidsvillkoret: mediantiden till detektion är 1,001 s mot 2 x ARL1-samplingar = 0,433 s. CUSUM ser en skattning per fönster om 1 s, så gränsen i antal samplingar ligger under ett sampling. Endast intern konsekvens: ingen verklig mottagare eller inspelad störning kontrolleras
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)…
ModelledDetektions-ROC för IQ-övervakarna från en bedömd labbuppspelningskampanjiq::campaign (detect,report,runner); iq::monitor::spectral (kurtosis_reference)
Förmåga
iq::campaign::detect (windows, roc) och iq::campaign::report::rocs: varje cell i en kampanj med övervakare behåller, per larmtyp och kanal, maxvärdet av övervakarens egen teststatistika över varje angivet händelsefönster (positiva) och över sammanhängande roc_window_s-fönster utanför händelserna (negativa). Statistikorna är blockeffektens avvikelse, PSD-överskottet, kurtosis z, SQM |z| för det medelvärdesbildade måttet och C/N0-CUSUM. Rapporten slår ihop dem per typ till en empirisk ROC på fönsternivå med dess AUC och arbetspunkten vid den konfigurerade tröskeln, skriven som roc.json (kshana.campaign-roc/1) och som ett avsnitt Detection ROC i report.html. En kampanj utan övervakare skriver ingetdera
Oberoende referens
Syntetiska kampanjer från Kshanas egna GPS L1 C/A-scener (dämpningar av satelliternas egna signaler), mot trösklar förhandsregistrerade i docs/design/DETECTION-ROC.md (b47e358d). RESULTAT: R2 uppfylld (slumpnivå när det inte finns något att detektera). R1 NOT MET: cn0_drop AUC 0,7855 mot 0,95, eftersom varje negativt fönster efter en händelse ärver CUSUM:ens avklingning från detektionen (alla 18 negativa efter händelsen når 81 eller mer; alla 18 före händelsen stannar på 0). Endast intern konsekvens: ingen verklig mottagare eller inspelad störning kontrolleras
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)…
ModelledKalibrering av den öppna mottagarens modeller för C/N0 och låsning mot resultat från IQ-kampanjer, med angivet prediktionsfeliq::labfit (campaign,cn0,iqfit,iqreport,schema,mod); iq::cli::labfit
Förmåga
iq::labfit (campaign, cn0, iqfit, iqreport) och [input] campaign på kshana iq labfit, Python kshana.iq_labfit och MCP-verktyget labfit (kampanjmappar enbart inom dess arbetskatalog): läser en utdatamapp från kshana iq campaign via dess DIGEST och grupperar de bedömda cellerna i anpassningsenheter (signal x slingutformning x frontändskedja x störsändartyp, aldrig sammanslagna). Per enhet anpassas uppmätt C/N0 mot angivet J/S med den spektrala separationsformen. Q_eff är inte identifierbar ur C/N0-data utan en oberoende mätning av störsändarens och signalens effekt, så Q anges, anpassas aldrig (typtabellen, händelsens q eller, för en okänd typ, det mest skadliga angivna värdet, cw Q = 1). Den anpassade parametern är den identifierbara förskjutningen delta_eff = delta - 10 log10 Q, där korrelationsvakten rapporterar degenerationen. C/N0-fack som är låsta under 90 % är censurerade och listas. Tröskel-J/S anges direkt och med det slutna uttrycket; spårningsslingans modell och den empiriska låsningsmodellen kopplas genom C/N0-modellen, med dröjsmål för tappad och återvunnen låsning. En seedad klusterbootstrap över inspelningar (1000 replikat) ger percentilintervall; 90 % prediktionsintervall kommer från residualdragningar; hold-outs där en inspelning utelämnas delas upp i interpolation och extrapolation; en förhandsregistrerad tabell [validation] hashas och varje tröskel bedöms som PASS/FAIL. Rapport kshana.labfit-iq/1 som JSON, CSV och genererad Markdown, med ett units-block. Endast syntetiskt (ingen tredjepartsinspelning, ingen störsändarvågform). Sökvägen labfit för mottagarloggar är oförändrad
Oberoende referens
Syntetisk parameteråterhämtning på Kshanas egna GPS L1 C/A-scener med en känd C/N0-profil pålagd från formeln i avsnitt 3,1, följd och bedömd av kshana iq campaign, mot trösklar förhandsregistrerade i docs/design/LABFIT-FROM-IQ.md (avsnitt 5,1, ändrad 2026-10-12 i b7117bf, avsnitt 13). Kampanjernas C/N0-estimator (M2M4) fastställdes i 5b13e3c2, pushad före den första utvärderingen av trösklarna (incheckad tillsammans med anpassningskoden, inte ensam), efter en redovisad diagnostisk följningskörning. RESULTAT på kampanjen med 18 händelser för trösklarna: (c) PASS; (a') NOT MET, delta_eff-fel -1.097 dB mot 0,5 dB (fortfarande -0.89 dB på fack vid 38 dB-Hz och uppåt); (b') NOT MET, 0 av 50 kampanjer täcker sanningen (fel -1.189 +/- 0,093 dB, intervall omkring 0,3 dB); (d) NOT MET, slutet uttryck 2,20 dB under direkt J/S vid förlust, ungefär den anpassade dröjsmålstiden för tappad låsning gånger rampens hastighet (2,09 dB); de ursprungliga Q-villkoren i (a) och (b) är NOT MET eftersom Q inte är identifierbar. UPPFÖLJNING (trösklar förhandsregistrerade i 1e532f84, docs/design/evidence/labfit-followup/RESULTS.md): på en kampanj med stegvis J/S återhämtas delta_eff inom +0,185 dB (S1 MET: rampfelet är estimatorns eftersläpning); (d) som det är skrivet på den uppfylls av spårningsslingans modell (0,45 dB) men inte av den empiriska (6,42 dB), så S2 är NOT MET; på en ny rampkampanj ligger (d) med den anpassade dröjsmålstiden för tappad låsning plus varje händelses ramphastighet inom 1 dB för båda modellerna (R1 MET), och (a') och (d) som de är skrivna missas igen (-1.25 dB; 2,32 och 9,47 dB). Det är metoden som kontrolleras, inte någon mottagare: den kan inte bli VALIDATED utifrån syntetiska 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)…
ModelledGPS LNAV-kodning avkodad av ett oberoende mottagarbibliotekgps_lnav
Förmåga
Kshanas LNAV-delramar 1–3 (gps_lnav::encode_subframes) för de 32 efemeriderna i brdc0010.22n, matade till RTKLIB:s decode_word och decode_frame: paritet för varje ord, avkodning av delramar med konsekvent datautgåva och varje avkodad parameter mot Kshanas heltal och mot indatavärdet
Oberoende referens
RTKLIB v2.4.2-p13 (BSD-2-Clause, commit 71db0ffa) decode_word/decode_frame som ett separat program, förhandsregistrerad ca5f0142: R1 paritet och avkodning, R2 avkodat värde lika med Kshanas heltal gånger IS-GPS-200-skalan inom 2^-52 relativt, R3 inom en halv kvantum från indata. RESULTAT: R1 960 av 960 ord och 96 av 96 delramar; R3 varje parameter, vecka och referenstid exakta; R2 misslyckas för 41 värden (af1, delta-n, IDOT) med 1 till 4 enheter i sista siffran eftersom RTKLIB:s P2_43 är decimalen 1.136868377216160E-13, 2.6e-16 relativt från 2^-43; division med RTKLIB:s konstant ger Kshanas heltal i varje fall. Förblir MODELLED: den registrerade tröskeln för R2 var för snäv för den oberoende referensens egen konstant
ModelledKodning av GPS LNAV-navigeringsmeddelandetgps_lnav
Förmåga
IS-GPS-200 LNAV-delramar 1–3 (gps_lnav::encode_subframes: kvantisering till närmaste av varje klock- och banparameter vid specifikationens skalfaktorer och värde på pi, tvåkomplementspackning, TLM- och HOW-ord, paritet enligt tabell 20-XIV med D29*/D30*-inversion, de paritetslösande bitarna i orden 2 och 10), det meddelande som en GPS L1 C/A-signalgenerator sänder
Oberoende referens
RTKLIB v2.4.2-p13 (BSD-2-Clause, commit 71db0ffa) readrnx som tolkar den dagliga IGS-sändningsfilen BRDC00IGS_R_20250610000_01D_MN.rnx och decode_word/decode_frame som avkodar Kshanas ord, körd som ett separat program; förhandsregistrerad d4d9eb9d innan filen hämtades, tröskel med exakta heltal. Mutation: att trunkera i stället för att avrunda ger 235 fel. Tidigare jämförelser av samma kodare är dokumenterade som resultat: mot gps-sdr-sim, som trunkerar (230 fält), och mot RTKLIB:s skalade värden, vars decimala konstant 2^-43 missade en tröskel på en enhet i sista siffran (41 värden). Efterverifiering av integratören (förblir MODELLED): jämförelsen stämmer och en mutation av paritetsmängden gör den också röd, men förhandsregistreringen d4d9eb9d nådde den publika grenen kl. 20:02:29 UTC, två sekunder efter resultatcommit 1783f904 (20:02:27 UTC) som redan innehåller RTKLIB:s utdata för filen, så ordningen "registrerad innan filen hämtades" kan inte visas; en ny registrering som pushas innan en tidigare osedd sändningsfil hämtas skulle avgöra saken
Tester
tests/gps_lnav_rtklib_integer_oracle.rs::kshana_lnav_integers_decode_in_rtklib_from_an_unseen_broadcast_file (32 satelliter i IGS-utsändningsfilen från 2 mars 2025: 960 av 960 ord klarar RTKLIB-paritet, 96 av 96…
ModelledInförvärvning och C/N0-skattning på verklig IQ-data från månenacquisition,portable_math,realdata::ion_sdr,realdata::lugre
Förmåga
Parallell kodfassökning (acquisition::pcps_acquire: portabel FFT, koherent vikning, icke-koherent ackumulering, chi-tvåtröskel för en falsklarmssannolikhet över hela sökningen), förfining, öppen-slinga-korrelation av prompt-kanalen med kod-Doppler och C/N0-estimatorn M2M4, körd på LuGRE L1 4-bitars IQ-satser inlästa via realdata::ion_sdr
Oberoende referens
GNSS-SDR 0.0.19 (GPL-3.0, separat program, fastlåst konfiguration) på de nio L1-satserna som inte kommer från ytan och flygmottagarens RAW C/N0 (LuGRE Mission Data, Zenodo 16411687, CC BY 4,0), förhandsregistrerad 768cb62b. RESULTAT: Kshanas läsare avkodar alla 288 jämförda intervall identiskt med en oberoende omvandlare; GNSS-SDR deklarerar 266 av 288 sökningar som positiva och Kshana är överens i alla 266 beslut, men bara 250 lokaliseras på GNSS-SDR:s cell (A2 misslyckas); C/N0-delen är tom, eftersom ingen RAW-epok från flygmottagaren ligger inom 30 s från någon sats (närmast 141 s). De flesta positiva är artefakter: de rena tvåkomplementsnivåerna har ett medelvärde på -0.5 för I och Q, en nollfrekvenslinje 32 dB över bruset i ett fack på 1 kHz, som båda mottagarna införskaffar. Två satser (OP5, OP12) uteslöts av misstag: en läsning av deras metadata med siffrorna borttagna togs för en motsägelse mot deras huvuden; den verkliga orsaken var att läsaren inte kunde läsa ett sampling som är bredare än ett ord (sedan dess åtgärdat). Förblir MODELLED
ModelledInförvärvning på verklig IQ-data från månen mot banprediktion av Doppler (beslut på samplingseffekt)acquisition,realdata::ion_sdr
Förmåga
acquisition::pcps_acquire med sitt beslut på samplingseffekt på de nio LuGRE L1-satserna som inte kommer från ytan med mid-rise-nivåer; Dopplerskillnader mellan införskaffade satelliter jämförda med skillnader predikterade från ESA:s slutgiltiga banor och den av Firefly rekonstruerade banan för Blue Ghost
Oberoende referens
Predikterad Doppler från ESA/ESOC:s slutgiltiga banor och NAIF CLPS rekonstruerade bana (xval/lugre-predicted-doppler/predict.py, oberoende av Kshana), förhandsregistrerad 0d1839d2. RESULTAT: alla 288 sökningar passerar tröskeln på brus (samplingseffektstatistika omkring 430 till 520 mot 346,3), så P1 håller trivialt och P3 håller (274 av 288 predikterade som synliga) medan P2 misslyckas för 4033 av 4036 par. Det bandbegränsade frontändsteget höjer varje cells brus omkring 1,46 gånger (fastlåst: brusgolv 292 mot vitt brus 200 på OP2 PRN 1), vilket samplingseffektstatistikan inte ser. Förblir MODELLED
ModelledInförvärvning på verklig IQ-data från månen bedömd mot banpredikterad Doppleracquisition,realdata::ion_sdr
Förmåga
acquisition::pcps_acquire med beslutet med cellmedelvärdesbildning (topp över rutnätets medelcell, robust mot bandbegränsat brus) på de nio LuGRE L1-satserna som inte kommer från ytan med mid-rise-nivåer; Dopplerskillnader mellan införskaffade satelliter jämförda med skillnader predikterade från ESA:s slutgiltiga banor och den av Firefly rekonstruerade banan för Blue Ghost
Oberoende referens
Predikterad Doppler från ESA/ESOC:s slutgiltiga banor och NAIF CLPS rekonstruerade bana (xval/lugre-predicted-doppler/predict.py, oberoende av Kshana), förhandsregistrerad a81a9a4e. RESULTAT: P1 och P3 håller (4 satser, 12 av 12 införvärvningar predikterade som synliga) men P2 misslyckas för 8 av 8 par. De två starkaste paren stämmer med prediktionen i storlek men med omvänt tecken (OP2 PRN 18/24: +7670,0 Hz uppmätt, -7693.9 predikterat; OP17 PRN 11/30: +11155,0, -11114.4), så den registrerade ordningen med I i den låga nibblen är det konjugerade av satserna; de sex detektionerna strax över tröskeln stämmer med inget av tecknen. Förfiningens Dopplerspridning (30 till 50 Hz mellan två körningar) underskattades också av registreringen. Förblir MODELLED
ModelledInförvärvning på undanhållen verklig IQ-data från månen mot banpredikterad Doppleracquisition,realdata::ion_sdr,realdata::lugre
Förmåga
acquisition::pcps_acquire (beslut med cellmedelvärdesbildning, falsklarmssannolikhet 1e-7) med refine_doppler_coherent på de LuGRE L1-satser som spelats in på månens yta (I i den höga nibblen, mid-rise-nivåer); Dopplerskillnader mellan införskaffade satelliter mot skillnader predikterade från ESA:s slutgiltiga banor och Fireflys kärna för landningsplatsen
Oberoende referens
Predikterad Doppler från ESA/ESOC:s slutgiltiga banor och NAIF CLPS Fireflys kärna för landningsplatsen (xval/lugre-predicted-doppler/predict_surface.py, oberoende av Kshana), förhandsregistrerad 2108e6ff på satser som aldrig öppnats tidigare. RESULTAT: icke-tomhet misslyckas; ingen sats innehåller två införvärvningar. OP40 uteslöts (metadata anger en saknad fil); OP38, OP73, OP77_0, OP77_1 införskaffar ingenting och visar inget falsklarm vid 1e-7 (högsta statistika 325 till 356 mot 385,9); OP74 och OP76 införskaffar PRN 31 och OP78_0 och OP78_1 PRN 12, var och en ensam, alla predikterade som synliga. Förblir MODELLED. Redovisade avvikelser: den registrerade Dopplertröskeln på 10 Hz bygger på en syntetisk Monte Carlo av den koherenta förfiningen, inte på spridningen i de redan sedda satserna som integratören bad om; OP40 uteslöts före körningen eftersom dess metadata anger en samplingsfil som datamängden inte levererar
ValidatedGemensam geometri för kommunikation och navigering på månenlunar_service
Förmåga
Topocentriska synvinklar per satellit (azimut medurs från norr, elevation) och snedavstånd vid en namngiven selenografisk plats, givet satelliten i platsens månfasta referenssystem (det validerade påståendet). Signalens avståndsnoggrannhet i rymden exponeras som en scenarioparameter så att svepet över täckningsvolymen ger ett KRAV på avståndsnoggrannhet i stället för ett godkänt/underkänt vid ett fast sigma; den parametern är en utformningsindata utanför det validerade påståendet
Oberoende referens
ANISE 0.10.2 (Nyx Space, MPL-2.0, körs som ett verktyg från xval/anise-service-geometry, binären lunar-look-angles-xval, som inte anropar någon Kshana-kod): ANISE:s egen rutin för azimut, elevation och avstånd (azimuth_elevation_range_sez) från platser byggda med dess konstruktor för latitud, longitud och höjd på pck00011-månen (sfär 1737,4 km), med satelliterna roterade till MOON_PA_DE440 via moon_pa_de440_200625.bpc. 768 samplingar över 8 platser (de 4 namngivna platserna och 4 andra, ovanför och under horisonten), 12 epoker och 8 satelliter stämmer inom 1e-6 grader i azimut och elevation och 1 mm i avstånd och platsposition (fastställt före jämförelsen); uppmätt 2.2e-12 grader, 2.1e-13 grader och 5.6e-9 m. Påstående: platsplacering och synvinklar givet satelliten i platsens kroppsfasta referenssystem. Kshanas egen realisering av ett månfast referenssystem med medelrotation och parametern för avståndsnoggrannhet ligger utanför det; enhetstesterna av geometrin med slutna uttryck finns kvar som stödjande kontroller
Tester
lunar_service::tests (topocentriskt mot handräknad geometri: rakt ovanför, rakt norrut/öster/väster, antipodalt och den degenererade polära östriktningen; den exporterade synlighetsflaggan stämmer med den oberoende synlighets…
ModelledDifferentiell PNT på månenlunar_dpnt
Förmåga
Differentiell referensstation av NovaMoon-klass: upphävande av gemensamt läge + baslinjeväxande residual + DGNSS-skyddsnivåer
Oberoende referens
Identitet för differentiellt felupphävande + återanvändning av maskineriet för SBAS-skyddsnivåer i DO-229E; lösningen med enkeldifferens + WLS korskontrolleras dessutom mot RTKLIB:s lsq()/matinv() (Takasu, BSD-2-Clause, kompilerad C) — oberoende lösarkod, men samma förstaordningens algebra för skillnaden i siktlinje, så fortfarande InternalConsistency
Tester
lunar_dpnt::tests (klockans gemensamma läge tar ut sig exakt; residualen växer med baslinjen; återanvänder SBAS PL; satellitantalet respekteras upp till byggarens gräns på 24, så att en större konstellation inte tyst kan ge en…
ModelledExport för interoperabilitet på månenlunar_interop
Förmåga
Export av LunaNet/IOAG-anpassat månreferenssystem + tid + efemerid (CCSDS OEM + KIF) med rundturskontroll
Oberoende referens
kshanas OEM-export för månen tolkad på nytt av det oberoende tredjepartsbiblioteket oem (R. J. Anderson): referenssystems- och tidstoken och tillstånd per epok stämmer till skrivprecisionen (1 mm / 1e-9 km/s) och en export där TIME_SYSTEM saknas avvisas — en strukturell rundtur för utbyte; de fysikaliska innebörderna av månens referenssystem och tid är validerade av sina egna rader, så detta förblir MODELLED. 0,30 extern jämförelse, ett resultat (förblir MODELLED): en andra oberoende läsare, CCSDS OEM-tolken i Orekit 12,2 (Apache-2.0, strikta standardvärden), vägrar båda månfilerna eftersom den inte implementerar tidssystemen LTC och TCL (den avkodar cratens EME2000/UTC-OEM, och avkodar månfilerna när TIME_SYSTEM ersätts med TDB); oem 0.4.5 avkodar dem inom den skrivna precisionen enbart genom att falla tillbaka från det tidssystem som inte stöds. Utbyte av dessa månfiler med etablerade CCSDS-läsare är inte konstaterat
Tester
lunar_interop::tests (OEM bär lunar REF_FRAME/TIME_SYSTEM; tidsmetadata rundturar; KIF-kuvert); tests/lunar_interoperability_export_reference.rs (kshanas utsända lunara OEM omtolkad av den oberoende oem…
ModelledPoängsättning anpassad till ramverk för PNT-resiliensresilience::arch,resilience::score,resilience::diversity,resilience::timeline
Förmåga
Delpoäng per dimension över Kshanas egna sju resilienskategorier (inte DHS-termer), RethinkPNT:s RDRR-funktioner och Yang-kriterier, var och en märkt Modelled med sin drivkraft; preliminär RPCF-nivå med en grind för begränsad försämring. Självbedömning härledd ur simulering, aldrig certifiering.
Oberoende referens
Handhärledda formler per mått: inverterad Simpson-diversitet, viktat medelvärde som sammansatt mått, begränsade/obegränsade tidslinjelängder, nivåstege efter svagaste länk
ModelledStudie av beslutsinstabilitet i resiliensindexresilience::stats,resilience::study,resilience::panel
Förmåga
Kvantifierar hur ett enda sammansatt index / en RPCF-nivå ordnar om arkitekturer under en försvarbar viktsimplex och en hotensemble (andel byten av top-1, spridning i Kendall-tau, andel nivåbyten, rangintervall); analyser av deklarerat mot uppmätt och av diversitetskollaps.
Oberoende referens
Identiteter för rangstatistik med slutna uttryck (tau i [-1,1] med handräknade värden; deterministisk seedad Dirichlet) och konstruerade stabila/instabila vittnen
Tester
resilience::stats::tests (Kendall-tau hand example, Dirichlet simplex, flip-rate); resilience::study::tests (stability control, instability witness, declared-vs-measured, diversity collapse)
ModelledRepresentativitet för demonstrationen och luckor mot flygningrepresentativeness
Förmåga
Ärlighetsregister per resultat som kvalificerar en demonstrationsutdata: dess externa förankringar, modellerade antaganden, luckor mot flygning och representativt TRL-intervall, med invarianter som upprätthålls (Validated kräver en extern förankring; Modelled kräver en lucka och kan inte hävda mer än TRL 4).
Oberoende referens
Invarianter med slutna uttryck som motsvarar disciplinen i compliance om "representativitet motiverad + luckor mot flygning identifierade"; kopplade till gränsen mellan verifieringsstatus och typ av oberoende referens
ModelledUnderlag för avvägning kvant mot klassiskt (gemensam form)qtrade
Förmåga
Ett reproducerbart TradeEvidence-objekt (fast ram: scenario+seed+motor; gemensamma värden per kvalitetsmått för kvant mot klassiskt med fördel i rätt riktning, valfritt 95-% konfidensintervall, etikett validerad/modellerad) som bär en representativitetspost, så att varje vertikal inom kvant-PNT redovisar avvägningen på samma ärliga sätt.
Oberoende referens
Identiteter med slutna uttryck för fördel/vinnare + trogen inpackning av det befintliga quantum_trade::TradeResult; ärlighet knuten till representativitetsregistret och verifieringsetiketterna
ModelledBibliotek med felmodeller för kvantenheterquantum_devices
Förmåga
Enhetskort (optiska/jonfälle-/kvicksilverjonklockor + klassiska klockor återanvända från holdover/clock_state; kallatominterferometer; klassiska länkar + länkar med intrassling/enstaka fotoner för tidsöverföring) som var och en bär en representativitetspost; länken med intrassling lägger till en skotbegränsad modell för tidsprecision (~jitter/sqrt(R*tau), straff för mörkertal, systematiskt golv).
Oberoende referens
Återanvända koefficienter för klocka/CAI (holdover/clock_state, publicerade värden) + identiteter med slutna uttryck för skotbrus och förlust i länken med intrassling
ModelledBetrodd kvanttidssynkronisering (tidsöverföring + säker distribution + anomali)timetransfer_chain
Förmåga
Kedja för tidsöverföring kvant mot klassiskt från början till slut (klockans fritt löpande drift + länkprecision i kvadratur), en återanvänd skyddsnivå för tidssynkronisering, ett säkerhetsmått mot fördröjnings-/återuppspelningsattacker (1-P_md) samt en detektionssannolikhet för klockanomalier + CUSUM-latens, redovisade som ärligt TradeEvidence med en representativitetspost.
Oberoende referens
Kvadraturbudget med slutna uttryck över återanvända validerade kärnor (ADEV mot Stable32/NIST; gräns för TPL; detektion analytic_pd/pmd); ärlighet knuten till representativitetsregistret
Tester
timetransfer_chain::tests (precisionen förbättras med integration; kvant kan både vinna OCH förlora; PL ändligt-positiv; säkerhets-FoM i [0 1] och växer med attackfördröjning; anomali-Pd monoton; avvägningen is_honest)
ModelledGNSS-fri kvantnavigeringquantum_nav_od
Förmåga
Kvant (kallatominterferometer) mot klassisk navigeringsklassad INS med koppelnavigering under ett GNSS-avbrott: positionsfelets tillväxt, holdover till en positionströskel och avvägningen kvant mot klassiskt som ärligt TradeEvidence; ärlig anmärkning om observerbarhet (biasen är oobserverbar utan en positionsbestämning, så felet växer).
Oberoende referens
Återanvända tröghetsbudgetar korskontrollerade mot en oberoende dubbelintegration i Octave av samma differentialekvation för koppelnavigering (annan körmiljö, delad modell → ReferenceImpl) samt det publicerade kortsiktiga bruset enligt Freier-2016 som ett ensidigt ankare; den sammansatta jämförelsen kvant mot klassiskt förblir MODELLED
Tester
quantum_nav_od::tests (kvant slår klassisk över ett långt bortfall; fördelen beror på bortfallet; avvägningen is_honest); tests/gnss_free_quantum_navigation_reference.rs (positionstillväxt vid dödräkning mot en oberoende…
ModelledFel- och anomalidetektion för kvant-PNT-systemquantum_faults
Förmåga
Märkt katalog över kvantfel (klockans frekvenshopp/drift/låsförlust; sensorns biassteg/bortfall), en ROC AUC för detektionsstatistikan med bootstrap-konfidensintervall och ett minsta detekterbart fel vid ett fast falsklarmstal; en kvantklockstödd övervakare detekterar mindre fel än en klassisk, redovisat som ärligt TradeEvidence.
Oberoende referens
Gaussisk AUC med slutet uttryck = Phi(mu/(sigma*sqrt2)) korskontrollerad mot den externt validerade eval_stats::bootstrap_auc_ci (mot scikit-learn) + analytiska detektionströsklar
Tester
quantum_faults::tests (analytiska kända AUC-värden; empirisk bootstrap-AUC omsluter den slutna formen; kvant detekterar mindre fel / högre AUC; fördelen försvinner för enorma fel; katalog med 5 klasser; avvägningen is_honest)
ValidatedMomentfri attitydrörelse för stel kroppattitude_dynamics
Förmåga
Eulers rotationsrörelseekvationer (I ω̇ = τ − ω × Iω, huvudaxlar och allmän tröghetstensor) kopplade till kinematik för kvaternionattityd (q̇ = ½ q ⊗ ω) och propagerade med en RK4-integrator med fast steg som renormaliserar kvaternionen i varje steg
Oberoende referens
Basilisk 2.9.1 propagering av stel kropp för rymdfarkostens nav (AVSLab, ISC; MRP-attityd via dess egna kopplade navekvationer, svIntegratorRKF78 vid relativ tolerans 1e-12), en oberoende implementation av ekvationerna för momentfri stel kropp: Kshanas RK4-kvaternion (dt 0,01 s) och kroppsvinkelhastigheter stämmer inom 1e-9 över 1e4 s för två allmänna icke-diagonala tröghetsmatriser (sämst 3.3e-11 och 3.4e-12 rad/s); toleransen fastställdes före jämförelsen. Validerat påstående: momentfri rörelse; termen för externt moment jämförs inte. Kontrollerna av bevarandelagar och symmetrisk topp finns kvar som stödjande självkonsistens. Ingen miljö med flexibla kroppar / reglerslingor / externt 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)…
ValidatedRelativ dynamik enligt Clohessy–Wiltshire / Hillcw_dynamics (propagate,second_order_correction,propagate_second_order)
Förmåga
Relativ rörelse för en jagare kring ett mål i en cirkulär referensbana i LVLH-systemet: de linjäriserade Clohessy–Wiltshire-ekvationerna (ẍ−2nẏ−3n²x=0, ÿ+2nẋ=0, z̈+n²z=0) lösta med tillståndsövergångsmatrisen Φ(n,t) av storlek 6×6 med slutet uttryck (Clohessy–Wiltshire 1960; Vallado Alg. 48) med villkoret för begränsad relativ bana ẏ₀=−2n·x₀, och en andra ordningens korrektion med slutet uttryck (cw_dynamics::second_order_correction, CW-svaret på de kvadratiska termerna i de exakta ekvationerna för en cirkulär huvudfarkost; Karlgaard och Lutze 2003, Newman, Lovell och Pratt 2015) sammansatt som cw_dynamics::propagate_second_order. Den validerade utdatan är propagate_second_order; enbart den linjära Φ karakteriseras mot ickelinjär sanning, den är inte validerad
Oberoende referens
Orekit 12,2 (Apache-2.0) NumericalPropagator, tvåkropps, LOFType.QSW, körd som ett separat program (testunderlag oförändrat sedan omgång 1). Förhandsregistrerad tröskel 1e-3 m för varje sampling i varje fall; felrättningen av motorn för andra ordningen kördes om mot den oförändrad (ändring 8c8e768d, skriven innan propagatorn fanns, med redovisning av att luckorna för första ordningen var kända). propagate_second_order stämmer inom 1.15e-7 m (C1), 9.8e-8, 5.4e-8 och 2.2e-8 m; att halvera termen för andra ordningen misslyckas vid 1.85e-3 till 3.14e-3 m. Enbart den linjära Φ avviker från ickelinjär sanning med 1,2 till 6,3 mm vid 100 m över en tredjedels bana (den utelämnade termen för andra ordningen; dess strikta test är ignorerat), så den karakteriseras, den är inte validerad. Interna kontroller som behålls: Φ mot en RK4-integration av Hill-ekvationerna, Φ(t)Φ(−t)=I, identiteterna för begränsad bana och driften −12π·x₀ samt tredje ordningens residualskalning för termen av andra ordningen. Omfattning: cirkulär huvudfarkost, separationer nära 100 m, upp till en tredjedels bana; ingen excentricitet (Tschauner–Hempel), inga J2- eller differentiella luftmotståndstermer; antagande om liten separation
Tester
cw_dynamics::tests (Φ(0)=I, frikopplad SHM tvärs spåret); tests/cw_dynamics_reference.rs (sluten form Φ mot en oberoende RK4-integration med fast steg av samma Hill-ODE:er till <1e-6 över en tredjedels bana; Φ(t)Φ(−t)=I till…
ModelledPassiv geolokalisering av sändare med TDOA/FDOAgeolocation
Förmåga
Lokalisera en sändare (störsändare/spoofer eller en opportunistisk källa för omvänd PNT) utifrån tidsskillnad vid ankomst över ett mottagarnätverk — skärningen mellan hyperboloider τᵢ=(Rᵢ−R₀)/c löst med minsta kvadrater enligt Gauss–Newton — och, genom att lägga till frekvensskillnad vid ankomst (skillnader i avståndshastighet) med rörliga mottagare, gemensamt återhämta position och hastighet; med Cramér–Rao-gränsen (nedre gräns) för positionskovariansen utifrån mätgeometrin
Oberoende referens
Självkonsistens hos estimatorn och geometrin: rundturer framåt→invers, Fisher-/CRLB-identiteten J·CRLB=I, monotonicitet hos GDOP och att estimatorn uppnår sin egen Cramér–Rao-gräns under Monte Carlo-brus — kontroller av intern konsekvens, INTE en extern datamängd, så raden förblir InternalConsistency. MODELLED passiv geolokalisering — modell med punktkälla och siktlinje; inga termer för flervägsutbredning / NLOS, mottagarklockans bias eller atmosfärisk refraktion. 0,30 omgång 2, mot Ho och Chan 1993 och Ho och Xu 2004 (förhandsregistrerad f89018b8, 1 % av varje utskrivet värde), ett resultat (förblir MODELLED): gränsen för ytbegränsad TDOA återger de geometriska faktorerna för 40 N (-0.11 %, -0.02 %) och den maximala TDOA; den gemensamma gränsen för TDOA+FDOA återger fig. 6 (+0,06 %, -0.17 %) och, vid den källa som författarnas egen kod anger för fig. 7 (ändring skriven efter att det resultatet setts, redovisad), fig. 7 (+0,11 %, -0.02 %); den är lika med författarnas publicerade kod för gränsen (BSD-liknande, körd under GNU Octave) till 3e-12; den kovariansviktade maximum likelihood-lösaren uppnår den utskrivna gränsen (+0,3 till +0,4 %). Ottawa-faktorerna som artikeln skriver ut från en Monte Carlo (251, 7,1) avviker med +1,3 % och +4,4 %, utanför tröskeln på 1 %
Tester
geolocation::tests (brusfri TDOA framåt→invers till 1e-6 m; J·CRLB=I med en symmetrisk PD-kovarians; CRLB:s positionsvarianssumma är icke-växande när en mottagare läggs till; gemensam TDOA+FDOA återvinner en rörlig…
ValidatedToppavbromsning vid ballistisk 3-DoF-inträde mot det publicerade nominella fallet för Stardustentry_eo_ascent::entry_heating (simulate_entry,inertial_to_relative,EntryHeatingScenario)
Förmåga
Ett 3-DoF-inträde för en punktmassa över en roterande sfärisk jord genom US Standard Atmosphere 1976, integrerat med RK4 från ett tröghetsbaserat inträdestillstånd, med redovisning av toppavbromsningen och dess höjd; det planetrelativa inträdestillståndet från det tröghetsbaserade. Kan köras som scenariotypen entry-heating.
Oberoende referens
Det nominella fallet för Stardust enligt Desai, Mitcheltree och Cheatwood (1999, NASA NTRS 20050042027): maximal avbromsning 33,4 g från 12,6 km/s planetrelativt med uppskjutningsmassan 45,8 kg, en 6-DoF POST-bana med hela den aerodynamiska databasen; inträdesgräns enligt Desai, Lyons, Tooley och Kangas (NTRS 20090004445): radie 6503,14 km, tröghetsbaserat 12,9 km/s vid -8.2 grader. Trösklar förhandsregistrerade i xval/entry-stardust/PREREGISTRATION.md före någon körning på dessa indata; båda höll vid första körningen. VAD SOM INTE GÄLLER: ett publicerat fall och en storhet (toppavbromsning, som i den ballistiska approximationen inte beror på den ballistiska koefficienten); inträdets latitud och kurs är antagna; uppvärmning, värmebelastning och landningspunkt kontrolleras inte mot det; punktmassa med konstant C_D, inte 6-DoF.
Tester
tests/entry_stardust_published.rs (topp 35,44 g mot publicerade 33,4 g, +6,1 %, tröskel 10 %; planetrelativ ingångshastighet 12,551 km/s mot 12,6, tröskel 0,1 km/s); entry_eo_ascent::entry_heating::tests (roterande system…
ModelledKonvektiv inträdesuppvärmning i stagnationspunkten (Sutton-Graves) vid ett 3-DoF-inträdeentry_eo_ascent::entry_heating (stagnation_heat_flux,simulate_entry)
Förmåga
Konvektivt värmeflöde i stagnationspunkten q = k sqrt(rho/R_n) V^3 med Sutton-Graves-konstanterna för jordluft och Mars atmosfär (NASA TR R-376, 1971), dess topp och den integrerade värmebelastningen längs ett 3-DoF-inträde, ballistiskt eller lyftande med konstant bankning, på jorden eller Mars.
Oberoende referens
Intern konsekvens: sambandet och konstanterna som de är utskrivna i NASA TR R-376, en konvergenskontroll med halverat steg och den förväntade ordningen mellan toppar för uppvärmning och avbromsning. VAD SOM INTE GÄLLER: inget publicerat uppvärmningsvärde har jämförts (Stardust-artiklarna anger en konstruktionsgräns och en uppskattning av konvektiv plus strålningsuppvärmning på omkring 1200 W/cm2, som ett samband enbart för konvektion inte kan nå); ingen strålningsuppvärmning, ingen korrektion för väggtemperatur eller katalycitet och inget svar från värmeskyddet.
ModelledRadiometri, MTF, relativt kantsvar och GIQE 4 NIIRS för elektrooptisk avbildareentry_eo_ascent::eo_radiometry (Imager,snr_budget,giqe4_niirs,EoRadiometryScenario)
Förmåga
Signal-brusbudget för en nadiravbildare (lambertisk scenradians, kameraekvationen, skott-, mörker-, avläsnings- och kvantiseringsbrus), systemets MTF vid Nyquist som produkten av diffraktion för en oskymd apertur, detektorapertur, linjär utsmetning och gaussisk jitter, kantsvaret och det relativa kantsvaret integrerade från den MTF:en, Q = lambda F / p, och GIQE version 4 NIIRS utan MTF-kompensation. Kan köras som scenariotypen eo-radiometry.
Oberoende referens
Slutna uttryck: diffraktions-MTF vid halva gränsfrekvensen, den ena pixelns rampkant för en ren detektorapertur (RER 1), normalfördelningens CDF-kant för en gaussisk oskärpa (RER = erf(0.5/(sigma sqrt 2))), skalning av skottbrus och GIQE 4-koefficienterna som de publicerats (Leachtenauer m.fl., Applied Optics 36(32), 1997). VAD SOM INTE GÄLLER: ingen extern avbildare, uppmätt MTF eller betygsatt bild har jämförts; GIQE är en empirisk regression med eget fel; inget strökljus, ingen atmosfärisk MTF, ingen MTF-kompensation och ingen aliasing.
ModelledFörluster vid uppskjutning på grund av gravitation, luftmotstånd, styrning och mottryckentry_eo_ascent::ascent (simulate_ascent,AscentScenario); reentry::us76_pressure
Förmåga
Plan uppstigning med gravitationssväng för ett flerstegsfordon över en icke-roterande sfärisk jord genom US Standard Atmosphere 1976 (densitet och tryck), med en nickspark, dragkraft som minskas av munstyckets mottryck, utbrända steg vid exakta stegbundna gränser och förlusterna från gravitation, luftmotstånd, styrning och mottryck integrerade vid sidan av tillståndet. Kan köras som scenariotypen ascent-losses.
Oberoende referens
Intern konsekvens: den exakta identiteten utbränningshastighet = summa Isp g0 ln(m0/mf) minus de fyra integrerade förlusterna (residual under 1e-6 m/s), Tsiolkovskijs ekvation för en vertikal förbränning i vakuum där gravitationen är den enda förlusten samt US76:s tryck vid havsnivå och vid tropopausen. VAD SOM INTE GÄLLER: inget publicerat fordons förluster har jämförts; ingen jordrotation, ingen glidfas, ingen strypning och ingen styrning utöver sparken; konstant C_D; inte en banoptimerare.
ModelledTWSTFT-tvåvägsekvation, osäkerhetsbudget och länkstabilitet med flicker och dygnsbunden icke-reciprocitettwstft_budget (counter_readings,solve_offset,combined_uncertainty,flicker_phase,two_way_series,series_stability); time_transfer_budget (TimeTransferBudgetScenario,read_series)
Förmåga
TWSTFT-tvåvägsekvationen löst för T_A - T_B med stationernas sänd- och mottagningsfördröjningar, jonosfärens asymmetri uppåt/nedåt i Ku-bandet, skillnaden i transponderfördröjning och Sagnac-termerna, mot dess exakta framåtmodell; en osäkerhetsbudget i kvadratur med länkens TDEV som typ A-term; en tvåvägsserie med vitt och flicker-fasbrus (Kasdin-Walter), en dygnsbunden icke-reciprocitet och en konstant reciprocitetsresidual; samt hastighet, residual-RMS, TDEV och ADEV för tillhandahållna stationsklockserier i Circular T, MJD-CSV eller IGS RINEX. Kan köras som scenariotypen time-transfer-budget.
Oberoende referens
Intern konsekvens: framåtmodellen och den lösta ekvationen stämmer till 1e-15 s, Sagnac-termen är lika med modulens oberoende BIPM 2A omega/c^2-slingform, jonosfärstermen är 40,3 TEC (1/f_up^2 - 1/f_down^2)/c, och brusprocesserna visar sina förväntade TDEV-former. VAD SOM INTE GÄLLER: ingen verklig TWSTFT-mätning eller kalibreringsrapport har jämförts; de angivna fördröjningarna och osäkerheterna är indata, inte uppmätta; stabiliteten hos tillhandahållna serier redovisas, den är inte validerad.
Tester
twstft_budget::tests (tvåvägsekvationen återvinner förskjutningen exakt; Sagnac-termen är lika med BIPM:s slutna loopform; jonosfärstermen följer frekvensuppdelningen och troposfären upphävs; flicker-fas har…
ModelledNumerik för optisk atmosfär längs snedlinjer: Rytov-varians, scintillation, fadningssannolikhet för gamma-gamma, aperturmedelvärdesbildning, optiskt djup för moln och 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)
Förmåga
Hufnagel-Valley Cn2 integrerad längs en snedlinje för Rytov-variansen för plan och sfärisk våg (upplänk och nedlänk), scintillationsindex enligt Andrews-Phillips och gamma-gamma-parametrar, fadningssannolikheten för gamma-gamma och fadningsmarginalen, aperturmedelvärdesfaktorn vid svag turbulens, det optiska djupet för moln hos en vätskevattenkolonn samt det optiska djupet för klar luft enligt Kim-sikt plus Rayleigh, som ersätter den sammanslagna atmosfärsförlusten i den optiska länkbudgeten när en atmosfär tillhandahålls. Kan köras inom scenariotypen optical-atmosphere.
Oberoende referens
Numeriken jämförs med ett oberoende program (xval/optical-atmosphere/oracle.py, mpmath 1.4.1 med 30 siffror, tanh-sinh-kvadratur över den ursprungliga höjdvariabeln och Bessel-K-täthet för gamma-gamma) som inte delar någon kod med Kshana, under trösklar fastställda innan någon implementation fanns (xval/optical-atmosphere/PREREGISTRATION.md). VARFÖR MODELLED: den oberoende referensen utvärderar samma publicerade formler, så den kontrollerar implementationen av de angivna formlerna och inte atmosfären; inget valideringsexempel från ITU-R och ingen uppmätt post för scintillation eller snedlinjeextinktion används (ITU-värdena är ett öppet licensbeslut och hålls utanför förvaret). Nivån på Cn2-profilen, sikten, skalhöjderna för aerosol och molekyler, aperturmedelvärdesbildningens väglängd och momentmatchningen som används för att tillämpa aperturmedelvärdesbildning på gamma-gamma-parametrarna är angivna indata eller konventioner. En källrad i modulen noterar att en vitt kopierad översikt skriver ut den andra scintillationsexponenten som 7/6 där Andrews och Phillips anger 5/6; formen med 5/6 är den som implementeras
Tester
tests/optical_atmosphere_reference.rs (förhandsregistrerade trösklar A1-A3 mot den oberoende mpmath-referensen: 216 Rytov-rutnätspunkter sämsta relativa fel 3.4e-7 mot en tröskel på 1e-6, scintillation sämst 4.5e-16, aperturfaktor…
ModelledVäderstyrd tillgänglighet för optiska markplatser och avståndskorrelerad platsdiversitetoptical_weather; optical_sitediv; optical_techniques; optical_atmosphere_scenario
Förmåga
Tillgänglighet för en optisk länk mot en angiven länkmarginal utifrån ett lognormalt klimat för molnens vätskevatten (mängd enligt ITU-R P.840, extinktion enligt geometrisk optik) och den oberoende turbulensfadningen för gamma-gamma, den länkmarginal som behövs för önskade tillgängligheter och det tak som ingen marginal kan lyfta, lognormala avbrottslängder, vad-händer-om för förbättringstekniker och en enfaktors gaussisk copula för nätverkstillgänglighet vars parkorrelation är exp(-avstånd/dekorrelationslängd). Kan köras som scenariotypen optical-atmosphere.
Oberoende referens
Intern konsekvens: gränsfall med slutna uttryck och monotonicitet hos diversitetsmodellen, det slutna uttrycket för molntaket och de lognormala avbrottsidentiteterna. INGEN extern oberoende referens görs gällande och ingen har jämförts: ingen uppmätt post för tillgänglighet hos optiska markstationer eller för moln-fri siktlinje används. VARFÖR MODELLED: molnklimatet (sannolikhet för moln, median och spridning för vätskevattenkolonnen, avbrottslängder), oberoendet mellan moln och turbulens, den gaussiska copulaformen, dekorrelationslängden och varje teknikvinst är antaganden; de medföljande scenarierna anger ILLUSTRATIVE klimat, inte en datamängd. För att uppgradera den här raden krävs en citerad uppmätt tillgänglighetspost och en tröskel som registrerats före jämförelsen
Tester
tests/optical_atmosphere_identities.rs (tröskel A4: rho = 0 är lika med den oberoende unionen och rho = 1 den bästa enskilda platsen till 1e-12, och noll monotonibrott i antalet platser och i korrelationen; den första…
ModelledKontinuitet i tidssynkronisering och avståndsmätning genom optiska avbrottoptical_outage_holdover (couple,clock_psds); holdover (coast_phase_sigma,holdover_seconds,phase_to_range_m)
Förmåga
Avbrottslängdsfördelningen för en optisk plats kopplad till klockans fritt löpande varians med slutet uttryck i holdover-modellen: fel i tidssynkronisering och avståndsmätning vid angivna kvantiler av avbrottslängden, holdover till en tröskel för tidssynkronisering, andelen avbrott och avbrottstid som ligger inom den och tillgängligheten för tidssynkronisering A + U E[min(D, T_h)]/E[D], för de klassiska och de kvantbaserade klockklasserna. Kan köras inom scenariotypen optical-atmosphere.
Oberoende referens
Intern konsekvens med holdover-modulen, bit för bit; INGEN extern oberoende referens görs gällande. Klassernas PSD:er är de syntetiserade golven vid långa tau som holdover-modulen redan bär, så siffrorna ärver dess angivna förbehåll att holdover till en snäv tröskel styrs av det antagna golvet för rött brus och inte av den citerade Allan-avvikelsen. Avbrottslängderna är en lognormal modell med angivna parametrar, inte en uppmätt post över molnuppehåll
Tester
tests/optical_atmosphere_identities.rs (tröskel A6: tidsfelet per bortfall är lika med holdover::coast_phase_sigma och avståndsfelet är lika med phase_to_range_m bit för bit över 9 klockor, 3 medellängder, 3 spridningar och 4…
ModelledOptisk länkmarginal över tid: en seedad realisering av en plats väderoptical_timeseries (site_series,SiteModel,SeriesSpec,Series); optical_atmosphere_scenario (TimeseriesSpec)
Förmåga
En frivillig tabell [timeseries] (duration, step, seed) gör att typen optical-atmosphere också skriver, per plats, en seedad realisering av den angivna platsmodellen genom tiden: molnepisoder (klara perioder exponentiella, molnavbrott lognormala med angivet medelvärde och angiven spridning, andelen tid i moln satt till den angivna molnsannolikheten), en lognormal vätskevattenkolonn per molnepisod, ett gamma-gamma-scintillationssampling per steg, och utifrån dem länkmarginalen, moln- och scintillationsfadningarna och flaggan för länk uppe, med den realiserade tillgängligheten, molnandelen, antalet avbrott och det längsta avbrottet. Utan tabellen är resultatet dokumentet 0,37. Dragningarna går via de portabla vägarna för fördelningar och matematik, så native och wasm32 ger samma byte.
Oberoende referens
Endast intern konsekvens; INGEN extern oberoende referens görs gällande och ingen finns för en väderrealisering. Kontrollerna jämför en dragning med den statistiska utdatan från samma modell, så ett godkänt resultat säger att generatorn samplar de angivna fördelningarna (dragningens tillgänglighet och molnandel ligger inom förhandsregistrerade toleranser kring de angivna värdena), inte att någon verklig plats beter sig så. Serien är en realisering, inte klimatet: dess tillgänglighet skiljer sig från den angivna med dragningens samplingsfel, och scintillationssamplingar vid olika steg är oberoende, en angiven förenkling av en process som dekorrelerar på millisekunder. Väderindatan förblir scenariots antaganden.
Tester
tests/optical_atmosphere_timeseries.rs (trösklarna T1-T6 i xval/optical-atmosphere/PREREGISTRATION-timeseries.md, fastställda före den första körningen: samma seed ger samma bytes och en annan seed andra bytes; ingen nyckel utan tabellen; över…
ModelledLäsare för TRK-2-18 Orbit Data File och modell för rampad 2-vägs-Doppler vid Marsodf (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)
Förmåga
En läsare för DSN Orbit Data Files (TRK-2-18): postgrupperna om 36 byte (filetikett, identifierare, bandata, ramper per station, klockförskjutningar, sammanfattning, filslut), och i varje bandatapost tidsmärket sedan 1950, nedlänks- och upplänksfördröjningar, observerbar, stationer, datatyp, band, giltighet, kanal, rymdfarkost, referensfrekvensen på 46 bitar och komprimeringstiden; rampernas start- och sluttider, hastigheter och startfrekvenser. Ovanpå den en modell för rampad 2-vägs-Doppler i X-band (integrerade upplänksramper, ljustid för rundturen med Shapiro och troposfär, DSN-stationer via IAU 2006/2000A CIO-kedjan och IERS EOP, stationstid) och en batchbanbestämning för en Mars-omloppsfarkost (GMM-3-fält, tredje kroppar, SRP, luftmotstånd).
Oberoende referens
PDS3-etiketten som DSN:s databehandlingsprocess för navigering producerade tillsammans med filen (NASA PDS Geosciences Node, MRO-M-RSS-1-MAGR-V1.0), kontrollerad mot trösklar förhandsregistrerade i xval/mro-odf/PREREGISTRATION.md innan läsaren fanns. MODELLED eftersom en registrerad tröskel (filslutstabellens rader, 121 i filen mot 120 i etiketten) missades; etiketten är internt oförenlig där. Steg 2 (xval/mro-od/PREREGISTRATION.md, ändringarna A1 och A2 före det bedömda resultatet): den Doppler som predikteras från MRO-navigeringsteamets rekonstruktion (mro_psp5, NAIF) stämmer med den observerade rampade 2-vägs-Dopplern till 12,5 mHz på pass som inte använts i utvecklingen, tröskeln uppfylldes; den registrerade banbestämningen misslyckades på den bedömda bågen (normalmatrisen inte positivt definit) och gav ingen bana, så banans trösklar uppfylldes inte. Körning 2 (xval/mro-od/PREREGISTRATION-RUN2.md, en dämpad estimator, samma båge och trösklar, en bedömningsändring R2-A1 redovisad i docs/revisions) konvergerade: den skattade banan ligger inom 0,36 km RMS (0,53 km maximalt) från rekonstruktionen, trösklarna uppfylldes, men post-fit-Doppler-RMS är 48,6 mHz mot tröskeln 30 mHz, inte uppfylld, så raden förblir MODELLED. VAD SOM INTE GÄLLER: ingen skattad bana har uppfyllt varje registrerad tröskel; jonosfär, solplasma och merparten av antennförskjutningen (en radiell förskjutning på 1,5 m anpassas på utvecklingspasset) är inte modellerade.
Tester
tests/mro_odf_reader_label_oracle.rs (en verklig MRO ODF, 2007-304/305, mot sin PDS-etikett: antal poster, gruppositioner, stationer, start- och sluttider och datatyper stämmer; filslutstabellens radantal missar med…
ValidatedAttitydreglering med sluten slinga och MRP-återkoppling med reaktionshjulaocs (AocsConfig,required_torque,motor_torques,rates,rk4_step,simulate,mrp_from_quaternion); aocs_kind (AocsScenario)
Förmåga
Tröghetsriktad attitydreglering av ett stelt nav med tre eller fler balanserade reaktionshjul: MRP-återkopplingslagen L_r = -K sigma_BR - P omega_BR (Schaub och Junkins), motormoment för hjulen med minimal norm G_s u = -L_r begränsade till varje hjuls gräns, den kopplade dynamiken för nav och hjul där navets tröghet bär hjulens spinntröghet, kvaternionkinematik, RK4 med nollte ordningens hållning. Kan köras som scenariotypen aocs (slinga med sant tillstånd).
Oberoende referens
Basilisk 2.9.1 (AVSLab, ISC; bsk-hjulkörningen som ett separat verktyg, aldrig länkat eller inkluderat): rymdfarkostens nav, reactionWheelStateEffector (BalancedWheels, momentgräns på), simpleNav, inertial3D, attTrackingError, mrpFeedback (ingen integralterm) och rwMotorTorque vid dt = 0,1 s med dess RK4, mot Kshanas egen implementation i tre fall (tre ortogonala hjul; en fyrhjulspyramid; ett mättande fyrhjulsfall), trösklar förhandsregistrerade i xval/aocs-basilisk/PREREGISTRATION.md före koden och körningen. Alla trösklar höll vid första körningen. VAD SOM INTE GÄLLER: sensorbrus i slingan, integralåterkoppling, följningsstyrning, hjulfriktion, jitter, varvtalsgränser och effekt, någon verklig rymdfarkosts förstärkningar; jämförelsen kontrollerar implementationen av lagen och dynamiken mot en oberoende sådan, inte en flygregulator.
Tester
tests/aocs_basilisk_oracle.rs (3 fall, 601 sampel vardera: MRP sämst 2.4e-14, tröskel 1e-9; kroppshastighet 1.6e-15 rad/s, tröskel 1e-9; hjulvarvtal 2.9e-11 rad/s, tröskel 1e-6; pålagt motormoment 1.2e-13 N m, tröskel 1e-9; t = 0 moment…
ModelledAttitydskattning med multiplikativt EKF från ett gyro och en stjärnkameraaocs_mekf (Mekf,GyroSim,attitude_error,spd_solve6); aocs_kind (estimator)
Förmåga
Det multiplikativa EKF:et enligt Lefferts-Markley-Shuster: attitydfel i kroppssystemet och gyrobiastillstånd, propagering med gyrots vinkelhastighet minus biasskattningen och Farrenkopfs diskreta processbrus (vinkel- och hastighetsslumpvandring), uppdateringar från stjärnkameran med residualen 2 vec(q^-1 q_st) i Joseph-form och den multiplikativa återställningen; en diskret Farrenkopf-simulator för gyro och stjärnkamera. Typen aocs kan sluta regleringsslingan på sin skattning.
Oberoende referens
Intern konsekvens: filtrets normaliserade skattningsfel i kvadrat mot sanning som simulerats från samma sensormodeller över Monte Carlo-seeds, och konvergens hos attityd- och biasskattningarna. VAD SOM INTE GÄLLER: ingen extern estimator eller flygdata har jämförts (Basilisk 2.9.1 har ingen MEKF-modul); sensormodellerna är läroboksmodellerna, utan snedmontering, skalfaktor eller effekter av stjärnkamerans synfält.
Tester
aocs_mekf::tests::mekf_is_consistent_over_monte_carlo_seeds (40 seeds, medel-NEES med sex frihetsgrader över andra halvan inom 4,5 till 7,5); aocs_mekf::tests::star_tracker_updates_bound_the_attitude_error…
ValidatedAttitydbestämning med Wahba/TRIAD/QUESTwahba
Förmåga
Optimal treaxlig attityd från viktade vektorobservationer (stjärn-/sol-/magnetometerriktningar): den deterministiska tvåvektormetoden TRIAD, Davenports q-metod (den exakta minimeraren av Wahba-förlusten — den optimala kvaternionen är egenvektorn till det största egenvärdet hos Davenport-matrisen K av storlek 4×4, löst med en symmetrisk Jacobi-egenvärdeslösning) och QUEST (Newton/sekant-rot av K:s karakteristiska ekvation med startvärde Σ vikter, därefter återvinning av kvaternionen via Gibbs-vektorn)
Oberoende referens
scipy.spatial.transform.Rotation.align_vectors (SciPy 1,13; Virtanen m.fl., Nature Methods 2020) — Kabsch/Markley-SVD-lösningen på Wahbas problem, en genuint oberoende algoritm (SVD av attitydprofilmatrisen) och kodbas jämfört med kshanas egenvärdeslösning för Davenport-K / QUEST-metoden med karakteristisk rot, som beräknar SAMMA entydigt definierade Wahba-optimala attityd. På brusfria viktade mängder av vektorobservationer återger TRIAD, q-metoden och QUEST scipys optimala rotation till <1e-9 rad (jämfört via det teckeninvarianta attitydfelsvinkeln). Det statistiska Monte Carlo-påståendet för brusiga fall att "optimal slår TRIAD" förblir MODELLED (ingen oberoende referens); endast enhetsvektorobservationer av punktriktningar — ingen modellering av sensorns synfält, bias eller tidskorrelation, och QUEST är singulär vid 180° (q-metoden täcker det fallet)
Tester
wahba::tests (A(identitetskvaternion)=I; Jacobi-egenvärdeslösaren uppfyller Kv=λv och bevarar spåret på en känd symmetrisk matris; K är symmetrisk); tests/wahba_reference.rs (TRIAD, Davenports q-metod och QUEST…
ValidatedDetektionsstatistika för GNSS-införvärvning med kvadratisk detektoracquisition
Förmåga
Icke-koherent införvärvningsdetektor med kvadratisk detektor över en sökning i kodfas × Doppler: falsklarmssannolikhet (central χ² med 2M frihetsgrader), tröskeln som uppnår ett målvärde på P_fa (χ²-CDF inverterad med bisektion) och detektionssannolikhet (icke-central χ² med icke-centralitet 2M·ρ för post-korrelations-SNR ρ per cell), med den generaliserade Marcum Q-funktionen Q_M(a,b)=1−F_{χ'²(2M,a²)}(b²)
Oberoende referens
scipy.stats.ncx2 / scipy.stats.chi2 (SciPy 1,13; Cephes/Boost) — en oberoende algoritm (kedjebråk för icke-central/central χ²) jämfört med kshanas serie för ofullständig gamma (raim::chi2_cdf / noncentral_chi2_cdf), som beräknar samma entydigt definierade KÄRNA för detektionsstatistika: den generaliserade Marcum Q_M(a,b)=ncx2.sf(b²,2M,a²), detektionssannolikheten P_d, falsklarmssannolikheten P_fa och inversionen P_fa→tröskel, med överensstämmelse till ~1e-6 — samma oberoendegrund som i den Validated raden "RAIM/ARAIM integrity statistical kernel". Endast KÄRNAN: CFAR med cellmedelvärdesbildning per cell och förlusten när kod-/Dopplerfack överlappas förblir MODELLED
Tester
acquisition::tests (Marcum-Q centralt fall Q_1(0,b)=exp(−b²/2); identiteten P_d=Q_M(√(2Mρ),√γ); rundtur P_fa↔tröskel över M och P_fa; ROC-monotoni — P_d stiger med SNR, faller med tröskeln, P_d→P_fa när…
ValidatedHeltalsosäkerhet för bärvågsfas hos GNSS (LAMBDA)lambda
Förmåga
Fixering av osäkerhet med heltalsminstakvadrater på LAMBDA-vis: en volymbevarande heltalstransformation (Z) för dekorrelering (heltals-Gauss-storleksreduktion av L D Lᵀ-faktorn) + en exakt djupet-först-sökning med branch-and-bound enligt Schnorr–Euchner för heltalsminstakvadrater, med kvottestet på de två bästa kandidaterna (det validerade påståendet); plus den bootstrappade framgångsandelen med slutet uttryck P_s=∏(2Φ(1/(2σ_{i|I}))−1), som kontrolleras enbart internt och ligger utanför det validerade påståendet
Oberoende referens
RTKLIB v2.4.2-p13 lambda() (dess källfil lambda.c, T. Takasu, BSD-2-Clause), en oberoende LAMBDA-reduktion och MLAMBDA-sökning kompilerad från C och körd som ett verktyg, på 300 slumpmässiga kovarianser (n 2 till 10): heltalsminstakvadrater har en unik minimerare, så de fixerade heltalen måste vara identiska (0 avvikelser) och de två bästa kvadrerade normerna, som matar kvottestet, stämmer till 1e-9 relativt (uppmätt 5.6e-13); toleransen fastställdes före jämförelsen. Validerat påstående: ILS-lösningen och dess två bästa normer. RTKLIB beräknar inte den bootstrappade framgångsandelen, som förblir internt kontrollerad mot en Monte Carlo av avrundningsprocessen; invarianterna för Z-transformen och uttömmande uppräkning finns kvar som stödjande kontroller. Endast heltals-Gauss-dekorrelering (omordningspermutationerna i hela LAMBDA-reduktionen påskyndar sökningen men ändrar varken det exakta ILS-svaret eller den bootstrappade andelen)
Tester
lambda::tests (L D Lᵀ rekonstruerar Q); tests/lambda_reference.rs (Z-transformen är unimodulär |det Z|=1 med Q_z=ZᵀQZ SPD, determinantbevarande, och lägre total korrelation utanför diagonalen; Schnorr–Euchner-ILS stämmer med…
ValidatedB-plansstyrning och gravitationsassistans med patched conicbplane
Förmåga
Geometri för hyperbolisk förbiflygning (a=−μ/v∞², e=1+r_p·v∞²/μ, svängvinkel δ=2·asin(1/e), siktavstånd |B|=|a|·√(e²−1)), B-planets målpunktssystem Ŝ/T̂/R̂ och uppdelningen B·T̂/B·R̂, och en gravitationsassistans med patched conic (v∞-storleken bevaras, riktningen böjs av δ, heliocentriskt Δv=2·v∞·sin(δ/2) utan drivmedelskostnad) med Tisserand-parametern T_P=a_P/a+2√((a/a_P)(1−e²))cos i
Oberoende referens
GMAT R2026a (Apache-2.0, körd som ett separat program) på 192 hyperboliska jordtillstånd: B.T, B.R och |B| inom 1e-6 km (sämst 1.35e-8 km), svängvinkeln och båda asymptoterna inom 1e-9 rad (sämst 9.3e-15 rad); assistansens hastighetsändring från GMAT C3 och asymptoter inom 1e-9 v_inf (sämst 5.6e-14); heliocentrisk SMA, ECC och INC för 350 solcentrerade tillstånd före och efter assistansen inom 1e-9 relativt och 1e-12 rad (sämst 2.2e-14 och 4.1e-14 rad); Tisserand-parametern mot sbpy 0.6.0 (BSD-3) på GMAT-element inom 1e-9 (sämst 1.3e-15) och mot 3 - C3/v_c^2 (8.9e-16); samt Tisserands slutna uttryck mot Kasuga och Jewitt (2019) tabell 8,1 för 12 objekt inom den utskrivna avrundningsgränsen (sämst 0,39 av den; ett publicerat genomräknat P1-värde). Förhandsregistrerad (436293bf; heliocentrisk reparation 6fd9f5e6); ändring 374c806b, skriven efter att orakelfilerna genererats och före något Kshana-värde, vidgade inklinationens indatafilter från 1e-2 till 1e-3 rad, vilket behöll fler och sämre betingade tillstånd. MODELLED omfattning: förbiflygning med patched conic och två kroppar i en cirkulär planetbana, ingen övergång mellan påverkanssfärer, inga störningar vid mötet och ingen efemerid
Tester
bplane::tests (förbiflygningsskalärerna uppfyller de slutna formerna med två överensstämmande |B|-identiteter och |B|>r_p; svängvinkeln avtar med periapsisradien och når gränserna δ→0 / δ→π; avböjningen bevarar v∞-hastigheten och…
ValidatedStrålformning med CRPA-grupp mot störning (anti-jam)crpa
Förmåga
Nollställning med antenn för kontrollerat mottagningsmönster: komplexa gruppstyrvektorer a(û)=exp(j·k·pₙ·û), deterministisk nollstyrning (enhetsförstärkning mot SV, exakta nollor mot upp till N−1 störsändare via minimalnormen w=Aᴴ(AAᴴ)⁻¹b) och adaptiva MVDR-vikter w=R⁻¹a_sv/(a_svᴴR⁻¹a_sv) som självstyr djupa nollor mot starka störkällor (med en komplex linjäralgebrakärna skriven från grunden)
Oberoende referens
numpy.linalg / scipy.linalg (LAPACK zgesv, komplex lösning) — en oberoende kodbas för linjär algebra jämfört med kshanas komplexa kärna skriven från grunden, som beräknar SAMMA entydigt definierade vikter: MVDR w=R⁻¹a_sv/(a_svᴴR⁻¹a_sv) och minimalnorms nollstyrning w=Aᴴ(AAᴴ)⁻¹b, samt de resulterande gruppsvarsförstärkningarna, med överensstämmelse till ~1e-9 — samma klass av oberoende referens som i raderna Validated DOP (gnss_lib_py) och Fisher-information (numpy). MODELLED smalbandig grupp i fjärrfält med identiska isotropa element — ingen ömsesidig koppling, ingen felmatchning per element, ingen ändlig bandbredd (STAP) och inget skattningsfel i styrvektorn
Tester
crpa::tests (komplexa aritmetiska identiteter inkl. z/z=1, |exp(jθ)|=1, zᴴz=|z|²; deterministisk nollstyrning ger exakt enhetsförstärkning för SV och <1e-9 störsändarnollor på en ULA med 4 element och 3 störsändare; en array med N element avvisar…
ValidatedKlockbrus med potenslag enligt IEEE-1139 + golv för flicker-FMpowerlaw
Förmåga
Konverteringen PSD↔Allan-varians enligt IEEE-1139 med fem koefficienter S_y(f)=Σh_α f^α → σ_y²(τ) (vit/flicker-PM, vit/flicker/slumpvandrings-FM), golvet för flicker-FM σ_y=√(2 ln2·h_{-1}) som en förstklassig anpassningsbar term, och en icke-negativ anpassning av FM-familjen i basen {(2π²/3)τ, 2 ln2, 1/(2τ)} som återger det golv som driftbasen {1/τ,τ,τ³} inte kan representera
Oberoende referens
allantools 2024,06 (A. Wallin; koefficienter enligt Kasdin & Walter 1992 / Vernotte 2015) — en oberoende tredjepartskodbas och citeringslinje som beräknar SAMMA entydigt definierade IEEE-1139 PSD→Allan-konvertering σ_y(τ) för var och en av de fem brustyperna med potenslag. kshanas powerlaw::allan_deviation stämmer med allantools slutna uttryck (vit/flicker-FM, RW-FM och vit PM till <5e-9 relativt; flicker-PM till ~1e-5 — den verkliga oberoendesignalen, eftersom kshana använder den tabulerade konstanten 1,038 i NIST-SP-1065 medan allantools använder hela 3γ−ln2), och golvet för flicker-FM √(2 ln2·h_{-1}) stämmer med allantools över hela stegen — samma tröskel som raderna Validated MDEV/TDEV/Theo1/MTIE klarar. MODELLED stationär potenslagsmodell — ingen deterministisk driftterm (τ²); koefficienter per enhet / uppmätta golv förblir Modelled
Tester
powerlaw::tests (varje ren brustyp visar sin signatur-ADEV-lutning i log-log — vit FM −½, flicker FM 0, random-walk FM +½, vit PM −1; flicker-FM-termen är ett platt golv lika med √(2 ln2·h_{-1}) över fem dekader…
ValidatedUtbyte av kovariansblock i CCSDS OEMoem (covariance_block_kvn,parse_covariance_block)
Förmåga
Serialisera och tolka blocket COVARIANCE_START…COVARIANCE_STOP i CCSDS 502,0 OEM — positions-/hastighetskovariansen 6×6 skriven som sin nedre triangel med 21 element (kanonisk ordning CX_X … CZ_DOT_Z_DOT) med den valfria COV_REF_FRAME, som kompletterar den befintliga skrivaren/tolken för OEM-tillståndsvektorer så att banbestämnings- och filterkovarianser går fram och tillbaka i standardformatet
Oberoende referens
oem 0.4.5 (MIT, https://pypi.org/project/oem/) — SAMMA oberoende CCSDS-502-tolk som den Validated raden "CCSDS OEM interoperability" förlitar sig på, en helt separat kodbas (egen KVN-tokenizer, tillståndsmaskin för kovariansavsnitt och numpy-matrisuppbyggnad). kshana skickar ett fullständigt OEM-segment med sitt omärkta KOVARIANSblock med nedre triangel av bara tal; oem tolkar det och rekonstruerar den symmetriska 6×6, som stämmer element för element med kshanas indatakovarians upp till f64-avrundning — en genuin rundtur för utbyte mellan bibliotek (jämförd mot oems rekonstruktion, inte en ny tolkning med kshana), vilket stänger radens tidigare lucka "ingen tredjepartsfixtur"
Tester
oem::tests (en symmetrisk PD-kovarians rundturar KVN→tolkning till f64-avrundning och förblir symmetrisk; blocket sänder exakt de 21 nedre triangulära posterna — i+1 per matrisrad — med/utan COV_REF_FRAME; ett block med…
ValidatedFelväxt vid fritt löpande INS/TRN och tröskelpassagerinertial::coast (ErrorDynamics,ErrorSource,source_error_m,CoastModel,Contribution,Combination,TrnFixMode,first_crossing_s,InsTrnCoastScenario); scenario kind ins-trn-coast
Förmåga
Budget för positionsfel mot längd på fritt löpande drift byggd från IMU-koefficienter, där varje felkälla (accelerometerbias, gyrobias, hastighetsslumpvandring, vinkelslumpvandring, skalfaktor vid gång och under ihållande specifik kraft) propageras genom en lokalnivå-INS-felmodell med nio tillstånd och Schuler-återkoppling (inertial::coast::ErrorDynamics enligt Groves 2:a uppl. kap. 14: attityd-, hastighets- och positionsfel, den vertikala kanalen med sin gravitationsgradient, WGS-84-radier och normal gravitation, en horisontell plattform som styr norrut med den konfigurerade farten, latitude_deg och height_m; systematiska termer med en utökad matrisexponential, slumpvandringar med Van Loan), där de platta jordens monom behålls enbart som leading_order_m; bidragen kombineras under en angiven regel (rss / linjär summa / deterministisk summa med stokastisk rss); de driftlängder som når positionströsklar som anges av anroparen (10 m och 50 m som standard) lokaliseras med en framåtskanning efter den första passagen (first_crossing_s, eftersom de Schuler-begränsade kurvorna inte är monotona), med den dominerande källan vid varje passage; och ett TRN-begränsat läge som ger det största intervall mellan terrängfixar som håller varje tröskel. Kan köras som scenariotypen ins-trn-coast
Oberoende referens
NaveGo v1.4 (commit 24d9488, LGPL-3.0), körd som ett separat program under GNU Octave 8.4.0: körningar med fritt tröghetsdrivande med samma IMU-felprofil, med ett rättat numeriskt dödband i dess kvaternionuppdatering (qua_update.m: vakten för en vinkelhastighet under 1e-8 rad/s ersatt av wnorm == 0, tillämpad på en kopia vid körning och kontrollerad att stämma en gång; med vakten på frös attityden för en långsamt driftande plattform och bröt Schuler-återkopplingen). Förhandsregistrerad (4262b969) med den rättade generatorn innan den kördes; motorn (440b3877) checkades in innan någon rättad utdata öppnades; samma tröskel på 5 %, 48 punkter, termer, seeds och statistika som i omgång 1. Resultat: 48/48 inom 5 % (sämst +3,70 % hastighetsslumpvandring vid 1200 s, +3,33 % vinkelslumpvandring vid 1800 s); vid 3600 s ger NaveGo/Kshana 2375.4/2376.2 m för accelerometerbias och 130 885/131 675 m för gyrobias. Att nollställa Schuler-återkopplingen av transporthastigheten får testet att misslyckas (+695 % vid 3600 s). Redovisat: Schuler-prediktioner för en kanal och NaveGo-värdena från omgång 1 var kända; modellen har ingen anpassad parameter. Omfattning: felkurvorna per term vid taktisk klass, 45 grader N, horisontell och riktad norrut, upp till 3600 s; passagerna, kombinationsregeln och TRN-läget är deterministiska funktioner av de kurvorna. IMU-klassens koefficienter (bandvärden i Groves 2013 tabell 4,1) och TRN-fixens residual förblir MODELLED indata. Omgång 1 (ersatt): de platta jordens monom, nu leading_order_m, överskattar bortom 600 s (2.2x till 8x vid en timme). 0,30 revision: varje utdata från ins-trn-coast ändras (toppen för TRN i det levererade scenariot 52,932679 -> 44,711834 m)
Tester
tests/ins_coast_schuler_navego_oracle.rs::coast_error_model_matches_the_corrected_navego_runs (48 punkter, sex feltermer vid 30 s till 3600 s, taktisk klass, 45 deg N, horisontell och norrriktad: varje punkt inom 5 %…
ModelledArbetscykel för apertur: navigering mot kommunikationaperture_duty
Förmåga
En körning tar en kontaktplan (en lista med fönster aos_s/los_s som vart och ett ber aperturen om navigering eller kommunikation — samma fönstervokabulär som passes::predict_passes avger, omvandlad av aperture_duty::windows_from_passes), ett antal aperturer och en uttrycklig arbitreringspolicy, och returnerar navigeringsarbetscykeln, kommunikationsarbetscykeln, tomgångsarbetscykeln och avbrottet per session. Policyn är en indata med ett dokumenterat standardvärde (navigation-priority; även communications-priority och icke-förebyggande first-come-first-served), och rapporten bär den lösta policyn, dess fullständiga definition samt definitionerna av arbetscykel och avbrott, eftersom en arbetscykelsiffra som anges utan sin arbitreringsregel inte är reproducerbar. Schemat är ett exakt intervallsvep över fönstergränserna, så ett fönster som slutar exakt där nästa börjar konkurrerar aldrig, och aperturssekunder för navigering, kommunikation och tomgång ackumuleras oberoende av varandra i det enda svepet. Kan köras som scenariotypen aperture-duty-cycle
Oberoende referens
Intern konsekvens, utifrån tre storheter som beräknats med olika uttryck i samma svep och sedan måste gå ihop. Aperturssekunder för navigering, för kommunikation och för tomgång ackumuleras var för sig — tomgång från (aperturer − |betjänade|) per elementärt intervall, aldrig som en rest — och deras summa kontrolleras mot aperturer × horisont_s, vilket en felaktigt parentetiserad gräns, ett dubbelräknat intervall eller ett bortfallet intervall omedelbart bryter; de betjänade tiderna per session måste dessutom var för sig summera tillbaka till de två tjänstetotalerna. Schemaläggarens strukturella egenskaper mäts i stället för att antas: betjänad tid kontrolleras vara icke-avtagande i antalet aperturer över 200 pseudoslumpmässiga planer för alla tre policyerna (inte självklart för den icke-förebyggande policyn, där en extra apertur ändrar vem som håller vad vid varje senare gräns), och gränsaritmetiken är fastlåst vid paret som tangerar/överlappar med en sekund där ett fel med en enhet annars skulle gömmas. Bryggan till passprediktorn kontrolleras mot utdata från passes::predict_passes: med en apertur och ingen konkurrerande tjänst är aperturssekunderna för navigering lika med prediktorns egen summerade passlängd. Ingen extern oberoende referens görs gällande och ingen finns: förmågan ersätter handräkning i stället för att kontrolleras mot den, den medföljande kontaktplanen är illustrativ och inte flugen, och ingen operativ schemaläggare publicerar ett par av plan och svar med sin arbitreringsregel angiven — en arbetscykel som beräknats under en oangiven policy är inte jämförbar med en som beräknats under en angiven, och policyberoendet mäts (navigeringsarbetscykler på 100/150 mot 50/150 på identisk plan). Gir- och omställningstid, datavolym, bufferttillstånd, energi och länkslutning är undantagna i rapportens etikett i stället för att modelleras i tysthet
Tester
aperture_duty::tests (ett fönster som slutar exakt när nästa börjar konkurrerar inte, och att flytta det en sekund tidigare kostar exakt en sekund — skyddet mot off-by-one; överlappande fönster utöver aperturantalet…
ModelledRF-jamming mot navigering på månytan (J/S per satellit)lunar_jamming (composing jamming,lunar_service,lunar)
Förmåga
Månnativt förhållande mellan störsändare och signal, effektivt C/N₀ och låsförlust för en selenografisk användare på ytan under en störsändare på månytan (eller upphöjd), över den illustrativa konstellationen av Moonlight/LCNS-klass från offentliga källor. Sammansätter den öppna jamming-kedjan (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 öppna geometrin för månhimlen (lunar_service::LunarConstellation + topocentric, lunar::selenographic_to_mcmf); ingen geometri eller radiometri härleds på nytt. Till skillnad från jordtypen jamming är signalledet inte en fast mottagen effekt: varje satellits isotropa mottagna effekt är dess egen länkbudget EIRP − FSPL(snedavstånd), så J/S varierar satellit för satellit med avstånd och elevation på månen. Avger EN RAD PER SYNLIG LÄNK (epok, satellit) som JSON och som en artefakt *.table.csv, med båda mottagna effekterna som J/S är differensen av utskrivna bredvid sig; sammanfattande kvalitetsmått ligger bredvid den tabellen, aldrig i stället för den. Kan köras som scenariotypen lunar-jamming
Oberoende referens
Korskontroll av sammansättningen mot en oberoende kodväg i samma förvar: varje J/S per länk härleds på nytt som differensen mellan två länkbudgetar beräknade med linkbudget::received_signal_power_dbw, vars fria rymdförlust är det enda uttrycket 20·log10(4πRf/c) i stället för den tretermssumma som jamming::free_space_path_loss_db använder — de två stämmer till < 1e-9 dB på varje rad (uppmätt sämsta fall 7.11e-14 dB, dvs. flyttalsavrundning). Den underliggande störningskedjan som den sammansätter är separat externt förankrad i tests/gnss_denied_jamming_resilience_reference.rs (oberoende omräkning med numpy/scipy av J/S och effektivt C/N₀, fastlåst vid Kaplan & Hegarty §9,4, plus uppmätt C/N₀ från JammerTest 2024, Zenodo 10.5281/zenodo.15910563); månens geometri som den sammansätter är geometrin i lunar_service/lunar med sina egna oberoende referenser. Identiteter med slutna uttryck som kontrolleras här: ett halverat avstånd till störsändaren lägger exakt till 20·log10(2) dB på varje rad; J/S är exakt invariant mot användarantennens huvudlobsförstärkning medan C/N₀ rör sig exakt med den förstärkningen; en elevationsmask ändrar ingen kvarvarande rad bit för bit. Själva raden förblir ReferenceImpl/Modelled: ingen uppmätt jamming-kampanj på månen finns att validera mot, och konstellationen är en illustrativ geometri av Moonlight/LCNS-klass från offentliga källor, inte en flugen efemerid
ModelledDenial-kontur för månen med ett osäkerhetsband från den uppmätta spridningen i C/N₀lunar_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)
Förmåga
Rapporten lunar-jamming vilar inte längre sin denial-kontur på en enda skalär. Den avger hela den uppmätta fördelningen av önskat signal-C/N₀ över tabellen per satellit — n, min, p05, p25, median, p75, p95, max, medelvärde, stickprovets standardavvikelse och stickprovets egen asymmetri (p95 − median) − (median − p05) — bredvid raderna per länk, som är oförändrade. Konturen redovisas sedan vid var och en av dessa ordningsstatistikor under BÅDA denial-kriterierna som motorn känner igen, aldrig det ena i stället för det andra: det etablerade effektkvotskriteriet (J/S = 30 dB, samma tröskel som attack_surface och tracking_loop använder och kriteriet bakom kolumnen denial i den publicerade tabellen för länk-jamming på månen), och kriteriet låsförlust (det effektiva C/N₀ som faller till tracking_threshold_dbhz), som är kriteriet som rapportens egen kolumn links[].status bedöms med. Varje konturpunkt anges på båda axlarna i denial-planet — den störsändar-EIRP som krävs vid scenariots avstånd, och det denial-avstånd som gäller vid scenariots EIRP — så att bandet är ett intervall på samma axlar som ett konturdiagram ritas på. Bandkanterna ÄR contour(p05) och contour(p95): samma avbildning med slutet uttryck tillämpad på stickprovets egna kvantiler, inte ett sigma anpassat till stickprovet och inte median ± k·stdev, och rapporten säger det i en sträng band_definition bredvid siffrorna. stdev avges för kontinuitet och används av ingenting. En kvantil vars C/N₀ redan ligger vid eller under spårningströskeln har inget ändligt J/S som medför denial; de kolumnerna avges som null med en räknad orsak i stället för som ett oändligt värde eller en inklämd radie
Oberoende referens
Intern konsekvens mot motorns egna framåtfunktioner, vilket är allt den här förmågan ärligt kan göra anspråk på. Varje konturpunkt är en inversion med slutet uttryck, och varje inversion kontrolleras genom att skicka tillbaka dess svar genom den FRAMÅTFUNKTION som rapportens egna rader bedömdes med: kolumnen J/S genom jamming::effective_cn0_dbhz (som måste returnera tracking_threshold_dbhz till < 1e-9 dB-Hz), kolumnen för avstånd genom jamming::free_space_path_loss_db och jamming::j_over_s_db (samma J/S till < 1e-9 dB), kolumnen för EIRP genom jamming::j_over_s_db vid scenariots eget avstånd. Konturen kontrolleras vidare vara GRÄNSEN för denial-mängden och inte en punkt inuti den — lock_status förlorar låsning vid en strikt olikhet, så utfallet mäts växla från DEGRADED till LOST över 1e-4 dB J/S på var sida om konturen, vilket en kontur som är fel med ett epsilon skulle misslyckas med. Den starkaste kontrollen är per länk och inte per kvantil: att tillämpa samma avbildning på varje rads eget C/N₀ återger rapportens statuskolumn exakt — 0 avvikelser på 38 av 38 rader vid den dokumenterade arbetspunkten (kind = lunar-jamming, varje indata standard utom jammer.range_m = 25 000 m), där 26 rader är LOST och 12 inte är det. Monotonicitet mäts, den antas inte: 20 001 samplingar över [tracking_threshold + 1e-3, 80] dB-Hz, 0 överträdelser av ett strikt avtagande avstånd och en strikt växande erforderlig effekt, så kvantilordningen i bandet påvisas i stället för att påstås. ExternalDataset avböjs och Validated med den: ingen uppmätt jamming-kampanj på månen finns att jämföra en denial-radie mot, konstellationen är en illustrativ geometri av Moonlight/LCNS-klass från offentliga källor och inte en flugen efemerid, och konturens indata (EIRP, störsändareffekt, antennförstärkningar, brustemperatur) är representativa storleksordningar. ReferenceImpl övervägdes och avböjdes också — inversen och framåtuttrycket är SAMMA algebra läst i två riktningar, så rundturen fångar transkriptions- och teckenfel men är inte en oberoende implementation; att kalla den en korskontroll vore det lånade oberoende som matrisens invarianter finns för att förhindra. Vad bandet ger mäts och anges i stället för att påstås: vid den arbetspunkten är konturen med en enda skalär 27,402916 km och lägger 25 km på den denial-drabbade sidan för alla 38 rader, medan bandet 21,256108 .. 29,921360 km innehåller arbetspunkten och därför redovisar den uppdelning som tabellen faktiskt visar. De två kriterierna mäts också vara oense — effektkvotsbandet (38,186527 .. 53,691675 km) innehåller inte 25 km alls — vilket är anledningen till att båda skrivs ut
ModelledDetektionsstyrka hos övervakare av integritet över flera modaliteterhybrid_integrity
Förmåga
Rapporten hybrid-optical-rf anger vad chi-tvåövervakaren över flera modaliteter faktiskt kan DETEKTERA, inte bara att den klarar ett felfritt fall: den minsta detekterbara biasen per övervakad axel (öst, nord, upp, klocka) vid scenariots angivna sannolikheter för falsklarm och missad detektion, detektionsstyrkekurvan på båda sidor om den, den brusfria biasmultipel där den realiserade statistikan först passerar tröskeln och tiden till detektion för en biasramp med angiven hastighet. Fel injiceras också genom den verkliga övervakaren och den statistika den returnerar redovisas bredvid den analytiska prediktionen
Oberoende referens
Två interna oberoende referenser, ingen extern datamängd. (1) Rundtur med slutet uttryck: den minsta detekterbara biasen produceras genom att invertera den icke-centrala chi-tvåsvansen på icke-centraliteten (raim::pbias) och verifieras genom att mata tillbaka den resulterande icke-centraliteten genom raim::noncentral_chi2_cdf vid övervakarens egen tröskel, som måste returnera P_md. (2) Injektion mot analys: en bias skrivs in i RF-skattningen för en axel och cross_raim::run_cross_raim körs om, så den statistika som jämförs med den analytiska icke-centraliteten är den som övervakaren beräknade och inte en omräkning. En seedad Monte Carlo av själva statistikan finns med i testerna som en tredje kontroll; den ingår medvetet INTE i rapporten, eftersom en samplad skattning vore långsammare och inte reproducerbar bit för bit. ExternalDataset avböjs: storheten är DENNA övervakares detektionsstyrka vid DETTA scenarios sigmaallokering, och de sigmastorlekar som MDB skalas med är Modelled representativa indata, inte mätningar. ReferenceImpl övervägdes och avböjdes också — Monte Carlo samplar samma statistika som analysen beskriver, så den fångar transkriptions- och koefficientfel men är inte en oberoende implementation av övervakaren. 0,30 omgång 2 (förhandsregistrerad 0135a9e4), blockerad (förblir MODELLED): SciPy 1.18.1 chi2/ncx2/brentq återger rapportens tröskel (inom 5.4e-12), MDB per axel, styrkekurvan, passagemultipeln och tiden till detektion för rampen (inom 5.3e-10) för fem konfigurationer; statistikorna för injicerade fel saknar oberoende referens och sigmastorlekarna är Modelled indata, så avgränsningen väntar på ett beslut från ägaren
Tester
hybrid_integrity::tests (detektionseffektkurvan går från falsklarmsfrekvensen vid noll fel till 1 − P_md vid den minsta detekterbara biasen; den minsta detekterbara biasen matad tillbaka genom noncentral_chi2_cdf vid…
ModelledKovariansens återväxt efter överlämning mot varningsgränsenhybrid_integrity
Förmåga
Rapporten hybrid-optical-rf redovisar filtrets processbrusmodell och anger hur länge lösningen efter överlämningen håller sig inom varningsgränsen: för båda överlämningsriktningarna tar den kovariansen per axel som överlämningen lämnade efter sig, propagerar den framåt under ett angivet slumpvandringsbrus och redovisar tidpunkten då det täckningsskalade 1σ når gränserna för varning i horisontal led, vertikal led och tid, vilken gräns som träffas först, tidskonstanten för variansens fördubbling samt en samplad utrullningsprofil som omsluter gränspassagen. Processbrusets PSD:er, täckningsfaktorn och varningsgränserna är alla indata med dokumenterade standardvärden
Oberoende referens
Ingen extern oberoende referens. Gränspassagen är en sluten lösning av slumpvandringens variansväxt, och testerna räknar om den oberoende utifrån de värden som rapporten själv publicerar, inte utifrån sändarens interna värden. Startkovariansen är bit för bit fastlåst till det spår som överlämningsblocket redan redovisade, så utrullningen kan inte propagera en kovarians som ingen annan har sett. Processbrusets PSD:er är MODELLED representativa indata och gränspassagens tider skalar direkt med dem, vilket skalningstestet anger som en uppmätt egenskap och inte som ett påstående. ExternalDataset avstås från medvetet: utrullningstiden är en direkt funktion av två Modelled PSD:er och av varningsgränser som själva är representativa, och det finns ingen uppmätt utrullning vid lunär optisk/RF-överlämning att jämföra med. En extern oberoende referens skulle här kräva en publicerad kurva för kovariansväxt efter överlämning eller för holdover-noggrannhet hos en jämförbar mottagare med angiven processbrusmodell, kontrollerad mot en tolerans
Tester
hybrid_integrity::tests (glidningen startar från exakt det kovariansspår som överlämningsblocket rapporterar, för båda riktningarna, så att den återspelade diagonalen inte kan avvika från den rapporterade överlämningen; den rapporterade korsningstiden…
ModelledAntennmönster utanför huvudriktningen i exporten av lunar geometrilunar_service,antenna
Förmåga
Exporten av geometri per satellit anger, per (epok, satellit), vinkeln utanför huvudriktningen VID SATELLITEN och sändningsförstärkningen mot platsen utifrån det verkliga mönstret för en likformigt belyst cirkulär apertur (Airy), och redovisar antalet länkar i strålen enligt det mönstret BREDVID antalet länkar i strålen enligt den symmetriska approximationen mellan förstärkning och strålbredd (θ_3dB[deg] = √(31000/G_lin)), med skillnaden utsänd som en uttrycklig korrektion i länkar, i satelliter per epok och som den sämsta enskilda epoken. Båda de implicita aperturverkningsgraderna för approximationen redovisas (0,641 mot regeln med 70·λ/D grader som den anges med, 0,920 mot en likformig cirkulär apertur) så att den verkningsgrad som den tyst förutsätter anges i stället för att härledas. Av som standard: blocket visas bara när både en exportplats och en apertur är angivna
Oberoende referens
Blandat, och uppdelat i stället för sammanslaget. MÖNSTRET i botten är externt validerat och behåller sin egen rad (en scipy.special.j1-fixtur till < 0,05 dB i tests/validate_p1_orbital_footprint.rs, samt här den publicerade Airy-abskissan för halv effekt x = 1,61634 lokaliserad med bisektion i stället för antagen). GEOMETRIN kontrolleras mot sluten triangeltrigonometri skriven som ett annat uttryck än den skalärprodukt som testas. INNESLUTNINGEN av den verkliga strålen i den approximativa konen är härledd algebra (28.019/√η mot 29,479 grader per λ/D), så korrektionen kan bara vara icke-positiv för η ≤ 0,9035. Men själva ANTALEN i strålen har ingen extern oberoende referens: ingen publicerad tabell anger hur många satelliter i ett skal av Moonlight/LCNS-klass som har en sydpolsplats innanför en given paraboloids halveffektsstråle, och konstellationen är en illustrativ approximation från offentliga källor, inte en flugen efemerid. Den uppmätta avvikelsen vid den dokumenterade arbetspunkten — 0 länkar i strålen under det verkliga mönstret mot 28 under approximationen, −2,33 satelliter per epok, sämsta epok 3, på 76 utvärderade länkar — är därför ett MODELLED fynd om approximationen, fastlåst som en regressionsliteral (den närmaste raden ligger 0,069° från någon av strålkanterna, fyra storleksordningar över varje avvikelse i sista siffran), inte ett externt validerat täckningstal. Att märka raden ExternalDataset med stöd av mönstrets egen externa förankring vore lånad validering, vilket är precis det som matrisens invarianter finns till för att förhindra. 0,30 omgång 2 (förhandsregistrerad d9755d28), blockerad (förblir MODELLED): SPICE-geometri och SciPy-Besselfunktioner återskapar vinkeln utanför huvudriktningen (sämst 3.0e-5 grader), Airy-förstärkningen och flaggorna för i strålen på 6 336 rader med tillstånd från flugna omloppsfarkoster och den dokumenterade arbetspunkten; men på flugen geometri delar sig flaggorna efter satellitidentitet (den närmaste länken ligger 1,66 grader från strålkanten), synligheten på 5 grader kontrolleras som en flagga och inte som en numerisk elevation, flaggan för den symmetriska approximationen tillämpar tumregeln 31000/G på en validerad vinkel utan att validera regeln, och de implicita verkningsgraderna saknar oberoende referens; avgränsningen väntar på ett beslut från ägaren
Tester
antenna::tests och lunar_service::tests (halveffektkorsningen lokaliserad genom bisektion på mönstret stämmer med den publicerade Airy x = 1,61634 och ger den exakta bredden 1,02899·λ/D, och noterar att den konventionella 1,02…
ModelledSpårningsslingans låsförlust och spoof-intrång under störningtracking_loop (composing sdr,jamming)
Förmåga
Låsförlust beräknad utifrån slingdynamik i stället för ett effektförhållande: termiskt 1σ-jitter för bärvåg (Costas) och kod (icke-koherent early/late) mot C/N₀ med kvadreringsförlusten, mot de angivna reglerna 3σ_PLL + θ_e ≤ 45° och 3σ_DLL + ramplagg ≤ d/2 chips; C/N₀-trösklar för bortfall och återlåsning där den styrande slingan namnges och hysteresen HÄRLEDD ur den bredare inlåsningsbandbredden i stället för att påstås; den deklarerade tiden till låsförlust från en låsdetektor med två trösklar och bekräftande dröjtider, redovisad separat från den fysikaliska tiden till fasflykt (Viterbis medeltid mellan cykelslipp, i log₁₀ s eftersom den spänner över hundratals dekader); den största kodsvepningen och bärvågsdopplertakten som offrets slingor kan följa; samt den AVVISNINGSRADIE som slingdynamiken ger, redovisad vid sidan av den befintliga effektförhållanderadien med deras tecknade skillnad som ett eget namngivet fält. Kan köras som scenariotypen tracking-loop
Oberoende referens
Motorns egen sdr-korrelator (sdr::correlate / synth_if / CaCode) stegad framåt på seedad syntetisk IF vid en kalibrerad C/N₀ — en separat kodväg som når samma tal genom numerisk korrelation av samplad IQ i stället för genom ett algebraiskt jitteruttryck, alltså en annan väg och inte en omformulering — samt vedertagna tabellerade modifierade Bessel-värden I₀ för cykelslippstermen. Slingteori enligt Kaplan & Hegarty kap. 8 och Viterbi/Gardner för slipptiden. Raden förblir ReferenceImpl/MODELLED: korskontrollen finns i samma kodbas, och kontrollen av bessel_i0 validerar en specialfunktion och inte spårningsmodellen, så att höja raden på den grunden vore självgynnsam märkning. ExternalDataset skulle kräva en inspelad rå IF-datamängd med referens-C/N₀ och en annoterad tidpunkt för låsförlust (klassen TEXBAT/OAKBAT); ingen sådan medföljer i det här trädet, och även med IQ-data publicerar dessa datamängder ingen referens för slingtillståndet per epok, så en deklarerad tid för låsförlust skulle bara kunna valideras mot en annan mottagares låsdetektor, vilket är ett modellerat val och ingen oberoende referens. Slingbandbredderna, integrationstiden, korrelatoravståndet, inlåsningskvoten, dröjtiderna, störsändareffekten och antennförstärkningarna är representativa bandvärden, inte ett datablad. 0,30 omgång 2, GNSS-SDR 0.0.19 (GPL-3.0, körd som program) på oberoende genererad IF (förhandsregistrerad 6ef7698c, ändringar av mätmetoden redovisade), ett fynd (förblir MODELLED): jittret i sluten PLL och DLL stämmer inom 8 % vid 35 till 45 dB-Hz, den dynamiska belastningen på 10 Hz/s inom 1 % och det första ordningens kodramplagg inom 2 %; vid 30 dB-Hz är PLL-jittret 21 % högre och DLL-jittret 32 % lägre, de uppmätta trösklarna enligt 15-gradersregeln ligger 1,5 dB över motorns, och andra ordningens slinga slirar 0,5 till 2 dekader oftare än gränsen för första ordningens slipptid. 0,30 revision: Costas slipptid använder nu slingans SNR rho/4 (halvcykelslipp); standardvärdet för jitter_table log10_mean_time_to_cycle_slip_s sjunker från 11,58 till 2,10 vid tröskeln 25,47 dB-Hz
Tester
tracking_loop::tests (öppen-loop-Costas-diskriminatorjitter mot sdr::correlate stegad framåt på seedad syntetisk IF, 3 poolade brusrealisationer × 900 epoker, överensstämmande till 0,63% över 35-45 dB-Hz, med…
ValidatedKovarians för lunära VLBI-stationers koordinater utifrån ett spårningsschemalunar_vlbi_fim (composing lunar_vlbi,fim,cio,lunar_frame,frames)
Förmåga
Fördröjningspartialer ackumulerade över ett schema av baslinjer × epoker till en Fisher-informationsmatris, inverterad till stationskoordinaternas kovarians och sigma per stationskoordinat, och ersätter en antagen isotrop ekvipartitionslänk från en skalär fördröjningsprecision. Tillståndet bär jordfasta (ITRS) stationskoordinater, så jakobianen är den tröghetsbundna partialen roterad med varje epoks GCRS→ITRS-matris, och jordrotationen är det som gör koordinaterna observerbara — rapporten MÄTER den jordfasta siktlinjesvepningen och beacondeklinationen i stället för att anta dem. Rang, datumdefekt, konditionstal, informationsspektrum och det fria nätverkets nollrum redovisas vid varje körning, och vid rangbrist publiceras huvudsigmat som NULL med en status i stället för att läsas ur en nästan singulär invers. Ekvipartitionsvärdet c·σ_τ·√(g/N) för SAMMA schema skrivs ut bredvid det beräknade med deras kvot, tillsammans med den isotropa spårgränsen √(p/trace(M)) som AM-HM gör till ett hårt golv. Kan köras som scenariotypen lunar-vlbi-fim
Oberoende referens
En oberoende väg i samma repo. Varje jakobianrad härleds på nytt med central finit differens av lunar_vlbi::vlbi_delay_s utvärderad utifrån tillståndets egna jordfasta och månfasta koordinater roterade framåt genom ramkedjan — en väg som inte beräknar någon derivata och inte delar något uttryck med de analytiska partialerna — och de informationsmatriser som de två vägarna bygger stämmer inom < 1e-6 av den största diagonalen. Den linjäralgebrakärna som detta sammansätter (information_matrix, crlb, sym_eig) är separat externt förankrad mot numpy.linalg.eigh / numpy.linalg.inv i tests/fim_observability_reference.rs, och fördröjningsobservabeln bär lunar_vlbis egen delta-DOR-referens för fjärrfältet; raden lånar ingendera statusen. Slutna samband som kontrollerats här och betecknats så: skalningen med σ² och 1/N, och √(p/trace(M)) som en AM-HM-undre gräns som det beräknade sigmat inte kan underskrida och som sammanfaller med ekvipartitionsvärdet bara vid isotrop geometri — vilket är varför den uppmätta kvoten är exakt den anisotropi som antagandet bortsåg från. 0,30 extern jämförelse (Library: NAIF SPICE CSPICE N0067 via spiceypy 8.2.0, MIT; DE440, ITRF93 earth_latest_high_prec, MOON_PA), förhandsregistrerad (50863551) tillsammans med en känslighetskörning av modellfel på motorsidan: varje jakobianrad byggs om med centrala differenser av konvergerade newtonska ljustidsdifferenser från SPICE-geometri (ljustidsekvationen är ett kort skript över SPICE-positioner; SPICE bär geometrin), med schemat ombyggt utifrån SPICE-elevationer. Schemat, rangen, defekten, informationsspektrumet, konditionstalet, stationssigmana, huvudvärdet, spårgränsen, ekvipartitionskvoterna, det fria nätverkets nollrum, siktlinjesvepningen och beacondeklinationen stämmer inom de förhandsregistrerade 1 % / 0,1 grader, vilket ligger över motorns kända analytiska månfel (3.2e-3 på sigman, uppmätt före körningen). NumPy 2.3.5 gör om linjäralgebran på motorns incheckade jakobian till 2e-13 (P2). Validated som en Cramér-Rao-gräns för den angivna reducerade parametermängden på de angivna illustrativa indata: månens centrumefemerid, klockor, troposfär och jordorienteringsparametrar hålls fasta i båda leden, så det är ingen noggrannhet för en verklig kampanj
Tester
lunar_vlbi_fim::tests (24 bibliotekstester: den analytiska Jacobianen mot en central finit differens av lunar_vlbi::vlbi_delay_s tagen via en väg som roterar tillståndets egna koordinater framåt och aldrig rör en…
ModelledKovarians för koordinater för lunara ytpunkter utifrån ett VLBI-fördröjningsschema, hållen skild från jordstationenslunar_vlbi_fim (composing lunar_vlbi,fim,cio,lunar_frame,frames)
Förmåga
Ett tredje datumval, all-stations-fixed, som håller varje jordstation fast och skattar enbart BEACONENS månfasta koordinater — den konfiguration som en osäkerhet för en lunar ytpunkt faktiskt anges för, eftersom jordstationernas koordinater är en indata till fördröjningsmodellen och inte en okänd i den. Det finns eftersom stationsnivåns kovarians och ytpunktens kovarians är OLIKA STORHETER åtskilda av hävarmen ρ/B, och inget tidigare hindrade att den ena angavs mot den andra. Det utsända blocket beacon_link bär ρ, den längsta baslinjen, hävarmen, ytpunktsformen av ekvipartitionslänken c·σ_τ·(ρ/B)·√(g/N), det beräknade beaconsigmat per koordinat och deras kvot — kvoten är null i stället för vilseledande när beaconen inte skattas eller matrisen har rangbrist. B tas som den LÄNGSTA förekommande baslinjen, den mest gynnsamma, så kvoten kan bara underskatta. Kan köras som datum = "all-stations-fixed" med estimate_beacon = true, vilket vägras med ett meddelande som namnger den saknade indatan när beaconen inte skattas
Oberoende referens
Slutna samband, utan att någon extern oberoende referens görs gällande eller finns. Hävarmen kontrolleras mot ρ/B och de två ekvipartitionsformerna mot varandra till 1e-15 — algebraiska identiteter, så de fångar ett kopplingsfel och inget annat, och betecknas så. Det substantiella resultatet är MEASURED i stället för påstått: en fördröjning från en fast baslinje begränsar beaconens RIKTNING, så siktlinjekomponenten når informationsmatrisen bara genom närfältets avståndsterm, och testet läser av den resulterande anisotropin ur det utsända spektrumet i stället för att härleda den. AM-HM gör √(p/trace(M)) till ett hårt golv, så en isotrop ekvipartitionslänk kan bara UNDERSKATTA, och kvoten beräknat över ekvipartition är exakt den anisotropi som den bortsåg från. MEASURED på paret Goldstone-liknande/Canberra-liknande vars kordal är 10726,748 km: över 112 samplade dygn medger 36 ingen ömsesidigt synlig epok alls vid en 10°-mask, det mesta som någonsin är ömsesidigt synligt är 17 av ett schema med 49 sampel, och på de 73 användbara dygnen går trekomponentskvoten från 113,9× till fyra storleksordningar mer, median 1513×, medan en begränsning till de två tvärgående riktningarna som siktlinjen inte svälter ger 3,94× till 25,8×, median 7,8×. VAD DEN HÄR RADEN INTE GÖR GÄLLANDE: att något av dessa tal är en egenskap hos en verklig kampanj. Den fastställer att ytpunktsstorheten nu BERÄKNAS i stället för antas, och att den inte tyst kan bytas mot stationsnivåns. Förblir ReferenceImpl/MODELLED: ingen publicerad kovarians för lunära VLBI-ytpunkter finns att validera mot, stationerna och beaconplatsen är illustrativa i stället för kartlagda, och efemeriden, klockorna, troposfären och jordorienteringsparametrarna hålls FASTA, så detta är en Cramér-Rao-gräns för en reducerad parametermängd och optimistisk i sig själv. Samma storhet på kärnvägen (beacon på DE440-månen) är validerad på sin egen rad, "…, kernel path"; på den här analytiska vägen ligger det minsta beaconsigmat 3,9 % under den radens SPICE-referens, vilket är varför den här raden förblir MODELLED
Tester
lunar_vlbi_fim::tests (7 bibliotekstester: varje datumstavning rundturar genom parse/as_str och en okänd avvisas; att hålla varje station utan beaconen avvisas med ett fel som namnger estimate_beacon; den…
ValidatedKovarians för koordinater för lunara ytpunkter utifrån ett VLBI-fördröjningsschema, kärnväglunar_vlbi_fim (epoch_geometry_with,schedule,schedule_jacobian); ephem_provider (KernelEphemeris); naif_kernel
Förmåga
Beaconkovariansen med alla stationer fasta i scenariot lunar-vlbi-fim (varje jordstation hålls, beaconens månfasta koordinater skattas ensamma) med beaconen placerad på JPL DE440-månen läst av motorns egen kärnläsare (planetary_kernel_path; lunar_vlbi_fim::epoch_geometry_with, ephem_provider::KernelEphemeris). Bara månens centrum skiljer sig från den analytiska vägen; IAU 2015-kroppsrotationen, stationerna, jordrotationen och linjäralgebran är desamma. De validerade utdata är observationsmängden, informationsspektrumet 3 x 3, rangen och konditionstalet, de tre kroppsfasta beaconsigmana och deras RMS, hävarmen och kvoten beräknat över ekvipartition, på standardschemat. Kan köras som scenariot lunar-vlbi-fim med datum = "all-stations-fixed", estimate_beacon = true och planetary_kernel_path satt
Oberoende referens
Bindande Library-led: NAIF SPICE Toolkit N0067 (spiceypy 8.2.0, MIT) på de440s, earth_latest_high_prec (ITRF93 med UT1 och polrörelse) och de lunara DE440-systemen, beaconen fast i MOON_ME; varje jakobianrad är en central differens på 3 km av den konvergerade newtonska ljustidsdifferensen (M069-referensens egen ljustidskod, importerad), aldrig en partial från Kshana; synlighet ombyggd utifrån WGS-84-elevationer; NumPy 2.3.5 / SciPy 1.18.1 (BSD-3-Clause, LAPACK) eigh och inv. P2-led: NumPy på motorns incheckade jakobian. Förhandsregistrerad (4a51256) innan fixturen eller referensen fanns, med trösklar på 1 % för egenvärden, konditionstal, sigman, RMS och kvot, 1e-4 för hävarmen, exakt observationsmängd och rang; P2 1e-9. Redovisat: jämförelsen enbart för motorn mellan analytisk och kärnbaserad måne (3,9 % på y-sigmat) kördes före förhandsregistreringen, för att välja kärnvägen, och anges där. Resultat: båda leden stämmer, sämst 1.7e-3 (beacons y-sigma 0,081211 m mot 0,081351 m). Mutation: att transponera kroppsrotationen i beaconpartialen får båda leden att misslyckas. Båda sidor läser DE440, så överensstämmelsen validerar geometrin och linjäralgebran på DE440, inte DE440. Utanför det som görs gällande: en verklig kampanjs ytpunktsnoggrannhet (klockor, troposfär och jordorientering hålls fasta; illustrativa stationer och beaconplats), och den analytiska standardvägen (raden ovan, som förblir MODELLED: på den analytiska månen ligger y-sigmat 3,9 % under den här referensen)
ModelledLunär differentiell PNT — budget för restfel i korrektionslänkenlunar_dpnt
Förmåga
De tre termer som en differentiell korrektion får mellan den epok den beräknas för och den epok den används i, var och en tidigare lämnad som omodellerat utrymme: undersökningsfel hos referensstationen (korrelerat över satelliter, oberoende av baslinjen, ~1:1 positionsöverföring och bevisligen inte DOP-förstärkt), korrektionens åldrande (den frusna omloppsfelsvektorn återprojicerad på den siktlinje som motorns egen propagator placerar satelliten på en latens senare, plus klockdrift c·σ_y(τ)·τ från den kalibrerade potenslagen) och likformig länkkvantisering över en exakt full skala på ±(orbit_err + clock_err) med variansen step²/12. Redovisas i både avstånds- och positionsdomänen, bredvid — aldrig i stället för — det befintliga restfelet och skyddsnivån, med en latenskurva bredvid det enskilda talet
Oberoende referens
Slutna samband och självkonsistens: likformig kvantiserares varians step²/12, den exakta kovariansutbredningen (GᵀG)⁻¹GᵀRG(GᵀG)⁻¹ som kollapsar till σ·PDOP för lika σ, undersökningstermens överföring 1:1 som en följd av û_user ≈ û_ref, och kvadratursluten vid bortkoppling. PDOP-korskontrollen mot orbit::dop delar normalmatrisen [−û, 1], så det är en konsistenskontroll och betecknas som en sådan, inte som en oberoende referens. Ingen ExternalDataset finns eller görs gällande: ingen lunar yt-station har en publicerad kartlagd noggrannhet, ingen lunar differentiell korrektionslänk har en publicerad latens eller ett publicerat meddelandeformat, och kvantiseringsresultatet är ett slutet uttryck och ingen mätning. RTKLIB — redan den externa kodreferensen för enkeldifferens- och viktad minsta-kvadrat-kärnan — skulle kunna köras med en medvetet felaktigt inmätt bas för att bekräfta undersökningsöverföringen 1:1, men det är oberoende kod över samma första ordningens siktlinjealgebra. STORLEKARNA ÄR MODELLED: undersökningens standardvärde är den här cratens egen allokering för lunär ramrealisering och inte en uppmätt station, latensen och antalet bitar är ILLUSTRATIVE indata, och tillväxten av själva felvektorn i den utsända efemeriden är inte modellerad alls — anges i den utsända strängen för åldrandelagen, eftersom det är den term som mest sannolikt dominerar en verklig länk
Tester
lunar_dpnt::tests (ett rent additivt skydd vars nyckeluppsättningsdelta är exakt {correction_link, units} med varje befintligt värde bitidentiskt mot litteraler fångade före ändringen; undersökningsfelet gör INTE…
ModelledTäcknings- och noggrannhetskarta för lunära referensstationerlunar_station (over lunar_dpnt,lunar_service)
Förmåga
Monte Carlo-svep av den lunära differentiella PNT-modellen över ett sydpolärt användarrutnät och ett dygn av epoker (typen lunar-station-coverage): för en differentiell referensstation på en känd sydpolsplats, per punkt och över regionen, percentilen för korrigerat och okorrigerat positionsfel (3-D, horisontellt, vertikalt), tillgänglighet med en orsak för varje otillgänglig epok (user_lt4, station_missing_sat), täckning mot en tröskel som angivits före körningen, skyddsnivåer enligt DO-229E, täckningsradien per azimutsektor och korrektionslänkens budget vid stationen och vid den sämsta punkten. Inget påstående om prestandan hos något verkligt system; inte knutet till eller stött av någon myndighet
Oberoende referens
Aritmetik omräknad av ett oberoende numpy-skript på exporterade fall (scripts/gen_lunar_station_ref.py, numpy 2.5.4; förhandsregistrerad i tests/fixtures/lunar_station/PREREGISTRATION.md, incheckad ensam i 9caedf97 före första körningen): på 20 fall med alla feltermer på är de synliga mängderna och statusen identiska, de råa avståndsfelen stämmer till 1.4e-14 m, positionsfelsvektorerna och deras belopp till 1.4e-9 m mot en tröskel på 1e-6 m, och varje punkts p95 är lika med numpy.percentile bit för bit; stationskorrektionerna MISSED sin tröskel på 1e-9 m (sämst 3.73e-9 m, 15 av 20 fall), och med dem de korrigerade avståndsfelen: kontrollerat med 60-siffrig aritmetik ligger båda sidor inom dubbelprecisionens avrundning från det exakta värdet, eftersom undersökningstermen är en differens mellan två avstånd på 1e7 m vars enhet på sista platsen är 1.86e-9 m; registrerat, inte justerat. Typen reduceras exakt till typen lunar-differential-pnt vid en punkt, en epok och ett försök. Felmodellen, dekorrelationsmodellen och varje tröskel är det här projektets egna eller ILLUSTRATIVE; inget här är ett påstående om något verkligt system
Tester
tests/lunar_station_coverage_reference.rs (one_point_one_epoch_one_trial_reduces_to_lunar_differential_pnt: till 1e-12 m med och utan mottagarbrus; zero_baseline_floor_is_zero_in_every_trial: 0 till 1e-9 m…
ModelledLunära terränghorisontmasker från en angiven profil eller en polär DEMlunar_terrain (over skyline,lunar_service::topocentric_basis); lunar_station; lunar_service (coverage_masked,masked_visible)
Förmåga
Azimutberoende horisontmasker per plats för typen lunar-station-coverage (referensstationen och varje användarpunkt) och rutnätet moonlight-service-volume och dess exportplats per satellit (varje exportrad får clears_terrain), i skylinetabellformatet 0,36 (skyline::Skyline, linjärt i azimut med slutning vid 360 grader; en angiven profil och en DEM-horisont vid en plats kombineras som sitt punktvisa maximum): en angiven [terrain] station_horizon eller user_horizon märkt med sin källa, och/eller en horisont strålföljd över en sydpolär stereografisk DEM (den gridade polära layouten för LRO LOLA, läst från en deskriptor som fastställer dess storlek och SHA-256, eller en latitud/longitud-ruta realdata::lola_dem med [terrain] dem_tile_path, återgiven med sin SHA-256) längs storcirklar på månsfären med exakt krökning, från en angiven masthöjd, med ett angivet azimutsteg och räckvidd. En satellit räknas vid en plats när den klarar den platta mask_deg och horisonten vid sin azimut (lunar_service::topocentric); en epok som horisonten lämnar med färre än fyra satelliter vid en punkt, där den platta masken ger fyra, räknas som den otillgängliga orsaken terrain_masked. Den medföljande DEM:en är ett utsnitt av den allmängods-produkten LOLA LDEM_75S_240M, omsamplad med blockmedelvärde 5 x 5 till 1200 m (data/lunar-dem/NOTICE.md). Saknas den behåller varje plats den platta masken och varje dokument är byte för byte identiskt
Oberoende referens
Slutna ytor (InternalConsistency): den nakna sfärens sänkning, en krater i en platå på sfären med en observatör på och utanför dess centrum, och en analytisk kon mot sin egen rasterisering. På det verkliga utsnittet stämmer en oberoende numpy-strålkastning (scripts/gen_lunar_terrain_ref.py, numpy 2.5.3; förhandsregistrerad i tests/fixtures/lunar_terrain/PREREGISTRATION.md, incheckad ensam i edbb9b02 innan skriptet fanns) vid fem platser: platshöjder till 1.0e-11 m och alla 1800 horisontelevationer till 5.5e-10 grader mot trösklar på 1e-6, antalet avkortade strålar exakt; detta kontrollerar aritmetiken, inte terrängen. Ingen publicerad polär horisont- eller belysningssiffra har återskapats: det medföljande utsnittet på 1200 m jämnar ut det relief under en kilometer som publicerade belysningsstudier upplöser, så DEM-horisonterna är en MODELLED siktlinje över en omsamplad verklig DEM, inte en validerad horisont. Stationsplatsen och konstellationen förblir ILLUSTRATIVE; inget här är ett påstående om något verkligt system
Tester
lunar_terrain::tests (bare_sphere_horizon_is_the_dip: strålmarschen återger -acos(R / (R + a)) till 1e-3 deg vid varje azimut; a_cone_on_a_lat_lon_tile_matches_the_analytic_cone: samma kon samplad på en 0,005 deg…
ModelledFlervägs- och mottagarhårdvaruermer för lunära referensstationerlunar_receiver; lunar_station
Förmåga
Den valfria sektionen [receiver] i lunar-station-coverage (LRS-02): elevationsberoende flervägssigma(el) = a + b exp(-el / el0) vid användaren och vid stationen (den funktionella formen enligt RTCA DO-229 för luftburen utrustning, med a = 0,13 m, b = 0,53 m, el0 = 10 grader som standardvärden; på månen är varje värde ILLUSTRATIVE), vitt vid användaren och Gauss-Markov av första ordningen över epoker vid stationen (rho = exp(-dt / tau)); termiskt kodbrus för early-minus-late DLL sigma = L_c sqrt(B_L d / (2 C/N0) (1 + 2 / ((2 - d) T C/N0))); biaser mellan kanaler per kanal, konstanta under ett försök, vid användaren och vid stationen. Stationstermerna går in i dess korrektioner, användartermerna i de råa och korrigerade mätningarna, var och en på sin egen seedade ström. Saknas sektionen är varje dokument oförändrat
Oberoende referens
Slutna uttryck och statistik för modellens egna dragningar (InternalConsistency): DLL-formeln mot en handberäkning, DO-229-formen, nollbaslinjens differens mellan två mottagare, Gauss-Markov-korrelationen vid lag 1. Ingen lunar flervägs- eller mottagarmätning finns att jämföra med; värdena är ILLUSTRATIVE och inget här är ett påstående om någon verklig mottagare
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…
ModelledTillväxt av efemidefel hos lunära referensstationer över korrektionens latenslunar_station (orbit_growth_range_sigma_m)
Förmåga
Den valfria indata orbit_err_growth_m_per_s i lunar-station-coverage (LRS-03): en korrektion som tillämpas latency_s efter att den beräknades missar tillväxten g latency_s av det utsända omloppsfelet, g isotropt med 3-D RMS-takt, dragen per satellit och försök på sin egen seedade ström (avstånd 1-sigma-takt tau / sqrt(3)), ovanpå återprojiceringen av det frusna felet på siktlinjen. Saknas den är varje dokument oförändrat. Ett K5-tillägg till jämförelsen med publicerade påståenden, förhandsregistrerat ensamt, kör K5 vid 0,001, 0,01 och 0,1 m/s (ILLUSTRATIVE)
Oberoende referens
Tillväxttermens slutna sigma och kontrollen av första ordningens propagering (InternalConsistency). K5-tillägget (tests/fixtures/lunar_station_published/ADDENDUM-LRS03.md, förhandsregistrerat ensamt i 59d88248): K5 faller vid varje takt, korrigerat p95 3-D 369,8 m, 2315 m och 22797 m mot en tröskel på 1,5 m (292,96 m registrerat utan tillväxt), som angivits före körningen. Ingen offentlig källa anger någon lunar tillväxttakt: ILLUSTRATIVE
Tester
tests/lunar_station_ext.rs (growth_absent_or_zero_is_the_frozen_error_run; the_growth_term_has_the_closed_form_sigma: länkfelet med tillväxt på minus med tillväxt av har samplets sigmatakt tau / sqrt(3) inom 6 % över 1600…
ModelledLösningslägen för en lunar referensstation: höjdbegränsning, tre satelliter, fönster med statisk användarelunar_solution; lunar_station (solution_figures)
Förmåga
Den valfria sektionen [solution] i lunar-station-coverage (LRS-06): en pseudomätningsrad för höjd up . dx = e_h med angiven 1-sigma, viktad mot avståndsraderna, ett minimum på tre satelliter som endast tillåts tillsammans med den, samt en viktad minsta kvadrat-lösning över de senaste window_epochs epokerna med en gemensam statisk position och en klocka per epok (ett filters svar för en statisk position utan processbrus över samma data; epokernas fel behandlas som oberoende). Om sektionen saknas är snapshot-lösningen och alla dokument oförändrade. Ett tillägg till jämförelsen med publicerade påståenden, med källornas lösningssätt, förhandsregistrerat för sig
Oberoende referens
Snapshot-reduktionen och lösarens slutna specialfall (InternalConsistency). Tillägget (tests/fixtures/lunar_station_published/ADDENDUM-LRS06.md, förhandsregistrerat för sig i 001ca100) med en höjdbegränsning på 1 m, tre satelliter och ett fönster på 6 epoker (ILLUSTRATIVE inställningar; källorna anger ett filter, en höjdbegränsning och tre satelliter men inte deras inställningar): K1 till K5 underkänns och K6 klaras, 1 av 6 som i den registrerade körningen; det korrigerade p95-felet i 3D för R300 sjunker från 280,6 m till 2,11 m (horisontellt 0,90 m, poängsätts inte) och täckningen förblir 0. Fönstrets antagande om oberoende gynnar det. Inte ett påstående om något verkligt system
Tester
lunar_solution::tests (one_epoch_without_height_is_the_snapshot_solve: är lika med lunar_dpnt::position_error_vector_from_range_errors till 1e-8 m, en lös höjdrad ändrar ingenting, en tät fäster höjdfelet…
ModelledNoggrannhet och täckning hos en lunar referensstation jämfört med publicerade påståendenlunar_station (over lunar_dpnt,lunar_service)
Förmåga
Slaget lunar-station-coverage körd under de offentliga antagandena i det publicerade materialet om en lunar differentiell referensstation (fyra navigationssatelliter i frysta elliptiska banor på 24 h, 10 m 95 % SISE, 0,30 m kodbrus, 1 s och 600 s korrektionsfördröjning, en stationsutmätning under decimeter, den publicerade exempelplatsen för stationen, de sydpolära cirklarna på 300 km och 600 km) och poängsatt mot källornas numeriska påståenden under sex ensidiga trösklar som fastställdes i förväg, före körningen: täckning av hela sydpolen vid p95 under en meter (K1, K2), korrigerat p95 under en meter och på decimeternivå (K3, K4), under en meter bibehållet vid 600 s fördröjning (K5) samt noggrannhet bibehållen från 10 km till 500 km baslinje (K6)
Oberoende referens
Referens: de numeriska påståendena från fem offentliga källor, registrerade med URL, hämtningsdatum, SHA-256 och licens i tests/fixtures/lunar_station/SOURCES.md (arXiv:2602.08432v3; IOAG Cislunar PNT Workshop 2025 och 2026 presentationer; UNOOSA ICG WG-B Lunar PNT, juni 2024), avskrivna med sidhänvisningar i tests/fixtures/lunar_station_published/CLAIMS.md. Trösklar, fall och indata förhandsregistrerades i tests/fixtures/lunar_station_published/PREREGISTRATION.md (revision 2, 05bf9a19, incheckad för sig före körningen). 0,36 första körningen, ett fynd (förblir MODELLED): 1 av 6 trösklar klaras. Täckningen är 0,00 på båda cirklarna mot >= 0,95, och det korrigerade p95-felet i 3D är 280,6 m (300 km) och 293,0 m vid 600 s fördröjning, mot <= 1,5 m. Decimetertröskeln (K4) kunde inte klaras vid källornas kodbrus på 0,30 m, vilket speglar en motsägelse mellan källorna snarare än ett modellresultat. K6 klaras (kvot 1,39 mot <= 1,5), men som kvot mellan två geometridominerade storheter är den belägg om dekorrelation i ingendera riktningen. Orsak: satelliternas banelement är inte offentliga, och med de ILLUSTRATIVE banelementen i trädet delar en användare och stationen fyra satelliter över 5 grader endast under 8,2 % (300 km) och 6,3 % (600 km) av epokerna, vid nära singulär geometri (okorrigerat p95 3,8 km mot källornas < 10 m). Källornas simuleringar använde ett filter, en höjdbegränsning och tre satelliter i gemensam sikt, vilket snapshot-slaget inte modellerar. Jämförelsen varken bekräftar eller vederlägger därför det publicerade 'under en meter över hela sydpolen'. Den visar att den här modellens resultat beror på banor som inte är publicerade. Inte ett påstående om något verkligt system; inte knuten till och inte understödd av någon myndighet
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…
ValidatedKärna för lunar ARAIM-skyddsnivålunar_service (lunar_protection_level,lunar_protection_level_with_sigma),lunar (lunar_araim_with_sigma),raim (araim_raim)
Förmåga
Steget från geometri till kovarians för den lunara skyddsnivån — (GᵀG)⁻¹ över hela synfältet och varje undergeometri med ett enskilt fel, projicerat på den lokala vertikalen och spåret av det horisontella blocket — samt dess statistiska kärna: Bonferroni-multiplikatorn för detektorn, den gaussiska övre svansen för varje felhypotes och rotlösningen som avbildar en integritetsriskbudget på en skyddsnivå, över en lunar servicevolym med 7 punkter
Oberoende referens
Två etablerade tredjepartsimplementationer kombinerade, båda körda offline, med fixturen återskapad från början till slut och verifierad som identisk byte för byte. RTKLIB 2.4.2-p13 (T. Takasu, BSD-2-Clause), commit 71db0ff, src/rtkcmn.c kompilerad från C-källkod med -ULAPACK: lsq() → matinv() → ludcmp()/lubksb() inverterar normalmatrisen med Crout LU med partiell pivotering, en algoritm utan samband med kshanas handskrivna Gauss-Jordan-invertering invert4(); numpy.linalg.inv (LAPACK getrf/getri) inverterar om var och en som en tredje oberoende invers och stämmer med RTKLIB inom 1.112e-12 relativt. SciPy 1.17.0 / NumPy 2.4.1 (BSD-3-Clause) levererar norm.isf, norm.sf (Cephes ndtri/ndtr) och optimize.brentq mot kshanas Numerical-Recipes-serie för ofullständig gammafunktion, bisekterad invers och bisektion i 200 steg — och SciPys direkta sf är en annan numerisk väg ut i den yttersta svansen än kshanas 1 − Φ, så att kancelleringen i den djupa svansen mäts i stället för att speglas. Den vertikala axeln är radiell enhetsvektor (definitionen av lokal vertikal på en sfärisk måne) och den horisontella variansen är spåret av det horisontella blocket, så ingen konvention för azimut Öst/Nord delas. UTTRYCKLIGEN INTE VALIDATED AV DEN HÄR RADEN: σ_URE, förhandsfördelningen av fel per satellit och den illustrativa konstellationen av typ Moonlight/LCNS är MODELLED indata som överlämnas till den oberoende referensen som de är; och FORMEN på MHSS-integritetsekvationen för enskilda fel är avskriven från samma publicerade gräns som kshana implementerar — en delad sluten form är ett delat antagande, så den här raden täcker en felaktig utvärdering av ekvationen, inte ett felaktigt val av den. Ingen tredjepartsimplementation av MHSS ARAIM är tillgänglig (RTKLIB har ingen ingång för skyddsnivå, ingen sådan PyPI-distribution finns, Stanford MAAST är MATLAB), vilket är den utestående uppgraderingen
Tester
tests/lunar_protection_level_reference.rs (7 fall av tjänstevolym — sydpolärt, mellanlatitud, ekvatorialt, förhöjd högplatå — 6 till 19 satelliter, σ_URE 10/30/60 m, P_HMI 1e-3 ned till 1e-7, skyddsnivåer som spänner över…
ValidatedARAIM MHSS-skyddsnivåer mot publicerade referensvektoreraraim_reference (araim_reference_protection_levels,published_vectors),raim (araim_protection_level,araim_integrity_risk,normal_quantile)
Förmåga
Själva ekvationen för skyddsnivån i multiple-hypothesis solution-separation: viktad minsta kvadrat för hela synfältet och per felläge på en East/North/Up-geometri med ett klocktillstånd per konstellation, delslösningarnas sigman, sigman för lösningsseparationen och ensidiga projektioner av nominell bias, Bonferroni-trösklarna K_fa, riskfördelningen för ej övervakade fel samt VPL/HPL som löser integritetsriskekvationen. Kan köras som scenariotypen araim-reference-check
Oberoende referens
EU-U.S. Working Group C ARAIM Technical Subgroup, Reference Airborne Algorithm Description Document v3.1 (20 juni 2019), Appendix D, genomräknat numeriskt exempel — publicerade INDATA (geometrimatris för 10 satelliter i 2 konstellationer, diagonalerna för C_int/C_acc, b_nom, P_sat, P_const, LPV-200-konstanter) och publicerade UTDATA (VPL 18,3 m, HPL 13,45 m, EMT 7,2998 m, σ_v_acc 1,3694 m, K_fa_3 5,1083 och sex mellanresultat för konstellationsfel), hämtat 2026-09-20, källans SHA-256 7f42934488c5c2261363439fabd48385e39526df34d514f395e22b6990b6bdb7. Stämde vid referensens EGEN angivna tolerans TOL_PL = 5e-2 m: VPL 0,0074 m, HPL 0,0437 m; EMT och σ_v_acc till sin tryckta precision. Samma undergrupps Milestone 3 Report (2016) Annex A §A.IX anger samma exempel men är internt inkonsekvent — ett teckenfel i rad 3 i G (+0,7477 där dokumentet från 2019 skriver −0,7477; med plustecknet blir dokumentets eget σ_v_acc 0,8690 m mot dess publicerade 1,47 m), och ett K_fa_3 utvärderat vid 57 felägen medan dokumentet anger N_fault_max = 1, dvs. 12, så dess EMT följer tröskeln för 57 lägen och dess VPL/HPL gör det inte. Ingen implementation som följer dokumentet kan återskapa alla dess utdata samtidigt. Dess geometrimellanresultat återskapas exakt och dess skyddsnivåer registreras som uppmätta avvikelser (VPL 0,0171 m, HPL 0,0842 m, EMT 0,4806 m), uteslutna ur acceptanssiffran; toleransen vidgades inte för att rymma dem. OMFATTNING: endast N_fault_max = 1 — felmängder med flera händelser avvisas i stället för att trunkeras, och uteslutning, chi-två-konsistenskontrollen och omfördelningssteget för dubbelräkning förblir MODELLED
Tester
tests/araim_reference_vectors.rs (2 publicerade vektorer + 6 negativa kontroller, fixtur tests/fixtures/araim_reference/wgc_araim_reference_vectors.txt: att utelämna den nominella biasen missar den publicerade VPL med 2,6457 m, ett 10…
ModelledARAIM med samtidiga felhypoteser för flera satelliteraraim_reference (add_v42_subset_plan,add_v42_protection_levels_to_order); raim (araim_subset_raim,SubsetRule)
Förmåga
araim_reference::add_v42_subset_plan: regeln i ADD v4.2 för bestämning av delmängder (P_THRES, FC_THRES, övervakade delmängder med minst borttagna först) generaliserad från par till samtidiga kombinationer av upp till max_order satellit- och konstellationshändelser, med den exakta förhandsfördelningen P_no fault prod q_e; add_v42_protection_levels_to_order kör skyddsnivåvägen i ADD v4.2 på den (ordning 2 är exakt den befintliga vägen). raim::araim_subset_raim (tillval): avancerad RAIM över den hypotesmängden, där varje övervakad delmängd är ett läge (p_fault, T, b, sigma) i integritetsrisksumman, delmängder som inte går att observera flyttas till den ej övervakade risken, budgeten skalas med ADD:s fördelning av den ej övervakade risken, och delmängden med störst normaliserad separation rapporteras när ett fel upptäcks. Förhandsfördelningar som kräver djupare delmängder än max_order avvisas, trunkeras aldrig
Oberoende referens
Intern konsistens (InternalConsistency): reduktionen av ordning 2 till den MAAST-kontrollerade ADD v4.2-vägen, oberoende härledning av förhandsfördelningarna och ett konstruerat fel på två satelliter. Ingen körning med MAAST eller RTKLIB utöver par har gjorts, så de djupare hypotesmängderna och delmängds-RAIM:s skyddsnivåer är inte externt kontrollerade. araim_subset_raim delar araim_dual_raims förenklingar (ett sigma för integritet och noggrannhet, en klocka, den vanliga normalsvansen): den följer inte ADD
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 omonitorerade risken inom P_THRES, en delmängd som tar bort tre eller…
ModelledRAIM vid sidan av kvalitetsmåtten för klock-holdoverclock_integrity (run,sky_at,IntegrityCfg); scenario (Scenario::integrity); report (RunResult::integrity_fom); api (clock dispatch)
Förmåga
Den valfria sektionen [integrity] i klockslaget (clock_integrity::run): från en angiven plats och förinställningar för konstellationer (geometry::sky_geometry), vid varje integritetsepok medan GNSS-tidslinjen inte är nekad, snapshot-RAIM (raim::snapshot_raim: paritets-chi-två-test, skyddsnivåer med lutning) på satelliterna över masken med slumpmässigt dragna gaussiska residualer med angivet sigma och en valfri angiven bias; ett separat integrity_fom-block med utlåtanden per epok, skyddsnivåer och tillgänglighet. Nekade epoker rapporteras som otillgängliga, extrapoleras aldrig; kvalitetsmåtten för holdover är oförändrade och utan sektionen är utdata identiska byte för byte
Oberoende referens
Intern konsistens (InternalConsistency): skyddsnivåerna är de från snapshot_raim, som är validerad mot RTKLIB på sin egen rad, omräknade på samma geometri; beteende utan fel och med injicerat fel. Himlen är en representativ förinställd geometri (inte en daterad almanacka), residualerna är syntetiska och sigma, larmgränserna och sannolikheterna är angivna indata; inget här är ett påstående om en verklig mottagares tillgänglighet
Tester
tests/clock_integrity.rs (the_block_is_separate_and_absent_by_default: holdover-värden oförändrade, 111 nekade epoker otillgängliga utan skyddsnivå, avvisad med körningar > 1…
ModelledRumslig, brusig observerbarhet av bågsträcka för flera familjer av cislunara banorcislunar_observability,observability_gramian,intersat_range,cislunar_srif
Förmåga
Tröskeln för observerbarhet av bågsträcka i cislunar rymd i den RUMSLIGA CR3BP med sex tillstånd i stället för den plana med fyra tillstånd, över familjerna DRO, L2-halo och L2 nära-rätlinjig halo, med mätbrus som går in i Gramianen och TVÅ kriterier rapporterade eftersom det inte finns något enskilt ärligt: det publicerade rangkriteriet, som bevisligen är invariant mot ett homoskedastiskt mätsigma (blekning multiplicerar observerbarhetsmatrisen med en skalär, vilket lämnar det relativa singulärvärdesspektrumet och därmed rang, defekt och konditionstal oförändrade), och ett skattbarhetskriterium — den första båge där den formella 1σ-osäkerheten i positionen för chief-satellitens begynnelsetillstånd understiger en angiven gräns — vilket är det som faktiskt rör sig med bruset. Varje tröskel bär det epokrutnätsintervall den ligger i; ett kriterium som inte nås är null med en orsak. Plant läge förblir standard och familjer utanför planet avvisas där i stället för att plattas ut till ett tillstånd som inte kan representera dem
Oberoende referens
En oberoende radechelon-rang med Gauss-elimination och partiell pivotering bekräftar varje utlåtande om rang för sex tillstånd — en annan algoritm som inte delar någon kod med eigen-/SVD-vägen som testas. Tillståndsövergångsmatrisen 6×6 för CR3BP som den bygger på har sin egen oberoende referens (ReferenceImpl) mot SciPys variationsintegration, och begynnelsevillkoren för halo/NRHO kommer från en korrektor som återskapar den publicerade södra L2-Gateway-banan 9:2. Det befintliga filtret med kvadratrot av informationen räknas uttryckligen INTE som bekräftelse: det använder samma jakobianer och reduceras till samma normalmatris, så det är en konsistenskontroll mellan två numeriska maskiner, och den utsända tilläggsetiketten säger så. INTE externt förankrad, och ExternalDataset avstår därför från att lånas från STM:ets rad: själva tröskelbågarnas längd beror på den MODELLED konstellationsutformningen, epokrutnätet och — mätbart, med upp till 40× — på singulärvärdestoleransen. Det publicerade plana värdet 2,09 h återskapas exakt vid rel_tol = 1e-6 och är självt toleransberoende (10,25 h vid 1e-4, 0,42 h vid 1e-8), vilket är en egenskap hos kriteriet och inte hos banan. Ingen offentlig datamängd publicerar en tröskel för observerbarhet av bågsträcka för en vald cislunar konstellation. MEASURED-RESULTAT: tröskeln för sex tillstånd i rymden är 22,17 h för L2 NRHO och 40,42 h för L2-halo, och FINNS INTE för den plana DRO-familjen som det publicerade påståendet härleddes på — rang 4 av 6 med datumdefekt 2 och två exakt nollställda egenvärden, en strukturell defekt som ingen bågsträcka återställer
Tester
cislunar_observability::tests och observability_gramian::tests (standarddokumentet fastlåst bit för bit av FNV-1a av dess JSON, sammanfattning och SVG, med explicita standardvärden verifierade som en no-op och de åtta…
ModelledFel i prediktion av jordorientering i operativ stil, uppmätt förutsagt mot slutligtframe_eop,realtime_frame_eop
Förmåga
En anpassning med minsta kvadrat av bias plus ändringstakt över ett släpande fönster plus de huvudsakliga periodiska termerna — årlig, halvårlig och de två huvudsakliga zonala tidvattnen för UT1; Chandler, årlig och halvårlig för polen — extrapolerad med den sista residualen i fönstret förd framåt: den klass som IERS Bulletin A använder, i stället för den persistensprediktor som den publicerade horisonten vilade på. Poängsatt på det enda ärliga sättet: en prognos för T+h byggd av snabba Bulletin A-rader vid eller före T, mätt mot den SENARE publicerade slutliga Bulletin B vid T+h, med persistens poängsatt över samma epokmängd mot samma slutliga värden bredvid. En målepok utan publicerat slutligt värde utelämnas i stället för att poängsättas om mot den snabba kolumnen; en periodisk term som fönstret inte kan begränsa rapporteras som förkastad med de cykler den faktiskt spänner över; ett ofullständigt fönster avvisas i stället för att tyst förkortas
Oberoende referens
Tre oberoende vägar, ingen av dem en publicerad noggrannhetssiffra för prediktion. (1) En analytisk signal med kända koefficienter — det enda sättet att använda den periodiska maskineriet, eftersom ingen incheckad serie är tillräckligt lång för att rymma en årlig term. (2) Lärobokens slutna minsta kvadrat-lösning, annan algebra än den matrislösning som testas, på verkliga rader. (3) De genuina arkiverade Bulletin A-prediktionsraderna som den verkliga produkten för 2026 publicerar, jämförda per ledtid som en SAMSTÄMMIGHETSSTATISTIK och uttryckligen inte som ett fel: 0,256 ms vid 1 dag, 0,695 ms vid 2 dagar, 1,252 ms vid 3 dagar, med drift till 3,885 ms vid 9 dagar. Detta är alltså Bulletin A:s KLASS, nära vid kort ledtid, inte Bulletin A. Residualerna förutsagt mot slutligt är verkliga uppmätta storheter över verkliga IERS-rader, men deras storlek kontrolleras endast mot jämförelsens RIKTNING, aldrig mot en av IERS publicerad noggrannhetssiffra — att läsa en verklig produkt är proveniens, inte en oberoende referens. MEASURED: vid dag 1 ger den operativa prediktorn 3,78 m fel i månens system mot persistensens 11,39 m (3,01×), vid dag 2 10,23 m mot 21,72 m (2,12×), vid dag 3 20,33 m mot 30,57 m (1,50×) — och den är SÄMRE bortom tre dagar (0,87× vid 5 dagar, 0,43× vid 10), vilket rapporten redovisar i stället för att bara visa de horisonter som smickrar den. INTE återskapat: det autoregressiva residualfiltret och den tabulerade reduktionen av zonala tidvatten, det operativa fönstret på 365 dagar går inte att nå med de incheckade data, och INGEN arkiverad tidigare version av serien finns i det här förrådet — så tabellen över arkiverade versioner rapporterar inga rader i stället för att poängsätta en syntetiserad. 0,30 extern jämförelse, ett fynd (förblir MODELLED): poängsatt mot samma slutliga värden över 178 arkiverade Bulletin A-utgåvor med cratens standardfönster på 15 dagar är prediktorns UT1 MAE 2.4x till 12.6x Bulletin A:s vid 1 till 10 dagar (tröskel 1.5x) och 5,32 ms vid 10 dagar, utanför intervallet 0,36 till 3,13 ms för 2nd EOP PCC; polen är 1.5x till 1.85x Bulletin A:s (inom 1.5x endast vid 6 och 7 dagar); 19 av 21 förhandsregistrerade villkor underkänns. Rättelse till väg (3): raderna i produkten för 2026 som den jämfördes med bär IERS-flaggan I (uppmätt), inte P, så dessa samstämmighetssiffror gäller uppmätta snabba värden, inte Bulletin A-prediktioner. 0,30 omgång 2, en prediktor med minsta kvadrat plus autoregression med de zonala tidvattnen analytiskt borttagna, mot 178 arkiverade Bulletin A-utgåvor vid tröskeln från omgång 1 (förhandsregistrerad c93605b4), ett fynd (förblir MODELLED): 12 av 21 villkor håller; UT1 MAE är 1,73 till 2.11x Bulletin A:s vid 2 till 10 dagar (tröskel 1.5x) medan polen ligger inom 1.27x vid varje ledtid. 0,30 revision: nu när offlineindata klassificeras efter IERS-flagga gäller samstämmighetssiffrorna för väg (3) verkliga Bulletin A-prediktioner (0.256/0.695/1.252/3.885 ms vid 1/2/3/9 dagar mot snabba 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…
ModelledLunart datum för referenssystem från en observationskampanjlunar_frame_campaign (composing lunar_vlbi,lunar_vlbi_fim,fim,lunar,lunar_frame_realise,frames,cio,lunar_frame)
Förmåga
Det sjuparametriga Helmert-datumet propagerat från en SIMULERAD OBSERVATIONSKAMPANJ i stället för återskapat från en injicerad transform. Jordstationer observerar en källbelagd katalog över beacons på månytan enligt ett uttryckligt schema; de lunara VLBI-fördröjningspartialerna ackumuleras till en Fisher-informationsmatris för beacon-koordinater och förs genom Helmert-utformningen A = [I₃ | [p]ₓ | p] till H = AᵀM_bA, så att den rapporterade datumnoggrannheten är en funktion av observationsprogrammet — exakt linjär i fördröjningssigma och monoton i bågen genom den libration som rapporten MÄTER. Datumdefekten är själva ämnet och inte en fotnot: rang, defekt, konditionstal, spektrum, ej observerbara riktningar i basen med sju parametrar, den svagaste riktningen även vid full rang och varje parameters andel av den redovisas vid varje körning, och varje parameter som kampanjen inte begränsar publiceras som NULL med en status. Korrelationen mellan beaconfel är MEASURED, inte antagen — exakt noll med stationerna fixerade, och redovisad med sin kostnad när de skattas. Kan köras som scenariotypen lunar-frame-campaign
Oberoende referens
Slutna identiteter och en oberoende väg i förrådet, utan att någon extern oberoende referens görs gällande. Helmert-utformningen — den enda nya derivatan i modulen — härleds på nytt med central finit differens av lunar_frame_realise::apply_helmert, en väg som inte delar något uttryck med den analytiska formen. Ackumuleringen den bygger på är lunar-vlbi-fims, vars jakobian differentieras med finita differenser mot lunar_vlbi::vlbi_delay_s där, och vars linjäralgebrakärna separat är externt förankrad mot numpy i tests/fim_observability_reference.rs — den här raden lånar ingendera statusen. Fysikens referens är strukturell snarare än numerisk: en beacons fördröjningspartial är den närfältiga SKILLNADEN mellan två nästan parallella enhetsvektorer, så den sämst bestämda translationsriktningen MÅSTE vara den kroppsfasta riktningen mot jorden, och testet hävdar det beräknade svaret mot den separat uppmätta riktningen. MEASURED: kampanjhärledd translationssigma 6,3975 m mot scenariot med injicerad transforms återställningsfel 0,3125 m (20,5× snävare), medan rotation och skala går ÅT ANDRA HÅLLET, 2,32× och 13,5× lösare — den injicerade vägen antar ett isotropt sigma och sprider därför sitt fel jämnt över sju parametrar, vilket fördröjningsobservabeln inte gör. Rang 7/7 men konditionstal 3.8e5, med en riktning som är 99,57 % ren translation mot jorden och fyrtio gånger sämre än någon annan. VAD DEN HÄR RADEN INTE PÅSTÅR: att kampanjsiffran är rätt i absoluta termer. Den visar att siffran nu HÄRLEDS ur ett schema, en geometri och en felmodell i stället för ur ett planterat svar. Förblir ReferenceImpl/MODELLED: inget publicerat par av lunar VLBI-kampanj och datumkovarians finns, stationsnätverket och fördröjningssigma är ILLUSTRATIVE indata (beaconkatalogen är källbelagd, kampanjen är det inte), observationerna behandlas som oberoende medan troposfär och klocka i en verklig session är korrelerade mellan närliggande skanningar, och efemerid, klockor, troposfär och jordorienteringsparametrar hålls FIXERADE. 0,30 extern jämförelse, ett fynd (förblir MODELLED): med varje jakobianrad för beacons återuppbyggd från NAIF SPICE-ljustider (DE440, ITRF93, MOON_ME; förhandsregistrerad 50863551) stämmer schemat, Helmert-rangen, datumsigman (inom 4.7e-3), konditionstalet, den svagaste riktningen (0,07 grader), libration-svepet och bågordningen på sex scenarier inom de förhandsregistrerade 1 % / 0,2 / 0,05 graderna. NumPy på den incheckade motorjakobianen stämmer till 3e-14 där stationerna är fixerade. Med skattade stationer skiljer det sig med 6.8e-6 mot en förhandsregistrerad 1e-9, vars förutsättning om konditionstalet var fel (Helmert-konditionstal 2.1e8; oberoende NumPy-vägar skiljer sig med 3e-6; ett bidrag från motorns reservväg med pseudoinvers 1e-9 är inte utesluten), så raden befordras inte på den förhandsregistreringen. 0,36 nyregistrering vid en tröskel skalad efter konditionstal (förhandsregistrerad b887eb05; t = max(1e-12, 10 kappa 2^-53) från konditioneringen av den gemensamma informationen och dess Helmert-reduktion), ett fynd (förblir MODELLED, NOT MET): steg 0 utesluter reservvägen med pseudoinvers som förklaring till gapet 6.8e-6 (ingen matris uppströms Helmert-matrisen faller tillbaka på de sex ursprungliga scenarierna, snävaste marginal en faktor 2,6), SPICE-delen håller fortfarande på alla sex, och NumPy stämmer inom tröskeln på sex av åtta scenarier (standard, de två bågarna, 3x fördröjningssigma, den kollinjära defekten och den nya körningen med fixerade stationer 2026-12-01; sämst 0,13 av sin tröskel). Den underkänns på stations_estimated (datumsigman upp till 6.8e-6, konditionstal 9.1e-6, norm med oberoende bortkastat 3.5e-6, mot t = 5.9e-7), och på det nya datumet har sydpolsbeaconen ingen observation, så beaconinformationen är rangdefekt (reservväg med pseudoinvers uppströms Helmert-matrisen i båda nya scenarierna) och den oförändrade NumPy-referensen kan inte utvärdera stations_estimated_fresh (singulär matris). Resultat: docs/design/evidence/mr05-lunar-datum-cond/RESULTS.md
Tester
lunar_frame_campaign::tests (21 bibliotekstester: Helmert-utformningen mot en central finit differens av lunar_frame_realise::apply_helmert — modulen som datumet GÄLLER, som inte beräknar någon derivata och därför fastlåser [p]ₓ…
ModelledBekräftelse från oberoende skattare av tröskeln för bågsträcka i cislunar rymdcislunar_arc_recovery,batch_ls
Förmåga
En skattare med batch-minsta kvadrat som ÅTERSKAPAR chief-satellitens begynnelsetillstånd från simulerade mätningar mellan satelliter över växande prefix av samma epokrutnät som tabellen rang mot båge använder, med mätpartialerna tagna som centrala finita differenser av den sammansatta framåtmodellen. Den använder ingenting av det maskineri som tröskeln mättes med — ingen analytisk jakobianrad, ingen variationell tillståndsövergångsmatris, ingen singulärvärdes- eller egenvärdesuppdelning, ingen rangtolerans, inget filter med kvadratrot av informationen — och delar bara dynamiken, begynnelsevillkoren, den skalära observabeln och epokrutnätet, vart och ett namngivet i det utsända dokumentet. Två kriterier, båda svepta: återställning utan brus (rangens motsvarighet) och skattbarhet med Monte Carlo (skattbarhetens motsvarighet, mätt mot en känd referens i stället för förutsagd ur en kovarians). Kan köras som scenariotypen cislunar-arc-recovery
Oberoende referens
En separat skattare i den här kodbasen med en annan algoritm och en disjunkt kodväg: olinjär viktad Gauss-Newton med partialer från finita differenser, vars utlåtande läses som ett uppmätt fel i tillståndsåterställning i km och mm/s. Den har inget uttryck gemensamt med Gramianens väg via rang och kovarians, och separationen UPPRÄTTHÅLLS av en vakt på källtexten i stället för att bara påstås. MEASURED på det publicerade plana DRO-rutnätet: SKATTBARHETSkriteriet är CORROBORATED — den uppmätta Monte Carlo-gränsen är 5,739130 h mot den formella 5,739130 h (kvot 1,0000), och det uppmätta RMS återskapar den formella 1σ över 21 bågsträckor till en geometrisk medelkvot på 0,9804. RANGkriteriet är INTE styrkt som gräns för återställbarhet: skattaren återställer från 0,782609 h mot Gramianens 2,086957 h, kvot 0,375, och vid 1,826087 h — det sista prefixet som rangavläsningen poängsätter till 3 av 4 — återställer den till 1.96e-5 av den a priori förskjutningen. Återställningsgränsen är oförändrad över tre tiopotenser av sin egen gräns medan rangtröskeln spänner från 'aldrig' till 0,782609 h över fyra tiopotenser av rel_tol, och de två sammanfaller exakt vid rel_tol = 1e-8. Det spannet noterades först som att det nådde 0,260870 h; den siffran var en ARTEFAKT, framkallad av en rangavläsning som räknade 4 riktningar från 2 mätrader under flyttalsbruset i f64, och den rättas här i stället för att få stå kvar. Rangavläsningen begränsas nu av Sylvesters olikhet med orsaken utsänd, och det rättade spannet mättas vid exakt den båge där den oberoende skattaren återställer, vilket stärker den här radens korsvalidering i stället för att försvaga den: den publicerade 1e-6 är en konservativ KONVENTION för singulärvärden, inte ett påstående om återställbarhet. Samma mönster rumsligt: NRHO 9,290323 h mot 21,677419 h, halo 22,978723 h mot 39,829787 h, med skattbarheten överens exakt i båda. Det plana DRO-fallet med sex tillstånd återställs vid ingen båge, vilket oberoende återskapar den familjens strukturella datumdefekt från en skattare som inte fått veta något om den. INTE externt förankrad — dynamiken och begynnelsevillkoren delas med analysen som testas och ingen offentlig datamängd publicerar en sådan tröskel — så ExternalDataset avstår
Tester
cislunar_arc_recovery::tests och tests/cislunar_arc_recovery_reference.rs (båda gränserna och deras kvoter fastlåsta på det publicerade rutnätet; den uppmätta felkurvan jämförd med den formella kovariansen rad för rad med en…
ModelledLunar servicevolym från verklig, hämtad konstellationsgeometrilunar_ephemeris,lunar_service
Förmåga
Tar emot en tabellerad månscentrerad tillståndsefemerid (utvärderingen av en SPK/BSP-kärna) eller en publicerad konstellationsdefinition bakom ephemeris_path, kör samma svep över täckning / DOP / skyddsnivå mot den och sänder ut det krav på σ_URE som den innebär BREDVID de oförändrade illustrativa keplerska och perturberade resultaten, med skillnaden som en egen namngiven storhet. Varje siffra bär en proveniensklass som skiljer kärnhärledd från härledd ur publicerade element och från modellerad, så att de aldrig kan förväxlas i ett citat längre fram
Oberoende referens
GEOMETRIN är extern och hashad: tre fixturer vars tal enbart kommer från dokument hämtade med URL, hämtningsdatum och SHA-256, som kan återskapas av incheckade generatorer som verifierar uppströmshashen och AVBRYTER i stället för att sända ut ett tal — referenskonstellationen för LANS interoperabilitetsdemonstration (NASA NTRS 20250009447, SHA-256 d1b916be…), fallstudierna i LNCSS (NAVIGATION 70(4) navi.613, CC BY, SHA-256 4e294687…) och en genuin efemerid för flugna rymdfarkoster för LRO, Danuri, Chandrayaan-2 och CAPSTONE utvärderad från JPL:s egna rekonstruerade kärnor via Horizons. INGEN kärna för en konstellation för lunar navigering finns offentligt — Moonlight/LCNS, LCRNS och LNSS flyger inte och NAIF publicerar inget för dem — och ingen har hittats på. Det HÄRLEDDA kravet på σ_URE har INGEN extern oberoende referens (ingen publicerar den avståndsnoggrannhet som en lunar HPL på 50 m kräver över den här servicevolymen), så det kontrolleras mot sin egen algebraiska identitet och, oberoende av den, genom att hela svepet körs om vid det beräknade kravet och det bekräftas att tillgängligheten växlar där. MEASURED: den publicerade utformningen med 8 satelliter behöver σ_URE 2,9044 m vid 100 % täckning mot den illustrativa konstellationens 0,3591 m vid 37,85 % — en revidering med 8,09× av ett publicerat tal enligt programregel R4. Den kvalitativa slutsatsen består (LNIS-klass 30 m sluter fortfarande inte en sydpolär HPL på 50 m) men bristen var överdriven åttafalt. LANS-demon med 5 satelliter ger NOLL prov på skyddsnivå — fem satelliter kan inte ge de sex i sikte som en felhypotesmängd för ett enskilt fel behöver — och kravfältet SAKNAS i stället för att fabriceras; likaså för de fyra verkliga rymdfarkosterna vid 0 % täckning. InternalConsistency är den ärliga sorten: INDATA är externa och hashade, men storheten som den här raden handlar om valideras bara mot sig själv. 0,30 extern jämförelse, ett fynd (förblir MODELLED): mot LNCSS fallstudiestatistik i navi.613 på 346 rutnätspunkter hamnar 4 av 12 tillgänglighetsstatistiker utanför de förhandsregistrerade 2 procentenheterna (fall A: -4.0, +22,5 och -3.6 pp; fall B: -12.1 pp). Troliga orsaker: element lästa i fel referenssystem, tvåkroppsproblemet med Kepler över 15 dagar mot artikelns oangivna kraftmodell, och ett rutnät som inte går att återskapa ur texten. Halvan med PDOP kunde inte utvärderas (LANS skriver ingen numerisk statistik); jämförelsetestet är incheckat som ignorerat. 0,30 omgång 2, ett fynd (förblir MODELLED): mot en referens med Orekit 12,2 / Hipparchus 3,1 som beräknar hela rapporten (Orekit-propagering, DOPComputer för sikt och DOP, MHSS-skyddsnivåer sammansatta med Hipparchus, kravet löst per prov; förhandsregistrerad d3ce97b2) på alla fem hämtade geometrier och två rutnät stämmer 155 av 160 värden inom de förhandsregistrerade trösklarna (2 pp, 5 %, 1 %), inklusive kravet på sigma_URE för LNCSS A och C (3,879072208 m på båda sidor för fall A) och det frånvarande kravet för LANS och omloppsfarkosterna. LNCSS B på det täta rutnätet underkänns på sin statistik för sämsta prov (sigma_required 0,000923 mot 0,001511 m, hpl_max 1.63e6 mot 0.99e6 m) där nära singulära geometrier (PDOP omkring 1e6) förstärker samstämmigheten på meternivå i positionen; dess p95-krav stämmer (1,6343 mot 1,6357 m). Kravet för sämsta prov är illa ställt på degenererad geometri. Mot navi.613: 4 av 12 fortfarande utanför 2 pp (fastlåst)
Tester
lunar_ephemeris::tests (format- och systemtolkning; Lagrange-interpolation exakt i noderna och på en linjär bana mellan noder; ICRF-element tar IAU 2015-reduktionen och är byte-lika med en explicit icrf_to_iau_moon…
ModelledEnhet och proveniens deklarerade för varje rapporterad storhetfield_schema
Förmåga
Ett maskinläsbart schema som anger enhet, proveniensklass och definition för varje numeriskt fält i varje scenariorapport, plus en enda global spärr som kör varje registrerad scenariotyp och underkänner om ett utsänt numeriskt fält saknar någotdera. Proveniensvokabulären är sluten och varje klass bär en evidensnivå, med två klasser som avsiktligt avbildas på inherits-scenario-label och depends-on-input i stället för att tilldelas en nivå som klassen inte bestämmer
Oberoende referens
Själva det utsända dokumentet: varje numeriskt löv måste lösas upp till en post i det dokumentets eget units-block. Det finns inget externt enhetsregister att kontrollera en DEKLARERAD enhet mot, så en deklarerad enhet är ett granskat påstående och inte ett verifierat: spärren verifierar FULLSTÄNDIGHET och KORREKT FORM, inte sanning, och Validated vore fel eftersom ingenting externt bekräftar att m är rätt enhet för ett fält som heter _m. En oberoende korskontroll av namnsuffix kördes över de 1 434 fält som beskrevs VID DEN TIDPUNKTEN: av de 691 som bär ett suffix med enhet avviker 40 från den deklarerade enheten och alla 40 är förklarade (suffix per sekund, minima, aperturssekunder, newtonmeter mot ett suffix som ser ut som nanometer), så ingen felaktig enhet kom fram. Den korskontrollen har inte körts om sedan dess, och täckningen har vuxit förbi den — siffran lämnas vid det som faktiskt mättes i stället för att anges om vid den nuvarande totalen. Vid den ändringen (0.27.0) gick täckningen från 7 av 56 slag till 60 av 61, och från 389 av 1354 fält till 1 742 av 1 744 (docs/field-units-schema.json, som en kontroll av föråldring håller aktuell). INGET slag återstår utan täckning (tak 0, FUT-28, 0,36): det sista var sweep-nd, där två av kolumnerna är nyckelstyrda av anroparen så att deras enheter är data; de beskrivs nu som mixed - see note och enheten för varje position läses ur det SVEPTA paketets egen enhetstabell till key_units och metric_units (eller tas från axelns deklarerade unit, som måste stämma med paketets när båda finns; null när ingen finns, angivet i stället för gissat). cislunar-observability var det näst sista, och kom av listan när dess släppta dokument fick ett units-block: additivitetsfästet som hade namngett units som en förbjuden nyckel BEVISAR nu i stället att tillägget är additivt — tas blocket bort igen hashas dokumentet fortfarande till de två konstanter som frystes innan det fanns, så ett släppt värde som flyttat sig under tillägget underkänns fortfarande. Arbetet avslöjade också tolv defekter i enheter eller dokumentation i befintlig kod, rapporterade i stället för åtgärdade under R1
Tester
tests/field_units_global.rs (alla 61 registrerade typer körs, en dokumentform vardera: varje numeriskt löv måste lösas till en post i det dokumentets eget units-block; en felformad post räknas som saknad för VARJE typ…
ValidatedLunart datum för referenssystem från en VERKLIG observationskampanjlunar_llr,realdata::llr_crd (composing fim,cio,frames,ephem,lunar_frame,lunar_frame_campaign)
Förmåga
Kovariansen för det sjuparametriska Helmert-datumet, där de två simulerade indata ersatts av uppmätta: schemat är markens sändningsepoker för 337 arkiverade normalpunkter från ILRS lunar laser ranging (2015-04-08 till 2015-06-27, Grasse MeO 7845 och Matera MLRO 7941, alla fem retroreflektorgrupper) och varje observationsvikt är den punktens egen arkiverade precision bin_rms/√n_raw — median 5,13 mm envägsavstånd, avläst ur filen. Stationskoordinater IERS ITRF2020, reflektorkoordinater JPL DE430 Table 7. Kan köras som scenariotypen lunar-llr-datum. Det validerade påståendet (0,36) är snävt: på den analytiska standardvägen stämmer beräkningen av datumkovariansen med en oberoende SPICE-ljustids- och NumPy-referens på nya uppmätta normalpunkter; det är ingen LLR-noggrannhet och inget belägg för att den analytiska månen är noggrann
Oberoende referens
Slutna identiteter, en oberoende väg i förrådet och, sedan 0,36, en oberoende SPICE- och NumPy-biblioteksreferens på nya uppmätta data (nedan); inget publicerat par av lunar LLR och datumkovarians finns att kontrollera mot, så ingen noggrannhet görs gällande. Den enda nya derivatan — avståndspartialen med avseende på reflektorns kroppsfasta position — härleds på nytt med central finit differens av tvåvägsljustiden som den differentierar, en väg som inte delar något uttryck med den analytiska formen. Fysikens referens är strukturell: partialen av ett avstånd ÄR två gånger siktlinjen, så den kroppsfasta koordinaten längs medelriktningen mot jorden måste bestämmas långt bättre än de två koordinaterna i himlaplanet, som bara libration når — uppmätt till 50,7× till 71,7× över de fem grupperna mot ett libration-svep som rapporten mäter oberoende, med den isotropa små-vinkelprediktionen och den tvärgående anisotropin som förklarar gapet båda utskrivna. VAD SOM ÄNDRATS: schemat, antalet observationer och varje observationsvikt är nu uppmätta; 337 av 349 arkiverade punkter används och de 12 som inte gör det hoppas över och räknas, eftersom ITRF2020 saknar position för Apache Point. MEASURED: datumets translationssigma 1.851746e-2 m mot den SIMULERADE kampanjens 6,3975 m (345×), rotation 36×, skala 24× — en kvot mellan ett laseravståndsnät och ett VLBI-fördröjningsnät, alltså ett fynd och inte en validering. Reflektorinformationens rang 15/15 med koppling mellan grupperna exakt 0; Helmert-rang 7/7, konditionstal 2.4e4. VAD DEN HÄR RADEN INTE PÅSTÅR: att siffran är rätt i absoluta termer. En verklig LLR-lösning samskattar månens bana, fysiska libration, jordorientering, stationskoordinater samt tidvattens- och relativistiska parametrar, och rapporterar decimeter (DE430 Table 7:s egna 0.12-0.27 m) där den här gränsen är långt mindre; detta är en Cramér-Rao-gräns för en angiven reducerad parameteruppsättning, inte en noggrannhet. Utanför det validerade påståendet (modellerat, inte validerat): månens centrum i efemeriden och IAU 2015-orienteringen av kroppen är modellerade, och troposfär, tidvatten, stationsexcentricitet, polrörelse, UT1-UTC, relativistisk fördröjning och stationsklockor saknas. Deras sammanlagda storlek är PUBLICERAD i stället för resonerad — observerat minus beräknat envägsavstånd 156 494 m RMS över de 337 punkterna — och deras effekt på kovariansen är BEGRÄNSAD i stället för resonerad: en omlösning av hela datumet med varje partial lutad 0,1° (två gånger den uppmätta lutningen i efemeriden för sämsta epok, med växlande tecken) flyttar leveransen med 0,288 %. EXTERN KONTROLL (0,30 omgång 2, förhandsregistrerad 6b27964a), ett fynd (förblir MODELLED): SPICE tvåvägsljustid (DE440, ITRF93, DE440 lunar orientering) med partialer från finita differenser, och en numpy-invers, på samma 337 uppmätta normalpunkter och vikter, stämmer på bokföring, båda ranger, noll koppling, residual-RMS (2.1e-5) och 15 av 16 kovariansstorheter. Sigma för z-translationen är 1,03 % för högt mot den förhandsregistrerade tröskeln 1 %. Med månens centrum från DE440 faller det till 0,049 % (c51f8b2, sedda data), och på nya normalpunkter från 2019 håller datumet med kärn-månen varje tröskel (raden "…, kernel Moon centre"), där den analytiska månen också håller sig inom trösklarna (sämst 3.8e-3, endast information), så den jämförelsen skiljer inte månmodellerna åt. KÖRNING MED NYA DATA AV DEN ANALYTISKA VÄGEN (0,36, förhandsregistrerad 31f5283 innan någon punkt hämtats): den oförändrade SPICE- och NumPy-referensen på 151 använda EDC CRD v2-normalpunkter från 2025-04..06 (ett år som inget test använt; filerna hämtade på nytt och referensen körd om oberoende, se fixturens NOTICE) vid samma trösklar: bokföring, ranger, antal per grupp och noll koppling lika; sigman och normer sämst 1.11e-3 (tröskel 1 %), konditionstal 8.95e-4 (2 %), kvoter tvärs/längs sämst 1.79e-3 (2 %); SPICE O-C 10,79 m. VALIDATED på det beläggen som en biblioteksreferens för enbart beräkningen av kovariansen; den analytiska residual-RMS på det urvalet är 222 km, så trösklarna skiljer inte månmodeller åt (som på kärnraden). Resultat: docs/design/evidence/mr06-llr-analytic-fresh/RESULTS.md
Tester
tests/lunar_llr_real_data.rs (11 tester: alla 15 incheckade CRD-filer byte-identiska med sina registrerade kontrollsummor; alla 349 poster redovisade, 337 använda och 12 hoppade över av ett namngivet skäl; varje arkiverat avstånd inom…
ModelledGeodesi för lunar referensstation: tillagd retroreflektor och VLBI-beacon mot datumet med fem grupperlunar_llr (over lunar_frame_campaign::beacon_information,schedule_for and solve_datum_information,lunar_vlbi_fim)
Förmåga
Valfria indata extra_reflectors och extra_beacons i scenariot lunar-llr-datum lägger till ett block station_geodesy: Helmert-informationen för de fem grupperna från det arkiverade urvalet av lunar laser ranging plus den information som en tillagd retroreflektor (avståndsmätt vid de arkiverade normalpunktsepoker då mätstationen är över sin horisont, var och en med den normalpunktens arkiverade vikt) och en tillagd VLBI-beacon (observerad av nätverket och schemat i lunar-frame-campaign med jordstationerna fixerade, genom fördröjningspartialerna i lunar-vlbi-fim) på angivna platser lägger på det sjuparametriska datumet, omlöst, med varje Helmert-parameters 1-sigma före och efter, deras kvot, normerna före och efter samt de yttersta egenvärdena för Fisher-differensen. Om de saknas eller är tomma är rapporten oförändrad
Oberoende referens
Endast intern konsistens: varje tillagd plats är en egen punkt och ett laseravstånd eller en VLBI-fördröjning med fixerad station berör en punkt, så dess information A_p^T M_p A_p är positivt semidefinit och adderas; testet kontrollerar Fisher-differensen och varje varians mot det. Resultatet för de fem grupperna är den befintliga raden med verkliga data och är oförändrat. Den tillagda reflektorn återanvänder epoker som schemalagts för de fem befintliga grupperna, ett ILLUSTRATIVE schema, och den tillagda beaconens nätverk, schema och fördröjningssigma är de ILLUSTRATIVE indata från lunar-frame-campaign; platsen är en ILLUSTRATIVE sydpolär position. En sydpolär plats ser jorden lågt vid horisonten eller inte alls, vilket de befintliga testerna av höjdvinkel uttrycker; ingen av platserna avståndsmäts kontinuerligt. Siffrorna är Cramér-Rao-gränser för en reducerad parameteruppsättning, inte ett löst datum och inte ett påstående om någon verklig station
Tester
tests/lunar_station_geodesy.rs (empty_or_absent_extra_lists_are_bit_identical: tomma listor och baslinjeexemplet ger standardrapporten och sammanfattningen byte för byte; an_added_site_never_increases_any_variance: den…
ValidatedLunart datum för referenssystem från en VERKLIG observationskampanj, kärn-måncentrumlunar_llr (llr_geometry_with,LunarLlrDatumScenario); ephem_provider (KernelEphemeris); naif_kernel
Förmåga
Kovariansen för det sjuparametriska Helmert-datumet i lunar-llr-datum från arkiverade ILRS-normalpunkter och deras uppmätta vikter, på kärnvägen: det geocentriska måncentrumet läses ur JPL DE440 med motorns egen kärnläsare (planetary_kernel_path; lunar_llr::llr_geometry_with, ephem_provider::KernelEphemeris). Endast måncentrumet skiljer sig från den analytiska raden; IAU 2015-orienteringen, den frånvarande polrörelsen och UT1, katalogerna, urvalsreglerna, vikterna och linjäralgebran är desamma. Det validerade påståendet är bara att den här vägens datumkovarians stämmer med en oberoende SPICE- och NumPy-referens på nya, osedda normalpunkter. Jämförelsen skiljer inte månmodeller åt och kontrollerar inte måncentrumet: på samma urval klarar den analytiska månen också varje tröskel, den förhandsregistrerade mutationen (kärn-månen avläst en timme för sent) upptäcktes inte, och ett måncentrum som är ungefär 4 650 km fel klarar det också (se referenstexten). Det är inget belägg för att kärn-månen förbättrar datumet. Kan köras som scenariot lunar-llr-datum med planetary_kernel_path (och normal_points_dir för ett annat urval)
Oberoende referens
NAIF SPICE Toolkit N0067 (spiceypy 8.2.0, MIT) tvåvägsljustider på DE440, jordorientering ITRF93 och lunar orientering DE440 (MOON_ME) med partialer från finita differenser på 100 m, samt informationsmatris och invers med numpy 2.3.5 (BSD-3-Clause, LAPACK): den oförändrade generatorn för den analytiska radens jämförelse (6b27964a), körd på ett nytt urval (EDC CRD-normalpunkter, 2019-04..06) förhandsregistrerat i 830d945a innan något av det hämtats, vid den analytiska radens trösklar (1 % för sigman och normer, 2 % för konditionstal och kvoter, exakt bokföring, ranger och koppling) och dess referenskontroll av sig själv (SPICE O-C 10,86 m < 100 m). Varje storhet håller, sämst 7.6e-5. Mutationer: den planerade månfördröjningen på en timme upptäcks INTE (kovariansen beror på spridningen av siktlinjerna, inte på deras tidpunkt); en strukturell mutation vald efteråt och redovisad som sådan, där partialen för nedlänken tas bort, underkänner varje sigma. Fynd: på det här urvalet klarar den analytiska månen det också (sämst 3.8e-3), så tröskeln skiljer inte månmodeller åt och detta validerar kovariansen på nya data, inte en förbättring med kärn-månen. Integratorkontroll vid sammanslagningen (inte förhandsregistrerad): kärn-månen avläst relativt jord–måne-barycentret i stället för jorden (residual-RMS 4 649 km) och kärnepoken utan TT minus UTC (69 s; residual 2,6 km) klarar båda fortfarande varje tröskel, medan bortagen av sqrt(n_raw) ur de uppmätta vikterna underkänner alla 16 storheter med band; jämförelsen är känslig för vikterna, partialerna och linjäralgebran, inte för måncentrumet. Båda sidor läser DE440: detta validerar beräkningen på DE440, inte DE440. Utanför påståendet: en LLR-noggrannhet (en Cramér-Rao-gräns för en reducerad parameteruppsättning)
Tester
tests/validate_llr_datum_kernel_moon_fresh.rs::llr_datum_kernel_moon_matches_spice_and_numpy_on_fresh_normal_points (447 osedda normalpunkter från 2019-Q2; sigman och normer inom 4.0e-5 av 1e-2, konditionstal 1.6e-5 av 2e-2…
ValidatedInbyggd analytisk lunar efemerid — dess ANGIVNA NOGGRANNHETSGRÄNS kontrollerad mot verkliga dataephem (moon_position),lunar_llr,realdata::llr_crd
Förmåga
ephem::moon_position, den lågprecisa geocentriska månserie som craten faller tillbaka på när ingen DE/SPK-kärna finns, uppmätt mot verklig lunar laser ranging och mot en publicerad planetefemerid över samma tidsspann. Den här raden validerar den gräns som modulen anger om sig själv, INTE en noggrannhet: serien bekräftas vara inte sämre än den säger, inte bekräftad som bra
Oberoende referens
TVÅ oberoende externa datamängder som inte delar något. (1) 337 arkiverade ILRS-normalpunkter från lunar laser ranging (EUROLAS Data Center, DGFI-TUM, 2015-04-08 till 2015-06-27, fem retroreflektorgrupper, incheckade med SHA-256 per fil och ett skript för ny nedladdning och verifiering): observerat minus beräknat envägsavstånd 156 494 m RMS, med stationskoordinater från IERS ITRF2020 och reflektorkoordinater från JPL DE430 Table 7, så residualen domineras av serien för måncentrum. (2) Geometriska geocentriska månlägen från JPL Horizons över samma tidsspann: 112 567 m RMS radiellt, 195 655 m RMS vektor, sämsta epok 360 324 m = 0,0536°. En avståndsresidual svarar på den RADIELLA delen av ett efemerisfel, så (1) och (2) är samma storhet nådd på två vägar och stämmer inom 1,39× — vilket är vad som ger scenariot lunar-llr-datum rätt att tillskriva sin residual efemeriden. Motorns egen moduldokumentation hävdar ~0,3° / ~några·10² km; båda mätningarna ligger inom den, den vinkelmässiga med en marginal på 5,6×. OMFATTNING, angiven så att ingen läsare kan missförstå: detta validerar den angivna GRÄNSEN, inte en noggrannhetssiffra. Serien förblir olämplig för alla tillämpningar som behöver bättre än ~1e5 m, och den begränsningen är radens innehåll lika mycket som samstämmigheten. Kan återskapas offline med de incheckade skripten för hämtning och verifiering
Tester
tests/lunar_llr_real_data.rs::the_analytic_moon_series_disagrees_with_jpl_by_the_same_amount (12 veckovisa geocentriska tillstånd, sämsta epokvinkel verifierad < 0,3° och RMS < 5e5 m mot modulens egna dokumenterade påstående…
ModelledSpärrens integritet — ett grönt som betyder vad det sägerscripts/gate.sh,scripts/check-gate-receipt.sh,scripts/check-repeatability.sh,scripts/install-gate-hook.sh
Förmåga
Tre strukturella vakter över själva verifieringsprocessen, var och en stänger en klass av defekter som nått den kanoniska spärren som en intermittent eller falsk röd. (1) Varje konstruerad temporär sökväg i Rust-källorna måste bära en komponent som är unik per anrop; ett process-id avvisas, eftersom cargo kör bibliotekstesterna som parallella trådar i EN process och pid delas av alla. (2) Varje fästpunkt byte för byte eller via hash måste deklarera, intill sig själv eller i modulhuvudet, vad den täcker och vad den avsiktligt utesluter — så att en ändring som skär över flera delar med en blick visar vilka fästpunkter som berörs och vilka som i tysthet blivit detektorer för ändringar i hela förrådet. (3) Ett grönt kan bara göras gällande från HELA sviten: scripts/gate.sh kör cargo test --all, fångar den sanna slutkoden utan någon pipe i vägen och skriver ett kvitto som namnger committen, antalet integrationsbinärer, antalet tester och varaktigheten; kontrollen före push avvisar en push vars commit inget giltigt kvitto namnger, på ett rent träd. Upprepbarhet provtas separat av scripts/check-repeatability.sh, som kör biblioteksviten N gånger och underkänner om mängden tester som klaras skiljer sig.
Oberoende referens
Sluten form: varje vakt körs över ett fast känt felaktigt kodstycke som måste utlösa och ett fast känt korrekt kodstycke som måste förbli tyst, båda litterala konstanter som detektorn inte kan påverka. De två kända felaktiga kodstyckena är defekterna F22 och F25 i sin ursprungliga form. Detta är en INTERN oberoende referens och raden är MODELLED i enlighet med det: den visar att vakterna skiljer defekten från dess åtgärd, inte att de klasser de beskriver är uttömmande. Deras angivna blinda fläckar — delat tillstånd som inte är en sökväg, en fästpunkt som hålls i en kort namngiven konstant, en sällsynt kapplöpning som tre körningar inte provtar, och ett kvitto som vem som helst som kan skriva filen kan förfalska — är utskrivna i moduldokumentationen i tests/source_guards.rs och i varje skripts huvud i stället för att lämnas att upptäckas.
Tester
tests/source_guards.rs (9 tester: båda skydden över hela källträdet, plus mutationsfixturer som graderar varje skydd i båda riktningarna — mönstret F22 rapporterat på båda kolliderande sökvägarna, den levererade atomsekvensen…
ValidatedSammansatt PL för tidssynkronisering — skalär MHSS-specialisering (H=1_N)src/integrity/tpl_scalar.rs
Förmåga
TPL med solution-separation för skalär tid över heterogena källor; PL styrd av brus i den sämsta uteslutningsdelmängden + bias hos UTC(k)
Oberoende referens
P2: numpy 2.3.5 linalg.lstsq och scipy 1.18.1 (norm.isf, norm.sf, brentq) räknar om, med sina egna algoritmer, skattarna med viktad minsta kvadrat för delmängder, den allmänna separationskovariansen sqrt(Δ Σ Δᵀ), biaserna och skyddsnivån utifrån dem på 300 incheckade indata (tests/fixtures/tpl_scalar_numpy_oracle); PL stämmer inom 1e-9 relativt (sämst 1.2e-10) och den styrande uteslutningsdelmängden är identisk, toleransen fastställd före jämförelsen. Multiplikatorerna, förhandsfördelningarna och biasöverbunden är indata, och strukturen i PL-ekvationen (lägeslistan, delningen ir/2, biasprojektionen) är en angiven indata, som för raden Kärna för lunar ARAIM-skyddsnivå; det validerade påståendet är linjäralgebran och PL på de indata, inte de fysiska storlekarna i ett scenario för tidssynkronisering. ARAIM-härstamning Blanch 2015 / Joerger 2014
ValidatedSammansatt PL för tidssynkronisering — täckning av holdover-hölje, flerårigt regime (tau>=90d)src/integrity/composed_pl.rs
Förmåga
Höljet med löpande maximum överbegränsar (utan genomstick) en verklig metrologisk serie vid varje testad fördröjning tau>=90d på ett disjunkt segment; kort tau (<=30d) är en redovisad Modelled gräns
ModelledÖverbegränsning av integritet för spårbarhetsbias hos heterogena UTC(k)src/integrity/hetero_budget.rs
Förmåga
Överbegränsning av bias per källa b = (U/k_cov)·Phi^-1(1-tail/2) + åldrande, som blåser upp en publicerad utvidgad osäkerhet av Typ B till en fördelad integritetssvans; kopplar till tpl_scalar som bias_s
Oberoende referens
Oberoende reproduktion med numpy + stdlib-statistics av den slutna formen för överbegränsningen (InternalConsistency). Serien BIPM Circular-T [UTC-UTC(USNO)] är endast en CITERAD indata — det är SAMMA serie som redan är Validated för holdover-täckningsraden R4 och den valideras INTE på nytt här; att återskapa dess värden bevisar ingenting om R2. Den djupa integritetssvansen är Modelled. 0,30 extern jämförelse, ett fynd (förblir MODELLED): på BIPM:s filer per laboratorium för UTC-UTC(k) (102 laboratorier, 105 024 rader med publicerade osäkerheter) överskrids överbegränsningen b = 2,576 u vid svansen 1e-2 av 50,8 % av raderna (Clopper-Pearson 95 %: 50,4 till 51,1 %) och med mer än 1 % vid 101 av 102 laboratorier. Den publicerade u är osäkerheten i BIPM:s bestämning av UTC-UTC(k), inte en gräns för förskjutningen, som rutinmässigt uppgår till många gånger u; överbegränsningen som den är specificerad begränsar inte verklig spårbarhetsbias hos UTC(k). 0,30 omgång 2, en överbegränsning av de realiserade förskjutningarna UTC-UTC(k) tränad på 2015-2022 och testad på BIPM Circular T-data 2023-2026 (förhandsregistrerad ca0921a4, poolat överskridande högst 1e-2), ett fynd (förblir MODELLED): det poolade överskridandet är 0,0333 (694 av 20 826 rader över 82 laboratorier; 0,0127 utan de 430 rader som saknar gräns enligt regel). D9 omgång 3, en poolad hierarkisk åldringsgräns (utck_bound), förhandsregistrerad fb475550 och poängsatt prospektivt på Circular T-utgåvor från 465: ännu inte körd (utgåva 465 publicerades 2026-10-12 med omkring 285 testvärden; den förhandsregistrerade regeln om 1000 värden kräver utgåvor till omkring 468, och körningen kräver de arkiverade filerna per laboratorium från 2026-09-30, eftersom BIPM sedan dess skrivit 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)…
ModelledKorrelerad korskovarians för spårbarhetsbias (fördelning som är osäker vid gemensamt läge)src/integrity/hetero_budget.rs
Förmåga
Korskovarians för bias av storlek N×N med rho·b_i·b_j utanför diagonalen för källor som delar en realiserare av UTC(k); BEVISAT correlated_fused_bias >= independent_fused_bias (naiv oberoende fördelning underbegränsar den sammanvägda biasen -> optimistisk -> osäker)
Oberoende referens
Oberoende numpy-reproduktion av korskovariansen och olikheten mellan korrelerad och oberoende sammanvägd bias (InternalConsistency). Representativ källmängd; Modelled scenario.
ValidatedGLS-blekning av gemensamt läge (Aitken) + Mahalanobis-identitetsrc/integrity/gls_commonmode.rs
Förmåga
Handrullad Cholesky Omega=LL^T och blekning med framåtsubstitution z=L^-1 r (Cov(z)=I när Cov(r)=Omega); Mahalanobis kvadrat z^T z = r^T Omega^-1 r
Oberoende referens
P2: numpy 2.3.5 linalg.cholesky (LAPACK potrf), solve (gesv) och inv på 201 incheckade SPD-indata (tests/fixtures/gls_whitening_numpy_oracle) kontrollerar den handrullade faktorn, den blekta residualen och blekningsoperatorn; Mahalanobis kvadrat kontrolleras mot solve(Omega, r), som inte använder någon Cholesky, så identiteten z^T z = r^T Omega^-1 r bekräftas på en separat väg. Allt inom 1e-12 relativt (sämst 7.9e-16), toleransen fastställd före jämförelsen. Det största konditionstalet är 19,3, så illa konditionerade matriser täcks inte. GLS/Aitken 1935 blekning är Cited.
ModelledKonsistensstatistik för gemensamt läge (fel i delad referens som separationen är blind för)src/integrity/gls_commonmode.rs
Förmåga
Poängstatistik (1^T Omega^-1 r)^2/(1^T Omega^-1 1) ~ chi^2_1 för en förskjutning i gemensamt läge som solution separation (kontraster ortogonala mot 1) inte kan se; en förskjutning i gemensamt läge blåser upp den medan parvisa separationer förblir platta
Oberoende referens
Oberoende numpy-reproduktion av statistiken + egenskapstest av att en injektion i gemensamt läge blåser upp den (InternalConsistency). Modelled scenario. 0,30 omgång 2 (förhandsregistrerad f9aa360d), blockerad (förblir MODELLED): numpy 2.3.5 LAPACK gesv återskapar statistikens värde på 261 incheckade fall (inom 3.5e-15 vid god konditionering, 1.2e-9 vid konditionstal upp till 6.1e7); nollfördelningen chi-två(1) är en citerad sats och de platta parvisa separationerna en identitet utan motorutdata att jämföra med, så avgränsningen väntar på ett beslut från ägaren
ValidatedGräns för ej detekterbart gemensamt läge för residual utanför Omegasrc/integrity/gls_commonmode.rs
Förmåga
Tak för ej detekterbart gemensamt läge: den största felstorlek längs en riktning d som undkommer BÅDE separationen (alpha_ss = T_ss / blekt kontrastnorm för d) och statistiken för gemensamt läge (alpha_cm = sqrt(T_cm 1^T Omega^-1 1) / |1^T Omega^-1 d|), rapporterat som min(alpha_ss, alpha_cm). Under en positivt definit Omega utesluter de två blinda riktningarna (d proportionell mot 1 och 1^T Omega^-1 d = 0) varandra, så taket är ÄNDLIGT för varje d skilt från noll; det är oändligt endast för en nollriktning eller en Omega som inte är positivt definit. En riktning utanför den modellerade gemensamma axeln är blind endast för statistiken för gemensamt läge och begränsas av separationen
Oberoende referens
P2: numpy 2.3.5 linalg.solve (LAPACK gesv, LU utan Cholesky) räknar om alpha_ss (tröskeln över den blekta kontrastnormen för d efter att dess GLS-koefficient för gemensamt läge tagits bort), alpha_cm och deras minimum på 256 incheckade indata (Omega, d, T_ss, T_cm) (tests/fixtures/gls_outside_omega_bound_numpy_oracle), inklusive rena riktningar i gemensamt läge, riktningar utanför den modellerade gemensamma axeln samt nollriktningen och fallen med icke positivt definit matris som måste ge +inf; förhandsregistrerad (d070699a; ändring 8a44267b, före någon jämförelse, som återger matrisformen); toleranser fastställda före jämförelsen. Förmågetexten rättades genom beslut av ägaren (2026-10-02): den hade sagt att gränsen är oändlig för en riktning utanför den gemensamma axeln, vilket motsade koden och den här jämförelsen. Att den idealiserade detektorn med en enda kontrast ger en nedre gräns för en verklig delmängdsdetektors ej detekterbara storlek förblir Modelled
ValidatedIdentifierbarhet av lunart datum - linjäralgebra för uppdelningenlunar_identifiability
Förmåga
Schur-komplementets marginal för blocket {lunocenter-X, scale} i Fisher-matrisen för det 7-parametriska Helmert-datumet: den skalära degenerationsmåttet lambda_min(S), CRLB för origo-X och korrelationen mellan origo och skala
Oberoende referens
Oberoende SciPy/NumPy-referens (scripts/gen_datum_identifiability_ref.py -> tests/fixtures/datum_identifiability/scipy_ref.csv): Schur-komplementet, dess egenvärden och 2x2-inversen beräknade av ett oberoende bibliotek. Avgränsat till uppdelningens LINJÄRALGEBRA; de lunara storlekarna på korrelation/CRLB från verklig geometri förblir MODELLED.
Tester
tests/lunar_datum_identifiability_reference.rs::decompose_matches_scipy_reference (16 syntetiska 7x7 SPD-matriser från välkonditionerade till {0 3}-nära degenererade; Schur lambda_min / ursprungs-CRLB / |corr| mot…
ModelledKlassificering av nollrum för lunart datum (rangadditivitet för LLR + lyft av defekt genom libration)lunar_identifiability,lunar_datum
Förmåga
Klassificering av det interna avståndsmätningsproblemet för datum: en enda avståndsobservation bidrar med rang 1 (nollrum med 6 dimensioner); paret origo-X och skala är nästan noll och fysisk DE440-libration lyfter defekten till noll medan paret förblir nästan degenererat
Oberoende referens
Geometrisk struktur återskapad av motorn plus den slutna 2x2 Schur-identiteten; konsistent i STRUKTUR med Sosnica et al. 2025 (arXiv:2510,15484), vars rapporterade storlekar INTE återskapas här. Klassificeringen är strukturell; storlekarna på korrelation/CRLB under verklig geometri är MODELLED (reflektorkoordinater och orientering hålls fixerade). 0,30 extern jämförelse, ett fynd (förblir MODELLED): mot Sosnica et al. 2025 ligger korrelationen mellan origo och skala i avstånds-Fisher (-0.993 / -0.988) inom 0,05 från den publicerade -0.97, men på artikelns egen geometri med fem reflektorer är Helmert-korrelationen med 7 parametrar och lika vikter -0.78 (det publicerade värdet vilar på fel per reflektor som artikeln inte skriver ut), och CRLB för origo (0,6 till 1,2 mm vid avståndsbrus på 3 mm) ligger 96 till 98 % under artikelns 3,07 cm mot en tolerans på 20 %. Storlekarna återskapas inte
ModelledInformation om lunart datum från flera tekniker (LLR + lunar VLBI + avstånd till omloppsfarkost)lunar_datum,lunar_identifiability
Förmåga
Datum-jakobianrader för avstånd jord–reflektor med LLR, differentiell fördröjning med lunar VLBI mellan två stationer och avstånd från omloppsfarkost till beacon över det 7-parametriska datumet, kombinerade till en enda konsekvent förkonditionerad Fisher-matris; visar att spårning utanför radialen (omloppsfarkost / djupvarierad) bryter degenerationen mellan origo-X och skala där tvärgående VLBI hjälper endast indirekt
Oberoende referens
Korskontroller av varje tekniks partialer, analytiskt mot finita differenser (interna); FÖRBÄTTRINGENS RIKTNING är ett geometriskt faktum. Beaconplatser, scheman och brus är MODELLED/representativa (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)
ValidatedLeverantör av orientering för lunar huvudaxel enligt DE440lunar_orientation
Förmåga
Rotation MOON_PA_DE440 till J2000 vid godtyckliga epoker inom 2014-01-01 till 2030-12-31 TDB, genom geodetisk interpolation R0·Exp(f·Log(R0ᵀR1)) mellan noderna i en incheckad daglig serie på 6 209 rader (try_-funktionerna returnerar OrientationSpanError utanför den, de ofelbara panikar; den klipper aldrig); inbäddad vid kompilering så att ingen filsystems-I/O sker vid körning och WASM-bygget bär den
Oberoende referens
NAIF SPICE Toolkit (CSPICE N0067 via spiceypy 8.2.0, körd som verktyg): pxform från MOON_PA_DE440 till J2000 som utvärderar JPL:s binära PCK moon_pa_de440_200625.bpc direkt, med NAIF:s egen ramkärna moon_de440_250416.tf, vid 2 000 slumpmässiga epoker mellan noderna i det inbäddade fönstret. Rotationsvinkeln mellan Kshanas och SPICE:s matriser ligger inom 1.7e-5 rad (30 m vid medelradien 1737,4 km, fastställd före jämförelsen); uppmätt sämst 1.7e-6 rad (3 m), RMS 7.8e-7 rad, och sämst 1.75e-6 rad på 6 000 ytterligare epoker dragna av verifieraren. De dagliga noderna hämtades själva ur samma kärna (scripts/gen_de440_moon_pa.py, fixturens SHA-256 3076f81ef95d83f5efa240ed4c7ccb422f109407dde841fcf28d42dc63586eb7), så den här jämförelsen testar interpolationen mellan dem, vilket är påståendet. Hittat av den här jämförelsen och åtgärdat: den tidigare elementvisa linjära interpolationen med Gram-Schmidt behöll axeln men inte vinkeln i rotationen på 13,2 grader/dygn och hade ett fel på upp till 2.0e-4 rad (340 m) nära kvartspunkterna; den tidigare siffran på omkring 14 m kom från en vakt som bara provtar intervallens mittpunkter. Serien täcker 2014-01-01 till 2030-12-31 och fel utanför den (omgång 2); dess noder för 2024-2025 återskapas ur samma kärna till 4.3e-13. Jämförelsen med SPICE mellan noderna ovan täcker endast 2024-2025, som är det validerade fönstret; de utvidgade noderna kommer från samma kärna och skript men är inte jämförda mellan noderna. Ett geometriskt underlag för identifierbarhetsanalys, inte en orienteringsprodukt under en meter
ModelledUnderlag för geometri av lunart LLR-datum (reflektorer i huvudaxelsystem, markstationer, analytiska avståndspartialer)lunar_llr_geometry
Förmåga
De fem retroreflektorgrupperna på närsidan i meter i kroppssystemet PA och markstationerna för LLR i geodetiska koordinater; placering av reflektorerna från kropp till tröghetssystem genom DE440 PA-orienteringen; analytiska partialer av avståndet jord–reflektor med avseende på det 4-parametriska datumet; och den Fisher-matris som bara bygger på LLR och uppvisar degenerationen mellan lunocentre-X och skala som motiverar analysen med 7 parametrar
Oberoende referens
Beräkningen kontrolleras internt: varje analytisk partial mot en finit differens, och fallet med noll datum mot det nominella avståndet. KATALOGEN kontrolleras externt och oberoende - koordinaterna för huvudaxeln i DE440 (Park et al. 2021, tests/fixtures/llr_geometry/de440_retroreflectors_pa.csv) korskontrolleras mot Table 6 i memorandumet om ytkoordinater för DE430 (tests/fixtures/lunar_llr/de430_retroreflectors_pa.csv, maskinellt utdraget ur en PDF verifierad med SHA-256 av tests/fixtures/lunar_llr/generate_de430_retroreflectors_pa.py) och stämmer inom 1,12 m, medan mean-Earth-realiseringen av samma fem grupper skiljer sig med 672 till 871 m. DEGENERATIONSSTRUKTUREN kontrolleras mot ett publicerat resultat: Sosnica et al. 2025, 'Definition and Realization of the International Lunar Reference Frame', arXiv:2510,15484, som för det lunara huvudaxelsystemet rapporterar en korrelationskoefficient mellan lunocentre-X och skala på r = -0.97, och att LLR inte når månens verkliga masscentrum med bättre noggrannhet än 12 cm på grund av den korrelationen. Den här modulen återskapar samma struktur (|corr(t_x, scale)| mellan 0,9 och 0,9999, datumdefekt <= 1) från en Fisher-utformning som bara bygger på LLR. Bekräftelsen sker över efemerider, inte som en rundtur: artikeln kombinerar INPOP21a, DE430 och EPM2021, medan den här modulen drivs av DE440-libration. Det som INTE återskapas är storleken - korrelationen här är omkring -0.988 mot deras -0.97, och CRLB för 4 parametrar ligger under en millimeter mot deras uppnådda golv på 12 cm, eftersom orientering och reflektorkoordinater hålls fixerade här och löses där. Endast geometri och degenerationsstruktur; inget påstående om noggrannhet för ett löst datum. 0,30 extern jämförelse: de delar av den här modulen som gäller uppmätta avstånd (reflectors(), stations_itrf(), PA-placeringen enligt DE440 och den barycentriska ljustiden llr_bcrs_one_way_m) är validerade på sin egen rad, LLR measured-range model, mot 192 ILRS-normalpunkter (RMS 2,81 m mot 10 m). Den här raden förblir MODELLED eftersom den uppmätta jämförelsen inte prövar resten av dess påstående. Den geodetiska stationskatalogen stations() avrundar APOLLO till 0,001 grader; med geocentrisk ljustid ger den 22,7 m på samma punkter (testet reflector_ranges_against_ilrs_normal_points; 96 m med den tidigare elementvisa orienteringsinterpolationen). De analytiska avståndspartialerna och Fisher-matrisen som bara bygger på LLR beräknas genom llr_range_m och reflector_inertial med den analytiska månserien (ephem::moon_position, omkring 0,3 grader från GCRS) och ingen ljustid
ValidatedModell för uppmätt avstånd i LLR (reflektorkatalog, stationer i ITRF2020, placering enligt DE440 huvudaxel, barycentrisk ljustid enligt IERS 2010)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)
Förmåga
Envägsavståndet från jordstation till reflektor för en normalpunkt i lunar laser ranging: de fem retroreflektorgrupperna på närsidan i meter i kroppssystemet PA (huvudaxel) enligt DE440 (lunar_llr_geometry::reflectors); stationerna i stations_itrf(), nämligen Grasse 7845 och Matera 7941 från ITRF2020 vid epok 2015,0 med sina hastigheter, placerade i Geocentric Celestial Reference System (GCRS) med IERS 2010-transformen med polrörelse från Bulletin A (lunar_vlbi::station_inertial_position_itrs), och APOLLO 7045 vid operatörens publicerade ungefärliga geocentriska position (ingen hastighet); placeringen av reflektorerna från kropp till tröghetssystem genom DE440 PA-orienteringen (lunar_orientation::try_de440_moon_pa_body_to_inertial, som ger fel utanför 2014-2030); och den barycentriska ljustiden enligt IERS Conventions 2010 Section 11,2 (lunar_llr_geometry::llr_bcrs_one_way_m: transformen Eq. 11,19 från kropp till BCRS för station och reflektor, och Shapiro-fördröjningen Eq. 11,17 från solen, jorden och månen). INDATA, inte del av påståendet: de barycentriska tillstånden och potentialerna för jorden, månen och solen (DE440 genom SPICE), IERS UT1-UTC och polrörelse, och den uppmätta rundturen omräknad från TT till TDB. PÅ TESTSIDAN, inte del av påståendet: Mendes-Pavlis zenitfördröjning med FCULa-avbildning, i testet, med elevation från den geodetiska katalogen stations(). Modelleras inte: tidvatten, stationsexcentriciteter, termiska termer för reflektorer
Oberoende referens
Uppmätt: 192 ILRS CRD v2-normalpunkter för månen (EUROLAS Data Center, DGFI-TUM, 2024-04 till 2024-06; Grasse 151, APOLLO 32, Matera 9; incheckade ordagrant med SHA256SUMS). Det förutsagda envägsavståndet jämförs med c gånger halva den uppmätta rundturen i TDB. Tröskel fastställd före jämförelsen: RMS högst 10 m över alla 192 punkter OCH över de 160 punkterna från enbart de två ITRF2020-stationerna. Tröskeln kommer från den tredje ändringen av förhandsregistreringen 3e0f5cdf, incheckad före motorändringen och körningen; siffran 10 m är oförändrad sedan omgång 1. Uppmätt: 2,81 m (medel 2,67 m) på alla punkter; 2,96 m på ITRF2020-stationerna; APOLLO 1,94 m; urvalet för 2015 (349 punkter, sekundärt) 3,82 m. Mutation: att nollställa Shapiro-benen för solen ger 10,19 m, vilket underkänns. Historik, redovisad: 96 m med elementvis orienteringsinterpolation; 22,7 m efter geodetisk interpolation med den geodetiska katalogen; 10,94 m med ITRF2020-stationer och polrörelse men geocentrisk ljustid (en gemensam förskjutning på +10,9 m). Den barycentriska modellen skrevs efter att den förskjutningen setts. Den är den publicerade modellen i IERS 2010 Section 11,2 utan någon fri parameter. Den tredje ändringen ersatte ett självpåfört villkor om enbart ITRF2020/SLRF2020 efter resultatet BLOCKED. RMS för enbart ITRF2020 klaras utan APOLLO, som saknar lösning i ITRF2020 och SLRF2020, och vars position är operatörens angivna ungefärliga. En gemensam +2,7 m återstår, under tröskeln och inte justerad. Tröskeln är lös i förhållande till resultatet: en saknad soltermin på 7,6 m ger fortfarande 10,19 m. Termer under tröskeln löses inte upp en och en: med polrörelsen nollställd är RMS 6,15 m (ITRF2020-stationer 5,98 m), och med transformen Eq. 11,19 borttagen är det 2,96 m; båda skulle fortfarande klaras. Stationshastigheter och Shapiro-termerna för jorden och månen är ännu mindre. Jämförelsen validerar det sammansatta envägsavståndet vid 10 m RMS och Shapiro-termen för solen, inte varje uppräknad komponent
Tester
tests/lunar_llr_geometry_range_oracle.rs::reflector_ranges_bcrs_iers2010_relativistic (192 ILRS-normalpunkter: RMS 2,81 m; de två ITRF2020-stationerna ensamma 2,96 m; båda högst 10 m)…
ValidatedKopplad gauge för lunart referenssystem och tidsskala: det gemensamma nollrummet för rumsligt datum, klockoffset och klockdriftlunar_gauge
Förmåga
assemble_coupled_info bygger den kopplade Fisher-matrisen med 9 parametrar över [t_x, t_y, t_z, s, theta_x, theta_y, theta_z, d_tau, d_alpha]; classify_null_space returnerar en basinvariant uppdelning av dess nollrum i enbart rumsliga, enbart tidsmässiga och genuint kopplade dimensioner plus kopplingsnormen för projektorn från rumsligt till tidsmässigt; coupled_marginal_eigs ger Schur-komplementets marginal för {scale, offset}. På de incheckade nätverken rapporterar motorn ett datum med full rang (defekt 0) för det välställda fallet och en exakt defekt i en enda driftriktning för fallet med en enda epok (förfluten tid noll, så driften är oobserverbar per konstruktion), och beräknar marginalen för {s, d_tau} i båda.
Oberoende referens
VAD SOM KONTROLLERAS EXTERNT, snävt angivet: kshana beräknar egenvärdesuppdelningen med sin egen handskrivna Jacobi-lösare (fim::sym_eig) och marginalen med sin egen pseudoinvers; den oberoende referensen räknar om båda med numpy/LAPACK (np.linalg.eigvalsh/eigh/pinv) via scripts/gen_coupled_gauge_ref.py. Samstämmighet till rel<1e-3 är därför en kontroll med oberoende bibliotek av DEN HÄR CRATENS ARITMETIK mot en standardimplementation, vilket är det Validated påståendet och hela det. VAD SOM INTE KONTROLLERAS: sammanställningen och klassificeringen av nollrummet är den här modulens egna regler, och den oberoende referensen återskapar dem från samma specifikation och inte från en oberoende källa - det bekräftar implementationen, inte regeln. Geometrin för beacons och omloppsfarkoster är Modelled och representativ. Observationsraderna bär den verkliga DE440-orienteringen av månens huvudaxel (lunar_datum::orbiter_range_row_datum7 -> lunar_orientation::de440_moon_pa_body_to_inertial), men det är en INDATA som båda sidor får, inte belägg om svaret, och den noteras här som proveniens och inte som grund för statusen - samma distinktion som main redan drar i raden om integritet för gemensamt läge. Varje flyttal i raderna avrundas till 6 decimaler innan network.json skrivs, så att båda sidor läser identiska IEEE-754-dubbla tal och den enda skillnad som återstår är lösaren.
Tester
tests/lunar_coupled_gauge_reference.rs::coupled_gauge_matches_numpy_on_real_de440_rows (9 egenvärden, defect/dim_spatial/dim_temporal/coupled_dim/p_st_norm och Schur-marginalen {scale,offset} för well_posed…
ModelledDegeneration mellan avstånd och klockoffset i lunar envägsavståndsmätning, och lagen om geometrisk mångfald för utformninglunar_gauge
Förmåga
Degenerationen mellan radiellt avstånd per nod och mottagarens klockoffset är exakt vid 1 m till 3,336 ns (ett genom c). Marginalen för Schur-komplementet {scale, offset} (coupled_marginal_fisher) visar att i ett geometriskt varierat nätverk lyfter tvåvägsavståndsmätning marginalen ungefär med samma faktor som ett lika stort antal ytterligare envägsdata, medan lyftet med tvåväg i det idealiserade regimet med en enda nod är flera storleksordningar större. Den lag som följer: geometrisk mångfald, inte tvåvägsavståndsmätning som sådan, är det som skiljer lunar skala från tidsskalans offset vid envägsavståndsmätning; en tvåvägs eller extern tidskoppling krävs endast i regimet med låg mångfald eller en enda användare.
Oberoende referens
Schur-komplementets marginal-Fisher för den kopplade informationsmatrisen, i linjäralgebra med sluten form, kontrollerad mot de två gränsregimer den förutsäger. Ekvivalensen 1 m till 3,336 ns är definitionen av metern via c och inte ett empiriskt resultat. Observationsnätverken är representativ Modelled geometri, så lagen för utformning är ett påstående om den geometri som presenteras för den och gör inget påstående om något verkligt lunar nätverk i drift.
ValidatedKoppling mellan relativistisk klockdrift och referenssystem för den lunara tidsskalanlunar_gauge,lunar_time
Förmåga
rate_frame_jacobian(_with) ger känsligheten hos den lunara tidsskalans driftstakt för realiseringen av referenssystemet, från den ekvatoriella effektiva potentialen trunkerad vid grad 2 (GM, ekvatorialradie, J2, rotation; LunarSurfacePotential): d_alpha/d_scale = L_m, omkring +3.1388e-11; d_alpha/d_velocity = -|v_moon|/c^2, omkring -1.11e-14 (tidsberoende); d_alpha/d_r_radial = g_eff/c^2, omkring +1.806e-17 per meter. För ett radiellt datumskifte på 1 m är det en driftstörning på omkring 1.8e-17 (en aritmetisk följd av den radiella posten), långt under den drift på omkring 1.7e-11 som en lunar tidsskala har mot TT
Oberoende referens
Förhandsregistrerad (5590ab21): L_m mot Ashby och Patla 2024 (AJ 167:149) Eq. (10), 3,13881(15)e-11, från artikelns GM, a_m, omega_m och J2 för de två fälten av grad 350 som artikeln citerar (Bertone et al. 2021, AIUB-GRL350A/B), inom 1e-4; den radiella posten mot ekvatorialgravitationen i pyshtools 4.14.1 (BSD-3) för samma fält inom 1e-4 (uppmätt 8.3e-5 och 6.7e-5, en snäv marginal); hastighetsposten mot månens fart i JPL Horizons DE441 inom 4.5e-3. En sluten form av grad 2 av ett publicerat värde av grad 350 (rest av grad 3-350; Reference, inte P1). Redovisat: utfallet för post 1 var känt före förhandsregistreringen, och den levererade standardradien 1738,14 km är artikelns ytdefinition, antagen efter omgång 1. Bidragen från tidvatten och jämförelsebandet förblir Modelled siffror för referensyta
Tester
tests/lunar_rate_frame_coupling_preregistered.rs (entry1_d_alpha_d_scale_matches_the_published_l_m_for_both_cited_fields: L_m inom 2.8e-6 av Ashby och Patla 2024 med J2 från AIUB-GRL350A/B…
ValidatedBasinvariant klassificering av det kopplade nollrummet för referenssystem och tidsskalalunar_gauge
Förmåga
classify_null_space delar upp nollrummet för datum i enbart rumsliga (dimension d minus rang U_T), enbart tidsmässiga (d minus rang U_S) och genuint kopplade (rang U_S plus rang U_T minus d) delar, plus kopplingsnormen för projektorn från rumsligt till tidsmässigt p_st_norm, Frobenius-normen för det icke-diagonala blocket i nollrummets projektor. Var och en av dessa är en funktion av PROJEKTORN och inte av en vald bas, så de är invarianta under varje ortonormalt val av nollvektorer - vilket är det som gör att klassificeringen alls går att rapportera.
Oberoende referens
SciPy/NumPy (BSD-3-Clause; scipy.linalg.null_space och numpy.linalg.svd, LAPACK gesdd) klassificerar samma incheckade matriser genom snitt av delrum, dim null([F; E_T]) och dim null([F; E_S]), och SVD-nollrummets projektor, vilket skiljer sig från Kshanas Jacobi-egenvektorer och formler för Gram-rang; förhandsregistrerad (d429993c): heltal exakta, p_st_norm till 1e-9 (P2, ett oberoende numeriskt bibliotek), med rangtröskeln fastställd i förväg och ett spektralgap på minst 1e6 påstått. Radens påstående är klassificeringen av en angiven matris, så P2 täcker det helt. De konstruerade fallen omfattar direkta summor, kopplade och blandade nollrum samt slumpmässiga basbyten; de verkliga nätverksdimensionerna i raden om kopplad gauge räknas inte om här. Testet av invarians i craten (en roterad nollbas ger identiska resultat) behålls
Tester
lunar_gauge::tests (classify_is_invariant_under_null_basis_rotation - en axelinriktad nollbas och dess rotation på 0,6 rad ger identiska defect, dim_spatial, dim_temporal, coupled_dim och p_st_norm…
ModelledRepresentativ meny av multitekniska mätningar och den additiva Fisher-kombinationsregelnlunar_techniques
Förmåga
MeasurementBlock håller en kandidatmätkampanj som ett informationsbidrag av Fisher-typ på 7x7 plus en skalär relativ kostnad; block_from_rows bygger ett ur råa datum-jakobianrader så att varje block förkonditioneras identiskt genom lunar_identifiability::assemble_multi_info; combine summerar informationen för en vald delmängd, vilket är rätt regel eftersom Fisher-information är additiv över oberoende mätningar; representative_lunar_menu levererar en deterministisk meny med fyra block (LLR, en tvärgående VLBI-limbbeacon, en omloppsfarkost på närsidan och en på bortre sidan). Den budgetbegränsade utformningsoptimeraren som använder den här menyn ingår inte i den här craten.
Oberoende referens
Additivitet av Fisher-information över oberoende mätningar är en egenskap i sluten form, kontrollerad här mot en oberoende skriven elementvis summa och mot den ordningsinvarians och monotonicitet som följer av den. OBS OM EVIDENS: kombineraren hade tidigare inget test alls, och det enda testet i modulen summerade de två informationsmatriserna inline i stället för att anropa den, så en trasig kombinerare hade lämnat modulen grön; testet går nu genom combine och underkänns när den muteras. Alla beaconplatser, all omloppsfarkostgeometri, alla precisioner per teknik och relativa kostnader är representativa val och inte uppdragsvärden (se tests/fixtures/llr_geometry/NOTICE.md), så varje degenerationsmått och CRLB-siffra som nås genom den här menyn ärver Modelled-statusen från lunar_identifiability::decompose.
Tester
lunar_techniques::tests (combine_is_additive_order_independent_and_empty_is_zero - tomt urval ger nollmatrisen, ett enskilt urval är identiteten, ett par är lika med en oberoende skriven elementvis summa, och…
ValidatedKonsistens mellan leverantörer för lunart referenssystem/dynamik (verklig mellan-efemerid)lunar_interop_budget
Förmåga
uppdelning med enbart rotation (translation+rotation med 6 parametrar) av oenigheten mellan DE440/INPOP21a/EPM2021 om geocentrisk måne i en reducerbar gemensam ICRF-ramkoppling och ett oreducerbart överskott i orienteringen av månens bana (den fullständiga Helmert-anpassningen med 7 parametrar är en separat offentlig funktion som INTE täcks av den här externa kontrollen: dess evidens är ett internt enhetstest av analytisk återställning plus tests/lunar_helmert_fit_cross_check.rs, som stämmer av den mot den Validated exakta Gauss-Newton-anpassningen i lunar_frame_realise och fäster konventionen om motsatt rotationstecken mellan de två)
Oberoende referens
Tre oberoende auktoritativa efemerider — DE440 (JPL), INPOP21a (IMCCE), EPM2021 (IAA RAS) — provtagna via IMCCE calceph, korskontrollerade av en oberoende numpy SVD-anpassning med minsta kvadrat. VARFÖR DET HÄR ÄR Validated DÄR lunar_common_mode INTE ÄR det, på samma tre efemerider: här ÄR den rapporterade storheten en egenskap hos de publicerade data — deras inbördes oenighet — så efemeriderna är den oberoende referensen, inte en indata. I lunar_common_mode matar samma oenighet en MODELLED konstellationsgeometri och svaret är en egenskap hos den modellen, vilket är varför den raden med rätta är Modelled/ReferenceImpl.
Tester
tests/lunar_interop_budget_reference.rs (raw / rotation-residual / theta_moon / theta_frametie / theta_excess / reducible / irreducible för 3 leverantörspar mot den oberoende SciPy SVD lstsq-anpassningen i…
ModelledTolerans för konsistens mellan leverantörer för en användare med blandade leverantörerlunar_interop_budget
Förmåga
consistency_tolerance: inverterar en positionsbudget för användaren till ett krav per parameter på Helmert-samstämmighet mellan leverantörer (origo/skala/rotation) vid en referenshävarm, valfritt uppblåst med realiserings-CRLB för en enskild leverantör enligt P1
Oberoende referens
Triangelgräns för värsta fall för verkan av Helmert-punktjakobianen (sluten form)
Tester
lunar_interop_budget::tests (monotoni i budget; RSS-budgetreduktion under en CRLB per leverantör; genomarbetad rotationstolerans vid den lunara hävarmen; bindande term = rotation)
ModelledFelbudget för lunar interoperabilitet mellan flera leverantörer och designlag för referenssystem mot efemeridlunar_interop_budget
Förmåga
interop_budget: reducerbar (gemensam ramkoppling) mot oreducerbar (dynamik) uppdelning under konventionerna PerProvider / CommonFrameTie / CommonEphemeris, med måttet för designlagen om oreducerbar andel (~0,69 på verkliga DE440/INPOP/EPM: enbart en gemensam ramtagg lämnar kvar det dominerande golvet)
Oberoende referens
RMS-aggregering av de Validated uppdelningarna per par under varje konvention (sluten form)
Tester
lunar_interop_budget::tests (CommonEphemeris nollar budgeten; CommonFrameTie < PerProvider; irreducible_fraction > 0,5 på de verkliga uppdelningarna; konventionsordning)
ValidatedLinjäralgebrakedja för observerbarhet av fel i autonomt fritt nätverk (paritetsprojektor, detekterbarhet, MDB-icke-centralitet, Byzantine block-spark)lunar_faultobs
Förmåga
På det verkliga DE440-nätverket med lunar per-nod (varje rad en differentiell envägsavståndsmätning mellan noder byggd via pernode_range_row med en verklig siktlinje i DE440 Moon PA-systemet) beräknar motorn den viktade paritetsprojektorn P⊥ = I − G(GᵀWG)⁺GᵀW (den rangdefekta pseudoinversformen som överlever den 8-dimensionella gaugen datum⊕tidsskala), residualen för T1-detekterbarhet ‖P⊥·b‖ (fel inom intervallet utplånas, generiska fel är detekterbara), den kvadratiska formen för Baarda MDB-icke-centralitet cᵀWP⊥c (den korrekta viktade formen med en enda P⊥, INTE formen med dubbel P⊥ cᵀP⊥WP⊥c) med MDB = √(λ₀/cᵀWP⊥c), och antalet block-spark för Byzantine-detektering/-identifiering av de staplade effektiva peer-signaturerna P⊥·B_T (kolumnrang, inte bara nollskilda)
Oberoende referens
Oberoende linjäralgebrareproduktion i numpy/scipy på verkliga siktlinjerader från DE440 i månens PA-system (P⊥ ur SVD av den blekta designmatrisen W^{1/2}G; MDB:ns icke-centralitet ur den klassiska kvadrerade normen för paritetsunderrummet enligt Baarda (1968); blockrangen ur ett antal singulärvärden från en numpy-SVD) — en genuint annorlunda numerisk väg än cratens cykliska Jacobi-egenvärdesuppdelning av GᵀWG. Omfattning (enligt tests/fixtures/faultobs/NOTICE.md): detta kontrollerar ENDAST LINJÄRALGEBRAKEDJAN på dessa rader. Nodgeometrin är modellerad. Det är INTE en operativ integritetsgaranti, INTE en certifiering av skyddsnivå och INTE något RAIM-/ARAIM-tillgänglighetspåstående, och INTE heller en uppdragsgaranti för bysantinsk feltolerans — det tolererade ANTALET fel för detta nätverk är modellerat, medan gränsen detect>f / identify>2f för blockvis spark är hämtad ur litteraturen (Fawzi–Tabuada–Diggavi 2014; Shoukry–Tabuada 2016; blockvis spark enligt Donoho–Elad 2003) och bevisad som instansiering i koden
ModelledBysantinsk gräns för detektering och identifiering via blockvis spark i det autonoma månnätverket med en nod per enhet (T3)lunar_faultobs
Förmåga
byzantine_bound instansierar kodnings- och glesobserverbarhetsgränsen för säker tillståndsskattning på nätverksgeometrin per nod: en bysantinsk peer injicerar en godtycklig linjärkombination av de mätningar den deltar i, och nätverket DETEKTERAR varje koalition av ≤ f = block_spark − 1 peers och IDENTIFIERAR entydigt varje koalition av ≤ ⌊(block_spark − 1)/2⌋, där block_spark är den minsta peerkoalition vars staplade effektiva signaturer P⊥·B_T är kolumnrangbristfälliga. Peerdetekterbarhet är FULL KOLUMNRANG hos P⊥·B_j (ett block som inte är noll men rangbristfälligt är ett attackblock skilt från noll som hamnar i range(G) och inte lämnar någon residual), inte enbart P⊥·B_j ≠ 0
Oberoende referens
Geometrisk instansiering av gränsen för blockvis spark / säker tillståndsskattning (Fawzi–Tabuada–Diggavi 2014; Shoukry–Tabuada 2016; blockvis spark enligt Donoho–Elad 2003; Candès–Tao 2005) — INTE konsensuströskeln 3f+1 av Lamport–Shostak–Pease ('bysantinsk' avser enbart felMODELLEN med godtyckliga/samverkande fel). Det specifika tolererade antalet fel är en modellerad egenskap hos den representativa nätverksgeometrin, kontrollerad för självkonsistens med handkonstruerade analytiska fall och räkneformlerna
ModelledGolv för temporal gauge vid autonomt holdover i den självrefererande månkonstellationen (T4)lunar_faultobs
Förmåga
holdover_floor fastställer att i ett ensemble av autonoma noder som endast är sammanbundna av mätningar mellan noderna är den gemensamma klockfrekvensen (δα_j += 1 ∀j) en fri parameter i ensembletiden som ligger i N(GᵀWG): ingen mängd ytterligare avståndsmätning mellan noder kan observera den (rate_in_gauge = true, temporal_gauge_dim = 2 tillsammans med den gemensamma offseten). Detta är det genuina holdover-golvet — den temporala motsvarigheten till positionsgaugen för det stela systemet. Att lägga till en extern absolut frekvenskoppling (en direkt länk till en referens utanför nätverket) driver ut den gemensamma frekvensen ur nollrummet (rate_in_gauge = false, temporal_gauge_dim = 1), vilket visar att golvet är en verklig gauge och inte en artefakt av oscillatormodellen
Oberoende referens
Argumentet om fri parameter i ensembletid (Percival 1978; Lewandowski & Thomas 1991) instansierat på det representativa nätverket med verkliga DE440-data per nod: ett relativt residualnolltest av den analytiska generatorn för gemensam frekvens mot GᵀWG, där kontrasten med brutet koppel skiljer den genuina gaugen från en artefakt av oscillatormodellen. Representativ modellerad geometri, inte en certifierad tidsbudget
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…
ModelledGemensam/differentiell uppdelning per leverantör, enhetlig förklaring via en rangbrist och lutning på skyddsgapet (T5 / §0 / g7)lunar_faultobs
Förmåga
Tre aspekter av den enda uppdelningen ℝ^{state_dim} = N(GᵀWG) ⊕ range(GᵀWG), med den 8-dimensionella gaugen för datum⊕tidsskala som N(G) och de state_dim − 8 = 32 observerbara riktningarna som range(G): (T5) provider_mismatch_split klassar en gemensam bias hos flera leverantörer (∈ range(G)) som OUPPTÄCKBAR — den kräver en extern koppling — och en differentiell bias (∉ range(G)) som självövervakad / UPPTÄCKBAR; (§0) enandet består i att SAMMA blinda underrum range(G) styr den oupptäckbara felklassen, så att datumgaugen N(G) och det feldöva underrummet range(G) är en och samma geometri, inte två; (g7) slope ger Browns lutning på skyddsgapet ‖Π_obs Δx̂‖ / ‖P⊥b‖_W → ∞ för ett fel b ∈ range(G) (skattaren fördärvas utan någon paritet) och ändlig för ett upptäckbart fel
Oberoende referens
Sluten algebra för paritetsprojektor och pseudoinvers på det representativa nätverket med verkliga DE440-data per nod: den gemensamma/differentiella uppdelningen, enandet N(G) ⊕ range(G) och Browns (1992) lutning på skyddsgapet följer alla av att värdemängden annihileras, P⊥·G = 0. Representativ modellerad geometri, inte en certifierad skyddsnivå
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)…
ValidatedMTIE och TDEV för telekomtidssynkronisering på en tidsfelsserie vid holdovertelecom_timing (mtie_sliding,mtie_curve_ns,tdev_curve_ns); allan (mtie,time_deviation)
Förmåga
Det maximala tidsintervallfelet och den tidsavvikelse som scenariotypen telecom-timing rapporterar, på en holdover-registrering i telekomskala: en MTIE med glidande fönster och monoton kö med komplexitet O(n) (telecom_timing::mtie_sliding, som behövs för att ett dygn med sampel per sekund ska gå snabbt) och motorns TDEV (allan::time_deviation), utvärderade på det rutnät som typen rapporterar och avlästa ur en fullständig körning som läser in serien
Oberoende referens
allantools 2024,06 — ett oberoende frekvensstabilitetsbibliotek från tredje part — mtie() och tdev() på tests/fixtures/telecom_timing/holdover_te_series.csv, där serien tolkas ur samma text med 17 värdesiffror på båda sidor; referensen registrerar seriens SHA-256 och kan genereras om offline med tests/fixtures/telecom_timing/generate_telecom_timing_reference.py. Kontrollerar ESTIMATORERNA på denna registrering, inte den syntetiska holdover som gav upphov till den
Tester
tests/telecom_timing_reference.rs (17 MTIE- och 12 TDEV-medelvärdesfaktorer på en incheckad holdover-serie med 2 048 sampel från en chip-skalig atomklocka med åldrande, flicker och temperatur, mot allantools 2024,06 till <1e-12 / <1e-9…
ModelledITU-T-masker för telekomsynkronisering med PASS/FAIL och marginaltelecom_timing (MASKS,eprtc_a_holdover_limit_ns,check_curve,check_mask)
Förmåga
Avskrivna gränser ur ITU-T G.8272 (07/2025) PRTC-A/B, G.8272.1 (2024) Amd. 1 (07/2025) ePRTC låst och ePRTC-A holdover (inklusive tidsfelskurvan i Table 3), G.8273.2 (2023) Amd. 2 (11/2025) T-BC/T-TSC klass A-D och G.8271.1 (2022) Amd. 3 (05/2025) referenspunkt C, vart och ett med öppet eller slutet intervall så som tabellen anger det och med varje post 'for further study' utelämnad; ett utfall och en marginal vid den bindande punkten för varje kontroll, samt tiden till dess varje budget överskrids. Kan köras som scenariotypen telecom-timing
Oberoende referens
Avskrift av de namngivna rekommendationerna (fritt nedladdningsbara från itu.int), där varje gräns anger sin tabell eller klausul och varje obekräftad eller oimplementerad post finns i docs/TELECOM-TIMING.md; de identiteter för brytpunktskontinuitet som tabellerna medför kontrolleras i testerna. En avskrift av standarder med interna konsistenskontroller, inte ett formatkontrolltest och inte en extern validering. 0,30 omgång 2 (förhandsregistrerad 970003ee), blockerad (förblir MODELLED): de tio maskvärden och tretton ePRTC-A-holdovervärden som rekommendationerna skriver ut som räknade exempel (G.8272 Figs. 1-2, G.8272.1 Amd.1 cl. 8.2.1 och Figs. V.1-V.3, G.8271.1 Amd.3 Figs. 7-2 till 7-4) återges inom en halv tryckt enhet, de flesta av dem tabellkonstanter eller brytpunkter; G.8271.1 Fig. 7-2 anger 200 ns vid 1,3 s mot sin egen Table 7-1 (197,5 ns). Gränserna för G.8273.2 klass A-D har inget tryckt räknat värde, och brytpunktsetiketterna för G.8272.1 ePRTC låst (på heldragna konstruktionslinjer) uteslöts av den förhandsregistrerade urvalsregeln, så de förblir avskrifter
Tester
telecom_timing::tests (mask_boundaries_follow_the_tables_exactly — öppna och slutna ändar, gapet τ = 400 s i G.8271.1 tabell 7-3, kontinuitet vid varje brytpunkt som tabellerna implicerar…
ModelledITU-T-masker för wander-generering vid frekvenssynkronisering (G.811, G.812, G.8262, G.8262.1)telecom_timing (MASKS,Segment::tau_exponent,MeasurementFilter::LowPass10HzAtSource,MaskCondition::Autonomous)
Förmåga
Sju MTIE- och TDEV-masker för wander-generering vid konstant temperatur för typen telecom-timing: G.811 (09/1997) PRC (autonom), G.812 (06/2004) typ I, II och III, G.8262 (10/2024) EEC Options 1 och 2 samt G.8262.1 (11/2025) eEEC (låst läge), inklusive de potenslagsdelar som tabellerna skriver (8 τ^0.5 och liknande), varje intervall öppet eller slutet så som det är tryckt, mätta genom det 10 Hz-filter som klausulerna anger (antaget tillämpat före samplingen); referensscenariot scenarios/telecom-synce-eec.toml ställer en fritt gående OCXO mot de tre EEC-maskerna. Inte implementerat: tillåtna avvikelser vid varierande temperatur, holdover, transienter, jitter och frekvensnoggrannheten i G.811
Oberoende referens
Avskrift av de namngivna rekommendationerna (nedladdade från itu.int den 2026-10-13), där varje rad har lästs om mot texten och där den brytpunktskontinuitet som de tryckta koefficienterna medför begränsas i testerna (till exempel 40 · 10^0,4 = 100,48 ns mot platån på 100 ns i G.812 Table 4). En avskrift av standarder med interna konsistenskontroller, inte ett formatkontrolltest och inte en extern validering. G.812 (06/2004) anges vara ersatt av en förpublicerad utgåva från 08/2026 och G.811 har en Amd. 1 (04/2016); ingen av dem kunde läsas, så ingen av dem kontrolleras. Scenariot med fritt gående OCXO överskattar oscillatorns bidrag vid observationsintervall som är långa i förhållande till en slingas tidskonstant; det säger ingenting om någon utrustnings klocka
ModelledKlockloggformat (RINEX clock, TimeLab ASCII, TAPR TICC) inlästa till en normaliserad fasserieclock_log (read_input,MeasuredPhaseReport,MEASURED_UNITS,TELECOM_LOG_UNITS); telecom_timing (SeriesInput::clock_log); api (clock kind [clock_log])
Förmåga
clock_log::read_input: ett parserlager som gör om en RINEX-klockfil (AS/AR-poster för en namngiven klocka, versionerna 2 och 3,00 till 3,04), en ASCII-fas- eller frekvenslogg i TimeLab-stil eller en tidsstämpel- eller intervalllogg från TAPR TICC till ett enhetligt fasrutnät, med tau0 angivet, hämtat från ett huvud eller som medianavståndet, med varje lucka, avvikande avläsning utanför rutnätet och dubblett räknad, samt en luckpolicy som antingen vägrar, tar längsta sammanhängande körning eller interpolerar linjärt; kopplad som tillval till telecom-timing-serien ([series.clock_log], som lägger till ett block clock_log) och klocktypen ([clock_log], som lägger till ett block measured med ADEV, TDEV och MTIE, tabellens SHA-256 och fasens SHA-256; runs = 1). Utan tabellen är båda typerna byte för byte identiska
Oberoende referens
Förhandsregistrerad i tests/fixtures/clock_log/PREREGISTRATION.md (incheckad ensam, 159334f2, innan fixturen fanns); registrerad i RESULTS.md. Tre syntetiska loggar med slumpfrö, en per format (en TICC-lucka på tre epoker, en andra RINEX-klocka som ska ignoreras), inlästa på nytt av en oberoende läsare skriven utifrån docs/CLOCK-LOG-FORMATS.md av samma författare: rutnät, luckor och antal fyllda värden lika och största fasskillnad 0 s (tröskel 1e-13 s). allantools 2024,6 oadev, tdev och mtie på den fasen stämmer inom relativt 2.5e-14 (tröskel 1e-10) vid varje medelvärdesfaktor den utvärderar; den utvärderar inte MTIE över hela registreringen, vilket motorn rapporterar, så den punkten per logg saknar referensvärde och tröskeln i den lydelse den har är inte uppfylld där. MODELLED: syntetiska loggar, och läsarreferensen delar författare med resten; verkliga TimeLab-, TICC- och RINEX-klockfiler från instrument jämfördes inte
Tester
clock_log::tests (handskrivna loggar per format: rubriker, avgränsare, enheter, frekvensintegration, TICC-kanaler och -lägen, luckor och policyer, avvisanden); tests/clock_log_allantools.rs (den förhandsregistrerade jämförelsen…
ModelledKlockloggformat från linuxptp (ptp4l, phc2sys, ts2phc) och chrony (tracking, statistics) inlästa till en normaliserad fasserieclock_log (parse_linuxptp,parse_chrony,grid_timed_offsets)
Förmåga
clock_log::read_input med formaten ptp4l, phc2sys, ts2phc, chrony-tracking och chrony-statistics: den loggade offseten från en servorad i linuxptp (ns, radens egen tidsstämpel inom hakparentes, avläsningar innan servot först rapporterar s2 utelämnas och räknas) eller från en chrony-tracking- eller statistics-logg (s, enligt kolumnposition, UTC-datum och tid) blir ett enhetligt fasrutnät genom samma luckpolicyer som de andra formaten; en källväljare (clock) namnger ett av flera gränssnitt, klockor eller adresser; loggarna matar telecom-timing-serien, klocktypen och typen för holdover-test
Oberoende referens
Fixturer skrivna för Kshana utifrån demonernas publika radlayouter, med påhittade värden (NOTICE.md i fixturmappen); ingen logg från en verklig installation lästes och ingen oberoende referens jämför tolkningen med en annan läsare, så en layout som skiljer sig mellan demonversioner kan ändå vägras eller läsas fel. De estimatorer som matas av fasserien är de som kontrollerats mot allantools i raderna ovan
ModelledHoldover-test poängsatt utifrån en tidsfelsregistrering från operatörenholdover_test (HoldoverTestScenario,recovery,linear_fit); telecom_timing (check_mask,check_envelope,budget_results)
Förmåga
Typen holdover-test: en tidsfelsregistrering (en klocklogg från linuxptp, chrony, TICC, TimeLab eller RINEX, eller par av time_s,time_error_ns) delas vid de två tidpunkter som operatören anger för bortfall och återkomst av GNSS i ett baslinjesteg, ett holdover-steg och ett återhämtningssteg; baslinjen mäts mot de ITU-T-masker som är skrivna för en låst klocka, och holdover mot dem som är skrivna för holdover eller en autonom klocka, ePRTC-A-holdovermasken och tidsfelsbudgetarna; holdover rapporterar den frekvensoffset enligt minsta kvadrat som systemet höll, och återhämtningen om och när |TE| kom inom ett angivet band och höll sig där under en angiven uppehållstid, med toppvärdet och det största steget. Varje gräns är den som typen telecom-timing skriver av; de två tidpunkterna är operatörens uppgift och kontrolleras inte
Oberoende referens
Handräkning på registreringar byggda av formler vars lutning, steg, extremvärde och återhämtningstid är kända före körningen (testerna anger dem), samt maskerna, kurvan och budgetarna i telecom-timing-raderna ovan. Ingen laboratoriemätning av en verklig holdover poängsattes och ingen extern referens jämfördes, så typen gör inget påstående om någon klocka eller något system; en samarbetspartner med tidslaboratorium behövs innan någon siffra per klockklass kan lyftas upp
ModelledTillgänglighet för GNSS-signaler i Space Service Volume och bortom den, jämförd med ICG:s SSV-häftessv (constellations,geom,sweep,pattern,check)
Förmåga
Tillgänglighetssvepen för typen gnss-ssv: per konstellation (GPS, GLONASS, Galileo, BDS, QZSS, NavIC) och sammanlagt, andelen (användare, epok)-par med minst en och minst fyra signaler och det längsta avbrottet, för en användare på en sfär (häftets globala skal med 2 562 punkter, 14 dygn med 1 minuts steg) eller på en bana (GEO, HEO, månöverföring), utifrån de keplerska banorna i häftets bilaga C, en konstant lägsta utstrålad effekt inom referensvinkeln utanför riktningsaxeln, jordens skymning genom sfären plus 50 km och ett tröskelvärde för C/N0; användarantenner ur häftets tabell B10
Oberoende referens
ICG:s häfte Space Service Volume (UN OOSA ST/SPACE/75, 2018), självt en simulering, jämfört enligt en förhandsregistrering som incheckades före körningen (xval/gnss-ssv/PREREGISTRATION.md; resultat i xval/gnss-ssv/RESULTS.md, fastlåsta av tests/ssv_booklet_results.rs, misslyckanden inkluderade). Körning 1 på den förhandsregistrerade tolkningen: konstanterna för lägsta utstrålad effekt och månens tröskel stämmer (S0, S6 uppfyllda); tröskeln för övre och nedre SSV, RF-tröskeln, GEO och HEO är NOT MET, nästan alla genom GLONASS, för vilket häftet anger 20 och 28 grader i tabellerna B2 och B6 samt 26 och 34 grader i tabell 4,2. En diagnostisk variant med vinklarna ur tabell 4,2 stämmer i varje cell för övre SSV, nedre SSV och de sex GEO-uppdragen (den ersätter inte körning 1; celler för RF, HEO och månen missar fortfarande). De uppmätta panelmönstren för GPS L1 återges inte av den parametriska ersättningen (RMS 6 till 9 dB mot en tröskel på 3 dB). Överensstämmelsen visar att häftets angivna metod återges, inte att GNSS-signaler beter sig så
ModelledEffekter av jonosfär, plasmasfär och atmosfär på GNSS-signaler som tangerar jorden längs limbstrålen, samt utformningen av mottagare för svaga signaler, i typen gnss-ssvssv (limb,weak)
Förmåga
En Chapman-jonosfär, en plasmasfär av Gallagher-typ och en neutral atmosfär (brytning av refraktivitet, syreabsorption, defokusering) integrerade längs den raka strålen mellan sändare och användare: sned total elektroninnehåll, dess plasmasfäriska del, extra fördröjning, tangenthöjd och förlusten på länkar som tangerar jorden; samt en mottagare för svaga signaler (koherent och icke-koherent integrering, databitgräns, stöd, Doppler-sökning) som sätter tröskeln för C/N0 utifrån modellerna för inhämtning och följeslingor
Oberoende referens
Slutna uttryck och publicerade storleksordningar i testerna (en Chapman-skikts topp och brytningen vid ytans limb, några TECU plasmasfär på en GPS-till-GEO-stråle); mottagarutformningen återanvänder modellerna för inhämtning och följeslingor och deras tester. Inga uppmätta data från limbsondering eller mottagning av svaga signaler har jämförts med den
ModelledNavigationsfilter ombord med GNSS för rymdfarkoster i hög bana och månöverföringssv::nav (run_nav,Ekf)
Förmåga
Läget [navigation] i typen gnss-ssv: ett utvidgat Kalmanfilter med nio tillstånd (position, hastighet, mottagarklockans bias och drift, en skala för solstrålningstryck) på pseudoavstånd vars tillgänglighet, brus och C/N0 kommer från samma länkgeometri som svepen; referensen integreras med J2, tredjekroppsverkan från solen och månen samt strålningstryck med skugga, filtret modellerar J2 och tredje kropparna och skattar strålningstrycket; rapporterar position och hastighetsfel inom och ovanför GNSS-banorna, det längsta mätningsgapet och det genomsnittliga NEES
Oberoende referens
Simulerad referens mot filtrets egen skattning (ett konsistent filters genomsnittliga normaliserade skattningsfel i kvadrat är cirka 3 för positionen) och determinism för ett fast frö. Inga flygdata eller registrerade GNSS-data från hög bana jämförs; solen och månen är lågprecisionsersättningar med cirkulära banor
ModelledRelativ navigering för en formation av flera rymdfarkoster i en mycket elliptisk bana med GNSSssv::formation (run_formation,RelEkf)
Förmåga
Läget [formation] i typen gnss-ssv: en chief och deputies kör var och en det absoluta filtret; deputyns position relativt chiefen skattas dels genom att de absoluta skattningarna subtraheras, dels med ett relativt filter på enkeldifferentierade pseudoavstånd för de signaler som båda farkosterna följer, med den relativa dynamiken som skillnaden mellan två olinjära banor
Oberoende referens
Samma simulerade referens som för det absoluta filtret: det relativa filtrets fel mot det sanna relativa tillståndet, och kontrollen att det presterar minst lika bra som att subtrahera två oberoende absoluta positionsbestämningar. Inga flygdata från formationer jämförs
ModelledFelbudget för navigering och tidssynkronisering för en kedja av uppdragsfaser från uppskjutning till återinträde (mission-thread)mission_thread (scenario,handover,conversions,budget,phase)
Förmåga
Typen mission-thread: ett dokument med faser, var och en av åtta registrerade typer, körda i ordning med 6x6-kovariansen, klockan och referenssystemet överlämnade enligt en angiven regel (carry; inflate, vitt accelerationsbrus över ett angivet glapp på en rätlinjig modell; reacquire, dödräkning och därefter källans golv, aldrig under det, aldrig en återställning); omvandlingar av referenssystem mellan GCRF, MCI och MCMF samt av tidsskalor via TT, var och en en egen budgetrad, med månens tillstånd från ett valfritt utsnitt av en DE440-kärna och den analytiska serien som angiven reserv; marginalen mot ett angivet krav, den svagaste länken, händelserna och en tidslinjefigur. Varje tal är en angiven indata eller en modell av en sådan
Oberoende referens
Handberäkningar i testerna (den rätlinjiga tillväxten av kovariansen, den genomsnittliga sideriska rotationen, den sekulära hastigheten hos månklockan) och, enbart för månens tillstånd, de incheckade DE440-utsnitten mot fastlåsta värden från JPL Horizons (sämst 2,6 m och 7e-6 m/s). Inga uppdragsdata jämförs med kedjan; dess faser är rader för sig. Dokumentet är en angiven kedja med ILLUSTRATIVE indata, enbart offentliga källor och inget stöd från någon rymdorganisation
ModelledUppskjutning och stigning till en parkeringsbana med GNSS-inhämtning och bortfall (launch-ascent)mission_thread::earth::launch (LaunchAscent)
Förmåga
Fasen launch-ascent: en kovarians för position och hastighet med konstant hastighet och vitt accelerationsbrus (dödräkningsklassen), en GNSS-positionsbestämning med angiven noggrannhet som tillämpas efter inhämtningstiden och utanför angivna bortfall, en klocka med bias och drift som styrs av samma positionsbestämningar, samt insättningstillståndet i parkeringsbanan
Oberoende referens
Riccati-jämviktstillståndet och handberäkningen av prediktionen i testerna. Ingenting här modellerar en bärraket eller en mottagare; varje tal är en angiven indata
ModelledRelativ navigering till dockningsenveloppen i låg omloppsbana runt jorden över sensorsträckor (leo-rendezvous)mission_thread::earth::rendezvous (LeoRendezvous); cw_dynamics; mission_thread::sensors
Förmåga
Fasen leo-rendezvous: det relativa tillståndet i målets LVLH-axlar med Clohessy-Wiltshire-övergången i sluten form, en 6x6-Kalmankovarians med vitt accelerationsbrus och positionsuppdateringar vars varians är sensorns vid aktuellt avstånd, över sträckor med en angiven sensor (ILLUSTRATIVE optisk kamera, lidar och radioavståndsmätning); dockningsfönstret är tiden från den punkt där den relativa sigman håller sig inom infångningsenveloppen till slutet av fasen. Jagarens absoluta kovarians överlämnas oförändrad och en rad anger det
Oberoende referens
En endimensionell handberäkning av prediktion och uppdatering i testet; Clohessy-Wiltshire-övergången är den som cw_dynamics kontrollerar mot en oberoende numerisk integration. Sensorerna är ILLUSTRATIVE och ingen verklig rendezvous jämförs
ModelledTrans-lunar injektion och färd i cislunart rum: propagerat medeltillstånd och kovarians med spårningsuppdateringar (tli-and-cruise)mission_thread::earth::tli_cruise (TliCruise); propagator; ssv::sweep
Förmåga
Fasen tli-and-cruise: medeltillståndet med motorns Cowell-propagator (jordens punktmassa och J2, solen och månen som tredje kroppar, månen från trådens DE440-kärna där den täcker segmentet och solen från den analytiska serien); kovariansen med en tillståndsövergångsmatris framåtdifferens av den propagationen (den nominella körningen och sex störda körningar per segment) med vitt accelerationsbrus; TLI-brännarens storlek och riktningsfel; gnss-ssv-positionsbestämningar vars tillgänglighet och PDOP kommer från svepet över rymdtjänstvolymen längs en oskulerande bana som står i för bågen; avstånds- och avståndshastighetsspårning längs den geocentriska riktningen skalad med markstationsnätets driftcykel, med uppdatering i Joseph-form
Oberoende referens
Liouvilles sats (determinanten för tillståndsövergångsmatrisen för den konservativa delen är ett) och en finare differens i testerna; medeltillståndet jämförs med en offentlig bana i raden nedan, som det missar. Brännfelet, uppdateringarna och kovariansen jämförs inte med någonting
ModelledKovarians vid återinträdesgränssnittet, korridorsannolikhet, maximal retardation och landningsområde (entry)mission_thread::earth::entry (Entry); reentry
Förmåga
Fasen entry: returfärden för tli-and-cruise utan brännare, som slutar vid återinträdesgränssnittet; banvinkeln och dess sigma ur hela kovariansen med en gradient av finita differenser; sannolikheten att vinkeln ligger inom en angiven korridor; den maximala retardationen vid den nominella vinkeln och vid båda korridorkanterna från motorns plana ballistiska punktmassa-återinträde (utstudsning detekteras) bredvid Allen-Eggers slutna form; landningsområdet från en angiven känslighet i sträckriktningen och gränssnittskovariansen tvärs banplanet. Ingen lyftkraft, styrning eller uppvärmning modelleras
Oberoende referens
Handberäkningar i testerna (vinkelns sigma är den vinkelräta hastighetens sigma delat med farten; Gauss-massan i en korridor). Det plana återinträdet är motorns eget och Allen-Eggers-formen är en jämförelse i sluten form; inget genomfört återinträde jämförs
ModelledTäckning och spårningsdrift för markstationsnätet för en trådfas ([ground_network] i mission-thread)mission_thread::earth::ground_network
Förmåga
Överlägget för markstationsnätet: stationer med en lägsta elevation, fordonets synlighet på en angiven geometri (återinträdestillståndet flugen tvåkropps med J2, månens position för färden, eller en angiven driftcykel), stationsöverlämningar som förlorar en angiven tid vardera, och den resulterande driftcykeln som förs över till uppdateringsfrekvensen för fasens markspårning; det längsta intervallet utan någon station i sikte är en budgetrad
Oberoende referens
Kontroller av zenit- och antipodgeometri samt den förväntade synligheten för ett avlägset mål i testerna. Inget verkligt nät, ingen antenn och inget schema modelleras
ModelledRelativ navigering till dockning i en månbana (lunar-orbit-rendezvous)lunar_rendezvous (LunarRendezvousScenario); lunar_phase; mission_thread::lunar
Förmåga
Typen och fasen lunar-orbit-rendezvous: en gemensam Gauss-Newton-skattning i satser för två fordon över bågen (tjugoett parametrar: båda tillstånden och bestående positionsbias i signal i rymden, gemensamma och oberoende), uppbyggd över en kvarts, en halv och hela bågen med stegfyrdelning, från en absolut positionsbestämning per fordon (AFS-pilotkodens spårningsgräns, ILLUSTRATIVE reläuppsättning) och ett avstånd över länken mellan fordonen, under cratens månkraftmodell; det genomsnittliga normaliserade kvadratiska skattningsfelet, Clohessy-Wiltshire-kontrollen på en cirkulär bana och den överlämnade 6x6-kovariansen
Oberoende referens
Självkonsistens under en förhandsregistrering (xval/mission-thread-lunar/PREREGISTRATION.md, resultat och skattarens historik i RESULTS.md): den genomsnittliga NEES för det relativa tillståndet är 5,85 till 5,93 mot bandet 5,2 till 6,8 i fyra konfigurationer, MET på den fjärde skattarutformningen efter att tre utformningar med sekventiella filter missat; referensen och skattaren delar en kraftmodell, så detta säger ingenting om modellfel. Propagatorn den delar jämförs med LRO och CAPSTONE i en rad nedan
ModelledBudget för landningsspridning vid en polarplats på månen (lunar-descent)lunar_landing (LunarLandingScenario); lunar_phase; terrain_nav
Förmåga
Typen och fasen lunar-descent: en inertiell felmodell med fem tillstånd per axel (position, hastighet, accelerometerbias, lutning, gyrobias) över en driven nedstigning, stödd av AFS-positionsbestämningar (fristående eller differentiella, med fallet med tre reläer och klockstöd), en terrängrelativ positionsbestämning (motorns terrängmatchare på syntetiskt relief, eller en Cramer-Rao-gräns på en LOLA-DEM med en regel för bländarproblemet) och månens tid, med en Monte Carlo-ellips för beröringspunkten
Oberoende referens
Den inertiella driften i sluten form, de återanvända typernas egna resultat och kalibreringen av 3-sigma-ellipsen (andelen innanför stämmer med sin förväntan) i testerna. Ingen genomförd eller testad landning jämförs
ModelledTillgänglighet för positionering och tidssynkronisering på ytan per plats och årstid vid månens poler (lunar-surface)lunar_surface_map (LunarSurfaceMapScenario); lunar_phase
Förmåga
Typen och fasen lunar-surface: reläers tillgänglighet och PDOP, synlighet för jorden och solen samt en styrd ytklocka för varje plats och årstid, med terrängsiluetten från moonlight-service-volume; en körning för en enda plats ger exakt samma tillgänglighet och PDOP som den typen, bit för bit
Oberoende referens
Exakt likhet med den befintliga typen för en plats, samt monotonicitetskontroller, i testerna. Reläuppsättningen är ILLUSTRATIVE och ingen ytmätning jämförs
ModelledDriven stigning från en polarplats på månen till en insättningsbana (lunar-ascent)lunar_ascent (LunarAscentScenario); lunar_phase
Förmåga
Typen och fasen lunar-ascent: den inertiella felmodellen med fem tillstånd per axel körd över en driven stigning med specifik kraft längs banan, stödd av AFS-positionsbestämningar och månens tid, som redovisar kovariansen för position och hastighet vid insättningen som förs vidare till banan och spridningen vid motoravstängning (redovisad, inte förd vidare)
Oberoende referens
Den inertiella driften i sluten form och monotonicitetskontroller i testerna. Ingen genomförd stigning jämförs
ModelledPropageringen med månens kraftmodell mot offentliga rekonstruerade banor för månsatelliter och cislunara banorlunar_od (LunarForceModel); precise_od; mission_thread_lunar_oracles (example)
Förmåga
Propagatorn som månens typer delar (GRAIL GL0660B grad och ordning 150, jorden och solen som tredje kroppar, relativitet, DE440-månorientering) jämförd med de offentliga JPL Horizons-banorna för LRO (24 h, prov var 10:e minut) och CAPSTONE (ett varv på 6,5 dygn, prov varje timme), under trösklar som fastställdes i en incheckad fil före körningen
Oberoende referens
JPL Horizons rymdfarkostefemerider för LRO och CAPSTONE, mot trösklar som fastställts i förväg i xval/mission-thread-lunar/PREREGISTRATION.md (tillägg 1 till 6). LRO: MET, 33 m största 3D-skillnad och 2,4 m radiellt RMS mot 500 m och 60 m. CAPSTONE: NOT MET, en skillnad i slutposition på 136,8 km mot 25 km och en skillnad i periapsis på 28,4 km mot 10 km, orsakerna är inte isolerade. Raden är modellerad eftersom CAPSTONE-tröskeln inte nås och jämförelsen testar den delade propagatorn, inte något filter, någon signal eller budget
ModelledPropageringen av medeltillståndet i cislunart rum mot den offentliga banan för Artemis I (tli-and-cruise)mission_thread::earth::tli_cruise; propagator; mission_thread_oracle (example)
Förmåga
Propageringen av medeltillståndet i fasen tli-and-cruise (Cowell, jordens punktmassa och J2, solen och månen som tredje kroppar, månen från ett DE440-utsnitt) jämförd med den offentliga JPL Horizons-banan för Artemis I över en frirörelsebåge på 72 h från 2022-11-16 18:00 TDB, vid epoker var 12:e timme, under trösklar som fastställdes i en incheckad fil före körningen
Oberoende referens
JPL Horizons mål -1023 (NASA:s navigationsbana som flugits efter TLI), mot trösklar som fastställts i förväg i xval/mission-thread/PREREGISTRATION.md (tillägg 1 ändrar bara den begärda tidsspannet). NOT MET och fastslaget som missat: 45,3 km största positionsskillnad mot 5 km, och 0,249 m/s hastighetsskillnad vid 72 h mot 0,05 m/s. En diagnostik som skrevs efter utfallet placerar missen i fem impulsiva hastighetssteg på 0,09 till 0,22 m/s i referensen (den förhandsregistrerade bedömningen att fönstret inte innehöll någon brännare var fel); under de övriga 67 timmarna återger modellen nästa timtillstånd med en median på 0,38 m. Testar bara medeltillståndet för en enda frirörelsebåge: ingen kovarians, inget filter, ingen uppdatering och ingen annan fas
ModelledFeltermer för kallatominterferometer: fasbrus i Raman-laser, vågfrontskrökningsbias och upplösning av fransosäkerhetinertial::cai_error_terms
Förmåga
inertial::cai_error_terms (biblioteksfunktioner som ännu inte kan nås från någon scenariotyp): viktningsfunktionen för Raman-fasen hos en interferometer med tre kvadratpulser (Cheinet et al. 2008, Eq. 8) med det slutna uttrycket för vit fas (pi/2)^2 S_phi0/tau_R och en numerisk väg för valfritt spektrum; det laserfrekvensbrus som fördröjningen vid retroreflektionen inte tar ut (Le Gouet et al. 2007, Eqs. 9 till 11); den rena defokusbiasen sigma_v^2/R hos ett termiskt moln och dess minskning med en detektionsradie; sannolikheten för fel fransindex erfc(pi/(sqrt(2) s)) för ett stöd från en klassisk accelerometer och för två avfrågningstider, och dess invers
Oberoende referens
Varje slutet uttryck mot en oberoende numerisk väg i testerna (kvadratur i frekvensdomänen av den exakta överföringsfunktionen och fördröjningsfiltret, en Monte Carlo över atomer för vågfrontsbiasen, en Monte Carlo över skott för fransindex) och dess gränsfall. Ett publicerat räknat värde: Cheinet et al. 2008 (arXiv:physics/0510197, Sec. IV) anger att vid tau_R = 20 us krävs ett vitt Raman-fasbrus under -111 dB rad^2/Hz för 1 mrad per skott; enbart den vita termen ger 0,99 mrad (artikeln härleder nivån med sin Eq. 17, flicker plus vit). Intern konsistens och ett räknat värde, inte en extern validering; aberrationer av högre ordning och en enskild lasers brus modelleras inte
ValidatedGreenhalls och Rileys exakta ekvivalenta frihetsgrader för Allan-, modifierad Allan- och Hadamard-variansernaallan (edf_greenhall,greenhall_edf_core); assurance::uncertainty (edf)
Förmåga
allan::edf_greenhall (med omslagen edf_greenhall_adev, _mdev och _hdev): den fullständiga algoritmen av Greenhall och Riley, Proc. 35th PTTI (2003), Section 3 (Eqns 7 till 13 och koefficienterna för stort J i Tables 1 till 3), för differensordningarna 1 till 3, brusexponenter +2 till -4 varhelst alpha + 2d > 1, överlappande och icke-överlappande, modifierade och omodifierade estimatorer; NaN där den inte är tillämplig, inklusive fallet omodifierat vitt PM med ceil(M/S) <= d, vars slutna uttryck inte är implementerat. assurance::uncertainty::edf delar nu koden och behåller sina utdata bit för bit
Oberoende referens
allantools 2024,6 ci.edf_greenhall, en implementation från tredje part av den publicerade algoritmen, körd av scripts/gen_greenhall_edf_ref.py över det rutnät som förhandsregistrerades i xval/greenhall-edf/PREREGISTRATION.md (incheckat ensamt, 0db0bb7a, före någon jämförelse): i alla 4 876 punkter där den ger ett ändligt edf stämmer kshana inom relativt 6.0e-13 (tröskel 1e-9); i dess 46 NotImplementedError-punkter ger kshana NaN; varje fallbeteckning förekommer; omslagen är lika med kärnan bit för bit; uncertainty::edf är bitidentisk över 274 280 värden (fastlåst som en SHA-256 före omstruktureringen). I 32 punkter (alpha -4, d 3, omodifierad, fall 2,2) misslyckas allantools i sin tabellslagning i Table 2, så de saknar referensvärde och räknas inte. Stable32 kördes inte. Revision 0,36 (docs/revisions/STUDIO15-greenhall-edf-portable.md): på portabel matematik hämtar kärnan sin logaritm ur en double-double-utvärdering som avrundas en gång (allan::greenhall_ln), och den oförändrade tröskeln Bar 1 håller åter i alla 4 876 punkter, sämst relativt 6.0e-13; skyddet för uncertainty::edf är omlagt till den portabla dumpen för 0,36 (3 746 av de 274 280 värdena flyttades, högst relativt 1.6e-12, från basen med värdens matematik)
ModelledFörinställningar för oscillatorernas holdover ur öppna databladtelecom_timing (PRESETS,fit_noise,with_flicker_floor,synthesize_holdover); models (ClockModel)
Förmåga
Fyra förinställningar — OCXO (Microchip OX-208), rubidium (Microchip 8040C), cesium (Microchip 5071A högpresterande rör) och CSAC (Microchip SA.45s) — var och en med sitt datablads maxvärden för Allan-deviation, åldring och temperaturgräns; en icke-negativ anpassning enligt minsta kvadrat av frekvensbrus av typen vitt + flicker + slumpvandring, skalad så att den omsluter varje datablads punkt, ett flickergolv som aldrig ligger under värdet för längsta τ, linjär åldring och en sinusformad temperaturterm, syntetiserad som en holdover med slumpfrö efter ett GNSS-bortfall
Oberoende referens
De fyra namngivna Microchip-databladen (dokumentnummer och URL:er i varje förinställning och i docs/TELECOM-TIMING.md) för indatavärdena; den slutna åldringsrampen och anpassningens omslutningsegenskap som interna kontroller. Hur värdena blir en brusmodell — anpassningen, golvregeln, månaden på 30 dagar, den linjära temperaturavläsningen — är ett modelleringsval; ingen förinställning är en mätning av en enhet. 0,30 omgång 2, ensidiga trösklar mot uppmätta enheter (förhandsregistrerade a01c491c), ett fynd (förblir MODELLED): IGS-stationen THU2 med Symmetricom 8040C i ESA MGEX slutliga klockor har en Allan-deviation på 0,35 till 0,87 av rubidiumförinställningen men ett holdover-fel på 1,07 till 1,60 av den; registreringen för 5071A ligger utanför cesiumförinställningen upp till 1000 s (vitt fasbrus från mätningen, 30x vid 1 s) och i holdover (1,15 till 8,74); den sämsta produktionsenheten SA.45s från 2011 är 1.26x CSAC-förinställningen vid 1 s; OX-208 har ingen uppmätt registrering (blockerad)
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 diskreta åldringsrampen inom 0,1 % av (1/2)·D·t² över en…
ValidatedHoldover-prediktion utifrån en uppmätt klockregistrering, kontrollerad på undanhållna dataslot_timing (ClockNoise::from_phase_record,fit_weighted,slot_budget,breach_after_sync_s)
Förmåga
Den uppmätta registreringens väg i typen slot-timing: den överlappande Allan-deviationen för en fasregistrering, anpassad med edf-viktad icke-negativ minsta kvadrat i basen för vit fas och frekvensmodulation enligt IEEE Std 1139 (slot_timing::fit_weighted), och sedan inverterad för den glidtid då tidsfelet når en tröskel (slot_timing::slot_budget). Golvet för rött brus mäts ur registreringen i stället för att antas
Oberoende referens
En verklig fritt gående atomklocka: 556 990 fassampel med en sekunds intervall från en cesiumnormal 5071A mätt mot en vätemaser (A. Wallin, distribuerad med allantools; fastlåst incheckning och SHA-256 i scripts/fetch_cs5071a.sh), samma registrering som tests/cs5071a_reference.rs använder för estimatorerna. De undanhållna två tredjedelarna är en extern mätning som prediktionen aldrig sett. Datastyrd: arbetsflödet realdata-clock hämtar registreringen och kör testet med KSHANA_REQUIRE_REALDATA=1. Kontrollerar vägen anpassa-sedan-invertera på en atomnormal dominerad av vitt FM över glidtider upp till cirka 50 000 s; inte databladens eller klassernas källor, inte de deterministiska termerna. INTE en kristalloscillator: på en uppmätt OCXO-registrering (tests/slot_timing_ocxo_holdout.rs, allantools, 5,5 h mot en vätemaser) är den undanhållna prediktionen konservativ, på 0,59 till 0,70 av det uppmätta överträdelsen, och mestadels utanför tröskeln, eftersom oscillatorns brusgolv halverades under registreringen; i urvalet ligger den inom 0,98 till 1,17. Kristallfallet förblir MODELLED. INTE heller atomklockor i omloppsbana: på 10 satellitklockor av typen GPS Block IIF (tests/slot_timing_igs_holdout.rs, IGS slutliga klockor med 30 s, 14 dygn, protokoll skrivet före nedladdningen) hamnar 8 inom tröskeln och 2 (G25, G30) är optimistiska med upp till cirka 2x, så enligt protokollet förblir fallet i omloppsbana MODELLED
Tester
tests/slot_timing_cs5071a_holdout.rs (holdover_inversion_predicts_the_held_out_caesium_record: anpassa på den första tredjedelen av registreringen, förutsäg ettsigma-överträdelsen vid 0,5, 0,75, 1, 1,5, 2 och 2,5 ns, mät den på…
ModelledSekunder tills en fritt gående klocka lämnar skyddsmarginalen för ett tidsindexerat slot, och den takt för positionsbestämning som håller den inom marginalenslot_timing (predicted_error_s,breach_after_sync_s,terms_at,slot_budget,ClockNoise::from_datasheet,SlotTimingScenario); clock_state (ClockClass::Tcxo,Ocxo,Rafs,source)
Förmåga
Typen slot-timing: det predikterade felet E(t) = k·√(σ₀² + σ_x²(t)) + (|y₀| + |c_T·ΔT|)·t + ½|D|t² inverterat för överträdelsen, den återstående tiden, återsynkroniseringsintervallet efter avdrag för latensen vid positionsbestämning och antal positionsbestämningar per dygn, varje term specificerad med den dominerande namngiven; klockor från de sex standardvärdena i ClockClass (TCXO, OCXO och RAFS tillagda, var och en med hänvisning till ett datablad), förinställningarna för telecom-timing, ett datablad angivet direkt i scenariot eller en uppmätt registrering; en överträdelse bortom källans längsta medelvärdestid markeras som extrapolerad
Oberoende referens
Slutna uttryck för varje term för sig och den oberoende rotsökningen holdover::holdover_seconds; databladsvärdena är de namngivna dokumenten (docs/SLOT-TIMING.md). Ett klassstandardvärde vilar på ett antaget golv för rött brus och en databladskälla är en omslutning av maxvärden, så ingetdera är en mätning av någon enhet
Tester
tests/slot_timing_igs_holdout.rs (10 GPS Block IIF-satellitklockor, 14 dagar av IGS slutliga klockor: 8 inom tröskeln 1,5, G25 och G30 optimistiska med upp till ungefär 2x, fastlåsta); tests/slot_timing_ocxo_holdout.rs (en uppmätt…
ModelledSkyddsnivå för tidssynkronisering hos en mottagare i omloppsbana under GNSS-spoofingorbital_timing (orbital_timing,visibility_half_angle_rad,max_pass_s,crosslink_neighbour_is_outside_footprint)
Förmåga
orbital_timing::orbital_timing, nåbar som spoofing-avsnittet i typen slot-timing: hastighet och period i cirkulär bana, den längsta tid en markbaserad spoofer kan nå satelliten per passage, golvet för den klockstödda övervakaren och detekteringslatensen för CUSUM, den villkorliga skyddsnivån (golvet plus glidtiden över latensen), det drag som en spoofer med en angiven högsta rampfrekvens hinner ackumulera innan satelliten lämnar sin fotavtryckszon eller en oberoende kontroll körs, samt huruvida varje kontakt med marken eller varje kontroll via tvärlänk är oberoende av en markbaserad spoofer
Oberoende referens
Reduktion till den befintliga skyddsnivån för tidssynkronisering och de slutna uttrycken för synlighet vid cirkulär bana och sfärisk jord. Villkorat på detektering, en terrestrisk spoofer med en angiven rampfrekvens, en passage rakt ovanför på en icke-roterande jord; inte kontrollerad på en spoofad mottagare i omloppsbana
Tester
orbital_timing::tests (reduces_to_the_terrestrial_tpl — exakt tpl::timing_protection_level_ns när klockan saknar flicker-, vitfas- eller random-run-term; leo_geometry_matches_its_closed_forms…
ValidatedSlutna uttryck för effektspektraltäthet hos signaler i L-bandet och spektrala separationskoefficienternavsignal (Modulation::psd,spectral_separation_coeff_offset,q_from_ssc); spectrum (psd_nulls_hz,psd_peak_hz,main_lobe_null_to_null_hz,Jammer::ssc)
Förmåga
Effektspektraltätheter med enhetsarea för GPS L1 C/A och L2C (BPSK(1)), GPS L5 och Galileo E5a (BPSK(10)), sinus-BOC(1 1) och Galileo E1 MBOC(6,1,1/11) (navsignal::Modulation::psd, med en MBOC-variant tillagd), deras numeriskt lokaliserade nollställen och maxvärden (spectrum::psd_nulls_hz, psd_peak_hz, main_lobe_null_to_null_hz), och den spektrala separationskoefficienten för en signal mot valfritt spektrum vid valfri offset (navsignal::spectral_separation_coeff_offset) eller mot en ton, plant brus, en chirp eller matchat brus (spectrum::Jammer::ssc), med anti-jam-koefficienten Q = 1/(R_c kappa)
Oberoende referens
Publicerade läroboksvärden: huvudloben för BPSK(n) på 2n x 1,023 MHz från nollställe till nollställe och anti-jam-koefficienterna Q = 1 för en smalbandig (CW) jammer och Q = 1,5 för en spridspektrumsjammer matchad mot C/A (Kaplan & Hegarty, Understanding GPS/GNSS, 3rd ed., section 9,4); huvudloberna för BOC(m,n) centrerade vid plus eller minus m x 1,023 MHz (Betz, Binary Offset Carrier Modulations for Radionavigation, NAVIGATION 48(4), 2001); de spektrala separationskoefficienterna -61.8, -64.8 och -67.8 dB/Hz för C/A med C/A, BOC(1 1) med BOC(1 1) och C/A med BOC(1 1) (Betz 2001; Hein et al., MBOC: The New Optimized Spreading Modulation Recommended for Galileo L1 OS and GPS L1C, Inside GNSS, May/June 2006), återgivna här ur deras slutna uttryck för autokorrelation via Parseval. Maximum för BOC(1 1) ligger inte vid 1,023 MHz: loben sträcker sig från bärvågsnollstället till 2,046 MHz och har sin topp vid 0,759 MHz, och testet fastlåser båda. MBOC-blandningen är den som ICD:n definierar och kontrolleras endast för enhetsarea och linjäritet
Tester
spectrum::tests (bpsk_main_lobe_null_to_null_is_two_n_times_1_023_mhz — BPSK(1) 2,046 MHz och BPSK(10) 20,46 MHz lokaliserade numeriskt på den slutna formen; boc11_lobes_are_centred_at_plus_minus_1_023_mhz — bärvågsnolla…
ModelledSpektrumvattenfall för L-bandet med J/S per band och effektiv C/N0 under en skriptad tidslinje för jammersspectrum (SpectrumScenario,SpectrumModel::bin_psd_w_per_hz,SpectrumModel::band_state,effective_cn0_multi_dbhz,system_temp_k,Jammer::power_fraction_in,Jammer::duty)
Förmåga
Typen spectrum: ett rutnät över frekvens och tid för effektspektraltätheten i L-bandet (termiskt golv k T_sys med T_sys = T_ant + 290 K (F - 1), signalerna vid sina lägsta mottagna effekter enligt gränssnittsspecifikationen, samt jammers med kontinuerlig våg, smalband, chirp och matchat brus med på/av-tider), där varje cell medelvärdesbildas över sitt fack och sin rad (chirpar exakt över hela och partiella svep, jammers efter arbetscykel), effektiv C/N0 per band = [1/(C/N0) + sum (J/S) kappa]^-1 per rad, J/S per band, J/S i bandet, och ett SVG-vattenfall med staplar för C/N0. Rapporten innehåller en korskontroll mot kedjan i typen jamming på samma länkindata
Oberoende referens
Reduktion till anti-jam-ekvationen och länkbudgeten i den befintliga typen jamming (samma kod, anropad med samma indata) och det slutna uttrycket för brusgolvet k T0 F. Signalspektra som ligger under är den kontrollerade raden ovan; jammereffekter, tidslinje och frontändens bandbredder är scenarioindata, spektra är kontinuerliga (inga spridkodslinjer), och ingen automatisk förstärkningsreglering, blankning eller antennmönster verkar på jammern. Inget uppmätt stört spektrum finns i förvaret att kontrollera sammansättningen mot. Tabellen Q i typen jamming (CW och smalband 1, bredband och svepande 2 sedan 0,36: läroboksvärdena, fastlåsta mot de slutna uttrycken i navsignal) stämmer med den här modellens värde för CW och skiljer sig från vad den härleder för brus matchat mot C/A (1,5) och för plant brus från nollställe till nollställe utan normalisering i bandet (2,2); rapporten skriver ut båda
Tester
spectrum::tests (agrees_with_the_jamming_kind_chain — J/S lika med jamming::j_over_s_db och effektiv C/N0 lika med jamming::effective_cn0_dbhz med Q = 1/(R_c kappa) till 1e-9 dB, och ankaret 32,105 dB för jamming…
ValidatedInläsning och utskrift av SigMF-inspelningar och Welch-spektralskattningar av komplex IQsigmf (read,write,encode,decode,parse_meta,meta_to_json); spectrum (welch_psd,fft_in_place,synthesise_iq)
Förmåga
sigmf: läs och skriv inspelningar i Signal Metadata Format (JSON .sigmf-meta med kärnfälten global, captures och annotations; rå .sigmf-data som cf32_le, ci16_le eller ci8, heltalsavkodarna delade med realdata::iqif::load_iq), allt på strängar och bytebuffertar. spectrum::welch_psd: periodogram med Hann-fönster, överlappande och medelvärdesbildade, densitetsskalade, på en radix-2-transform i craten (spectrum::fft_in_place). Dessa två är det kontrollerade påståendet. spectrum::synthesise_iq ritar modellen som IQ, och avsnittet [iq] i typen spectrum kör modell till IQ till SigMF till Welch och jämför med modellen; dess avsnitt [recording] skattar en verklig inspelning (inbyggda versioner); syntesen och dessa modelljämförelser ligger utanför det kontrollerade påståendet
Oberoende referens
scipy 1.18.1 scipy.signal.welch (BSD-3-Clause) med samma periodiska Hann-fönster, överlappning, densitetsskalning, ingen avtrendning och tvåsidigt medelvärde: varje bin inom relativt 1e-12 (observerat 6.0e-14) över 27 fall, med segmentantal hämtade ur scipys egen spektrogram. sigmf-python 1.13.0 (LGPL-3.0, körd som verktyg) skriver fem inspelningar från tredje part (cf32_le, ci16_le, ci8, två captures med annotations, ett icke-noll första sample_start) som craten avkodar bitidentiskt med identiska kärnfält, och läser craten egna inspelningar tillbaka bitidentiskt; metadatascheman för SigMF v1.2.6 rapporterar noll fel på cratens metadata. Toleranser fastställda före den första jämförelsen. Utanför påståendet: spectrum::synthesise_iq och jämförelserna för [iq] och [recording] med modellen (en syntes har inget enda rätt svar; en periodisk chirp visar linjer, Fresnel-rippel och kantsvansar som den släta modellen utelämnar, total effekt inom 2 %), konventionen för skalning från heltal till flyttal (craten dividerar med 32767 och 127, sigmf-pythons autoscale med 2^15 och 2^7, vilket specifikationen lämnar öppet; jämförelsen använder råa koder), flerkanalsinspelningar och de datatyper som läsaren vägrar
ValidatedPlaneternas positioner genom hela solsystemet ur JPL:s keplerska Standish-elementephem (standish_state,standish_elements,standish_nominal_error,ecliptic_to_icrf); ephem_provider (AnalyticSolarSystem); solar_system (SolarSystemScenario)
Förmåga
Heliocentriska positioner för Merkurius, Venus, barycentret jord–måne, jorden, Mars, Jupiter och Saturnus ur Standish Table 1 (1800 e.Kr. till 2050 e.Kr.), och för alla åtta planeter ur Tables 2a/2b (3000 f.Kr. till 3000 e.Kr., med termerna b, c, s, f för medelanomalin), efter JPL-sidans algoritm steg för steg och roterade till ICRF (International Celestial Reference Frame) med sidans snedställning; jorden skiljs från barycentret med månserien av Montenbruck & Gill och massförhållandet. Sammansatt som ephem_provider::AnalyticSolarSystem så att varje kropp är tillgänglig relativt varje annan, och körbar som typen solar-system
Oberoende referens
JPL Horizons DE441 geometriska heliocentriska vektorer (ekliptika och ICRF), hämtade efter att förhandsregistreringen incheckats som 80451866, 8d38a28b och 558cc807. Tröskel: per planet och komponent RMS högst 1.0x de ungefärliga felen i Explanatory Supplement 3rd ed. Table 8.10.1 (raden EMB för jorden); uppdelningen jorden–EMB kontrolleras direkt mot DE441 399 minus 3, högst 0,3 deg och 8,1 km vid varje epok 1950-2050 (längdtröskeln 8,1 km kommer från den noggrannhet för månserien som anges i Kshanas egen efemeriddokumentation med hänvisning till Montenbruck och Gill, och kontrollerades inte mot boken; det uppmätta värdet 6,09 km ligger nära den). RMS-måttet valdes med vetskap om att en tidigare jämförelse med 27 epoker nådde 1.87x nominellt som mest; fel för enskilda epoker når 3.83x (3.87x i fallet ICRF). Supplement definierar inte sina värden som RMS. Fall B roterar båda sidor med IAU:s snedställning från 1976 skriven i testet, så rotationen kontrolleras inte mot sig själv. Standardvalet av tabell i AnalyticSolarSystem prövas inte (testerna tvingar Table 1). Uranus och Neptunus ur Table 1 är en separat MODELLED-rad
Tester
tests/solar_system_standish_preregistered.rs::standish_rms_errors_are_within_explanatory_supplement_table_8_10_1 (barycenter 1800-2050 ur tabell 1 och 3000 BC-3000 AD ur tabell 2, 8908 och 21857 epoker, sämsta RMS…
ValidatedPositioner för solen, månen, Merkurius och Venus ur DE440-kärnan vid UTC-epoker (KernelEphemeris)ephem_provider (KernelEphemeris::relative_position_utc,utc_to_tdb_jd2); naif_kernel; timescales
Förmåga
Geometriska positioner för solen, Merkurius, Venus, jorden och månen relativt varandra (axlar enligt J2000/ICRF, meter) ur en JPL DE440-kärna via ephem_provider::KernelEphemeris vid UTC-epoker: kroppsnamn avbildade på NAIF-koder, UTC förd genom skottsekundstabellen och TT till TDB med tvåtermsserien för TDB-TT, kärnan läst av motorns egen läsare. En kropp som kärnan bara håller som systemets barycentrum (Mars till Neptunus, Pluto i de440s) vägras, aldrig ersatt. Standish-raden utan kärna förblir webbläsarens och reservens väg
Oberoende referens
Skyfield 1,54 (MIT), med egen skottsekundstabell, eget TDB-TT och egen läsare av samma NAIF de440s.bsp (jplephem), körd som ett separat program vid UTC-epoker. Förhandsregistrerad (0bfafe6d) innan fixturen fanns, med rutnätet sått från den incheckningens hash, med en tröskel på 5e-5 s gånger den relativa hastigheten (motorns angivna noggrannhet för tvåtermsserien TDB-TT) plus 1e-13 av det barycentriska avståndet plus 1e-5 m, per komponent. Resultat: alla 600 inom, sämst 0,66 av tröskeln (2,96 m på ett snabbt par, TDB-TT-seriens eget fel). Mutation: TT använd som TDB misslyckas vid 33 gånger tröskeln. Båda sidor läser DE440: detta kontrollerar leverantören och dess tidskedja, inte DE440. Utanför påståendet: planeterna bortom Venus som kroppar (de440s innehåller bara deras barycentrum), planetmånarna och precision under tvåtermsserien för TDB-TT (några meter för de snabbaste paren)
Tester
tests/kernel_ephemeris_skyfield_oracle.rs::kernel_ephemeris_matches_skyfield_at_utc_epochs (600 positioner vid 200 UTC-epoker 1973-2026 dragna ur förhandsregistreringens hash; sämst 0,66 av tröskeln, 2,96 m)…
ValidatedLjustid mellan kroppar i solsystemetradiometric (light_time_solution,two_way_range,shapiro_delay); solar_system (link,link_on); ephem_provider (AnalyticSolarSystem)
Förmåga
Den newtonska ljustiden i en riktning från vilken kropp som helst till vilken annan som helst, mottagen vid en epok, löst av den radiometriska fixpunktslösaren för ljustid (radiometric::light_time_solution, sändaren vid sin fördröjda position) genom solar_system::link_on på valfri EphemerisProvider; typen solar-system kör den på det analytiska solsystemet i det heliocentriska systemet (solar_system::link). Tvåvägsavståndet från radiometric::two_way_range och Shapiro-fördröjningen från solen från radiometric::shapiro_delay rapporteras separat och jämförs inte externt. Utmatad för varje kropp mot en observatör och för varje extra länk av typen solar-system, och för nedlänken från kropp till jorden av typen body-pnt
Oberoende referens
JPL Horizons DE441 newtonsk ljustid LT för nedlänken i en riktning (VEC_CORR=LT, observatör jordens centrum), förhandsregistrerad (480037d3, ändring 54d5c86f som endast ändrade avståndet mellan interpolationsnoderna efter att den första hämtningen inte klarade sitt förkrav på 10 m interpolationsprecision, före någon jämförelse av ljustid) med en tröskel på 1e-6 s per ljustid, där lösaren matades med barycentriska positioner från DE441 så att iterationen för den fördröjda sändaren syns (en lösare med första iteratet missar med upp till 0,1 s). På de analytiska Standish-positionerna är ljustiden bara så bra som dessa positioner (se raden för planetpositioner); den levererade länken behandlar solen som ett tröghetscentrum, vilket håller sig inom det positionsfelet men inte är separat kontrollerat. two_way_range och shapiro_delay jämförs inte externt
Tester
tests/solar_system_light_time_solver_preregistered.rs::light_time_solver_on_de441_positions_matches_horizons_lt_within_1e_6_s (barycentren för Merkurius, Venus, Mars, Jupiter och Saturnus, Solen och Månen till Jorden…
ModelledUranus och Neptunus ur Standish Table 1, Pluto och planeternas hastigheterephem (standish_state,StandishElements::state_at_mean_anomaly,Planet::Pluto); solar_system (position_label)
Förmåga
Positioner för Uranus och Neptunus ur Standish Table 1 (standard inom 1800 e.Kr. till 2050 e.Kr.), Pluto ur raden i Table 1 från 1992 som JPL:s nuvarande sida inte längre anger, och den heliocentriska hastigheten för varje planet: tvåkroppsderivatan med den medelrörelse som elementen ger plus ellipsens vridning genom ändringstakterna för perihel, inklination och nod
Oberoende referens
Mätt mot JPL Horizons DE441 (samma incheckade fixturer), men inte kontrollerad: de angivna värdena i Table 1 för Uranus och Neptunus överskrids med upp till 2,0 och 5,2 gånger mot heliocentriska positioner i DE441 (Neptunus klarar dem mot barycentriska positioner, vilket tyder på att anpassningen inte var heliocentrisk), sidan anger inget fel för Pluto, och ingen publicerad gräns finns för hastigheterna. Tables 2a/2b klarar sina egna värden för Uranus och Neptunus och täcks av den kontrollerade raden
Tester
tests/solar_system_horizons_reference.rs (standish_table1_uranus_and_neptune_exceed_the_nominal_error: fastlåst vid 2,04 och 5,16 gånger det nominella longitudfelet, under sex gånger…
ModelledPositioner för månen och sju stora månar (Phobos, Deimos, de galileiska månarna, Titan)ephem (satellite_state,Satellite,SatelliteMethod,moon_icrf,moon_icrf_velocity); ephem_provider (AnalyticSolarSystem)
Förmåga
Den geocentriska månen ur serien av Montenbruck & Gill (vars term på -1.3972 deg per sekel redan hänför den till J2000-ekvinoktiet), och planetocentriska positioner och hastigheter för Phobos, Deimos, Io, Europa, Ganymedes och Callisto ur de medelelement som JPL Solar System Dynamics anger i varje månes Laplaceplan, med medellongitudens hastighet hämtad ur IAU:s synkrona rotationshastighet (tabellen skriver ut perioden med för få siffror för att hålla fasen), och för Titan ur IAU:s rotationsmodell (månen på minus kroppsfasta x-axeln vid medelavståndet), eftersom Titans tryckta rad för Laplaceplanet inte återger Horizons ens vid sin egen epok
Oberoende referens
Mätt mot JPL Horizons satellitefemerider (DE441, MAR099, JUP365, SAT441) incheckade i tests/fixtures/solar_system/horizons_satellites_icrf.csv med frågan och hämtningsdatum; ingen publicerad noggrannhet finns för medelelement eller för placeringen enligt rotationsmodellen, så de fastlåsta trösklarna fångar regressioner och kontrollerar inte. Medelelementen utelämnar resonans- och solstörningar, och Phobos sekulära acceleration modelleras inte
Tester
tests/solar_system_horizons_reference.rs (moons_track_horizons_to_the_measured_angles: sämsta vinkelfel sett från planeten över 2000 till 2040, Phobos 5,65 deg, Deimos 0,38, Io 0,40, Europa 1,63, Ganymedes 0,22…
ModelledFysikaliska konstanter för varje kropp i solsystemet och rapporten för hela systemetbody (Body::by_name,Body::facts,Body::prime_meridian,SOLAR_SYSTEM,BodyFacts); solar_system (SolarSystemScenario,position_label)
Förmåga
Body tillför Merkurius, Venus, Jupiter, Saturnus, Uranus, Neptunus, Pluto, Phobos, Deimos, Io, Europa, Ganymedes, Callisto och Titan (gravitationsparameter, referensradie, J2 där det publicerats med den radie det är hänfört till, IAU:s pol och nollmeridian), en namnuppslagning och en BodyFacts-post (NAIF-kod, klass, moderkropp, ekvatorial- och medelradie); typen solar-system rapporterar dem för alla arton kroppar med positionerna, ljustiderna och ett banspår över ett varv, varje kropp märkt VALIDATED eller MODELLED
Oberoende referens
Avskrift av publicerade konstanter, var och en med källa där den definieras: gravitationsparametrar ur JPL Horizons kroppsposter och JPL:s tabell över fysikaliska parametrar för satelliter, radier ur JPL:s tabeller över fysikaliska parametrar (IAU WGCCRE 2015), poler och nollmeridianer ur IAU:s arbetsgrupp för kartografiska koordinater och rotationselement (medelvärden, utan T-takten och periodiska termer), J2 ur Smith et al. 2012, Iess et al. 2018 och 2019 samt Jacobson 2009 och 2014. Kontrollerad för intern konsistens (Jupiters rotationsperiod mot System III-takten, varje J2 mot sin referensradie), inte mot någon extern referens. 0,30 omgång 2: värdena för GM antogs från gm_de440 och elementen för Phobos och Deimos från pck00011, så 0 av 84 konstanter för de fjorton tillagda kropparna skiljer sig nu från NAIF (var 12), vilket är en avskriftskontroll och inte räknas. 0,36: IAU:s kroppsfasta orientering och GM för de fjorton tillagda kropparna är utbrutna till en egen VALIDATED-rad ("IAU body orientation and gravitational parameter of the fourteen added solar-system bodies"); den här raden behåller det som återstår. J2 och medelradien är angivna med källa, inte kontrollerade; positionerna i rapporten vilar på sina egna rader; och rapportens prime_meridian_deg för jorden, månen och Mars förblir på konventionella konstanter (upp till 6.6e-3, 2.8e-2 och 9.6e-4 rad från IAU_<BODY>). Revisioner i 0,30: GM för Phobos 7.087e5 -> 7.087546066894452e5, Deimos 9.62e4 -> 9.615569648120313e4, Uranus 5.7939506103e15 -> 5.793951256527211e15, Neptunus 6.83509997e15 -> 6.835103145462294e15, Pluto 8.69326e11 -> 8.696138177608748e11 m³/s²; Phobos ekvatorialradie 13,1 -> 13,0 km; prime_meridian_deg innehåller nu de kvadratiska och periodiska termerna
ValidatedIAU:s kroppsorientering och gravitationsparameter för de fjorton tillagda kropparna i solsystemetbody (Body::iau_rotation_et,Body::iau_angles_et,Body)
Förmåga
Body::iau_rotation_et, rotationen från J2000 till IAU:s kroppsfasta system för Merkurius, Venus, Jupiter, Saturnus, Uranus, Neptunus, Pluto, Phobos, Deimos, Io, Europa, Ganymedes, Callisto och Titan med varje sekelhastighet, kvadratisk term och periodisk term som kroppen har i pck00011, och gravitationsparameterfältet mu för samma fjorton kroppar. Solen, jorden, månen och Mars har konventionella konstanter som ägs av andra rader och täcks inte
Oberoende referens
NAIF SPICE Toolkit (CSPICE N0067 via spiceypy) pxform('J2000', 'IAU_<BODY>') på pck00011.tpc, en oberoende implementation av samma IAU-rotationsmodell, och NAIF gm_de440.tpc för GM, med fixturerna genererade av ett separat program som inte anropar någon Kshana-kod (tests/fixtures/body_orientation_spice_oracle/, NOTICE.md). Förhandsregistrerad 154bc54 (med den ursprungliga tröskeln på 1e-9 rad från c2434204) innan fixturen med färska epoker fanns; den färska fixturen genererades oberoende på nytt och är byte för byte identisk. GM är en avskrift av DE440 kontrollerad mot den publicerade filen, inte en oberoende bestämning av GM. Resultat: 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 till 2044, 574 matriser inom 1e-9 rad, sämst Phobos 1.43e-10 rad)…
ModelledPositionsbestämning kring valfri kropp i solsystemet med en lokal konstellation och en djuprymdlänk från jordenbody_pnt (BodyPntScenario,formal_sigma,fix_error); orbit (dop); batch_ls (gauss_newton); mars_pnt (chord_clears_sphere); mars_frame (bodyfixed_to_inertial)
Förmåga
Typen body-pnt: en orbiter eller en lander på ytan kring en kropp vald med namn navigerar med pseudoavstånd i en riktning från en Walker-navigationskonstellation kring kroppen (tvåkroppsbanor med kroppens sekulära J2-drift, en okänd användarklocka) och ett valfritt klockfritt tvåvägsavstånd från jorden, där jordens riktning och avstånd hämtas ur den analytiska efemeriden vid varje epok; siktlinjer som blockeras av kroppens sfär och en elevationsmask vid ytan; per epok enbart konstellationens GDOP och PDOP (orbit::dop), den formella positionsosäkerheten med och utan jordraden, och positionsbestämningar med Gauss-Newton och slumpfrö (batch_ls::gauss_newton) i båda fallen, med ljustiden och rundturstiden från kroppen till jorden
Oberoende referens
Slutna uttryck och självkonsistens: Keplers tredje lag för reläets period, banradien och ytradien som hålls över körningen, att tillägg av en mätning aldrig ökar den formella osäkerheten, och att de slumpmässiga felen stämmer med kovariansen. Relärbanorna bortser från tredje kroppar (Jupiters drag på reläer kring Europa modelleras inte), bruset är gaussiskt på angivna nivåer och mätmodellen är ögonblicklig, så detta är inte kontrollerat mot något uppdrags navigationsdata
ValidatedGeometri för Walker-konstellationer och de publicerade nominella positionerna i GPS, Galileo och GLONASSconstellation (WalkerSpec::elements,gps_slots,galileo_walker,glonass_slots,GPS_BASELINE_SLOTS,GPS_EXPANDABLE_SLOTS)
Förmåga
Generatorerna i typen constellation-design: Walker-mönster delta och star i T/P/F-konventionen (nodavstånd 360/P eller 180/P, avstånd i planet 360·P/T, fasoffset mellan planen 360·F/T), och GPS-baslinjen och den utbyggbara 24-positionskonstellationen, Galileo- och GLONASS-förinställningarna byggda ur sina publicerade nominella element, placerade i ett jordfast system med den Greenwich-timvinkel som deras dokument anger
Oberoende referens
Publicerade myndighetsdokument: Galileo Open Service Service Definition Document issue 1,1 (European GNSS Service Centre) Tables 1 och 23, referenskonstellationen den 2016-11-21 00:00 UTC; GLONASS Interface Control Document edition 5,1 (2008) section 5,2, formeln för positionerna med nodlongitud och breddargument; GPS Standard Positioning Service Performance Standard 5th edition (April 2020) Tables 3.2-1, 3.2-2 och 3.2-3, inklusive kolumnen för ekvatorskorsning i markspåret, som är ett oberoende uttalande om den jordfasta geometri som förinställningen måste återge. Kontrollerar generatorerna och avskriften; fasen för medelbanan och noderna för den lutande geosynkrona banan hos BeiDou är inte publicerade och täcks inte
Tester
constellation::tests::walker_24_3_1_reproduces_galileo_os_sdd_table_23 (alla 24 rader för RAAN och medelanomali till 1e-9 deg); constellation::tests::glonass_icd_slot_formula_is_a_walker_24_3_1 (ICD:ns platsformel och en…
ValidatedGlobal geometrisk försämring av precisionen för GPS-baslinjekonstellationenconstellation (coverage,dop_at,NormalAccum)
Förmåga
Täckningsmotorn constellation-design på GPS-baslinjens förinställning med 24 positioner under villkoren i GPS Standard Positioning Service Performance Standard (SPS PS) Appendix B (ett siderist dygn, 287 steg om fem minuter, ett globalt rutnät om 4 x 4 deg viktat med cosinus för latituden, alla i sikte, mask på 5 deg, en mottagarklocka): den globala fördelningen av HDOP, medianen för PDOP och tillgängligheten för PDOP högst 6, globalt och vid den sämsta platsen
Oberoende referens
GPS SPS PS 5th edition (April 2020) Appendix B sections B.3.2.2 och B.3.2.3, den publicerade globala medelfördelningen av HDOP för den fullt besatta 24-positionskonstellationen i baslinjen (median 0,94, 90 % 1,16, 95 % 1,25, 98 % 1,37, medelvärde 0,96), Table 3.8-1 (tillgänglighet för PDOP) och Table B.3-1 (ensemble-PDOP för en försämrad konstellation, använd endast som övre gräns), plus ett handhärlett slutet uttryck för en epok. Fördelningarna av VDOP och PDOP för den fulla konstellationen är publicerade endast som en figur, så PDOP fastlåses ensidigt; den sämsta punkten i tid och rum (HDOP 2,40 och VDOP 5,22 här, 2,49 och 5,43 publicerade) beror på rutnätet och rapporteras, fastlåses inte
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, medel 0,965 mot 0,94, 1,16, 1,25, 1,37 och 0,96, tröskel 0,03 på varje fast…
ModelledTäcknings- och DOP-kartor för godtyckliga konstellationsutformningar med flera konstellationer i stor skala, kring valfri centralkroppconstellation (coverage,ConstellationDesignScenario,beidou_slots,body_by_name)
Förmåga
Typen constellation-design bortom de två fastlåsta fallen: explicita utformningar och utformningar med flera skal, flera konstellationer per körning med en mottagarklocka per konstellation, jorden, månen och Mars ur kroppskonstanterna, BeiDou-förinställningen (fas för medelbanan och ekvatorskorsning vid 118 deg E för den lutande geosynkrona banan modellerade), satelliter i sikte per cell, GDOP, PDOP, HDOP, VDOP och tillgänglighet, nedsamplade markspår, och ett förfilter för synlighet efter latitud under satelliten som kör en utformning med 5 000 satelliter på ett rutnät om 10 deg på en bråkdel av en sekund
Oberoende referens
Intern konsistens: elevationsskanningen med råstyrka, reduktionerna för handräkning och orbit::dop, och de slutna uttrycken för Walker- och geosynkron geometri. Tvåkroppsbanor med valfri sekulär J2, en sfärisk kropp med lokal vertikal längs radien, enbart geometrisk synlighet (ingen signaleffekt, satellithälsa, terräng eller tredjekroppsstörning), och den relativa fasen mellan system hämtad från olika referensepoker, så det är inte en ögonblicksbild av något datum. Granskning 0,30, ett fynd (förblir MODELLED): förinställningarna klarar de publicerade ensidiga golven för DOP-tillgänglighet (BeiDou OS Performance Standard 3,0, Galileo OS SDD) vid 100 %, men med motorns PDOP fördubblad i en tillfällig kopia klarar de dem fortfarande (sämsta punkt 99,36 %), så golven kan inte upptäcka ens ett fel på 100 % i den storhet som den här raden beräknar; att skärpa dem efter körningen vore en toleransjustering i efterhand. Uppflyttning kräver en tvåsidig jämförelse av DOP-värden på identisk geometri med en tolerans fastställd i förväg. 0,30 omgång 2 (tests/coverage_dop_full_oracle.rs, förhandsregistrerad add671d6), ett fynd (förblir MODELLED): Orekit 12,2 positioner, elevation, azimut och markspår med gnss_lib_py 1.0.4 GDOP/PDOP/HDOP/VDOP (gemensam klocka) och en numpy-invers (en klocka per konstellation) stämmer i varje tröskel för Galileo, GPS, BeiDou, Galileo+GPS (en klocka vardera) och en jordutformning med 1584 satelliter (DOP inom 2e-14 relativt, identisk positionsbestämning, tillgänglighet och synlighetsantal). På utformningarna för månen och Mars stämmer elementen, positionerna, synligheten och spåren, men DOP överskrider den förinställda relativa tröskeln 1e-9 i celler vars största PDOP är 1434 eller mer (upp till 8e-6), och 4 celler skiljer sig med en positionsbestämningsepok på numeriskt singulär geometri (motorns pivot 1e-10 mot numpy-rang), så raden är inte kontrollerad. Revisioner i 0,30: referensklockan för TDOP/GDOP är nu den lägst numrerade konstellationen i sikte (constellation-multi-gnss-coverage globalt GDOP-max 2,2236 -> 2,1205, medelvärde 1,122 -> 1,131), och antalen synliga per konstellation summeras som heltal
Tester
constellation::tests (prefilter_matches_brute_force_exactly — varje karta och räknare är lika med en genomsökning med det direkta elevationstestet; five_thousand_satellites_on_a_coarse_grid — 5 000 satelliter, skriver ut körtiden och…
ModelledEtt kedjat uppdrag över scenariotyper på en gemensam tidslinjecampaign (run_campaign_detailed,run_chain,presets,extract,to_svg)
Förmåga
Faserna i typen campaign: varje fas kör ett eller flera scenarier av befintliga typer genom run_toml, läser deras utdata in i namngivna kanaler (klockans tidsfel och skyddsmarginal, genomsnittligt effektivt förhållande mellan bärvågseffekt och brustäthet och följegolv, vertikal skyddsnivå och larmgräns, positionsfel, följda satelliter, larmflaggor) med förinställningar per typ eller explicita resultatsökvägar, placerar dem vid fasens början och håller dem på ett gemensamt rutnät, med fasgränser och händelser; tillstånd förs vidare genom carry (en kanal fortsätter från föregående fas slutvärde), handoff (en föregående fas nummer skrivs in i nästa scenario) och end_at (en fas slutar vid en tid som en körning har räknat fram, till exempel en spoofingövervakares detekteringstid); en kampanjhash och en sammanfattning över varje medlemsresultat
Oberoende referens
Sammansättningsidentiteter mot de fristående körningarna av samma typer: en kampanj med en fas återger det fristående resultatet bit för bit, den förda offseten är lika med föregående körnings eget sista sampel, och fasen som avslutas av end_at har exakt körningens detekteringstid som sin längd. Den additiva förningen över en fasgräns och nollte ordningens hållning är modelleringsval, och varje fas är lika bra som den typ som körde den; inget kedjat uppdrag har kontrollerats mot ett uppmätt
ModelledParametersvep och Monte Carlo-ensembler med slumpfrö över valfri scenariotypcampaign (run_sweep,run_monte_carlo,ensemble); sweep (GenericAxis,coords_of,set_dotted_value); inertial (metric_stat)
Förmåga
Avsnitten sweep (en till tre punktade nycklar av valfri typ, på det generiska svepets axelvärden, eventuellt med ett ensemble i varje nod) och monte_carlo i typen campaign: realisering k körs vid base_seed + k; varje mått rapporterar medelvärde, standardavvikelse, percentiler enligt närmaste rang för 5:e/50:e/95:e och ett percentil-bootstrap-konfidensintervall på 95 % med fast frö för medelvärdet (inertial::metric_stat); måttens enheter läses ur den svepta typens eget enhetsblock
Oberoende referens
Det slutna uttrycket för fasens slumpvandring under vitt frekvensbrus, varians q_wf tau (NIST Technical Note 1337), för statistikmaskineriet, och byteslikhet med de fristående körningarna för frösättningen. Det kontrollerar ensemblens aritmetik på motorns egen klockmodell, inte en extern datamängd
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…
ModelledFlera scenarier under gemensamma villkor, med en samlad sammanfattningcampaign (run_compose)
Förmåga
Avsnittet compose i typen campaign: namngivna gemensamma värden (till exempel en jammers effekt och position) skrivs in i varje medlem vid de nycklar som de binds till, varje medlem körs, och per mått det minsta, största och genomsnittliga värdet över medlemmarna med medlemmen namngiven; måttens enheter måste stämma överens mellan medlemmarna
Oberoende referens
Sammansättningsidentitet mot den fristående körningen. Aritmetiken för gemensamma villkor är bokföring; fysiken är medlemstypernas, var och en med sin egen rad
Tester
tests/campaign_composition_reference.rs (a_one_node_sweep_and_a_one_member_composition_read_the_standalone_number — en sammansättning med en medlem läser det fristående talet och resultatets sammandrag)
ModelledBegränsad optimering av ett mått över kampanjparametrarcampaign::optimize (run_optimize,nelder_mead)
Förmåga
Avsnittet optimize i typen campaign (CAP-32): en till tre punktade scenarionycklar begränsade till [lo, hi] på en lin- eller log-skala, ett mått avläst via resultatsökväg, mål minimize, maximize eller target; metod grid (svepets axelvärden) eller en deterministisk Nelder-Mead-simplex i normaliserade koordinater med boxprojektion och standardkoefficienterna; ett saknat eller icke-ändligt mått får sämsta poäng och stannar kvar i spåret; med runs > 1 är måttet medelvärdet över gemensamma frön; varje utvärdering är en verklig körning av den namngivna typen, förtecknad i trace och räknad i reproducerbarhetssammanfattningen
Oberoende referens
Endast internt: det exakta slutna uttrycket -20 log10(range) för länkekvationen, ett oberoende rutnät med råstyrka över samma typ, och Rosenbrock-funktionen. Tröskeln för 1-D i omgång 1 är NOT MET (den förhandsregistrerade lådan uteslöt lösningen på 3 dB; optimeraren stannade vid gränsen), registrerad i docs/design/evidence/cap32-optimize/RESULTS.md och inte omräknad. Optimum är lokalt för lådan och startpunkten; inget påstående om globalt optimum
Tester
tests/campaign_optimize_reference.rs (förhandsregistrerad fbe6c8b3 och, efter en protokollmiss i omgång 1, 441f31bc: p2_prime_interior_target_range_matches_the_closed_form — 1-D-målslösning inom 6.1e-15 av r* = r0 10^((m(r0)…
ValidatedBandbegränsade slutna uttryck för valfri avståndsmätningssignal: effekt i bandet och jitter vid kodföljning med tidig-sen-detektor mot publicerade värden, med Gabor-bandbredden och den spektrala separationen vid offset korskontrolleradenavsignal (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)
Förmåga
navsignal: sinusintegralen (sine_integral), BPSK-R-andelen av effekten inom ett dubbelsidigt band på sluten form (bpsk_power_in_band_closed_form), den bandbegränsade Gabor-bandbredden för BPSK på sluten form (bpsk_gabor_bandwidth_closed_form_hz), det bandbegränsade jittret för en koherent och en icke-koherent tidig-sen-kodföljningsslinga (DLL) för valfritt spektrum med enhetsarea enligt Betz & Kolodziejski 2009 (dll_jitter_bandlimited_s) och dess gräns för försvinnande avstånd enligt Gabor (dll_jitter_small_spacing_limit_s), den spektrala separationskoefficienten för BPSK vid offset på sluten form (bpsk_offset_ssc_closed_form), spektrumet för Galileo E5 AltBOC(15 10) (altboc_15_10_psd) och en parser för modulationsbeteckningar (parse_modulation); används av typen leo-signal för varje signalutformning
Oberoende referens
Externt fastlåst: 90,3 procent av effekten i huvudloben, det koherenta tidig-sen-jittret vid den angivna arbetspunkten, tabellvärdena för sinusintegralen och BPSK:s egen spektrala separationskoefficient 2/(3 R_c) vid noll offset. Endast interna korskontroller, inte extern validering: det slutna uttrycket för den bandbegränsade Gabor-bandbredden för BPSK och dess asymptot, och den spektrala separationskoefficienten för BPSK vid offset skilda från noll, båda härledda här och kontrollerade mot kvadratur. Publicerade slutna uttryck: BPSK-R:s sinc-kvadratspektrum och dess 90 procent av effekten i huvudloben (Kaplan & Hegarty, Understanding GPS/GNSS, 3rd ed.); det koherenta jittret vid tidig-sen-kodföljning sigma^2 = B_L d / (2 C/N0) chips^2 (Kaplan & Hegarty, section 8) och den bandbegränsade generaliseringen med dess Gabor-bandbreddsgräns (Betz & Kolodziejski, Generalized Theory of Code Tracking with an Early-Late Discriminator, Part I, IEEE Transactions on Aerospace and Electronic Systems 45(4), 2009); sinusintegraltabellerna av Abramowitz & Stegun (Table 5,1); den spektrala separationskoefficienten som Fouriertransformen av den kvadrerade autokorrelationen (Betz 2001). AltBOC-spektrumet kontrolleras endast för enhetsarea och lobernas läge (uttrycket i Galileo Open Service Signal-in-Space Interface Control Document integrerar till 8 och divideras med det).
Tester
navsignal::band_limited_tests (sine_integral_matches_tables_and_its_limit — Si(1), Si(pi), Si(2 pi) till 1e-12; bpsk_power_in_band_closed_form_matches_textbook_and_numeric — 0,9028 av effekten i huvudloben för…
ValidatedMaximal Doppler för en navigationssatellit i låg jordbana, som dimensionerar inhämtningssökningenleo_signal (max_doppler_hz)
Förmåga
leo_signal::max_doppler_hz: den största Dopplern hos satelliten vid en passage rakt ovanför vid elevationsmasken för en cirkulär bana, v R_E cos(el) / (R_E + h) gånger f / c, utifrån varje förinställnings egen bärvåg och banhöjd; typen leo-signal lägger till oscillator- och användartermer och gör om den till Doppler-bin
Oberoende referens
Publicerade värden: Xona Pulsar X1 maximal Doppler 32 till 34 kHz (Leclère, Marathe & Reid, ION GNSS+ 2025, https://arxiv.org/abs/2509.19551); Iridium Doppler upp till +/-36 kHz (Resilient Navigation and Timing Foundation, Recent PNT Improvements and Test Results Based on Low Earth Orbit Satellites). Jordens rotation utelämnas, vilket flyttar värdet med upp till cirka 2,3 kHz; båda publicerade värdena nås utan 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…
ModelledSignalutformningar för positionering, navigering och tidssynkronisering i låg jordbana: kodföljning, inhämtning, GNSS-kompatibilitet och en bandavvägning för valfritt 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)
Förmåga
Typen leo-signal: parametriserade signalutformningar (band, sändningsbandbredd, ITU-tilldelning; komponenter för inhämtning, data och pilot med BPSK(n), BOC(m,n), MBOC eller platta spektra, effektandelar, FDMA-underbärvågor, kodlängder och datatakter) ur inkompilerade publika förinställningsfiler (Xona Pulsar, Iridium STL, Starlink som opportunistisk signal, CentiSpace, en generisk C-bandsutformning och generiska utformningar för UHF/L/S/C/brett C, var och en med sin käll-URL och opublicerade värden märkta REPRESENTATIVE) eller skrivna direkt i scenariot; per signal den bandbegränsade effektspektraltätheten, effektandelar i bandet, Gabor-bandbredd, kodjitter mot C/N0 och avstånd samt avståndsnoggrannheten, inhämtningens sökrymd, detektionssannolikhet med kvadratisk lag och genomsnittlig seriell och kodparallell inhämtningstid, den spektrala separationskoefficienten in i och från GPS L1 C/A, Galileo E1, GPS L5, Galileo E5a, E5b och AltBOC med försämringen av C/N0, samt toleransen för J/S mot CW, bredband och matchat brus ur SSC-kedjan i spektrumtypen; en bandavvägning mellan jonosfärsfördröjning, fritt rumsdämpning, avståndsnoggrannhet vid lika C/N0 och lika EIRP samt jammertolerans; och kvalitativa formkontroller av en utformning mot en beskriven mätning
Oberoende referens
De kontrollerade slutna uttrycken i de två raderna ovan, falsklarmsidentiteten för kvadratisk lag P_d(snr = 0) = P_fa och Holmes genomsnittliga inhämtningstid, och reduktion till spektrumtypens egen SSC-kedja (samma kod Jammer::ssc). Själva utformningarna är indata: förinställningar märkta REPRESENTATIVE eller WORKSHOP är inte publicerade specifikationer, förbättrad Feher-QPSK, kodskiftnyckling och OFDM-spektra är approximerade, och formkontrollerna jämför former, inte kalibrerade nivåer.
ModelledVattenfall över spektrum med flera band (UHF, L, S, C) med utformade signaler och jammers per bandspectrum (Band::unit_psd,Band::tracked_power_dbw,BandDesign,BandCfg,PanelCfg,SpectrumScenario,Waveform,multi_band_svg); leo_signal (SignalDesign::to_spectrum_band)
Förmåga
Typen spectrum utvidgad bortom L-bandet: band angivna som en förinställd signalutformning (ritad med varje komponent, bandbegränsad till sändningsbandbredden, C/N0 och J/S hänförda till den följda komponenten) eller som en egen bärvåg och modulation; extra vattenfallspaneler över valfritt frekvensområde på samma tidslinje och färgskala; en bredbandig (spärr)jammer vid sidan av CW, smalband, chirp och matchat brus; J/S och effektiv C/N0 per band ur den oförändrade kedjan för spektral separationskoefficient
Oberoende referens
Reduktion till den befintliga spektrumkedjan och anti-jam-ekvationen i jamming-typen (ett band med en komponent ger samma tal som före utvidgningen) och signalspektra i de kontrollerade raderna. Jammereffekter, tidslinje, frontändens bandbredder och de utformade signalerna är indata, och en utformad signal trunkeras vid sitt sändningsband (ingen emission utanför bandet).
Tester
tests/leo_signal_reference.rs (vattenfallet med flera band körs med fyra paneler, störsändarna för UHF, L5-band, S och C nekar var och en bara sitt eget band, och en körning med enkelt band är oförändrad av utvidgningen)…
ValidatedKoefficienter för specifik regndämpning för varje band som en LEO-PNT-länk använderleo_link::itu (p838_coefficients,p838_k_alpha,rain_specific_attenuation_db_km)
Förmåga
ITU-R (International Telecommunication Union, Radiocommunication Sector) P.838-3 ekvationerna (1) till (5): k_H, alpha_H, k_V, alpha_V ur kurvanpassningarna i Tables 1 till 4, de väg- och polarisationsberoende (k, alpha) och den specifika dämpningen k R^alpha; används av regntermen i typen leo-pass
Oberoende referens
ITU-R P.838-3 (03/2005) Table 5, rekommendationens egna tabellerade k_H, alpha_H, k_V, alpha_V, incheckade i tests/fixtures/leo_link/p838_3_table5.csv med PDF-URL och hämtningsdatum. Tabellen är avrundad till sina tryckta siffror, så tröskeln är den avrundningen
Tester
tests/leo_link_reference.rs (p838_coefficients_reproduce_table5_to_its_printed_digits: alla 115 rader i tabell 5, 1 GHz till 1000 GHz, varje koefficient inom 0,6 av sin sista tryckta siffra; sämst observerat 0,51)
ValidatedLångsiktig regndämpning längs snedväg på en länk mellan jord och rymdleo_link::itu (p618_rain_attenuation_db,RainPath)
Förmåga
ITU-R P.618-14 section 2.2.1.1 steps 2 till 10 (sned och horisontell väg under regnhöjden, horisontell reduktion och vertikala justeringsfaktorer, A0.01 och dess skalning till 0,001 % till 5 % av ett genomsnittligt år), med regnhöjden (P.839) och R0.01 (P.837) som indata eftersom motorn inte bär någon av de digitala kartorna; tillämpad per band och epok av typen leo-pass
Oberoende referens
ITU-R Study Group 3 valideringsexempelfil CG-3M3J-13-ValEx-Rev8.3.0 för P.618-14, så som den tabelleras av valideringssidorna i ITU-Rpy, med varje platss regnhöjd enligt P.839-4 ur samma exempel; incheckad i tests/fixtures/leo_link/p618_14_rain_attenuation.csv med URL:erna och hämtningsdatum. Kontrollerar proceduren givet h_R och R0.01, inte kartorna
Tester
tests/leo_link_reference.rs (p618_rain_attenuation_matches_the_itu_validation_examples: 56 fall på fem platser, 14,25 och 29 GHz, 0,001 % till 1 %, inom 1e-4 dB; observerat 5e-6 dB)
ValidatedTroposfärisk amplitudscintillation på en länk mellan jord och rymdleo_link::itu (p618_scintillation_db,wet_refractivity,ScintillationPath)
Förmåga
ITU-R P.618-14 section 2.4.1 steps 3 till 9 (referens-sigma ur N_wet, effektiv väglängd, antennens medelvärdesfaktor, fädningsdjup för 0,01 % till 50 % av tiden), med N_wet som indata eller beräknad ur temperatur, fuktighet och tryck med uttrycken i ITU-R P.453-14; under 4 GHz markerar typen leo-pass värdet som en extrapolering
Oberoende referens
ITU-R Study Group 3 valideringsexempel (CG-3M3J-13-ValEx-Rev8.3.0) för scintillationen i P.618-14, med varje platss N_wet enligt P.453-14 ur samma exempel; incheckade i tests/fixtures/leo_link/p618_14_scintillation.csv med URL:erna och hämtningsdatum. Uttrycket för våt refraktivitet ur temperatur och fuktighet täcks inte av den här raden
Tester
tests/leo_link_reference.rs (p618_scintillation_matches_the_itu_validation_examples: 42 fall på sju platser, 14,25 och 20 GHz, inom 1e-5 dB; observerat 5e-7 dB)
ValidatedByggnadsinträngningsförlust för en LEO-PNT-användare inomhusleo_link::itu (p2109_building_entry_loss_db,BuildingClass); detection (normal_inv_cdf)
Förmåga
ITU-R P.2109-2 Annex 1 ekvationerna (1) till (10) med Table 1: den förlust som inte överskrids med sannolikheten P för traditionella och värmeeffektiva byggnader vid vägens elevation vid fasaden, 80 MHz till 100 GHz; tillämpad per band och epok på en användare inomhus av typen leo-pass (UHF-fallet inomhus)
Oberoende referens
Värdena i ITU-R Study Group 3 arbetsbok för validering av Clutter och BEL, så som de är avskrivna i valideringsskriptet för referensimplementationen i MATLAB (github.com/eeveetza/p2109), incheckade i tests/fixtures/leo_link/p2109_bel.csv med URL och hämtningsdatum. Arbetsboken skriver ut tre decimaler
Tester
tests/leo_link_reference.rs (p2109_building_entry_loss_matches_the_itu_workbook: 568 värden, 28 GHz vid 0 deg och 2 GHz vid 45 deg, båda klasserna, P från 1e-7 till 0,998, inom 0,001 dB)
ValidatedFörstaordningens jonosfärsfördröjning per band, den jonosfärsfria kombinationen och fritt rumsdämpningleo_link::iono (group_delay_m,iono_free_coefficients,iono_free_noise_amplification); leo_link (fspl_db); linkbudget (free_space_loss_db)
Förmåga
Gruppfördröjning 40,3 STEC/f^2 per band; de jonosfärsfria koefficienterna f1^2/(f1^2 - f2^2) och -f2^2/(f1^2 - f2^2) och brusförstärkningen sqrt(a1^2 s1^2 + a2^2 s2^2) för valfritt bandpar; fritt rumsdämpning 20 log10(4 pi R f/c) enligt linkbudget::free_space_loss_db i dess form för kilometer och megahertz
Oberoende referens
IS-GPS-200 section 20.3.3.3.3.2, som anger förhållandet för gruppfördröjning mellan L1/L2 gamma = (77/60)^2 som följer av förstaordningens skalning med 1/f^2, och Friis överföringsformel (Proc. IRE, 1946). Kontrollerar skalningslagarna, inte en sned 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…
ValidatedMaximal Doppler som en stillastående användare ser från en LEO- eller MEO-banaleo_link::geometry (max_static_user_range_rate,DopplerEnvelope,doppler_hz)
Förmåga
leo_link::geometry::max_static_user_range_rate: en sökning över varje banposition och varje användare på satellitens horisont för en cirkulär bana, med jordens rotation, efter den största avståndshastigheten, plus banhastigheten och den största jordfasta satellithastigheten; rapporteras per band som Doppler-omslutningen av typen leo-pass och används som sökfönster vid kallstart i dess lågenergimodell
Oberoende referens
Leclere, Marathe and Reid, Insights into Xona Pulsar LEO PNT: Constellation, Signals, and Receiver Design, ION GNSS+ 2025, arXiv 2509,19551, Table 1 (stillastående mottagare på en sfär med 6371 km, jordens rotation den enda andra effekten): 37751,7 / 33628,5 / 31813,4 / 4018,4 Hz på L1. Täcker cirkulära tvåkroppsbanor
Tester
tests/leo_link_reference.rs (doppler_envelope_reproduces_the_pulsar_paper_table_1: Pulsar IOV 520 km 97 deg, Pulsar FOC polär 1080 km 97 deg, Pulsar FOC lutande 1080 km 53 deg och GPS 20180 km 55 deg; banhastighet…
ModelledEn LEO-PNT-passage och dess länkbudget per band mot de MEO-GNSS-satelliter som är 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)
Förmåga
Typen leo-pass: satelliter ur en utformad passage, element, en TLE via SGP4 eller en Walker-konstellation från constellation-design; per band och epok blickvinklarna, avståndet, avståndshastigheten och avståndsaccelerationen på sluten form (kontrollerade vid varje körning mot centrala differenser och rapporterade), fritt rumsdämpning, EIRP med ett isoflux-, gaussiskt eller platt mönster, en patch-, halvsfärisk eller isotrop användarantenn, gasdämpning enligt ITU-R P.676-10 Annex 2, regn och scintillation enligt P.618, byggnadsinträngningsförlust enligt P.2109, polarisationsfel, systembrustemperatur, C/N0, Doppler och Dopplers ändringstakt, och förstaordningens fördröjning ur en sned TEC enligt Klobuchar eller vertikal TEC skalad med Chapman-andelen under satelliten; jonosfärsfria par med kodbrus vid passagens topp; Galileo- eller GPS-bärvågor ur sina mottagna effekter enligt gränssnittsdokumenten genom samma mottagare
Oberoende referens
Slutna uttryck och självkonsistens: identiteterna för avståndshastighet och avståndsacceleration mot numeriska derivator, att isoflux-förstärkningen tar ut tillväxten i avstånd, läroboksgränserna för polarisationsförlust, den kvalitativa observationen LEO mot GNSS (en klockformad passage på minuter som toppar flera dB över de platta GNSS-bärvågorna på 44-51 dB-Hz). EIRP och mönster är publicerade mottagna effekter omvandlade till en EIRP eller representativa val, gastermen är den ersatta förenklade metoden i P.676-10, och ingenting jämförs med en uppmätt C/N0 i LEO
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…
ModelledNamngivna förinställningar för LEO-PNT-system med angivna källor, och en systemoberoende motorleo_link::presets (SystemPreset,BandPreset,all,by_id,gnss_meo); leo_pass (resolve_bands)
Förmåga
leo_link::presets: generiskt flerbandssystem (UHF, L, S, C), generiskt C-band, Xona Pulsar X1/X5, Iridium STL, Starlink som en opportunistisk signal med enbart Doppler, CentiSpace och en valfri förinställning Celeste IOD, var och en med sin källa märkt PUBLIC (med URL), REPRESENTATIVE eller WORKSHOP, där workshopförinställningen ligger i den valfria förinställningsfilen för Celeste IOD och endast kompileras in om den filen finns; varje band och varje bana kan åsidosättas i ett scenario, och ett scenario får inte namnge någon förinställning alls
Oberoende referens
Avskrift av de angivna publika värdena och en konsistenskontroll: en EIRP som sätts ur en publicerad lägsta mottagen effekt förutsäger den publicerade högsta inom 0,5 dB med ett platt mönster. Det är en kontroll av avståndsspridningen, inte en validering av någon satellits antenn; representativa förinställningar gör inget påstående om ett verkligt system
ModelledPositionsbestämning med låg energi: tid till första positionsbestämning och energi per positionsbestämning mot arbetscykelleo_link::energy (fix_budget,duty_curve,IotReceiver,IotSignal); leo_pass (iot_section)
Förmåga
leo_link::energy och avsnittet [iot] i typen leo-pass: koherent integrering begränsad av Dopplers ändringstakt, icke-koherenta summor med kvadratisk lag till ett detektionströskelvärde, en Doppler-binsökning över banans omslutning för stillastående användare (kall) eller ett stött fönster (varm), parallell eller seriell kodsökning, navigationsmeddelandets tid vid kallstart, energi per positionsbestämning och batteritid över intervall mellan positionsbestämningar, för varje LEO-band och GNSS-signalen
Oberoende referens
Intern konsistens hos en angiven utformningsmodell: varje effekt, tröskel och sökval är indata, och modellen bortser från tvetydighet vid bitkanter, missad detektion och ny inhämtning. Inte jämförd med en uppmätt mottagare
ValidatedGlobalt genomsnittliga vikter för avståndsfel i signalen i rymden för valfri banhöjdleo_navmsg::sisre (sisre_weights,StatsAcc)
Förmåga
leo_navmsg::sisre::sisre_weights: den radiella vikten w_R och den kvadrerade transversella vikten w_AC^2 som medelvärden av cos^2 och en halv sin^2 av siktlinjens nadirvinkel över användare likformigt fördelade på den synliga jordkalotten ovanför en elevationsmask, för valfri banradie, med Simpson-integration; används av varje SISRE-värde i leo-navmsg (vid 510 km w_R 0,46 och w_AC^2 1/2.5)
Oberoende referens
Den publicerade tabellen över SISRE-viktfaktorer av Montenbruck, Steigenberger och 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 och 1/49, GLONASS 0,98 och 1/45, Galileo 0,98 och 1/61, BeiDou MEO 0,98 och 1/54, BeiDou IGSO/GEO 0,99 och 1/126. Samma medelvärde utvärderat vid LEO-radier ger LEO-vikterna; ingen publicerad LEO-tabell är fastlåst, så LEO-värdena är den kontrollerade metoden tillämpad, inte separat kontrollerade
Tester
leo_navmsg::sisre::tests (weights_reproduce_the_published_meo_and_geo_table — GPS 0,979 och 1/48.9, GLONASS 1/45.0, Galileo 0,984 och 1/61.1, BeiDou MEO 1/54.2, geostationär 0,992 och 1/126.2 vid en mask på 0 deg, var och en…
ValidatedAnvändaralgoritmen för sänd efemerid enligt Galileo ICD som bas för ett navigationsmeddelande i LEOleo_navmsg::elements (kepler_point,kepler_frame,ephemeris_at,sat_state)
Förmåga
leo_navmsg::elements::kepler_point: den keplerska utvärderingen enligt Galileo OS SIS ICD (Keplers ekvation, korrektioner av andra harmoniken, jordfast nod) skriven separat från motorns RINEX-utvärderare, som returnerar positionen med breddargumentet, inklinationen och noden som korrektionssystemet längs/tvärs/radiellt byggs på, och tilläggstermerna av Liu et al. 2025
Oberoende referens
RTKLIB 2.4.2-p13 eph2pos ECEF-positioner (en oberoende implementation av samma ICD-algoritm) för verkliga sända poster från BKG/IGS från 2024-09-10, båda incheckade med proveniens i tests/fixtures/rinex_sp3_interop (NOTICE, rinex_ecef_reference.txt, brdc_multignss_slice.rnx). Detta kontrollerar den keplerska användaralgoritmen; korrektionerna längs/tvärs/radiellt som läggs ovanpå täcks av sina egna rader, och Liu-termerna av raden för Liu et al. 2025 med 22 parametrar
Tester
tests/leo_navmsg_reference.rs (the_galileo_user_algorithm_reproduces_rtklib_to_a_millimetre — fyra verkliga Galileo-utsändningsefemerider E10, E19, E24, E25 vid tk = 0, +/-600, +/-1800, +/-3600 s, varje axel inom 1 mm från…
ValidatedCRC-24Q-ramkontroll för navigationsmeddelandet i LEOleo_navmsg::codec (crc24q,encode,decode)
Förmåga
leo_navmsg::codec::crc24q: generatorpolynom 0x1864CFB, begynnelsevärde 0, ingen reflektion, ingen slutlig XOR, kontrollen som Kshanas LEO-ram bär över varje föregående byte
Oberoende referens
CRC-katalogens kontrollvärde för dessa parametrar (reveng.sourceforge.io CRC catalogue, CRC-24/LTE-A: width 24, poly 0x864CFB, init 0, check 0xCDE703), vilka är CRC-24Q-parametrarna i RTCM 10403 och Galileo OS SIS ICD, och exempelramen för meddelandetyp 1005 som är tryckt i RTCM 10403
Tester
leo_navmsg::codec::tests (crc24q_matches_the_catalogue_check_value — 0xCDE703 för ASCII-strängen 123456789; crc24q_matches_the_rtcm_1005_example_frame — de tre kontrollbytena 0x360B98 i RTCM 10403-meddelandetypen…
ValidatedAnpassare av sänd efemerid i LEO och avståndsfel i signalen i rymden mot anpassningsintervall och uppdateringsperiodleo_navmsg::fit (fit_message,lstsq,polyfit); leo_navmsg::truth (TruthOrbit,TruthClock); leo_navmsg (sequence_stats,LeoNavmsgScenario)
Förmåga
Anpassaren och avvägningen i typen leo-navmsg: en referensbana integrerad med zonal J2-J6 eller EGM2008-gravitation till vald grad och med luftmotstånd, och en fri eller styrd klocka med slumpfrö; en Levenberg-Marquardt-anpassning av Galileos keplerska uppsättning på icke-singulära element med svaga apriorivärden, sedan korrektionspolynom längs banan, tvärs banan och radiellt med linjär minsta kvadrat; klockpolynomet anpassat efter avdrag för användarens relativistiska term; SISRE (enbart bana och med klocka) över användningsperioder centrerade i sina anpassningsfönster, mot anpassningsintervall och uppdateringsperiod. Kontrollerad del: anpassningen med 16 parametrar och dess SISRE för enbart bana mot anpassningsintervall på verkliga precisa banor, och den integrerade referensbanan med J2-J6/EGM2008(20, 70)/luftmotstånd mot Orekit 12,2 inom 4,6 mm över 6 h (tröskel 2 cm, samma täthetsindata); korrektionspolynomen, klockanpassningen (fri eller styrd klocka med slumpfrö) och avvägningen för uppdateringsperioden förblir modellerade
Oberoende referens
Verkliga precisa vetenskapliga banor som referens (TU Graz IfG/ITSG operativa reducerat dynamiska banor, fria att använda med angivande av källa; SHA-256-värden i fixturens NOTICE) anpassade med uppsättningen med 16 parametrar över bågar om 20 och 30 min, mot den statistik som Liu et al. 2025 (Remote Sensing 17(16):2894, CC BY 4,0) publicerar för samma satelliter och dagar: RMS längs, tvärs och radiellt var och en inom 1.5x (uppmätt 0,804 till 1,087), SISRE inom 1.5x (uppmätt 0,716 till 0,809) och SISRE-vikter inom 0,005 av dess Table 2 (uppmätt 0,0007); toleranser fastställda före jämförelsen. Kontrollen per komponent ger testet dess skärpa: att nollställa inklinationshastigheten lämnar varje SISRE-kvot inom 1.5x men underkänner kontrollen för tvärs banan. Den enhetliga SISRE-kvoten 0,72 till 0,81 är artikelns egen: dess tryckta SISRE-värden använder vikterna i Table 2 okvadrerade i stället för sin egen Eq. 9, vilken Kshana följer (Montenbruck et al. 2018). Den integrerade referensbanan (zonal J2-J6, EGM2008 till grad 20 och 70, luftmotstånd) stämmer med Orekit 12,2 (CS GROUP, Apache-2.0) och Hipparchus 3,1, propagerade från samma begynnelsetillstånd i samma system med samma täthetsindata, inom 4,55 mm över 6 h (tröskel 0,02 m fastställd före körningen, förhandsregistrering 65e4d46c). Utanför påståendet: korrektionspolynomen, klockanpassningen och avvägningen för uppdateringsperioden, som behåller interna kontroller (en tvåkroppsreferens återvunnen med uppsättningen om 16 parametrar till under 1 mm, och en intern numpy-korskontroll av de exporterade meddelandena på GRACE-FO med dess CLK1B-klocka, som skrevs och kördes av det här projektet och inte är en oberoende referens)
ModelledUppdatering av LEO-navigationsmeddelandet mitt under passagen med en kontinuitetskontroll vid bytetleo_navmsg (LeoNavmsgScenario::midpass,worst_case_jump,elevation,geodetic_to_ecef)
Förmåga
Analysen midpass-update i leo-navmsg: den högsta passagen över en användare inom ett sökspann, meddelanden enligt ett globalt schema med användningsperioder centrerade i sina anpassningsfönster, och vid varje byte hoppet i 3D-position, klockhoppet, hoppet i användarens pseudoavstånd, det största hoppet över varje synlig siktlinje (sluten form över nadirkonen), avståndsfelet före och efter, och PASS/FAIL mot ett tröskelvärde
Oberoende referens
Intern konsistens (hoppidentiteten och konbegränsningen mot provtagning med råstyrka). Tröskelvärdet är indata; inget publicerat kontinuitetskrav för LEO är fastlåst
Tester
leo_navmsg::tests::a_mid_pass_update_is_continuous (varje växlings avståndshopp är lika med ändringen i avståndsfel, och en korrigerad anpassning på 300 s uppdaterad var 150 s klarar en tröskel på 5 cm)…
ModelledDokumenterad binär kodning av LEO-navigationsmeddelandet med en budget för kvantiseringsfelleo_navmsg::codec (encode,decode,write_payload,read_payload,field_table,quantisation_budget)
Förmåga
leo_navmsg::codec: Kshanas egen ram (preamble, version, modell, längd, nyttolast, CRC-24Q) för de fyra efemeridmodellerna, klockpolynomet, SVID, issue of data, band, hälsa, en Klobuchar-uppsättning, NeQuick-G-koefficienter och UTC-parametrar, varje fält med angiven bredd och steg (field_table), kvantisering med vägran utanför intervallet, och en budget för den största förändringen i position och klocka som en förändring med ett halvt steg i varje fält ger över giltighetsfönstret
Oberoende referens
Identiteter för rundtur och själva budgeten. Formatet är Kshanas eget, modellerat efter de publicerade meddelandekomponenterna och Galileos ICD-fältuppsättning; det är inte bitlayouten för Celeste eller något annat system (ingen är publik), så det finns ingen extern layout att kontrollera 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…
ModelledExporter av LEO-navigationsmeddelanden i RINEX-4-stil och som CSVleo_navmsg::text (rinex_export,rinex_import,csv_export,csv_import,calendar,from_calendar)
Förmåga
leo_navmsg::text: ett block i RINEX-4-stil (> EPH-posthuvud, rad för satellit och epok med tre klocktermer, D19.12-rader för sänd bana) med systembokstaven L och posttyperna KP16, KRAC, LU22 och APOL, märkt i varje huvud som ett Kshana-tillägg som inte är en del av RINEX 4,02, och en CSV-tabell med ett standardkolumnschema och förinställda scheman, var och en med en importerare
Oberoende referens
Rundturer och kalenderaritmetiken. RINEX 4,02 definierar inga navigationsposter för LEO (IGS RINEX 4,02), så layouten är ett dokumenterat tillägg med arXiv 2401,17767 angiven som tidigare arbete; ingen extern läsare av den finns att kontrollera 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 (varje modell inom 0,1 mm efter textblocket, CSV exakt)
ValidatedLiu et al. 2025 efemeridmodell för LEO med 22 parametrar och dess anpassning på verkliga precisa banorleo_navmsg::elements (kepler_point,Liu22Extra); leo_navmsg::fit (fit_message,fit_kepler,initial_params,formal_sigma); leo_navmsg::truth (TruthOrbit)
Förmåga
varianten Liu22 av leo_navmsg::elements::EphemerisModel, utvärderad av kepler_point med Liu22Extra: uppsättningen med 16 parametrar plus en hastighet för halva storaxeln a_dot, en hastighet för medelrörelsen n_dot som ingår som n = sqrt(mu/A0^3) + dn + n_dot tk, avskriven ur artikelns Eq. 1 (anpassningsjämförelsen beror inte på denna skalkonvention, så betydelsen av ett sänt nDot-värde är inte kontrollerad här), och radieharmonikerna Crs1, Crc1, Crs3, Crc3 en och tre gånger per varv på det okorrigerade breddargumentet. Dess anpassning med leo_navmsg::fit::fit_message tar artikelns Section 2,3 start och estimator (varje korrektion startar på noll; vanlig minsta kvadrat utan apriorivärden; artikelns tak på 100 iterationer), men stannar enligt Kshanas regel för parameterkonvergens (varje steg under 1e-3 av sin formella sigma) i stället för artikelns regel om en RMS-ändring under 0,1 mm. Anpassad över bågar om 20 och 30 minuter av en tabellerad precis bana
Oberoende referens
Uppmätt: TU Graz IfG/ITSG operativa reducerat dynamiska banor (fria att använda med angivande av källa; SHA-256-värden i fixturens NOTICE) för GRACE-A, GRACE-C, Sentinel-2A och Sentinel-6A är referensen, anpassade över bågar om 20 och 30 min, och jämförda med raderna för 22 parametrar (a_dot, n_dot, Crs3, Crc3, Crs1, Crc1) i Tables 4, 5, 6 och 8 i Liu, Su, Xie, Zhou och Qu (2025), Remote Sensing 17(16):2894, doi 10.3390/rs17162894 (CC BY 4,0; tal angivna med källa, inte införda i förvaret). Trösklar fastställda före den första jämförelsen: RMS längs, tvärs och radiellt var och en inom 1.5x tvåsidigt, och SISRE inom 1.5x, för varje satellit och båda båglängderna. Omkörningen i omgång 2 förhandsregistrerades (aa559785) före motorändringen och före det att de undanhållna banorna hämtades: anpassningen enligt artikelns Eq. 1 och Section 2,3, plus två nya undanhållna dagar per satellit mot samma tryckta värden. Uppmätt: varje kvot för artikelns dagar 0,755 till 1,138, och varje undanhållen kvot 0,683 till 1,186. Redovisat: kvoterna längs banan för 20 min i den första körningen, 1,71 (Sentinel-2A) och 1,86 (Sentinel-6A), var kända före omkörningen. De lägsta undanhållna SISRE-kvoterna ligger nära den nedre gränsen 0,667 eftersom artikelns tryckta SISRE använder vikterna i Table 2 okvadrerade (se raden för anpassaren med 16 parametrar). Förhandsregistreringen återgav artikelns stoppregel fel (artikeln stannar vid en RMS-ändring under 0,1 mm); den förhandsregistrerade regeln om parameterkonvergens behölls. Mutation: att återställa nollcentrerade apriorivärden ger för Sentinel-6A 20 min längs banan 1,08 mot 0,70 cm (1,54), vilket underkänns. Granskarens sond: konventionen före 0.30 (en faktor 1/2 på n_dot) lämnar varje värde oförändrat, så jämförelsen begränsar funktionsrummet för modellen med 22 parametrar och kvaliteten på dess anpassning, inte konventionen för n_dot. Utanför påståendet: ATOMIC ECEF-polynomet och den syntetiska modelljämförelsetabellen för fem höjder, som har sin egen MODELLED-rad
Tester
tests/leo_navmsg_fit_real_orbit_oracle.rs::liu22_model_matches_the_published_sisre (fyra artikeldagar: längs, tvärs, radiellt och SISRE-kvoter 0,755 till 1,138 av Liu m.fl. 2025, inom 1.5x)…
ModelledATOMIC:s ECEF-polynom utan klocka och den syntetiska modelljämförelsen för LEO på fem höjderleo_navmsg::elements (EcefPoly,ephemeris_at); leo_navmsg (liu_comparison,LIU2025_TABLE)
Förmåga
varianten EcefPoly av leo_navmsg::elements::EphemerisModel: ett ECEF-polynom per axel utan klocktermer, den relativistiska termen ur -2 r.v/c^2, poängsatt mot en styrd klocka. Även modelljämförelseanalysen (liu_comparison över LIU2025_TABLE), som anpassar modellen med 22 parametrar vid artikelns fem höjder över bågar om 20 minuter av en bana integrerad av Kshana och skriver ut resultatet bredvid den publicerade SISRE
Oberoende referens
Fakta om ATOMIC-modellen ur InsideGNSS (polynom av 6:e ordningen, ungefär en minuts giltighet, uppdatering var 30 s, klocka styrd, 24 cm klockfel). Det är beskrivande fakta utan publicerade tal att jämföra mot. Tabellen för fem höjder skriver ut SISRE enligt Liu et al. 2025 (8,88, 6,21, 2,87, 2,11 och 0,75 cm vid 320, 475, 786, 966 och 1336 km över en båge om 20 minuter) bredvid Kshanas anpassning på sin egen integrerade bana (4,25, 2,87, 2,20, 1,25 och 0,51 cm; kvoter 0,46 till 0,77), inte fastlåst, eftersom artikeln anpassade verkliga precisa banor och referenserna skiljer sig. Modellen med 22 parametrar och dess anpassning är i sig kontrollerade mot verkliga banor i raden Liu et al. 2025 efemeridmodell för LEO med 22 parametrar och dess anpassning på verkliga precisa banor. Revision 0,30: tabellens värden flyttades med anpassningen enligt artikelns konvention (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)
ValidatedTjänster för jonosfär med en frekvens och UTC i ett navigationsmeddelande för LEOleo_navmsg::services (klobuchar_delay_m,effective_ionisation_level,system_to_utc)
Förmåga
leo_navmsg::services: den sända Klobuchar-fördröjningen vid valfri bärvåg (motorns L1-modell skalad med (f_L1/f)^2), den effektiva joniseringsnivån Az = ai0 + ai1 mu + ai2 mu^2 enligt NeQuick-G med reglerna för alla noll och [0, 400] sfu, och systemtid till UTC med ICD:ns tre skottsekundsfall
Oberoende referens
GNSSTk 15.3.1 (ARL:UT, LGPL-3.0, incheckning 55ea3344, körd som ett separat program genom en testrigg; ingen GNSSTk-kod har förts in i förvaret): getIonoCorr för KlobucharIonoNavData vid L1, L2 och L5, getEffIonoLevel för NeQuickIonoNavData för Az med reglerna för alla noll och [0, 400] sfu, och getOffset för GPSLNavTimeOffset för UTC-driften, inom 1e-3 m, 1e-6 sfu och 1e-9 s; samt ERFA via pyerfa 2.0.1.5 (BSD-3), som härleder UTC ur IERS tabell över skottsekunder, för ICD:ns tre skottsekundsfall över de verkliga skottsekunderna 2015-06-30 och 2016-12-31 inklusive avläsningen 23:59:60, inom 1e-9 s (GNSSTk implementerar inte ICD:ns dagslängdsregel i fall (b), så den användes inte där, så som det är skrivet i förhandsregistreringen). Indata är de verkliga huvudkoefficienterna i IGS BRDC. Förhandsregistrerad (6a66994b; ändring 88807a7e incheckade en delmängd om 21 602 rader av skottsekundsrutnätet före någon Kshana-värde jämfördes). Integrationen av elektrontätheten i NeQuick är inte implementerad, och ingen korrektion görs för en LEO-satellit som flyger inne i jonosfä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…
ValidatedDoppler som en markmottagare måste hantera från en navigationssatellit i LEOleo_fusion::geom (EarthOrbit); leo_fusion::doppler (range_rate,doppler_envelope)
Förmåga
Exakt avståndshastighet för en satellit vars jordfasta position och hastighet kommer från en tvåkroppsbana med den sekulära J2-driften och jordens rotation (leo_fusion::geom::EarthOrbit::state, hastigheten den exakta tidsderivatan av positionen), omräknad till Doppler vid en bärvåg; den största absoluta Dopplern, Dopplers ändringstakt och jerk ovanför en elevationsmask över ett fönster (leo_fusion::doppler::doppler_envelope), rapporterad per LEO-system av typen leo-pvt i doppler-läge
Oberoende referens
Publicerade värden återgivna ur den angivna banan och bärvågen: Iridium Doppler upp till plus eller minus 36 kHz (Resilient Navigation and Timing Foundation, Recent PNT improvements and test results based on LEO satellites) och Xona Pulsar X1 maximal Doppler 32 till 34 kHz (Leclère, Marathe and Reid, ION GNSS+ 2025, arXiv:2509,19551). Värdet för Iridium är en avrundad övre gräns, därav tröskeln på 5%. Dopplers ändringstakt och jerk rapporteras men är inte kontrollerade: den modellerade jerken vid en passage rakt ovanför för Pulsar X1 är cirka 1,0 Hz/s^2 mot det publicerade 1,26
Tester
tests/leo_doppler_reference.rs (iridium_doppler_reaches_the_published_36_khz: en satellit vid 780 km och 86,4 deg flugen under ett dygn vid 1621 MHz över fyra latituder, maximum inom 5 % av 36 kHz…
ModelledPositionsbestämning ur LEO-Doppler, med en och flera satelliter, med tillstånd för klockdrift och hastighetleo_fusion::doppler (solve,formal_covariance,single_pass_geometry,offset_site,closest_approach); leo_fusion::pvt_kind (run_doppler)
Förmåga
Gauss-Newton-positionsbestämning i batch ur avståndshastighet med analytiska partialer (d rho_dot / d r = -(I - u u^T)(v_s - v_u)/rho, d/dv = -u, d/d drift = 1), en konstant användarhastighet som tillval, en höjdspseudomätning för en användare på ytan, dämpade steg; den formella kovariansen vid referensen; projektioner längs banan, tvärs banan och vertikalt; noggrannheten för en enskild passage mot användarens förskjutning tvärs banan; tiden för närmaste passage. Läget doppler i typen leo-pvt lägger till felet mot fönsterlängd och ett läge med enbart Doppler för opportunistiska signaler (förinställningen starlink-sop)
Oberoende referens
Intern konsistens: återvinning utan brus, den kinematiska identiteten rho_ddot = (|v|^2 - rho_dot^2 + d.a)/rho deriverad numeriskt, noll Doppler vid närmaste passage, spegellösningen för en enskild passage, och slumpmässiga fel mot den formella kovariansen. Värdet för Starlink av Kozhaya, Saroufim och Kassas (NAVIGATION 72(1), 2025: cirka 2 m på 20 s med tre satelliter) är endast en jämförelse: den modellerade mottagaren, med en perfekt efemerid och varje fel samlat i en Doppler-sigma på 30 Hz, är flera gånger mindre noggrann över samma fönster, och artikelns mottagare och mätfrekvens återges inte
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: till 1 mm och driften till 1e-6 m/s…
ModelledGemensam positionsbestämning med pseudoavstånd från GNSS och LEO med biaser mellan system och felmodeller per signalleo_fusion::joint_pvt (solve,dop,code_sigma_dll_m,SystemClock); leo_fusion::system (SystemCfg,System); leo_fusion::pvt_kind (run_joint)
Förmåga
Viktade Gauss-Newton-positionsbestämningar med minsta kvadrat över valfri blandning av system, en mottagarklocka per system (biasen mellan systemen skattas tillsammans med positionen) eller en känd sänd offset på referenstidsskalan; sigma per mätning levereras av anroparen, som standard motorns termiska brus för kodföljningsslingan (navsignal::dll_code_jitter_chips) vid C/N0 för elevationen, kombinerat med avståndsfelet i signalen i rymden; ovägd DOP (GDOP, PDOP, HDOP, VDOP, TDOP) i det lokala geodetiska systemet, formella sigma för öst-nord-upp och sigma för biaserna; det gemensamma läget i leo-pvt jämför positionsbestämningar med enbart GNSS, enbart LEO och fusionerade, och sveper DOP mot antalet LEO-satelliter som läggs till
Oberoende referens
En handhärledd DOP för fyra satelliter (en satellit i zenit och tre på horisonten med 120 deg mellan sig, vars normalmatris inverteras för hand), den strukturella identiteten att ett system med egen klocka och en satellit inte tillför någon geometri, återvinning utan brus av position, klocka och bias, och slumpmässiga fel mot kovariansen. Endast interna kontroller; inte jämförda med en mottagares utdata. Extern jämförelse i 0,30, ett fynd (förblir MODELLED): på en IGS-dag med flera GNSS (ABMF 2018-05-13, GPS och Galileo C1C, sänd efemerid, Klobuchar) stämmer biasen mellan systemen med RTKLIB v2.4.2-p13 rnx2rtkp (mediandifferens -0.11 ns efter korrektionen av sänd gruppfördröjning i 0,30, -0.35 ns före; tröskel 1 ns), men endast 93,6 % av 280 epoker (93,2 % före korrektionen) ligger inom 3 m från koordinaten i ITRF2020 mot de förhandsregistrerade 95 %. RTKLIB självt når 88,2 % på samma data, så tröskeln ligger bortom vad positionsbestämning med sänd efemerid på en frekvens klarar på den här stationen och dagen, snarare än en avvikelse hos lösaren; jämförelsetestet är incheckat som ignorerat. Omgång 2 i 0,30, strängare indata vid den oförändrade tröskeln 3 m / 95 % / 1 ns, ett fynd (förblir MODELLED): med det jonosfärsfria paret Galileo E1/E5a (förhandsregistrerat 6927e039) ligger 79,9 % av epokerna inom 3 m (RTKLIB 67,9 %); med precisa banor, klockor, satellitantennförskjutningar och kodbiaser från CODE MGEX (förhandsregistrerat 7d8c3597) 94,2 % (RTKLIB 94,1 %), och biasen mellan systemen skiljer sig från RTKLIB med -1.03 ns eftersom RTKLIB:s enkla läge bortser från satellitantennförskjutningar (+0,04 ns när båda utelämnar dem)
ModelledKonvergens vid precis punktpositionering med enbart GNSS och med LEO-förstärkningleo_fusion::ppp (run,PppScenario,LI_2019)
Förmåga
Ett utvidgat Kalmanfilter för PPP med flyttalsosäkerhet på jonosfärsfri kod och fas: statiska koordinater, en vit mottagarklocka, en bias mellan system per extra system, en slumpvandrande zenitfördröjning från våt atmosfär avbildad med 1/sin(elevation), en flyttalsosäkerhet per satellitbåge som läggs till vid uppgång och tas bort vid nedgång, och det precisa fel i bana och klocka som är gemensamt för en satellits kod och fas, behandlat som en korrelerad uppdatering med två rader i en Joseph-stabiliserad form; mätningar simulerade ur samma modell; konvergenstid (fel under trösklarna till körningens slut), felkurvor och positionens NEES medelvärdesbildat över körningen för enbart GNSS och varje LEO-fall, körd som typen leo-ppp
Oberoende referens
Chi-kvadrattestet för NEES är en intern konsistenskontroll (referens och filter delar modellen). Trenden jämförs med Li et al., 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 förkortat till 7,0, 3,2, 2,1 och 1,3 min med 60, 96, 192 och 288 LEO-satelliter. Det medföljande scenariot ger 7,4, 4,8, 3,2, 2,7 och 2,3 min med sina egna representativa skal om 1000 km och 60 deg, brus och stationer; artikelns konstellationer, brus och definition av konvergens återges inte, så detta är en MODELLED konsistens i trenden (monoton förkortning, den största konstellationen under en tredjedel av tiden med enbart GNSS), inte en validering
Tester
leo_fusion::ppp::tests (the_filter_is_consistent_over_monte_carlo_seeds: 24 seeds, körningsmedelvärde av NEES i [2,4, 3,6] och minst 75 % av epokerna inom det tvåsidiga 95 %-iga chi-två-bandet; uppmätt med 150 seeds, medel…
ValidatedPositioneringsnoggrannhet för 5G icke-terrestriska nät utifrån signalbandbreddleo_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)
Förmåga
Cramér-Rao-gränsen för ankomsttid ur den effektiva (Gabor-)bandbredden i rot ur medelkvadrat, c/(2 pi beta sqrt(2 (C/N0) T)), för ett platt OFDM-spektrum (beta = B/sqrt(12)), ett bandbegränsat BPSK-spektrum (täljare på sluten form) eller valfritt spektrum med kvadratur, och på frekvensen hos en komplex ton, sqrt(3/(2 pi^2 (C/N0) T^3)); positionsbestämningar med ankomsttid i nedlänken med en okänd mottagarklocka och en positionsbestämning med Doppler från en enda satellit över en passage i 3GPP n256 MSS S-bandet, körda som typen ntn-positioning
Oberoende referens
Publicerade räknade värden (P1): Bachl, Lei och Nabeel, arXiv:2608,10270 (2026), gränser för en enda SSB i NR NTN återgivna ur SSB-kartan i 3GPP TS 38,211 genom Kshanas egna numeriska funktioner (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, var och en inom en halv enhet av den sista tryckta siffran); effektiva bandbredder för BPSK-R i Betz 2001 Table 1 (1.128/3.477 mot 1.1/3.5 MHz, kompletterande); kovarianserna för positionsbestämningarna med ankomsttid och Doppler stämmer med numpy 2.4.6 numpy.linalg.inv på den exporterade geometrin (P2; 5e-15 och 1.2e-5 relativt, trösklar 1e-5 och 1e-3). Förhandsregistrerad (9f2875db; del C 0d66dccd). Motorns positionsbestämning joint_pvt::formal_sigma_enu (gränsen utvärderad vid den sanna positionen, inte den brusiga positionsbestämningen) skrevs efter att den första körningen med 200 kHz misslyckades vid 6.5e-5 och kördes om vid den oförändrade toleransen. Formerna för platt spektrum och komplex ton som scenariot kör (gabor_bandwidth_flat_hz, doppler_crb_sigma_hz) når kontrollen P1 genom identitetsenhetstester i craten. Gränser för en kanal utan flervägsutbredning, inte uppnådd noggrannhet. Revision 0,30: ntn-5g-positioning toa_median_sigma_3d_m 2,0903959 -> 2,0903962 m (NR 5 MHz) och 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…
ModelledLEO-assisterad tidsöverföring till UTC mot C/N0 och mottagarens oscillatorleo_fusion::timing (simulate,utc_offset_s,system_to_utc_s); leo_fusion::pvt_kind (run_timing)
Förmåga
Klockmätningar från varje LEO-satellit i sikte vid en känd position, kombinerade med inversvarians ur pseudoavståndets brusmodell, filtrerade av ett Kalmanfilter med två tillstånd (fas, frekvens) vars processbrus är oscillatorklassens vita frekvensbrus och frekvensbrus med slumpvandring (slot_timing::ClockNoise, clock_state::ClockClass; glidvariansen för holdover::coast_phase_variance), en klockreferens med slumpfrö ur samma nivåer, och uttrycket i IS-GPS-200 section 20.3.3.5.2.4 för systemtid till UTC med en osäkerhet i sänd offset tillagd som en bias per körning; läget timing i leo-pvt sveper oscillatorer och förskjutningar i C/N0
Oberoende referens
Intern konsistens: det publicerade offsetuttrycket utvärderat för hand, det normaliserade felet över 40 frön, och golvet som sätts av osäkerheten i offseten. NIST:s värde för Iridium-mottagare för tidssynkronisering med en miniatyratomklocka (under 40 ns från UTC(NIST) över 40 dygn) är endast en jämförelse; det medföljande Iridium-scenariot ger 10 till 11 ns RMS vid nominell effekt med sitt representativa avståndsfel på 5 m. Flickerfrekvensbrus och jonosfärsfördröjning simuleras inte
ValidatedLEO-täckning och geometrisk försämring av precisionen för användare vid polerna och i Arktis 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)
Förmåga
Satelliter i sikte och median för PDOP, HDOP och VDOP med tillgänglighet mot latitud, över samplade longituder och epoker, för enbart MEO-GNSS-systemen, enbart LEO-systemen och alla tillsammans, varje system med sin egen mask och klockmodell, körd som läget polar i leo-pvt; banorna är elementuppsättningar för SGP4/SDP4 vid svepets epok (2026-01-01T00:00:00 UTC i läget polar) förda till det jordfasta systemet på den kontrollerade vägen för jordbanor (IAU 2006/2000A, UT1 = UTC, ingen polarrörelse)
Oberoende referens
Orekit 13.1.8 (Apache-2.0) med Hipparchus 4.0.3: motorns GCRS-tillstånd roterade till ITRF av Orekit (IERS 2010), WGS-84 TopocentricFrame-synlighet mot varje systems mask, org.orekit.gnss.DOPComputer för en okänd klocka och NumPy 2.4.6 numpy.linalg.inv (P2) för flera; med vägen kontrollerad mot python-sgp4 och ERFA (raden 'One Earth-orbit path'). Trösklar fastställda före körningen (förhandsregistrerade 72ea9eb0; T2 och T3 är trösklarna i omgång 2 i 0,30). Steget TEME -> GCRS fruset vid J2000 gör testet rött (4739 fel). Endast geometri; ingen scintillation, terräng eller signaleffekt. VDOP för GNSS stiger mot polen (1,20 vid ekvatorn till 1,51 vid 89,9 deg för GPS och Galileo i det medföljande scenariot) medan ett nästan polärt LEO-skal konvergerar där. Historik: omgång 2 (3254d456) stämde på tabellerade tvåkroppstillstånd; det fullständiga påståendet i omgång 1 för D8 mot Orekits egen TLE-propagering (e947e69d) var ett fynd, Orekits SDP4 vid e = 0 och dess IERS 1996 TEME, fastlåst
Tester
tests/leo_polar_coverage_on_path_orekit_oracle.rs (konfigurationer A och B, 4040 sampel: jordfasta positioner inom 6.8e-5 m, tröskel 0,2 m; antal i sikte identiska på 4040/4040; median-DOP inom 2.3e-11 relativt, tröskel…
ModelledNamngivna LEO-PNT-system som valfria datainställningar, var och en med sin källaleo_fusion::presets (all,by_id,cn0_range_dbhz,noise_density_dbw_hz); leo_fusion::system (SystemCfg::build)
Förmåga
Systemoberoende indata: varje system är Walker-skal, explicita element eller en GNSS-förinställning, en signal (bärvåg, chipptakt, bandbredd, mottagen effekt eller intervall för C/N0), en SISRE, en Doppler-sigma och en klockmodell; förinställningar fyller endast i det som ett scenario lämnar ute, en fil vardera med källor märkta PUBLIC (med URL), WORKSHOP eller HÄRLEDD och de opublicerade värdena förtecknade som representativa: Xona Pulsar X1/X5, Iridium STL, Starlink som opportunistiska signaler, CentiSpace, ett representativt system i C-bandet, efemeridmodellen ATOMIC utan klocka, och en förinställning härledd ur en workshop i den valfria förinställningsfilen för Celeste IOD, som hålls tillbaka genom att filen och dess scenarier raderas
Oberoende referens
Avskrift av de angivna publika värdena, kontrollerad för struktur (varje publik källa har en URL, Walker-mönster delar jämnt, C/N0 ur mottagen effekt över kT vid 290 K), inte mot någon extern referens. Representativa värden namnges i varje förinställning och är illustrativa
ModelledEtt LEO-PNT-system från början till slut: signalutformning, länkbudget för passagen, navigationsmeddelande och fusionerad positionsbestämning, där varje stegs utdata lämnas vidare till nästaleo_pnt_chain (LeoPntChainScenario); leo_pass (BandCfg::signal,design_tracking); leo_navmsg (LeoNavmsgScenario::broadcast_sisre); leo_fusion::pvt_kind; leo_fusion::ppp
Förmåga
Typen leo-pnt-chain: en utformning i leo-signal (publik förinställning eller direkt i scenariot) sätter centrum, bandbredd, chipptakt och EIRP-fördelning för ett band i leo-pass; passagen ger C/N0 för den följda komponenten och bandbegränsat kodjitter per epok; en linje enligt minsta kvadrat för C/N0 i sin(elevation), SISRE för meddelandet i leo-navmsg (anpassad vid passagesatellitens bana, plus en angiven term för banbestämning i kvadratisk summering) och utformningens bärvåg och chipptakt går till varje LEO-system i en gemensam positionsbestämning i leo-pvt och, som tillval, till LEO-fallen i leo-ppp; varje överlämning rapporteras med sitt värde och sin enhet
Oberoende referens
Självkonsistens hos överlämningarna: varje värde som förs vidare är lika med det uppströms stegets egna utdata, och att ändra en uppströms indata flyttar varje nedströms värde som beror på den. Stegen behåller sina egna etiketter; kedjan tillför ingen fysik och ingen extern referens
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 starkare EIRP, ett längre anpassningsintervall och en större banbestämningsterm var och en…
ModelledDetektering av spoofing med LEO-Doppler och konsistens i passagegeometrinleo_link::spoof (range_rate_position_gradient,line_of_sight,fll_frequency_jitter_hz,doppler_consistency_window,doppler_consistency); leo_pass (SpooferCfg,spoof_section)
Förmåga
Avsnittet [spoofer] i typen leo-pass: en spoofer förfalskar, självkonsistent i avstånd och avståndshastighet, de signaler som syns vid en påstådd position som hoppar och/eller skjuts bort från den sanna efter en start (per LEO-band och för MEO-GNSS-signalen); mottagaren förutsäger varje avståndshastighet ur den sända banan och en oberoende apriori position och hastighet, och testar de uppmätta avståndshastigheterna med en generaliserad chi-kvadratstatistik enligt minsta kvadrat över ett fönster av epoker (klockdriften antingen en störparameter eller med en apriori), på GNSS-kanalerna, LEO-kanalerna och alla kanaler, med termiskt brus i frekvenslåsningsslingan (FLL) ur C/N0 (Kaplan & Hegarty 2006, section 5.6.2); detektionssannolikhet ur den icke-centrala chi-kvadratfördelningen vid en angiven falsklarmssannolikhet, detektion förklarad vid en angiven sannolikhet för missad detektion
Oberoende referens
Slutna uttryck och identiteter, inte en extern mätning: gradienten av avståndshastigheten mot en central differens, informationsformens statistik mot den täta kovariansformen, en ren klockdrift som ger noll, en push förklarad av aprioriinformationen som ger högst |dx|^2/sigma_p^2, statistiken kvadratisk i ett hopp. Inget detektionsvärde jämförs med en uppmätt attack; spoofern är idealiserad (ingen signatur i effekt, ankomstvinkel eller korrelationstopp)
ModelledDetektering av spoofing genom konsistens mellan band i en LEO-signal med flera bandleo_link::spoof (cross_band_step); leo_pass (spoof_section: pairs,cross_band)
Förmåga
För varje LEO-satellit och par av avståndsmätande band bildar avsnittet [spoofer] den geometrifria pseudoavståndskombinationen, tar bort mottagarens jonosfärsmodell och testar dess steg från epok till epok mot de två bandens kodbrus och en angiven tolererad omodellerad jonosfärstakt (tvåsidigt gaussiskt, exakt detektionssannolikhet); en spoofer som förfalskar vissa band och inte andra, eller varje band utan jonosfären, syns vid sin start; en som förfalskar varje band och simulerar jonosfären syns inte, vilket resultatet anger
Oberoende referens
Identiteter: startsteget för en jonosfärsfri spoofer är lika med parets modellerade skillnad i jonosfärsfördröjning, tröskeln är den tvåsidiga normalkvantilen gånger stegets standardavvikelse plus takten som gräns. Mottagarens jonosfärsmodell är motorns, så den autentiska residualen är noll i medel per konstruktion; ingen extern referens
ModelledJonosfärssondering: sned TEC ur dubbelbandsfördröjningen i en LEO-passageleo_pass (IonoFreePair::geometry_free_stec_tecu,geometry_free_stec_sigma_tecu); leo_link::iono::geometry_free_stec_tecu
Förmåga
För varje bandpar hos en leo-pass-satellit anger rapporten det sneda totala elektroninnehåll som den geometrifria kodkombinationen återvinner vid passagens topp, (P2 - P1) f1^2 f2^2 / (40,3 (f1^2 - f2^2)), och dess 1-sigma ur de två bandens termiska kodbrus, så att varje LEO-PNT-utformning med flera band kan vägas som en jonosfärssond
Oberoende referens
Identiteten för förstaordningens dispersion, exakt per konstruktion mot motorns egen förstaordningsfördröjning (vars skalning med 1/f^2 är VALIDATED mot IS-GPS-200 i sin egen rad); precisionen är endast termiskt kodbrus, utan flervägsutbredning eller biaser mellan frekvenser. Omgång 2 i 0,30, uppmätt (förhandsregistrerad 5e795f93), ett fynd (förblir MODELLED): CODE:s globala jonosfärskarta CODG1330.18I mot ABMF C1C/C2W-kod med CODE:s biaser ger 33 av 36 bågmedelvärden inom 3 TECU (sämst +6,84 TECU på en kvällsbåge; RMS per epok 3,95 TECU), mot en tröskel om varje båge; inte kontrollerad
Tester
tests/leo_resilience_verticals.rs (the_geometry_free_tec_is_the_pass_slant_tec: är lika med överflygningens sneda TEC vid toppen till 1e-9 och dess sigma är lika med RSS-kodbruset över 40,3 (1/f1^2 - 1/f2^2))…
ValidatedDatumkovarians för månsystemet med stationerna skattade, mot utökad precision med 50 siffrorlunar_frame_campaign,fim
Förmåga
Datumkovariansen med sju parametrar enligt Helmert för scenariot lunar-frame-campaign med jordstationerna skattade (station 1 förankrad), så som lunar_frame_campaign beräknar den i binary64: den gemensamma Fisher-informationen för station och fyr ackumulerad ur fördröjningsjakobianen, stationsblocket marginaliserat med ett Schur-komplement genom en spektral Jacobi-invers, H = AᵀSA bildad med Helmert-designen och inverterad spektralt. Problemet är dåligt konditionerat per konstruktion (konditionstal för Helmert 2.1e8 till 2.3e8, konditionstal för den gemensamma informationen 1.6e12 till 3.0e13): en relativ ändring på 1e-9 i Schur-korrektionen flyttar datumsigmorna med upp till 28 %. Rapporteras: de sju datumsigmorna, konditionstalet för Helmert och den svagaste riktningen. PÅSTÅENDE, SNÄVAT: motorns datumsigma och konditionstal ligger inom det apriori värsta-fall-felgränsen för en bakåtstabil pipeline med dubbel precision på det här problemet; detta påstår inte att de är så noggranna som dubbel precision tillåter (en faktoriseringsväg är ungefär tusen gånger noggrannare på samma indata, och den valfria kvadratrotslösaren ungefär tio miljoner gånger), och den svagaste riktningen är kontrollerad endast där dess tröskel ligger under en rät vinkel (kontrollen med fasta stationer)
Oberoende referens
mpmath 1.3.0 (BSD-3-Clause) med 50 värdesiffror, självkontrollerad vid 80 (överensstämmelse 1.1e-38 eller bättre), på motorns incheckade jakobian, vikter och Helmert-design: mpmaths egen LU-lösning för Schur-komplementet, dess invers för H och dess egenuppdelning med Jacobi (P2, ett oberoende numeriskt bibliotek). Förhandsregistrerad 804662d5 innan fixturen fanns, med trösklar ur en bakåtfelsformel av första ordningen: konstanten (3n+1)n + m gånger enhetsavrundningen (Higham, Accuracy and Stability of Numerical Algorithms, Theorem 10,4, formen Tier B), gånger varje storhets exakta förstaordningskänslighet för den gemensamma informationen, Schur-komplementet och H. Uppmätt: datumsigma inom 4.8e-6 den 2026-03-18 (trösklar 9.6e-2 till 2.2e-1), 9.7e-6 den 2024-01-01 (trösklar 2.8e-2 till 6.9e-2) och 2.0e-14 med fasta stationer (trösklar 1.0e-11 till 2.8e-7); konditionstal inom 4.6e-6, 1.3e-5 och 4.1e-14. I scenarierna med skattade stationer är trösklarna värsta fall och fyra storleksordningar över det uppmätta felet, och tröskeln för den svagaste riktningen där överstiger en rät vinkel, så den kontrollen räknas inte; i kontrollen med fasta stationer stämmer den svagaste riktningen till 6.6e-16 rad mot en tröskel på 9.4e-11, mätt med kordan mellan enhetsvektorer (en tidigare acos-jämförare kunde inte upplösa vinklar under 1.5e-8 rad; tröskeln är oförändrad). Diagnostik: NumPy 2.3.5 Cholesky- och QR-vägar når 9e-9 och 5e-9 på indata för 2024-01-01, dess invers- och egenvärdesvägar 2.9e-6 och 6.2e-6: motorn håller sig inom sin gräns men är ungefär tusen gånger mindre noggrann än en faktoriseringsväg. Kontrollerar linjäralgebran på de incheckade indata, inte jakobianen (SPICE-delen av kampanjraden gör det) och inte den fysiska noggrannheten i den illustrativa kampanjen
Tester
tests/lunar_frame_campaign_mpmath_oracle.rs (lunar_frame_campaign_datum_matches_mpmath_extended_precision: tre scenarier — stationer skattade vid ett nytt kampanjdatum 2026-03-18 (bindande), stationer fasta vid det datumet…
ValidatedDatumlösare med kvadratrotsinformation mot utökad precision med 50 siffrorlinalg_sr,lunar_frame_campaign
Förmåga
En valfri lösare med kvadratrotsinformation (lunar-frame-campaign solver = "srif"; standard oförändrad) som aldrig bildar eller inverterar någon informationsmatris för datum: Householder-QR (ortogonal-triangulär uppdelning) av den blekta fördröjningsjakobianen som en mätuppdatering i ett filter med kvadratrotsinformation, jordstationerna marginaliserade genom det avslutande triangulära blocket (vars Gram-produkt är Schur-komplementet), en andra QR av R_bb A för Helmert-datum med sju parametrar, sigma som radnormerna av den triangulära inversen, och spektrumet (konditionstal, svagaste riktning) ur en ensidig Jacobi-singulärvärdesuppdelning. Skalärprodukter kompenseras med en felfri produkt med Dekker-delning, så varje operation är en korrekt avrundad grundoperation i IEEE-754 eller en kvadratrot; identiska resultat på varje plattform argumenteras ur detta, inte testade över plattformar
Oberoende referens
mpmath 1.3.0 (BSD-3-Clause) med 50 värdesiffror, självkontrollerad vid 80 (överensstämmelse 1.4e-43 eller bättre), på motorns incheckade jakobian, vikter och Helmert-design (P2, ett oberoende numeriskt bibliotek: mpmaths egen LU-lösning, invers, Cholesky och egenuppdelning med Jacobi). Förhandsregistrerad b41908c9 innan lösaren skrevs, med trösklar ur en bakåtfelsgräns av första ordningen i kvadratrotsform: Householder-QR konstanten mn plus (3n+1)n gånger enhetsavrundningen (Higham, Accuracy and Stability of Numerical Algorithms, Theorem 19,4 och Chapter 8) gånger exakta känsligheter. Uppmätt: datumsigma inom 3.0e-13 den 2026-06-09 (trösklar 4.1e-7 till 5.3e-7), 1.9e-15 med fasta stationer (trösklar ned till 4.8e-12), 3.8e-13 den 2026-03-18 och 2.3e-13 den 2024-01-01, där standardlösaren med spektralmetod ligger fel med 4.8e-6 och 9.7e-6; konditionstal inom 4.9e-13; svagaste riktning inom 1.4e-13 rad (kontroll 1.7e-16 mot 5.1e-10). KONTROLLENS GRÄNS: trösklarna intygar endast datumfel under cirka 2e-7 relativt; de uppmätta värdena kring 1e-13 är observationer, inte vad trösklarna intygar. Kontrollen förkastar standardlösaren med spektralmetod (sigma 9.7e-6 mot 2.9e-7 den 2024-01-01; på det bindande datumet 1.3e-6 mot 4.9e-7, en marginal på 1,3 till 2,6) och en felaktigt tagen triangulär invers (kolumnnormer: rött), men en omvänd Householder-teckenväxling, en okompenserad skalärprodukt och sigma ur en spektral invers av den H som bildats ur kvadratrotsfaktorn (3.7e-9) passerar alla, så den visar inte att varje kvadratrotssteg behövs. Kontrollerar den valfria lösarens linjäralgebra på incheckade indata, inte jakobianen och inte standardlösaren; bitreproducerbarhet över plattformar argumenteras ur de operationer som används och testas endast som identitet vid omkörning på en plattform
Tester
tests/lunar_frame_campaign_srif_mpmath_oracle.rs (srif_datum_matches_mpmath_extended_precision: fyra scenarier — stationer skattade vid ett nytt kampanjdatum 2026-06-09 (bindande), stationer fasta vid det datumet (kontroll)…
ValidatedFörtroendeövervakare för sjöfart: aritmetiken de vilar på (NMEA-avkodning, geodetiska förskjutningar, de kinematiska statistikerna och sensorresidualstatistikerna)receiver_trust (ingest,maritime)
Förmåga
För ett fartyg avkodar receiver_trust de NMEA 0183-meningar som en mottagare och dess instrument sänder ut (GGA, RMC, VTG, HDT, VHW, VBW, ZDA, GSV), bildar öst-nord-förskjutningen mellan positionsbestämningar (maritime::en_offset_m) och utifrån dessa den statistik som övervakarna avgör på: den underförstådda hastigheten, residualen för dödräkning, den underförstådda accelerationen och den underförstådda svängtakten över fönster om 30 s, residualerna för kurs mot färdriktning, loggfart mot fart över grund och antennhöjd (medianer över 10 s), samt spridningen och ökningen av satelliternas signal-brusförhållande.
Oberoende referens
VAD SOM KONTROLLERAS EXTERNT, snävt angivet: (1) avkodningen av varje fält som övervakarna läser, mot pynmea2 1.19.0 (MIT) på 8 syntetiska loggar (1 086 epoker), till 1e-9 i fältets enhet (latitud och longitud, höjd, geoidseparation, HDOP, hastigheter, färdriktning, kurs, signal-brusförhållande; heltal och datum exakt; tid på dygnet till 1e-6 s), med största skillnader i nivå med sista siffran i en double; (2) öst-nord-förskjutningen mellan två positionsbestämningar, som avstånd och bäring, mot WGS84-geodeten i geographiclib 2,1 (MIT) på 223 par av positionsbestämningar med baslinjer upp till 2 km, från -45 till 70 grader latitud och över antimeridianen, till 0,01 m och 0,001 grader (bäringen mot geodetens medelazimut, kordans riktning); (3) övervakarnas indatastatistik vid 341 bedömda epoker av en syntetisk resa på 400 s med en sväng och ett positionssteg, mot omräkningar i Python som använder geographiclib för avstånd och azimut, pynmea2 för avkodning och numpy för medianer och standardavvikelser: underförstådd hastighet till 0,005 m/s, residual för dödräkning till 0,02 m, acceleration till 5e-4 m/s^2, svängtakt till 1e-3 deg/s, residualmedianerna samt signal-brusspridningen och dess ökning till 1e-6. VAD SOM INTE KONTROLLERAS: övervakarnas fönsterlängder, tillåtna marginaler och trösklar är projektets egna regler; Python-koden återger dem utifrån samma dokumentation, så överensstämmelsen styrker implementeringen av aritmetiken, inte reglerna. THS-meningen har ingen pynmea2-klass och ROT-meningen läses inte; ingen av dem täcks. Tabellen från en NMEA-talker och satellitnummer till ett satellit-id i RINEX-stil är projektets egen (endast numret, talkern och värdet jämförs). Indata för tidssteg, värdklocka och autentiseringsstatus har ingen oberoende referens. Alla data är syntetisk text från receiver_trust::synth; inget här är en mätning och inget påstående görs om hur någon övervakare presterar vid verklig störning. Bäring: jämförd med geodetens medelazimut. Den förhandsregistrerade jämförelsen mot framåtazimuten vid positionsbestämning 1 misslyckades vid 0,001 grader (77 av 223 par, sämsta 8.3e-3 grader) på grund av en definitionsmässig oförenlighet, inte aritmetik; ändringen gjordes efter den första körningen och båda resultaten är registrerade (jämförelsen med framåtazimut finns kvar i testet som en beskrivande gräns på 0,01 grader som inte förhandsregistrerats). Redovisat: de första körningarna visade indata som prövade för lite (acceleration och svängtakt klämdes till noll i varje epok, och antimeridianspåret korsade den aldrig), en bugg i den syntetiska generatorn (ingen längdgradsomslagning) och, för bäringen, att den registrerade referenskvantiteten (geodetens framåtazimut vid den första positionsbestämningen) skiljer sig från kordans riktning med ungefär hälften av meridiankonvergensen (77 av 223 par utanför 0,001 grader, sämsta 8.3e-3); indata korrigerades och bäringen jämfördes mot medelazimuten med samma tolerans (ändringarna 1 till 3 i förhandsregistreringen, gjorda efter att resultaten setts och alltså inte blinda); jämförelserna av kurs och färdriktning gjordes cirkulära (360 och 0 grader är en och samma kurs, ändring 5). Mutation: en skalning med 1e-4 av östförskjutningen får geodesijämförelsen att misslyckas.
ModelledFörtroendepoäng för sjöfart: sammanvägningen av övervakarnas evidens till en poäng på 0-100 och dess tre bandreceiver_trust (score,monitors,live)
Förmåga
Varje övervakare reducerar sin evidens till ett förhållande mellan statistik och tröskel; poängen är 100 minus summan över övervakarna av vikt gånger en begränsad linjär ramp av förhållandet (0 upp till 0,5, 1 vid 1,5), begränsad till 0 till 100 och avrundad till 0,1, med band vid 90 och 55; varje epok anger de övervakare som gjorde avdrag och deras poäng.
Oberoende referens
Implementering mot specifikation, INTE en extern oberoende referens: en clean-room-återimplementering i Python (scripts/maritime_score_cleanroom.py), skriven av en läsare som endast fått docs/RECEIVER-TRUST.md och docs/MARITIME-TRUST.md och inte Rust-källkoden, stämmer med score_from_ratios på 600 kvotvektorer (poäng, band, poäng per avdrag och avdragens ordning, skillnad 0), efter att dokumentationen kompletterats där den första läsaren fann den tyst eller motsägelsefull (ordning vid lika, avrundning, kvoten för en övervakare som antingen klarar eller inte klarar, två exempel vars siffror inte stämde med formeln). Det visar att dokumentationen är tillräcklig och att koden gör det den säger. VAD SOM INTE KONTROLLERAS, och varför raden förblir MODELLED: själva regeln (vikterna, rampen, bandgränserna, evidenshållningen) är projektets egen, förhandsregistrerad men utan extern källa, och inget här visar att en poäng på 80 eller 40 betyder det en navigatör skulle vilja att den betyder vid verklig störning; inget tal av det slaget anges. Övervakarnas trösklar är likaså projektets egna (rad A kontrollerar bara deras aritmetik).
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…
ValidatedFormatkontroll av NMEA 0183-träningsströmmar och avkodade värdennmea_synth (track,sentences,scenarios); cli nmea-scenario
Förmåga
Syntetiska NMEA 0183-strömmar för bryggan, avsedda för besättningsträning (kshana nmea-scenario): GGA, RMC, VTG, ZDA, GNS, GSA, GSV, HDT, VBW och PKSHT-markören, genererade från ett referensspår med modellerade effekter av mottagare, himmel, jamming och spoofing. Endast textutdata; ingenting sänds.
Oberoende referens
VAD SOM KONTROLLERAS EXTERNT, snävt angivet: alla 225 227 meningar i åtta syntetiska träningsströmmar (fyra biblioteksscenarier, frön 1 och 7; GGA, RMC, VTG, ZDA, GNS, GSA, GSV, HDT, VBW och PKSHT-markören) tolkas i pynmea2 1.19.0, en oberoende NMEA-tolkare, med giltig kontrollsumma och förväntad talker och typ. Position, fart över grund, kurs över grund, färdriktning, UTC-tid och datum, positionsstatus och GGA-satellitantal som den avkodar är lika med generatorns referensspår inom toleranser som fastställdes före den första jämförelsen (1.5e-6 deg, 0,06 kn, 0,07 km/h, 0,11 deg kurs, 0,5 deg färdriktning, 0,02 s), körda av scripts/gen_nmea_training_ref.py med fixturen i tests/fixtures/nmea_training_ref/. Förväntningen på GGA-satellitantalet rättades efter den första körningen till NMEA-konventionen (00 utan positionsbestämning); numeriska toleranser oförändrade från förhandsregistreringens commit. VAD SOM INTE KONTROLLERAS: att någon mottagare, kartplotter eller brygg-system accepterar strömmarna; realismen i modellerna för mottagare, himmel, jamming eller spoofing (nominell himmel, modellerat brus, drag- och replay-profiler, alla MODELLED); HDOP, höjd samt DOP- och GSA/GSV-innehållet utöver syntax och antal; instruktörsloggen. Ingenting sänds, och ingen prestanda mot jamming eller spoofing görs gällande.
ValidatedStörningskarta: betydelsen av noggrannhetskoder, AIS-värden för ej tillgängligt, tilldelning av rutnätsceller, ruttlängd per cellstatus och maskning av inlandetinterference_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)
Förmåga
Tolkningen av de koder för navigationsnoggrannhet och integritet i ADS-B som kartan använder (den EPU-gräns en NACp-kod står för, den inneslutningsradiegräns en NIC-kod står för, samt klasserna låg och god som metoden härleder från dem); de AIS-värden för position och fart som betyder ej tillgängligt och som AIS-läsaren kasserar; den fasta latitud/longitud-rutnätscell som en position faller i; ruttlängden och dess fördelning på cellstatus (degraded, not degraded, unassessed, not observed) som ruttexponeringen redovisar; och huruvida en position ligger inåt land från en landpolygon med mer än en buffert. En cell som flaggats som degraded eller anomalous är ett påstående om rapporterade noggrannhetsfält eller orimliga positioner, inte ett konstaterande av störning, och inget här kontrollerar det.
Oberoende referens
VAD SOM KONTROLLERAS EXTERNT, snävt angivet: fem oberoende implementeringar läser samma syntetiska indata. (1) pyModeS 2,21 avkodar syntetiska DF17-ramar för driftstatus och luftburen position; Kshanas NACp-EPU-gränser stämmer inom 0,5 m (största skillnad 0,4 m), dess NIC-inneslutningsgränser för koderna 5 till 11 stämmer inom 1 m, och dess klasser låg och god placerar alla 12 NACp-koder och varje NIC-kod som referensen producerar (0 till 11) på samma sida av de trösklar som referensens gränser innebär (0 avvikelser). (2) pyais 3.3.0 avkodar AIVDM-meningar av typ 1 vars nyttolastbitar skriptet packar från de råa ITU-R M.1371-fältvärdena; Kshana avvisar exakt de avkodade värdena för ej tillgänglig position (latitud 91, longitud 181) och fart (102,3 kn), och behåller 0 till 102,2 kn som avkodat (0 avvikelser över 94 ramar). (3) shapely 2.2.0 covers() på cellpolygoner stämmer med grid::Grid::cell_of för 1770 punkter över cellstorlekarna 0,5, 0,25, 1 och 0,07 grader, inklusive punkter nära kanter, båda polerna och antimeridianen (0 avvikelser). (4) shapely 2.2.0 skärning mellan rutt och cell med geodetiska WGS84-längder från GeographicLib 2,1 stämmer med ruttexponeringen på 8 syntetiska rutter, däribland två som korsar antimeridianen: total längd inom 0,6 % (största skillnad 0,49 %, sfären mot ellipsoiden) och varje cellstatus längd inom 0,6 % plus 125 m per del (största 21 % av den toleransen). (5) shapely 2.2.0 contains() med pyproj azimutal ekvidistant avstånd till kustlinjen stämmer med inlandsmasken på 2000 m på 992 gittercentrumpunkter runt fyra syntetiska öar, varav en med en sjö (0 avvikelser; 4 punkter inom 20 m från bufferten uteslöts och räknades). Toleranserna fastställdes i tests/fixtures/interference_map_ref/PREREGISTRATION.md före varje jämförelse och ändrades inte efteråt; två fel i de syntetiska indata som den första körningen hittade är registrerade där. VAD SOM INTE KONTROLLERAS: Kshana avkodar inte råa Mode S-ramar eller AIVDM-meningar, så detta validerar tolkningen av redan avkodade värden, inte en avkodare. Referensens NIC-inneslutningsradier för koderna 1, 2 och 4 skiljer sig från DO-260B (20, 8 och 2 NM), så endast koderna 5 till 11 jämförs numeriskt. Regeln för positionen (0, 0), höjdgolvet, källtypsfiltret, hashningen av identifierare, metodens trösklar och statistik samt valet av cellstorlek är Kshanas egna och kontrolleras inte mot något. Ruttjämförelsen använder samma rätlinjiga definition av banan i latitud och longitud på båda sidor, så den kontrollerar längder och celltilldelning, inte att den banan är den rätta för ett fartyg eller ett flygplan. Inget här visar att en flaggad cell är störning. Indata är syntetiska; referensfixturerna skrivs av scripts/gen_interference_map_ref.py (pyModeS är GPL-3.0 och används endast i det offlineskriptet; CI behöver ingen 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)…
ModelledOmråde för störkälla: ett möjligt sändarområde utifrån positionsrapporter från flygplan och fartyginterference_map::emitter (estimate,sessions,build_units,profile,GaussianFix::from_tdoa),interference_map::emitter_out (locate),kshana interference-map locate
Förmåga
Ett möjligt område för var en källa till försämrade navigeringsrapporter kan finnas, utifrån ADS-B-rapporter (NIC/NACp) eller AIS-positionsrapporter: radiosikt på en 4/3-jordradie från rapporthöjden och ett höjdintervall för sändarantennen, en begränsad effektiv räckvidd för den okända effekten, påverkade enheter som drar posteriorn mot sin räckvidd och opåverkade enheter med sikt som trycker emot den, grupperade i sessioner i tid och rum. Utdata är områden med högst täthet vid angivna konfidensnivåer, en posteriortyngdpunkt med en momentellips, sessionens start, slut, varaktighet, påverkad yta och antal skilda flygplan över publiceringsminimum, en profil över dygnet och timmar per dag. Terrängfritt; en enda källa per session; trovärdigheten är villkorad av modellen. Valfri fusion med en TDOA-positionsbestämning från geolokalisering.
Oberoende referens
Ännu ingen extern. Endast syntetiska rundturer framåt och bakåt, från en generator som delar skattarens modell, så de kontrollerar koden och kalibreringen av de angivna nivåerna under den modellen och ingenting om verkliga sändare. En extern kontroll mot de publicerade sändarplatserna i Jammertest 2025 förhandsregistrerades (docs/emitter-region/PREREGISTRATION.md, godkänd av ägaren före varje poängsatt körning) och kördes en gång (docs/emitter-region/RESULTS.md): ADS-B NOT ASSESSABLE (2 schemalagda sessioner, färre än det registrerade minimet på 4) och AIS NOT ASSESSABLE (ingen publicerad session), så ingen tröskel testades och raden förblir 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…
ValidatedTrådformat för förtroendetelemetri: Prometheus-textexponering och OpenTelemetry OTLP/HTTP JSONtelemetry (prometheus: Registry,render; otlp: build_payload,Exporter (feature otlp); sample)
Förmåga
GNSS-förtroende (poäng, band, orsaker, grind och, på begäran, position) som Prometheus-textexponering som serveras på /metrics och som OTLP/HTTP JSON-mätvärden, med ett tak för kardinaliteten hos orsaketiketter.
Oberoende referens
VAD SOM KONTROLLERAS EXTERNT, snävt angivet: vår Prometheus-textexponering för en syntetisk ström på 84 rader (etikettvärden med citationstecken, omvända snedstreck, radmatningar och icke-ASCII-text, 64 orsaksserier plus en sammanslagning "other", grind- och positionsmätare) accepteras av textparsern i prometheus_client 0.26.0, och de metrikfamiljer, typer, hjälptexter, etikettuppsättningar och värden den läser är exakt lika med registrets tillstånd (värden genom f64-likhet). Vår OTLP/HTTP JSON för samma register tolkas av protobuf 7.36.2 json_format.Parse(ignore_unknown_fields=False) till ExportMetricsServiceRequest i opentelemetry-proto 1.45.1, och varje metriknamn, beskrivning, enhet, slag, monotonicitet, aggregeringstemporalitet, attribut, värde, starttid och tid är exakt lika med registrets tillstånd. Båda tolkarna visades avvisa ett okänt fält, ett felaktigt typat värde och en felformad rad (scripts/gen_telemetry_formats_ref.py). Schema 1,3 (0,36), förhandsregistrerat (fb226057) innan något verktyg läste det: för en syntetisk schema-1.3-ström på 64 rader (geometristatus, DOP-värden, etiketter och signalförlust närvarande, null, frånvarande och okända; avdragsklasser; otolkbara rader) läser samma två tolkare geometriserierna (Prometheus kshana_trust_geometry*, OTLP kshana.geometry.*) och klassetiketten på kshana_trust_reason_active exakt så som registret innebär (24 familjer och 54 sampel; 12 mätvärden och 31 punkter), promtool 3.5.0 check metrics avslutas med 0 utan lintproblem, och OpenTelemetry Collector contrib 0.135.0 accepterar OTLP/HTTP JSON (status 200, inget avvisat) och dess filexportör registrerar begäran oförändrad (xval/telemetry-1.3, datastyrd: släppets tarballs hämtas med fastlåst SHA-256 och deras utdata checkas in). VAD SOM INTE KONTROLLERAS: HTTP-slutpunkten, leverans, tidsgränser och återanslutning kontrolleras inte av någon oberoende referens, inte heller Collectorns prometheus-mottagare; registret läses via accessorer, så ett fel i själva registrets tillstånd skulle inte fångas; kontrollen "committed output is current" för OTLP körs bara med funktionen otlp; metriknamnen och deras användbarhet för ett driftcentrum är inte validerade; CEF och LEEF täcks inte (se nästa rad).
ValidatedSIEM-händelser för förtroendetelemetri: Common Event Format (CEF) över syslogtelemetry (syslog: cef,rfc5424,SyslogSink; time)
Förmåga
Händelser vid bandbyte (eller per epok) som Common Event Format-nyttolaster i ett RFC 5424-kuvert över UDP eller TCP, med en dokumenterad fältmappning och CEF-escaping.
Oberoende referens
VAD SOM KONTROLLERAS EXTERNT, snävt angivet: mot två oberoende tolkare med öppen källkod (referenser: pycef 1,11 (PyPI, MIT); Logstash CEF-kodek (logstash-codec-cef 6.2.7 i Logstash 8.15.3)), på en korpus av CEF-rader som den här cratet skrev (157 före ändring 4 nedan, 170 efter den, 176 efter ändring 5): varje bandbyte och varje epok i en incheckad syntetisk förtroendeström på 84 rader, plus fientlig text i värdar, orsaker, tidsetiketter och grindnamn som innehåller likhetstecken, omvända snedstreck, omvänt snedstreck-likhetstecken, vertikalstreck, radmatningar, vagnreturer, tabbar, följder av blanksteg, flerbytestecken och astrala tecken samt nyckellookalikes, extrema poäng och förskjutningar, varje band med och utan föregående band. pycef tolkar de rader vars header inte behöver escaping (153 före ändring 4, 166 efter den, 172 efter ändring 5) och återskapar exakt headerfälten, allvarlighetsgraden, den exakta uppsättningen tilläggsnycklar och varje värde (tal genom f64-likhet), efter CEF-specifikationens regler för avescaping, som pycef inte tillämpar och som scripts/gen_cef_ref.py tillämpar. Logstash-kodeken, som avescapar själv, tolkar varje rad (157, sedan 170, sedan 176), uppfyller samma tröskel, och återskapar också fyra headerfält som kräver escaping (ett vertikalstreck, ett omvänt snedstreck och ett likhetstecken i versionssträngen), vilka pycefs headermönster inte kan läsa, så headerescapingen vilar på Logstash-kodeken ensam. Jämförelsetröskeln registrerades i commits 5172e579 (pycef) och 0a7598aa (Logstash) innan någondera tolkaren kördes, och båda uppfyllde den vid den första jämförelsen. Fem ändringar redovisas. Ändringarna (1) till (3) rörde ingen jämförelseregel och inget förväntat värde: (1) ett påstående om korpusens storlek rättades från 5 till 4 bandbyten, en felräkning, eftersom strömmen har 4; (2) Logstash-körarens koppling av pipeline-avgränsare rättades efter ett första försök som inte gav några händelser; (3) förtroendepoängen och epokförskjutningen flyttades från CEF-heltalsfälten cn1 och cn2 till flyttalsfälten cfp1 och cfp2, en ändring av trådformatet som gjordes i detta släpp, varefter korpusen regenererades och båda referenserna kördes om med oförändrad tröskel och uppfyllde den igen. Ändring (4), 0,36, utökade korpusen och den förväntade nyckeluppsättningen, registrerad i d6331429 innan någondera tolkaren kördes på de nya raderna: schema-1,3-indata lägger till satellitgeometrin i de anpassade fälten cs6 (etikett geometry: status, sedan ';' och avdragsklasserna), cfp3 (geometryHdop) och cfp4 (geometryPdop); 13 geometrifall (korpusen till 170 rader) och de tre nya nycklarna; båda uppfyllde tröskeln, i övrigt oförändrad, vid den första jämförelsen (pycef 166 av 170 rader tolkade, de 4 header-fallen i nivå 2 som förut; Logstash 170 av 170). Ändring (5), 0,36, lade till 6 fall med geometrietikett (korpusen till 176 rader), registrerad i 9a8e4fa9 innan någondera tolkaren kördes på dem: från indata som bär geometrietiketten får cs6 ett tredje fält (';' och etiketten) och cn1 (geometryUsedSatellites) de använda satelliterna; Logstash-kodekens mappningstabell lästes först (inga flexString-fält, därför cs6 i stället för flexString1); båda uppfyllde tröskeln vid den första jämförelsen (pycef 172 av 176, Logstash 176 av 176), och varje tidigare referensspost återskapades oförändrad. VAD SOM INTE KONTROLLERAS: ingen av tolkartyperna typkontrollerar cfp-värdena (båda behåller dem som text), så användningen av flyttalsfälten vilar på CEF-ordlistan snarare än på en oberoende referens; ingen leverantörs SIEM kördes; tilläggsnyckelnamnen och deras mappning är det här cratets val, och tolkarna visar bara att de läses tillbaka som de skrevs; RFC 5424-kuvertet, leverans, tidsgränser och återanslutning täcks inte; pycef är en liten tolkare som senast släpptes 2020, och Logstash-kodeken är den mer omfattande oberoende referensen.
ModelledSIEM-händelser för förtroendetelemetri: Log Event Extended Format (LEEF) över syslogtelemetry (syslog: leef,rfc5424,SyslogSink; time)
Förmåga
Händelser vid bandbyte (eller per epok) som Log Event Extended Format 2,0-nyttolaster i ett RFC 5424-kuvert över UDP eller TCP, med en dokumenterad fältmappning.
Oberoende referens
VAD SOM KONTROLLERAS: det här cratets egna tester med exakta strängar av den dokumenterade LEEF-fältmappningen och fälten i RFC 5424-kuvertet; ingen underhållen LEEF-tolkare med öppen källkod finns (en sökning i Python-paketindexet hittade ingen), så formatet kontrolleras mot sin egen specifikation läst av samma författare, inte mot en extern oberoende referens. VAD SOM INTE KONTROLLERAS: huruvida LEEF-nyttolasterna accepteras av någon leverantörs tolkare eller SIEM; escapingreglerna utöver de dokumenterade; beteendet hos en verklig syslog-insamlare.
ValidatedIntegritet hos bevispaket: signatur, hashkedja och verifieringsförfarandeevidence (bundle: create_bundle,sign_detached,chain_link,sha256_hex; verify: verify_bundle,verify_detached; tsr; assemble; cli)
Förmåga
Ett signerat, hashkedjat bevispaket för en GNSS-förtroendehändelse: SHA-256 över varje fil och en kedja över manifestet, en Ed25519-signatur över manifestets exakta byte, och en verifierare som namnger varje fel (en ändrad, borttagen, omdöpt, utbytt eller tillagd fil, ett omordnat eller redigerat manifest, ett manifest som hashats om utan nyckeln, ett omsignerat paket, en felaktig fastlåst nyckel samt ett tidsstämpelstoken som är borttaget, utbytt, skräp eller avser ett annat dokument).
Oberoende referens
VAD SOM KONTROLLERAS EXTERNT, snävt angivet: (1) Ed25519-funktionerna som paketet använder för att signera och för att verifiera strikt (evidence::bundle::sign_detached, evidence::verify::verify_detached) återskapar de publika nycklarna och signaturerna i RFC 8032 avsnitt 7,1, testvektorerna 1, 2, 3 och 1024 byte för byte, accepterar dem, och avvisar varje vänd bit i vektor 1 och var sjunde bit i de andra samt en icke-kanonisk S+L-signatur; vektorerna tolkas från RFC-texten och återskapas av två oberoende implementeringar (cryptography/OpenSSL och PyNaCl/libsodium) i scripts/gen_ed25519_rfc8032_ref.py. (2) evidence::bundle::sha256_hex, hashen bakom varje paketshash och kedjan, återskapar exakt exemplen för FIPS 180-4 SHA-256 (abc; meddelandet på 448 bitar; en miljon a), det tomma meddelandet och hashlib-digester av en stege på 0 till 130 byte över paddinggränserna. (3) En verifierare skriven i Python enbart utifrån docs/EVIDENCE-PACKS.md (scripts/evidence_verify_cleanroom.py: hashlib och cryptography; dess författare läste ingen Rust-kod) stämmer exakt med Rust-verifieraren på 71 syntetiska intakta och manipulerade paket, i utslaget, mängden fel med filnamn, signaturutslaget, och kedjehuvudet omräknat från filerna och det som manifestet anger. Vid första körningen stämde 64 av 71; avvikelserna var en specifikationstvetydighet (kontroll av en fastlåst nyckel mot ett oläsbart manifest), en avvikelse i referensens gränssnitt och ett ofullständigt uppbyggt fall; specifikationsmeningen förtydligades, referensen återimplementerades utifrån texten och fallet kompletterades, utan att någon tolerans eller förväntan ändrades (registrerat i commit d54e14c6). VAD SOM INTE KONTROLLERAS: clean-room-verifieraren är en oberoende implementering av en annan författare, inte en tredjepartsauktoritet, och den delar specifikationens val, så den styrker den här implementeringen av reglerna, inte reglerna; vektorerna validerar primitiverna, inte utformningen av paketformatet. I den här raden läses RFC 3161-tokenet endast för sitt meddelandeavtryck och testtokenen är syntetiska och osignerade; auktoritetens signatur och kedja verifieras, som tillval (kshana evidence verify --tsa-ca), av den separata raden "RFC 3161 timestamp-token signature and chain verification". Manipulationsfallen är syntetiska. Inget här är ett juridiskt utlåtande om, eller ett intygande av, något paket.
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…
ValidatedRFC 3161-tidsstämpeltoken: verifiering av signatur och kedjaevidence::tsa (verify_token,pem_certificates); evidence::verify (VerifyOptions::tsa_anchors,Failure::TimestampAuthorityInvalid); evidence::cli (--tsa-ca)
Förmåga
evidence::tsa::verify_token, och tillvalet kshana evidence verify --tsa-ca <anchors.pem> för ett pakets timestamp.tsr: ett RFC 3161 TimeStampResp eller ett naket TimeStampToken (CMS SignedData över en TSTInfo) kontrollerat offline mot betrodda förankringar på det sätt som openssl ts -verify kontrollerar det: de signerade attributens innehållstyp och meddelandesammandrag över TSTInfo; signaturen över de signerade attributen (RSA PKCS#1 v1.5, RSASSA-PSS, ECDSA P-256 och P-384; offentliga RSA-operationer på crypto-bigint); ESS signing-certificate v1 (SHA-1) eller v2-hashen som namnger signerarcertifikatet, funnet bland tokenets och anroparens obetrodda certifikat; signerarens kritiska, enda utökade nyckelanvändning timeStamping; kedjan till en betrodd självutfärdad förankring med varje certifikats signatur, CA-status och nyckelanvändning, och varje certifikat giltigt vid tokenets genTime; samt meddelandeavtrycket mot data. Kontrolleras inte: spärrning (CRL, OCSP), namn- och policybegränsningar, nonce
Oberoende referens
OpenSSL 3.0.13 (openssl ts -verify -attime genTime, och openssl cms -verify -cades -purpose timestampsign plus TSTInfo-avtrycket för RSA-PSS-token), körd av tests/fixtures/evidence_tsa/run_openssl.sh på de 27 fallen i cases.tsv: RSA PKCS#1 v1.5 med SHA-256 och SHA-512 och ESS v1 och v2, en ECDSA P-384-rot över en P-256-mellannivå och P-256- och P-384-TSA:er, RSA-PSS, ett token utan signerarcertifikatet med och utan att det tillhandahålls, CAdES-signerade token, en vänd signaturbyte (tre algoritmer), en ändrad TSTInfo (två), en vänd signatur i mellannivån, ett ESS-tvillingcertifikat, felaktiga förankringar (fyra), ett utgånget TSA-certifikat, en icke-kritisk och en felaktig utökad nyckelanvändning, samt felaktiga data (tre). Förhandsregistrerad i tests/fixtures/evidence_tsa/PREREGISTRATION.md (incheckad ensam, 30ad70b2, innan verifieraren fanns; OpenSSL-utslagen kördes om efteråt, byteidentiska). Första körningen: alla 27 utslag stämmer (B1) och varje genTime stämmer på sekunden (B2). Omfattning, snävt angiven: självgenererade testcertifikat och token, gjorda av samma OpenSSL som dömer dem; OpenSSL är en oberoende implementering, inte en tidsstämpelauktoritet; inget offentligt auktoritets token ingår (freetsa.org anger ingen licens). Inget här intygar någon verklig tidsstämpel
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)…
ModelledTröskelvärden för störning hos receiver-trust, kalibrerade på datamängden JammerTest 2024receiver_trust::calibration (run_dataset); receiver_trust::monitors (MonitorConfig::profile,JAMMERTEST_2024_CALIBRATED); realdata::jammertest; examples/jammertest_trust_calibration.rs
Förmåga
receiver_trust::calibration::run_dataset: den förhandsregistrerade kalibreringen av övervakarna för C/N0-fall, AGC och jamming-indikator på den publika datamängden JammerTest 2024 (Zenodo 15911589, GPL-3.0-or-later, hämtad vid körning, aldrig medföljande): per mapp en tidslinje på 1 s från mon_rf.csv och rinex.csv, övervakarna körs en gång, varje epok efter kalibreringen märks ren eller jamming utifrån mappens attack_log (förskjuten från CEST till UTC, 60 s skyddsmarginal), varje tröskel svepas över ett fast rutnät, den minsta tröskeln med en poolad falsklarmssannolikhet för rena epoker på högst 0,01 väljs, samt antal undanhållna epoker med utelämnande av en mapp i taget; en korskontroll av UBX-läsaren. Urvalet levereras endast som den valfria profilen [monitors] profile = "jammertest-2024-calibrated" (cn0_drop_db 1,5, agc_k_sigma 3,5, jam_ind_threshold 29); standardregeln och varje utdata utan den är oförändrade
Oberoende referens
Datamängdens publicerade händelseloggar (attack_log-fönster), som händelsereferens, under förhandsregistreringen xval/jammertest-trust/PREREGISTRATION.md (incheckad ensam, 0fa012b, innan testramen kördes). Första och enda körningen (xval/jammertest-trust/RESULTS.md): 14 av 24 mappar kunde utvärderas (7 med jamming), 3 502 rena och 9 560 jamming-epoker. Falsklarmssannolikhet för rena epoker i den undanhållna datan: cn0_drop_db 0,0231 (81/3502) mot en tröskel på 0,02, FAIL; agc_k_sigma 0,0003, pass; jam_ind_threshold 0,0094, pass; unionen av de tre: falsklarm 0,0328, detektion 0,807 mot 0,05 och 0,50, pass. Enligt den registrerade regeln är raden MODELLED (en tröskel underkändes). Snävt: en mottagartyp (u-blox ZED-F9P), en händelse, schemalagda enminutersluckor som referens (detektionen är en nedre gräns; ren betyder utanför de loggade fönstren); kalibrerad på CSV-loggarna, och UBX-läsaren ger fler falsklarm i två mappar. Banden för förtroendepoängen för sjöfart är inte kalibrerade
Tester
tests/receiver_trust_jammertest_calibration.rs::the_recorded_calibration_reproduces (ignorerad, datastyrd av KSHANA_JAMMERTEST_DIR: det registrerade urvalet, undanhållna antal, tröskelutfall och utfall)…
ModelledJammertest-poängsättning: en mottagarlogg poängsatt per schemalagt test (detektionsfördröjning, missade larm, falsklarm, tid till återhämtning) mot den publicerade 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
Förmåga
jammertest::{plan, score, dataset} (kshana jammertest import|score): NPRA:s testkatalog och sändningsplan (MIT, hämtad med fastlåst SHA-256, aldrig medföljande) läses som schemalagd referens med katalog-id:n bevarade; en körning av receiver-trust poängsätts per test (första larm minus planerad start, detekterat/sent/missat mot en tolerans, tid till den första larmfria sträckan, larm utanför varje lucka och dess skyddsmarginal), med ett signerat bevispaket som bär resultatkortet. Schemat är planerade luckor, inte registrerade sändningstider.
Oberoende referens
Planens antal luckor per testområde (76, 77 och 45 luckor, varav 61, 63 och 32 sänder) räknades oberoende med ett skript över samma JSON; attack_log-fönstren i datamängden 2024 som händelsereferens, under xval/jammertest-score/PREREGISTRATION.md (incheckad ensam, c2e6d3b, innan poängsättaren kördes). Första och enda körningen (xval/jammertest-score/RESULTS.md): den registrerade regeln om minsta datamängd MISSLYCKADES (4 poängsättningsbara jamming-fönster från 4 av 12 UBX-mappar mot ett minimum på 10 fönster från 2 mappar: 5 mappar föll bort enligt baslinjeregeln, 3 UBX-loggar bär bara GPS-veckotid), så trösklarna B1 till B4 kan inte bedömas; ingenting lättades på eller kördes om. v2 (xval/jammertest-score/PREREGISTRATION-v2.md, incheckad ensam, endast datahantering: loggar med enbart GPS-tid placerade utifrån datumet, de 12 mapparna med enbart CSV, en session med rörlig plattform för rörliga rovers; samma trösklar och regel om minsta datamängd): 14 av 24 mappar behölls men bara 7 poängsättningsbara jamming-fönster, regeln om minsta datamängd misslyckades igen, ingen tröskel kan bedömas (RESULTS-v2.md). Schemalagd referens: en planerad lucka är inte en registrering av sändning, ett missat test kan vara ett test som aldrig kördes, en fördröjning räknas från planerad start, och ren betyder utanför de planerade luckorna. Detektion med övervakare i mätdomänen säger ingenting om en spoofer med låg effekt. En mottagartyp (u-blox ZED-F9P). NMEA-datamängden från SimulaMet 2025 används inte (ingen angiven licens, kräver prenumeration).
Tester
tests/jammertest_plan_roundtrip.rs (datastyrd av KSHANA_JAMMERTEST_PLAN_DIR: platsantal per testområde i planen från 2025, katalog-id:n, TOML-rundtur); tests/jammertest_score.rs (en syntetisk logg med en känd drop…
ValidatedTestbänksexport (kshana bench-export): jordfasta och geodetiska kolumner, kolumner för lokal hastighet, kolumner för attityd och NMEA 0183-utdatainterop::testbench (write_motion_csv,write_nmea,trajectory_of,export); fusion::pack::truth_trajectory
Förmåga
Rörelse-CSV:ns jordfasta position, geodetiska position, jordfasta hastighet, kolumner för färdriktning/stampning/rullning och UTC, samt NMEA GGA/RMC-meningarna, skrivna från syntetiska scenarier (gnss-ins inklusive automotive-urban-canyon, jamming, gnss-sim). Endast rörelse och händelser; ingen signal skrivs och ingen prestanda hos någon simulator eller mottagare görs gällande.
Oberoende referens
VAD SOM KONTROLLERAS EXTERNT, snävt angivet: mot pyproj 3.8.0 (PROJ 9.8.1), geographiclib 2,1, pynmea2 1.19.0 och scipy 1.18.1, körda av scripts/gen_testbench_ref.py på 4 syntetiska scenarier, med toleranser fastställda före den första jämförelsen (var och en skribentens sämsta avrundningsfall): de jordfasta kolumnerna är lika med WGS 84-omvandlingen av de geodetiska kolumnerna (sämsta 1.3e-4 m, tröskel 3e-4) och omvänt (1.3e-9 deg, tröskel 2e-9; höjd 1.3e-4 m, tröskel 3e-4) på varje rad; den jordfasta hastigheten roterad till nord-öst-ned med PROJ:s topocentriska operation är lika med motorns sanna NED-hastighet (7.5e-5 m/s, tröskel 2e-4); färdriktning, stampning och rullning är lika med scipys yaw-pitch-roll av motorns sanna kvaternion (5.0e-7 deg, tröskel 1e-6); varje NMEA-mening tolkas i pynmea2 med giltig kontrollsumma och dess avkodade position (1.2e-3 m, tröskel 5e-3), höjd, fart, kurs (5.0e-4 deg, tröskel 1e-3) och tid är lika med rörelsevärdena; UTC-kolumnen är lika med oberoende datum-tid-aritmetik. SHA-256 för de exakta CSV- och NMEA-byten som kontrollerats är fastlåst. VAD SOM INTE KONTROLLERAS: scenariots referensbana i sig (körprofilen och dess integrering); konventionerna (färdriktning är kroppens yaw, inte kursen, och skiljer sig från den med upp till cirka 77 grader på automotive-urban-canyon; GGA-kvalitet, satellitantal och HDOP är platshållare); huruvida någon laboratoriesimulator läser filerna som avsett; prestanda hos någon simulator eller mottagare. Referenserna kontrollerar omvandlingar och kodningar, inte scenariots fysik. Hanteringen av lokalt system kontrolleras endast genom hastighetsrotationen och NMEA-farten och -kursen (CSV:n har ingen kolumn för lokal position).
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…
ModelledCompliance-mappning mot offentliga ramverkcompliance
Förmåga
compliance (kshana compliance-report): en mappning från Kshanas utdata till klausuler i offentliga ramverk enbart med nummer, ifylld från de angivna körningarna; ett resultat räknas för en förmåga först när det bär den evidens som mappningen anger, en tom mängd ger inget belägg, och formuleringen är "ger belägg för"; rapporten är inte ett konstaterande att något ramverk är uppfyllt och inte ett betyg eller ett godkännande av någon.
Oberoende referens
Referenser kontrollerade mot ett skriptextraherat rubrikindex över de citerade offentliga dokumenten, lästa 2026-10-10 (tests/compliance_references.rs). VAD SOM KONTROLLERAS: 49 citerade referenser till klausuler, avsnitt, stycken eller rubriker finns i det citerade dokumentet, och 7 citerade URL:er gick att nå på det registrerade datumet (2 via en andra väg); negativa kontroller misslyckas. VAD SOM INTE KONTROLLERAS: att någon omskrivning, mappning eller lucka är korrekt; EN 16803-klausuler (betalda, endast katalogtext); senare revisioner; indexet är inte en oberoende implementering.
ModelledMarina integrationer: Signal K-insticksmodul, OpenCPN-grindström och poängpanel, referensbyggereceiver_trust (live: grinden, dess TCP-lyssnare, PKSHT); utanför craten: integrations/signalk (JavaScript), integrations/opencpn (JavaScript-relä, inbyggd C++-insticksmodul), deploy/reference-build (systemd-enheter, container)
Förmåga
Förtroendepoängen, bandet, orsakerna, grindtillståndet och den av mottagaren rapporterade positionen publicerade under navigation.gnss.kshana i en Signal K-server med en notifiering för varning, larm och normal (integrations/signalk); den grindade NMEA-strömmen, med positionsbestämningen markerad ogiltig medan förtroendet är kollapsat och en PKSHT-mening per cykel, serverad till OpenCPN över TCP av själva grinden eller av ett litet relä, och en inbyggd OpenCPN-poängpanel som läser PKSHT-meningen (integrations/opencpn); samt systemd-enheter och en container som kör grinden (deploy/reference-build). Där de visar utdata bär de den rådgivande försäkran: Rådgivande programvara, inte typgodkänd navigationsutrustning (IEC 61108, IEC 61162): operatören är fortsatt ansvarig för fartygets navigering.
Oberoende referens
VAD SOM KONTROLLERAS, snävt angivet: att dessa integrationer fungerar mot den verkliga programvara de är skrivna för. EVIDENS finns incheckad i integrations/signalk/evidence/README.md (med sina JSON-filer) och integrations/opencpn/evidence/README.md (med sina skärmbilder och loggar), var och en med skriptet som återskapar den. (1) Signal K: insticksmodulen laddad i det fastlåsta npm-paketet signalk-server 2.33.0, i ett privat nätverksnamnrymd enbart för loopback, matad med syntetiska data. Serverns egna REST- och WebSocket-gränssnitt visade de publicerade sökvägarna, poängmetadata och en notifiering som gick från frånvarande till warn, alarm, normal (efter hållningen) och warn igen när data upphörde. Med det verkliga kshana körd av insticksmodulen på den NMEA som servern själv tog emot gick notifieringen till warn och sedan alarm och den rapporterade positionen publicerades; serverns egen navigation.position skrevs av dess NMEA-leverantör, aldrig av insticksmodulen. Körd om mot levande JSON-schema 1,2. (2) OpenCPN: insticksmodulen byggd mot OpenCPN:s insticks-API-header och wxWidgets 3.2.4, laddad i Ubuntu 24,04-paketet av OpenCPN 5.8.4 under en virtuell skärm; OpenCPN laddade den, körde dess initiering och lämnade över PKSHT-meningarna i den grindade strömmen, och panelen blev röd i bandet för ej betrodd. I en ren körning slutade OpenCPN:s egen fartygsposition att uppdateras, och dess positionsindikator föll, när grinden markerade positionsbestämningen som ogiltig. En andra körning matad direkt av grindens TCP-lyssnare visade leverans till insticksmodulen men inte ett rent före-och-efter. (3) Relätesterna spelar upp ett inspelat utdrag av den grindade strömmen genom ett verkligt TCP-uttag och kontrollerar vad en konsument tar emot (byten oförändrade, giltiga kontrollsummor på varje mening inklusive de omskrivna, GGA och RMC i överensstämmelse, en PKSHT per cykel med grindfältet där positionsbestämningen är ogiltig), och end-to-end-skriptet kontrollerar att en konsument av grindens lyssnare tar emot exakt de byte som samma grind skriver till standardutdata. (4) PKSHT-tolkarna (JavaScript och C++) körs över meningar inspelade från kshana-utdata och avvisar en felaktig kontrollsumma, version eller en poäng utanför 0 till 100. (5) systemd-enheterna kontrolleras med systemd-analyze verify (systemd 255, binärfiler ersatta med stubbar) och med skydd för ett skal i ExecStart, omstartspolicyn och sandlådenycklarna; containerns ingångspunkts hantering av argument kontrolleras med en stubbbinär. VAD SOM INTE KONTROLLERAS: det finns ingen extern oberoende referens för något värde som dessa integrationer visar. Förtroendevärdena själva är raderna ovan, och en integrationskörning visar bara att ledningarna bär dem; det är därför den här raden är MODELLED och inte VALIDATED (docs/VALIDATION.md). Inget verkligt fartyg, ingen verklig mottagare, ingen lång körning, ingen annan version av någon av värdarna, inget annat operativsystem eller skrivbord användes; alla data är syntetisk text och inget här är en mätning. Notifieringens ljud och visuella hantering i en verklig Signal K-klient, OpenCPN:s verktygsfältsknapp, inställningar och inaktuellt tillstånd samt paketering för OpenCPN:s insticksmodulshanterare prövades inte. Sandlådenycklarna i systemd kontrollerades endast för syntax, kördes inte under en levande systemd, och containeravbildningens bygge och dess hälsokontroll har ingen incheckad evidens här. Inget tal för detektion eller falsklarm görs gällande. Rådgivande programvara, inte typgodkänd navigationsutrustning (IEC 61108, IEC 61162): operatören är fortsatt ansvarig för fartygets navigering.
Tester
tests/receiver_trust_live_cli.rs (grinden och dess TCP-lyssnare, Rust-sidan); integrations/signalk/test/adapter.test.js, integrations/signalk/test/model.test.js och integrations/signalk/test/plugin.test.js (24 Node…
ModelledBOC(1 1)-spårning: DLL-skalning och upplösning av bump-jump-osäkerhet (tillval)iq::track::boc (BocKind,BocTracking,BumpJump,boc11_dll_scale); iq::track::channel (the bump-jump taps and Channel::bump_jumps)
Förmåga
Fältet boc i iq::track::LoopConfig (tillval, None som standard): de tre DLL-diskriminatorerna omskalade för att läsa kodfelet i chips med enhetslutning på sinus-BOC(1 1)-huvudtoppen, och en bump-jump-övervakare på mycket tidiga och mycket sena korrelatorer vid en halv subbärvågsperiod (0,5 chip) som hoppar kod-NCO:n mot huvudtoppen när en upp/ned-räknare når N (8 som standard). Utan tillvalet är varje utdata oförändrat.
Oberoende referens
Intern konsistens mot injicerad referens och slutna former, under trösklar förhandsregistrerade i 6b68f6cc (docs/design/evidence/boc-bump-jump/). En BeiDou B1C-datasignal (PRN 19, 5 MS/s) genererad av iq::scene: med tillvalet av förblir en start på en sidotopp falskt låst vid de förutsagda ±(0,5 + d/4) chip (uppmätt ±0,549); med det på ett hopp mot huvudtoppen vid 0,08 s och en RMS i det sena fönstret på 0,0008 chip vid 45 dB-Hz och 0,0048 chip vid 35 dB-Hz; inget hopp från huvudtoppen vid 35, 40 och 45 dB-Hz över 4 s; den skalade EMLP-lutningen 0,94 till 0,99 på den samplade signalen (oskalad 3,6 till 3,8). Enbart bump-jump-detektorn, på korrelatortripplar med exakt BOC(1 1)-brukovarians, gjorde inget falskt hopp i 100 000 uppdateringar vid 25 till 45 dB-Hz och detekterade 1000 av 1000 starter på sidotopp vid 35 dB-Hz. NOT MET (fynd F1): det förhandsregistrerade enhetstestrutnätet för skalningen innehåller förskjutningar utanför diskriminatorernas linjära område, där de skalade avläsningarna missar förskjutningen med upp till 48 %. VAD SOM INTE KONTROLLERAS: IQ från fält, bandbegränsade frontändar, sammansatta MBOC/QMBOC-repliker och varje extern mottagare.
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…
ModelledIQ-kanal för jonosfärisk scintillation (Cornell-modellen) mot uppmätt 50 Hz GPS L1-scintillationiq::channel::scint (Scintillation,ScintParams); realdata::scint50 (parse_log,segments,measured_windows,model_windows,compare)
Förmåga
iq::channel::scint, Cornell-scintillationsmodellen (Rice-intensitet, andra ordningens Butterworth-spektrum, fas arg z) driven vid ett uppmätt fönsters S4 och intensitetens dekorrelationstid, jämförd på det den genererar utöver de två indata; realdata::scint50 läser den uppmätta loggen, trendrensar den och kör jämförelsen.
Oberoende referens
Uppmätta data under trösklar förhandsregistrerade i b6ccb499 (xval/scint-malindi/): Zenodo-post 16941224 (INGV, Malindi, 18 mars 2023, GPS PRN 26, 50 Hz intensitet och bärvågsfas, CC BY 4,0, SHA-256 kontrollerad). 22 kvalificerande fönster om 60 s (N1 uppfylld). MET: intensitetsfördelningen (Kolmogorov-Smirnov D 0,0415, tröskel 0,05) och fasscintillationen kopplad till S4 (median av uppmätt/modell sigma-fas 0,779, tröskel 2/3 till 3/2). NOT MET (fynd F1): modellens andel djup fädning är 2,38 gånger den uppmätta (tröskel 0,5 till 2) och dess genomsnittliga fädning 3,51 gånger så lång (tröskel 2/3 till 3/2). Fynd F2: den registrerade bearbetningen läser modellens lindade fas, vilket en självkontroll avslöjade; B3 upprepad i efterhand med fasen avlindad ger 0,804. VAD SOM INTE KONTROLLERAS: andra nätter, stationer, latituder eller signaler; mottagarbrus i modellen. Raden förblir MODELLED.
Tester
tests/iq_scint_malindi_measured.rs (cornell_model_verdict_is_the_recorded_one, det registrerade utfallet verifierat som registrerat, iakttagelse F1; finding_model_fades_are_deeper_and_longer_than_measured…
ModelledAlternativ med cellmedelvärdesbildande CFAR vid IQ-acquisitioniq::acq (CfarConfig,ca_cfar,ca_cfar_cells,ca_cfar_pfa,ca_cfar_alpha)
Förmåga
iq::acq::ca_cfar och ca_cfar_cells (tillval): en cell i ett acquisition-rutnät jämförs med medelvärdet av referensceller i sin Dopplerrad (skydds- och stegfördröjningar, som sluter sig runt perioden), vid en faktor alfa satt utifrån den slutna formen för falsklarmssannolikheten i CA-CFAR för M icke-koherenta block (ca_cfar_pfa, ca_cfar_alpha). Sampeleffektdetektorn förblir standard och varje befintligt utdata är oförändrat.
Oberoende referens
Sluten form, under trösklar förhandsregistrerade i 3724aefa (docs/design/evidence/acq-cfar/). Falsklarmssannolikheten i CA-CFAR för Gamma(M)-celler, mot Monte Carlo av den exakta modellen: 18 av 18 fall inom 3 binomial-sigma. På varje cell i iq::acq-sökningar (GPS L1 C/A, 2,5 MS/s, 210 000 celler vardera) vid en utformning på 1 %: 0,977 % och 0,969 % på gaussiskt brus och 1,006 % och 0,999 % på 2-bitars kvantiserat brus (M = 1 och 4; tröskel plus eller minus 20 %); beslut oförändrade när indata skalas. NOT MET (fynd F1): på en brusfri 2-bitarssignal är detektionen och dess cell korrekta, men 1,28 % av cellerna utanför toppen i toppens rad (tröskel 1 %) överskrider tröskelvärdet, vid kodens deterministiska korrelationssidolober. VAD SOM INTE KONTROLLERAS: andra CFAR-varianter, tvådimensionella fönster, bandbegränsade frontändar, fältdata.
ModelledSpektrummodell: banden för GLONASS, BeiDou och Galileo E6 (tillval)spectrum (default_band,MORE_BAND_NAMES,GLONASS_CHANNELS)
Förmåga
spectrum::default_band löser, enbart med namn (MORE_BAND_NAMES), GLONASS L1OF och L2OF på varje FDMA-kanal K = -7 till 6 (BPSK, 0,511 Mchip/s), BeiDou B1I (BPSK(2)), B1C (MBOC(6,1,1/11)), B2a och B3I (BPSK(10)) samt Galileo E6 (BPSK(5)), med bärvågor och lägsta mottagna effekter från deras gränssnittsspecifikationer; standardbanduppsättningen och varje befintligt utdata är oförändrade.
Oberoende referens
Publicerade gränssnittsspecifikationer och slutna former, under trösklar förhandsregistrerade i 5806f28b (docs/design/evidence/spectrum-bands/): GLONASS ICD Edition 5,1, BDS-SIS-ICD B1I 3,0, B1C 1,0, B2a 1,0 och B3I 1,0, Galileo OS SIS ICD Issue 2,1. MET: varje bärvåg, chiphastighet och mottagen effekt som transkriberad (28 GLONASS-kanaler), första nollställena för BPSK vid chiphastigheten, B1C-kompositen lika med MBOC(6,1,1/11) som dess ICD:s effekttabell anger, identiteten för C/N0-vägen och byteidentiska spektrumscenarier. NOT MET: enhetsareatröskeln, som var ouppnåelig så som den var skriven (fynd F1; areorna är lika med den slutna formens andel inom bandet), och överensstämmelsen per behållare mellan IQ-lagrets B1I- och B1C-vågformer och modellens envelopp (1,26 och 1,56 dB mot 0,5 dB, fynd F2; GLONASS 0,07 dB), eftersom Gold- och Weil-koder har ojämna linjespektra; bandmedelvärdesbildade stämmer huvudloberna inom 0,25 dB. VAD SOM INTE KONTROLLERAS: inspelad IQ, andra signaler, störning inom systemet.
ValidatedPrimära avståndskoder för BeiDou B1I mot en oberoende generatoriq::signals::beidou (b1i_bits,b1i)
Förmåga
iq::signals::beidou::b1i_bits och b1i: Gold-koderna i BDS-SIS-ICD-B1I-3.0 trunkerade till 2046 chips, PRN 1 till 63, så som IQ-lagret genererar, acquirerar och spårar dem.
Oberoende referens
GNSS-SDR v0.0.19 (tagg v0.0.19, commit 1ddd4562), en oberoende implementering med öppen källkod av samma ICD: dess beidou_b1i_code_gen_int, kompilerad fristående, genererade alla 63 koder. Endast dess programutdata är incheckat: tests/fixtures/iq_signals/beidou_b1i_gnss_sdr.txt, ett prefix på 64 chips och SHA-256 för varje kod på 2046 chips. Det utdatat är de BeiDou B1I PRN-koder som den offentliga BDS-SIS-ICD-B1I-3.0 definierar; ingen GNSS-SDR-källkod eller binär finns i repositoryt. Tröskel förhandsregistrerad i 911106d1 (xval/beidou-b1i-gnss-sdr/): alla 2046 chips i alla 63 PRN identiska, ingen inversion, förskjutning eller omdöpning. Resultat: 63 av 63 identiska; fixturen regenererades från en färsk utcheckning av v0.0.19 (källfilens SHA-256 som registrerad) och är byteidentisk. VAD SOM INTE KONTROLLERAS: den sekundära koden NH20, GEO-PRN-listan, bärvågen och chiphastigheten.
ValidatedGPS L1C avstånds- och överläggskoder mot de tryckta kontrollkolumnerna 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
Förmåga
iq::signals::gps::l1c_p_bits, l1c_d_bits och l1c_o_bits: Weil-avståndskoderna L1CP och L1CD (beräknad Legendre-sekvens, Weil-index, expansionssekvens insatt före chip p) och S1-överläggskoderna L1CO, PRN 1 till 63.
Oberoende referens
IS-GPS-800J (01-AUG-2022, distribution statement A), de kontrollkolumner den skriver ut bredvid generatorparametrarna: Tabell 3.2-2 de första och sista 24 chipsen i varje L1CP- och L1CD-kod, Tabell 3.2-3 de första och sista 11 bitarna i varje L1CO-kod, Tabell 6.2-1 Legendre-sekvensen med längd 10223; transkriberade av scripts/extract_is_gps_800_tables.py från PDF:en (SHA-256 c4aad710...). Trösklar förhandsregistrerade i fe372e26 (docs/design/evidence/l1c-codes/): 252 av 252 kolumner, 63 av 63 överlägg och 10 223 av 10 223 Legendre-bitar identiska; extraktionens --check passerar; en negativ kontroll underkänner omdöpta, inverterade och förskjutna koder. VAD SOM INTE KONTROLLERAS: själva generatorparametrarna (de kommer från samma tabeller), chipsen mellan de tryckta kolumnerna, TMBOC-subbärvågsmönstret och L1CO S2-koderna.
ValidatedPrimära koder för LunaNet AFS-I och AFS-Q mot de tryckta kontrollkolumnerna 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
Förmåga
iq::signals::lunanet::afs_i_bits och afs_q_primary_bits (signalnamnen lunanet-afs-i och lunanet-afs-q i kshana iq): Gold-koden AFS-I (2047 kortcyklad till 2046, G2 fördröjd per PRN) och den primära Weil-koden AFS-Q (beräknad Legendre-sekvens, Weil-index, expansionssekvens insatt före chip p), PRN 1 till 210.
Oberoende referens
Mot de tryckta tabellerna i LSIS-AFS V1.0 (markerade TBC i specifikationen): LunaNet Interoperability Specification V5, Applicable Document 1 Volume A: LunaNet Signal-In-Space Recommended Standard, Augmented Forward Signal (LSIS-AFS) V1.0, 29 januari 2025 (NASA; PDF SHA-256 986e0795...), de kontrollkolumner den skriver ut bredvid generatorparametrarna: Tabellerna C-1 till C-5 och D-2 till D-6 de första och sista 24 chipsen i varje AFS-I- och AFS-Q-kod, Tabell D-1 Legendre-sekvensen med längd 10223; extraherade av scripts/extract_lunanet_afs_tables.py (xval/lunanet-afs/oracle/). Trösklar förhandsregistrerade i b3ba5d5 (xval/lunanet-afs/PREREGISTRATION.md) innan generatorn fanns: B1 420 av 420, B2 identiska, B3 420 av 420. Dokumentet markerar sina kodtabeller {LSIS-TBC} och säger att de endast är för test och integration, så detta validerar konstruktionen mot den utgåvans tabeller, inte en senare utgåvas. Ett förhandsregistrerat påstående om det tryckta G2-initialtillståndet (B1b) angavs med fel riktning och är NOT MET (0 av 210), fastlåst; det korrigerade sambandet (2047 minus fördröjningen) gäller för 210 av 210 och är registrerat som i efterhand. VAD SOM INTE KONTROLLERAS: själva generatorparametrarna (samma tabeller), chipsen mellan de tryckta kolumnerna, den tertiära koden, meddelandelagret och LDPC-kodningen.
ModelledTertiära koder och meddelandelager för LunaNet AFS (SB1 BCH, CRC-24Q, interfolierare) 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)
Förmåga
iq::signals::lunanet::afs_q_tertiary_bits, afs_q_tiered; iq::lunanet_afs: synkroniseringsmönster, SB1 BCH(51 8)-kodare och avkodare med 256 hypoteser, CRC-24Q, blockinterfolieraren 60 x 98, en symbolströmskontrollerare (kshana lunanet-afs-check) och en testströmsgenerator med platshållarunderramar. LDPC-kodningen med hastighet 1/2 för underramarna 2 till 4 är inte implementerad (dess matriser finns i en separat bilaga).
Oberoende referens
LSIS-AFS V1.0 (som ovan): Legendre-sekvensen med längd 1499 (Tabell E-1, identisk) och de tertiära första och sista 24 chipsen (Tabellerna E-2 till E-6: 419 av 420 kolumner identiska; dokumentet skriver ut samma sista 24 chips, A14850, för PRN 147 och PRN 151 och generatorn återskapar PRN 151:s, så posten för PRN 147 är med största sannolikhet ett tryckfel; tröskeln på 420 av 420 är NOT MET och missen är fastlåst); det genomarbetade exemplet i Figur 8 för SB1-koden (ett exempel: 0x045 kodas till 0x229F61DBB84A0); CRC-24Q mot katalogens kontrollvärde 0xCDE703 för ASCII 123456789; dokumentets egen ramaritmetik. Trösklar förhandsregistrerade i b3ba5d5. En miss på registret och ett genomarbetat exempel för meddelandelagret, så raden förblir MODELLED. VAD SOM INTE KONTROLLERAS: LDPC och CRC-orden i underramarna 2 till 4, meddelandeinnehåll och varje inspelad ström
ModelledStandardpaket: scenarier poängsatta mot trösklar angivna före körningenstandards_pack; compliance (standards-pack facts in compliance-report)
Förmåga
standards_pack (kshana standards-pack): testprofilerna för nivåerna 1 till 4 i DHS Resilient PNT-ramverket, noggrannhetsnivåerna och integritetsutvärderingen i IMO MSC.1/Circ.1575 samt övervaknings-, bedömnings- och begränsningspaketen i ICAO Doc 9849 Appendix F: varje test kör en medföljande scenariotyp och jämför resultatfält med trösklar angivna i paketet, och test som behöver en mottagarlogg listas som NEEDS INPUT och poängsätts inte.
Oberoende referens
Ingen extern oberoende referens för scenarioresultaten: varje pakettest kör en MODELLED scenariotyp. Trösklarna är paketförfattarens angivna profil (DHS-ramverket anger inga värden; IMO:s noggrannhetsgränser är Tabell C-1 i MSC.1/Circ.1575, läst i sin helhet; ICAO-paketet följer ICAO:s egen presentation av RFI Mitigation Plan eftersom Doc 9849 är en betalpublikation och inte lästes), incheckade före varje poängsatt körning i PREREGISTRATION.md-filer i xval-stil under standards/. En MET-tröskel säger att ett modellerat scenario uppfyllde en angiven tröskel, ingenting om en produkt
Tester
tests/standards_packs.rs (pinned_outcomes: statusen för varje test, inklusive missarna L4-T1 och de fyra IMO-noggrannhetstesterna); standards_pack::tests
ModelledBevispaket för laboratorieringlopp (scenario, testförhållanden, mottagarlogg, poäng)evidence::roundtrip,evidence::assemble,interop::testbench (write_conditions_json),iq::campaign::conditions
Förmåga
evidence::roundtrip (kshana evidence round-trip) och exporten kshana.test-conditions/1 av mottagarloggar från kshana bench-export: ett signerat paket som registrerar scenariots hash, hashen för de angivna förhållandena, loggens hash och poängen mot de angivna händelserna, och som avvisar förhållanden som inte stämmer med poängsättningens händelser eller en logg vars hash inte är den angivna. Ingen signal skrivs, spelas upp eller schemaläggs.
Oberoende referens
Ingen extern oberoende referens: paketet länkar hashar och en MODELLED poäng för mottagarloggen, kontrollerad på syntetiska data (den exporterade NMEA:n från ett medföljande scenario behandlad som mottagarens logg). Ingen laboratoriekörning görs gällande
ModelledIQ-spårningsmotor mot GNSS-SDR 0.0.19 på oberoende inspelningariq::track (Channel,LoopCore,design); iq::cli::track
Förmåga
Hela IQ-lagrets spårningsmotor (iq::track genom kshana iq track: acquisition-överlämning, korrelatorer, NCO:er, Costas-PLL av andra ordningen på 15 Hz, DLL av första ordningen på 2 Hz med bärvågsstöd och EML-envelopp, låsindikator och C/N0-skattare) på GPS L1 C/A vid 30 till 45 dB-Hz.
Oberoende referens
GNSS-SDR 0.0.19 (GPL-3.0-or-later, Ubuntu 24,04-paketet, kört som ett separat program; endast härledda tal incheckade) spårar samma numpy-inspelningar (oberoende av motorn), båda mätta mot den analytiska referensen. Trösklar förhandsregistrerade i 48edd4a5, ändrade före varje testinspelning i 1e4288c4 (en FLL på 10 Hz endast under inlåsningen i båda mottagarna, sedan den registrerade kalibreringen misslyckades på en felaktig GNSS-SDR-överlämning, fynd F3). MET vid 30, 35, 40 och 45 dB-Hz: bärvågsjitter inom 4,3 %, kodjitter inom 4,6 % samt Dopplers medelvärde och spridning inom GNSS-SDR:s. NOT MET: motorns NWPR-C/N0 läser 2,3 till 7,1 dB under GNSS-SDR:s SNV (fynd F4, den kända gränsen för NWPR; dess M2M4 ligger inom 0,06 dB från referensen); fasens låsindikatorer skiljer sig per definition (F5); vid 30 dB-Hz slirade GNSS-SDR två gånger och motorn inte (F6). GNSS-SDR:s egen överlämning låste på en felaktig frekvens i 3 av 30 kalibreringskörningar. VAD SOM INTE KONTROLLERAS: andra signaler, borttagning av databitar, återacquisition, fältinspelningar. Raden förblir 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…
ModelledCRPA-antennförstärkningar i jamming-typen mot en oberoende omräkning i numpyjamming (CrpaCfg,crpa_weights,run_jamming); crpa (null_steering_weights,mvdr_weights,covariance)
Förmåga
Jamming-typens valfria [crpa]-sektion: en stråle per kanal mot varje satellit (nollstyrning med jammern som nollpunkt, eller MVDR på sigma^2 I + P_j a_j a_j^H), som skalar varje länks brus med ||w||^2 och jammern med |w^H a_j|^2 före den befintliga C/N0-ekvationen för anti-jam.
Oberoende referens
En oberoende omräkning i numpy (xval/crpa-jamming/oracle.py, ingen delad kod: numpy-styrvektorer, numpy.linalg.solve och inv) av varje länk i geometrin jamming-demo med en kvadratisk grupp om 4 element, under båda viktningarna. Trösklar förhandsregistrerade i 08d83b4d. MET: A1 (alla 150 scenarioresultat byteidentiska utan sektionen, efter en rättning: det första bygget lade till crpa-enheterna i enhetstabellen för varje jamming-körning), A2 (ett element är lika med ingen grupp inom 1e-12 dB), A3 på gruppens brusförstärkning och effektiv C/N0 (912 länkviktningar inom 1e-9 dB, sämsta 2.1e-14 dB) och på nollan för nollstyrningens jammer (under -200 dB på båda sidor), A4 (MVDR inom 0,1 dB från nollstyrning vid ett JNR på 80 dB). NOT MET: A3 på MVDR:s jammerförstärkning, 194 av 456 länkar över 1e-9 dB på bärbar matematik i 0,36 (202 på värdmatematik; docs/revisions/STUDIO15-batch4-rebaseline.md) (sämsta 1.7e-6 dB) på residualer på -100 till -188 dB, där float64-kancellering begränsar båda implementeringarna (numpys inv och solve avviker från varandra på 169 länkar, sämsta 7.9e-7 dB); den effektiva C/N0 som dessa matar påverkas inte. VAD SOM INTE KONTROLLERAS: ömsesidig koppling, elementfel, bredbandsbehandling, flera jammers, någon antennhårdvara. En omräkning av samma ekvationer, inte en extern oberoende referens; raden förblir 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…
ModelledTerrängskuggning av jammern i jamming-typen mot en oberoende omräkning i numpy på en verklig SRTM-rutajamming_terrain (TerrainCfg,jammer_terrain,knife_edge_loss_db); jamming (run_jamming_sky)
Förmåga
Jamming-typens valfria [terrain]-sektion: den storcirkelburna terrängprofilen mellan jammer och mottagare på en SRTM .hgt-ruta med en jordbuktning med k-faktor, den dominerande knivseggen (största Fresnel-Kirchhoff nu) och förlusten för en enda knivsegg enligt ITU-R P.526-15 avsnitt 4,1, subtraherad från jammerns mottagna effekt.
Oberoende referens
En oberoende omräkning i numpy (xval/jamming-terrain/oracle.py, ingen delad kod: egen .hgt-läsning, bilinjär interpolation, WGS 84-rundtur, profil, buktning, nu och J(nu)) av tio jammerplaceringar runt en mottagare vid Badwater Basin på den incheckade verkliga SRTM-rutan tests/fixtures/terrain/N36W117_sub6.hgt. Trösklar och placeringar förhandsregistrerade i 92cd2bfd. Alla MET: additivitet (alla 150 scenarioresultat byteidentiska utan sektionen); varje placerings profilpunkter och hinder är lika och nu och förlust inom 1.6e-10 (tröskel 1e-9); förlusten ökar aldrig när jammern stiger från 2 till 4902 m; förlusten sänker varje J/S med exakt sig själv och inget annat; J(nu) inom 1e-12 dB från referensens. Fynd: placeringar över Black Mountains och Funeral Mountains förlorar 44 till 48 dB; två placeringar på dalbotten förlorar 8 och 15 dB enbart av jordbuktningen vid antennhöjder på 2 m, det gränsfall där modellen med en enda knivsegg bara tangerar. VAD SOM INTE KONTROLLERAS: någon uppmätt utbredning, diffraktion över flera eggar, markreflektion, klotter, själva DEM-felet. En omräkning av samma modell, inte en extern oberoende referens; raden förblir MODELLED.
ModelledHysteres vid acquisition och frontändens kvantiserare i jamming-typen mot oberoende omräkningarjamming_rx (AcquisitionCfg,AcqState,FrontEndCfg,front_end); jamming (run_jamming_sky); iq::frontend::quant (optimum_step_sigma)
Förmåga
Jamming-typens valfria sektioner [acquisition] (en satellit acquireras vid eller över en acquisition-tröskel efter en fördröjning för återacquisition och hålls så länge den ligger vid eller över spårningströskeln) och [front_end] (AGC-avläsningen 10 log10(1 + J/N) och ADC:ns kvantiseringsförlust för gaussisk indata dras av från varje länk, flaggad som ogiltig för icke-gaussiska jammers).
Oberoende referens
En oberoende omräkning i Python av varje acquisition-flagga (xval/jamming-acq-agc/hysteresis.py) från motorns effektiva C/N0 per epok, en oberoende Monte Carlo i numpy av kvantiseringsförlusten (xval/jamming-acq-agc/quantiser_mc.py, egen sökning efter optimalt steg, 2^22 sampel) och IQ-lagrets AGC-slinga. Trösklar förhandsregistrerade i 70c72fcc, med en kompletterande körningsuppsättning registrerad i 37793290. MET: additivitet (alla 150 scenarioresultat byteidentiska utan sektionerna); varje flagga lika på de kompletterande körningarna (1824 länkar, 732 av dem visar hysteresen); monoton i tröskeln; kvantiseringsförlusten inom 0,0007 dB från Monte Carlo vid 1 till 4 bitar (tröskel 0,02 dB); AGC-avläsningen inom 0,012 dB från AGC-slingan (tröskel 0,05 dB). NOT MET: de registrerade körningarna för hysteres (jamming-demo vid 10 till 30 dBW) var ointressanta, med varje länk förlorad, och deras H2 och H4 är uppfyllda bara trivialt. Fynd: med en CW-jammer förlorar en 1-bitars ADC omkring 5 dB mer än det gaussiska tal som motorn tillämpar, och flaggar det som ogiltigt. VAD SOM INTE KONTROLLERAS: själva acquisition-sökningen, AGC-dynamik i tiden, någon mottagarhårdvara. Omräkningar av samma modell, inte en extern oberoende referens; raden förblir MODELLED.
ModelledBegränsad FLL-inlåsning under standardutformningens golv för FLL-till-PLL-överlämning (tillval)iq::track (LoopConfig,FllGate,design); iq::track::channel (the FLL gate)
Förmåga
Tillvalet carrier.fll_pull_in_max_s i iq::track (fältet fll_pull_in_max_s i iq::track::LoopConfig): under fll_assist = pull-in lämnar FLL över till PLL efter en fast inlåsningstid oavsett PLI, med en motsvarande återgångsvilotid tills PLI först når fll_off_pli.
Oberoende referens
Intern konsistens mot injicerad referens: en syntetisk datafri GPS L1 C/A-källa (PRN 13, 1500 Hz, 4,1 MHz, 8 s, tio brusfrön) vars bärvågsfas är känd, under trösklar förhandsregistrerade i 58789af0 (docs/design/evidence/fll-handover-floor/). MET: kontrollen (den obegränsade standarden lämnar aldrig över i 9 av 10 frön vid 33 dB-Hz); additivitet (standardhashen och de befintliga spårningstesterna oförändrade); inlåsning av en överlämning 100 Hz fel vid 45 dB-Hz. NOT MET: med ett tak på 1,0 s, överlämning och hållning i varje körning (16 av 20 vid 33 dB-Hz, 8 av 20 vid 31 dB-Hz; resten växlar mellan påtvingade överlämningar och FLL:ens återgång) och fasjitter inom 25 % av enbart PLL (10,8 mot 6,1 grader vid 33 dB-Hz). VAD SOM INTE KONTROLLERAS: databitar, andra signaler och samplingshastigheter, fältinspelningar. Standarden är oförändrad; raden förblir MODELLED.
ModelledRTKLIB .pos-lösningsläsare för receiver-trustreceiver_trust::machines::rtklib (read_rtklib_pos); receiver_trust::LogFormat::RtklibPos
Förmåga
Läser en RTKLIB-lösningsfil (kalendertid eller GPS-vecka/TOW-tid, latitud/longitud eller ECEF-position, använda satelliter) in i tidslinjen för receiver-trust (receiver_trust::machines::rtklib).
Oberoende referens
Ingen extern oberoende referens: ingen fil producerad av RTKLIB lästes, och kolumnlayouten kommer från RTKLIB-manualen. Kontrollerad endast på självskrivna filer; ECEF-omvandlingen återanvänder frames::ecef_to_geodetic, som har egna rader
ModelledNovAtel OEM7 ASCII- och binärloggar (BESTPOS, RANGE, RXSTATUS) för receiver-trustreceiver_trust::machines::novatel (read_novatel,novatel_crc32); receiver_trust::LogFormat::Novatel
Förmåga
Läser BESTPOS (position), RANGE (C/No per signal) och RXSTATUS (mottagarens jammer-flagga, som epokens självrapport) från ASCII- och binära OEM7-loggar, CRC-kontrollerat, skrivskyddat (receiver_trust::machines::novatel).
Oberoende referens
Ingen extern oberoende referens som godkännandetröskel. Fältlayouterna och CRC följer den offentliga OEM7-dokumentationen (docs.novatel.com); CRC-rutinen kontrollerades en gång mot det CRC som dokumentationen anger för sitt eget BESTPOSA-exempel (citerat, inte återgivet ordagrant). Fixturerna är självskrivna; ingen logg från en verklig mottagare lästes
ModelledLäsare för bärvåg-till-brus i RTCM 3 MSM4 och MSM7 för receiver-trustreceiver_trust::machines::rtcm3 (read_rtcm3,crc24q); receiver_trust::LogFormat::Rtcm3
Förmåga
Läser C/N0 för varje signalcell i RTCM 3 MSM4- och MSM7-meddelanden (GPS, GLONASS, Galileo, SBAS, QZSS, BeiDou, NavIC) från en ramström, CRC-24Q-kontrollerat (receiver_trust::machines::rtcm3). Layouter från de BSD-licensierade pyrtcm-tabellerna, inte från RTCM-standardens text.
Oberoende referens
ReferenceImpl i en engångskontroll, inte ett test i sviten: avkodaren i pyrtcm 1.2.0 läser samma självskrivna ramar till samma C/N0 och epoktid. Den delar sina tabellers källa med den här läsaren, så den kontrollerar bithanteringen, inte layouten. Ingen inspelning från en verklig mottagare eller basstation lästes
Tester
receiver_trust::machines::rtcm3::tests (CRC-24Q-katalogkontrollvärde, MSM4/MSM7 C/N0 och epoksammanslagning, GLONASS-tid och SBAS-id-avbildning, dålig CRC och andra meddelanden)
ModelledGNSS-SDR-övervakaradapter för receiver-trustreceiver_trust::machines::gnss_sdr (read_gnss_sdr_monitor); receiver_trust::LogFormat::GnssSdr
Förmåga
Läser meddelanden från GNSS-SDR Monitor (Gnss_Synchro) och PVT-monitor, vidarebefordrade till JSON-rader med proto-fältnamnen, till C/N0 per kanal, positionsbestämning, använda satelliter, HDOP och himmel (receiver_trust::machines::gnss_sdr; integrations/gnss-sdr/relay.py).
Oberoende referens
Ingen extern oberoende referens: fältnamnen kommer från GNSS-SDR-dokumentationen; varken läsaren eller relay.py kördes mot en levande GNSS-SDR eller en verklig inspelning
ModelledIMU-logginläsning, gyroindata för färdriktning och Allan-anpassning av parametrar för hybridsensorerreceiver_trust::machines::imu,imu_fit; surface::imu_fit; scenario [log.imu]
Förmåga
Läser en IMU-CSV (dokumenterade kolumner, eller EuRoC-layouten); integrerar girhastigheten till den färdriktning som övervakaren för färdriktning mot kurs läser ([log.imu]); och anpassar accelerometerns och gyrots brusparametrar för scenarierna hybrid och fusion från en stillastående logg med överlappande Allan-avvikelse (imu-fit).
Oberoende referens
Ingen extern oberoende referens: anpassningen kontrolleras på syntetiska loggar med vitt brus och kända koefficienter, färdriktningen på loggar med konstant girhastighet. Ingen verklig IMU-logg anpassades, och q_aa anpassas inte
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…
ModelledHome Assistant MQTT-discovery och tillståndsexportör för förtroendetelemetritelemetry::mqtt (discovery,state_json,connect_packet,publish_packet,MqttSink); surface::TelemetryFormat::Mqtt
Förmåga
Ett JSON-tillståndsdokument och Home Assistant MQTT-discovery-meddelanden för förtroendeströmmen, utskrivna som text på varje yta och publicerade över MQTT 3.1.1 QoS 0 av CLI:t (telemetry::mqtt; trust-telemetry --mqtt-tcp, --print-mqtt, format mqtt).
Oberoende referens
Ingen extern oberoende referens: paketen lästes av en loopback-lyssnare skriven för testet, inte av en verklig broker, och Home Assistant kördes inte
Tester
telemetry::mqtt::tests (packet bytes, loopback broker, dead broker counted); tests/receiver_trust_machines.rs::trust_telemetry_mqtt_text_has_discovery_then_state
ModelledROS 2-paket för receiver-trust och gnss_lib_py-bryggaintegrations/ros2/kshana_trust (bridge.py,trust_node.py); integrations/gnss_lib_py/kshana_gnss_lib_py.py
Förmåga
En ROS-fri brygga som skriver positions- och satellitmeddelanden som NMEA och poängsätter dem genom Python-bindningen (integrations/ros2/kshana_trust), och en brygga från gnss_lib_py NavData till receiver-trust genom formatet rtklib-pos (integrations/gnss_lib_py).
Oberoende referens
Ingen extern oberoende referens: ROS-noden kördes inte på en levande ROS 2-graf, och fältnamnen i ublox_ubx_msgs kontrollerades inte mot en körande drivrutin. gnss_lib_py (MIT) kördes för brygg-testet
Tester
tests/receiver_trust_machines.rs (rtklib_pos_runs_as_a_receiver_log: formatet som bryggan gnss_lib_py skriver, körd genom receiver-trust); Python-testerna för bryggorna är…
Ingenting matchar det filtret.
Genereras ur motorns verifieringsmatris och fastlåses av ett test. Rulla i listan, eller öppna en rad för dess förmåga, oberoende referens och tester. Hela tabellen, alla kolumner på en gång, finns i dokumentationen: Förmågereferens.
ProBehöver du det här registret som ett reproducerbart bevispaket av revisionsklass för en granskningsnämnd? Kshana Pro paketerar det.
04Reproducerbart som standard
Kör om det. Få samma tal.
Gratis kärna Ett resultat är reproducerbart bit för bit utifrån scenario, frö och motorversion. Inget här kräver en licens, ett konto eller oss.
Stämpeln som varje result.json bärInspelad körning
Den här är från den registrerade körningen av klock-holdover. Öppna den i Kshana Studio, eller kör om den själv:
Installera motorn.Eller pip install kshana, eller någon annan kanal.
Kör samma scenario.Den skriver result.json, chart.svg, report.html och table.csv bredvid scenariot.
Jämför stämpeln.Scenariots hash är ett SHA-256-sammandrag (256-bitars Secure Hash Algorithm) över det kanoniska scenariot: frö, trösklar, modellparametrar. Ändra vilken indata som helst och hashen ändras. Varje diagramfot bär dess första 12 hextecken.
Låt motorn kontrollera sig själv.Vid varje bygge bekräftar tester att de publicerade siffrorna fortfarande kan återskapas (tests/published_figures_still_reproduce.rs) och att varje registerrad anger ett test och hänvisar till evidens som finns (tests/verification_rows_name_a_test_that_exists.rs, tests/verification_rows_cite_evidence_that_exists.rs).
05Standardrutnät
Talar de format du redan lämnar in.
18 standarder och format som motorn implementerar. Ett grönt märke betyder att den är kontrollerad mot verkliga data, ett publicerat exempel eller en oberoende referensimplementation.
TLE / SGP4AIAA 2006-6753KontrolleradTLE tvåradig elementuppsättning · SGP4 Simplified General Perturbations 4, en banmodell · AIAA American Institute of Aeronautics and Astronautics
RINEX 3verkliga IGS-data → lantmätt koordinatKontrolleradRINEX Receiver Independent Exchange Format · IGS International GNSS Service
SP3-c / danpassning till verkliga precisa banor från ESA/ESOCKontrolleradSP3 Standard Product 3, ett format för precisa banor · ESA Europeiska rymdorganisationen · ESOC Europeiska rymdoperationscentrumet
CCSDS OEM / OMMtolkar OEM-exemplet i CCSDS 502.0-B-3 Blue BookKontrolleradCCSDS Consultative Committee for Space Data Systems · OEM banefemeridmeddelande · OMM banmedelelementmeddelande
IS-GPS-200utsänd efemerid → PVT med verkliga dataKontrolleradIS-GPS-200 GPS-gränssnittsspecifikation för L1- och L2-signalerna · GPS Global Positioning System · PVT position, hastighet och tid
IEEE 1139ADEV/MDEV/TDEV/HDEV mot referensavvikelserna i NIST SP 1065KontrolleradIEEE Institute of Electrical and Electronics Engineers · ADEV Allan-avvikelse · MDEV modifierad Allan-avvikelse · TDEV tidsavvikelse · HDEV Hadamard-avvikelse · NIST National Institute of Standards and Technology
RAIM / ARAIMdetektionskärna för ögonblicksbild (χ²/icke-central χ²/normal) mot SciPy · MHSS-budgeten för ARAIM väntar på granskningKontrolleradRAIM autonom integritetsövervakning i mottagaren · ARAIM avancerad autonom integritetsövervakning i mottagaren · MHSS lösningsseparation med flera hypoteser
SBAS / DO-229EDO-229E HPL/VPL mot RTKLIB SBAS-PL-gaffel på verkliga EGNOS-data · L1/L5 jonosfärsfriKontrolleradSBAS satellitbaserat förstärkningssystem · DO-229E RTCA:s minimikrav på driftprestanda för mottagare till satellitbaserade förstärkningssystem, revision E · HPL horisontell skyddsnivå · VPL vertikal skyddsnivå · RTKLIB ett GNSS-positioneringsbibliotek med öppen källkod · EGNOS European Geostationary Navigation Overlay Service
IONEX / KlobucharKlobuchar L1-fördröjning mot RTKLIB ionmodel · IONEX TEC-kartläsare tolerant, ännu ingen extern oberoende referensKontrolleradIONEX Ionosphere Map Exchange format · RTKLIB ett GNSS-positioneringsbibliotek med öppen källkod · TEC total elektroninnehåll
IGRF-14mot officiella BGS IGRF-14-värdenKontrolleradIGRF-14 International Geomagnetic Reference Field, 14:e generationen · BGS British Geological Survey
CCSDS 133,0primärhuvud mot CCSDS 133.0-B-2 + spacepackets-py-vektorerKontrolleradCCSDS Consultative Committee for Space Data Systems
CCSDS TDMtolkar TDM-exemplet i CCSDS 503.0-B-2 Blue BookKontrolleradCCSDS Consultative Committee for Space Data Systems · TDM spårningsdatameddelande
CCSDS 401 / DSNlänkekvation mot publicerad DESCANSO/JPL Galileo DCTKontrolleradCCSDS 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 konstruktionskontrolltabell, arbetsbladet för länkbudgeten
IMO:s vägledning om GNSS-störning (fartyg)IMO:s vägledning för fartyg, mappad via klausulnummerImplementeradGNSS Global Navigation Satellite System
EU:s NIS2, artikel 21riskhanteringsåtgärder, mappade via klausulnummerImplementerad
EN 16803rymdbaserad PNT inom transport, mappad via klausulnummerImplementeradPNT positionering, navigering och tidssynkronisering
USA:s DHS-ramverk för resilient PNTResilient PNT Conformance Framework, mappat via klausulnummerImplementeradDHS USA:s inrikessäkerhetsdepartement · PNT positionering, navigering och tidssynkronisering
EASA:s vägledning om GNSS-störning (luftfart)EASA:s vägledning för luftfart, mappad via klausulnummerImplementeradGNSS Global Navigation Satellite System
Ingenting matchar det filtret.
När en granskning behöver mer
Samma evidens, paketerad eller utförd åt dig.
Motorn och allt ovan förblir gratis. Två betalda vägar bygger på dem, under avtal.
Pro
Kshana Pro: ett uppdragsdossier och ett bevispaket
Kshana Pro paketerar den evidens som en granskning eller upphandlingsnämnd begär, reproducerbart. Det bygger på detta register, där varje förmåga anger sin oberoende referens och sitt test, och på stämpeln som varje resultat bär. Med ett enda kommando kontrollerar ett uppdragsdossier varje krav mot verkliga körningar och skriver en verifieringsmatris med sina öppna punkter och en PDF (Portable Document Format).
En skräddarsydd studie besvarar din egen fråga med samma etiketter: varje siffra validerad eller modellerad, inte en certifiering. Exportkontrollerat arbete hanteras under säkerhetsprövning och NDA (sekretessavtal).
kshana-bench fastställer uppgifterna, uppdelningarna och måtten för detektion av GNSS-störning och tidssynkroniseringens holdover, med baslinjer vars trösklar skrevs ned före den första poängsatta körningen. En poäng beskriver en logg eller en korpus, aldrig en produkt.
6 artiklar på arXiv, det öppna preprintarkivet, byggda på den öppna motorn. Var och en öppnar en siffra som körts om på motorn, dess iakttagelser, kommandot och dess DOI (Digital Object Identifier).
Månnavigering · arXiv:2610,23871
Cislunar navigation is an observability problem: arc-length thresholds, Gramian conditioning, and the Doppler lever
I cislunär rymd gäller inte dilution of precision: länkar med enbart avstånd lämnar hastigheten icke observerbar vid varje enskilt ögonblick, så krav hör hemma i budgetar för båglängd, konditionering och mätningstyp.
I motorkörningen har geometri med enbart avstånd vid ett ögonblick rang 2 av 4, så en dilution of precision är odefinierad; hela tillståndet blir observerbart efter en båge på 2,09 h.
Att lägga till avståndshastighet lyfter den momentana rangen från 2 till 4: en Doppler-kapabel länk gör att en ögonblickslösning finns där en länk med enbart avstånd inte kan ge någon.
Bortom tröskeln förbättras konditioneringen med båglängden, så krav läses bättre som budgetar för båglängd, konditionering och mätningstyp.
Hur Kshana återskapar det
Scenariotypen cislunar-observability differentialkorrigerar fyra plana avlägsna retrograda banor, sätter samman Jacobianerna för avstånd och avståndshastighet genom tillståndsövergångsmatrisen för trekroppsproblemet och rapporterar den observerbara rangen över en växande spårningsbåge, observerbarhetsgramianens konditionstal och ett kvadratrotsinformationsfilter som beräknar om samma storhet på ett andra sätt.
Figuren. Det medföljande scenariot: fyra differentialkorrigerade plana avlägsna retrograda banor, spårade med avståndsmätning mellan satelliter över en båge på 6 h samplad var 0,26 h.
Återskapa det
Kör scenariotypen cislunar-observability (scenarios/cislunar-observability.toml) med den installerade motorn.
@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ånnavigering · arXiv:2607,06212
The Cost of Lunar South-Polar Geometry, and Surface Beacons as the Efficient Fix: A Dilution-of-Precision Analysis
Planerade banor klumpar ihop sig rakt ovanför en användare vid månens sydpol; några avståndsbeacons på närliggande höjder rättar till geometrin billigare än fler satelliter.
I den medföljande körningen sänker den enda beacon som kommer över horisonten den geometriska dilution of precision från 11,66 till 4,998; en konstellation med 24 satelliter når i stället 2,893.
De satelliter en användare vid sydpolen ser klumpar ihop sig i ett litet fält rakt ovanför, så geometrin begränsas av deras spridning, inte av deras antal.
Några beacons på förhöjd terräng når en geometri som en utformning med enbart banor bara når med en mycket större flotta.
Hur Kshana återskapar det
Typen lunar-beacon bygger avståndsgeometrin för en omloppskonstellation plus de inmätta ytbeacons som kommer över den luftlösa horisonten, på DOP-kärnan som kontrollerats mot ett oberoende bibliotek, och rapporterar varje konfigurations dilution of precision och dess noggrannhet i meter.
Figuren. En epok av det medföljande scenariot, dess standardgeometri: enbart satelliterna, satelliterna plus de beacons som kommer över horisonten, och en konstellation med 24 satelliter i stället.
Återskapa det
Kör scenariotypen lunar-beacon (scenarios/lunar-beacon.toml) med den installerade motorn.
@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ånnavigering · arXiv:2607,02566
Earth-baseline VLBI restores the observability of a lunar surface station in joint orbit-and-clock determination
Avståndsmätning inom det lunara nätverket fastställer bara relativ geometri; en interferometrisk fördröjning över en baslinje på Jorden knyter en ytstation till jordens referenssystem, även med få satelliter. VLBI interferometri med mycket lång baslinje
SiffraModelledMotor v0.40.0 · lunar-joint-od-clock.toml · frö 42Öppna i Kshana Studio
Registrerad på macOS som publicerad. En ny körning på Linux x86-64 ger 2184 m / 3,537 m (värdberoende i lösarens iterat, issue #36 rad 6).
Viktiga iakttagelser
Avståndsmätning inom det lunara nätverket lämnar klustret fritt att förskjutas och rotera osett; klockorna förblir observerbara, så defekten är rent positionell.
I motorkörningen (3 satelliter) har Fisher-informationen utan interferometribenen rang 15 av 16; med dem har den full rang och en Cramér–Rao-gräns på 20,1 m.
Med en rik konstellation skärper interferometrikopplingen bara gränsen; med en gles konstellation återställer den stationens absoluta position.
Hur Kshana återskapar det
Typen lunar-joint-od-clock fuserar interferometriska fördröjningar över jordbaslinjer, lunart lokala avstånd och avstånd mellan satelliter i en enda minsta kvadrater-anpassning i batch, kör den med och utan interferometribenen på samma frö och rapporterar rangen hos Fisher-informationen, datumdefekten och Cramér–Rao-gränsen.
Figuren. Det medföljande simulerade nätverket: 3 lunara satelliter, 6 jordstationer, en ytstation, samma frö och referens för båda anpassningarna.
Återskapa det
Kör scenariotypen lunar-joint-od-clock (scenarios/lunar-joint-od-clock.toml) med den installerade motorn.
@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}
}
A Conditional Timing Protection Level: Holdover-Limited Undetected Time Error Under GNSS Spoofing
En registrerad spoofing visar en tidsmottagare som levererar tid som är långt mer fel än den rapporterar; ingen ovillkorlig gräns finns, så artikeln begränsar det oupptäckta felet villkorligt. GNSS Global Navigation Satellite System
En offentlig registrerad spoofing drog mottagarens levererade tid med ungefär 1,01 ms medan den rapporterade högst 51 ns.
Mot en tillräckligt långsam ramp finns ingen ändlig ovillkorlig gräns, så gränsen är villkorad av att en oberoende kontroll mellan satelliter detekterar attacken.
Motorns Timing Protection Level är 114 ns vid 1 s detektionslatens och 458 ns vid 60 s.
Hur Kshana återskapar det
Modulen Timing Protection Level lägger en monitors detektionsgolv till oscillatorns glidning under detektionslatensen. Exemplet kalibrerar den med de skalärer som återvunnits ur den offentliga inspelningen JammerTest 2024; råinspelningen levereras inte.
Figuren. Exemplets utskrift: den villkorliga Timing Protection Level vid fem detektionslatenser, och de två skalärer den återvann ur den offentliga inspelningen JammerTest 2024.
Återskapa det
Återskapar studieartefakten ur examples/tpl_jammertest.rs, i en klon av förvaret.
Citera 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}
}
Poängsättning av resiliens · arXiv:2607,05415
How Stable Is a PNT Resilience Score? Decision-Instability of Single-Number Resilience Ratings under Framework-Aligned Weighting
Resiliensbetyg i ett enda tal för positionering, navigering och tidssynkronisering är stabila endast där en utformning dominerar; viktning, hot och deklarerade tekniker kan vända dem. PNT positionering, navigering och tidssynkronisering
Enbart omviktning ändrar den högst rankade arkitekturen i 22 % av dragningarna under nominella förhållanden, och i högst 1,25 % under varje aktivt hot.
En mognadsnivå efter svagaste länk beror på det antagna hotet, inte bara på arkitekturen.
Eftersom den sammansatta poängen belönar deklarerade tekniker kan en utformning som deklarerar fler få högre poäng än en mer resilient.
Hur Kshana återskapar det
Modulen resilience poängsätter sju referensarkitekturer över de sju ramverkskategorierna och fem hot, drar kategorivikterna slumpmässigt ur en Dirichlet-fördelning och räknar hur ofta den högsta rangen ändras. Exemplet skriver hela studien som en enda deterministisk fil.
Figuren. 7 referensarkitekturer, 2 000 slumpmässiga kategoriviktningar per hot.
Återskapa det
Återskapar studieartefakten ur examples/resilience_report.rs, i en klon av förvaret.
Citera 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}
}
Radiofrekvensstörning · arXiv:2606,22054 · version 2
Anticipating the Optimism Gap: Predicting Distribution-Shift Degradation of RF-Impairment Detectors from In-Distribution Statistics
Hur mycket en störningsdetektor förlorar under förskjutna förhållanden kan förutsägas ur dess egna poäng inom fördelningen; syntetiska resultat, kontrollerade på öppna fältinspelningar. RF radiofrekvens
Gapet mellan area under kurvan inom fördelningen och under förskjutning växer när förskjutningen fördjupas, och beror på hur många observerbara storheter en detektor använder snarare än på om den är inlärd.
I motorkörningen förutsäger en ridge-modell på poängstatistik inom fördelningen gapet för en detektor den inte har sett (R² 0,46) och för en störningsklass den inte har sett (R² 0,33).
Huvudresultaten är syntetiska; artikeln kontrollerar dem sedan på öppna fältinspelningar.
Hur Kshana återskapar det
Impairment-studien genererar en syntetisk, parameterförankrad korpus för fyra störningsklasser, poängsätter tretton detektorer vid fyra förskjutningsgrader över fem frön och anpassar gap-prediktorn med leave-one-out-korsvalidering och ett permutationstest.
Figuren. 260 celler för detektor, klass och allvarlighetsgrad; varje förutsägelse görs för en detektor som lämnats utanför anpassningen.
Återskapa det
Återskapar studieartefakten ur examples/optimism_study.rs, i en klon av förvaret.
Citera 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}
}
Citera motorn
Varje utgåva arkiveras på Zenodo med en citerbar DOI, och en CITATION.cff medföljer i förvaret. Citera motorversionen, scenariot och fröet.
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 för motorn
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}
}