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

Validering och evidensRedigera på GitHubKälla: docs/VERIFICATION-MATRIX.md

Verifieringsmatris

Det fullständiga, maskinkontrollerade evidensregistret: 401 rader — 176 VALIDATED, 221 MODELLED, 4 PARTNER. En rad får vara VALIDATED bara med en oberoende extern referens (matrisens invarianttester upprätthåller detta). Samma data, med klickbara länkar per rad till varje test, modul och incheckad fixtur, är Valideringsregistret på https://kshana.dev. Se MODELLED-RATIONALE.md för varför varje modellerad rad inte är externt validerad.

ID Krav Förmåga Modul Tester Oberoende referens Status
VM-60fc9ecb Identifiering av potenslagsbrus med autokorrelation vid lagg 1 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 allan (lag1_noise_id, lag1_acf) 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ämst |d alpha| 9.6e-13 och |d rho| 4.8e-13 mot 1e-9; förhandsregistrerad 2ec76864); allan::tests (lag1_identifies_white_pm_white_fm_and_random_walk_fm; lag1_is_blind_to_a_quadratic_phase_trend) 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 VALIDATED
VM-455af4b5 Autentisering av navigeringsdata i mottagaren för Galileo OSNMA 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 osnma (page, subframe, dsm, merkle, signature, tesla, mac, maclt, navdata, verifier, ubx, cli) tests/osnma_official_vectors.rs (frivilligt, KSHANA_OSNMA_VECTORS: alla 18 vektormängder, 186 382 taggar autentiserade, 0 misslyckade, golv per mängd, kedjor tillkännagivna, ADKD 0/4/12, larm verifierat, autentisering som återupptas efter kedjans slut, kedje- och nyckelåterkallelse och ny publik nyckel; offline, vektorerna omdistribueras inte); tests/osnma_synthetic.rs (attacksviten: spoofade underramar långt i framtiden, utgång och databindning, larm och använd-ej, rubrikbekräftelse, dummytaggar, MACSEQ, nyckelkonflikt, föråldrad och återspelad KROOT, CMAC-AES/SHA3-256/P-521 genom verifieraren); osnma-enhetstester (kända svar för RFC 4231, RFC 4493, FIPS 197, FIPS 202, RFC 6979 och CRC-24Q) 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 VALIDATED
VM-27e53cda Karakterisering av frekvensstabilitet Allan-/modifierad/Hadamard-deviation + identifiering av potenslagsbrus med χ²-konfidensintervall allan tests/allan_reference.rs (NBS14 mot Stable32 till 1e-4); allan::tests NIST SP 1065 (Riley) / Stable32 referensdeviationer på NBS14 VALIDATED
VM-f329e455 Frekvensstabilitet på en verklig uppmätt klocka Överlappande Allan- och överlappande Hadamard-deviation på en verklig cesiumstandard allan tests/cs5071a_reference.rs (verklig 5071A Cs mot H-maser, 556 990 punkter, 16 averaging-faktorer mot Stable32 till 1e-3; databegränsad via scripts/fetch_cs5071a.sh) Stable32 överlappande ADEV/HDEV på den uppmätta fasserien för cesiumklockan 5071A (allantools) VALIDATED
VM-374517c9 Paritet för Allan-skattare på den kanoniska referensserien i Stable32 Överlappande Allan + modifierad Allan + tidsdeviation över hela AF-stegen allan tests/phasedat_reference.rs (Stable32 PHASE.DAT, 139 averaging-faktorer, OADEV/MDEV/TDEV till 1e-3; databegränsad via scripts/fetch_phasedat.sh) Stable32 referensdeviationer för PHASE.DAT (Riley; standardserien för regression) VALIDATED
VM-5ced4913 Frekvensstabilitet med utökat område (Theo1 / TOTDEV) 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 allan tests/theo1_totvar_reference.rs (Theo1 + TOTDEV på NIST SP 1065 §12,4 datamängden med 1000 punkter från LCG, 6 + 6 averaging-faktorer mot allantools 2024,06 till <1e-9); allan::tests (spårning av sluten form för vit FM; identiteten TOTVAR=ADEV vid m=1; invarians hos Theo1/TOTVAR mot fas-/frekvensoffset; lutning -1/2 för vit FM) 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 VALIDATED
VM-fb93df39 Maximum Time Interval Error (MTIE) — wander-mått för telekom 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 allan (mtie, mtie_curve) tests/mtie_reference.rs (MTIE på den hermetiska fasserien med 1000 punkter från LCG i NIST SP 1065 §12,4, 9 averaging-faktorer m=1..256 mot allantools 2024,06 mtie till <1e-9, observerat ≤4e-15); allan::tests (handhärledd topp-till-topp; monotont icke-avtagande i τ; exakt a·m på en ren ramp) 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 VALIDATED
VM-f2098d5f Modifierad Allan / tidsdeviation (MDEV / TDEV) 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 allan (modified_adev, time_deviation) tests/mdev_tdev_reference.rs (MDEV + TDEV på den hermetiska fasserien med 1000 punkter från LCG i NIST SP 1065 §12,4, 8 averaging-faktorer m=1..200 mot allantools 2024,06 mdev/tdev till <1e-9 relativt, plus identiteten τ/√3 på den verkliga serien); allan::tests (lutning −1/2 för vit FM; handhärlett litet MDEV-fall) 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) VALIDATED
VM-459d2f31 Frekvensstabilitet hos en optisk klocka på en verklig uppmätt kurva 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 quantum_trade (qparams_from_adev_curve), powerlaw tests/optical_clock_adev_reference.rs (Norcia et al. ⁸⁸Sr-pincettklockans σ_y(τ), 8 averaging-tider 0,92–117,76 s införlivade ordagrant under CC-BY-4.0: NNLS rekonstruerar kurvan till ~10% RMS / ≤21% sämsta punkt; återvunnet √q_wf = 4.33e-16 stämmer med det publicerade 4.7e-16/√τ; q_rw > 0 uppmätt golv för rött brus) 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 VALIDATED
VM-3cfc418d Integritet (RAIM/ARAIM/SBAS) 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 araim_reference (add_v42_protection_levels, add_v42_protection_levels_ecef); raim (snapshot_raim, snapshot_raim_fde, araim_raim, araim_dual_raim, solution_separation_raim); sbas (sbas_protection_level); lunar 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ämst |dVPL| 2.2e-3 m, |dHPL| 1.1e-3 m, |dEMT| 2.1e-10 m mot ADD:s TOL_PL 0,05 m); tests/integrity_araim_stanford_oracle.rs::uniform_sigma_matched_gap_finding (luckorna vid likformigt sigma, fastlåsta); tests/integrity_snapshot_raim_rtklib_oracle.rs::snapshot_raim_decisions_and_slope_levels_match_rtklib (verkliga IGS ABMF 2018-05-13, 288 epoker, 2016 fall med injicerade 10 till 100 m biaser: 2016/2016 detekteringsbeslut och 801/801 uteslutningsbeslut identiska, lutnings-HPL/VPL inom 2.7e-12 m mot 1e-6 m); tests/integrity_sbas_stanford_oracle.rs::sbas_l1_protection_levels_match_stanford_maast_on_real_waas_messages (2868 användarepokpar på verkliga WAAS-sändningar, samma skyddade mängd, sämst |dVPL| 7.1e-6 m och |dHPL| 1.6e-5 m mot 1e-4 m); tests/integrity_sbas_stanford_oracle.rs::sbas_l5_finding_geo_reception_gate (L5-fyndet, fastlåst); tests/igs_real_data.rs och tests/araim_dual_real_data.rs (rimlighetskontroll på verklig IGS SP3- och Celestrak-geometri, behållna som regressionskontroller, inte som referenser) 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) VALIDATED
VM-e73617ea Banpropagering och banbestämning SGP4/SDP4, Cowell 6-DOF + störningar, batch-/sekventiell OD sgp4, propagator, orbit_determination, precise_od tests/sgp4_verification.rs (666 verifieringsvektorer från AIAA, sämst 4,12 mm); tests/sgp4_crate_comparison.rs (oberoende sgp4-crate) Verifieringsvektorer för SGP4 enligt AIAA 2006-6753 VALIDATED
VM-7b9f2f5d Numerisk Cowell-propagator och kraftmodell 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 propagator, forces 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ämst |Δr| 0,08 m över 24 h; dragnivån karakteriserad vid 333 m) 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) VALIDATED
VM-69a790eb SRP-skugga för avplattad jord (valfri) 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) srp_shadow, forces (srp_accel_with_lit_fraction), propagator tests/srp_oblate_shadow_orekit_oracle.rs (2400 geometrier över skuggkanten, 884 i halvskugga, LEO till GEO, soldeklination 0 och +-23.44 grader, 8 azimuter: sämst |dnu| 7.41e-9 för WGS-84 och 2.24e-9 för den sfäriska baslinjen; Orekits kvoter för WGS-84 och sfärisk skiljer sig med upp till 0,98, så mängden skiljer ut tillplattning); enhetstester för srp_shadow och propagator 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) VALIDATED
VM-7244b960 SRP med box-wing och ECOM2, med partialer (valfri) 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 srp_boxwing, propagator, precise_od tests/srp_boxwing_orekit_oracle.rs (252 geometrier för Galileo-banor, 7 solfall inklusive perihel- och afelavstånd, 100 slumpmässiga attityder; plattsumman sämst 2.05e-15 relativt över 1056 fall; från början till slut med Orekits egen attityd och eget tryck sämst 2.39e-15 över 747 fall i full sol, medan Orekits standardtryckkonstanter skiljer sig med >= 4.43e-3, så jämförelsen skiljer ut konstanten; nominell girmatris sämst 1.89e-15; partialen för strålningsfaktorn sämst 1.35e-15; partialer per panel sämst 4.12e-13 relativt mot centrala differenser i Orekit över 10836 panelfall; ECOM2-acceleration och partialer sämst 1.74e-15); enhetstester för srp_boxwing (gränsfall i sluten form, partialer med finita differenser); kopplingstester för propagator och precise_od 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 VALIDATED
VM-dfdd58c8 Solens limbmörkade SRP-skugga (valfri) 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) srp_shadow srp_shadow::tests (den ringformade slutna formen, den enhetliga lagen som återger den koniska skuggan, gränserna full sol och umbra) Ingen extern: Orekit 12,2 har ingen limbmörkad belysningskvot. Endast kontrollerad mot slutna uttryck för samma lag MODELLED
VM-34cdc433 Termosfärens densitet enligt NRLMSISE-00 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 nrlmsise00 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 med C-porten; de 17 publicerade C-testfallen, 187 värden inom 0,496 enheter av den 7:e signifikanta siffran); enhetstester för nrlmsise00 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 VALIDATED
VM-c19ea19a Nivå för luftmotståndets densitet med NRLMSISE-00 (valfri) 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 forces (density_at, drag_accel_with_density), propagator tests/drag_tier_orekit_oracle.rs (4 fall x 25 timtillstånd över 24 h, cirkulär 51,6 grader, 400 km vid låg/måttlig/hög aktivitet och 300 km: sämst |dr| 0,0303 m och |dv| 3.36e-5 m/s mot 3,3 till 141,8 km dragförskjutning, sämst fel/tröskel 0,003; kontrollen med exponentiell densitet missar med 119,1 m); enhetstester för forces och propagator (standard bitidentisk; nivån utvärderar porten i den jordfasta geodetiska punkten) 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 VALIDATED
VM-36db0ce5 Standardmässigt exponentiellt luftmotstånd mot en oberoende implementering (ekvatoriellt) 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) forces (atmospheric_density, drag_accel), propagator tests/drag_exponential_gmat_oracle.rs (ekvatoriella fall E400, E300 och E250x600 vid J2000.0, 25 timtillstånd över 24 h: den dragorsakade förskjutningen stämmer med GMAT:s till högst 0,016 av tröskeln 0,5 m + 1e-3|D| mot 21,5 till 143,9 km förskjutning; en ändring av Cd*A/m med +1 % når 9,83 gånger tröskeln; det lutande fallet I400 redovisas, 10,4 % ifrån, den angivna skillnaden i höjddefinition) 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 VALIDATED
VM-6c291c83 Sol och Måne enligt DE440 i Cowell-kraftmodellen (valfri) 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 propagator (ForceModel::with_ephemeris, ForceEphemeris), ephem_provider 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; den analytiska seriekontrollen avviker med 9,96 m; Sol 6,39 m och Måne 0,244 m från Orekits DE440-positioner, en registrerad miss); enhetstester för propagator (avslag från leverantör, räkning av reservlösning delad mellan kloner) 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 MODELLED
VM-555b0707 Atmosfärstid S1 (valfri) 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) tides, propagator, precise_od tides::tests (S1-termen är dygnsvis, vrider 90 grader på ett kvarts dygn och har lastfaktoramplituden för varje rad; fysikalisk storlek vid LEO); propagator::tests::the_s1_air_tide_flag_adds_exactly_the_s1_acceleration 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 MODELLED
VM-9ad1723e Koefficienter för atmosfärstiden S2 enligt IERS-konventionen 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 tides (s2_air_waves, atmospheric_tide) tests/s2_air_tide_gfz_table5.rs (21 av 21 vågor stämmer med den publicerade modellen A2: sämst 0,00050 cm, 0,050 grader mot trösklar på 0,0006 cm, 0,1 grader); tests/tides_iers.rs (S2-amplitudband) 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 VALIDATED
VM-ab8e111d Tesseral geopotential i Cowell-propagatorn 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 propagator (Geopotential, EarthFixedFrame), gravity_sh tests/cowell_tesseral_orekit_oracle.rs (6 fall x 25 timtillstånd över 24 h: EGM2008 8x8 och 70x70 på LEO 45 grader, polär 89,9 grader, solsynkron 98,2 grader, GTO, och 70x70 med sol/måne och SRP; sämst |dr| 0,0355 m, |dv| 3.74e-5 m/s; negativa kontroller missar med 6168 m (fryst jord) och 20871 m (endast zonal)); enhetstester för propagator (zonal-gränsidentitet till 1e-12, CIO-system bit för bit mot precise_od, Jacobi-integralen hållen till 1e-9 över 6 h) 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 VALIDATED
VM-011311b1 Sfäriskt harmoniskt gravitationsfält av hög grad (EGM2008 till 2190) 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 gravity_sh, propagator (FieldEvaluator) 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, datastyrd på KSHANA_EGM2008_GFC); tests/cowell_tesseral_200_orekit_oracle.rs (bana på 24 h med 200x200, datastyrd: sämsta |dr| 0,1317 m, |dv| 1.45e-4 m/s; kontroll på grad 70 0,726 m); enhetstester för gravity_sh (samstämmighet med den klassiska utvärderaren till 1e-13 vid grad 70, finit differens och polkontinuitet på ett fält av grad 2190, en underflödande term av grad 2190 mot en beräkning med utökad exponent) 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 MODELLED
VM-c46b5c0f Integratorn DOP853 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 integrator, propagator 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 accept/avslag identiska; 3 fullständiga körningar vid rtol = atol = 1e-12 (LEO 58000 s, e = 0,7 över 5 perioder, Arenstorf över en period): initialt steg identiskt, accepterade steg 502/501, 390/390, 298/298 och utvärderingar 6025/6013, 5497/5497, 4285/4285 mot SciPy, sluttillstånd inom 2.95e-13 relativt (tvåkroppsproblem) och 1.58e-12 (Arenstorf), tät utdata inom 9.5e-13; noggrannhet mot den exakta Kepler-lösningen i mpmath lika med SciPy:s (LEO 8.44e-5 m, Arenstorf-periodicitet 1.475e-9)); enhetstester för integrator och propagator (24 h tvåkroppsproblem mot exakt Kepler under 0,1 m) 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 VALIDATED
VM-801a1141 Robust lösare för Keplers ekvation 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) kepler, propagator tests/kepler_mpmath_oracle.rs (405 rutnätspunkter, e från 0 till 0,999999, M i [-pi, pi] ned till 1e-12: sämst |E - E_ref| 0,898 eps|E| mot en tröskel på 8 eps|E|; 9 upplindade M-punkter som mest 0,013 av sin tröskel; inget Newton-poleringssteg behövdes i någon av de 414 punkterna; omslaget bitidentiskt); enhetstester för kepler 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 VALIDATED
VM-16c33630 Batch-banbestämning med avståndshastighet och az/el med stationsmaskering Å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) orbit_determination (determine_orbit_batch_tracking, propagate_with_stm, is_visible), batch_ls (gauss_newton_analytic) tests/od_tracking_measurements_reference.rs (8 scenarier: range-rate, az/el och blandat, LEO och MEO, brusfritt och med frö sigma 5 m / 5 mm/s / 1e-4 rad, masker på 5 och 10 grader, mot Orekit 12,2: synliga mängder identiska; mätvärden inom 5.84e-8 m, 6.30e-10 m/s, 1.44e-13 rad; STM inom 1.2e-14 relativt; brusiga tillstånd inom 1,74 cm och 1.14e-5 m/s; RMS efter anpassning per typ inom 2.7e-4 relativt; brusfri kshana mot referens 1.06e-8 m; brusfri kshana mot Orekit 1,464 och 1,740 cm på två scenarier, en registrerad miss av tröskeln på 1 cm); enhetstester för orbit_determination och batch_ls 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 MODELLED
VM-f7b86f0a Viktning av observationer efter noggrannhetskod i SP3 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) sp3, precise_od src/sp3.rs enhetstester; tests/agency_galileo.rs::galileo_e11_sp3_accuracy_weighted_fit (incheckad ESOC-fixtur på 8 h, sigma 0,032 m från headerexponent 5: Tier-1 3D RMS 0,132 m oförändrad, Tier-2 0,035 m mot 0,070 m vid sigma 1 m, där ändringen kommer från den ombalanserade empiriska a priori-begränsningen); tests/agency_swarm.rs (Swarm-produkten bär inga noggrannhetskoder och faller tillbaka, fastnålad) 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 MODELLED
VM-70e79085 Planetära gravitationsfält från PDS SHADR-tabeller 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) gravity_pds, gravity_sh tests/planetary_gravity_pds.rs (utsnitt med grad 20 körs alltid: sämst |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 grader 5.0e-14 / 1.0e-10, databegränsade; rubriker och utvalda koefficienter lika med de publicerade PDS-produkterna, postantal 7380 och 218790); enhetstester för gravity_pds 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 VALIDATED
VM-4b74b49f Koppla ett publicerat gravitationsfält till en kropp 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 gravity_pds, body, propagator, mars_frame tests/planetary_gravity_pds.rs::a_shadr_field_attached_to_a_body_drives_the_propagator; gravity_pds::tests::with_gravity_field_is_opt_in 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 MODELLED
VM-9aa52bbe Batch- och sekventiell banbestämning Å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 orbit_determination, precise_od (batch_ls::gauss_newton, fusion::ukf) tests/batch_sequential_orbit_determination_reference.rs (8 scenarier: 6 brusfria LEO/MEO/excentriska/3–4 stationer + 2 σ=5 m, mot Orekit 12,2; sämsta batch |Δr| 1e-3 m / |Δv| 1e-6 m/s, sekventiell |Δr| 0,9 m) 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 VALIDATED
VM-7d653b9e Lösare för radiometrisk ljustid i djupa rymden Retarderad (nedlänk) enkelriktad ljustidslösning τ = |r_rx − r_target(t−τ)|/c för radiometrisk navigering i djupa rymden (jorden→Mars/Solen/Månen) radiometric (light_time_solution) tests/deep_space_mars_radiometric_reference.rs (24 ben över 8 epoker 2020–2027 mot ANISE DE440; sämst |Δτ| 1.03e-9 s, |Δrange| 0,31 m på upp till 2,5 AU) 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 VALIDATED
VM-ddaed06d Satellitposition ur sändningsefemerid (RINEX för flera GNSS) Keplersk → ECEF-satellitposition ur sändningsefemerid för IS-GPS-200 / Galileo-OS / BeiDou-OS från en tolkad navigeringspost i RINEX-3 rinex (parse_nav, RinexEphemeris::sv_position_ecef) tests/rinex_sp3_interop_reference.rs (84 fall för SV-epoker: GPS + Galileo + BeiDou-MEO, 12 SV × 7 offsetar, mot RTKLIB eph2pos; sämst |Δ| per axel 6.2e-8 m) 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') VALIDATED
VM-771c34bd Interpolation av precisa efemerider i SP3 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) sp3 (Sp3Interpolator::position_ecef) tests/sp3_interp_reference.rs (72 fall för SV-epoker utanför noder / 6 satelliter mot RTKLIB peph2pos; sämst |Δ| per axel 1.5e-8 m) 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 VALIDATED
VM-a5c3941a Kodare för navigeringsmeddelanden utöver GPS LNAV (GPS CNAV, Galileo I/NAV och F/NAV) 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 gnss_navmsg (gps_cnav, gal_inav, gal_fnav, fec) gnss_navmsg::tests (CRC-24Q-kontrollvärde 0xCDE703; faltningskodens impulssvar; Viterbi rättar inmatade fel; layoutbredder); tests/gnss_navmsg_roundtrip.rs (fältens startbitar är lika med ICD:ns bitnummer; kodning -> FEC -> interfoliering -> Viterbi -> avkodning ger tur-och-retur inom en halv LSB); tests/gnss_navmsg_galileo_brdc_grid.rs (IGS BRDC 2018-133 Galileo-poster på LSB-rutnätet, sämsta 3.6e-3 LSB; tröskeln för antal satelliter som fastställts i förväg nåddes inte, 15 av 20, FINDING) 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 MODELLED
VM-fd4e4555 Läsare och interpolation för IONEX globala jonosfärskartor på en verklig CODE GIM 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 ionex (parse_ionex, parse_ionex_file, IonexFile::vtec_at, IonexFile::slant_tec_at, interpolate_tec_in_time, TecGrid::vtec_at) tests/ionex_code_gim_oracle.rs (incheckad syntetisk IONEX-karta mot formelreferensen: 20 075 noder exakta, interpolation max |Δ| 3.5e-13 TECU; databegränsad på KSHANA_IONEX_CODE_GIM_DIR, det verkliga latitudutsnittet av CODE:s slutliga GIM 2018-05-13 hämtat av fetch.sh med en fastlåst SHA-256: noder exakta, interpolation max |Δ| 3.6e-13 TECU över 15 795 sampel, snett TEC 5.1e-13 TECU; databegränsad RTKLIB v2.4.2-p13 iontec vid 6885 frågepunkter, körd 2026-10-13: max |Δ| 3.6e-13 TECU i båda tidslägena, tröskel 1e-5 förhandsregistrerad); ionex::tests 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) VALIDATED
VM-f40289c2 Hatch-bärvågsutjämning av kod på verkliga RINEX-observationer 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 hatch (HatchFilter), pvt (assemble_epoch_precise_smoothed, CarrierSmoother) hatch::tests (brusfri genomströmning; vitbrusvarians 1/(2N-1); omstarter); tests/hatch_wettzell_oracle.rs::hatch_finding_is_pinned (WTZR 2025-02-24 01-06 h, 600 epoker, N = 100: median av 3D-fel 1,553 -> 1,116 m, p95 3,473 -> 3,207 m) 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 MODELLED
VM-0f3c1299 RTK-dubbeldifferenser med heltalsfixering via LAMBDA på verkliga RINEX-observationer 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 rtk_real (run_rtk), lambda (resolve) 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 mot float 13 cm); rtk_real::tests 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 VALIDATED
VM-2a1dcc58 Tidslösning för mottagarklockan med PPP mot IGS slutliga stationsklocka 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. ppp_real (run_ppp, PppEpoch::clock_m) tests/ppp_time_igs_station_clock.rs (WTZR 2025-02-24, 04:00-05:55, 24 epoker: Kshana minus IGS std 0,075 ns, tröskel 0,20; medel -0.659 ns, tröskel 5,0) 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. VALIDATED
VM-8381d091 Precis punktpositionering med flyttal på verkliga RINEX-observationer 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 ppp_real (run_ppp, parse_antex_receiver, solid_tide_ecef, phase_windup) tests/ppp_real_wettzell_oracle.rs (IGS-station WTZR, 2025-02-24 00-06 h, 30 s, undanhållen från utvecklingen: horisontellt vid sista epoken 1,5 mm, upp −2,9 cm; 04-06 h 240/240 epoker inom 0,10 m i 3D, p95 6,7 cm; enbart kod p95 1,70 m; databegränsad ZTD-RMS 1,7 cm mot EUREF); ppp_real::tests; tests/ppp_parity_glab_rtklib.rs (RM-31: RTKLIB v2.4.2-p13 PPP på samma indata stämmer inom 0,05 m vid 240/240 epoker, 9,7 mm vid den sista, vid den tredje registreringen efter två körningar vars RTKLIB-konfiguration saknade fast tidvatten och satte antennen på basplatsen, båda registrerade som fynd; tröskeln för SPP-likhet missades, 1,085 m median mot 0,50 m; gLAB 6.0.0 vid sin första registrerade körning, kommandorad från ändring 4: PPP inom 0,05 m vid 240/240 epoker och 5,0 mm vid den sista, SPP-tröskeln missad, 1,187 m median, ett fynd: de två referensverktygens egna SPP-lösningar skiljer sig med 0,852 m median, så den tröskeln sattes snävare än överensstämmelsen mellan verktygen) 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 VALIDATED
VM-020e03fb Läsning av navigeringsfiler i RINEX 4 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 rinex (parse_nav, parse_nav_with) 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 databegränsad: G 416 / E 5668 / C 865 / J 118); rinex::tests 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 VALIDATED
VM-93d6d028 Läsning av observationsfiler i RINEX 4 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 rinex_obs (parse_obs) tests/rinex4_obs_mao0.rs (de första 4 epokerna i IGS MGEX RINEX 4,00-filen MAO000USA_R_20231980000_01D_30S_MO, 58 satelliter, 7 system: headerposter och värden för första epoken är lika med de publicerade litteralerna); rinex_obs::tests::parses_a_rinex_4_header_with_its_new_records (syntetisk 4,02-header enligt specifikationen) 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 MODELLED
VM-c58c97b0 Satellitposition ur sändning för BeiDou GEO 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 rinex (RinexEphemeris::sv_position_ecef_bds_geo, NavParseOptions) tests/bds_geo_broadcast_oracle.rs (verkliga poster C01-C04: geostationär radie, longituder 140.02/80.04/110.55/159.99 grader vid de publicerade platserna, |latitud| 2,13 grader med lutningen mot 6,65 utan; den förhandsregistrerade jämförelsen sändning mot precision i SP3 är datastyrd på KSHANA_BDS_GEO_SP3 och har inte körts); rinex::tests 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) MODELLED
VM-6cc640b7 Interpolation av precisa klockor i SP3 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 sp3 (Sp3File::clock_s, clock_nodes), precise_products (ClockRinex::from_sp3) tests/sp3_clock_igs_oracle.rs (IGS slutlig SP3 med 15 min från 2025-02-24 mot IGS slutliga klockor med 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 4,24 ns RMS); sp3::tests::clock_interpolation_is_linear_between_valid_nodes_and_exact_at_them 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) VALIDATED
VM-c65fdad2 Tätt kopplad GNSS/INS med bärvågsfas och osäkerheter med flyttal 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 fusion::carrier_tc (run_carrier_tc, CarrierTcCfg), fusion::trajectory (truth_epochs) tests/fusion_carrier_tc.rs (figur-8-körning: stationärt 3D-RMS 0,025 m bärvåg mot 0,470 m kod på identiska mätningar; 12 frön med medel för NIS/dof 1,00 och stationärt NEES/dof 0,92; ett slip på 1 cykel upptäckt vid sin epok utan falsklarm och med lösningen intakt; att stänga av sändningskorrektionerna höjer kodfelet från 0,51 m till 19,6 m (jonosfär) och 8,0 m (troposfär); brusfri körning konvergerar till 0,3 mm) 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 MODELLED
VM-f381b220 GNSS/INS-paket för sjö, järnväg och flyg med ett alternativ för tät koppling 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 fusion::pack (TightCfg, [tight]), scenarier gnss-ins-maritime / gnss-ins-rail / gnss-ins-aviation tests/gnss_ins_packs.rs (varje paket: fusionerat under fri INS över avbrottet för båda sensorerna; tåg: tät 5,3 m mot lös 12,9 m navigeringsklass och 15,6 m mot 18,8 m taktisk över avbrottet, tillgänglighet 0,97 mot 0,95; tät tabell validerad); tests/gnss_ins_legacy_trajectory_pin.rs (den löst kopplade standarden bit för bit identisk) 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 MODELLED
VM-583fb6a6 Kopplat PNT-filter för pseudoavstånd med biastillstånd och 3D-utvidgning i fusionspaketet 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 fusion::coupled (CoupledPntFilter, CoupledPntBiasFilter, CoupledPnt3d), fusion (run_coupled_suite), hybrid (CoupledCfg) tests/fusion_coupled_filters.rs (3D-filter över 60 frön: medel för NEES i andra halvan 8,12 för 8 tillstånd, χ²-summa för sista epoken inom sitt 95 %-band; en klockkorrektion på 0,1 ns minskar 3D-positionens sigma från 5,58 m till 3,07 m; biasfilter över 60 frön: χ²(5)-summa i bandet, bias inom 3 sigma i 59 av 60; fusion-pnt-coupled med biasade accelerometrar: position p95 18,7 m / 90,0 m och integritet 1,00 / 0,97 kopplad mot 430 m / 4060 m och 0,006 / 0,000 frikopplad); fusion::coupled::tests; tests/fusion_coupled_pack.rs (fusion och hybrid utan [coupled] bit för bit identiska) Intern konsistens: referensen simulerad ur filtrens egna modeller (χ² NEES över Monte Carlo-seeds, det frikopplade paketet på identiska sensorer). MODELLED MODELLED
VM-2b31e9b2 Löst kopplat GNSS/INS-EKF med hävarm på datamängden KF-GINS 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) fusion::kfgins (run, loaders, score), fusion::closed_loop (propagate_increments, fuse_position_lever_arm), fusion::gnss_ins_ekf (update_position_lever_arm) tests/fusion_kfgins_dataset_oracle.rs (syntetiska inläsare och hävarmstester med roterande plattform alltid; databegränsad på KSHANA_KFGINS_DIR, körd 2026-10-13 på demodatamängden för KF-GINS: horisontell / vertikal RMS 0,0109 / 0,0090 m mot referensbanan jämfört med KF-GINS C++ 0,0111 / 0,0083 m, alla sex förhandsregistrerade trösklar hölls; hävarm av 0,329 m) 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) VALIDATED
VM-98bed4a0 Export för testbänk läst av en simulators rörelsefilsläsare (gps-sdr-sim) 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. interop::testbench (write_motion_csv, write_nmea, export) tests/testbench_gpssdrsim_oracle.rs (6 tester: referens och scenarier, exportbytes fastlåsta, NMEA- och LLH-läsare, ECEF-utsnitt med fyra kolumner, fynd FINDING i körning 1 på CSV i full bredd, radraster på 10 Hz) 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. VALIDATED
VM-a606add5 Bibliotek med GNSS/INS-banor och import av CSV-referens 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 fusion::trajectory (TrajectoryCfg, Trajectory, kinematic_imu, parse_truth_csv), fusion::pack ([trajectory]) 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 slår fri INS över avbrottet; var och en flyger sin namngivna rörelse; observerbarhet för kurs: girens sigma efter 240 s 1,27 grader vid rak gång mot 0,039 grader för figur-8 och 0,062 grader för stanna-och-kör); tests/gnss_ins_legacy_trajectory_pin.rs (äldre resultat- och referenshashar bit för bit identiska) Internt: identiteter för stelkroppskinematik, CSV-tur-och-retur och filtrets egen kovarians. MODELLED (ingen verklig körlogg jämförs) MODELLED
VM-b2b424ef Mekanisering av strapdown-INS Strapdown-tröghetsmekanisering med kvaternionsattityd i WGS-84 NED (kompenserad för coning/sculling) som propagerar ett navigeringstillstånd ur ökningar av (Δθ, Δv) inertial::mechanization, inertial::attitude, inertial::imu_errors tests/classical_strapdown_ins_reference.rs (statiska/sväng-/coning-profiler, 30 epoker vardera, mot NaveGo: attityd bitidentisk 0 rad; hastighet/position inom namngivna analytiska gränser) 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 VALIDATED
VM-52d2b490 Syntes av gravitationsfältsfunktionaler (gravitationsstödd / GNSS-fri navigeringskarta) Sfärisk harmonisk gravitationsstorlek + störning (mGal) ur valfri ICGEM .gfc-modell; normalgravitation enligt GRS80 gravity_sh tests/icgem_gravity_reference.rs (GRS80-syntes återger Somigliana till 3.5e-12; verklig ICGEM EGM2008-störningskarta fysikalisk) GRS80 (Moritz 1980, IAG) normalgravitation enligt Somigliana + publicerade γ_e/γ_p; verkligt ICGEM EGM2008-fält VALIDATED
VM-cbbbaf73 CR3BP för jord–måne 9:2 NRHO mot den bana CAPSTONE flög 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 cr3bp (differential_correct_halo, PeriodicOrbit) tests/capstone_nrho_horizons.rs::cr3bp_nrho_matches_capstone_mean_geometry (CAPSTONE mars 2023, 4 perilunier och 5 apolunier: 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 %), perilun 3 385 mot 3 245 km (4,1 %, tröskel 20 %)); cr3bp::tests::reproduces_l2_southern_nrho_92_regime 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 MODELLED
VM-7a53988a Roterande CR3BP-tillstånd avbildade på månencentrerad ICRF på linjen jord–måne enligt DE440 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 cr3bp (to_moon_centred_icrf, from_moon_centred_icrf, to_moon_centred_icrf_de440) 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 halo-banor kring L2 och ett DRO-begynnelsetillstånd från JPL:s API för periodiska banor i trekroppsproblemet och ett generiskt tillstånd; sämsta position 1.8e-7 m mot 1 mm, hastighet 1.2e-9 m/s mot 1e-6 m/s; invers 2.7e-15); cr3bp::tests::moon_centred_map_round_trips_and_sends_the_moon_to_the_origin 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 VALIDATED
VM-cadb7067 Solsystemstyp på en JPL-kernel (planetary_kernel_path) 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 solar_system (SolarSystemScenario::planetary_kernel_path, KernelOut); ephem_provider (KernelEphemeris) 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; kärnblocket och etiketterna exakta); tests/solar_system_kernel_oracle.rs::without_a_kernel_the_report_has_no_kernel_block 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 VALIDATED
VM-c8b4f777 Porkchop på efemeriden DE440 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 maneuver (porkchop_kernel, PorkchopGrid); ephem_provider (KernelEphemeris) tests/porkchop_de440_oracle.rs::de440_porkchop_matches_spice_and_pykep (jorden till Marsbarycentret, 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 2.5e-14 och V-infinity 2.6e-14 relativt mot 1e-8, samma cell med minsta C3, 9,1997 km²/s²) 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 VALIDATED
VM-c80a768c Optimerare för impulsiva överföringar på efemeriden DE440 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 maneuver (optimise_transfer_kernel, TransferObjective, TransferType, TransferOptimum); ephem_provider (KernelEphemeris) tests/transfer_optimiser_oracle.rs::transfer_optimiser_matches_spice_pykep_scipy (jorden till Marsbarycentret, 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: sämsta målfunktion 8.7e-13 relativt, datum inom 1e-5 dygn, annan storhet inom 2.5e-7 relativt, mot förhandsregistrerade trösklar på 1e-7, 0,01 dygn och 1e-4; docs/design/evidence/cap20cd-transfer-optimiser/); tests/transfer_optimiser_oracle.rs::transfer_optimiser_against_the_published_2026_handbook (sekundär publicerad referens NASA/TM-2010-216764 tabell 2: typ II min C3 9,182 mot 9,144 och typ II min V-infinity 2,564 mot 2,565 MET; typ I min C3 10,535 mot 11,11, -5.18 %, NOT MET och intygat som missat, biblioteksreferensen överens med Kshana) 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 VALIDATED
VM-710b7e9b Lösare för Lambert-överföring med flera varv 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) maneuver (lambert_multirev, LambertSolution, LambertBranch) tests/lambert_multirev_oracle.rs::multirev_lambert_matches_pykep_on_the_preregistered_cases (382 fall: 300 slumpmässiga 3D, 18 nära 180 grader, 24 nära minimitiden för M = 1..3, 40 heliocentriska; 1058 lösningar; antal och grenordning lika; hastigheter inom 1e-8 relativt, sämst 1.6e-13; inom 1 % av minimitiden inom 1e-6, sämst 7.5e-15; en intern Kepler-landningskontroll landar varje lösning inom 4.2e-12 av |r2| utom ett fastlåst fynd på en båge med e = 0,994, en begränsning i kepler_universal, inte i lösaren) 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 VALIDATED
VM-a5e13882 Lösare för Lambert-överföring med två kroppar 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 maneuver (lambert) tests/lambert_reference.rs (13 överföringar mot lamberthub izzo2015; sämst |Δv| 7e-12 m/s) 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 VALIDATED
VM-91baec5d Referenssystem och tidsskalor IAU 2006/2000A precession-nutation, CIO GCRS↔ITRS, tidsskalor med skottsekunder frames, precession, nutation, cio, timescales tests/frame_reference_vectors.rs (Vallado från början till slut; SOFA/ERFA-vektorer) IAU SOFA / ERFA referensvektorer; Vallado AIAA 2006-6753 (0,1–4 mm) VALIDATED
VM-ba0279e6 Tvådelade julianska datum och skottsekunder på tidsvägen för jordbanor 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 jd2 (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) tests/jd2_sofa_time_oracle.rs (224 UTC-ögonblick: sex kring vart och ett av de 27 skottsekunderna 1972-2016, två fasta, 60 slumpade med frö över 1972-2026; dtf2d, utctai och taiutc var och en inom 1e-6 s, sämst 1.9e-11 s); jd2::tests (a_leap_second_day_is_86401_seconds_long_and_tai_steps_once; tai_to_utc_inverts_utc_to_tai_to_the_microsecond_across_a_leap_second; ut1_runs_through_tai_across_a_leap_second_day; the_two_part_earth_rotation_angle_matches_the_single_f64_one); sgp4::tests::propagate_at_measures_time_from_the_two_part_epoch 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 VALIDATED
VM-349495a3 Tvådelade julianska datum genom jordrotation på banvägen 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 jd2 (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) 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-element inom 5e-12, sämst 2.7e-14; rotation över +1/+10/+50 us inom 1e-13 rad från ERFA, sämst 1.1e-14 rad, där vägen med enkel f64 helt missar stegen +1 och +10 us); ephemeris::tests::two_part_jd_agrees_with_the_default_and_resolves_microsecond_steps; frames::tests::the_two_part_teme_to_itrf_round_trips_and_resolves_a_microsecond; jd2::tests::gmst82_matches_the_single_f64_gstime_away_from_the_floor; jd2::tests::two_part_types_convert_without_moving_the_instant 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 VALIDATED
VM-a676a683 Systemmatriser mot ERFA-vektorer: IAU 2006 bias-precession, TEME till GCRS och CIO-kedjan med celestiala polförskjutningar 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 precession (precession_matrix); nutation (teme_to_gcrs_matrix); cio (gcrs_to_cirs_matrix_with_offsets) 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: precessionselement inom 1e-13, sämst 0; TEME till GCRS inom 5e-10 rad, sämst 1.10e-10 rad; CIO med offsetar inom 1e-13, sämst 0; nolloffsetar bitidentiska med cio::gcrs_to_cirs_matrix) 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) VALIDATED
VM-604f1e8f UTC före 1972 (eran med driftande takt) på tidsvägen med tvådelade julianska datum 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 timescales (tai_minus_utc_on_date); jd2 (Jd2::from_utc_calendar, utc_to_tai, tai_to_utc) tests/jd2_pre1972_sofa_oracle.rs::pre_1972_utc_conversions_agree_with_erfa (117 UTC-ögonblick: fyra kring vart och ett av de 15 startvärdena för ett TAI-UTC-uttryck 1960-1972 och 60 slumpade med frö över 1960-1971; dtf2d, utctai och taiutc var och en inom 1e-6 s, sämst 2.9e-11 s); tests/jd2_pre1972_sofa_oracle.rs::post_1972_results_are_bit_identical (de 224 ögonblicken i raden för 1972+ oförändrade bit för bit) 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 VALIDATED
VM-3123f2d9 Satellitklocka ur sändning för GLONASS och propagering av sändningsbana 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 glonass (GlonassEphemeris::sv_clock_bias_s, position_ecef, parse_glonass_nav) tests/glonass_broadcast_rtklib_oracle.rs::glonass_broadcast_clock_and_orbit_match_rtklib (292 fall: de 4 GLONASS-posterna i den verkliga IGS MGEX-sändningsfilen från 2013-01-01 x 73 offsetar inom +/-900 s; klocka inom 1e-14 s, sämst 0 s; position inom 0,01 m, sämst 1.12e-3 m) 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) VALIDATED
VM-b4e008a0 En enda väg för jordbanor: SGP4-elementuppsättningar till GCRS och ITRS på kedjan IAU 2006/2000A med jordorienteringsparametrar 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 sgp4 (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) tests/earth_orbit_path_sgp4_erfa_oracle.rs (ben 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; ben 2: 108 ögonblick, 23 av dem med parametrar för jordens orientering och ett i sista sekunden av en skottsekundsdag, mot ERFA: GCRS -> ITRS sämst 2.9e-6 mas, tröskel 0,1 mas; TEME -> ITRS sämst 0,41 mas, tröskel 2 mas); sgp4::tests (the_itrs_path_matches_the_orbit_module_iau_chain; an_earth_fixed_node_stays_at_its_longitude_at_the_epoch); tests/no_private_models.rs 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) VALIDATED
VM-faf6c34f Avvägning vid utformning av avståndskoder Gränser för sidolober och korskorrelation hos m-sekvenser/Gold, längd↔osäkerhet navsignal (CodeFamily) navsignal::code_tests (GPS C/A Gold ≈ −23,9 dB; φ(1023)/10 = 60) Publicerad korskorrelation för GPS C/A Gold (−23,9 dB); Gold 1967-gräns VALIDATED
VM-bb79da35 GNSS-geometri / geometrisk noggrannhetsförsämring (DOP) GDOP/PDOP/HDOP/VDOP/TDOP ur siktlinjegeometri via Q=(HᵀH)⁻¹ med en lokal ENU-uppdelning orbit (dop) tests/dop_reference.rs (8 geometrier, välkonditionerade → nära singulära) gnss_lib_py 1.0.4 (Stanford NAV Lab) DOP — oberoende bibliotek, matchad till 1e-6 relativt VALIDATED
VM-a0ea0d9f Positionsfel ur geometri: RMS-fel = sigma_UERE x DOP för motorns positionsbestämning med minsta kvadrat 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 dop_error_mc (run_geometry, check, TOLERANCES); dop_error_ci (run, GEOMETRIES); pvt (solve_spp); orbit (dop, dop_cofactor) tests/uere_dop_monte_carlo.rs (position_error_is_sigma_times_dop_on_the_gnss_lib_py_geometries: alla 104 kontroller klarar sig vid första körningen efter förhandsregistreringen e50c88d2, sämsta varians 3,2 %, RMS 1,6 %, korrelation 0,012, medelvärde 2,2 standardfel, ellipsandel 0,0039; negative_control_a_doubled_pdop_fails_every_geometry; negative_control_elevation_dependent_errors_fail_the_low_elevation_geometries: båda kontrollerna misslyckas som krävs; position_error_is_sigma_times_dop_on_masked_skies: designanteckningens två maskerade horisontgeometrier, himlen 10sat-mixed under förinställningarna stadsgata (4 satelliter, PDOP 16,6) och containerterminal (9 satelliter, PDOP 2,5), alla 26 kontroller klarar sig vid första körningen efter förhandsregistreringen 03999c11, tests/fixtures/dop/PREREGISTRATION-MASKED.md); tests/position_error_dop_ci.rs (en första, separat kontroll på fyra handvalda himlar (öppen, klustrad, kanjon, halvhimmel; sigma 1 m, frö 0x0D0B5EED) med chi-två-konfidensintervall vid 1e-6 totalt över 20 kontroller: kvoter 0,987 till 1,009, lösarens egna PDOP/GDOP lika med kärnans till 2.5e-12, och negativa kontroller för ett DOP-fel på 10 % och fel som 1/sin(elevation); körd före förhandsregistreringen, så den redovisas, är inte förhandsregistrerad); dop_error_mc::tests; dop_error_ci::tests 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 MODELLED
VM-f7f6e62d Geometrimedveten förtroendeklassificering: satellitgeometri bredvid mottagarens förtroendepoäng och en klass på varje avdrag 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 receiver_trust (geometry: GeometryTracker, geometry_ratio, sky_ratio, geometry_points, GeometryLabel; score: DeductionClass, score_with; monitors; live); telemetry (sample, prometheus, syslog, otlp) 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 den angivna [skyline]; med den rapporteras sky-blocked på 680 epoker (0 utan: reservlösningen med azimutglapp ser ingenting i en tvåsidig fjord), open_fraction är 0,758, och epokerna i miljöklassen faller från 78 till 33, resten är förluster av satelliter som den angivna horisontlinjen lämnar i det fria; utanför händelsen ändrar horisontlinjen ingen poäng); receiver_trust::geometry::tests (handhärledda kvoter vid trösklarna, tröskelkanterna, rampen och taket, golvet, etikettkanterna, överstyrningar av [geometry], DOP på den validerade kärnan, hållna och utgångna himlar, okänd gissas inte, signalförlust, toleransen för dålig geometri, sentineller för ingen positionsbestämning); tests/geometry_trust.rs (en rimlig maskerad himmel etiketterad och inte poängsatt, en dålig maskerad himmel, en förlust vid låg elevation, ett effektfall, en förfalskad HDOP, total signalförlust, en bortdragning under dålig geometri, okänd geometri, sessionsöverstyrningar, live-schemat); tests/geometry_trust_no_change.rs (båda exempelsessionerna byte för byte identiska med 0.35.0 när de tillagda nycklarna tagits bort); tests/geometry_corpus_identity.rs (varje incheckat NMEA-korpus för fartyg, även som öppen himmel med enbart GPS, och besättningsträningsscenarierna: byte för byte identiska med 0.35.0 utom dåliga epoker, som skiljer sig enbart genom geometriavdraget) 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 MODELLED
VM-b59d517d Sändningsmodell för jonosfären (Klobuchar, IS-GPS-200) Klobuchars jonosfäriska gruppfördröjning längs sikten för en frekvens (L1) ur de åtta sända koefficienterna α/β gnss_sim (klobuchar_delay_m) tests/klobuchar_reference.rs (10 fall över elevation/azimut/lokal tid, två koefficientmängder) RTKLIB ionmodel (tomojitakasu/RTKLIB, src/rtkcmn.c) — oberoende referensimplementering kompilerad från källkod; matchad till < 1e-4 m VALIDATED
VM-1e6c81a8 Statistisk kärna för integritet i RAIM/ARAIM (lagar för χ² / icke-central χ² / normal) 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 raim (chi2_cdf, chi2_quantile, noncentral_chi2_cdf, normal_cdf, normal_quantile, pbias) tests/raim_reference.rs (171 fall: χ²-CDF/kvantil, normal-CDF/kvantil, icke-central χ²-CDF, pbias över intervallen för P_fa/P_md/redundans) 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 rel. Endast kärnan. Fördelningen av ARAIM MHSS P_HMI-budgeten saknar inte längre en publicerad numerisk referens — WG-C ARAIM Technical Subgroups eget räknade exempel stöder nu 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 fördelningen (se docs/ARAIM_REFERENCE.md) VALIDATED
VM-b9fd9dfe Skyddsnivå för SBAS (HPL/VPL med viktad minsta kvadrat enligt DO-229E) 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 sbas (sbas_protection_level) tests/sbas_reference.rs (6 verkliga EGNOS-epoker: HPL matchad direkt, vertikal d_U kontrollerad utan K-faktor) 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 VALIDATED
VM-216727c9 Mått för utvärdering av ML-detektorer (ROC/AUC/förväxling/Pfa-Pmd) AUC (Mann-Whitney, bindningar ½), förväxlingsmatris vid tröskel, P_d/P_md/P_fa/precision/noggrannhet/F1 impairment_eval (auc, confusion_at, roc_curve) tests/eval_metrics_reference.rs (5 datamängder, 24 trösklar; exakta antal + <1e-9) scikit-learn 1.9.0 (Pedregosa et al., JMLR 2011) — oberoende bibliotek, exakt matchning VALIDATED
VM-24e0303a Poängsättning av avvikelsedetektering på verklig telemetri från rymdfarkoster ROC AUC + bootstrap-konfidensintervall som skiljer verkliga märkta avvikelser; genomskinlig detektor (återger etiketterna) impairment_eval, eval_stats tests/opssat_ad_reference.rs (verkliga 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-testdelningen: fullständig förväxlingsmatris vid arbetspunkten + Pd/Pfa/precision/F1 mot scikit-learn, heltalsexakt) scikit-learn roc_auc_score på testdelningen OPSSAT-AD (Ruszczak et al. 2025, CC BY 4,0) — verklig telemetri från OPS-SAT VALIDATED
VM-4fd47e51 Numeriska kärnor för kvantavvägning (NNLS / χ²-band / van-Loan Q) 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 quantum_trade (qparams_from_adev_curve), detection (chi2_inv_cdf), clock_state (ClockState3) tests/scipy_reference.rs (NNLS; χ² vid arbets-dof ≥ 48; van-Loan Q) 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) VALIDATED
VM-611e3164 Geomagnetiskt referensfält (syntes av IGRF-14) 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 igrf, igrf_data tests/alternative_complementary_pnt_reference.rs (2520 globala punkter × höjder mot ppigrf @ epok 2025,0; sämst |ΔXYZF| 3.9e-4 nT, |ΔD| 2.8e-6°, |ΔI| 3.6e-7°) 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 VALIDATED
VM-b4802fbd Detektionsstatistik — gaussisk AUC och minsta detekterbara fel Analytisk binormal ROC AUC = Φ(μ/(σ√2)) och det minsta detekterbara felet σ·(Φ⁻¹(1−P_fa)+Φ⁻¹(P_d)) som ligger under kvantfels- och avvikelsedetektorerna quantum_faults, eval_stats, detection tests/quantum_faults_reference.rs (109 fall mot scipy 1,17 norm.cdf/ppf + scikit-learn roc_auc_score; sämst |Δ| AUC 6.9e-8, minsta detekterbara fel 1.3e-8, empirisk AUC 1.1e-16) 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 VALIDATED
VM-9219a1de Kärna för rangordningsstatistik (Kendall-τ / Dirichlet / percentil) 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 resilience::stats 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) 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 VALIDATED
VM-00275839 Kärna för härledning av prioriteringar i MCDA (egenvektor i AHP / konsistenskvot) 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 mcda::ahp tests/mcda_ahp_reference.rs (Saaty 1980 tabell över slumpindex n=1..10 EXAKT; prioritetsvektor + λ_max + CR mot SciPy/LAPACK eig på en konsistent 3×3 och inkonsistent 3×3 / 4×4, matchade till <1e-9) 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) VALIDATED
VM-684c550a Kärnor för viktad aggregering i MCDA (WSM / WPM) 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 mcda::wsm, mcda::wpm tests/mcda_wsm_reference.rs (WSM-poäng + rangordning) och tests/mcda_wpm_reference.rs (WPM-poäng + rangordning), var och en mot pymcdm till <1e-9 på en fast beslutsmatris på 4×3 med nytto-/kostnadskriterier 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 VALIDATED
VM-cbf34b8e Rangordning i MCDA efter avstånd till idealet (TOPSIS) 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 mcda::topsis tests/mcda_topsis_reference.rs (närhetskoefficienter + rangordning mot pymcdm till <1e-9 på en fast matris på 4×3 med nytto-/kostnadskriterier) 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 VALIDATED
VM-8b3572d6 Kompromissrangordning i MCDA (VIKOR) VlseKriterijumska Optimizacija — gruppnytta Sᵢ, individuell ånger Rᵢ och kompromissindex Qᵢ vid strategivikten v=0,5, med rangordning där lägre är bättre mcda::vikor tests/mcda_vikor_reference.rs (Q-index + rangordning mot pymcdm till <1e-9 på en fast matris på 4×3 med nytto-/kostnadskriterier) 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 VALIDATED
VM-2fe3fe0b MCDA-rangordning med nettoflöde (PROMETHEE II) 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) mcda::promethee tests/mcda_promethee_reference.rs (nettoflöde för överrangling + rangordning, vanligt kriterium, mot pymcdm till <1e-9 på en fast matris på 4×3 med nytto-/kostnadskriterier) 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 VALIDATED
VM-ce013b59 MCDA-kärna för valet vid rangordning (ELECTRE I) 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) mcda::electre 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 datamängd på 4×3 med enbart nyttokriterier) 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) VALIDATED
VM-9adfd44f MCDA-aggregeringskärnor (WASPAS / MOORA) 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 mcda::waspas, mcda::moora tests/mcda_waspas_reference.rs (WASPAS-preferenser + rangordning) och tests/mcda_moora_reference.rs (MOORA-poäng + rangordning), var och en mot pymcdm till <1e-9 på en fast beslutsmatris på 4×3 med nytto-/kostnadskriterier 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 VALIDATED
VM-c106eee9 MCDA-proportionell rangordning (COPRAS) 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) mcda::copras tests/mcda_copras_reference.rs (nyttograder + rangordning mot pyDecision till <1e-9 på en fast matris på 4×3 med nytto-/kostnadskriterier) 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 VALIDATED
VM-d952e366 CUSUM: detekteringsfördröjning och ARL 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 tpl (Cusum), security tests/timing_protection_level_under_spoofing_reference.rs (16 fall med deterministisk latens EXAKTA mot en förstapassagereferens; 8 fall för ARL₁, Monte Carlo @60k försök mot Siegmund-approximationen + publicerade Montgomery-tabeller) 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 VALIDATED
VM-3376197e Klock-holdover: utrullningsvarians och tröskelinversion 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 holdover (coast_phase_variance, holdover_seconds) tests/gnss_denied_clock_holdover_reference.rs (27 fall mot scipy 1,18: 12 glidvarianser mot linalg.expm Van-Loan Q₀₀ sämst rel 1.1e-15; 7 holdover-inversioner mot optimize.brentq sämst rel 1.5e-16) 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 VALIDATED
VM-ea398366 Diversitetskärna med inverterad Simpson Effektiv arkitektonisk diversitet = inverterad Simpson / Hill-tal av ordning 2, 1/Σpᵢ², över källkvaliteter per oberoendegrupp (diversitetstermen i motståndskraftspoängen) resilience::diversity (effective_diversity) tests/resilience_diversity_reference.rs (17 fall: 14 mot scikit-bio inv_simpson + 3 fastlåsta gränsfall med noll; sämst |Δ| 0,0) 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 VALIDATED
VM-73e30b65 Azimutberoende skylinemask: synlig mängd, azimut och elevation samt DOP under masken 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 skyline (Skyline::cut_deg, Skyline::visible); frames (look_angles, is_visible_skyline); orbit (UserPath, sky_view, cofactor_from_los); geometry (sky_geometry) tests/skyline_orekit_oracle.rs (skyline_masks_agree_with_orekit_and_gnss_lib_py_as_pre_registered: 1173 synvinklar vid sex platser och fyra epoker, sex masktabeller, 142 synliga mängder; sämst |d el| 1.3e-13 grader och |d az| 2.3e-13 grader mot 1e-9, sämst |d mask| 1.1e-12 grader mot 1e-9, synliga mängder identiska utan någon i gränsbandet på 1e-6 grader, sämsta DOP 3.3e-13 relativt och kofaktor 6.6e-13 av matrisens skala mot 1e-9; förhandsregistrerad e4b9d912); skyline::tests (table_interpolates_linearly_between_rows; table_wraps_through_north_without_a_seam); tests/skyline_scenarios.rs (every_wired_scenario_is_byte_identical_to_the_0_35_0_release) 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) VALIDATED
VM-9d83f008 Reduktioner av gatukanjon, sektor och terräng till en tabell 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 skyline (Canyon::cut_deg, Sector::contains, TerrainPoint::elevation_deg, reduce_terrain, SkylineCfg::build) skyline::tests (canyon_matches_hand_computed_wall_elevations; terrain_takes_the_curvature_drop; sectors_have_sharp_edges_and_wrap; a_preset_is_overridden_or_added_to_field_by_field; malformed_sections_are_refused) 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 MODELLED
VM-f409aed2 Skylineförinställningar (stadsgata, hamninlopp, fjord, containerterminal) 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 skyline (PRESETS, preset, preset_list) skyline::tests (presets_carry_the_note_dimensions_and_provenance) 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 MODELLED
VM-ea2e883b Horisontell felellips och kofaktor per system från geometrikovariansen 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) geometry (sky_geometry, ellipse); orbit (cofactor_from_los) 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 axel 5.1e-13 relativt och orientering 5.3e-12 grader, ingen nära cirkulär, kofaktor 1.0e-12 av matrisens skala, mot 1e-9 och 1e-6 grader; förhandsregistrerad 0bbeeaee); geometry::tests (ellipse_of_an_analytic_two_by_two_case) 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 VALIDATED
VM-2d7d6035 Himlageometrifunktioner: synlighet, DOP, kovarians, felellips, Monte Carlo-moln 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 geometry; orbit (cofactor_from_los, dop_cov, dop); surface (sky_geometry, sky_monte_carlo, skyline_presets, skyline_profile, skyplot_svg) geometry::tests (ellipse_of_an_analytic_two_by_two_case; sky_geometry_equals_orbit_dop_on_the_same_visible_set; ecef_input_matches_azimuth_elevation_input; one_clock_per_system_adds_a_state_and_costs_geometry; monte_carlo_is_seeded_and_agrees_with_the_geometry; presets_propagate_and_are_seen_from_a_site); tests/dop_reference.rs (kärnan med en klocka mot gnss_lib_py) 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 MODELLED
VM-7a590be8 Klock-holdover utan GNSS Tillväxt av utrullningsfel i sluten form + holdover till tröskel; kvantklockklasser holdover holdover::tests (mot kovariansrekursion för Kalman över flera steg; vitt FM exakt; tur-och-retur); coast-variance-kärnan externt validerad i tests/gnss_denied_clock_holdover_reference.rs (mot scipy Van-Loan/brentq) 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 MODELLED
VM-4a6894e7 Uppmätta klockenhetskort (förutsägelse på undanhållen datamängd) 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 clock_library (card, condition, series), realdata::clk, allan (lag1_noise_id) tests/clock_library_device_cards_oracle.rs (gps_iif_cards_reproduce_the_recorded_finding; receiver_training_is_blocked_by_the_epoch_minimum; non_blind_cards_are_reported; förhandsregistrerad 2ec76864); clock_library::card::tests; clock_library::condition::tests; clock_library::series::tests; realdata::clk::tests; tests/clock_library_f9p_cards_oracle.rs (f9p_first_pipeline_reproduces_the_recorded_finding; f9p_corrected_pipeline_reproduces_the_recorded_finding; datastyrd) 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 MODELLED
VM-d6948fbc Uppmätta klockkort för GPS Block IIF med termer per varv (förutsägelse på undanhållen datamängd) 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 clock_library (card) tests/clock_library_periodic_cards_oracle.rs (periodic_cards_reproduce_the_recorded_finding; förhandsregistrerad fb475550); clock_library::card::tests (a_periodic_card_carries_the_sinusoid_a_power_law_card_cannot) 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 MODELLED
VM-4ca6b7c4 Tillståndsskattning av klockan ombord Kalmanklocka med 3 tillstånd (fas/frekvens/drift) enligt van-Loan, Joseph-stabiliserad clock_state clock_state::tests (analytisk van-Loan Q; NEES; PSD-positivitet); tests/clock_state_reference.rs (full bana för predict+update — tillstånd x och kovarians P 3×3 över 1925 steg / 4 parameteruppsättningar mot filterpy 1.4.5; sämsta |relΔ| 2.8e-14); tests/clock_state_igs_holdout_oracle.rs::three_state_filter_on_held_out_igs_clocks_finding (fäster fyndet); tests/clock_state_ext_igs_fresh_oracle.rs::extended_filter_on_fresh_igs_clocks_finding; tests/clock_state_ext_igs_conditioned_oracle.rs::conditioned_extended_filter_finding (D9 omgång 3) 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 MODELLED
VM-dcb22bd1 Felbudget för tidsöverföring Tvåvägs/TWSTFT (Sagnac), GNSS common-view, PPP; länkjitter till avstånd timetransfer, timetransfer_adv timetransfer::tests (ömsesidig utsläckning; Sagnac-identitet i två former); tests/time_transfer_error_budgeting_reference.rs (Sagnac för ett varv runt ekvatorn = 207,386 ns mot det publicerade Ashby 207,4 ns till <0,05 ns; plus geometrin för Sagnac/geodist korskontrollerad mot RTKLIB 2.4.3 geodist() kompilerad från C-källkod) 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 MODELLED
VM-7b9ba72f Navigationssignalers modulering och kodföljningsanalys BPSK-R/BOC PSD, spektral separation κ, Gabor-bandbredd, DLL-jitter, flervägsutbredning navsignal navsignal::tests (BPSK självSSC = 2/3R_c; PSD med enhetsarea; DLL); tests/nav_signal_modulation_code_tracking_reference.rs (GPS C/A Gold kors-/autokorrelation exakt heltalsmatchning mot oberoende kodgenerering enligt IS-GPS-200; PSD för BPSK-R(1)/sin-BOC(1 1) mot ett oberoende periodogram i scipy); tests/nav_signal_betz_hein_published_oracle.rs (betz_text_correlation_values_over_1_ghz; hein_mboc_interference_improvements; finding_betz_side_lobes_and_multipath, fastnålad) 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 MODELLED
VM-1a97a57b Generering av spridningskod för GPS L1 C/A 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) sdr sdr::code_tests (ca_first_ten_chips_match_is_gps_200_octal — PRN 1–9 första 10 chipen återger IS-GPS-200 tabell 3-Ia oktaler 1440/1620/1710/1744/1133/1455/1131/1454/1626 exakt; ca_code_has_1023_chips_and_is_balanced; ca_periodic_autocorrelation_is_three_valued) 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) VALIDATED
VM-3d1e2932 Prestanda för kvantinertialsensor Accelerometer med kallatominterferometer från första principer (k_eff·T², QPN) inertial::quantum_imu quantum_imu::tests (k_eff; Mach-Zehnder T²; Freier-2016 floor bracket); tests/quantum_inertial_sensor_reference.rs (transfer function |H(ω)|, k_eff·T² and shot-noise ASD vs published Cheinet 2008 / Peters / Freier numeric vectors); tests/quantum_inertial_measured_qpn.rs (gauguet_finding_qpn_floor_sits_below_the_measured_noise, pinned; gradiometer_qpn_line_matches_janvier_model) 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 MODELLED
VM-615e17f8 Fringe-tvetydighet / dynamiskt område för kvantinertialsensor 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) inertial::quantum_imu quantum_imu::tests (a_max ligger vid halvfransgränsen ±π med områdesskalningen 1/T²; återvunnen lindad fas är exakt inom [−a_max,a_max] och aliasar med exakt 2·a_max utanför det; det entydiga dynamiska området a_max/σ_a=π/σ_Φ är identiskt för två mycket olika skalfaktorer för våglängd/T; CaiAccelerometer-metoderna stämmer med de fria funktionerna) 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 MODELLED
VM-098c5e7f Motståndskraft för kvantinertial dödräkning Sammansatt positionsbudget för bias + skalfaktor + VRW + stabilitetsavtagande under holdover inertial::quantum_imu (QuantumNavBudget) budget_tests (bias vs AccelModel integrator; VRW vs analytic integral); tests/quantum_inertial_dead_reckoning_reference.rs (VRW vs an independent numpy Monte-Carlo double-integration of white-acceleration noise, worst dev 0,42% within ±3% over 6 coast times; bias/scale-factor vs a Groves 2013 closed-form value; holdover round-trips) 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 MODELLED
VM-1e713796 GNSS/INS-sensorfusion 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) fusion (gnss_ins_ekf, tightly_coupled, ukf, coupled) fusion::tests (UKF==linjär KF-identitet; avbrottsglid; 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-körning över 40 epoker sämst |Δx| 1.9e-7 / |ΔP| 9.5e-6); tests/gnss_ins_navego_dataset_oracle.rs::loosely_coupled_rms_within_1p2x_of_navego (NaveGo v1.4 löst kopplad lösning på NaveGos verkliga körning med Ekinox IMU/GNSS: horisontell RMS 0.912x, vertikal 0.940x, RMS för positionsinnovation 0.861x av NaveGos, medel av normaliserad innovation 0,395; trösklar 1.2x, 1.2x, 1.2x och 1,5 fastställda före körningen) 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 VALIDATED
VM-4c656dcb Motståndskraft mot jamming utan GNSS Geometrisk J/S-länkbudget, C/N₀ med jamming-skydd, signalförlust per satellit jamming jamming::tests (broadband_q_equals_the_spectral_separation_closed_form and cw_q_equals_the_spectral_separation_closed_form: the Q table, CW and narrowband 1, broadband and swept 2, pinned to the navsignal closed forms; a_cw_jammer_is_more_damaging_than_broadband_noise_at_equal_js); tests/gnss_denied_jamming_resilience_reference.rs (FSPL/J-S/effective-C-N₀ vs an independent numpy re-derivation of the Kaplan & Hegarty §9,4 link budget; real JammerTest C/N₀ falls monotonically through the 25 dB-Hz threshold); tests/jamming_jammertest_cn0_oracle.rs (pre-registered, blocked, not run) 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 MODELLED
VM-ab66f655 Detektering av spoofing Klockstödd χ², RAIM, AGC, SQM sammanvägda till ett säkerhetskvalitetsmått per epok spoof, spoof_detect, spoof_monitors 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); tests/spoof_detection_jammertest_log_oracle.rs::engine_monitors_against_the_logged_onsets_reproduce_the_recorded_disagreement; tests/clock_library_tcxo_card_jammertest_oracle.rs (round_3_is_blocked_by_the_training_minimum; round_4_reproduces_the_recorded_finding; round_4b_reproduces_the_recorded_finding; D9) 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å MODELLED
VM-3c597524 Skyddsnivå för tidssynkronisering (Timing Protection Level) vid spoofing 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 tpl tpl::tests (closed-form oracles + CUSUM); examples/tpl_jammertest.rs (JammerTest 2024 real-spoof calibration); tests/tpl_jammertest_coverage_oracle.rs::tpl_against_measured_time_error_reproduces_the_recorded_disagreement (pins the finding); tests/tpl_jammertest_log_oracle.rs::drift_state_tpl_against_the_logged_onsets_reproduces_the_recorded_disagreement 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) MODELLED
VM-2e84fba6 Missionsanalys för cislunar rymd CR3BP STM + korrigerare med enkelskjutning och differentialkorrektion; södra NRHO runt L2 cr3bp cr3bp::tests (STM mot finita differenser); tests/cislunar_mission_analysis_reference.rs (5 JPL L2-S NRHO-medlemmar: 9:2 + 4 grannar; sämst |ΔC| 1.5e-5, |ΔT|/T 9.6e-5, perilun 0,7 km i JPL:s längdenheter) 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 VALIDATED
VM-6a54cfeb Alternativ / kompletterande PNT Matchning mot gravitationskartor, terrängreferens (TERCOM/SITAN), magnetisk anomali altpnt, mapmatch, gravimeter, igrf 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 degree-70 field, pre-registered in xval/icgem-egm2008/: matched 3106 m, so the < 500 m bar is NOT MET and asserted as missed, and the tenfold cut on the 70,6 km drift is MET; plus the seeded map-error Monte Carlo); altpnt::terrain::tests::emag2_format_grid_reproduces_the_synthetic_magnetic_channel and tests/emag2_real_grid.rs (data-gated EMAG2v3 reader on a real crop; no navigation outcome claimed on it); tests/terrain_slam_rbpf.rs (joint map estimation, a FastSLAM-style RBPF, against known-map SITAN on a 15 m correlated map error over 20 seeds, pre-registered in xval/terrain-slam-rbpf/: 1,5% mean gain and better in 10 of 20, so the 10% and 12-of-20 bars are NOT MET and asserted as missed; no harm on a perfect map, MET) 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 MODELLED
VM-93082325 Syntes av gravitationsanomali från en sfäriskt harmonisk modell 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 gravity_sh, altpnt::maps, gravimeter 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ändigt hämtade 0.25-gradsrutnäten för Tchad 9-15N 19-25E och Death Valley 35-38N 242-245E, 794 noder: RMS 1.3e-8 och 2.6e-8 mGal, max 2.9e-8 mGal mot förhandsregistrerade trösklar på 0,005 / 0,02 mGal, xval/icgem-egm2008/); gravity_sh::tests 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 VALIDATED
VM-522a5c79 Läsare för digitala höjdmodeller (SRTM) på verklig terräng 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 altpnt::terrain tests/terrain_nav_validation.rs (real_srtm_committed_badwater_tile_reads_real_relief — den incheckade decimeringen med 6 bågsekunder av den allmängodsmärkta SRTM v3-rutan N36W117 placerar Badwater Basin, den lägsta punkten i Nordamerika, på −78 m inom mätbandet [−95,−70] m och läser rutans verkliga relief på ~2,2 km i det östra bergsområdet; plus, på två incheckade ordagranna utsnitt på 1 bågsekund, 361x361, av N36W119 och N36W117, real_srtm_tile_whitney_in_survey_band (4412,1 m i bandet [4380 4430] m kring mätningen på 4421 m), real_srtm_tile_badwater_in_survey_band (−78,0 m i [−95,−70] m) och gdal_cross_check (den närmaste noden är lika med GDAL 3.8.4 gdallocationinfo på de fullständiga rutorna exakt i alla 8 förhandsregistrerade punkter, xval/srtm-ungate/; plus referenserna för handbyggd bilinjär mittpunkt och syntetisk fixturtolkare) 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) VALIDATED
VM-cf3cdcd3 Reproducerbarhet och programvaruförsäkran Deterministiska grindar med scenariohash, SBOM och golden-filer över plattformar report, scenario; CI (golden/determinism/SBOM) 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 over the full 66-component shipped graph: default + python + wasm features, dev-dependencies excluded) 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 MODELLED
VM-77f12e71 Utvärdering av AI/ML-detektering av RF-störningar (13494) 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) impairment_eval impairment_eval::tests (AUC perfect=1/identical=0.5/tie=0,125, ROC monotone, fused>0,8, per-class layer separation, leakage guard, reproducible corpus, distribution-shift flags optimism); dominance_demonstrators (reachable + reproducible + MODELLED-not-VALIDATED + optimism-gap self-consistent) AUC-gränser i sluten form (Mann–Whitney) + en perfekt oberoende detektor; korpuset är SYNTETISKT (parameterförankrat, inte fält/IQ) MODELLED
VM-d6a9346b Studie av optimismgapet vid AI/ML-detektering av RF-störningar och en gapprediktor enbart med ID 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 impairment_study, impairment_ml, eval_stats impairment_study::tests (per-class oracle AUC≈1, learned optimism gap>0, grid shape + bootstrap CI brackets the mean + positive scaling trend, ID features finite, gap predictor beats predict-the-mean under BOTH leave-one-detector-out and leave-one-class-out CV + deterministic); impairment_ml::tests (logreg separates + deterministic + loss↓, MLP solves XOR a linear model cannot + seeded); eval_stats::tests (bootstrap/DeLong/Spearman/ridge vs closed forms) 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 MODELLED
VM-4565dcd3 Kvant mot klassisk PNT-avvägning och motståndskraft utan GNSS (13503) 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) quantum_trade 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, assumed-class flags floor + caveat, malformed curve rejected, MODELLED-not-VALIDATED) 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 MODELLED
VM-dd6c7403 Rymdväder och aktivitetsdriven termosfärisk densitet 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) space_weather space_weather::tests (Kp↔ap exact at grid points + round-trip + monotone, daily-Ap mean, exospheric-T vs published solar-min/mean/max + storm increment anchors, density unity-at-reference, solar-cycle swing in the observed 5–10× band, scenario reproducible + MODELLED-not-VALIDATED + out-of-range rejection); dominance_demonstrators (reachable + reproducible + physical T + MODELLED-not-VALIDATED); tests/space_weather_density_accelerometer_oracle.rs::jacchia71_finding_is_pinned 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 MODELLED
VM-81fb8429 CCSDS OEM-interoperabilitet (import av efemerider från GMAT/Orekit/STK) 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) oem tests/ccsds_oem_interop_reference.rs (24 tillstånd / 2 fixturer avkodade byteidentiskt av den oberoende tolkaren oem, pos/vel Δ = 0); oem::tests (tolka en OEM från ett externt verktyg med extra nyckelord/kommentarer/kovarians, skriv→läs-rundtur av hela tillståndet, pos+vel+acc tolereras, enbart position + saknad obligatorisk metadata avvisas, scenariorundtur med hög noggrannhet + extern inläsning); dominance_demonstrators (nåbar + reproducerbar + exakt rundtur + MODELLED-not-VALIDATED) Oberoende tredjepartstolkare för CCSDS-502 oem 0.4.5 (MIT, https://pypi.org/project/oem/) — en separat kodbas som avkodar kshanas utsända EME2000/UTC-OEM byteidentiskt (24 tillstånd över 2 fixturer, pos/vel Δ = 0) och vars strikta läsare bekräftar metadatatokenen; kshanas tolkare stämmer likaså överens 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) dokumenteras i testet — så detta validerar utbyte av ett enskilt objekt enligt standarden, inte att varje kshana-variant fullt ut följer CCSDS-502 VALIDATED
VM-c55b030d Uppskjutningsfönster och uppstigningsgeometri (missionsanalys) 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) launch launch::tests (due-east launch reaches i=latitude, KSC→ISS = textbook 45°, polar = N/S, i<lat unreachable, 465 m/s equatorial bonus, plane-change 10° ≈ 1,34 km/s + 180° = 2v, daily-opportunity counts, scenario reproducible/MODELLED + dogleg path); dominance_demonstrators (reachable + reproducible + KSC→ISS 45° + MODELLED-not-VALIDATED); tests/launch_geometry_orekit_oracle.rs::burnout_azimuth_reproduces_the_target_inclination_in_orekit; tests/launch_geometry_orekit_oracle.rs::earth_rotation_speed_gap_is_recorded_as_a_finding; tests/launch_geometry_orekit_oracle.rs::true_pole_site_speed_matches_orekit_at_a_fresh_epoch_and_longitudes 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 MODELLED
VM-72711b98 Ballistisk återinträdeskorridor (Allen–Eggers) 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) reentry reentry::tests (peak-g independent of ballistic coefficient + physical g-band, grows with steeper γ / faster entry, peak-g velocity = V_e·e^(−1/2) and peak-heating = V_e·e^(−1/6) faster, peak-g altitude physical + deeper for higher B, scenario reproducible/MODELLED + degenerate-geometry rejected); dominance_demonstrators (reachable + reproducible + V_e·e^(−1/2) fraction + MODELLED-not-VALIDATED); tests/reentry_reconstruction_oracle.rs::reentry_overprediction_is_recorded_as_a_finding; tests/reentry_point_mass_reconstruction_oracle.rs::point_mass_peak_deceleration_matches_reconstructed_entries (cross-check only); tests/reentry_point_mass_accelerometer_oracle.rs (blocked, not run) 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) MODELLED
VM-8f68cf22 Fotavtryck och täckningsgeometri för EO-nyttolast 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 eo_payload (j2_node_rate, j2_nodal_period, ground_track_spacing_equator_j2, sun_synchronous_inclination) eo_payload::tests (vinkelradie 64° vid 700 km + krymper med höjden, nadir→zenit/noll avstånd, horisont→ε=0/maximal centralvinkel, fel bortom horisonten, svepbredd växer med FOV / GSD med höjden, ~2750 km nodavstånd, scenario reproducerbart/MODELLED + avvisning av felaktig indata); dominance_demonstrators (nåbar + reproducerbar + vinkelradie 64° + MODELLED-not-VALIDATED); tests/eo_payload_coverage_orekit_oracle.rs::eo_coverage_matches_orekit_and_geographiclib (höjder 400-1500 km, inklinationer 1-98 grader, halv FOV 7.5-50 grader, IFOV 10-50 mikroradianer, slew 30 och 89 grader: varje storhet inom sin förhandsregistrerade tröskel, flaggan för sammanhängande 168/168); tests/eo_payload_coverage_orekit_oracle.rs::exempt_flag_points_are_the_engines; regression tests/eo_payload_coverage_reference.rs 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) VALIDATED
VM-22d526a3 CCSDS Space Packet (133,0) TM/TC-inramning 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) space_packet space_packet::tests (rubrikbitar stämmer med layouten i CCSDS-133, encode→decode-rundtur för alla fält, utanför intervall/avkortat avvisas); tests/ccsds_space_packet_reference.rs (33 fall mot spacepackets 0.32.0, inklusive 12 jämförelser av hela paket; noll felmatchade oktetter) 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) VALIDATED
VM-870899be CCSDS Space Packet: sekundärhuvud, paketfelskontroll och segmentering 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 space_packet (TimeCode, SecondaryHeader, packet error control, segmentation and reassembly, stream decoding) tests/space_packet_ext_oracle.rs (fem förhandsregistrerade trösklar: CRC, tidskoder, strömmar, lucka och ordning, PUS TM; noll felmatchningar); space_packet::tests 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 VALIDATED
VM-893b479b Export av SPICE SPK (typerna 9 och 13) 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) spk_writer (SpkSegment, to_bytes, from_bytes, eval, et_from_label, oem_to_spk_segments) tests/spk_writer_spice_oracle.rs (inventering, utvärdering, bit- och byteidentitet, OEM-epokomvandling; fyra planerade mutationskontroller gör den röd) 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 VALIDATED
VM-1970e41c SPICE SPK-typerna 3 och 21 (Chebyshev, utökade differenslinjer) 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 spk_writer (SpkType::Chebyshev3, SpkType::DiffLines21, SpkSegment, InterpolatedSpk) tests/spk_3_21_spice_oracle.rs (inventering, utvärdering åt båda hållen, byteidentitet); spk_writer::tests 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 VALIDATED
VM-c005fb99 CCSDS Attitude Data Messages (AEM, APM) 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) adm (AemMessage, ApmMessage, quaternion_a_to_b), ndm_xml tests/adm_orekit_oracle.rs (L1 Orekit läser 33 Kshana-filer, L2 Kshana läser 31 Orekit-filer, L3 135 postrotationer; fynd fastlåsta); adm::tests; ndm_xml::tests 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 VALIDATED
VM-0d74a24d CCSDS Orbit Data Messages (OPM, OMM, OCM) 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 odm (OpmMessage, OmmMessage, OcmMessage, Section, OcmBlock), ndm_xml tests/odm_orekit_oracle.rs (L1 Orekit läser 30 Kshana-filer, L2 Kshana läser 25 Orekit-filer; fynd fastlåsta och intygade att återkomma); odm::tests 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 VALIDATED
VM-5949d2d2 Felbudget för lägesreglering och pekning med 3 frihetsgrader (AOCS) 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) attitude_budget attitude_budget::tests (GG-momentet försvinner för en symmetrisk kropp, växer lägre ned, linjärt i ΔI, RSS-kvadratsumma, variansandelar summerar till 1); tests/attitude_gg_torque_reference.rs (20 fall mot ett oberoende fulltensor-GG-moment T=(3μ/R³)(n̂×(I·n̂)) numeriskt maximerat över attityd med Hipparchus 3,1 linalg; sämst rel 6e-15, + publicerat O(1e-6) s⁻²-band från Wertz/Sidi); tests/attitude_gg_torque_basilisk_oracle.rs::gravity_gradient_torque_matches_basilisk (40 fall mot Basilisk 2.9.1 GravityGradientEffector: topp vid attityden på 45 grader inom 1e-12 relativt, sämst 2.1e-15; inget moment över toppen över 2000 slumpade attityder per fall, 3 diagonala och 5 allmänna tröghetstensorer, 5 höjder) 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 VALIDATED
VM-a9b472c1 Prediktion av överflygningar för markstation (marksegment) 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' passes passes::tests (interp-cross linjär + degenererad-säker, polär→mellanlatitudspass, högre mask ⇒ färre eller lika många); tests/ground_station_pass_prediction_reference.rs (22 scenarier / 129 pass mot Orekit 12,2 ElevationDetector; sämst |Δ| AOS/LOS 0,0000 s, maxelevation 0,0014°, total åtkomst 0,0001 s, identiskt antal pass) 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) VALIDATED
VM-81de805c Skenbar prediktion av markstationspass med refraktion och ljustid 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 passes (predict_passes_apparent, apparent_look_angles, ApparentOptions, p834_tau_s_deg, p834_tau_deg, p834_theta_m_deg, p834_apparent_elevation_deg, PassesScenario) tests/pass_predictor_on_path_orekit_oracle.rs (60 fall, 1210 pass: AOS/LOS inom 3.4e-6 s, tröskel 5 ms; maximal elevation inom 5.5e-7 grader, tröskel 1e-3 grader; 8979 skenbara riktningar inom 8.8e-7 grader, tröskel 1e-4 grader); tests/earth_orbit_path_sgp4_erfa_oracle.rs (vägen); passes::tests (p834_equations_9_and_14_are_consistent_and_vanish_toward_the_zenith; refraction_lengthens_passes_and_light_time_delays_them); tests/pass_predictor_apparent_orekit_oracle.rs (fynd från runda 1, fastlåst; orekit_p834_coefficient_differs_from_the_recommendation_above_sea_level) 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) VALIDATED
VM-ac9e18de Adaptiv kodning och modulering enligt DVB-S2 längs ett LEO-nedlänkspass 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. contact_schedule (es_n0_db, select_modcod, fspl_db, atmospheric_loss_db, ccm_modcod, pass_capacity, AcmLinkScenario); passes::predict_passes_apparent contact_schedule::tests::modcod_efficiency_closed_form_matches_the_printed_table; contact_schedule::tests::modcod_selection_is_monotone_and_honours_the_margin; contact_schedule::tests::link_budget_pieces_have_closed_forms; contact_schedule::tests::acm_link_defaults_run_and_acm_beats_ccm 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. MODELLED
VM-41760091 Schemaläggning av markkontakter för flera satelliter och flera stationer med konfliktlösning 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. contact_schedule (conflicts, objective, delivered, schedule_chronological, schedule_greedy, schedule_optimal, ContactScheduleScenario) contact_schedule::tests::conflicts_cover_turnaround_and_one_station_per_satellite; contact_schedule::tests::greedy_is_feasible_and_the_exact_solver_beats_or_ties_it; contact_schedule::tests::exact_solver_matches_brute_force_and_plans_are_feasible; contact_schedule::tests::exact_solver_declines_above_the_limit; contact_schedule::tests::contact_schedule_defaults_run_reproducibly; contact_schedule::tests::scenarios_reject_bad_inputs 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. MODELLED
VM-082eb065 Enkelriktad länkbudget (kommunikation / länkutformning) 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) linkbudget linkbudget::tests (form för frirymdsförlust, slutning av länkekvationen); tests/one_way_link_budget_reference.rs (DESCANSO/JPL Galileo X-band DCT återgivet från början till slut + 6 fall för FSL enligt ITU-R P.525 över DSN S-/X-/Ka-bandens mittfrekvenser; sämst |ΔFSL| 4.6e-3 dB, |Δbärvåg| 2.5e-2 dB) 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 VALIDATED
VM-0f818901 Sparsam inramning av kostnad per täckning / ROI 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) frugal (over walker) frugal::tests (hand-derived cost-per-coverage 48/96=0,5, ROI ratio 2,667, bracket-ordering + zero-coverage guards) Kostnadsaritmetik i sluten form mot handhärledda värden; en ekonomisk INRAMNING av ett modellerat täckningstal, inte en offert eller en validated kostnadsmodell MODELLED
VM-a32735f9 Integritetspåverkan av missad detektering (kontextmedveten HPL/VPL mot larmgräns) 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) integrity_impact (over raim) integrity_impact::tests (same miss flips Available→MI→HMI as the context tightens; conservative-PL→Unavailable; per-axis HMI; input guards) 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 MODELLED
VM-ba0eda3b Parameterblad med citerade felmodeller för CAI (13503) 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 inertial::cai_params (over inertial::quantum_imu) inertial::cai_params::tests (physics VRW lands inside the cited VRW bracket at all 3 levels; raw fringe-ambiguity range computed from k_eff·T²; conservative budget drifts more than best; every bracket sourced + confirmation-flagged; bracket-ordering guards) 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 MODELLED
VM-cea9b5d7 Benchmark för tidsintegritet — epokklassificerare med Stanford-integritetsdiagram Epokklassificering med TIB Stanford-integritetsdiagram (nominell / otillgänglig / MI / HMI) src/benchmark/stanford.rs src/benchmark/stanford.rs::tests (four regions + inclusive boundaries + |error| + PL>AL unavailability); tests/tib_scorer_reference.rs (classification counts vs independent numpy on a fixed synthetic set) 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). MODELLED
VM-00ec4aa5 Benchmark för tidsintegritet — poängsättare för integritetstäckning Poängsättning av TIB-integritetstäckning (andel HMI/MI/tillgänglighet + utlåtande om överskridande täckning) src/benchmark/coverage.rs 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) Oberoende numpy-omräkning av regioner i tests/fixtures/tib/reference.json; endast korskontroll av poängsättarens maskineri, inget noggrannhetspåstående. MODELLED
VM-28757f0d Benchmark för tidsintegritet — felkatalog (parametriska generatorer) TIB-felmeny (domändivergens, klockslam, holdover-utrullning, statisk/inkrementell/symmetrisk/asymmetrisk fördröjning, replay inom färskhet, vägselektiv, k-av-N-kvorum) src/benchmark/faults.rs src/benchmark/faults.rs::tests (offset profiles, monotone coast, undetectable-set flagging, max_offset consistency, exactly two undetectable classes) 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. MODELLED
VM-06ca2957 Benchmark för tidsintegritet — utlåtande om absorption av icke detekterbara fel TIB-utlåtande om absorption av icke detekterbara fel (symmetriska/replay måste absorberas av PL, aldrig rapporteras som detekterade) src/benchmark/scorecard.rs src/benchmark/scorecard.rs::tests (referens-PL absorberar; trasig PL oabsorberad-aldrig-detekterad; verdikt för detekterbar täckning; den ärlighetsegenskap att inget täcknings- eller detekteringsverdikt kan nås för ett icke detekterbart scenario) Egenskapskontroll att enumen Verdict strukturellt inte kan rapportera ett icke detekterbart fel som detekterat (Mizrahi RFC 7384); absorberat ⟺ PL ≥ offset. Ingen noggrannhetsreferens. MODELLED
VM-58d5ea17 Ingenjörsarbete för rymdfarkostbuss (AOCS/termik/strukturer/framdrivning/effekt) Tillhandahålls inte — Kshana är en simulator för navigeringsprestanda, inte en bussleverantör — — — PARTNER
VM-4189e731 Hårdvaruutformning av navigations-RF-nyttolast och antenn Tillhandahålls inte — Kshana modellerar signalprestanda, inte hårdvara för nyttolast eller antenn — — — PARTNER
VM-8b51babd Hårdvaruutformning och mognadsutveckling av kvantnyttolast Tillhandahålls inte — endast prestandamodeller; hårdvara för kallatomer och klockor är en partners — — — PARTNER
VM-3cd10418 Produktförsäkran för flygburen hårdvara (strålning/EEE/MAIT) Tillhandahålls inte — Kshana behandlar bara PA för programvara; PA för flygburen hårdvara är en partners — — — PARTNER
VM-b691fa8a Lunar koordinattid Relativistisk klockgång Jorden–Månen (LTC/TCL) + kedja TT/TAI/UTC + ensemble lunar_time lunar_time::tests (hastighet i sluten form; rundtur); tests/lunar_coordinate_time_reference.rs (LTC:s termer för självpotential och sekulär hastighet mot publicerade värden av Ashby & Patla 2024 + geocentrisk månhastighet mot JPL DE440) 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) VALIDATED
VM-77f54b2d Självbeskrivning i rapporten för hybrid optisk/RF 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 hybrid_integrity hybrid_integrity::tests (den lösta konfigurationen ekas för standardvärden och för åsidosättanden, utan att våglängden rundas via meter; varje units-post bär både en enhet och en proveniensklass; varje fält som units-blocket nämner skickas faktiskt ut, så det kan inte dokumentera ett spökfält) 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 MODELLED
VM-7a793449 Tillgänglighet för hybridlänk optisk/RF på RF-sidan 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 hybrid_integrity, linkbudget, jamming hybrid_integrity::tests (tillgängligheten är lika med produkten av de två indikatorerna omräknade från rapportens egna marginaler, och dessa marginaler sätts i sin tur ihop på nytt från rapportens egna EIRP, fritt-rum-förlust, samlade förlust, kvalitetstal, Boltzmann-term, datahastighet och krav till 1e-9 dB; värdet mäts vara 0 eller 1 medan den optiska tillgängligheten i samma körning mäts ligga strikt mellan dem; varje faktorrad bär en proveniensklass från det slutna vokabuläret i field_schema; det rapporterade slutningsavståndet som körs om genom länkbudgeten ger en marginal på 0 till 1e-9 dB och mäts vara oberoende av det avstånd körningen låg på över fyra dekader, medan avståndsutnyttjandet flyttas med exakt avståndskvoten; en -40 dBW-länk rapporterar tillgängligheten 0, LOST, och ett utnyttjande över 1 i stället för en bråkdel; den ersatta anteckningen 'no RF-availability counterpart is computed by this engine' är försäkrad borta och ersättaren är försäkrad nämna det nya fältet; en felaktig RF-indata avvisas i stället för att klampas) 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 MODELLED
VM-0a8f4175 Jämförelse mellan optisk och RF-avståndsmätning på lika villkor 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 hybrid_integrity, optical_linkbudget, linkbudget, navsignal hybrid_integrity::tests (kvoten är lika med de två utsända benen dividerade, till 1e-15 relativt, och dess reciproka och decibelform stämmer; varje bens avstånds- och tidssigma förhåller sig till varandra med exakt c; den utsända gemensamma konfigurationen är försäkrad lika med scenariots eget avstånd och integrationstid och RF-benets avstånd är försäkrat lika med det optiska benets; RF-benets C/N0 är bit för bit tillgänglighetsblockets, från en länkbudget, inte en omräkning; egenskapen LIKE-FOR-LIKE MEASURED i stället för att försäkras -- en fyrdubbling av den gemensamma ackumuleringstiden halverar det optiska benet till 1e-12 och RF-benet till 1e-7 och lämnar kvoten orörd till 3.19e-9 relativt, vilket ett ben som i hemlighet medelvärdesbildar över något annat inte kunde klara; ett åsidosättande av rf_dll_bandwidth_hz som bryter den gemensamma medelvärdestiden gör kvoten null med en orsak som nämner båda tiderna, medan båda benen ändå skickas ut; en enkelvägskörning gör jämförelsebenet bit för bit lika med den släppta rubriksiffran med en straffaktor på exakt 1, och en tvåvägskörning återger straffet 0.5/sqrt(returvägens geometriska förlust) omräknat från rapportens egen geometric_loss_db till 1e-12) 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 MODELLED
VM-0117d857 Självbeskrivning i länkbudgetrapporten 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 linkbudget linkbudget::tests (över tre band, fyra dekader av avstånd och båda slutningsverdikten räknas marginalen och fritt-rum-förlusten under den om från enbart rapporten till bättre än 1e-9 dB; det nödvändiga G/T som sätts ihop av ekvationens termer stämmer med samma storhet nådd som G/T minus marginal, och en omkörning vid det nollar marginalen; tre budgetar med vitt skilda EIRP, förlust och tröskel men lika länkkonstant ger ett identiskt krav, medan 1 dB på konstanten flyttar det exakt 1 dB; förstärkningsuppdelningen saknas om inte en brustemperatur anges och en icke-positiv avvisas; varje fält som units-blocket nämner skickas faktiskt ut) 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 MODELLED
VM-70c4fb1a Tabell över skärningspunkter för lunar tid per klockklass 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 lunar_time_budget lunar_time_budget::tests and lunar_time_budget_scenario::tests (alla fyra klasser finns 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 ramfelet med k skalar korsningspunkten med k för en flicker-FM-klocka och med k^2 för en white-FM-klocka, kontrollerat vid k=2 och k=3, vilket skiljer de två brusklasserna åt; varje rad återger den enklockskorsning som budgeten redan rapporterat; varje rad återvinner den delade ramtermen; ett okänt klocknamn avvisas) 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 MODELLED
VM-2ed75c91 Gemensamt UT1- och polrörelsefel över en gemensam radmängd 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 frame_eop, realtime_frame_eop frame_eop::tests och realtime_frame_eop::tests (alla tre komponenter bär lika, elementvis identiska, strikt stigande epokmängder över båda de verkliga IERS-utdragen; den gemensamma mängden kollapsar till snittet när de två Bulletin B-blocken verkligen är oense, och en horisont utan delade rader utelämnas i stället för att nollfyllas; att tabellen över predicerat mot slutligt är tom anges i dokumentet i stället för att antydas av ett saknat fält; en verklig andra årgång fyller den, korskontrollerad rad för rad; en saknad senare årgång är ett fel, inte en tyst tom tabell); tests/joint_eop_table_astropy_erfa_oracle.rs::joint_table_and_predicted_vs_final_tables_match_astropy_and_erfa (tabellerna 3, 4 och 6 i scenariot från början till slut: epokmängder exakta, UT1- och polstatistik inom 1e-9, kombinationen vid månen inom 1e-5 av en fullständig ERFA-rotation, angiven status för varje fall av predicerat mot slutligt); tests/joint_eop_error_iers_ar2019_oracle.rs::bulletin_a_2019_prediction_error_matches_the_iers_realised_statistics (Kshana/IERS 1,001 till 1,100 vid 1 till 90 dagar); radräkning: tests/embedded_eop_vintage_astropy_preregistered.rs (rad för indata offline); regression från runda 1: tests/joint_eop_error_bulletin_a_oracle.rs::measured_error_against_the_iers_accuracy_formula_pole_agrees_ut1_does_not 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 VALIDATED
VM-05ed14c3 Standardindata för jordorientering offline är en verklig IERS-produkt 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 realtime_frame_eop, eop 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 30/54/90; flaggan P på både polrörelse och UT1 för varje predicerad rad; räkningen för den nakna standardkörningen; varje predicerad rad lika med IERS Bulletin A Vol. XXXIX nr 039 inom sin sista utskrivna siffra, sämst 5.0e-5 bågsekunder och 4.9e-6 s); tests/embedded_eop_census_astropy_oracle.rs::vintage_census_matches_astropy (regressionsfastlåsning av det gamla utdraget med 32 rader under flaggklassificeraren: 20 slutliga, 12 snabba, 0 predicerade); tests/embedded_eop_census_astropy_oracle.rs::rows_called_prediction_only_are_flagged_measured_by_astropy (fyndet från runda 1, behållet); realtime_frame_eop::tests; tests/operational_eop_predictor_reference.rs 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 VALIDATED
VM-ee245f89 Fångstfotavtryck mot höjd och strålbredd 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 antenna antenna::tests and attack_surface::tests (rutnätet är fullständigt och varje fångad andel ligger i [0 1]; den fångade andelen är icke-avtagande i sändareffekt vid varje nod; den är INTE monoton i strålbredd eller höjd, vilket är fastlåst av ett eget test så att svepet inte senare kan jämnas ut; baslinjenoden återger den befintliga fångade andelen bit för bit; utvärderingen med enbart limb är bitidentisk med hela svepets sista punkt; en lokaliserad korsning ligger på tröskeln till 1e-9 dB och är omsluten) 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 MODELLED
VM-b53e2911 Reproducerbarhet för lunar tidsfelsbudget 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 lunar_time_budget_scenario lunar_time_budget_scenario::tests (alla 57 medelvärdestider x 8 termer finns, rutnätsindexet går 0..=56 och bär 8 rader vardera; raden total är lika med kvadratsumman av de sju termerna bredvid den vid varje tau; tabellen följer ett begärt rutnät i stället för ett hårdkodat; att sända ut den lämnar rapportens JSON byte-identisk) 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 MODELLED
VM-bc822667 Lunar stationstidslaboratorium: holdover för miniRAFS mot LTC 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 lunar_time_lab (over clock_specs, lunar_time_budget, lunar_time) lunar_time_lab::tests (free_run_clock_term_is_the_budget_clock_term: med styrningen av är klocktermen lika med budgetens klockterm till biten för alla fyra klasser; bisection_matches_the_closed_form inom 1e-9 relativt för båda brusklasserna; threshold_below_the_floor_is_flagged; steering_holds_and_resets; height_term_is_opt_in_and_linear; device_card_reproduces_a_named_class; bad_inputs_are_refused); tests/lunar_station_time_lab.rs (the_block_is_additive: standarddokumentet, tabellen och sammanfattningen är oförändrade och blocket lägger bara till sitt eget objekt och sina units; time_to_threshold_matches_the_closed_form_through_the_scenario; clocks_are_ordered_over_the_span_where_the_model_orders_them: optical < PHM < RAFS < miniRAFS från 1 s till 7e5 s, där PHM- och RAFS-kurvorna korsas mellan 7e5 och 8e5 s, fastlåst som en redovisad egenskap hos klockmodellerna med en enda brustyp; every_time_lab_field_has_a_unit; unknown_time_lab_fields_and_clocks_are_refused) 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 MODELLED
VM-f7dcc8ff Lunar geodetisk VLBI Närfälts-VLBI-fördröjning för en jordbaslinje som observerar en lunar beacon + partialer lunar_vlbi lunar_vlbi::tests (far-field limit matches delta_dor; near-field correction; FD partials); tests/lunar_vlbi_anise_oracle.rs::near_field_delay_disagrees_with_the_anise_light_time_difference 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 MODELLED
VM-825d8922 Lunar geodetisk VLBI, kärnväg 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 lunar_vlbi (KernelGeometry, delay_partials_beacon_body, delay_partials_stations, LunarVlbiScenario); naif_kernel 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; fyrpartialer i kroppssystem inom 1e-6, sämst 7.4e-9; ITRF93-stationspartialer inom 1e-6, sämst 3.8e-11); tests/lunar_vlbi_spice_oracle.rs::spice_2024_epochs_finding_is_unchanged; tests/lunar_vlbi_anise_oracle.rs::kernel_delay_matches_the_anise_light_time_difference (korskontroll av kärnutvärdering); tests/naif_kernel_reader_check.rs; lunar_vlbi::tests 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 VALIDATED
VM-3479c010 NAIF-kärnläsare: DAF-behållare, SPK typ 2 och binär PCK typ 2 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 naif_kernel (DafFile, SpkKernel, PckKernel); ephem_provider (KernelEphemeris) tests/naif_reader_spice_oracle.rs::reader_matches_spice_and_anise_on_the_post_registration_grid (600 tillstånd ur de440s.bsp och 200 MOON_PA_DE440-rotationer vid 200 epoker 1849-2150 och slumpmässiga kroppspar dragna ur förhandsregistreringscommitens egen hash, mot SPICE och ANISE på avkortade kärnor bitidentiska med NAIF:s: sämsta skillnad 0,6 % av sin tröskel, 1.95e-3 m absolut); tests/naif_reader_spice_oracle.rs::reader_matches_spice_and_anise_on_the_full_naif_kernels_when_present (samma på de fullständiga NAIF-filerna, SHA-256 kontrollerad; databegränsad); tests/naif_kernel_reader_check.rs (konstruktionsskydd, inte evidens); naif_kernel::tests; ephem_provider::tests 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 VALIDATED
VM-e8fff17a Earth-GNSS på lunart avstånd 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). earth_gnss_lunar earth_gnss_lunar::tests (11 lib tests: the Earth-limb half angle against its closed form asin(R/r) with a further assertion that EVERY un-occulted link lies outside that cone, so the occultation test and the limb angle cannot disagree; the occultation predicate checked on the near side, the far side and the case where the body lies BEHIND the transmitter; path loss bounded to the plausible lunar-range band on every link; the trackable set shown to be a subset of the geometrically visible set and disjoint from the occulted one; monotonicity in both directions - more receiving gain never reduces the count, a stricter threshold never raises it; no link credited with more than boresight gain; a receiver inside the Earth refused; the sweep asserted to actually VARY with epoch; and signal-vs-fix availability asserted distinct, correctly ordered, and consistent with the per-epoch rows); tests/earth_gnss_measured_montenbruck_oracle.rs::finding_genesis_nadir_counts_exceed_the_paper (pinned); tests/lugre_relative_cn0_visibility.rs::too_few_iir_records_at_lunar_distance_for_the_relative_cn0_bar (pinned finding) 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 MODELLED
VM-b2d2f296 Lunar banbestämning: Earth-GNSS mot radiometri från marken 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. lunar_infra::{orbit, gnss, od} tests/lunar_infra_od_consistency.rs (bar O1: the state-transition matrix chained over three days and over one period equals scipy DOP853 to a relative 1e-6; bar C1: mean q and the in-95 % fraction; bar C2: sample over formal trace of each estimator; bar C3, NOT MET and pinned: with 3e-10 m/s2 of unmodelled acceleration the in-95 % exceedance is 0,0525, not at least 0,5 - the on-board estimate is known only to hundreds of metres, so about ten metres of displacement hides inside its covariance); lunar_infra::orbit::tests, lunar_infra::gnss::tests, lunar_infra::od::tests, lunar_infra::la::tests 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. MODELLED
VM-d2d0cc81 Lunar bärvågsfaslösning av heltalsosäkerhet: yta och omloppsfarkost 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. lunar_infra::phase; lambda tests/lunar_infra_carrier_phase.rs (bar Q1: Monte Carlo success at least the bootstrap bound minus three standard errors; Q2: no fall with arc length beyond three standard errors; Q4: LAMBDA equals brute-force enumeration for 200 draws of dimension up to five; Q3: the float design equals an independent numpy solve to 1e-9 for the ambiguity and position covariances, and the bootstrapped rate is NOT MET at 1e-9, pinned: it differs by a relative 1.7e-6 because LAMBDA's normal CDF is an Abramowitz and Stegun approximation) 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. MODELLED
VM-0c52dc3e Lunar samestimering av referenssystem: ytstationer och omloppsfarkoster 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). lunar_infra::frame; lunar_datum; lunar_identifiability; lunar_llr_geometry tests/lunar_infra_studies_3_5.rs (bar F1: the CRLB trace does not rise and the smallest eigenvalue does not fall with orbiter links, in the example and in 20 seeded random sets; bar F2: the range partials equal an independent numpy longdouble finite difference of the Rodrigues forward model on 50 geometries; bar F3: the smallest eigenvalue rises by at least 2.0x, found about 111x) 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. MODELLED
VM-d415284a Precision för referenssystemsbindning i rymden: samlokaliserad GNSS, VLBI och laseravståndsmätning 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). lunar_infra::tie; fim::crlb_srif tests/lunar_infra_studies_3_5.rs (bar T1: translation sigmas do not fall as the local tie loosens; T2: with technique sigmas scaled by 1e-6 each pair's translation sigma is within 1 % of sqrt(2) times the local-tie sigma, found within 3e-7; T3: the information matrix equals an independent numpy stacked assembly to 1e-9). Den första T2-körningen med inversion av normalekvationerna missade (1,3 % vid en 0,1 m koppling, värden under golvet vid 1 m); orsaken var numerisk och kovariansen flyttades till kvadratrotsvägen innan tröskeln poängsattes på nytt. 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. MODELLED
VM-adb8542c Känslighet för lunara Love-tal och libration 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. lunar_infra::geodesy; lunar_od::degree2_tide_accel; lunar_time tests/lunar_infra_studies_3_5.rs (bar G1: analytic partials equal a central finite difference of each forward model to 1e-8; G2: the 5x5 information equals an independent numpy assembly to 1e-6; G4: the clock tide amplitude and its k2 and h2 sensitivities equal an independent evaluation to 1e-9; bar G3 NOT MET in its trace half, pinned: adding a family never lowers the smallest eigenvalue (28 of 28) but the pseudo-inverse trace rose in 12 of 28 additions because the added family raised the rank) 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. MODELLED
VM-555a5784 Lunar förstärkning av DOP med ytbeacons 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 lunar_beacon lunar_beacon::tests (horizon visibility against the L01 closed form; the beacon-augmented DOP against the bare one; the error-budget root-sum-square; the DOP-to-metres relation); tests/validate_p2_beacon_before_after_table.rs (the whole before/after table pinned to a committed golden at 1e-9 relative); tests/validate_p2_beacon_before_after_independent_dop.rs (the same geometry through an INDEPENDENT DOP path, so the augmentation is not checked against the kernel that produced it); tests/validate_lunar_beacon_anise_visibility_dop.rs::beacon_visibility_and_augmented_dop_match_anise_and_numpy 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 MODELLED
VM-d5118eb1 Integritetsblindhet för gemensamt läge 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 lunar_common_mode lunar_common_mode::tests (8 bibliotekstester: uppdelningen är additiv och rekonstruerar dy; en kovarians för gemensam mod ger en positiv skyddsnivå för gemensam mod medan en kovarians med enbart paritet ger en nära noll; projektorn annihilerar range(G)); tests/lunar_common_mode_integrity_reference.rs (motorns uppdelning mot en oberoende numpy-beräkning på byteidentisk indata över det incheckade urvalet med 366 epoker, relativt OCH absolut fel < 1e-3); tests/lunar_common_mode_parity_numpy_oracle.rs::common_mode_split_matches_numpy_lstsq_on_parity_bearing_inputs (1464 fall med paritet på geometrin med 8 satelliter och en delmängd med 6 satelliter över båda verkliga mellanefemeridparen: blind_dx, residual och normer inom 1e-12 av |dy|, sämst 1.06e-14) 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) VALIDATED
VM-2e12093e Skyddsnivå för gemensamt läge och totalt integritetskuvert cmpl_horizontal begränsar det horisontella positionsfelet på k sigma som bidras av den blinda gemensamma klassen, genom att bilda blind_position_covariance = SCovS^T och projicera den till ENU; integrity_envelope rapporterar hpl_total = hpl_araim + cmpl. Skillnaden som paret finns till för att göra: RESIDUALTESTET i RAIM/ARAIM är bevisligen blint för fel i range(G), men ARAIM:s SKYDDSNIVÅ är det inte - dess felfria term begränsar dem redan upp till en leverantörs URA plus nominell bias. CMPL är därför bara det UTÖKADE felet mellan leverantörer som en enskild leverantörs URA/ISM per leverantör inte överbegränsar, och summan är en konservativ gräns enligt triangelolikheten och inte en RSS, giltig bara där det överskottet inte redan ligger inom URA. lunar_common_mode lunar_common_mode::tests (common_mode_covariance_gives_positive_cmpl, parity_only_covariance_gives_near_zero_cmpl, envelope_sums_the_two_classes, state_map_matches_split) 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. MODELLED
VM-6fe5eca9 Lunar gemensam multiteknik-banbestämning + klocka Batchfusion av VLBI + lunart lokalt avstånd + avstånd mellan satelliter för att återvinna positioner och klockor för stationer och konstellation lunar_combination (problem, model, estimate, formal_covariance); batch_ls (gauss_newton_qr) lunar_combination::tests (återvinner simulerad referens; VLBI återställer stationens 3D-observerbarhet; deterministisk); tests/lunar_joint_multi_technique_od_reference.rs (6 geometrier × 16 parametrar, 31 observationer vardera, mot Orekit 12,2 / Hipparchus Levenberg-Marquardt på identiska observationer; återvunnet tillstånd sämst |Δ| 1.4e-8 m); tests/lunar_joint_od_numpy_oracle.rs::joint_solve_linear_algebra_matches_numpy (sex nät varav ett utan VLBI: Gauss-Newton-steg inom 4.3e-11, formella sigman inom 1.9e-11, stationsfel lika; på indata med portabel matematik för 0,36 2.4e-11 och 1.3e-11 på indata för 0,30) 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) VALIDATED
VM-f0e89ca3 Fisher-information och observerbarhet enligt Cramér–Rao 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 fim 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); fim::tests (Jacobi-egenlösare mot spektra i sluten form; CRLB mot slutna uttryck av Kay 1993 — DC i WGN σ²/N och linjeanpassning σ²(XᵀX)⁻¹; Monte Carlo-uppnående av CRLB; Moore–Penrose-identitet MM⁺M=M; nollrum för datumdefekt) 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) VALIDATED
VM-e192c5ac Observerbarhet för absolut stationsposition på månen (datumdefekt) 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 lunar_combination (lunar_observability) + fim lunar_combination::tests (rangbristande utan jordbaslinjer; tre baslinjer återställer full rang — tröskeln på 3 stationer från informationsrangen, inte lösningsfelet; stationens CRLB nås av estimatorn med effektiviteten 0,98; CRLB skärps monotont med baslinjer); tests/lunar_observability_numpy_oracle.rs::lunar_observability_matches_numpy_on_the_committed_jacobians 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 MODELLED
VM-0829ad8b Realisering av månens referenssystem Anpassning av ett Helmert-datum med 7 parametrar och ICRF-orienteringsknytning från ett nätverk av punkter lunar_frame_realise lunar_frame_realise::tests (återvinner injicerad Helmert-transform); tests/lunar_reference_frame_realisation_reference.rs (14 fall mot en oberoende lösare med Umeyama-SVD i sluten form; sämst |Δ| translation 2.0e-5 m, rotation 5.3e-12 rad, skala 9.3e-2 ppb, RMS efter anpassning 6.1e-9 m) 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 VALIDATED
VM-b8cf831d Täckningsvolym för navigeringstjänst på månen 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 lunar_service lunar_service::tests (DOP återanvänder den validerade kärnan; PL reduceras till fallet vid sydpolen); tests/lunar_navigation_service_volume_reference.rs (MCI-position per satellit till <1e-3 m + EXAKT mängd synliga satelliter över hela svepet rutnät×epok mot ANISE 0.10.2) 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 VALIDATED
VM-82bb02b3 Generering av spridningskoder för LunaNet AFS (LSIS V1.0) 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 lunar_afs::codes, lunar_afs::lsis, lunar_afs::params (IS-GPS-800J indices) lunar_afs::codes::tests (maximal-length registers, Legendre balance, G2 delay round trip, tier composition); tests/lunar_afs_codes_lsis_reference.rs::afs_codes_finding_one_misprinted_table_cell (utan LSIS-cachen: fyra citerade tal fastlåser fyndet; med den: 2 937 232 chips och bitar mot LSIS Annex 3-filerna, tryckta första/sista 24 chips, Legendre Tables D-1 och E-1 och G2-initialiseringar ger exakt en avvikande post, cellen 'last 24 chips' för PRN 147 i Table E-5, som dubblerar PRN 151:s medan Annex 3-filen stämmer med generatorn); det strikta förhandsregistrerade testet afs_codes_match_lsis_v1_tables_and_annex3_bit_exact är ignorerat med det gapet 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") MODELLED
VM-036ec4a7 Basbandsrendering för LunaNet AFS mot en oberoende generator, givet dess kanaltillstånd (LSIS V1.0) 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 lunar_afs::waveform::render, lunar_afs::codes, lunar_afs::frame 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 chipfelmatchningar); tests/lunar_afs_waveform_lans_afs_sim_oracle.rs::afs_frames_and_baseband_match_lans_afs_sim (med LSIS-cachen: 3 ramar, noll symbolfelmatchningar; 24 incheckade fönster på 2 ms, |rho| = 0,999990); tests/lunar_afs_waveform_lans_afs_sim_oracle.rs::afs_full_run_matches_lans_afs_sim (databegränsad: hela körningen på 23,9 s, |rho| = 0,999990, sämsta block på 2 ms 0,999948, fas 8e-9 rad) 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 VALIDATED
VM-f847c909 Kanalkodning av LunaNet AFS-ram, FID 0 (LSIS V1.0) 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]] lunar_afs::frame, lunar_afs::ldpc, lunar_afs::lsis 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 av samma FID, TOI och databitar: noll av 18 000 symboler skiljer sig); tests/lunar_afs_frame_coding_oracle.rs::bch_worked_example_and_crc24_check_value_are_bit_exact (LSIS figur 8: 0x045 -> 0x229f61dbb84a0; CRC-24/LTE-A kontrollvärde 0xCDE703; körs alltid); tests/lunar_afs_frame_coding_oracle.rs::ldpc_codewords_satisfy_the_printed_parity_check_matrices (100 kodord, noll ouppfyllda kontroller av den tryckta H); tests/lunar_afs_frame_coding_oracle.rs::decoder_from_parity_check_matrices_recovers_every_frame (avkodare enbart ur H, brusfri och vid 3 dB Es/N0, och 10 hela ramar); lunar_afs::ldpc::tests::printed_b_inverse_inverts_printed_b; lunar_afs::frame::tests 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 VALIDATED
VM-8d800158 Avkodbarhet med sluten slinga för LunaNet AFS med en oberoende mottagare (LSIS V1.0) 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 lunar_afs::waveform (recording and truth labels), xval/lunar-afs/run_pocketsdr.sh tests/lunar_afs_decodability_pocketsdr_v3_oracle.rs::third_run_finding_c1_c2_hold_g0_is_receiver_nondeterminism (third pre-registration: 2 nodes, 4 channels tracked, worst Doppler error 0,57 Hz, worst code offset error 0,008 chip, all 6 frames decoded with the right TOI across the 99 -> 0 wrap and matching subframe 2; G0 not met as written, the receiver's own run-to-run variation in its acquisition records); tests/lunar_afs_decodability_pocketsdr_4bit_oracle.rs::decodability_finding_five_violations (second: 5 violations); tests/lunar_afs_decodability_pocketsdr_oracle.rs::first_run_finding_no_acquisition_outside_the_receivers_4_bit_range (first: void); the strict tests of the three files are ignored with their gaps 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 MODELLED
VM-2d449120 GPS L1 C/A: formatkontroll mellan generatorer 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) gps_lnav, sdr tests/gps_l1ca_gpssdrsim_cross_generator.rs::gps_sdr_sim_truncates_where_the_broadcast_integer_needs_rounding (pinned finding); tests/gps_l1ca_gpssdrsim_cross_generator.rs::ca_codes_lnav_fields_and_parity_match_gps_sdr_sim_bit_exactly (strict, ignored with the gap); gps_lnav::tests 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 MODELLED
VM-a0dce0aa Signalgeometri för GNSS IQ-scen mot en oberoende basbandsgenerator 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) iq::scene (Scene, SatGeometry, TruthRecord) tests/iq_gpssdrsim_cross_generator.rs::scene_geometry_matches_gps_sdr_sim_channels (11 kanaler: sämsta pseudoavstånd 1.6e-3 m mot 0,05 m, kodfas 5.5e-6 chip mot 2e-4, Doppler 7.4e-5 Hz mot 0,02 Hz, synvinklar 4e-9 grad mot 1e-4, synlig mängd identisk); tests/iq_gpssdrsim_cross_generator.rs::harness_reproduces_the_gps_sdr_sim_program_channel_listing (referensselen återger programmets egen utskrivna kanallista exakt) 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 VALIDATED
VM-3ed8a076 GNSS IQ-införvärvning på oberoende genererade I/Q-samplingar 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 iq::acq (acquire, AcqConfig); iq::io (decode_samples); iq::scene (GpsL1Ca) tests/iq_gpssdrsim_cross_generator.rs::acquisition_threshold_is_crossed_on_gps_sdr_sim_noise_free_samples (pinned finding); tests/iq_gpssdrsim_cross_generator.rs::acquisition_finds_gps_sdr_sim_satellites_in_its_samples (strict, ignored with the gap) 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 MODELLED
VM-59bb0091 IQ-övervakare bedömda i labbuppspelningskampanjer: detektion, missar, falsklarm och slutna uttryck för falsklarmstal 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 iq::campaign (detect, runner, spec); iq::monitor (stats::gaussian_two_sided_pfa, sqm) tests/iq_campaign_monitors.rs: m1_power_test_false_alarm_rate_matches_the_closed_form (73 av 5900 block mot det binomiala intervallet på 99 % [40, 80] för P_fa 0,01), m2_sqm_false_alarm_fraction_is_within_a_factor_of_2_of_2q_k (delta 0,0160, kvot 0,0131 mot 0,01), m4_cn0_false_alarms_stay_within_the_poisson_bound_of_arl0 (0 mot 0), the_monitors_table_parses_and_validates; m3_every_attenuation_is_detected_within_twice_the_arl1 (strikt, ignorerat med gapet); iq::campaign::detect tests; iq::monitor::stats tests (gaussian_two_sided_tail_matches_known_values); tests/iq_campaign.rs (de fastlåsta sammandragen är oförändrade utan tabellen) Ö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 MODELLED
VM-6254a75d Detektions-ROC för IQ-övervakarna från en bedömd labbuppspelningskampanj 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 iq::campaign (detect, report, runner); iq::monitor::spectral (kurtosis_reference) 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 på angivna händelser som inte dämpar något); r1_the_cn0_drop_roc_separates_6_db_attenuations (strikt, ignorerat med gapet); iq::campaign::detect tests (the_roc_of_separated_and_of_identical_samples, windows_tile_the_time_outside_the_events) 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 MODELLED
VM-c9318c63 Kalibrering av den öppna mottagarens modeller för C/N0 och låsning mot resultat från IQ-kampanjer, med angivet prediktionsfel 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 iq::labfit (campaign, cn0, iqfit, iqreport, schema, mod); iq::cli::labfit tests/iq_labfit_campaign.rs: bar_c_holdout_prediction_intervals_cover_between_80_and_98_percent (PI90-täckning 0,891 över 558 bins, 0,900 över 10 händelser av tid till förlust under varje låsmodell), the_report_carries_its_inputs_censoring_validation_and_labels (indata, censurering, [validation]-hash och verdikt, units-blockets revision), the_cluster_bootstrap_reproduces_from_the_campaign_and_seed, a_validation_mode_fit_refuses_to_start_without_its_table; bar_a_prime_delta_eff_is_recovered_and_q_is_stated_not_fitted, bar_d_closed_form_threshold_matches_the_direct_estimate_within_1_db och bar_b_prime_ci_subset (strikta, ignorerade med gapet); bar_b_prime_full_set_of_50_campaigns (ignorerat, körs före release); iq::labfit::cn0 tests (exact Q-delta degeneracy, delta recovery at the stated Q, closed-form threshold inverse); iq::labfit::iqfit tests (the lock-model conditions reproduce the C/N0 model exactly); tests/iq_labfit_followup.rs (uppföljningen registrerad i 1e532f84: s1_delta_eff_on_the_stepped_campaign MET, s2_d_as_written_on_the_stepped_campaign som försäkrar det registrerade NOT MET, r1_dwell_corrected_d_on_the_fresh_ramp_campaign MET, i release) 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 MODELLED
VM-b6918acf GPS LNAV-kodning avkodad av ett oberoende mottagarbibliotek 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 gps_lnav tests/gps_lnav_rtklib_decode_oracle.rs::rtklib_recovers_every_integer_and_differs_only_by_its_decimal_two_to_the_minus_43 (pinned finding); tests/gps_lnav_rtklib_decode_oracle.rs::kshana_lnav_subframes_decode_in_rtklib_to_the_broadcast_parameters (strict, ignored with the gap) 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 MODELLED
VM-6649987c Kodning av GPS LNAV-navigeringsmeddelandet 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 gps_lnav tests/gps_lnav_rtklib_integer_oracle.rs::kshana_lnav_integers_decode_in_rtklib_from_an_unseen_broadcast_file (32 satelliter i IGS sändningsfil från 2 mars 2025: 960 av 960 ord passerar RTKLIB:s paritet, 96 av 96 delramar avkodas, 608 av 608 avkodade sända heltal är lika med Kshanas, varje indata inom ett halvt kvantum, vecka och tider exakta); gps_lnav::tests 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 MODELLED
VM-7151fa5e Införvärvning och C/N0-skattning på verklig IQ-data från månen 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 acquisition, portable_math, realdata::ion_sdr, realdata::lugre tests/lugre_acquisition_gnss_sdr_oracle.rs::finding_dc_artefacts_and_no_contemporaneous_flight_cn0 (pinned finding, data-gated); tests/lugre_acquisition_gnss_sdr_oracle.rs::acquisition_and_relative_cn0_on_lugre_iq_match_gnss_sdr_and_the_flight_receiver (strict, ignored with the gap); acquisition::tests; realdata::ion_sdr::tests; realdata::lugre::tests 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 MODELLED
VM-0823eb57 Införvärvning på verklig IQ-data från månen mot banprediktion av Doppler (beslut på samplingseffekt) 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 acquisition, realdata::ion_sdr tests/lugre_acquisition_predicted_doppler_oracle.rs::noise_alone_crosses_the_sample_power_threshold_on_lugre_iq (pinned finding, data-gated); tests/lugre_acquisition_predicted_doppler_oracle.rs::acquired_doppler_differences_on_lugre_iq_match_the_orbit_prediction (strict, ignored with the gap) 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 MODELLED
VM-547ca1d6 Införvärvning på verklig IQ-data från månen bedömd mot banpredikterad Doppler 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 acquisition, realdata::ion_sdr tests/lugre_acquisition_cell_average_doppler_oracle.rs::strong_pairs_match_the_prediction_only_with_the_doppler_sign_reversed (pinned finding, data-gated); tests/lugre_acquisition_cell_average_doppler_oracle.rs::cell_average_acquisitions_on_lugre_iq_match_the_orbit_predicted_doppler (strict, ignored with the gap) 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 MODELLED
VM-2a6bb218 Införvärvning på undanhållen verklig IQ-data från månen mot banpredikterad Doppler 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 acquisition, realdata::ion_sdr, realdata::lugre tests/lugre_surface_acquisition_doppler_oracle.rs::each_surface_acquisition_is_a_single_predicted_visible_satellite (pinned finding, data-gated); tests/lugre_surface_acquisition_doppler_oracle.rs::surface_acquisitions_match_the_orbit_predicted_doppler (strict, ignored with the gap) 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 MODELLED
VM-c771c187 Gemensam geometri för kommunikation och navigering på månen 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 lunar_service lunar_service::tests (topocentrisk mot handräknad geometri: rakt ovanför, rakt norr/öster/väster, antipodal och den degenererade polära riktningen österut; den exporterade synlighetsflaggan stämmer med det oberoende synlighetsfiltret över ett fullständigt svep på 6 h; exporten är avstängd som standard och ändrar bevisligen inget annat; skyddsnivåerna är exakt linjära i det exponerade sigmat medan geometrin under är orörd); tests/lunar_service_geometry_oracle.rs::look_angles_match_anise_at_selenographic_sites (768 sampel över 8 platser, 12 epoker och 8 satelliter mot ANISE 0.10.2: azimut och elevation inom 1e-6 grader, avstånd och platsposition inom 1 mm; sämst 2.2e-12 grader, 2.1e-13 grader, 5.6e-9 m) 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 VALIDATED
VM-2120aea3 Differentiell PNT på månen Differentiell referensstation av NovaMoon-klass: upphävande av gemensamt läge + baslinjeväxande residual + DGNSS-skyddsnivåer lunar_dpnt lunar_dpnt::tests (clock common-mode cancels exactly; residual grows with baseline; reuses SBAS PL; the satellite count is honoured to the builder's limit of 24, so a larger constellation cannot silently return a smaller one); tests/lunar_differential_pnt_reference.rs (single-difference residual + WLS position solve vs RTKLIB's lsq() compiled from C source) 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 MODELLED
VM-a157b399 Export för interoperabilitet på månen Export av LunaNet/IOAG-anpassat månreferenssystem + tid + efemerid (CCSDS OEM + KIF) med rundturskontroll lunar_interop lunar_interop::tests (OEM carries lunar REF_FRAME/TIME_SYSTEM; time metadata round-trips; KIF envelope); tests/lunar_interoperability_export_reference.rs (kshana's emitted lunar OEM re-parsed by the independent oem Python library: REF_FRAME/TIME_SYSTEM/CENTER tokens + per-epoch state to format precision; a corrupted export is rejected); tests/lunar_interop_oem_oracle.rs::recorded_two_reader_outcome_is_for_todays_export 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 MODELLED
VM-ce44f2a8 Poängsättning anpassad till ramverk för PNT-resiliens 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. resilience::arch, resilience::score, resilience::diversity, resilience::timeline resilience::score::tests (monotonicity, composite bounds, level cap, modelled-provenance); resilience::diversity::tests (inverse-Simpson, common-mode, SPOF) 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 MODELLED
VM-2605d9ce Studie av beslutsinstabilitet i resiliensindex 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. resilience::stats, resilience::study, resilience::panel resilience::stats::tests (handräknat Kendall-tau-exempel, Dirichlet-simplex, flip-rate); resilience::study::tests (stabilitetskontroll, instabilitetsvittne, deklarerat mot uppmätt, diversitetskollaps) Identiteter för rangstatistik med slutna uttryck (tau i [-1,1] med handräknade värden; deterministisk seedad Dirichlet) och konstruerade stabila/instabila vittnen MODELLED
VM-54e60db6 Representativitet för demonstrationen och luckor mot flygning Ä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). representativeness representativeness::tests (validated-needs-external-anchor, modelled-needs-gap, modelled-TRL-ceiling, malformed-band, JSON-fält) 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 MODELLED
VM-029c96cc Underlag för avvägning kvant mot klassiskt (gemensam form) 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. qtrade qtrade::tests (nyttans polaritet högre/lägre-är-bättre, packar in ett verkligt TradeResult troget, oärligt belägg avvisas, validerat kvalitetsmått kräver extern förankring, deterministisk JSON) Identiteter med slutna uttryck för fördel/vinnare + trogen inpackning av det befintliga quantum_trade::TradeResult; ärlighet knuten till representativitetsregistret och verifieringsetiketterna MODELLED
VM-868d3124 Bibliotek med felmodeller för kvantenheter 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). quantum_devices quantum_devices::tests (klockkort ärliga+ordnade; sammanflätningens precision ~1/sqrt(tau); detekterad frekvens -10x/10dB; mörkerräkningar försämrar; systematiska golv begränsar; kort modelled+valid) Å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 MODELLED
VM-6c2f0424 Betrodd kvanttidssynkronisering (tidsöverföring + säker distribution + anomali) 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. timetransfer_chain timetransfer_chain::tests (precisionen förbättras med integrationen; kvant kan vinna OCH förlora; PL ändlig-positiv; säkerhetsmåttet i [0 1] och växer med attackfördröjningen; avvikelsens Pd monoton; trade is_honest) 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 MODELLED
VM-ad83abe1 GNSS-fri kvantnavigering 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). quantum_nav_od quantum_nav_od::tests (kvant slår klassisk över ett långt bortfall; fördelen beror på bortfallets längd; trade is_honest); tests/gnss_free_quantum_navigation_reference.rs (tillväxt av positionsfel vid dödräkning mot en oberoende dubbelintegration i Octave + det publicerade bruset från Freier-2016 som ankare) Å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 MODELLED
VM-67830b35 Fel- och anomalidetektion för kvant-PNT-system 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. quantum_faults 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; trade is_honest) 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 MODELLED
VM-5a7431e2 Momentfri attitydrörelse för stel kropp 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 attitude_dynamics attitude_dynamics::tests (apply/solve invers, sfärisk töppa med noll moment, fixpunkt för huvudaxel, energi- och rörelsemängdsbevarande vid kort körning, q̇=½q⊗ω, tecken på hastighet för symmetrisk töppa + kroppskonprecession); tests/attitude_dynamics_reference.rs (200 000 steg långa momentfria körningar: |q|=1 till 1e-10, rörelseenergi T=½ωᵀIω bevarad till 1e-9 rel, |Iω| och den tröga rörelsemängdsvektorn bevarade till 1e-9/1e-8 rel, båda på en treaxlig och en allmän icke-diagonal tröghet; kroppskonprecession för symmetrisk töppa, tillplattad + avlång, återgiven till 1e-6 mot det analytiska λ=ω₃(I_a−I_t)/I_t); tests/attitude_dynamics_basilisk_oracle.rs::torque_free_motion_matches_basilisk (två allmänna icke-diagonala tröghetsmoment, 1e4 s momentfritt mot Basilisk 2.9.1 rymdfarkostnav med RKF78: kvaternion inom 1e-9, sämst 3.3e-11; kroppshastigheter inom 1e-9 rad/s, sämst 3.4e-12) 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 VALIDATED
VM-c1723806 Relativ dynamik enligt Clohessy–Wiltshire / Hill 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 cw_dynamics (propagate, second_order_correction, propagate_second_order) cw_dynamics::tests (Φ(0)=I, frikopplad SHM tvärs spåret); tests/cw_dynamics_reference.rs (Φ i 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 1e-9; det begränsade villkoret ẏ₀=−2n·x₀ sluter hela tillståndet efter en period till 1e-9 utan sekulär drift längs spåret över 10 banor; en ren radiell offset driver det analytiska −12π·x₀ per bana); tests/cw_dynamics_orekit_oracle.rs::cw_second_order_matches_nonlinear_orekit_within_1mm (fyra fall på 100 m över en tredjedel av en bana på 500 km: sämst 1.15e-7 m mot 1e-3 m); tests/cw_dynamics_orekit_oracle.rs::cw_disagreement_with_orekit_is_recorded_as_a_finding (enbart det linjära Φ: 1,2 till 6,3 mm, fastlåst) 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 VALIDATED
VM-40e51f3e Passiv geolokalisering av sändare med TDOA/FDOA 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 geolocation geolocation::tests (brusfri TDOA framåt→invers till 1e-6 m; J·CRLB=I med en symmetrisk PD-kovarians; spåret av CRLB:s positionsvarians är icke-växande när en mottagare läggs till; gemensam TDOA+FDOA återskapar en rörlig sändares position+hastighet; <4 mottagare avvisas); tests/geolocation_reference.rs (rundturer över fyra geometrier med ett 3D-diversifierat nätverk; Gauss–Newton-skattaren når sin Cramér–Rao-gräns — den empiriska felkovariansen följer den analytiska gränsen över 4000 Monte Carlo-försök); tests/geolocation_crlb_published_oracle.rs (ho_chan_1993_maximum_tdoa; ho_xu_2004_fig7_with_the_authors_corrected_source; ho_xu_2004_bound_matches_the_authors_code; finding_ho_chan_ottawa_printed_values_are_not_the_bound och finding_ho_xu_fig7_printed_source_is_not_the_plotted_one, fastlåsta) 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 % MODELLED
VM-e29a09f4 Toppavbromsning vid ballistisk 3-DoF-inträde mot det publicerade nominella fallet för Stardust 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. entry_eo_ascent::entry_heating (simulate_entry, inertial_to_relative, EntryHeatingScenario) tests/entry_stardust_published.rs (topp 35,44 g mot de 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 (energin i det roterande systemet sjunker med exakt dragarbetet; vakuumglid bevarar Jacobi-energin; icke-roterande ballistiskt fall stämmer med den plana punktmassan i modulen reentry; Allen-Eggers slutna uttryck i sitt område) 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. VALIDATED
VM-953d1c01 Konvektiv inträdesuppvärmning i stagnationspunkten (Sutton-Graves) vid ett 3-DoF-inträde 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. entry_eo_ascent::entry_heating (stagnation_heat_flux, simulate_entry) entry_eo_ascent::entry_heating::tests::heat_flux_relation_has_the_published_form_and_constants; entry_eo_ascent::entry_heating::tests::lift_lowers_peak_deceleration_and_heat_flux_of_a_shallow_entry; entry_eo_ascent::entry_heating::tests::mars_entry_runs_with_the_mars_constants; tests/entry_stardust_published.rs (registrerar 746 W/cm2 för Stardust utan tröskel) 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. MODELLED
VM-f981b758 Radiometri, MTF, relativt kantsvar och GIQE 4 NIIRS för elektrooptisk avbildare 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. entry_eo_ascent::eo_radiometry (Imager, snr_budget, giqe4_niirs, EoRadiometryScenario) entry_eo_ascent::eo_radiometry::tests::diffraction_mtf_has_its_closed_form_values; entry_eo_ascent::eo_radiometry::tests::a_pure_pixel_aperture_has_a_ramp_edge_and_rer_one; entry_eo_ascent::eo_radiometry::tests::a_gaussian_blur_has_the_normal_cdf_edge; entry_eo_ascent::eo_radiometry::tests::snr_budget_scales_as_shot_noise_when_signal_dominates; entry_eo_ascent::eo_radiometry::tests::giqe4_switches_coefficients_at_rer_0_9_and_falls_with_gsd 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. MODELLED
VM-a47a618a Förluster vid uppskjutning på grund av gravitation, luftmotstånd, styrning och mottryck 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. entry_eo_ascent::ascent (simulate_ascent, AscentScenario); reentry::us76_pressure entry_eo_ascent::ascent::tests::the_loss_identity_holds_to_integration_error; entry_eo_ascent::ascent::tests::vertical_vacuum_burn_has_only_gravity_loss_and_stays_vertical; entry_eo_ascent::ascent::tests::us76_pressure_has_the_standard_values; entry_eo_ascent::ascent::tests::a_larger_kick_lowers_burnout_flight_path_angle 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. MODELLED
VM-8e1d443b TWSTFT-tvåvägsekvation, osäkerhetsbudget och länkstabilitet med flicker och dygnsbunden icke-reciprocitet 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. twstft_budget (counter_readings, solve_offset, combined_uncertainty, flicker_phase, two_way_series, series_stability); time_transfer_budget (TimeTransferBudgetScenario, read_series) twstft_budget::tests (tvåvägsekvationen återskapar offseten exakt; Sagnac-termen är lika med BIPM:s slutna loopform; den jonosfäriska termen följer frekvensuppdelningen och troposfären upphävs; flickerfas har en platt TDEV; en dygnsrest lyfter TDEV nära ett halvt dygn; en reciprocitetsbias förskjuter offseten och inte TDEV; serien stability tar bort en drift); time_transfer_budget::tests 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. MODELLED
VM-c6005488 Numerik 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 luft 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. optical_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) 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 sämst 5.7e-16, 96 gamma-gamma-fadingsannolikheter sämst 1.3e-12 i log10, moln och optiskt djup i klarluft sämst 6.6e-16); tests/optical_atmosphere_no_moved_output.rs (tröskel A5: länkbudgeten med sammanslagen förlust och de befintliga utdata för platstillgänglighet är bitidentiska med basens commit över 1 000 parameteruppsättningar) 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 MODELLED
VM-9fc2c823 Väderstyrd tillgänglighet för optiska markplatser och avståndskorrelerad platsdiversitet 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. optical_weather; optical_sitediv; optical_techniques; optical_atmosphere_scenario 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 monotonicitetsbrott i antalet platser och i korrelationen; den första körningen av tröskeln missade med 3e-9 eftersom den normala CDF som användes var Abramowitz-Stegun-formen på 1.5e-7, ett implementationsfel som ersattes av den ofullständiga gamma-CDF med tröskeln oförändrad); optical_weather::tests och optical_sitediv::tests (monoton marginal, molntaket som sluten form, identiteterna för bortfallens varaktighet, inversion av marginalsökningen) 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 MODELLED
VM-fe158525 Kontinuitet i tidssynkronisering och avståndsmätning genom optiska avbrott 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. optical_outage_holdover (couple, clock_psds); holdover (coast_phase_sigma, holdover_seconds, phase_to_range_m) 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 medelvaraktigheter, 3 spridningar och 4 kvantiler); optical_outage_holdover::tests 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 MODELLED
VM-48b43298 Optisk länkmarginal över tid: en seedad realisering av en plats väder 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. optical_timeseries (site_series, SiteModel, SeriesSpec, Series); optical_atmosphere_scenario (TimeseriesSpec) tests/optical_atmosphere_timeseries.rs (trösklarna T1-T6 i xval/optical-atmosphere/PREREGISTRATION-timeseries.md, fastställda före första körningen: samma frö ger samma byte och ett annat frö ger andra byte; ingen nyckel utan tabellen; över 8760 h vid 600 s, frön 37 och 38, den realiserade tillgängligheten för var och en av de tre standardplatserna inom 6 punkter från den angivna (sämst 3,3) och den realiserade molnandelen inom 5 punkter från den angivna sannolikheten (sämst 2,1); marginalen är lika med budgeten minus de två fadingarna och up är lika med marginal ej negativ vid varje steg; inget icke-portabelt matematikanrop i modulen; för långa körningar och felaktiga steg vägras) 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. MODELLED
VM-d599af85 Läsare för TRK-2-18 Orbit Data File och modell för rampad 2-vägs-Doppler vid Mars 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). odf (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) tests/mro_odf_reader_label_oracle.rs (en verklig MRO ODF, 2007-304/305, mot sin PDS-etikett: antal poster, gruppernas positioner, stationer, start- och stopptider och datatyper stämmer; filslutstabellens radantal missar med en, en inkonsistens i etiketten, fastlåst som ett fynd); odf::tests (handbyggd rundtur för en post, epok 1950); tests/mro_odf_short_arc_od_oracle.rs (datastyrd, indata fastlåsta med SHA-256, månatlig CI med verkliga data krävs: Doppler förutsagd från MRO-navigationsrekonstruktionen mro_psp5 på de poängsatta passen DSS 63 och DSS 14, 12,5 mHz RMS, tröskel 30 mHz, uppnådd; den registrerade banbestämningen gav ingen bana, fastlåst som ett fynd; körning 2 med en dämpad skattare, registrerad för sig: bana 0,36 km RMS och 0,53 km som mest mot mro_psp5, uppnådd, Doppler efter anpassning 48,6 mHz mot 30 mHz, inte uppnådd, fastlåst som ett fynd; SPK type 1-läsare mot CSPICE, 5e-7 m); mars_od::tests 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. MODELLED
VM-7aee30d8 Attitydreglering med sluten slinga och MRP-återkoppling med reaktionshjul 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). aocs (AocsConfig, required_torque, motor_torques, rates, rk4_step, simulate, mrp_from_quaternion); aocs_kind (AocsScenario) 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; hjulhastighet 2.9e-11 rad/s, tröskel 1e-6; pålagt motormoment 1.2e-13 N m, tröskel 1e-9; t = 0 moment inom 1e-12 N m; mättnad nåddes i båda verktygen); aocs::tests (rörelsemängdsmoment bevarat, minimumnormsavbildning, MRP-gren, konvergens under mättnad); aocs_kind::tests 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. VALIDATED
VM-4f433858 Attitydskattning med multiplikativt EKF från ett gyro och en stjärnkamera 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. aocs_mekf (Mekf, GyroSim, attitude_error, spd_solve6); aocs_kind (estimator) aocs_mekf::tests::mekf_is_consistent_over_monte_carlo_seeds (40 frön, medelvärde av NEES med sex frihetsgrader över andra halvan inom 4,5 till 7,5); aocs_mekf::tests::star_tracker_updates_bound_the_attitude_error; aocs_mekf::tests::attitude_error_is_the_body_frame_small_angle; aocs_kind::tests::estimator_loop_runs_and_reports_consistency 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. MODELLED
VM-7a50fbac Attitydbestämning med Wahba/TRIAD/QUEST 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) wahba wahba::tests (A(enhetskvaternion)=I; Jacobi-egenlö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 återger den optimala DCM:en från scipy.spatial.transform.Rotation.align_vectors på brusfria viktade vektormängder till <1e-9 rad via den systemoberoende attitydfelsvinkeln; plus att q-metoden återvinner en känd rotation med λ_max=Σ vikter och noll Wahba-förlust, att q-metodens lösning minimerar Wahba-förlusten under störning, att QUEST stämmer med den optimala q-metoden till <1e-7 rad, och att den optimala estimatorn slår TRIAD med två vektorer i RMS för attitydfel över 2000 brusiga Monte Carlo-försök) 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) VALIDATED
VM-0430afb5 Detektionsstatistika för GNSS-införvärvning med kvadratisk detektor 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²) acquisition 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 ökar med SNR, minskar med tröskeln, P_d→P_fa när SNR→0; förstärkningen från icke-koherent integration höjer P_d vid fast P_fa; Marcum-Q monoton i a och b och begränsad i [0 1]); tests/acquisition_reference.rs (den generaliserade Marcum Q_M(a,b), P_d, P_fa och inversionen P_fa→tröskel matchade mot scipy.stats.ncx2/chi2 över ett rutnät (M,a,b)/(M,P_fa)/(M,SNR) till ~1e-6) 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 VALIDATED
VM-83b35149 Heltalsosäkerhet för bärvågsfas hos GNSS (LAMBDA) 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 lambda 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, bevarar determinanten och har lägre total korrelation utanför diagonalen; Schnorr–Euchner-ILS matchar uttömmande uppräkning över 300 slumpade kovarianser; hela kedjan dekorrelera→sök→återtransformera är lika med den direkta ILS och Z⁻ᵀZᵀ rundturar heltal; den slutna formen för bootstrappad framgångsgrad matchar en Monte Carlo med 200k försök av sekventiell villkorlig avrundning till <0,01); tests/lambda_rtklib_oracle.rs::ils_solution_matches_rtklib_lambda_on_300_covariances (de fixerade heltalen är lika med RTKLIB v2.4.2-p13 lambda() på 300 slumpade kovarianser, n 2 till 10, 226 av dem inte lösbara genom avrundning; de två bästa kvadrerade normerna stämmer till 1e-9 relativt, uppmätt 5.6e-13) 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) VALIDATED
VM-7db8a5ce B-plansstyrning och gravitationsassistans med patched conic 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 bplane bplane::tests (förbiflygningsskalärerna uppfyller de slutna uttrycken med två överensstämmande |B|-identiteter och |B|>r_p; vridningsvinkeln minskar med periapsisradien och når gränserna δ→0 / δ→π; avböjning bevarar hastigheten v∞ och roterar exakt med δ; assistens-Δv:s storlek är lika med 2·v∞·sin(δ/2) och begränsas av 2·v∞; B-planets axlar är ortonormala och ⊥ Ŝ med |B|²=(B·T̂)²+(B·R̂)²; Tisserand-parametern är invariant över en avböjning som bevarar v∞ och ändrar a,e,i, och är lika med 3−(v∞/v_circ)²); tests/bplane_gmat_oracle.rs::bplane_matches_gmat_over_a_hyperbolic_grid; tests/bplane_heliocentric_oracle.rs::assist_delta_v_matches_gmat_asymptotes_and_c3; tests/bplane_heliocentric_oracle.rs::heliocentric_elements_and_tisserand_match_gmat_and_sbpy; tests/bplane_heliocentric_oracle.rs::tisserand_matches_kasuga_jewitt_2019_table_8_1 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 VALIDATED
VM-e01b501b Strålformning med CRPA-grupp mot störning (anti-jam) 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) crpa crpa::tests (identiteter för komplex aritmetik inklusive z/z=1, |exp(jθ)|=1, zᴴz=|z|²; deterministisk nollstyrning ger exakt enhetsförstärkning för SV och <1e-9 jammer-nollor på en ULA med 4 element med 3 jammers; en grupp med N element avvisar >N−1 jammers och minimumnormsnollställer färre; MVDR förblir distorsionsfri mot SV medan jammernollan fördjupas monotont med jammereffekten till <1e-3 vid 60 dB); tests/crpa_reference.rs (viktvektorerna för MVDR och minimumnormsnollstyrning och de resulterande gruppresponsförstärkningarna matchade mot en oberoende numpy/scipy LAPACK-beräkning till ~1e-9) 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 VALIDATED
VM-9715be87 Klockbrus med potenslag enligt IEEE-1139 + golv för flicker-FM 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 powerlaw powerlaw::tests (varje ren brustyp visar sin signatur för ADEV-lutningen 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 av τ; FM-familjens anpassning rundturar kända h_{-2},h_{-1},h_0 från en syntetisk kurva till <1e-6; och en flickerdominerad kurvas golv återvinns här medan driftbasanpassningen (quantum_trade::qparams_from_adev_curve) är >10% fel vid långt τ — vilket stänger en dokumenterad lucka); tests/powerlaw_oadev_reference.rs (σ_y(τ) matchad mot slutna uttryck i allantools 2024,06 Noise.adev över τ-stegen för alla fem brustyper, plus en bekräftelse av nivån h_a från allantools Kasdin-generator→oadev-estimator) 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 VALIDATED
VM-a09fe6fd Utbyte av kovariansblock i CCSDS OEM 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 oem (covariance_block_kvn, parse_covariance_block) 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 fel antal värden och ett saknat block avvisas båda); tests/ccsds_oem_covariance_reference.rs (det oberoende biblioteket oem 0.4.5 tolkar ett av kshana sänt OEM-segment och rekonstruerar den symmetriska 6×6, som matchar kshanas indatakovarians till f64-avrundning; med en störd negativ kontroll och en kontroll att oem avvisar den märkta varianten CX_X) oem 0.4.5 (MIT, https://pypi.org/project/oem/) — SAMMA oberoende CCSDS-502-tolkare som den validerade raden 'CCSDS OEM interoperability' litar på, en helt separat kodbas (egen KVN-tokenizer, egen tillståndsmaskin för kovariansavsnitt och egen matrisuppbyggnad i numpy). kshana sänder ett fullständigt OEM-segment med sitt omärkta COVARIANCE-block av nakna tal i nedre triangulär form; oem tolkar det och rekonstruerar den symmetriska 6×6, som matchar kshanas indatakovarians element för element till f64-avrundning — en äkta rundtur i utbyte mellan bibliotek (jämförd mot oems rekonstruktion, inte en ny tolkning av kshana), vilket stänger radens tidigare lucka 'no third-party fixture' VALIDATED
VM-2c655ce6 Felväxt vid fritt löpande INS/TRN och tröskelpassager 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 inertial::coast (ErrorDynamics, ErrorSource, source_error_m, CoastModel, Contribution, Combination, TrnFixMode, first_crossing_s, InsTrnCoastScenario); scenariotyp ins-trn-coast 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 grader N, plan och norrriktad: varje punkt inom 5 %, sämst +3,70 % slumpvandring i hastighet vid 1200 s); inertial::coast::tests (the_error_model_follows_the_leading_order_law_on_a_short_coast; a_bias_error_is_schuler_bounded; doubling_the_coast_scales_each_contribution_by_two_to_its_own_power; every_contributions_closed_form_crossing_agrees_with_the_engines_bisection; the_located_crossing_puts_the_model_on_the_threshold_it_searched_for; the_bias_law_matches_the_engines_stochastic_dead_reckoner_stepped_forward; the_velocity_random_walk_law_matches_a_monte_carlo_of_the_engines_dead_reckoner; the_scale_factor_law_matches_a_double_integration_of_the_engines_imu_error_model; a_full_reset_fix_makes_every_inter_fix_excursion_identical; the_largest_fix_interval_holding_a_threshold_puts_the_peak_on_that_threshold; an_error_free_imu_never_reaches_a_threshold_and_says_so_instead_of_reporting_zero; every_published_field_carries_a_unit_and_a_provenance_class; the_scenario_runs_through_the_engines_public_dispatch_and_is_reproducible); tests/ins_coast_navego_montecarlo_oracle.rs::finding_laws_hold_to_600_s_and_overstate_beyond (fyndet från runda 1 om de ledande ordningens lagar för platt jord, behållet som regression) 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) VALIDATED
VM-c58f1105 Arbetscykel för apertur: navigering mot kommunikation 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 aperture_duty 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 fel på ett; överlappande fönster utöver antalet aperturer försätter sessionen med lägre rang i bortfall, med konkurrensintervallet fastlåst; arbitreringspolicyn avgör vilken tjänst som håller aperturen, med alla tre policyernas siffror fastlåsta på en plan; först-till-kvarn avbryter inte en session som redan håller en apertur; en session som förlorar arbitreringen vid sin start får en apertur när en blir ledig; de tre belastningarna redovisar varje tillgänglig aperturssekund över 3 policyer × 4 antal aperturer; att lägga till en apertur ökar aldrig någon sessions bortfall, uppmätt över 200 pseudoslumpmässiga planer × 3 policyer × varje antal aperturer; tillräckligt många aperturer för varje session lämnar inget bortfall alls; rapporteringshorisonten klipper planen och sätter nämnaren för belastningen; en prediktad passlista blir en kontaktplan utan en andra fönstertyp; den medföljande planens belastningstal är motorutdata för en och två aperturer; rapporten anger den policy som gav talen; varje redovisad siffra bär en enhet och en proveniensklass; scenariot är reproducerbart och deklarerar sig självt som MODELLED; scenariot avvisar en plan det inte kan schemalägga); api::tests::aperture_duty_cycle_kind_round_trips_through_the_dispatch 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 MODELLED
VM-054931b7 RF-jamming mot navigering på månytan (J/S per satellit) 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 lunar_jamming (composing jamming, lunar_service, lunar) lunar_jamming::tests (17 bibliotekstester: j_over_s_equals_the_difference_of_two_independent_link_budget_runs; the_report_prints_both_link_budget_legs_so_the_difference_is_checkable_from_it; the_scenario_reports_one_j_over_s_row_per_visible_satellite_and_never_a_median; a_single_median_j_over_s_would_misreport_the_outcome_that_the_table_reports; a_closer_jammer_raises_j_over_s_by_exactly_the_free_space_loss_difference; a_more_distant_satellite_is_the_weaker_signal_so_it_carries_the_higher_j_over_s; j_over_s_is_invariant_to_the_user_antenna_boresight_gain; a_narrowband_jammer_leaves_no_higher_effective_cn0_than_broadband_at_equal_js; a_selenographic_jammer_gets_its_range_from_the_shared_lunar_geometry; a_strong_enough_jammer_takes_every_lunar_link_below_the_tracking_threshold; no_jammer_is_a_clean_sky_lunar_baseline_with_an_undefined_j_over_s; raising_the_elevation_mask_can_only_remove_rows_never_change_the_ones_that_remain; every_emitted_numeric_field_has_a_unit_and_a_provenance_class; the_csv_table_carries_every_row_of_the_json_table; the_run_is_deterministic_and_the_dispatch_surface_is_populated; bad_inputs_are_rejected_rather_than_producing_a_number); api::tests::lunar_jamming_kind_round_trips_through_the_dispatch_with_a_per_satellite_table 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 MODELLED
VM-296d9afc Denial-kontur för månen med ett osäkerhetsband från den uppmätta spridningen i C/N₀ 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 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) lunar_jamming::tests (10 lib tests: the_contour_is_the_exact_inverse_of_the_functions_the_rows_were_scored_with; the_band_is_the_measured_quantiles_pushed_through_the_contour_not_a_sigma; the_asymmetry_the_band_carries_is_the_samples_own_shape_bent_by_the_criterion; the_contour_is_monotone_in_cn0_measured_over_a_dense_sweep_not_assumed; the_band_recovers_the_split_verdict_the_single_scalar_contour_lost; the_distribution_is_the_tables_own_order_statistics_and_keeps_the_rows; a_link_already_below_the_threshold_gets_a_null_contour_point_not_a_number; a_clean_sky_run_has_no_contour_at_all_rather_than_an_empty_one; the_denial_threshold_is_the_same_thirty_decibels_the_rest_of_the_engine_uses; the_units_block_describes_the_contour_and_names_nothing_the_report_omits) 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 MODELLED
VM-ef715cd6 Detektionsstyrka hos övervakare av integritet över flera modaliteter 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 hybrid_integrity hybrid_integrity::tests (the detection-power curve runs from the false-alarm rate at zero fault to 1 − P_md at the minimum detectable bias; the minimum detectable bias fed back through noncentral_chi2_cdf at the threshold the monitor itself applied returns P_md to 1e-9, on every axis and through the public helper; a bias actually injected into the RF estimate shifts the monitor's own statistic by exactly the hand-computed b²/(σ_rf² + σ_opt²); a noise-free bias is caught above √(T/λ*)×MDB and missed below it, with the injected ladder straddling that crossing; detection power is monotone in fault magnitude and identical on all four axes in MDB multiples; a seeded 200,000-sample Monte-Carlo of the monitor statistic reproduces the analytic power within 4σ at four points on the curve; the timing MDB is pinned above the timing alert limit, which is a measured weakness and not a feature; the Wilson-Hilferty quantile is measured to disagree with the monitor's exact threshold by ~4%, recording why it was not used; the ramp figure is exactly MDB/rate and scales inversely with the rate, and a non-positive rate reports null rather than zero); tests/hybrid_fault_power_scipy_oracle.rs (report_detection_power_matches_scipy_chi2_and_ncx2; report_detection_power_matches_scipy_with_comparable_sigmas) 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 MODELLED
VM-b67b5596 Kovariansens återväxt efter överlämning mot varningsgränsen 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 hybrid_integrity hybrid_integrity::tests (the coast starts from exactly the covariance trace the handoff block reports, for both directions, so the replayed diagonal cannot drift from the reported handover; the reported crossing time is recomputed from the report's own handover sigma, process-noise PSD and coverage factor, and the bound is inside the alert limit just before it and outside just after; the coast time scales exactly inversely with the process-noise PSD and shortens when the alert limit tightens; a zero-PSD coast reports null rather than a zero time, because never is not immediately; the emitted profile crosses exactly once and brackets the reported crossing; the variance doubling time and the alert-limit crossing time are pinned apart, being eight orders of magnitude different after the tight optical stage and within one order of magnitude after the loose RF stage; leaving the optical modality buys more coast time than leaving RF, by exactly the covariance difference divided by the horizontal growth rate; and random_walk_time_to_limit separates already-outside, crosses-at-t and never-crosses) 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 MODELLED
VM-73e5efd2 Antennmönster utanför huvudriktningen i exporten av lunar geometri 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 lunar_service, antenna antenna::tests and lunar_service::tests (the half-power crossing located by bisection on the pattern matches the published Airy x = 1,61634 and yields the exact 1,02899·λ/D width, recording that the conventional 1,02 coefficient sits at −2,955 dB not −3,010 dB; the pattern is strictly decreasing over 400 points from boresight to the first null; the implied-efficiency algebra round-trips to 1e-12 and reproduces 0,641 / 0,920; the off-boresight angle matches tan θ = R·sin γ/(r − R·cos γ) at 20 points and both limits to 1e-12; the approximate cone contains the real beam row by row; the headline counts equal the per-row flags they summarise and the correction equals their difference; every row verdict is recomputable from the emitted report alone; every emitted numeric and boolean field has a unit and a provenance class; an impossible aperture emits no block; with no antenna configured the export keeps exactly its six pre-existing keys, 0 leaves changed and 0 removed); tests/validate_lunar_export_offboresight_spice.rs (flown_orbiter_export_matches_spice_geometry_and_scipy_pattern; documented_working_point_matches_anise_propagation_and_scipy_pattern) 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 MODELLED
VM-ddc4cb42 Spårningsslingans låsförlust och spoof-intrång under störning 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 tracking_loop (composing sdr, jamming) tracking_loop::tests (open-loop Costas discriminator jitter against sdr::correlate stepped forward on seeded synthetic IF, 3 pooled noise realisations × 900 epochs, agreeing to 0,63% over 35-45 dB-Hz, with the squaring-loss term required to fit at least 3× better than the no-squaring-loss form wherever it is resolvable; the ~32 dB-Hz atan-discriminator saturation asserted rather than merely stated, so the validity limit is pinned; closed-loop σ against a stepped sdr Costas loop over 4000 epochs to 3,7%; first-order DLL ramp lag against a stepped sdr DLL to 0,17%; bessel_i0 against tabulated I₀ to 7.4e-8; the hysteresis width required to fall in [5·log₁₀ r, 10·log₁₀ r] across 4 ratios × 2 integration times × 3 bandwidths); api::tests::tracking_loop_kind_round_trips_through_the_dispatch; tests/tracking_loop_gnss_sdr_oracle.rs::finding_is_pinned 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 MODELLED
VM-3ee0ae6e Kovarians för lunära VLBI-stationers koordinater utifrån ett spårningsschema 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 lunar_vlbi_fim (composing lunar_vlbi, fim, cio, lunar_frame, frames) lunar_vlbi_fim::tests (24 bibliotekstester: den analytiska jakobianen 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 partialderivata, överens till < 1e-6 av 1/c per kolumn, med de två informationsmatriserna överens till < 1e-6 av den största diagonalen och kovarianserna till < 1e-5 relativt; en ortogonal enhetsgeometri vars kovarians är c·σ_τ per axel i sluten form till 1e-12, vilket också är det enda fall där ekvipartitionslänken är exakt; kovariansspektrumet och varje stations 3D-sigma invarianta under en stel rotation av hela nätet till 1e-9 med C_rot = R·C·Rᵀ fastlåst blockvis OCH ett explicit påstående att sigman per axel faktiskt flyttade sig, så att testet inte kan klara sig på tomma intet; kovariansskalning exakt som σ² och som 1/N; AM-HM-spårgränsen slås aldrig; fördröjningsslutningen τ_ik = τ_ij + τ_jk fastlåst till en ULP på fördröjningarna och på jakobianraderna, med en redundant baslinje som visas tillföra information men aldrig rang; en enda epok redovisad som rangbristande med en nollrubrik; en längre båge uppmätt ge bättre konditionering vid matchat antal observationer; fyrblocket visat oobserverbart i detta schema; den försummade differentierade Shapiro-partialen uppmätt med finit differens vid körning och utsänd i stället för att viftas bort); tests/lunar_vlbi_campaign_spice_oracle.rs::lunar_vlbi_fim_matches_spice_geometry_and_numpy (standardnätet med förankring och det fria nätet: SPICE-byggd jakobian, schemat med 16 observationer identiskt, stationssigman inom 2.2e-3, egenvärden 2.3e-3, konditionstal 2.4e-3, rubrik 1.0e-3, siktlinje 0,018 grader, deklination 0,007 grader, mot trösklar på 1 % och 0,1 grader; fritt nät rang 8/9 med en nollrubrik, nollrum 0,006 grader isär; NumPy på den incheckade jakobianen till 2e-13) 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 VALIDATED
VM-7e8c3aaf Kovarians för koordinater för lunara ytpunkter utifrån ett VLBI-fördröjningsschema, hållen skild från jordstationens 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 lunar_vlbi_fim (composing lunar_vlbi, fim, cio, lunar_frame, frames) lunar_vlbi_fim::tests (7 lib tests: every datum spelling round-trips through parse/as_str and an unknown one is refused; holding every station without the beacon is refused with an error naming estimate_beacon; the lever arm is asserted EQUAL to ρ/B and the beacon equipartition EQUAL to the station equipartition times it, both to 1e-15, with a further assertion that the lever arm exceeds 10 so the two budgets are not confusable on this geometry; the fixture's published baseline is pinned to 10726,748 km and its 49-sample schedule asserted to yield strictly fewer than 49 mutually visible observations; the beacon spectrum on a single baseline is measured to span at least five decades and the resulting ratio asserted above 1 by AM-HM and above 100 in fact; the station-plus-beacon layout is asserted rank-deficient with BOTH computed fields null while the modelled comparand still reports. Plus a guard on the fixture itself: a top-level key spliced after an array-of-tables becomes station data instead, so the splice point is asserted and the parsed scenario checked to carry the key — the failure mode is a run that silently uses a different configuration from the one the test names) 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 MODELLED
VM-b762f53b Kovarians för koordinater för lunara ytpunkter utifrån ett VLBI-fördröjningsschema, kärnväg 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 lunar_vlbi_fim (epoch_geometry_with, schedule, schedule_jacobian); ephem_provider (KernelEphemeris); naif_kernel tests/lunar_vlbi_surface_point_spice_oracle.rs::surface_point_covariance_kernel_path_matches_spice_geometry_and_numpy (16 observationer identiska; rang 3/3; egenvärden inom 5.9e-5; konditionstal 5.9e-5; fyrsigman inom 1.7e-3 mot 1e-2; RMS 2.9e-5; hävarm 1.4e-8; P2-sigman 3.9e-14 mot 1e-9); lunar_vlbi_fim::tests 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) VALIDATED
VM-337e1bd0 Lunär differentiell PNT — budget för restfel i korrektionslänken 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 lunar_dpnt lunar_dpnt::tests (a purely-additive guard whose key-set delta is exactly {correction_link, units} with every pre-existing value bit-identical against literals captured before the change; survey error does NOT decorrelate with baseline while the orbit term does, and survives a zero baseline where the orbit term is exactly zero — the structural check that catches wiring the term into the wrong place; a 1 m station error transfers 1:1 and is proved not DOP-amplified; zero latency reproduces the un-aged residual bit-for-bit and the residual is monotone in latency, with the emitted curve equal to direct runs; the quantization step halves exactly per bit and σ² = step²/12, and the full scale tracks the injected magnitudes; each term switched off in turn recovers the other two in quadrature; equal per-satellite σ propagates to exactly σ·PDOP and that PDOP agrees with orbit::dop; every emitted field carries a unit and a provenance class, checked in both directions) 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 MODELLED
VM-367e840f Täcknings- och noggrannhetskarta för lunära referensstationer 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 lunar_station (over lunar_dpnt, lunar_service) tests/lunar_station_coverage_reference.rs (one_point_one_epoch_one_trial_reduces_to_lunar_differential_pnt: to 1e-12 m with and without receiver noise; zero_baseline_floor_is_zero_in_every_trial: 0 to 1e-9 m; survey_floor_matches_the_survey_transfer_prediction: p95 within the 5 % band stated before the run; coverage_is_non_decreasing_in_the_threshold; corrected_error_grows_with_distance_along_an_azimuth; three_satellites_are_unavailable_with_a_reason_and_no_error; a_satellite_the_station_does_not_see_is_reported; deterministic_for_a_seed_and_moved_by_another; the_work_guard_refuses_an_oversized_grid; the_bundled_scenario_states_a_source_for_every_input; the_result_is_labelled_modelled_with_the_honesty_statement); tests/lunar_station_numpy_oracle.rs (the pre-registered numpy re-computation, recorded with its miss); lunar_service::tests::south_polar_ring_grid_is_the_published_comparison_grid; tests/lunar_differential_pnt_reference.rs and the registry and cross-platform goldens unchanged (additivity); tests/field_units_global.rs (every emitted field described, no exemption) 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 MODELLED
VM-2ecad2c1 Lunära terränghorisontmasker från en angiven profil eller en polär DEM 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 lunar_terrain (over skyline, lunar_service::topocentric_basis); lunar_station; lunar_service (coverage_masked, masked_visible) lunar_terrain::tests (bare_sphere_horizon_is_the_dip: the ray march reproduces -acos(R / (R + a)) to 1e-3 deg at every azimuth; a_cone_on_a_lat_lon_tile_matches_the_analytic_cone: the same cone sampled onto a 0,005 deg latitude/longitude tile agrees with the analytic cone to 0,25 deg; a_lat_lon_tile_is_none_outside_and_wraps_longitude; crater_in_plateau_matches_the_closed_form: a flat-floored crater on the sphere, observer at the centre and 4 km and 7 km off it, against the closed-form rim elevation atan2((R + H) cos s - (R + a), (R + H) sin s) with s from the spherical rim-crossing equation, to 0,01 deg at every azimuth; rasterised_cone_matches_the_analytic_cone: a cone rasterised onto a 200 m polar stereographic grid and read through the grid sampler agrees with the analytic cone to 0,25 deg; projection_round_trips_through_the_rasteriser_layout; bilinear_reproduces_a_plane_exactly; stated_horizon_goes_through_the_skyline_rules; an_empty_skyline_is_exactly_the_flat_test); tests/lunar_station_terrain.rs (without_terrain_the_document_has_no_terrain_keys; a_zero_horizon_under_a_positive_mask_is_the_flat_run, for both kinds; a_horizon_only_removes_satellites_and_a_wall_removes_everything: user_lt4 keeps its flat count and the epochs a horizon costs are terrain_masked (availability itself can rise, because a horizon can hide a satellite the station does not see), and an 89 deg horizon at the station leaves nothing available; bad_terrain_sections_are_refused; the_vendored_crop_loads_and_is_oriented_as_the_source: Shackleton and Haworth crater floors low, the Malapert massif high, the mirror image not; the_station_site_horizon_from_the_crop; service_volume_dem_points_outside_the_crop_keep_the_flat_mask; a_lat_lon_dem_tile_gives_the_station_the_crop_horizon: a tile resampled from the vendored crop gives the station the crop horizon to 0,22 deg (bound 0,5 deg, fixed before the run), with the tile echo and units, and dem_path with dem_tile_path refused; the_export_site_is_masked_by_the_terrain: every export row clears the terrain exactly when it is visible and at or above the site horizon at its azimuth, the geometry does not move, the CSV gains the column only with terrain; the_horizon_matches_the_preregistered_numpy_ray_cast); tests/prediction_frozen.rs and the registry and cross-platform goldens unchanged (additivity) 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 MODELLED
VM-aa6de9e6 Flervägs- och mottagarhårdvaruermer för lunära referensstationer 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 lunar_receiver; lunar_station 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 (receiver_absent_or_silent_is_the_plain_run; zero_baseline_multipath_is_the_difference_of_two_receivers: sample sigma sqrt(2) a within 6 %; station_multipath_is_gauss_markov: lag-1 correlation exp(-dt / tau) within 0,01, unit variance within 2 %; inter_channel_biases_are_constant_over_a_trial); tests/prediction_frozen.rs and the goldens unchanged (additivity) 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 MODELLED
VM-2c796f73 Tillväxt av efemidefel hos lunära referensstationer över korrektionens latens 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) lunar_station (orbit_growth_range_sigma_m) tests/lunar_station_ext.rs (growth_absent_or_zero_is_the_frozen_error_run; the_growth_term_has_the_closed_form_sigma: the growth-on minus growth-off link error has sample sigma rate tau / sqrt(3) within 6 % over 1600 draws; linear_growth_is_the_first_order_propagated_error: a velocity error dv propagated with the in-tree two-body integrator from the scenario orbit moves the position by dv tau to within 1 % at 60 s and 600 s); tests/lunar_station_published_oracle.rs::k5_growth_addendum_run (ignored, the recorded addendum) 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 MODELLED
VM-bc66e5ef Lösningslägen för en lunar referensstation: höjdbegränsning, tre satelliter, fönster med statisk användare 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 lunar_solution; lunar_station (solution_figures) lunar_solution::tests (one_epoch_without_height_is_the_snapshot_solve: equals lunar_dpnt::position_error_vector_from_range_errors to 1e-8 m, a loose height row changes nothing, a tight one pins the height error; three_satellites_need_the_height_row; a_window_shares_the_position; bad_sections_are_refused); tests/lunar_station_ext.rs (the_default_solution_mode_is_the_snapshot_solve: every figure to 1e-6 relative; height_aiding_and_a_window_do_what_they_say); tests/lunar_station_published_oracle.rs::solution_style_addendum_run (ignored, the recorded addendum) 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 MODELLED
VM-315f29f2 Noggrannhet och täckning hos en lunar referensstation jämfört med publicerade påståenden 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) lunar_station (over lunar_dpnt, lunar_service) 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, about 7 s in release: re-runs the six registered cases and asserts the recorded figures) 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 MODELLED
VM-dc6ee511 Kärna för lunar ARAIM-skyddsnivå 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 lunar_service (lunar_protection_level, lunar_protection_level_with_sigma), lunar (lunar_araim_with_sigma), raim (araim_raim) tests/lunar_protection_level_reference.rs (7 fall för servicevolym — sydpolar, mellanlatitud, ekvatoriell, förhöjt högland — 6 till 19 satelliter, σ_URE 10/30/60 m, P_HMI 1e-3 ned till 1e-7, skyddsnivåer som spänner över 1.7e2 till 6.9e3 m: HPL/VPL mot den sammansatta referensen RTKLIB + SciPy, sämst |Δ| 1.061e-8 m och 1.044e-8 m mot en tolerans på 1e-6 m; DOP mot RTKLIB:s egen (GᵀG)⁻¹ till 1.790e-14 relativt; K_fa mot scipy.stats.norm.isf till 2.716e-11 relativt; tre negativa kontroller — en satellitförskjutning på 5 km, en relativ ändring av σ_URE på 1e-6 och en 0,1 % snävare P_HMI — var och en uppmätt flytta skyddsnivån med minst 171× toleransen; och ett skydd mot föråldrad fixtur som fastlåser den incheckade geometrin bit för bit mot vad motorns egen konstellations- och synlighetskod ger, så att en grön kontroll inte kan överleva att konstellationen ändras under den) 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 VALIDATED
VM-b4123360 ARAIM MHSS-skyddsnivåer mot publicerade referensvektorer 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 araim_reference (araim_reference_protection_levels, published_vectors), raim (araim_protection_level, araim_integrity_risk, normal_quantile) 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 det publicerade VPL med 2,6457 m, ett ISM-fel på 10 % med 0,2798 m, K_fa vid 57 moder i stället för 12 med 0,4015 m, ett fel i integritetsvariansen på +2 %/+5 % med 0.0750/0.1971 m — och ett fel på +1 % flyttar det bara 0,0339 m, redovisat som kontrollens upplösningsgräns i stället för att döljas; de två dokumentens svar missar var och ett det andras med mer än toleransen, så vektorerna är inte utbytbara; den incheckade fixturen och de kompilerade konstanterna är två oberoende avskrifter som intygas stämma, så att en publicerad siffra inte kan ändras på ena sidan för att få en kontroll att passera; och C_int − C_acc = σ²_URA − σ²_URE = 0,3125 m² gäller för alla 40 avskrivna varianser, en aritmetisk identitet som ett skrivfel i avskriften skulle bryta) 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 VALIDATED
VM-23634551 ARAIM med samtidiga felhypoteser för flera satelliter 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 araim_reference (add_v42_subset_plan, add_v42_protection_levels_to_order); raim (araim_subset_raim, SubsetRule) 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, the unmonitored risk within P_THRES, a subset removing three or more satellites monitored, and more than ten monitored priors re-derived independently as P_no fault q^k to 1e-12; a_two_satellite_fault_is_found_as_a_pair: no alarm fault-free, and a 30 m bias on two satellites detected with the pair as the subset of largest normalised separation); tests/araim_reference_vectors.rs and tests/integrity_araim_stanford_oracle.rs unchanged (the order-2 path is the MAAST-checked one) 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 MODELLED
VM-f6b7e282 RAIM vid sidan av kvalitetsmåtten för klock-holdover 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 clock_integrity (run, sky_at, IntegrityCfg); scenario (Scenario::integrity); report (RunResult::integrity_fom); api (clock dispatch) tests/clock_integrity.rs (the_block_is_separate_and_absent_by_default: holdover figures unchanged, 111 denied epochs unavailable with no protection level, refused with runs > 1; protection_levels_are_the_snapshot_raims_on_the_same_sky: every sampled epoch's HPL and VPL equal a zero-residual snapshot_raim on the same preset sky exactly, and the fault-free run raises no alarm; a_stated_bias_is_detected_while_it_lasts: a 60 m bias alarms on exactly the 10 epochs it covers; every_integrity_field_has_a_unit); clock_integrity::tests; the clock goldens unchanged 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 MODELLED
VM-313f2545 Rumslig, brusig observerbarhet av bågsträcka för flera familjer av cislunara banor 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 cislunar_observability, observability_gramian, intersat_range, cislunar_srif cislunar_observability::tests and observability_gramian::tests (the default document pinned bit-for-bit by FNV-1a of its JSON, summary and SVG, with explicit-default values asserted to be a no-op and the eight extension keys asserted ABSENT so the capture cannot be regenerated into a self-comparison; the additive units block excluded from the freeze by being stripped and re-hashed against the constant pinned before it existed, which proves rather than assumes that nothing released moved; rank invariance under a homoscedastic sigma asserted at σ = 0, 0,1, 1, 10, 100 m; σ_pos asserted to scale exactly linearly with σ to 1e-6 relative; the DRO null space asserted to be exactly the z and ż coordinate axes with the two causes separated — a range row between coplanar spacecraft has û_z = 0, and the CR3BP out-of-plane block decouples exactly at z = 0; spatial Jacobians against central finite differences and against the crate's independent 3-D range-rate observable; out-of-plane families refused in planar mode) 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 MODELLED
VM-9ab85050 Fel i prediktion av jordorientering i operativ stil, uppmätt förutsagt mot slutligt 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 frame_eop, realtime_frame_eop 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 ordinary-least-squares slope and intercept to 1e-12 on real rows; TWO look-ahead detectors that wreck the rapid UT1 and pole columns of every row after the issue epoch — leaving the Bulletin B finals intact — and demand bit-identical output, mutation-verified to turn 10 tests red when the fit barrier is loosened by exactly one day; an independently rebuilt epoch list; a target's Bulletin B block blanked and the epoch shown to leave the table; term admission checked at 6, 15, 150 and 365-day windows; monotone row counts; and a frozen pre-change capture of the default report asserted field for field with no tolerance, which additionally asserts the capture does not contain the new keys so it cannot be silently regenerated into a self-comparison); tests/operational_eop_predictor_bulletin_a_oracle.rs::predictor_mae_against_bulletin_a_and_the_pcc_range_finding; tests/operational_eop_ls_ar_bulletin_a_oracle.rs::ls_ar_predictor_against_bulletin_a_finding; tests/eop_prediction_beyond_table.rs (the opt-in EopSeries::with_ls_ar_prediction extension beyond the last row: in-table answers bit-identical, forecast rows equal to ls_ar_predict, frame arguments past the table follow the forecast instead of clamping; internal consistency) 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) MODELLED
VM-55f1a043 Lunart datum för referenssystem från en observationskampanj 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 lunar_frame_campaign (composing lunar_vlbi, lunar_vlbi_fim, fim, lunar, lunar_frame_realise, frames, cio, lunar_frame) lunar_frame_campaign::tests (21 lib tests: the Helmert design against a central finite difference of lunar_frame_realise::apply_helmert — the module the datum is FOR, which computes no derivative and so pins the [p]ₓ sign convention — all 84 design entries agreeing to < 1e-6; a pure network translation read back as a pure translation with < 1e-6 leakage into the other six parameters; the datum sigma exactly linear in the delay sigma to 1e-8 over a 3× change on all seven parameters; a 16 h arc measured worse and a 48 h arc measured better than 24 h, with the emitted libration sweep ordered the same way; the worst translation axis asserted to BE the dominant axis of the separately measured body-fixed direction to Earth and worse than the others by > 5×, a physics oracle nothing in the solver was told about; three collinear beacons producing a defect with every datum sigma NULL and the null directions emitted in the seven-parameter basis; offblock_fraction and inter-beacon correlation exactly 0,0 with the stations fixed and both > 0 with them estimated; the comparison block's injected-transform figures shown equal to an independent run of that scenario to 1e-14 relative rather than transcribed; a guard that no injected/recovered datum appears anywhere in the document; the lunar-frame-realisation emission pinned byte-for-byte by FNV-1a-64 over json‖summary‖svg for three input shapes, fingerprinted before the work began); tests/lunar_vlbi_campaign_spice_oracle.rs::lunar_frame_campaign_finding_stations_estimated_p2_precision (gated; the strict lunar_frame_campaign_matches_spice_geometry_and_numpy stays ignored); tests/lunar_frame_campaign_mpmath_oracle.rs::lunar_frame_campaign_datum_matches_mpmath_extended_precision (finding; founder decision 2026-10-02, option A: this row stays MODELLED and does not borrow the separate row's status; against a 50-digit mpmath oracle, pre-registered 804662d5, the engine's stations-estimated datum sigmas are within their a-priori backward-error bound, 9.7e-6 off on 2024-01-01, and the 1e-9 bar was below what any double-precision route reaches, the best, a NumPy QR projection, being 5.5e-9 off; the evidence backs the separate row 'Lunar frame datum covariance with the stations estimated, against 50-digit extended precision'); tests/lunar_frame_campaign_pinv_fallback.rs::finding_step0_fresh_beacon_information_falls_back (pinned); tests/lunar_frame_campaign_cond_bar_oracle.rs::finding_p2_condition_scaled_bar_not_met_on_the_estimated_scenarios (pinned) 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 MODELLED
VM-ca139c50 Bekräftelse från oberoende skattare av tröskeln för bågsträcka i cislunar rymd 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 cislunar_arc_recovery, batch_ls cislunar_arc_recovery::tests and tests/cislunar_arc_recovery_reference.rs (both boundaries and their ratios pinned on the published grid; the measured error curve compared to the formal covariance row by row with a per-row factor-of-two bound and a geometric-mean bound; a NEGATIVE CONTROL — the planar-DRO six-state — asserting the criterion CAN fail and that the unregularised estimator diverges past 1e6 km rather than returning a plausible small error; parameterisation invariance asserted on every prefix to 1e-3 relative; a source-text guard that strips comments, string literals and the test module and then fails on any mention of the Jacobian, STM, SVD-rank or SRIF machinery, mutation-verified by injecting a forbidden call; a test-only check that the finite differences equal the analytic rows, so the linearisation is known good while the analytic route stays absent from the estimator; determinism asserted byte-for-byte; the released cislunar-observability document pinned by key set, canonical fingerprint and summary line) 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 MODELLED
VM-69906ae2 Lunar servicevolym från verklig, hämtad konstellationsgeometri 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 lunar_ephemeris, lunar_service lunar_ephemeris::tests (format and frame parsing; Lagrange interpolation exact at nodes and on a linear track off-node; ICRF elements take the IAU 2015 reduction and are byte-equal to an explicit icrf_to_iau_moon application; true↔mean anomaly round-trips against a forward Kepler solve; malformed files refused with the reason named). lunar_service::tests (with ephemeris_path unset the report's key set and SHA-256 are pinned; the Keplerian row equals the standalone Keplerian run field for field; the identity σ_required · HPL_max / σ_URE = AL, then an END-TO-END re-run at the computed requirement reaching 100 % protection-level availability and a re-run 1 % above it not reaching it; every emitted numeric field of both new blocks walked from the produced JSON for a unit and a provenance class; the committed fixtures matched to their source tables satellite for satellite; a horizon past the end of a table refused); tests/lunar_service_requirement_orekit_oracle.rs::lncss_b_dense_finding_is_unchanged; tests/lunar_service_volume_orekit_oracle.rs::service_volume_matches_orekit_on_identical_ephemeris_and_grid 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) MODELLED
VM-30a97898 Enhet och proveniens deklarerade för varje rapporterad storhet 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 field_schema tests/field_units_global.rs (all 61 registered kinds run, one document shape each: every numeric leaf must resolve to an entry in that document's own units block; a malformed entry counts as missing for EVERY kind, exempt or not, so a placeholder buys no coverage; the exemption list may not exceed its pinned ceiling, a listed kind that turns out to be fully covered FAILS the gate so the list cannot be padded, and a registered kind absent from the runner table fails so a new pack cannot slip in unexamined — which it did, catching both kinds added after this work began; a one-way ratchet on the described-but-undefined backlog; and a staleness check on the committed schema document); field_schema::tests 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 MODELLED
VM-93ef37db Lunart datum för referenssystem från en VERKLIG observationskampanj 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 lunar_llr, realdata::llr_crd (composing fim, cio, frames, ephem, lunar_frame, lunar_frame_campaign) tests/lunar_llr_real_data.rs (11 tester: alla 15 incheckade CRD-filer byteidentiska 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 den verkliga perigeum-/apogeumhöljet; vikterna visade VARA bin_rms/√n_raw; siktlinjekoordinaten bäst bestämd för varje grupp med librationssvepet som köper den uppmätt separat; residualen och dess oberoende bekräftelse mot JPL Horizons; känsligheten för geometrilutning på 0.1 grad; jämförelsen med den simulerade kampanjen visad lika med en oberoende körning av det scenariot; en bit-för-bit-fastlåsning R1 på de tre befintliga månsystempaketen); lunar_llr::tests (12: avståndspartialen mot en central finit differens av den modellerade gångtiden till < 1e-6 relativt; ljustiden en konvergerad rundtur till månen; datumsigmat exakt linjärt i viktskalan till 1e-9; blockdiagonalitet exakt; en saknad datakatalog vägras i stället för att ersättas; en redigerad katalograd fångad av sin egen radiekolumn); realdata::llr_crd::tests (7: fältsemantik, midnattsövergång, vägran av en icke-UTC-tidsskala och av en ostödd formatversion, och inget ersatt sigma för en tom bin); tests/validate_llr_datum_spice_oracle.rs (llr_datum_finding_tz_sigma_one_percent_gap, fastlåst; reported_residual_is_the_engine_to_spice_light_time_gap); tests/validate_llr_datum_analytic_fresh_2025.rs::llr_datum_analytic_moon_matches_spice_and_numpy_on_fresh_2025_normal_points (151 osedda normalpunkter från 2025-Q2; sigman och normer sämst 1.11e-3 av 1e-2, konditionstal 8.95e-4 av 2e-2, kvoter 1.79e-3 av 2e-2, bokföring, rang och koppling exakta) 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 VALIDATED
VM-945ce00a Geodesi för lunar referensstation: tillagd retroreflektor och VLBI-beacon mot datumet med fem grupper 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 lunar_llr (over lunar_frame_campaign::beacon_information, schedule_for and solve_datum_information, lunar_vlbi_fim) tests/lunar_station_geodesy.rs (empty_or_absent_extra_lists_are_bit_identical: empty lists and the baseline example give the default report and summary byte for byte; an_added_site_never_increases_any_variance: the smallest eigenvalue of H_after - H_before is non-negative to 1e-9 of the largest, every after/before sigma ratio is at most one, and both added sites are observed; the_rest_of_the_report_is_the_five_array_result; every_station_geodesy_field_has_a_unit; a_beacon_list_inside_the_campaign_block_is_refused); scenarios/lunar-station-geodesy-baseline.toml and scenarios/lunar-station-geodesy-with-station.toml (same archived schedule and the same VLBI campaign block) 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 MODELLED
VM-97d8ec7c Lunart datum för referenssystem från en VERKLIG observationskampanj, kärn-måncentrum 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) lunar_llr (llr_geometry_with, LunarLlrDatumScenario); ephem_provider (KernelEphemeris); naif_kernel 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, kvoter 7.6e-5 av 2e-2, bokföring och rang exakta); tests/validate_llr_datum_kernel_moon.rs (diagnostiken på sedda data från 2015, 0,049 % på tz; inte evidens för den här raden); lunar_llr::tests 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) VALIDATED
VM-e3875438 Inbyggd analytisk lunar efemerid — dess ANGIVNA NOGGRANNHETSGRÄNS kontrollerad mot verkliga data 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 ephem (moon_position), lunar_llr, realdata::llr_crd tests/lunar_llr_real_data.rs::the_analytic_moon_series_disagrees_with_jpl_by_the_same_amount (12 veckovisa geocentriska tillstånd, sämsta epokens vinkel intygad < 0,3° och RMS < 5e5 m mot modulens egen dokumenterade uppgift, plus att LLR-residualen intygas stämma med den radiella avvikelsen till < 5×); ::the_measured_residual_is_the_ephemeris_error (337 verkliga normalpunkter) 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 VALIDATED
VM-f553cc1c Spärrens integritet — ett grönt som betyder vad det säger 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. scripts/gate.sh, scripts/check-gate-receipt.sh, scripts/check-repeatability.sh, scripts/install-gate-hook.sh tests/source_guards.rs (9 tests: both guards over the whole source tree, plus mutation fixtures that grade each guard in both directions — the F22 pattern reported on both colliding paths, the shipped atomic-sequence fix accepted, a half-fix reported on exactly the path that lost its unique component, a tempfile handle and an inherited unique directory accepted, a wall clock rejected; an undeclared pin reported, a declared one accepted, a scope without an exclusion rejected, a declaration in the enclosing test's doc comment accepted and shown not to leak to the next test; and each pin spelling — hex, decimal, digest string, byte length, named byte count, golden file — seen while algorithm constants, RNG seeds and small cardinality checks are not) 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. MODELLED
VM-22bf3eed Sammansatt PL för tidssynkronisering — skalär MHSS-specialisering (H=1_N) 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) src/integrity/tpl_scalar.rs integrity::tpl_scalar::tests (rang 1, sammanslagning/uteslutning, biasdominans, korskontroll av IR); tests/tpl_scalar_numpy_oracle.rs::scalar_mhss_pl_matches_numpy (300 incheckade fall: numpy lstsq-delmängdsestimatorer, allmän separationskovarians, scipy brentq PL; PL inom 1e-9 relativt, sämst 1.2e-10; drivande delmängd exakt) 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 VALIDATED
VM-802ee366 Sammansatt PL för tidssynkronisering — P0-sådd holdover-genomfart PL(τ)=max(TPL_handover,HPL(τ)); nedåt halvkontinuerlig PL(0+)≥PL(0−); K(IR/2) löpande maximum; fasexponenter τ/τ³/τ⁵ src/integrity/composed_pl.rs integrity::composed_pl::tests (monotone, P0-floor, K(IR/2), exponents, lower-semicontinuity) Egenskapstester (monotonicitet, inget fall vid handover) + exponentlint mot holdover::coast_phase_variance MODELLED
VM-ff51b519 Sammansatt PL för tidssynkronisering — täckning av holdover-hölje, flerårigt regime (tau>=90d) 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 src/integrity/composed_pl.rs tests/cti_holdover_coverage_reference.rs BIPM Circular-T [UTC-UTC(USNO)] 5-dagarsserie MJD 56074-60429 (872 punkter, webtai API); disjunkt anpassning/test, flerårig täckning utan genomstick VALIDATED
VM-47843371 Sammansatt PL för tidssynkronisering — LIL a.s.-hölje (omöjlighet + konsistens) Ingen ändlig värsta-fall-holdover (Brownsk sup divergerar); IR-fördelad HPL förenlig med Hartman-Wintner-höljet när IR→0 src/integrity/lil_envelope.rs integrity::lil_envelope::tests (divergence, threshold, IR-tightening dominance) Sluten form, identitet för a.s.-hölje √(2Dt·lnln t) + kontroll av HPL-dominans; Baweja arXiv:2606,24210 sömmen för omöjlighet MODELLED
VM-cce187eb Överbegränsning av integritet för spårbarhetsbias hos heterogena UTC(k) Ö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 src/integrity/hetero_budget.rs 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); tests/hetero_budget_utc_k_realised_overbound_oracle.rs::realised_offset_overbound_finding; tests/utck_bound_prospective_oracle.rs (D9 round 3, prospective, not yet run: Circular T 465 appeared on 2026-10-12, and the pre-registered 1000-value rule needs issues to about 468) 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) MODELLED
VM-15e05692 Korrelerad korskovarians för spårbarhetsbias (fördelning som är osäker vid gemensamt läge) 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) src/integrity/hetero_budget.rs integrity::hetero_budget::tests (correlated_fused_bias_dominates_independent_when_correlated, rho_one_single_realizer_recovers_linear_sum) + tests/hetero_budget_reference.rs Oberoende numpy-reproduktion av korskovariansen och olikheten mellan korrelerad och oberoende sammanvägd bias (InternalConsistency). Representativ källmängd; Modelled scenario. MODELLED
VM-56cdbf21 GLS-blekning av gemensamt läge (Aitken) + Mahalanobis-identitet 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 src/integrity/gls_commonmode.rs integrity::gls_commonmode::tests + tests/gls_reference.rs + tests/gls_whitening_numpy_oracle.rs::whitening_and_mahalanobis_match_numpy_lapack (201 incheckade SPD-fall: faktor, vitad residual, vitningsoperator och Mahalanobis-kvadrat mot numpy LAPACK inom 1e-12 relativt, sämst 7.9e-16) 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. VALIDATED
VM-caf931b4 Konsistensstatistik för gemensamt läge (fel i delad referens som separationen är blind för) 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 src/integrity/gls_commonmode.rs integrity::gls_commonmode::tests (common_mode_shift_inflates_statistic_but_not_contrasts, post_fit_common_mode_statistic_is_zero) + tests/gls_reference.rs; tests/gls_common_mode_statistic_numpy_oracle.rs::common_mode_statistic_matches_numpy_lapack 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 MODELLED
VM-cdc08a73 Gräns för ej detekterbart gemensamt läge för residual utanför Omega 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 src/integrity/gls_commonmode.rs integrity::gls_commonmode::tests (separation_alone_is_blind_to_common_mode, degenerate_direction_or_non_pd_gives_no_finite_ceiling, every_nonzero_direction_under_pd_omega_has_a_finite_ceiling); tests/gls_outside_omega_bound_numpy_oracle.rs::undetectable_common_mode_ceiling_matches_numpy_lapack (256 incheckade fall: alpha_ss, alpha_cm och minimum inom 1e-12 relativt på 210 välkonditionerade fall och gränsfall, sämst 3.3e-15; 40 illakonditionerade upp till konditionstal 1.3e8 inom en angiven konditionsskalad gräns, sämst 1.1e-9; sex exakta oändligheter) 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 VALIDATED
VM-af0a23f0 Identifierbarhet av lunart datum - linjäralgebra för uppdelningen 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 lunar_identifiability 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 / |korr| mot SciPy/NumPy till <1e-9 rel) 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. VALIDATED
VM-bed29386 Klassificering av nollrum för lunart datum (rangadditivitet för LLR + lyft av defekt genom libration) 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 lunar_identifiability, lunar_datum tests/lunar_datum_identifiability_reference.rs (single_internal_range_row_has_six_dim_datum_null_space; extending_the_librating_arc_lifts_the_origin_scale_degeneracy); tests/lunar_datum_sosnica_oracle.rs::origin_scale_correlation_and_crlb_disagree_with_the_published_geometry 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 MODELLED
VM-4c9a19f6 Information om lunart datum från flera tekniker (LLR + lunar VLBI + avstånd till omloppsfarkost) 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 lunar_datum, lunar_identifiability 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) 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). MODELLED
VM-dff22468 Leverantör av orientering för lunar huvudaxel enligt DE440 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 lunar_orientation lunar_orientation::tests (de440_moon_pa_reproduces_fixture_rows, de440_moon_pa_shows_real_libration); tests/lunar_pa_frame_realisation_guard.rs::the_orientation_series_interpolation_error_is_tens_of_metres_not_sub_metre; tests/lunar_pa_orientation_spice_oracle.rs::interpolated_rotation_matches_direct_kernel_evaluation_off_node (2 000 slumpade epoker utanför noder mot SPICE pxform på den binära PCK: rotationsvinkel inom 1.7e-5 rad, sämst 1.7e-6 rad, 3 m vid medelradien) 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 VALIDATED
VM-338ed616 Underlag för geometri av lunart LLR-datum (reflektorer i huvudaxelsystem, markstationer, analytiska avståndspartialer) 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 lunar_llr_geometry lunar_llr_geometry::tests (reflector_and_station_catalogs_are_well_formed, analytic_partials_match_finite_difference, llr_one_way_range_is_earth_moon_scale, zero_datum_reproduces_nominal_range, llr_only_fisher_shows_strong_com_x_scale_degeneracy); tests/lunar_pa_frame_realisation_guard.rs; tests/llr_datum_degeneracy_reference.rs; tests/lunar_llr_geometry_range_oracle.rs::reflector_ranges_against_ilrs_normal_points 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 MODELLED
VM-055df2b8 Modell för uppmätt avstånd i LLR (reflektorkatalog, stationer i ITRF2020, placering enligt DE440 huvudaxel, barycentrisk ljustid enligt IERS 2010) 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 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) 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); tests/lunar_llr_geometry_range_oracle.rs::round2_finding_is_a_common_offset_of_about_eleven_metres (den ersatta geocentriska ljustidsmodellen, 10,94 m, fastlåst) 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 VALIDATED
VM-105d48cb Kopplad gauge för lunart referenssystem och tidsskala: det gemensamma nollrummet för rumsligt datum, klockoffset och klockdrift 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. lunar_gauge 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 för {scale,offset} för näten well_posed med 120 rader och single_epoch med 30 rader, till rel<1e-3 och abs<1e-3); lunar_gauge::tests (coupled_marginal_fisher_is_symmetric_and_psd, oneway_spatial_equals_orbiter_range_row_datum7, twoway_spatial_equals_oneway_spatial_at_same_geometry) 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. VALIDATED
VM-b3782756 Degeneration mellan avstånd och klockoffset i lunar envägsavståndsmätning, och lagen om geometrisk mångfald för utformning 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. lunar_gauge lunar_gauge::tests (coupled_marginal_well_posed_network_is_psd, coupled_marginal_twoway_equals_more_oneway_in_diverse_network, coupled_marginal_twoway_lift_three_orders, oneway_range_row_has_correct_temporal_entries, twoway_range_row_has_zero_at_offset_and_rate, time_tie_row_equals_pure_offset_vector, rate_tie_row_has_correct_structure) 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. MODELLED
VM-a3971a9a Koppling mellan relativistisk klockdrift och referenssystem för den lunara tidsskalan 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 lunar_gauge, lunar_time 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; entry2_d_alpha_d_radial_matches_the_degree_350_equatorial_gravity_for_both_fields: den radiella posten inom 8.3e-5 av ekvatoriell gravitation av grad 350 i pyshtools; entry3_d_alpha_d_velocity_matches_the_de441_lunar_speed: hastighetsposten inom 2.5e-3 av månhastigheten i DE441 vid 2000 epoker); lunar_gauge::tests; regression tests/lunar_rate_frame_coupling_oracle.rs 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 VALIDATED
VM-3da07d8a Basinvariant klassificering av det kopplade nollrummet för referenssystem och tidsskala 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. lunar_gauge lunar_gauge::tests (classify_is_invariant_under_null_basis_rotation - en axelanpassad nollbas och dess rotation på 0,6 rad ger identiska defect, dim_spatial, dim_temporal, coupled_dim och p_st_norm; classify_direct_sum_null och classify_coupled_null - konstruerade fall med direkt summa och genuint kopplade fall bekräftar dimensionsuppdelningen; classify_basis_invariant; index_consts_are_correct); tests/lunar_gauge_classification_scipy_oracle.rs::classify_null_space_matches_scipy_subspace_intersection (72 konstruerade 9x9 Fisher-matriser över 18 nollunderrum, var och en i fyra slumpade ortonormala ombaseringar: defect, dim_spatial, dim_temporal och coupled_dim exakta; p_st_norm inom 6.0e-15, tröskel 1e-9) 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 VALIDATED
VM-90ae0e7c Representativ meny av multitekniska mätningar och den additiva Fisher-kombinationsregeln 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. lunar_techniques lunar_techniques::tests (combine_is_additive_order_independent_and_empty_is_zero - empty selection gives the zero matrix, a single selection is the identity, a pair equals an independently written element-wise sum, and the result is invariant under selection order; adding_a_block_never_reduces_the_degeneracy_metric - monotonicity under added information; radial_diversity_beats_transverse_for_breaking_the_degeneracy - the far-side orbiter block raises the degeneracy metric more than the transverse VLBI block) 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. MODELLED
VM-7faeee00 Konsistens mellan leverantörer för lunart referenssystem/dynamik (verklig mellan-efemerid) 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å) lunar_interop_budget 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 tests/fixtures/inter_ephemeris/reference.json, rel<1e-3 abs<1e-3 m; fixturer + referens byte-konsistenta via scripts/gen_interop_ref.py på offentliga DE440/INPOP21a/EPM2021-kärnor genom IMCCE calceph) 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. VALIDATED
VM-660ef3e9 Tolerans för konsistens mellan leverantörer för en användare med blandade leverantörer 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 lunar_interop_budget lunar_interop_budget::tests (monotonicity in budget; RSS budget reduction under a per-provider CRLB; worked rotation tolerance at the lunar lever arm; binding-term = rotation) Triangelgräns för värsta fall för verkan av Helmert-punktjakobianen (sluten form) MODELLED
VM-24491422 Felbudget för lunar interoperabilitet mellan flera leverantörer och designlag för referenssystem mot efemerid 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) lunar_interop_budget lunar_interop_budget::tests (CommonEphemeris zeroes the budget; CommonFrameTie < PerProvider; irreducible_fraction > 0,5 on the real splits; convention ordering) RMS-aggregering av de Validated uppdelningarna per par under varje konvention (sluten form) MODELLED
VM-3d1c5457 Linjäralgebrakedja för observerbarhet av fel i autonomt fritt nätverk (paritetsprojektor, detekterbarhet, MDB-icke-centralitet, Byzantine block-spark) 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) lunar_faultobs tests/lunar_faultobs_reference.rs (faultobs_matches_numpy_scipy_on_real_de440_rows: P⊥ på 84×84 elementvis, spår(P⊥) = parity_dim = 52 och rang(G) = 32, detekterbarhetsnormer + flaggor, den kvadratiska formen för MDB cᵀWP⊥c + MDB-värdet, och antal detekteringar/identifieringar vid blocksprickor för varje kamratkoalition, återgivna mot en oberoende numpy/scipy-referens till rel<1e-3 abs<1e-3 med heltalsantal exakta; indata byte-konsistent via examples/gen_faultobs_rows.rs + scripts/gen_faultobs_ref.py) 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 VALIDATED
VM-bff0cee3 Bysantinsk gräns för detektering och identifiering via blockvis spark i det autonoma månnätverket med en nod per enhet (T3) 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 lunar_faultobs lunar_faultobs::tests — byzantine_c3_rank_deficient_but_nonzero_is_undetectable (nollskilt men rangdefekt block ⇒ block_spark 1, f_detect 0; oberoende kolumner ⇒ block_spark 2, f_detect 1), byzantine_real_network_uniform_bias_is_clock_offset (en kamrat som äger alla mätningar för en nod = ett klockoffsetfel ∈ range(G), oupptäckbart, med ett tydligt spektralt gap i Gram-matrisen), byzantine_redundant_net_identifies_at_least_one (sex oberoende kamrater med en mätning vardera ⇒ block_spark 7, f_identify 3), byzantine_analytic_spark_identity_projector + byzantine_detect_identify_relations (handfallen P⊥ = I fastlåser f_detect = block_spark − 1, f_identify = ⌊(block_spark − 1)/2⌋) 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 MODELLED
VM-ea17589a Golv för temporal gauge vid autonomt holdover i den självrefererande månkonstellationen (T4) 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 lunar_faultobs lunar_faultobs::tests — holdover_floor_self_ref_and_anchored (självrefererande nät: den gemensamma takten ligger i N(GᵀWG), temporal_gauge_dim 2; efter en extern rad som binder takten: takten utdriven ur gaugen, temporal_gauge_dim 1 med den gemensamma offseten kvar) 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 MODELLED
VM-7cf3772f Gemensam/differentiell uppdelning per leverantör, enhetlig förklaring via en rangbrist och lutning på skyddsgapet (T5 / §0 / g7) 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 lunar_faultobs lunar_faultobs::tests — provider_mismatch_split_common_undetectable_differential_detectable (gemensam bias oupptäckbar, differentiell upptäckbar), slope_infinity_in_range_finite_detectable (g7: lutning ∞ för b ∈ range(G), ändlig för b ∉ range(G)), pernode_rank_is_state_dim_minus_eight (§0: rank(GᵀWG) = state_dim − 8, den 8-dimensionella gaugen är hela nollrummet med ett spektralt gap på >1e6) 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å MODELLED
VM-fab6cff7 MTIE och TDEV för telekomtidssynkronisering på en tidsfelsserie vid holdover 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 telecom_timing (mtie_sliding, mtie_curve_ns, tdev_curve_ns); allan (mtie, time_deviation) tests/telecom_timing_reference.rs (17 averaging-faktorer för MTIE och 12 för TDEV på en incheckad holdover-serie med 2 048 sampel från en atomklocka i chipskala med åldring, flicker och temperatur, mot allantools 2024,06 till <1e-12 / <1e-9 relativt, observerat exakt / 1.1e-15; samma kurvor utlästa ur en fullständig telecom-timing-körning som läser in CSV-filen); telecom_timing::tests (glidande MTIE lika med allan::mtie vid varje fönster; handhärledd MTIE och TDEV; monoton MTIE) 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 VALIDATED
VM-b5a1c2e5 ITU-T-masker för telekomsynkronisering med PASS/FAIL och marginal 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 telecom_timing (MASKS, eprtc_a_holdover_limit_ns, check_curve, check_mask) telecom_timing::tests (mask_boundaries_follow_the_tables_exactly — öppna och slutna ändar, gapet τ = 400 s i tabell 7-3 i G.8271.1, kontinuitet vid varje brytpunkt som tabellerna implicerar; a_curve_exactly_on_the_limit_passes_and_just_above_fails; eprtc_a_holdover_envelope_follows_table_3; a_coarse_record_is_not_evaluated_against_a_filtered_mask); tests/telecom_timing_reference.rs (telecom_timing_kind_round_trips_through_the_dispatch); tests/telecom_masks_itu_printed_values.rs (mask_values_match_the_numbers_the_recommendations_print; figure_7_2_label_at_1_3_s_is_not_its_own_table_value) 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 MODELLED
VM-df4578d8 ITU-T-masker för wander-generering vid frekvenssynkronisering (G.811, G.812, G.8262, G.8262.1) 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 telecom_timing (MASKS, Segment::tau_exponent, MeasurementFilter::LowPass10HzAtSource, MaskCondition::Autonomous) telecom_timing::tests (g811_prc_masks_follow_clause_6_1; g812_masks_follow_tables_3_4_6_and_7; g8262_masks_follow_tables_1_3_4_and_5; g8262_1_eeec_masks_follow_tables_1_and_3; a_linear_piece_is_evaluated_without_powf; wander_masks_pass_a_quiet_white_fm_flicker_series; wander_masks_fail_the_same_series_scaled_up) 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 MODELLED
VM-002dc3ac Klockloggformat (RINEX clock, TimeLab ASCII, TAPR TICC) inlästa till en normaliserad fasserie 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 clock_log (read_input, MeasuredPhaseReport, MEASURED_UNITS, TELECOM_LOG_UNITS); telecom_timing (SeriesInput::clock_log); api (clock kind [clock_log]) clock_log::tests (handskrivna loggar per format: huvuden, avgränsare, enheter, frekvensintegration, TICC-kanaler och lägen, gap och policyer, vägranden); tests/clock_log_allantools.rs (den förhandsregistrerade jämförelsen: b1_each_log_reads_to_the_reference_phase; b2_adev_tdev_and_mtie_agree_with_allantools; b3_a_telecom_series_read_from_a_log_equals_the_same_samples; b3_the_clock_kind_measured_block_is_opt_in) 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 MODELLED
VM-800c73e1 Klockloggformat från linuxptp (ptp4l, phc2sys, ts2phc) och chrony (tracking, statistics) inlästa till en normaliserad fasserie 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 clock_log (parse_linuxptp, parse_chrony, grid_timed_offsets) clock_log::tests (ptp4l_reads_the_locked_offsets_in_ns; linuxptp_reads_only_the_named_program; ts2phc_gap_is_refused_or_filled; linuxptp_reads_syslog_prefixed_lines_and_picks_an_interface; linuxptp_refuses_a_servo_that_never_locks_and_backwards_stamps; chrony_tracking_reads_the_local_offset_in_seconds; chrony_statistics_needs_a_source_when_there_are_two; chrony_columns_of_the_other_log_are_not_read; clock_selector_is_refused_for_timelab_and_ticc_only) på testdatat i tests/fixtures/clock_log/linuxptp_chrony/ 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 MODELLED
VM-3c0cedf1 Holdover-test poängsatt utifrån en tidsfelsregistrering från operatören 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 holdover_test (HoldoverTestScenario, recovery, linear_fit); telecom_timing (check_mask, check_envelope, budget_results) holdover_test::tests (the_record_is_split_at_the_stated_times; holdover_figures_match_a_hand_computation; recovery_is_timed_from_the_restoration; masks_are_measured_on_the_step_their_condition_names; a_record_with_no_baseline_says_so; bad_inputs_are_refused_with_the_reason; the_report_carries_the_label_the_units_and_no_conformance_word; a_ptp4l_log_is_scored_end_to_end) 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 MODELLED
VM-fb122222 Tillgänglighet för GNSS-signaler i Space Service Volume och bortom den, jämförd med ICG:s SSV-häfte 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 ssv (constellations, geom, sweep, pattern, check) ssv::geom::tests (the_grid_has_the_booklets_2562_points_on_the_unit_sphere; the_interval_form_equals_the_general_predicate; a_user_behind_the_earth_is_blocked_and_one_beside_the_limb_is_not); ssv::sweep::tests (a_small_shell_run_is_internally_consistent; pdop_of_a_regular_tetrahedron_like_set_is_finite_and_a_flat_set_is_not); ssv::pattern::tests (table_b10_antenna_reads_as_gain_against_angle_from_the_boresight) 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å MODELLED
VM-114a4144 Effekter 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-ssv 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 ssv (limb, weak) ssv::limb::tests (the_chapman_layer_peaks_at_its_height_with_its_density; the_surface_limb_bends_about_one_and_a_third_degrees; plasmaspheric_tec_is_a_few_tecu_for_an_equatorial_gps_to_geo_ray); ssv::weak::tests (longer_integration_lowers_the_acquisition_threshold; aiding_narrows_the_search_and_the_loop; a_conventional_receiver_is_far_above_the_ssv_signal_levels); ssv::scenario::tests (the_limb_medium_adds_statistics_and_can_cost_signals; a_weak_signal_receiver_replaces_the_fixed_threshold) 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 MODELLED
VM-a5755cc1 Navigationsfilter ombord med GNSS för rymdfarkoster i hög bana och månöverföring 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 ssv::nav (run_nav, Ekf) ssv::nav::tests (the_filter_converges_where_signals_are_plentiful_and_is_deterministic; the_covariance_is_consistent_with_the_error; without_signals_the_filter_coasts_and_the_gap_is_reported); ssv::scenario::tests (navigation_and_formation_run_and_report) 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 MODELLED
VM-0ad9c42e Relativ navigering för en formation av flera rymdfarkoster i en mycket elliptisk bana med GNSS 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 ssv::formation (run_formation, RelEkf) ssv::formation::tests (differencing_beats_subtracting_absolute_estimates_and_is_deterministic); ssv::scenario::tests (navigation_and_formation_run_and_report; formation_needs_navigation_and_one_mode_only) 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 MODELLED
VM-dd872eab Felbudget för navigering och tidssynkronisering för en kedja av uppdragsfaser från uppskjutning till återinträde (mission-thread) 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 mission_thread (scenario, handover, conversions, budget, phase) mission_thread::scenario::tests::a_thread_runs_hands_over_converts_and_names_the_weakest_link; mission_thread::scenario::tests::bad_documents_fail_with_the_reason; mission_thread::handover::tests::inflate_never_shrinks_a_sigma_and_matches_the_hand_calculation; mission_thread::handover::tests::reacquire_sets_an_axis_to_the_floor_only_where_the_floor_is_smaller; mission_thread::conversions::tests::mci_mcmf_round_trip_returns_the_state_and_the_covariance; mission_thread::conversions::tests::tt_to_ltc_shifts_bias_and_drift_by_the_secular_rate_and_back; mission_thread::conversions::tests::the_committed_kernel_cuts_agree_with_pinned_horizons_values; tests/field_units_global.rs (the report's units block) 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 MODELLED
VM-141c6467 Uppskjutning och stigning till en parkeringsbana med GNSS-inhämtning och bortfall (launch-ascent) 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 mission_thread::earth::launch (LaunchAscent) mission_thread::earth::launch::tests::with_gnss_the_sigma_settles_near_the_fix_and_an_outage_lets_it_grow; mission_thread::earth::launch::tests::before_acquisition_the_sigma_only_grows_and_a_longer_acquisition_is_worse; mission_thread::earth::launch::tests::a_phase_that_does_not_list_gnss_never_uses_it; mission_thread::earth::launch::tests::bad_models_and_entries_are_refused; mission_thread::earth::filter::tests::repeated_updates_reach_the_riccati_steady_state 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 MODELLED
VM-3285c018 Relativ navigering till dockningsenveloppen i låg omloppsbana runt jorden över sensorsträckor (leo-rendezvous) 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 mission_thread::earth::rendezvous (LeoRendezvous); cw_dynamics; mission_thread::sensors mission_thread::earth::rendezvous::tests::the_relative_sigma_falls_through_the_legs_and_opens_a_docking_window; mission_thread::earth::rendezvous::tests::without_relative_sensing_the_sigma_only_grows_and_no_window_opens; mission_thread::earth::rendezvous::tests::the_covariance_recursion_matches_a_one_axis_hand_calculation; mission_thread::earth::rendezvous::tests::bad_models_and_a_duration_mismatch_are_refused; mission_thread::sensors::tests::the_cross_range_error_grows_with_range_and_the_floor_dominates_up_close 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 MODELLED
VM-09d31ea9 Trans-lunar injektion och färd i cislunart rum: propagerat medeltillstånd och kovarians med spårningsuppdateringar (tli-and-cruise) 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 mission_thread::earth::tli_cruise (TliCruise); propagator; ssv::sweep mission_thread::earth::tli_cruise::tests::the_stm_is_symplectic_for_the_conservative_part_and_matches_a_finer_difference; mission_thread::earth::tli_cruise::tests::with_no_tracking_the_covariance_is_the_stm_propagation_of_the_entry_and_the_burn; mission_thread::earth::tli_cruise::tests::range_tracking_shrinks_the_line_of_sight_and_leaves_the_plane_of_the_sky; mission_thread::earth::tli_cruise::tests::the_thread_kernel_serves_the_moon_inside_its_window_and_the_series_outside; mission_thread::earth::tli_cruise::tests::gnss_ssv_fixes_are_applied_where_the_sweep_finds_four_signals; mission_thread::earth::tli_cruise::tests::a_phase_that_lists_a_source_the_model_lacks_is_refused_and_unknown_keys_too 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 MODELLED
VM-fe6d68d3 Kovarians vid återinträdesgränssnittet, korridorsannolikhet, maximal retardation och landningsområde (entry) 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 mission_thread::earth::entry (Entry); reentry mission_thread::earth::entry::tests::the_flight_path_angle_and_its_sigma_follow_the_velocity_error_over_the_speed; mission_thread::earth::entry::tests::the_corridor_probability_is_the_gaussian_mass_inside; mission_thread::earth::entry::tests::the_phase_reports_the_interface_the_corridor_the_peaks_and_the_footprint; mission_thread::earth::entry::tests::the_steep_edge_peaks_higher_and_a_limit_below_it_is_flagged; mission_thread::earth::entry::tests::bad_corridors_unknown_keys_and_burn_keys_are_refused 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 MODELLED
VM-36619fa3 Täckning och spårningsdrift för markstationsnätet för en trådfas ([ground_network] i mission-thread) Ö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 mission_thread::earth::ground_network mission_thread::earth::ground_network::tests::a_vehicle_over_a_station_is_seen_and_one_on_the_other_side_of_the_earth_is_not; mission_thread::earth::ground_network::tests::the_moon_is_in_view_of_three_well_spread_stations_most_of_the_time; mission_thread::earth::ground_network::tests::handover_losses_reduce_the_duty_and_never_below_zero; mission_thread::earth::ground_network::tests::a_stated_duty_is_passed_through_and_bad_documents_are_refused; mission_thread::scenario::tests::the_overlay_sets_the_tracking_duty_of_a_phase_that_lists_ground_tracking 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 MODELLED
VM-5c095f48 Relativ navigering till dockning i en månbana (lunar-orbit-rendezvous) 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 lunar_rendezvous (LunarRendezvousScenario); lunar_phase; mission_thread::lunar lunar_rendezvous::tests::b1_mean_nees_is_inside_the_registered_band_in_all_four_configurations; lunar_rendezvous::tests::circular_cw_check_is_within_the_pre_registered_bar; lunar_rendezvous::tests::same_seed_gives_identical_documents; lunar_rendezvous::tests::b6_handover_without_a_measurement_only_propagates; mission_thread::lunar::tests::every_phase_runs_and_returns_a_modelled_outcome; tests/mission_thread_lunar_oracles.rs 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 MODELLED
VM-0002d522 Budget för landningsspridning vid en polarplats på månen (lunar-descent) 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 lunar_landing (LunarLandingScenario); lunar_phase; terrain_nav lunar_landing::tests::b4_with_no_aid_the_landing_error_is_the_closed_form_inertial_drift; lunar_landing::tests::b4_each_aid_reports_exactly_what_the_reused_kind_gives; lunar_landing::tests::b3_ellipse_calibration; lunar_landing::tests::a_plane_gives_no_fix_the_aperture_problem; lunar_landing::tests::a_bowl_matches_the_closed_form_bound; lunar_landing::tests::three_relays_make_the_fix_depend_on_the_clock 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 MODELLED
VM-bb8b8191 Tillgänglighet för positionering och tidssynkronisering på ytan per plats och årstid vid månens poler (lunar-surface) 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 lunar_surface_map (LunarSurfaceMapScenario); lunar_phase lunar_surface_map::tests::b5_equals_the_service_volume_for_a_single_site; lunar_surface_map::tests::b5_equals_the_service_volume_with_the_real_terrain; lunar_surface_map::tests::terrain_never_adds_availability; lunar_surface_map::tests::timing_is_at_least_either_source_and_the_season_moves_the_earth_and_sun; lunar_surface_map::tests::same_inputs_give_identical_documents 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 MODELLED
VM-5bd5efbe Driven stigning från en polarplats på månen till en insättningsbana (lunar-ascent) 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) lunar_ascent (LunarAscentScenario); lunar_phase lunar_ascent::tests::with_no_aid_the_insertion_error_is_the_closed_form_inertial_drift; lunar_ascent::tests::the_aid_never_hurts_and_the_velocity_is_carried_with_its_correlation; lunar_ascent::tests::a_stale_tt_clock_costs_a_three_relay_fix; lunar_ascent::tests::the_same_inputs_give_identical_documents Den inertiella driften i sluten form och monotonicitetskontroller i testerna. Ingen genomförd stigning jämförs MODELLED
VM-576667f2 Propageringen med månens kraftmodell mot offentliga rekonstruerade banor för månsatelliter och cislunara banor 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 lunar_od (LunarForceModel); precise_od; mission_thread_lunar_oracles (example) tests/mission_thread_lunar_oracles.rs::the_stored_numbers_meet_or_miss_the_registered_bars_as_recorded; tests/mission_thread_lunar_oracles.rs::the_fixtures_match_their_recorded_hashes 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 MODELLED
VM-85ad15fc Propageringen av medeltillståndet i cislunart rum mot den offentliga banan för Artemis I (tli-and-cruise) 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 mission_thread::earth::tli_cruise; propagator; mission_thread_oracle (example) tests/mission_thread_oracle.rs::the_stored_numbers_miss_the_registered_bars_as_recorded; tests/mission_thread_oracle.rs::the_diagnostic_places_the_miss_in_five_impulsive_events_not_in_the_force_model; tests/mission_thread_oracle.rs::the_kernel_cut_and_the_recorded_inputs_match_their_hashes 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 MODELLED
VM-8112313d Feltermer för kallatominterferometer: fasbrus i Raman-laser, vågfrontskrökningsbias och upplösning av fransosäkerhet 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 inertial::cai_error_terms inertial::cai_error_terms::tests (raman_transfer_short_pulse_limit_matches_the_acceleration_transfer_function; white_raman_phase_closed_form_matches_quadrature; short_pulse_band_limited_closed_form_matches_quadrature; cheinet_2008_white_phase_noise_requirement_is_reproduced; delay_term_closed_form_matches_exact_filter_quadrature; defocus_phase_is_position_independent_and_tilt_cancels; curvature_bias_monte_carlo_matches_closed_form; curvature_bias_limiting_cases; classical_aided_resolution_monte_carlo_matches_closed_form; multi_t_resolution_monte_carlo_matches_closed_form; ambiguity_limits_and_inverse) 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 MODELLED
VM-a9a886b5 Greenhalls och Rileys exakta ekvivalenta frihetsgrader för Allan-, modifierad Allan- och Hadamard-varianserna 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 allan (edf_greenhall, greenhall_edf_core); assurance::uncertainty (edf) tests/greenhall_edf_allantools.rs (bars_1_to_3_against_allantools; bar_4_wrappers_equal_the_core); tests/greenhall_edf_no_moved_output.rs (uncertainty_edf_is_bit_identical_to_the_0_36_portable_baseline); tests/uncertainty_edf_reference.rs 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) VALIDATED
VM-23a15a45 Förinställningar för oscillatorernas holdover ur öppna datablad 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 telecom_timing (PRESETS, fit_noise, with_flicker_floor, synthesize_holdover); models (ClockModel) 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 ett dygn; same_seed_same_series_and_hash_different_seed_different_series); tests/oscillator_presets_measured.rs (caesium_finding_pinned; rubidium_finding_pinned; csac_finding_pinned; ocxo_preset_has_no_measured_record) 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) MODELLED
VM-56200471 Holdover-prediktion utifrån en uppmätt klockregistrering, kontrollerad på undanhållna data 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 slot_timing (ClockNoise::from_phase_record, fit_weighted, slot_budget, breach_after_sync_s) tests/slot_timing_cs5071a_holdout.rs (holdover_inversion_predicts_the_held_out_caesium_record: anpassning på den första tredjedelen av registreringen, prediktion av ettsigma-överträdelsen vid 0,5, 0,75, 1, 1,5, 2 och 2,5 ns, mätning på de andra två tredjedelarna från en synkpunkt var 997 s; tröskel, fastställd före första körningen, en faktor 1,5 åt vardera hållet; observerade kvoter 0,84 till 1,03; en kontroll, Allan-deviationen vid en sekund läst som vit FM, missar med en faktor på ungefär 1 000 och måste misslyckas mot tröskeln; en mutation som halverar nivån för vit FM får testet att misslyckas); slot_timing::tests (a_measured_white_fm_record_recovers_its_level; reduces_to_the_holdover_inversion; ieee1139_conversion_matches_the_powerlaw_module) 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 VALIDATED
VM-3842550f Sekunder 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 marginalen 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 slot_timing (predicted_error_s, breach_after_sync_s, terms_at, slot_budget, ClockNoise::from_datasheet, SlotTimingScenario); clock_state (ClockClass::Tcxo, Ocxo, Rafs, source) tests/slot_timing_igs_holdout.rs (10 satellitklockor i GPS Block IIF, 14 dygn av slutliga IGS-klockor: 8 inom tröskeln på 1,5, G25 och G30 optimistiska med upp till ungefär 2x, fastlåsta); tests/slot_timing_ocxo_holdout.rs (en uppmätt OCXO: förutsägelsen på undanhållna data aldrig optimistisk, 0,59 till 0,70 av det uppmätta brottet; i urvalet inom 0,98 till 1,17; utan termen för frekvensen vid positionsbestämningen är förutsägelsen i urvalet optimistisk vid varje tröskel); slot_timing::tests (fix_frequency_uncertainty_alone_is_linear_in_time; reduces_to_the_holdover_inversion — varje klass mot holdover::holdover_seconds till 1e-9; white_fm_with_fix_error_has_its_closed_form; flicker_floor_alone_is_linear_in_time; ageing_alone_is_quadratic_in_time; frequency_offsets_add_in_magnitude; the_error_at_the_breach_is_the_guard; datasheet_fit_envelopes_every_point; datasheet_classes_match_their_presets_at_one_second; a_breach_beyond_the_datasheet_is_flagged_as_extrapolated; the_report_carries_the_result_and_a_unit_for_each_field) 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 MODELLED
VM-830ecf94 Skyddsnivå för tidssynkronisering hos en mottagare i omloppsbana under GNSS-spoofing 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 orbital_timing (orbital_timing, visibility_half_angle_rad, max_pass_s, crosslink_neighbour_is_outside_footprint) orbital_timing::tests (reduces_to_the_terrestrial_tpl — exakt tpl::timing_protection_level_ns när klockan saknar flicker-, vitfas- eller slumpvandringsterm; leo_geometry_matches_its_closed_forms; crosslink_independence_follows_the_footprint; an_independent_check_caps_the_ramp_before_the_pass_ends; a_crosslink_inside_the_footprint_does_not_count; a_ramp_below_the_reference_is_never_detected) 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 MODELLED
VM-e1de9d23 Slutna uttryck för effektspektraltäthet hos signaler i L-bandet och spektrala separationskoefficienter 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) navsignal (Modulation::psd, spectral_separation_coeff_offset, q_from_ssc); spectrum (psd_nulls_hz, psd_peak_hz, main_lobe_null_to_null_hz, Jammer::ssc) 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, första nollan vid 2,046 MHz, lobcentrum 1,023 MHz och det exakta maximumet vid 0,7590 MHz mot en oberoende Newton-lösning av tan y = 2y; ssc_matches_parseval_closed_forms — C/A x C/A 2/(3R_c) = -61.86 dB/Hz, BOC(1 1) x BOC(1 1) 1/(3R_c) = -64.87 dB/Hz, C/A x BOC(1 1) 1/(6R_c) = -67.88 dB/Hz, var och en inom 0,02 dB; q_values_match_kaplan_hegarty — CW vid bärvågen Q = 1, brus med matchat spektrum Q = 1,5, platt brus nolla-till-nolla Q = 2,215; mboc_is_a_unit_area_one_eleventh_mix) 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 VALIDATED
VM-ec2500ac Spektrumvattenfall för L-bandet med J/S per band och effektiv C/N0 under en skriptad tidslinje för jammers 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 spectrum (SpectrumScenario, SpectrumModel::bin_psd_w_per_hz, SpectrumModel::band_state, effective_cn0_multi_dbhz, system_temp_k, Jammer::power_fraction_in, Jammer::duty) spectrum::tests (agrees_with_the_jamming_kind_chain — J/S lika med jamming::j_over_s_db och effektivt C/N0 lika med jamming::effective_cn0_dbhz med Q = 1/(R_c kappa) till 1e-9 dB, och ankaret på 32,105 dB i jamming-typens eget test; noise_floor_is_kt0f; chirp_window_splits_whole_and_partial_sweeps; duty_weights_partial_rows; demo_scenario_runs_and_denies_l1_while_l5_survives; defaults_run_with_no_jammer; bad_inputs_are_refused) 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 MODELLED
VM-2d5c1f5c Inläsning och utskrift av SigMF-inspelningar och Welch-spektralskattningar av komplex IQ 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 sigmf (read, write, encode, decode, parse_meta, meta_to_json); spectrum (welch_psd, fft_in_place, synthesise_iq) sigmf::tests (cf32_round_trip_is_exact_to_single_precision; ci16_round_trip_is_within_half_a_code; ci16_is_little_endian_i_then_q; integer_encoding_counts_saturation; metadata_uses_the_core_namespace; unsupported_types_and_channels_are_refused; sample_start_offsets_into_the_data); spectrum::tests (fft_matches_a_direct_dft; welch_reads_white_noise_as_variance_over_fs_and_keeps_a_tone_s_power — golv inom 2 % av varians genom samplingshastighet, Parseval-summan inom 2 %, Hann ekvivalent brusbandbredd 1,5 bin; noise_like_synthesis_is_unbiased_through_welch — median Welch minus modell inom 0,1 dB genom en rundtur i ci16_le; synthesised_iq_through_sigmf_reproduces_the_model_spectrum); tests/sigmf_welch_oracle.rs::welch_and_sigmf_io_match_scipy_and_sigmf_python (Welch-PSD mot scipy 1.18.1 signal.welch per bin till 1e-12 relativt över 27 fall, observerat 6.0e-14; fem inspelningar med sigmf-python 1.13.0 avkodade bitidentiskt med identisk metadata; inspelningar skrivna av craten inlästa bitidentiskt av sigmf-python och schemagiltiga mot SigMF v1.2.6) 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 VALIDATED
VM-5d9fc243 Planeternas positioner genom hela solsystemet ur JPL:s keplerska Standish-element 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 ephem (standish_state, standish_elements, standish_nominal_error, ecliptic_to_icrf); ephem_provider (AnalyticSolarSystem); solar_system (SolarSystemScenario) tests/solar_system_standish_preregistered.rs::standish_rms_errors_are_within_explanatory_supplement_table_8_10_1 (barycentre 1800-2050 från tabell 1 och 3000 f.Kr.-3000 e.Kr. från tabell 2, 8908 och 21857 epoker, sämsta RMS 0,778 av värdet i tabell 8.10.1); tests/solar_system_standish_earth_icrf_preregistered.rs (earth_from_the_split_barycentre_is_within_the_emb_table_8_10_1_rms: jorden genom AnalyticSolarSystem och icrf_to_ecliptic, RMS 0,483 av värdet för EMB; icrf_positions_are_within_the_table_8_10_1_rms: ICRF-positioner för kropparna i tabell 1 och jorden, sämst 0,778; earth_minus_barycentre_offset_matches_de441_1950_to_2050: månserieuppdelningen, sämst 0,088 grader och 6,1 km); ephem::tests (standish_periods_obey_keplers_third_law; a_planet_track_is_one_closed_ellipse). Icke-grindande regression: tests/solar_system_horizons_reference.rs 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 VALIDATED
VM-bd135aad Positioner för solen, månen, Merkurius och Venus ur DE440-kärnan vid UTC-epoker (KernelEphemeris) 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 ephem_provider (KernelEphemeris::relative_position_utc, utc_to_tdb_jd2); naif_kernel; timescales 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); tests/kernel_ephemeris_skyfield_oracle.rs::kernel_ephemeris_matches_skyfield_on_the_full_kernel_when_present (villkorad av data); tests/kernel_ephemeris_skyfield_oracle.rs::barycentre_only_bodies_are_refused_not_substituted; ephem_provider::tests 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) VALIDATED
VM-fde7ce48 Ljustid mellan kroppar i solsystemet 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 radiometric (light_time_solution, two_way_range, shapiro_delay); solar_system (link, link_on); ephem_provider (AnalyticSolarSystem) 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 jordens centrum, 1576 epoker vardera på interpolerade DE441-positioner, sämst 6.7e-9 s mot 1e-6 s); noggrannhetsuppgift för den analytiska vägen som inte avgör utfallet: tests/solar_system_light_time_preregistered.rs (RMS c dLT 0,17 till 0,30 av positionströskeln i tabell 8.10.1); solar_system::tests 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 VALIDATED
VM-2233778f Uranus och Neptunus ur Standish Table 1, Pluto och planeternas hastigheter 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 ephem (standish_state, StandishElements::state_at_mean_anomaly, Planet::Pluto); solar_system (position_label) 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; pluto_from_the_1992_row_is_measured_not_validated: inom 39 bågsekunder och 1.14e9 m; standish_velocities_track_horizons_to_one_percent: sämst 3.7e-3 av farten); ephem::tests (standish_velocity_is_the_derivative_of_the_position; pluto_has_no_table2_row_and_no_stated_error) 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 MODELLED
VM-404abc2a Positioner för månen och sju stora månar (Phobos, Deimos, de galileiska månarna, Titan) 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 ephem (satellite_state, Satellite, SatelliteMethod, moon_icrf, moon_icrf_velocity); ephem_provider (AnalyticSolarSystem) 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 grader, Deimos 0,38, Io 0,40, Europa 1,63, Ganymedes 0,22, Callisto 0,27, Titan 3,31; geocentric_moon_tracks_horizons: 0,046 grader); ephem::tests (moons_sit_at_their_mean_distance_and_move_at_their_mean_speed); ephem_provider::tests (earth_and_moon_balance_about_their_barycentre) 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 MODELLED
VM-136e5aec Fysikaliska konstanter för varje kropp i solsystemet och rapporten för hela systemet 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 body (Body::by_name, Body::facts, Body::prime_meridian, SOLAR_SYSTEM, BodyFacts); solar_system (SolarSystemScenario, position_label) body::tests (every_catalogue_body_resolves_by_name_and_carries_its_record; a_zonal_field_is_referenced_to_its_sources_radius; retrograde_rotators_have_negative_rates_and_periods_match_the_iau_rate); solar_system::tests (defaults_report_all_eighteen_bodies_with_tracks; earth_heliocentric_distance_is_one_au_and_period_one_year; a_planet_track_closes_on_its_orbit_and_starts_at_the_epoch_position; moons_orbit_their_planets_at_their_mean_distance; pluto_outside_its_table_is_an_error_not_a_guess; every_emitted_number_has_a_unit); tests/body_constants_naif_oracle.rs::only_the_conventional_constants_of_other_rows_differ 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 MODELLED
VM-ee5cc5e3 IAU:s kroppsorientering och gravitationsparameter för de fjorton tillagda kropparna i solsystemet 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 body (Body::iau_rotation_et, Body::iau_angles_et, Body) 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); tests/body_orientation_spice_oracle.rs::orientation_matches_spice_pxform_at_fresh_epochs (41 epoker 1961 till 2038 som aldrig jämförts tidigare, 574 matriser inom 1e-9 rad, sämst Phobos 1.38e-10 rad); tests/body_constants_naif_oracle.rs::constants_match_naif_pck00011_and_gm_de440 (0 av 84 konstanter för de fjorton kropparna avviker från NAIF) 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 VALIDATED
VM-136e83d4 Positionsbestämning kring valfri kropp i solsystemet med en lokal konstellation och en djuprymdlänk från jorden 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 body_pnt (BodyPntScenario, formal_sigma, fix_error); orbit (dop); batch_ls (gauss_newton); mars_pnt (chord_clears_sphere); mars_frame (bodyfixed_to_inertial) body_pnt::tests (relay_period_is_keplers_third_law_for_the_body; an_orbiter_keeps_its_radius_and_a_lander_sits_on_the_surface; the_earth_range_never_worsens_the_formal_uncertainty; seeded_fix_errors_are_consistent_with_the_formal_sigma: kvadratmedelvärdet av varje positionsfel i förhållande till dess egen formella sigma ligger i [0,6, 1,5]; earth_light_time_is_minutes_at_mars_and_the_run_is_deterministic; defaults_run_around_mars_and_every_number_has_a_unit) 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 MODELLED
VM-ead7033f Geometri för Walker-konstellationer och de publicerade nominella positionerna i GPS, Galileo och GLONASS 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 constellation (WalkerSpec::elements, gps_slots, galileo_walker, glonass_slots, GPS_BASELINE_SLOTS, GPS_EXPANDABLE_SLOTS) constellation::tests::walker_24_3_1_reproduces_galileo_os_sdd_table_23 (alla 24 rader med RAAN och medelanomali till 1e-9 deg); constellation::tests::glonass_icd_slot_formula_is_a_walker_24_3_1 (ICD-slotformeln och ett Walker 24/3/1 är samma 24 par av nod och latitudargument); constellation::tests::gps_presets_reproduce_the_published_equatorial_crossings (markspårets ekvatorskorsning för alla 36 GPS-positioner utifrån RAAN, latitudargument och timvinkeln 100,765 deg: 35 inom 0,0108 deg mot en avrundningströskel på 0,015 deg, och E3F inom 0,06 deg eftersom tabellens egen E3F-rad avviker från sin RAAN och sitt latitudargument med omkring 0,06 deg; den sekulära nodregressionen inom 5 % av tabellens -0.0402 deg/day); constellation::tests::walker_geometry_identities_are_exact (de tre avståndsidentiteterna för delta- och stjärnmönster upp till 1 584 satelliter, till 1e-9 deg) 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 VALIDATED
VM-a33da228 Global geometrisk försämring av precisionen för GPS-baslinjekonstellationen 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 constellation (coverage, dop_at, NormalAccum) constellation::tests::gps_baseline_global_dop_matches_the_sps_performance_standard (HDOP median 0,940, 90 % 1,165, 95 % 1,255, 98 % 1,370, medelvärde 0,965 mot 0,94, 1,16, 1,25, 1,37 och 0,96, tröskel 0,03 för vart och ett, fastställd före första körningen; PDOP median 1,795 vid eller under tabell B.3-1:s 1,815 för en försämrad blandning av 20-24 satelliter; tillgänglighet 100 % globalt och på den sämsta platsen mot tabell 3.8-1:s 98 % och 88 %); constellation::tests::single_epoch_dop_matches_the_hand_computation (zenit plus tre satelliter på 30 deg elevation: HDOP 4/3, VDOP 2,3094, PDOP 8/3, TDOP 1,5275, GDOP 3,0732 till 1e-9, och lika med orbit::dop med gemensam klocka) 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 VALIDATED
VM-79dd3ee7 Täcknings- och DOP-kartor för godtyckliga konstellationsutformningar med flera konstellationer i stor skala, kring valfri centralkropp 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 constellation (coverage, ConstellationDesignScenario, beidou_slots, body_by_name) constellation::tests (prefilter_matches_brute_force_exactly — varje karta och räknare är lika med en avsökning med det direkta elevationstestet; five_thousand_satellites_on_a_coarse_grid — 5 000 satelliter, skriver ut körtiden och de bevarade partesterna; a_clock_per_constellation_needs_one_more_satellite; beidou_geo_and_igso_geometry; lunar_shell_runs_around_the_moon; presets_are_earth_only_and_errors_are_clear; preset_counts); tests/constellation_availability_published_spec_oracle.rs::presets_meet_the_published_dop_availability (endast regressionskontroll); tests/coverage_dop_full_oracle.rs::finding_is_pinned; tests/coverage_dop_gnss_lib_py_oracle.rs (regression) 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 MODELLED
VM-f9c068a3 Ett kedjat uppdrag över scenariotyper på en gemensam tidslinje 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 campaign (run_campaign_detailed, run_chain, presets, extract, to_svg) tests/campaign_composition_reference.rs (a_one_phase_clock_campaign_reproduces_the_standalone_run_bit_for_bit, a_one_phase_integrity_campaign_reproduces_the_standalone_run_bit_for_bit, a_one_phase_jamming_campaign_reproduces_the_standalone_run_bit_for_bit — medlemsresultatet är byte-identiskt med den fristående körningen och varje justerat värde är lika med den fristående serien; the_chained_mission_hands_state_on_and_ends_the_spoofing_phase_on_detection; a_handoff_writes_the_previous_phase_number_into_the_next_scenario; malformed_campaigns_fail_loudly) 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 MODELLED
VM-badb561f Parametersvep och Monte Carlo-ensembler med slumpfrö över valfri scenariotyp 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 campaign (run_sweep, run_monte_carlo, ensemble); sweep (GenericAxis, coords_of, set_dotted_value); inertial (metric_stat) 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 frön för en klocka med vitt frekvensbrus som löper fritt tau = 3010 s: det sanna medelvärdet 0 inom det rapporterade intervallet, intervallets halva bredd inom 25% av 1,96 sigma/sqrt(n), och stickprovsvariansen inom det tvåsidiga 99%-iga chitvå-intervallet för sigma = sqrt(q_wf tau) = 16,459 ns; kalibreringsensemble (CAP-10, förhandsregistrerad ea451cb5, docs/CALIBRATION-ENSEMBLES.md, tests/calibration_ensembles.rs): över 200 oberoende ensembler täcker intervallet det sanna medelvärdet i 192 (inom Binomial(200, 0,95)-regionen på 99 % [181, 197]) och chitvå-kontrollen klaras i 196, medan toleransen för percentiler med ett enda frö (p05 och p95 inom 0,3 sigma) klaras i endast 183 av 200, NOT MET mot den förhandsregistrerade 190, en kontroll som är bräcklig med avseende på frö och som registrerades i stället för att lättas; a_one_node_sweep_and_a_one_member_composition_read_the_standalone_number) 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 MODELLED
VM-d55cb714 Flera scenarier under gemensamma villkor, med en samlad sammanfattning 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 campaign (run_compose) 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 digest) 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 MODELLED
VM-5664a533 Begränsad optimering av ett mått över kampanjparametrar 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 campaign::optimize (run_optimize, nelder_mead) tests/campaign_optimize_reference.rs (förhandsregistrerad fbe6c8b3 och, efter ett protokollmiss i omgång 1, 441f31bc: p2_prime_interior_target_range_matches_the_closed_form — 1D-målslösning inom 6.1e-15 från r* = r0 10^((m(r0) - 3)/20) på 96 utvärderingar; p3_prime_contour_target_grid_and_nelder_mead och p3_grid_matches_brute_force_and_nelder_mead_does_at_least_as_well — rutnätsmetodens bästa värde är bitlikt ett oberoende brute-force-varv på 41 x 41 över run_toml, Nelder-Mead minst lika bra på 177 respektive 161 utvärderingar; p4_nelder_mead_reaches_the_corner_maximum; p5_the_document_is_byte_stable_and_counts_agree; p2_round1_not_met_the_box_excludes_the_closed_form, som fastlåser det registrerade missen i omgång 1); campaign::optimize::tests (nelder_mead_meets_the_preregistered_rosenbrock_bar: f* = 1.7e-20 på 234 utvärderingar; a_non_finite_score_is_never_the_best; the_grid_mapping_is_the_sweeps) 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 MODELLED
VM-25c2d93d Bandbegrä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 korskontrollerade 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 navsignal (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) 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 BPSK(1/3), BPSK(1), BPSK(5), BPSK(10), och slutna formen lika med kvadraturen till 1e-7 i 10, 15, 20 och 51,15 MHz; bpsk_gabor_closed_form_matches_numeric_and_asymptote — till 1e-4, och asymptoten sqrt(B R_c / (2 pi^2)); bandlimited_dll_reduces_to_the_textbook_forms — koherent early-late BPSK(1) vid 45 dB-Hz, B_L 1 Hz, d 1 chip, T 20 ms: 0,0039564 chip (1,159 m) inom 1 %, den icke-koherenta formen lika med navsignal::dll_code_jitter_chips inom 1 %, gränsvärdet för försvinnande avstånd lika med sin slutna form till 1e-5; offset_bpsk_ssc_matches_parseval_closed_form — förskjutningar 0 till 3,2 R_c inom 0,01 dB och -71.86 dB/Hz vid nollförskjutning för BPSK(10); altboc_psd_is_unit_area_with_lobes_at_e5a_and_e5b; modulation_labels_round_trip) 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). VALIDATED
VM-46b52315 Maximal Doppler för en navigationssatellit i låg jordbana, som dimensionerar inhämtningssökningen 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 leo_signal (max_doppler_hz) leo_signal::tests::max_doppler_matches_published_xona_and_iridium_figures — Xona Pulsar X1 (1593,3225 MHz, 1080 km) 33,2 kHz inom det publicerade intervallet 32 till 34 kHz; Iridium (1621 MHz, 780 km) inom 0,5 kHz från det publicerade värdet 36 kHz 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 är utelämnad, vilket flyttar värdet med upp till cirka 2,3 kHz; båda de publicerade värdena uppfylls även utan den. VALIDATED
VM-3fce7cff Signalutformningar för positionering, navigering och tidssynkronisering i låg jordbana: kodföljning, inhämtning, GNSS-kompatibilitet och en bandavvägning för valfritt system 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 leo_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) leo_signal::tests (every_public_preset_parses_and_cites_a_url; detector_reduces_to_pfa_and_grows_with_snr; detection_probability_with_several_looks_matches_the_noncentral_chi_square; mean_time_of_a_perfect_detector_is_half_the_cells; compatibility_ssc_magnitudes_match_independent_quadrature; to_spectrum_band_is_consistent_with_the_design; jammer_tolerance_orders_cw_matched_wideband; e5_centred_signal_hits_e5a_and_e5b_equally; defaults_run_on_the_generic_band_preset; inline_signal_and_bad_inputs); tests/leo_signal_reference.rs (varje medföljande systemoberoende scenario körs utan workshopdata, bandavvägningens jonosfärkvoter är lika med (f_ref/f)^2 och dess skillnader i fri rymd 20 log10(f/f_ref), jittern vid referens-C/N0 ligger mellan sin Gabor-gräns och sin form för obegränsat band, workshopparameterscenariots E5-formkontroller är konsistenta när den filen finns, och ingen källfil kompilerar den filen) 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. MODELLED
VM-42081bd2 Vattenfall över spektrum med flera band (UHF, L, S, C) med utformade signaler och jammers per band 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 spectrum (Band::unit_psd, Band::tracked_power_dbw, BandDesign, BandCfg, PanelCfg, SpectrumScenario, Waveform, multi_band_svg); leo_signal (SignalDesign::to_spectrum_band) tests/leo_signal_reference.rs (vattenfallet med flera band körs med fyra paneler, UHF-, L5-band-, S- och C-störsändarna nekar var och en endast sitt eget band, och en körning med ett vanligt band påverkas inte av utökningen); leo_signal::tests::to_spectrum_band_is_consistent_with_the_design; spectrum::tests (agrees_with_the_jamming_kind_chain) 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). MODELLED
VM-9ddaa2d5 Koefficienter för specifik regndämpning för varje band som en LEO-PNT-länk använder 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 leo_link::itu (p838_coefficients, p838_k_alpha, rain_specific_attenuation_db_km) 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) 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 VALIDATED
VM-86ab5cbc Långsiktig regndämpning längs snedväg på en länk mellan jord och rymd 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 leo_link::itu (p618_rain_attenuation_db, RainPath) 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) 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 VALIDATED
VM-987a822b Troposfärisk amplitudscintillation på en länk mellan jord och rymd 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 leo_link::itu (p618_scintillation_db, wet_refractivity, ScintillationPath) 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) 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 VALIDATED
VM-47ae8b0f Byggnadsinträngningsförlust för en LEO-PNT-användare inomhus 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) leo_link::itu (p2109_building_entry_loss_db, BuildingClass); detection (normal_inv_cdf) 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) 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 VALIDATED
VM-8fce41a4 Förstaordningens jonosfärsfördröjning per band, den jonosfärsfria kombinationen och fritt rumsdämpning 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 leo_link::iono (group_delay_m, iono_free_coefficients, iono_free_noise_amplification); leo_link (fspl_db); linkbudget (free_space_loss_db) tests/leo_link_reference.rs (first_order_iono_reproduces_the_is_gps_200_group_delay_ratio: gamma = (77/60)^2 till 1e-12, L1/L2- och L1/L5-förstärkning 2,978 och 2,588; free_space_loss_is_the_friis_kilometre_megahertz_form: 32,4478 + 20 log d + 20 log f till 1e-4 dB); leo_link::iono::tests (delay_scales_as_one_over_f_squared; iono_free_combination_removes_the_first_order_delay) 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 VALIDATED
VM-6a111b40 Maximal Doppler som en stillastående användare ser från en LEO- eller MEO-bana 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 leo_link::geometry (max_static_user_range_rate, DopplerEnvelope, doppler_hz) 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, maximal ECEF-hastighet, maximal relativhastighet och maximal bärvågs-Doppler i L1- och L5-bandet, 20 värden, vart och ett inom 0,05 %) 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 VALIDATED
VM-95b055dc En LEO-PNT-passage och dess länkbudget per band mot de MEO-GNSS-satelliter som är i sikte 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 leo_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) leo_pass::tests (the_leo_pass_is_a_bell_above_flat_gnss; closed_form_doppler_agrees_with_the_numerical_derivative: under 0,01 Hz och 0,01 Hz/s; indoor_uhf_suffers_less_building_loss_than_c_band; rain_attenuates_c_band_more_than_s_band; iono_delay_scales_as_one_over_f_squared_across_bands; a_fully_custom_band_needs_no_preset; a_walker_constellation_and_a_tle_satellite_both_run; defaults_run_with_no_preset_named_and_every_number_has_a_unit); leo_link::geometry::tests (kepler_velocity_is_the_derivative_of_the_position; a_designed_pass_reaches_the_requested_elevation; closed_form_range_rate_and_accel_match_central_differences_for_two_body_motion); leo_link::antenna::tests 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 MODELLED
VM-0723b0b7 Namngivna förinställningar för LEO-PNT-system med angivna källor, och en systemoberoende motor 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 leo_link::presets (SystemPreset, BandPreset, all, by_id, gnss_meo); leo_pass (resolve_bands) leo_link::presets::tests (every_preset_is_sourced_and_self_consistent; only_the_celeste_preset_is_sourced_from_the_workshop); leo_link::presets::xona_pulsar::tests (the_eirps_reproduce_the_published_minimum_power_at_ten_degrees; a_flat_pattern_lands_the_zenith_power_near_the_published_maximum: inom 0,5 dB från -139.1 och -136.2 dBW); leo_link::presets::iridium::tests; leo_pass::tests (a_fully_custom_band_needs_no_preset) 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 MODELLED
VM-f20670eb Positionsbestämning med låg energi: tid till första positionsbestämning och energi per positionsbestämning mot arbetscykel 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 leo_link::energy (fix_budget, duty_curve, IotReceiver, IotSignal); leo_pass (iot_section) leo_link::energy::tests (stronger_signals_and_smaller_doppler_windows_fix_faster; the_doppler_rate_caps_the_coherent_time; battery_life_grows_with_the_fix_interval_toward_the_sleep_floor); leo_pass::tests (the_run_is_deterministic_and_bad_inputs_are_rejected) 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 MODELLED
VM-0beb4fb3 Globalt genomsnittliga vikter för avståndsfel i signalen i rymden för valfri banhöjd 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) leo_navmsg::sisre (sisre_weights, StatsAcc) 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, vart och ett inom 0,005 av w_R och 0,5 av 1/w_AC^2; leo_weights_shift_toward_the_transverse_axes — horisontens nadirvinkel 67,8 deg vid 510 km) 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 VALIDATED
VM-71b6ea3d Användaralgoritmen för sänd efemerid enligt Galileo ICD som bas för ett navigationsmeddelande i LEO 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 leo_navmsg::elements (kepler_point, kepler_frame, ephemeris_at, sat_state) tests/leo_navmsg_reference.rs (the_galileo_user_algorithm_reproduces_rtklib_to_a_millimetre — fyra verkliga Galileo-sända efemerider E10, E19, E24, E25 vid tk = 0, +/-600, +/-1800, +/-3600 s, varje axel inom 1 mm från RTKLIB; real_galileo_records_survive_the_binary_frame_and_the_text_block — inom 5 mm efter Kshanas binära ram och 1 mm efter RINEX-liknande block) 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 VALIDATED
VM-50db12ad CRC-24Q-ramkontroll för navigationsmeddelandet i LEO 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 leo_navmsg::codec (crc24q, encode, decode) 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-exempelramen för meddelandetyp 1005 (10403), och noll över hela ramen) 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 VALIDATED
VM-d977634a Anpassare av sänd efemerid i LEO och avståndsfel i signalen i rymden mot anpassningsintervall och uppdateringsperiod 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 leo_navmsg::fit (fit_message, lstsq, polyfit); leo_navmsg::truth (TruthOrbit, TruthClock); leo_navmsg (sequence_stats, LeoNavmsgScenario) leo_navmsg::tests::a_two_body_truth_is_recovered_by_the_keplerian_fit_to_a_millimetre; leo_navmsg::tests::the_user_algorithm_reproduces_the_fitted_truth_to_a_millimetre_with_corrections; leo_navmsg::tests::the_clock_fit_returns_the_truth_clock_through_the_user_relativistic_term; leo_navmsg::tests::keplerian_sisre_grows_with_the_fit_interval_and_the_corrections_fix_it (monoton ökning från 1 till 15 minuter och minst trefaldig förbättring vid 15 minuter); leo_navmsg::tests::defaults_run_encode_decode_without_any_preset_and_are_deterministic; tests/leo_navmsg_fit_real_orbit_oracle.rs::fitted_sisre_matches_liu_2025_on_real_orbits (reducerat dynamiska banor från TU Graz ITSG för GRACE-A, GRACE-C, Sentinel-2A och Sentinel-6A anpassade över bågar på 20 och 30 min: RMS längs banan, tvärs och radiellt 0,804 till 1,087 och SISRE 0,716 till 0,809 av Liu et al. 2025, inom 1.5x; SISRE-vikter inom 0,0007 av dess tabell 2); tests/leo_navmsg_full_claim_oracle.rs::integrated_truth_orbit_matches_orekit_within_2_cm_over_6_h (Orekit 12,2 + Hipparchus 3,1, samma begynnelsetillstånd och täthetsindata: sämst 3,95 mm tvåkropps, 3,92 mm J2-J6 och EGM2008 till grad 20 och 70, 4,55 mm EGM2008 grad 20 med luftmotstånd vid 400 km, tröskel 0,02 m över 6 h); intern korskontroll, ingen oberoende referens: tests/leo_navmsg_full_claim_oracle.rs::corrections_clock_fit_and_update_period_trade_agree_with_an_internal_cross_check_on_grace_fo 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) VALIDATED
VM-a64cd2c4 Uppdatering av LEO-navigationsmeddelandet mitt under passagen med en kontinuitetskontroll vid bytet 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 leo_navmsg (LeoNavmsgScenario::midpass, worst_case_jump, elevation, geodetic_to_ecef) leo_navmsg::tests::a_mid_pass_update_is_continuous (varje omkopplings avståndshopp är lika med ändringen i avståndsfel, och en korrigerad passning på 300 s som uppdateras var 150 s klarar en tröskel på 5 cm); leo_navmsg::tests::a_keplerian_only_update_over_a_long_interval_is_flagged; leo_navmsg::tests::worst_case_jump_bounds_every_line_of_sight (den slutna formen begränsar en tät sampling av konen) 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 MODELLED
VM-2ed420b3 Dokumenterad binär kodning av LEO-navigationsmeddelandet med en budget för kvantiseringsfel 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 leo_navmsg::codec (encode, decode, write_payload, read_payload, field_table, quantisation_budget) 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 (varje modell inom 2 mm från det exakta meddelandet efter avkodning, omkodning bitidentisk, en vänd bit avvisad av CRC); leo_navmsg::tests::every_field_of_the_budget_stays_under_a_millimetre 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 MODELLED
VM-75b6f696 Exporter av LEO-navigationsmeddelanden i RINEX-4-stil och som CSV 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 leo_navmsg::text (rinex_export, rinex_import, csv_export, csv_import, calendar, from_calendar) 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) 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 MODELLED
VM-357232ee Liu et al. 2025 efemeridmodell för LEO med 22 parametrar och dess anpassning på verkliga precisa banor 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 leo_navmsg::elements (kepler_point, Liu22Extra); leo_navmsg::fit (fit_message, fit_kepler, initial_params, formal_sigma); leo_navmsg::truth (TruthOrbit) tests/leo_navmsg_fit_real_orbit_oracle.rs::liu22_model_matches_the_published_sisre (fyra artikeldagar: kvoter för längs banan, tvärs, radiellt och SISRE 0,755 till 1,138 av Liu et al. 2025, inom 1.5x); tests/leo_navmsg_fit_real_orbit_oracle.rs::liu22_holds_on_held_out_days (åtta undanhållna dagar, två bågar vardera: 0,683 till 1,186) 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 VALIDATED
VM-b4f93233 ATOMIC:s ECEF-polynom utan klocka och den syntetiska modelljämförelsen för LEO på fem höjder 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 leo_navmsg::elements (EcefPoly, ephemeris_at); leo_navmsg (liu_comparison, LIU2025_TABLE) leo_navmsg::tests::liu22_beats_the_16_parameter_set_over_a_20_minute_arc; leo_navmsg::tests::the_ecef_polynomial_fits_a_minute_to_millimetres; leo_navmsg::tests::every_preset_resolves_and_the_atomic_preset_selects_the_zero_clock_polynomial 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) MODELLED
VM-d4776382 Tjänster för jonosfär med en frekvens och UTC i ett navigationsmeddelande för LEO 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 leo_navmsg::services (klobuchar_delay_m, effective_ionisation_level, system_to_utc) leo_navmsg::services::tests (klobuchar_scales_with_inverse_frequency_squared — L1-värdet är RTKLIB:s 6,1278 m; nequick_az_rules; utc_without_an_event_is_tow_minus_leap_seconds_folded_to_a_day; utc_drift_terms_follow_the_icd_formula; an_inserted_leap_second_reads_86400_at_the_end_of_the_day); tests/leo_navmsg_services_gnsstk_oracle.rs::services_match_gnsstk_and_erfa (Klobuchar vid L1, L2 och L5 över 4 320 fall, sämst 7.0e-13 m; Az över 222 koefficientuppsättningar inklusive helnoll och 400 sfu-reglerna, sämst 5.7e-14 sfu; UTC-drift över 50 fall, sämst 3.6e-15 s; de tre skottsekundsfallen över 21 602 tidpunkter kring de verkliga skottsekunderna 2015 och 2016, 0 s) 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 VALIDATED
VM-39824338 Doppler som en markmottagare måste hantera från en navigationssatellit i LEO 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 leo_fusion::geom (EarthOrbit); leo_fusion::doppler (range_rate, doppler_envelope) tests/leo_doppler_reference.rs (iridium_doppler_reaches_the_published_36_khz: en satellit på 780 km och 86,4 deg flugen under ett dygn vid 1621 MHz över fyra latituder, maximum inom 5% av 36 kHz; xona_pulsar_x1_doppler_lies_in_the_published_32_to_34_khz: en satellit i vardera publicerat skal, 1080 km vid 53 och 97 deg, 1593,3225 MHz, konstellationens maximum inom 32 till 34 kHz utan vidgning (33,6 kHz, bestämt av skalet på 97 deg; skalet på 53 deg ensamt når toppen 31,8 kHz)); leo_fusion::geom::tests (velocity_is_the_time_derivative_of_the_position) 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 VALIDATED
VM-c4520dfd Positionsbestämning ur LEO-Doppler, med en och flera satelliter, med tillstånd för klockdrift och hastighet 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) leo_fusion::doppler (solve, formal_covariance, single_pass_geometry, offset_site, closest_approach); leo_fusion::pvt_kind (run_doppler) 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; a_single_pass_has_a_mirror_solution_across_the_ground_track; the_cross_track_error_grows_as_the_pass_goes_overhead; velocity_states_are_recovered_for_a_moving_user); leo_fusion::pvt_kind::tests (doppler_positioning_improves_with_the_window_and_is_deterministic: den viktade residualens RMS i [0,8, 1,2] och felet under fyra formella sigma); tests/leo_fusion_scenarios.rs (leo_doppler_positioning_forms_a_fix_and_the_cross_track_error_explodes_overhead; starlink_doppler_only_mode_runs_without_ranging); tests/starlink_doppler_published_proxy.rs (en förhandsregistrerad proxy mot de publicerade percentilerna för datamängd 3 i "Unveiling Starlink for PNT", doi:10.33012/navi.685: med 3 satelliter (mask på 47 grader), inget höjdstöd och 30 Hz är p90 för 3D-felet 92,2 m vid 20 s och 870 m vid 8 s mot de publicerade 2 m och 10 m, så båda trösklarna på en faktor två är NOT MET, på den höga sidan, och intygade som missade; docs/design/evidence/cap11-starlink-doppler-proxy/) 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 MODELLED
VM-06d2559e Gemensam positionsbestämning med pseudoavstånd från GNSS och LEO med biaser mellan system och felmodeller per signal 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 leo_fusion::joint_pvt (solve, dop, code_sigma_dll_m, SystemClock); leo_fusion::system (SystemCfg, System); leo_fusion::pvt_kind (run_joint) leo_fusion::joint_pvt::tests (dop_matches_the_hand_derived_zenith_plus_three_horizon_case: HDOP = VDOP = sqrt(4/3), TDOP = sqrt(1/3), PDOP = sqrt(8/3), GDOP = sqrt(3) till 1e-9; a_lone_satellite_with_its_own_clock_adds_nothing_and_a_known_offset_does; a_noise_free_fix_recovers_position_clock_and_inter_system_bias; seeded_fixes_agree_with_their_formal_covariance; dll_noise_is_the_textbook_figure_for_gps_l1_ca); leo_fusion::pvt_kind::tests (fusing_leo_never_worsens_the_median_pdop_and_the_isb_is_recovered); tests/leo_fusion_scenarios.rs (meo_leo_fusion_beats_gnss_alone_and_recovers_the_leo_bias); tests/joint_pvt_dual_freq_itrf_rtklib_oracle.rs::dual_frequency_finding_is_pinned; tests/joint_pvt_precise_itrf_rtklib_oracle.rs::precise_product_finding_is_pinned 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) MODELLED
VM-df6c3fb1 Konvergens vid precis punktpositionering med enbart GNSS och med LEO-förstärkning 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 leo_fusion::ppp (run, PppScenario, LI_2019) leo_fusion::ppp::tests (the_filter_is_consistent_over_monte_carlo_seeds: 24 frön, körningsmedelvärdet av NEES i [2,4, 3,6] och minst 75% av epokerna inom det tvåsidiga chitvå-bandet på 95%; uppmätt med 150 frön, medelvärde 2,84 med enbart GNSS och 2,87 med LEO; leo_augmentation_shortens_convergence; same_seed_same_answer_and_every_number_has_a_unit); tests/leo_fusion_scenarios.rs (ppp_convergence_of_the_bundled_scenario_shortens_monotonically) 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 MODELLED
VM-038b22af Positioneringsnoggrannhet för 5G icke-terrestriska nät utifrån signalbandbredd 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 leo_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) 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 för hand vid 5 MHz, 45 dB-Hz, 0,1 s; the_frequency_bound_is_the_complex_tone_crlb; defaults_run_wider_is_better_and_every_number_has_a_unit); tests/leo_fusion_scenarios.rs (ntn_wide_channel_bounds_far_tighter_than_the_narrow_one); tests/ntn_crlb_published_value_oracle.rs (ssb_bounds_reproduce_the_published_values; ntn_fix_covariances_match_numpy; bpsk_rms_bandwidth_reproduces_betz_table_1) 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) VALIDATED
VM-e033f926 LEO-assisterad tidsöverföring till UTC mot C/N0 och mottagarens oscillator 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 leo_fusion::timing (simulate, utc_offset_s, system_to_utc_s); leo_fusion::pvt_kind (run_timing) leo_fusion::timing::tests (the_utc_offset_follows_the_is_gps_200_expression; continuous_tracking_approaches_the_measurement_floor_and_gaps_cost_time; the_filter_is_consistent_over_seeds; the_utc_offset_uncertainty_sets_a_floor); tests/leo_fusion_scenarios.rs (leo_timing_error_grows_as_the_c_n0_falls) 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 MODELLED
VM-eddcdf79 LEO-täckning och geometrisk försämring av precisionen för användare vid polerna och i Arktis mot MEO-GNSS 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) leo_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) tests/leo_polar_coverage_on_path_orekit_oracle.rs (konfigurationerna A och B, 4040 stickprov: jordfasta positioner inom 6.8e-5 m, tröskel 0,2 m; antal satelliter i sikte identiska på 4040/4040; median-DOP inom 2.3e-11 relativt, tröskel 1e-3; tillgänglighet och medelantal i sikte identiska); tests/earth_orbit_path_sgp4_erfa_oracle.rs (banan); leo_fusion::polar::tests (gps_vertical_geometry_weakens_at_the_pole_and_a_polar_leo_shell_restores_it); tests/leo_fusion_scenarios.rs (a_polar_leo_constellation_fills_the_sky_where_gnss_vertical_geometry_weakens); tests/leo_polar_coverage_orekit_oracle.rs (omgång 2, geometri för givna tillstånd); tests/leo_polar_coverage_full_claim_orekit_oracle.rs (fynd från omgång 1 för hela påståendet, fastlåst) 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 VALIDATED
VM-5a90d275 Namngivna LEO-PNT-system som valfria datainställningar, var och en med sin källa 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 leo_fusion::presets (all, by_id, cn0_range_dbhz, noise_density_dbw_hz); leo_fusion::system (SystemCfg::build) leo_fusion::presets::tests (every_preset_has_a_source_and_every_public_source_a_url; only_one_preset_uses_workshop_material; noise_density_at_290_k_is_minus_204_dbw_per_hz); tests/workshop_preset_isolation.rs (only_the_listed_files_name_the_workshop_preset; workshop_numbers_live_only_in_the_preset_file_and_its_scenarios: genomsökningar av källtext i src, scenarios och tests); leo_fusion::system::tests (a_preset_fills_what_the_scenario_leaves_out; a_system_needs_no_preset; pseudorange_sigma_falls_with_elevation_and_never_below_the_sisre) 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 MODELLED
VM-05d0e975 Ett 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ästa 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 leo_pnt_chain (LeoPntChainScenario); leo_pass (BandCfg::signal, design_tracking); leo_navmsg (LeoNavmsgScenario::broadcast_sisre); leo_fusion::pvt_kind; leo_fusion::ppp 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 flyttar var och en det överlämnade värdet och den fusionerade positionsbestämningen; the_handed_on_values_are_the_stage_outputs; a_band_design_splits_the_eirp_and_reports_the_design_jitter; the_pass_export_reproduces_the_engine_range) 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 MODELLED
VM-79558230 Detektering av spoofing med LEO-Doppler och konsistens i passagegeometrin 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 leo_link::spoof (range_rate_position_gradient, line_of_sight, fll_frequency_jitter_hz, doppler_consistency_window, doppler_consistency); leo_pass (SpooferCfg, spoof_section) leo_link::spoof::tests (the_gradient_is_the_derivative_of_the_range_rate; fll_jitter_matches_the_formula_by_hand; a_common_mode_residual_is_a_clock_drift_and_is_not_detected; with_no_prior_and_equal_noise_the_statistic_is_the_scatter_about_the_mean; a_push_the_prior_explains_is_not_detected; a_velocity_push_is_hidden_by_a_loose_velocity_prior_only; the_information_form_equals_the_covariance_form); tests/leo_resilience_verticals.rs (the_monitors_are_silent_before_the_onset; the_doppler_statistic_is_quadratic_in_the_jump; leo_range_rates_see_a_jump_that_gnss_range_rates_do_not) 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) MODELLED
VM-9aea2967 Detektering av spoofing genom konsistens mellan band i en LEO-signal med flera band 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 leo_link::spoof (cross_band_step); leo_pass (spoof_section: pairs, cross_band) leo_link::spoof::tests (the_cross_band_threshold_and_power); tests/leo_resilience_verticals.rs (a_ground_spoofer_leaves_the_ionospheric_step_and_an_ionosphere_aware_one_does_not; a_one_band_spoofer_is_seen_by_the_cross_band_monitor_at_the_onset; the_monitors_are_silent_before_the_onset) 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 MODELLED
VM-cf7623f8 Jonosfärssondering: sned TEC ur dubbelbandsfördröjningen i en LEO-passage 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 leo_pass (IonoFreePair::geometry_free_stec_tecu, geometry_free_stec_sigma_tecu); leo_link::iono::geometry_free_stec_tecu tests/leo_resilience_verticals.rs (the_geometry_free_tec_is_the_pass_slant_tec: är lika med passets sneda TEC vid toppen till 1e-9 och dess sigma är lika med RSS av kodbruset över 40,3 (1/f1^2 - 1/f2^2)); tests/geometry_free_tec_gim_oracle.rs::geometry_free_finding_is_pinned 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 MODELLED
VM-7205faad Datumkovarians för månsystemet med stationerna skattade, mot utökad precision med 50 siffror 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) lunar_frame_campaign, fim tests/lunar_frame_campaign_mpmath_oracle.rs (lunar_frame_campaign_datum_matches_mpmath_extended_precision: tre scenarier — stationer skattade på ett nytt kampanjdatum 2026-03-18 (bindande), stationer fasta på det datumet (kontroll), stationer skattade 2024-01-01 (scenariot för det tidigare missen i dubbel precision); varje datumsigma, konditionstalet och den svagaste riktningen mot en konditionsskalad tröskel som räknas om i testet utifrån oraklets exakta känsligheter; engine_inputs_match_the_committed_fixture: den incheckade jacobianen, vikterna och Helmert-utformningen är det motorn bygger nu; record_engine_accuracy_against_a_factorisation_route: motorns felband och NumPy-Cholesky-diagnostiken fastlåsta) 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 VALIDATED
VM-02b72c4d Datumlösare med kvadratrotsinformation mot utökad precision med 50 siffror 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 linalg_sr, lunar_frame_campaign tests/lunar_frame_campaign_srif_mpmath_oracle.rs (srif_datum_matches_mpmath_extended_precision: fyra scenarier — stationer skattade på ett nytt kampanjdatum 2026-06-09 (bindande), stationer fasta på det datumet (kontroll), samt indata med stationer skattade 2026-03-18 och 2024-01-01; varje datumsigma, konditionstalet och den svagaste riktningen mot en tröskel i kvadratrotsform som räknas om i testet utifrån oraklets exakta delar; engine_inputs_match_the_committed_fixture); linalg_sr::tests (9 biblioteckstester: Dekker-produkten lika med resten av fused multiply-add på 20 000 par, kompenserad summering av en uttömmande summa, R^T R lika med A^T A, sekventiella filteruppdateringar lika med en enda batchuppdatering, det avslutande blocket lika med kvadratroten av Schur-komplementet, den triangulära inversen, Jacobi-SVD, överensstämmelse med spektraldatumet i ett välkonditionerat fall, bitidentiska omkörningar); lunar_frame_campaign::tests::the_default_solver_is_unchanged_and_an_unknown_solver_is_rejected och the_srif_solver_agrees_with_the_spectral_one_where_both_are_accurate_and_says_so 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 VALIDATED
VM-f220938a Förtroendeövervakare för sjöfart: aritmetiken de vilar på (NMEA-avkodning, geodetiska förskjutningar, de kinematiska statistikerna och sensorresidualstatistikerna) 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. receiver_trust (ingest, maritime) tests/maritime_trust_reference.rs (t1_nmea_decoding_matches_pynmea2, t2_east_north_offsets_match_the_wgs84_geodesic, t3_t4_monitor_input_statistics_match_the_oracle) mot tests/fixtures/maritime_trust/reference.json, återskapad av scripts/gen_maritime_trust_ref.py utifrån den syntetiska NMEA som skrivs av examples/gen_maritime_trust_ref_inputs.rs; toleranser förhandsregistrerade i tests/fixtures/maritime_trust/PREREGISTRATION.md 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. VALIDATED
VM-834a5b4f Förtroendepoäng för sjöfart: sammanvägningen av övervakarnas evidens till en poäng på 0-100 och dess tre band 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. receiver_trust (score, monitors, live) tests/maritime_trust_reference.rs::t5_score_matches_the_clean_room_reading_of_the_documented_rule; receiver_trust::score::tests (monoton i varje statistika, att lägga till en monitor höjer aldrig poängen, friska statistikor stannar på 100) 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). MODELLED
VM-51f0c17d Formatkontroll av NMEA 0183-träningsströmmar och avkodade värden 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. nmea_synth (track, sentences, scenarios); cli nmea-scenario tests/nmea_training_reference.rs (jämförelse med pynmea2 som oberoende referens); tests/nmea_training_scenarios.rs::every_sentence_is_checksum_valid_and_the_reader_accepts_it, ::every_sentence_type_is_present_each_epoch, ::deterministic_per_seed_and_sensitive_to_it 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. VALIDATED
VM-c7e45641 Störningskarta: betydelsen av noggrannhetskoder, AIS-värden för ej tillgängligt, tilldelning av rutnätsceller, ruttlängd per cellstatus och maskning av inlandet 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. interference_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) tests/interference_map_reference.rs::adsb_accuracy_and_integrity_codes_agree_with_pymodes (12 NACp-koder, 59 NIC-rader); tests/interference_map_reference.rs::ais_field_rules_agree_with_pyais_decoding (94 ramar); tests/interference_map_reference.rs::grid_cell_assignment_agrees_with_shapely (1770 punkter, fyra cellstorlekar); tests/interference_map_reference.rs::route_exposure_geometry_agrees_with_shapely_and_geographiclib (8 rutter, 420 delar, 11634 km); tests/interference_map_reference.rs::land_masking_agrees_with_shapely_and_pyproj (996 punkter); enhetstester för interference_map 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). VALIDATED
VM-bc70cb57 Område för störkälla: ett möjligt sändarområde utifrån positionsrapporter från flygplan och fartyg 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. interference_map::emitter (estimate, sessions, build_units, profile, GaussianFix::from_tdoa), interference_map::emitter_out (locate), kshana interference-map locate enhetstester för interference_map::emitter (rundtur för projektion, horisontsiffra, syntetiska rundturer framåt och bakåt: den kända sändaren ligger innanför det angivna området ungefär i den angivna andelen, gränsfall, sessionsklustring, profil, integritet och formulering); fall för locate i tests/interference_map_cli.rs Ä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 MODELLED
VM-af2c0f76 Trådformat för förtroendetelemetri: Prometheus-textexponering och OpenTelemetry OTLP/HTTP JSON 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. telemetry (prometheus: Registry, render; otlp: build_payload, Exporter (feature otlp); sample) tests/telemetry_formats_reference.rs (prometheus_client_reads_our_exposition_as_the_registry_implies, the_official_otlp_proto_reads_our_json_as_the_registry_implies, awkward_reason_text_survives_the_parser, the_committed_outputs_are_what_this_crate_produces; schema 1,3: prometheus_client_reads_the_schema_13_exposition_as_the_registry_implies, the_official_otlp_proto_reads_the_schema_13_json_as_the_registry_implies, promtool_accepts_the_schema_13_exposition, the_collector_receives_and_exports_the_schema_13_payload_unchanged); tests/telemetry_cli.rs; telemetry::prometheus::tests (golden exposition) 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). VALIDATED
VM-8dd9b64e SIEM-händelser för förtroendetelemetri: Common Event Format (CEF) över syslog 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. telemetry (syslog: cef, rfc5424, SyslogSink; time) tests/cef_reference.rs (pycef_reads_every_tier_1_event_as_the_sample_implies, the_logstash_cef_codec_reads_every_event_including_escaped_headers_as_the_sample_implies, the_committed_corpus_is_what_this_crate_produces_and_covers_what_was_registered); telemetry::syslog::tests (exakta CEF-strängar, undantagstecken, allvarlighetsgrad, RFC 5424-kuvert); tests/telemetry_cli.rs 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. VALIDATED
VM-3b341a07 SIEM-händelser för förtroendetelemetri: Log Event Extended Format (LEEF) över syslog 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. telemetry (syslog: leef, rfc5424, SyslogSink; time) telemetry::syslog::tests (exakta LEEF-strängar, undantagstecken, allvarlighetsgrad, RFC 5424-hölje, leveranstidsgränser och återanslutning); tests/telemetry_cli.rs 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. MODELLED
VM-a66b5cd1 Integritet hos bevispaket: signatur, hashkedja och verifieringsförfarande 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). evidence (bundle: create_bundle, sign_detached, chain_link, sha256_hex; verify: verify_bundle, verify_detached; tsr; assemble; cli) tests/evidence_crypto_reference.rs (RFC 8032 avsnitt 7,1 vektorer 1, 2, 3 och 1024; FIPS 180-4 SHA-256-exempel; exakt); tests/evidence_pack_reference.rs::kshana_and_the_clean_room_verifier_agree_on_every_case (71 fall); tests/evidence_pack.rs (manipuleringstester) 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. VALIDATED
VM-e86afcaa RFC 3161-tidsstämpeltoken: verifiering av signatur och kedja 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 evidence::tsa (verify_token, pem_certificates); evidence::verify (VerifyOptions::tsa_anchors, Failure::TimestampAuthorityInvalid); evidence::cli (--tsa-ca) tests/evidence_tsa_openssl.rs::every_case_agrees_with_openssl (den förhandsregistrerade jämförelsen); evidence::tsa::tests (civila datum och tider, base64, den offentliga RSA-operationen); evidence::verify::tests::anchors_make_the_authority_checked (en osignerad token misslyckas med ankare; utan dem är rapporten oförändrad) 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 VALIDATED
VM-35257d18 Tröskelvärden för störning hos receiver-trust, kalibrerade på datamängden JammerTest 2024 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 receiver_trust::calibration (run_dataset); receiver_trust::monitors (MonitorConfig::profile, JAMMERTEST_2024_CALIBRATED); realdata::jammertest; examples/jammertest_trust_calibration.rs tests/receiver_trust_jammertest_calibration.rs::the_recorded_calibration_reproduces (ignorerad, datastyrd av KSHANA_JAMMERTEST_DIR: det registrerade urvalet, antalen i den undanhållna delen, tröskelutfallen och utfallet); receiver_trust::calibration::tests (tidsstämplar, parning av fönster och tidszonsförskjutningen, etiketter, skyddsband, uteslutning, urval); receiver_trust::monitors::tests::threshold_profile_is_opt_in 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 MODELLED
VM-47968885 Jammertest-poängsättning: en mottagarlogg poängsatt per schemalagt test (detektionsfördröjning, missade larm, falsklarm, tid till återhämtning) mot den publicerade testplanen 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. jammertest::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 tests/jammertest_plan_roundtrip.rs (datastyrd av KSHANA_JAMMERTEST_PLAN_DIR: antal luckor per testområde i planen för 2025, katalog-id:n, TOML-rundtur); tests/jammertest_score.rs (en syntetisk logg med ett känt fall: detekterad, missad, inte utvärderingsbar, körning med falsklarm, signerat paket med poängkortet); jammertest::plan::tests; tests/jammertest_score_2024.rs (datastyrd av KSHANA_JAMMERTEST_DIR: den registrerade körningen) 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). MODELLED
VM-ae7811e7 Testbänksexport (kshana bench-export): jordfasta och geodetiska kolumner, kolumner för lokal hastighet, kolumner för attityd och NMEA 0183-utdata 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. interop::testbench (write_motion_csv, write_nmea, trajectory_of, export); fusion::pack::truth_trajectory tests/testbench_reference.rs (7 tester: fastlåsta referenser, exportbytes, sämsta fall över varje rad, positionskolumner, lokal hastighet mot sann NED-hastighet, Eulervinklar mot scipy, NMEA mot pynmea2); tests/interop_testbench.rs (skrivarens egna rundturer) 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). VALIDATED
VM-25755faa Compliance-mappning mot offentliga ramverk 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. compliance tests/compliance_report.rs::mapping_is_well_formed; tests/compliance_report.rs::wording_rule_holds_in_mapping_report_and_docs; tests/compliance_report.rs::empty_set_evidences_nothing; tests/compliance_report.rs::statuses_follow_the_runs_present; tests/compliance_references.rs 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. MODELLED
VM-89123cc2 Marina integrationer: Signal K-insticksmodul, OpenCPN-grindström och poängpanel, referensbygge 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. receiver_trust (live: the gate, its TCP listener, PKSHT); outside the crate: integrations/signalk (JavaScript), integrations/opencpn (JavaScript relay, C++ native plugin), deploy/reference-build (systemd units, container) 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-test på inspelad syntetisk utdata); integrations/opencpn/test/relay.test.mjs (5 Node-test); integrations/opencpn/test/e2e-live.mjs (den verkliga binärfilen till en TCP-konsument, körd för hand och i CI); integrations/opencpn/plugin/test/pksht_test.cpp och integrations/opencpn/plugin/test/trust_state_test.cpp (C++-kontroller av PKSHT-parsern och panelens tillstånd); deploy/reference-build/check-units.sh och deploy/reference-build/test-entrypoint.sh 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. MODELLED
VM-35b27a4f BOC(1 1)-spårning: DLL-skalning och upplösning av bump-jump-osäkerhet (tillval) 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. iq::track::boc (BocKind, BocTracking, BumpJump, boc11_dll_scale); iq::track::channel (the bump-jump taps and Channel::bump_jumps) 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); enhetstest för iq::track::boc (b4_unit_grid_misses_are_the_recorded_ones: den förhandsregistrerade tröskeln B4 för enhetstestet behålls som skriven, dess registrerade miss intygas som fynd F1) 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. MODELLED
VM-56e6f4f4 IQ-kanal för jonosfärisk scintillation (Cornell-modellen) mot uppmätt 50 Hz GPS L1-scintillation 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. iq::channel::scint (Scintillation, ScintParams); realdata::scint50 (parse_log, segments, measured_windows, model_windows, compare) tests/iq_scint_malindi_measured.rs (cornell_model_verdict_is_the_recorded_one, det registrerade utfallet intygat som registrerat, fynd F1; finding_model_fades_are_deeper_and_longer_than_measured; posthoc_b3_with_the_model_phase_unwrapped, endast rapporterad; datastyrd, hämtas av scripts/fetch_scint_malindi.sh); enhetstest för realdata::scint50 (model_data_through_the_harness_shows_the_wrapped_phase_finding, fynd F2) 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. MODELLED
VM-f5e2ce4e Alternativ med cellmedelvärdesbildande CFAR vid IQ-acquisition 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. iq::acq (CfarConfig, ca_cfar, ca_cfar_cells, ca_cfar_pfa, ca_cfar_alpha) tests/iq_acq_cfar.rs (c1_closed_form_matches_monte_carlo_of_the_exact_model, c2_false_alarm_rate_on_gaussian_noise, c3_false_alarm_rate_on_two_bit_noise, c5_decisions_do_not_depend_on_the_input_scale; c4_noise_free_two_bit_signal_verdict_is_the_recorded_one, det registrerade utfallet intygat som registrerat, fynd F1, fastlåst av finding_noise_free_sidelobes_exceed_the_cfar_rate); enhetstestet iq::acq ca_cfar_closed_form_reduces_to_the_textbook_case_and_inverts 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. MODELLED
VM-23e52907 Spektrummodell: banden för GLONASS, BeiDou och Galileo E6 (tillval) 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. spectrum (default_band, MORE_BAND_NAMES, GLONASS_CHANNELS) tests/spectrum_more_bands.rs (s1_new_bands_carry_their_icd_values, s2_nulls_and_b1c_parts, s4_cn0_paths_agree_on_the_new_bands; s2_closed_form_densities_verdict_is_the_recorded_one, fynd F1, fastlåst av finding_s2_areas_are_the_closed_form_in_band_fraction; s3_iq_layer_verdict_is_the_recorded_one, fynd F2, fastlåst av finding_s3_per_bin_errors_follow_the_code_line_spectrum; posthoc_s3_band_averaged_shape, endast rapporterad) 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. MODELLED
VM-d8f4e06f Primära avståndskoder för BeiDou B1I mot en oberoende generator 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. iq::signals::beidou (b1i_bits, b1i) tests/iq_signals.rs::beidou_b1i_matches_gnss_sdr_generator_for_all_63_prns 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. VALIDATED
VM-fa382f0c GPS L1C avstånds- och överläggskoder mot de tryckta kontrollkolumnerna i IS-GPS-800J 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. iq::signals::gps (l1c_weil, l1c_ranging_bits, l1c_p_bits, l1c_d_bits, l1co_s1_run, l1c_o_bits); iq::signals::tables tests/iq_signals_gps_l1c.rs (c1_l1cp_and_l1cd_initial_and_final_24_chips_match_is_gps_800j_table_3_2_2, c2_l1co_initial_and_final_11_bits_match_is_gps_800j_table_3_2_3, c3_legendre_sequence_matches_is_gps_800j_table_6_2_1, the_column_check_rejects_relabelled_inverted_and_shifted_codes) 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. VALIDATED
VM-c906216c Primära koder för LunaNet AFS-I och AFS-Q mot de tryckta kontrollkolumnerna i LSIS-AFS V1.0 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. iq::signals::lunanet (afs_i_bits, afs_q_primary_bits, legendre_bits); iq::signals::lunanet_tables; iq::lunanet_afs::check_spec tests/lunanet_afs_codes.rs (b1_afs_i_gold_codes_match_the_printed_first_and_last_24_chips_for_all_210_prns, b2_the_legendre_sequence_of_length_10223_is_the_printed_table_d1, b3_afs_q_primary_codes_match_the_printed_first_and_last_24_chips_for_all_210_prns, b1b_not_met_the_printed_g2_state_is_not_the_state_after_the_printed_delay, b1c_post_hoc_the_printed_g2_state_is_the_state_after_2047_minus_the_delay); tests/iq_signal_matrix.rs (lunanet_afs_i, lunanet_afs_q) 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. VALIDATED
VM-e9a107df Tertiära koder och meddelandelager för LunaNet AFS (SB1 BCH, CRC-24Q, interfolierare) mot LSIS-AFS V1.0 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). iq::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) tests/lunanet_afs_codes.rs (b4_legendre_1499_matches_and_tertiary_codes_match_except_one_printed_column, the_spec_check_reports_every_bar_and_pins_the_b4_miss); iq::lunanet_afs::tests (sb1_round_trips_every_field_and_corrects_flipped_symbols, generated_streams_pass_and_damage_is_found); tests/lunanet_afs_cli.rs 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 MODELLED
VM-7fc9b51d Standardpaket: scenarier poängsatta mot trösklar angivna före körningen 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. standards_pack; compliance (standards-pack facts in compliance-report) tests/standards_packs.rs (pinned_outcomes: statusen för varje test, inklusive missarna L4-T1 och de fyra IMO-noggrannhetstesten); standards_pack::tests 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 MODELLED
VM-1a79c093 Bevispaket för laboratorieringlopp (scenario, testförhållanden, mottagarlogg, poäng) 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. evidence::roundtrip, evidence::assemble, interop::testbench (write_conditions_json), iq::campaign::conditions tests/round_trip_pack.rs (pack_links_scenario_conditions_log_and_score_and_verifies, conditions_that_disagree_with_the_scoring_events_are_refused, a_stated_log_hash_that_does_not_match_is_refused, published_schema_names_every_field_the_engine_writes) 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 MODELLED
VM-77d4bf93 IQ-spårningsmotor mot GNSS-SDR 0.0.19 på oberoende inspelningar 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. iq::track (Channel, LoopCore, design); iq::cli::track tests/iq_track_gnss_sdr_oracle.rs (calibration_passes_for_both_receivers, registered_bars_give_the_recorded_verdict, recorded_numbers_are_pinned), på tal härledda av tests/fixtures/iq_track_gnss_sdr_oracle/make_fixture.py 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. MODELLED
VM-46dd95e7 CRPA-antennförstärkningar i jamming-typen mot en oberoende omräkning i numpy 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. jamming (CrpaCfg, crpa_weights, run_jamming); crpa (null_steering_weights, mvdr_weights, covariance) 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), mot xval/crpa-jamming/expected.json från xval/crpa-jamming/oracle.py 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. MODELLED
VM-40a50c34 Terrängskuggning av jammern i jamming-typen mot en oberoende omräkning i numpy på en verklig SRTM-ruta 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. jamming_terrain (TerrainCfg, jammer_terrain, knife_edge_loss_db); jamming (run_jamming_sky) tests/jamming_terrain.rs (b1_terrain_units_only_with_the_section, b2_every_placement_matches_the_independent_numpy_recomputation, b3_the_loss_never_rises_as_the_jammer_rises, b4_the_loss_reaches_every_js_and_nothing_else, b5_the_knife_edge_function_matches_the_reference_expression), mot xval/jamming-terrain/expected.json från xval/jamming-terrain/oracle.py 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. MODELLED
VM-e6a6348d Hysteres vid acquisition och frontändens kvantiserare i jamming-typen mot oberoende omräkningar 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). jamming_rx (AcquisitionCfg, AcqState, FrontEndCfg, front_end); jamming (run_jamming_sky); iq::frontend::quant (optimum_step_sigma) tests/jamming_acq_agc.rs (h1_g1_units_only_with_their_section, h2_no_hysteresis_is_no_hysteresis, h2s_no_hysteresis_is_no_hysteresis_on_the_supplementary_runs, h3_flags_match_the_independent_recomputation, h3s_flags_match_the_independent_recomputation_on_the_supplementary_runs, h4_monotone_in_the_acquisition_threshold, h4s_monotone_in_the_acquisition_threshold_on_the_supplementary_runs, g2_quantiser_loss_matches_the_independent_monte_carlo, g3_agc_reading_matches_the_iq_layer_agc_loop), mot xval/jamming-acq-agc/expected_hysteresis.json, expected_hysteresis_s1.json och expected_quantiser.json 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. MODELLED
VM-bdfec2e4 Begränsad FLL-inlåsning under standardutformningens golv för FLL-till-PLL-överlämning (tillval) 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. iq::track (LoopConfig, FllGate, design); iq::track::channel (the FLL gate) tests/iq_fll_handover_floor.rs (registered_bars_give_the_recorded_verdict, d1_the_key_is_part_of_the_hash_only_when_set, d4_the_capped_design_pulls_in_a_100_hz_handoff_error), på tests/fixtures/fll_handover_floor/results.csv 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. MODELLED
VM-ad0fc95e RTKLIB .pos-lösningsläsare för receiver-trust 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). receiver_trust::machines::rtklib (read_rtklib_pos); receiver_trust::LogFormat::RtklibPos receiver_trust::machines::rtklib::tests (lat/lon-epoker, vecka/TOW och ECEF, dms avvisad, fientlig indata); tests/receiver_trust_machines.rs::rtklib_pos_runs_as_a_receiver_log; integrations/gnss_lib_py/test_bridge.py 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 MODELLED
VM-df5ac582 NovAtel OEM7 ASCII- och binärloggar (BESTPOS, RANGE, RXSTATUS) för receiver-trust 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). receiver_trust::machines::novatel (read_novatel, novatel_crc32); receiver_trust::LogFormat::Novatel receiver_trust::machines::novatel::tests (fastlåst CRC, ASCII- och binärposter, felaktig CRC hoppad över, fientlig indata); tests/receiver_trust_machines.rs::novatel_jammer_flag_reaches_the_receiver_self_report 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 MODELLED
VM-50b52977 Läsare för bärvåg-till-brus i RTCM 3 MSM4 och MSM7 för receiver-trust 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. receiver_trust::machines::rtcm3 (read_rtcm3, crc24q); receiver_trust::LogFormat::Rtcm3 receiver_trust::machines::rtcm3::tests (CRC-24Q:s katalogkontrollvärde, MSM4/MSM7 C/N0 och sammanslagning av epoker, GLONASS-tid och mappning av SBAS-id, felaktig CRC och andra meddelanden) 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 MODELLED
VM-f1f9f73e GNSS-SDR-övervakaradapter för receiver-trust 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). receiver_trust::machines::gnss_sdr (read_gnss_sdr_monitor); receiver_trust::LogFormat::GnssSdr receiver_trust::machines::gnss_sdr::tests; integrations/gnss-sdr/example.jsonl 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 MODELLED
VM-e757b2ba IMU-logginläsning, gyroindata för färdriktning och Allan-anpassning av parametrar för hybridsensorer 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). receiver_trust::machines::imu, imu_fit; surface::imu_fit; scenario [log.imu] receiver_trust::machines::imu::tests; receiver_trust::machines::imu_fit::tests (kända koefficienter för vitt brus återvunna inom 10 %, avslag, TOML tolkas som AccelCfg); tests/receiver_trust_machines.rs (kursöverensstämmelse och kursavvikelse, inbäddad bärare, imu_fit) 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 MODELLED
VM-64d822df Home Assistant MQTT-discovery och tillståndsexportör för förtroendetelemetri 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). telemetry::mqtt (discovery, state_json, connect_packet, publish_packet, MqttSink); surface::TelemetryFormat::Mqtt telemetry::mqtt::tests (paketbyte, loopback-broker, död broker räknad); tests/receiver_trust_machines.rs::trust_telemetry_mqtt_text_has_discovery_then_state 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 MODELLED
VM-c9180fdd ROS 2-paket för receiver-trust och gnss_lib_py-brygga 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). integrations/ros2/kshana_trust (bridge.py, trust_node.py); integrations/gnss_lib_py/kshana_gnss_lib_py.py tests/receiver_trust_machines.rs (rtklib_pos_runs_as_a_receiver_log: formatet som bryggan till gnss_lib_py skriver, körd genom receiver-trust); Python-testen för bryggorna är integrations/ros2/kshana_trust/test/test_bridge.py (brygga med en låtsasmotor), integrations/ros2/kshana_trust/test/test_engine_integration.py (det verkliga hjulet poängsätter en stabil positionsbestämning som nominell och ett hopp på 1,1 km som ej betrott) och integrations/gnss_lib_py/test_bridge.py (verkliga gnss_lib_py 1.1.0 och hjulet), körda med pytest, inte av cargo 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 MODELLED

401 rader: 176 externt validerade, 221 modellerade, 4 ägda av partner.