Valideringsstatus
Om tolerancer. "Valideret" betyder nedenfor, at en kalibreringstest hævder, at den simulerede statistik stemmer med referencerelationen inden for en håndhævet grænse, i øjeblikket 20–25 % relativ fejl (middelværdi over seeds) for relationerne for Allan/støjbudget. Den mediane observerede overensstemmelse er ofte meget strammere (nogle få procent), men den garanterede grænse er grænsen, ikke medianen. Hvor et tal som "~2 %" optræder, er det en typisk iagttagelse, ikke den håndhævede tolerance. Se Påstande mod virkelighed.
Oprykningsreglen#
En række i den maskinkontrollerede verifikationsmatrix (src/verification.rs) er kun VALIDATED, når en uafhængig reference, der er uafhængig af Kshana, stemmer med implementeringen inden for en tolerance, der er angivet, før sammenligningen køres, i en test, der kører i gaten. Dette afsnit er det eneste sted, hvor reglen står skrevet; matrixen, prosaen for hver række og udgivelsesnoterne retter sig efter det.
De accepterede typer af uafhængig reference#
| Type | Hvad der tæller | Eksempler, der allerede findes i matrixen |
|---|---|---|
| Målt | Rigtige måledata for den størrelse, rækken påstår noget om: en observation af den fysiske verden, ikke et modeloutput. | De tilbageholdte to tredjedele af en rigtig optagelse fra et cæsiumur; arkiverede normalpunkter fra månens laserafstandsmåling; BIPM's (International Bureau of Weights and Measures) serie Circular T UTC(k); SRTM-terrænfliserne (Shuttle Radar Topography Mission). |
| Bibliotek | Et uafhængigt bibliotek eller værktøj fra tredjepart, der beregner en entydigt defineret størrelse på de samme inputs, hvor biblioteket selv implementerer domæneberegningen. Overensstemmelse mellem to biblioteker er kun en ægte kontrol, fordi størrelsen har ét rigtigt svar. | allantools, Orekit, ANISE, RTKLIB, gnss_lib_py, lamberthub, pymcdm, scikit-learn, SciPys statistiske fordelinger. |
| Reference | Offentliggjorte referencevektorer, tabeller eller verifikationseksempler: tal, som en standard, en myndighed eller en referencetekst trykker, så implementeringer kan kontrolleres mod dem. | Vektorer fra SOFA/ERFA (Standards of Fundamental Astronomy), verifikationsvektorerne for SGP4 fra AIAA (American Institute of Aeronautics and Astronautics), valideringseksemplerne fra ITU-R (International Telecommunication Union, Radiocommunication Sector), det gennemarbejdede ARAIM-eksempel fra Working Group C, JPL (Jet Propulsion Laboratory) Horizons. |
To yderligere standarder afgør grænsetilfældene. Begge er vedtaget til udgivelse 0,30.
- P1, en offentliggjort gennemarbejdet værdi. En offentliggjort gennemarbejdet værdi, beregnet ud fra den samme lukkede form, som rækken implementerer, tæller som en offentliggjort referencevektor, når publikationen er uafhængig af Kshana, og sammenligningen fastlåser en angivet tolerance. Værdien skal være trykt som et tal i publikationen (en værdi aflæst fra en graf tæller kun, hvis aflæsningsusikkerheden ligger inden for den angivne tolerance), og testen skal lade Kshana beregne den ud fra publikationens inputs; at sammenligne en konstant med det dokument, den er kopieret fra, er en transskriptionskontrol, ikke P1.
- P2, et uafhængigt numerisk bibliotek. Et uafhængigt numerisk bibliotek som numpy eller LAPACK (Linear Algebra PACKage), der genberegner en entydigt defineret størrelse i lineær algebra på angivne inputs, tæller som et uafhængigt bibliotek. Biblioteket skal udføre dekompositionen, inversen, løsningen eller mindste-kvadraters-trinnet med sin egen algoritme, på inputs, der er committet sammen med fixturen; den validerede påstand er så den lineære algebra på disse inputs, ikke de fysiske størrelser i et repræsentativt scenarie. Et script, der genberegner en skalar lukket form med numpy-aritmetik, er en anden implementering af vores egen, ikke P2.
Betingelser, der gælder for alle typer: den uafhængige reference er ikke skrevet, kørt eller udgivet af dette projekt (dette repositoriums egen artikelserie er derfor ikke uafhængig af det); tolerancen står i testen og blev fastsat før den første sammenligning; en datastyret test, der springes over, når dens offentlige data mangler, siger det, når den springes over.
Hvad der ikke tæller#
- Vores egen anden implementering: en anden kodesti i denne crate (
ReferenceImpl) eller et script i dette repositorium, der genberegner den samme lukkede form. - Overensstemmelse med vores eget tidligere output: gyldne værdier, regressionsfastlåsninger, snapshots eller en tabel fra dette projekts egne artikler.
- En transskription af konstanter fra en kilde: kontrol af en koefficient, en forudindstilling, et tal fra et datablad eller et parameterark mod det dokument, den er kopieret fra.
- Et designvalg: en allokering, vægtning, tærskel, alarmgrænse eller et repræsentativt scenarie. Der findes ingen ekstern reference for et valg.
- En intern identitet: et numerisk integral mod sin egen analytiske form, en rundtur, en invertering, en egenskabs- eller monotonitetstest.
- En integrationskørsel mod en rigtig vært (
IntegrationRun): at indlæse et plugin i en rigtig Signal K-server eller OpenCPN eller føre en rigtig gates output til en TCP-forbruger og kontrollere, at værten accepterer inputtet og viser den forventede tilstand. Det viser, at rørføringen virker. Værten er ikke en uafhængig reference for nogen værdi, integrationen bærer, så der er intet eksternt at sammenligne med, og en sådan række (rækken for de marine integrationer) er MODELLED, ikke VALIDATED.IntegrationRuner en egen type uafhængig reference, kun tilladt på MODELLED-rækker:integration_run_only_on_modelled_rowsisrc/verification.rsfejler, hvis en VALIDATED-række har den, ogvalidated_rows_require_an_external_oraclekræver allerede, at hver VALIDATED-række erExternalDataset. - Plausibilitet på rigtige inputs: rigtige data brugt kun som input, med påstande om størrelsesorden i stedet for en sammenligning med en ekstern værdi.
- En tolerance valgt efter at have set sammenligningen.
Sådan håndhæves reglen#
Hver VALIDATED-række angiver i validated_oracle_basis() i src/verification.rs, hvilken type den bygger på (Measured, Library, Reference, P1 eller P2), den uafhængige kilde (citeret fra rækkens egen tekst om den uafhængige reference) og den ene test, der bærer sammenligningen. Enhedstestene ved siden af tabellen fejler, når en VALIDATED-række ikke er angivet eller er angivet to gange, når en angivelse nævner en række, der ikke er VALIDATED, når den angivne kilde ikke er den, som rækkens tekst om den uafhængige reference nævner, eller er Kshana selv, når den angivne test ikke er en, som rækken henviser til, eller når en P2-række ikke nævner noget uafhængigt numerisk bibliotek. tests/verification_rows_declare_an_oracle_basis.rs kræver derefter, at den angivne test findes på disken som en rigtig #[test], der ikke er ignoreret. Hvad maskinen ikke kan kontrollere, er, om den nævnte test sammenligner med den angivne kilde; det forbliver en menneskelig læsning. Antal pr. type er ikke skrevet her: tabellen er kilden.
Eksisterende VALIDATED-rækker gennemgået på ny efter reglen#
Reglen blev anvendt på de eksisterende rækker såvel som på fremtidige oprykninger.
- P1-rækker nævnt af valideringsstudiet for 0,30, hver især understøttet: Link-budget i én retning (designkontroltabellen for JPL Pub 82-76 Galileo X-bånd, genopbygget ud fra sine enkeltposter til 4.6e-3 dB frirumstab); Båndbegrænsede lukkede former for ethvert afstandssignal (90,3 procent af hovedlobens effekt og den offentliggjorte koherente early-late-jitter); Maksimal Doppler for en navigationssatellit i lav jordbane (de offentliggjorte tal for Xona Pulsar X1 og Iridium); Maksimal Doppler, en statisk bruger ser fra en LEO- eller MEO-bane (tabel 1 i Pulsar-artiklen, 20 værdier); Doppler, en jordmodtager skal kunne håndtere fra en navigationssatellit i LEO (de samme offentliggjorte tal fra en fløjet bane). Hver publikation er uafhængig af Kshana, trykker sine tal, og testen angiver sin tolerance.
- Yderligere rækker, der bygger på P1, fundet ved gennemgangen, hver især understøttet: Afvejning i udformning af afstandskode (de offentliggjorte −23,9 dB for Gold-krydskorrelation); Månens koordinattid (Ashby og Patla 2024, hvis kontrol af månens hastighed mod DE440 er en biblioteks-kontrol); Lukkede former for effektspektraltætheden af L-bånd-signaler (Q-værdier fra Kaplan og Hegarty); Ionosfæreforsinkelse af første orden pr. bånd (gruppeforsinkelsesforholdet i IS-GPS-200); Globalt gennemsnitlige vægte for afstandsfejl i signalet i rummet (tabellen fra Montenbruck, Steigenberger og Hauschild 2018).
- P2-rækker nævnt af studiet, hver især understøttet: Fisher-information og Cramér–Rao-observerbarhed (numpy
eigh/inv); Identificerbarhed af månens datum; Koblet gauge for månens referencesystem og tidsskala; Autonom pipeline for fejlobserverbarhed i frit netværk (numpy/SciPy SVD, singulærværdidekomposition). Hver genberegner en entydigt defineret størrelse i lineær algebra på committede inputs med en anden algoritme end Kshanas Jacobi-egenløser. - Yderligere rækker, der bygger på P2, fundet ved gennemgangen, hver især understøttet: Udledning af prioriteter ved MCDA (multi-criteria decision analysis) (egenvektoren i AHP, analytic hierarchy process, fra SciPy/LAPACK; den Random Index-tabel, den også gengiver, er en transskription og tælles ikke med); Varians ved urets holdover-fremskrivning (SciPy
expmaf Van Loans udvidede matrix); Realisering af månens referencesystem (en Umeyama-løsning med numpy SVD); CRPA-beamforming (controlled reception pattern antenna) (komplekst LAPACK-solve); Kerne for ARAIM-beskyttelsesniveau ved månen (RTKLIBs LU-invers med SciPy-kvantiler); Konsistens mellem udbydere af månens referencesystem/dynamik (en numpy SVD-mindste-kvadraters-tilpasning af tre offentliggjorte efemerider). - Markeret ved første gennemgang, bygget på ny i runde 2 af kørslen for 0,30. Tre rækker blev markeret som ikke understøttet af den skrevne regel. Hver hviler nu på en sammenligning, der blev præregistreret, før dens fixture blev hentet, så ingen række er markeret; en enhedstest ved siden af
validated_oracle_basis()fastlåser den (nu tomme) liste.- Integritet (RAIM/ARAIM/SBAS). De anførte tests plejede kun at hævde plausibilitet på rigtig IGS-geometri (International GNSS Service). Rækken hviler nu på tre biblioteksreferencer: ARAIM's solution separation med flere hypoteser i Airborne Design Document v4.2 mod Stanford MAAST for ARAIM 2 (270 rigtige tilfælde, værste VPL-forskel 2.2e-3 m mod 0,05 m); detektion og udelukkelse ved snapshot-RAIM mod RTKLIB
raim_fde(2016 af 2016 beslutninger identiske) med beskyttelsesniveauet for hældning; og SBAS DO-229E L1-beskyttelsesniveauer mod Stanford MAAST på rigtige WAAS-udsendelser (2868 par inden for 1.6e-5 m). Rækken siger ligeud, at funktionerne med ensartet sigmaraim::araim_raimograim::araim_dual_raimikke er ADD-konforme, og at sammenligningen af SBAS med dobbelt frekvens på L5 er et fund. - Planeternes positioner i hele solsystemet ud fra JPL's Keplerelementer fra Standish. Den efterfølgende tærskel på det dobbelte af den nominelle fejl er erstattet af en præregistreret tærskel: RMS højst lig tallet i Explanatory Supplement tabel 8.10.1 pr. planet og komponent, mod JPL Horizons DE441, med Jordens opdeling og ICRF-rotationen dækket.
- Lystid mellem legemer i solsystemet. Løseren for lystid sammenlignes nu med lystider fra Horizons inden for 1e-6 s på DE441-positioner, en præregistreret tærskel, der ikke arver positionstærsklen.
- Integritet (RAIM/ARAIM/SBAS). De anførte tests plejede kun at hævde plausibilitet på rigtig IGS-geometri (International GNSS Service). Rækken hviler nu på tre biblioteksreferencer: ARAIM's solution separation med flere hypoteser i Airborne Design Document v4.2 mod Stanford MAAST for ARAIM 2 (270 rigtige tilfælde, værste VPL-forskel 2.2e-3 m mod 0,05 m); detektion og udelukkelse ved snapshot-RAIM mod RTKLIB
- MODELLED-rækker, som de to politikker gør oprykkelige (kun gennem kørslen række for række for 0,30, aldrig ved denne tekst): under P1 grænsen for geolokalisering af emittere med TDOA/FDOA (time and frequency difference of arrival), koblingen mellem relativistisk urrate og referencesystem, synkroniseringsmaskerne fra ITU-T (Telecommunication Standardization Sector) (kun for maskeværdier, som anbefalingerne trykker som tal; de transskriberede knækpunkter, kontrolleret mod sig selv, tæller ikke) og grænsen for positionering i 5G-netværk uden for jorden (kun hvis et offentliggjort gennemarbejdet tal findes); under P2 integritetsblindhed ved fælles mode, det skalære MHSS-beskyttelsesniveau (multiple-hypothesis solution separation) for tid og GLS-hvidgørelsen (generalised least squares). De to benchmark-rækker for tidsintegritet (klassifikatoren for Stanford-integritetsdiagrammet og scoreren for integritetsdækning) er regelbaseret klassifikation, ikke lineær algebra, så P2 når dem ikke; de kræver et uafhængigt værktøj, og det eneste fundne (gLAB) har en ikke-kommerciel licens.
- Sammenhæng med tidligere afvisninger. Vallado-kontrollen i rækken for opsendelsesvinduet ville nu kvalificere sig under P1, hvis dens test beregner det trykte gennemarbejdede eksempel; planen for 0,30 rykker den op gennem Orekit i stedet. Tabellen for krydsningstidspunktet for månens tid pr. urklasse forbliver MODELLED: den tabel, den gengiver, stammer fra dette projekts egen artikel, som ikke er uafhængig.
| Støjled | Status | Evidens |
|---|---|---|
| Paritet for Allan-estimatorer (ADEV/MDEV/TDEV/OHDEV (ADEV: Allan-deviation; MDEV: modificeret Allan-deviation; OHDEV: overlappende Hadamard-deviation)) | validated |
To kontroller mod primærkilden NIST (National Institute of Standards and Technology) SP (Special Publication) 1065 (Riley, Handbook of Frequency Stability Analysis, 2008), begge til en relativ tolerance på 1e-4. (1) tests/allan_reference.rs: estimatorerne for overlappende ADEV, modificeret ADEV, tidsdeviation og overlappende Hadamard gengiver deviationerne for det kanoniske datasæt NBS14 med 10 punkter (SP 1065 tabel 29/30, s. 107) ved tau = 1, 2 — overensstemmelsen er faktisk ~1e-6 (fx overlappende ADEV (OADEV) ved τ = 2: 85,952868 mod 85,95287). (2) tests/allan_nist_sp1065_1000point.rs: de samme fire estimatorer gengiver datasættet med 1000 punkter i SP 1065 §12,4 (tabel 31, s. 108) ved middelingsfaktorer 1 / 10 / 100, hvor datasættet regenereres i kode ud fra LCG'en i SP 1065 (lign. 73) — hermetisk, ingen fixture. De samme data og tallene i tabel 31 er regressionsmålet i aewallin/allantools (tests/nbs14), her gengivet uden kode fra tredjepart. Det fastlåser estimatorernes matematik mod referencen, adskilt fra rækkerne for støj-kalibrering nedenfor. |
| Paritet for Allan-estimatorer på rigtig målt hardware | validated |
tests/cs5071a_reference.rs: estimatorerne for overlappende Allan og overlappende Hadamard gengiver referencedeviationerne fra Stable32 for en rigtig cæsium-primærstandard 5071A målt mod en brintmaser (556.990 fasesampler ved τ₀ = 1 s; 1 PPS (puls pr. sekund) ind i en tæller 53230A, feb 2014; indsamlet af A. Wallin, distribueret med allantools). Kontrolleret over hele dekadestigen for τ (16 middelingsfaktorer, τ = 1 s … 4×10⁴ s): velsamplede faktorer mod en relativ grænse på 1e-3 (den observerede overensstemmelse er faktisk ≤ 3e-5, fx OADEV(1 s) 3.317111e-10 mod Stable32 3.3171e-10), mens sparsomme faktorer ved lang τ skal lande inden for Stable32's trykte konfidensbånd på 1‑σ. Det supplerer den syntetiske NBS14-paritet ovenfor med en kontrol mod et målt ur. Den rå fasefil er data fra tredjepart uden licens til videredistribution, så den er git-ignoreret; scripts/fetch_cs5071a.sh gengiver den, og testen udskriver en besked om, at den springes over (CI (continuous integration) forbliver grøn), når den mangler. Kun de offentlige referencetal fra Stable32 er committet (tests/fixtures/cs5071a/); der bruges ingen kode fra tredjepart. |
| Paritet for Allan-estimatorer på den kanoniske Stable32 PHASE.DAT | validated |
tests/phasedat_reference.rs: estimatorerne for overlappende Allan, modificeret Allan og tidsdeviation gengiver referencedeviationerne fra Stable32 for PHASE.DAT — serien med 1001 punkter, der distribueres med Stable32, og som uafhængige værktøjer (fx allantools) bruger som deres standardmål for regression — over hele stigen af middelingsfaktorer (139 faktorer) mod en relativ grænse på 1e-3 (observeret ≤ 5e-5). En anden, uafhængig rigtig referenceserie ved siden af kontrollen med målt cæsium ovenfor. PHASE.DAT leveres med det kommercielle værktøj Stable32, så den rå serie er git-ignoreret; scripts/fetch_phasedat.sh gengiver den, og testen springes grønt over (CI forbliver grøn), når den mangler. Kun de offentlige referencetal fra Stable32 er committet (tests/fixtures/phasedat/); der bruges ingen kode fra tredjepart. |
| Stabilitet af optisk ur på en rigtig målt kurve | validated |
tests/optical_clock_adev_reference.rs: inversionen af urets støjparametre (quantum_trade::qparams_from_adev_curve) gengiver den offentliggjorte σ_y(τ) for et ⁸⁸Sr-ur med optisk gitter fra Norcia et al., Science 366:93 (2019) (Zenodo 10.5281/zenodo.3382347, CC-BY-4.0 (Creative Commons Attribution 4,0), kurve medleveret i tests/fixtures/optical_clock_adev/): den genfundne koefficient for hvid frekvensstøj √q_wf ≈ 4.33e-16 stemmer med artiklens korttidsstabilitet på ≈4.7e-16/√τ (~10 % RMS (root mean square) over kurven), og tilpasningen finder et målt gulv forskelligt fra nul (q_rw > 0). Det fastlåser inversionen fra målt ADEV til støjparametre mod et rigtigt optisk ur; fordelen ved holdover til tærsklen, der bygger på den, forbliver MODELLED. |
| ROC (receiver operating characteristic) AUC (area under the curve) for anomalidetektion på rigtig telemetri fra ESA (European Space Agency) OPS-SAT | validated (gengiver mærkater) |
tests/opssat_ad_reference.rs: på datasættet OPSSAT-AD (Ruszczak et al. 2025, Zenodo 10.5281/zenodo.12588359, CC BY 4,0) — rigtige housekeeping-segmenter fra OPS-SAT med anomalimærkater fra virkeligheden — gengiver Kshanas Mann–Whitney-ROC-AUC (impairment_eval::auc) scikit-learn roc_auc_score på < 1e-9 på det tilbageholdte testsplit (529 segmenter, 113 anomalier), for to deterministiske scorer: en gennemsigtig detektor med ét træk (segmentets antal toppe, AUC ≈ 0,851) og en score med 8 træk og diagonal Mahalanobis, tilpasset de normale træningssegmenter (AUC ≈ 0,556); eval_stats::bootstrap_auc_ci omslutter punktestimatet med en nedre grænse, der ligger over tilfældighed. Det validerer AUC-beregningen på rigtige ESA-data og en gennemsigtig detektors adskillelse af mærkater — det gengiver ikke OPSSAT-AD-artiklens bedste offentliggjorte mål (en superviseret FCNN (fully connected neural network), F1 ≈ 0,95), som kræver deres trænede model. CC-BY-data medleveret (tests/fixtures/opssat/, hermetisk); den uafhængige reference regenereres af generate_opssat_oracle.py. |
| Syntese af funktionaler af tyngdefeltet (tyngdestøttet / GNSS-frit (GNSS: global navigation satellite system) navigationskort) | validated |
tests/icgem_gravity_reference.rs: kernen for sfærisk-harmoniske tyngdefunktionaler (gravity_sh::gravity_magnitude / gravity_disturbance_mgal) — “kortlæseren”, en tyngdestøttet navigator matcher mod — er valideret mod normaltyngdestandarden GRS80 (Geodetic Reference System 1980) (Moritz 1980, vedtaget af IAG (IAG: International Association of Geodesy)). Opbygning af GRS80's normalfelt ud fra dets offentliggjorte lige zonale harmoniske J₂…J₈ og syntese af tyngde (gravitation + centrifugal) på ellipsoiden gengiver den lukkede Somigliana-normaltyngde og de offentliggjorte værdier ved ækvator/pol γ_e = 9,7803267715 / γ_p = 9,8321863685 m/s² på 3.5e-12 relativt over alle breddegrader (grænse 1e-9). Den samme kerne indlæser den toneangivende rigtige ICGEM-jordmodel (International Centre for Global Earth Models) EGM2008 (Earth Gravitational Model 2008) (NGA (National Geospatial-Intelligence Agency), offentligt tilgængelig via ICGEM; læseren from_gfc afprøves også på GRAIL-månefeltet (Gravity Recovery and Interior Laboratory) i tests/agency_lro.rs) og frembringer et fysisk afgrænset kort over tyngdeforstyrrelser (RMS ≈ 26 mGal, maks. ≈ 89 mGal ved d/o 70). Validerer syntesekodens korrekthed; nøjagtigheden af positionsbestemmelsen med tyngdestøtte forbliver MODELLED (ingen offentlig bane med gravimeter på en platform og reference). |
| Støjtypespecifik edf (konfidensintervaller) | validated |
src/allan.rs: χ²-konfidensbåndet for hvert punkt i overlappende ADEV bruger de støjtypespecifikke effektive frihedsgrader (de lukkede former i NIST SP 1065 tabel 5 for hvid og flicker-fasemodulation, hvid og flicker-frekvensmodulation og random walk-frekvensmodulation (WPM/FPM/WFM/FFM/RWFM) — det enkle sæt i Stable32), idet optagelsens potenslovstype identificeres ud fra hældningen af dens MDEV i log-log. Tre uafhængige kontroller: (a) de fem formler gengiver håndberegnede værdier ved N=64,m=4 på 1e-12; (b) et Monte Carlo-ensemble med hvid FM (FM: frekvensmodulation) (4.000 optagelser) måler estimatorens faktiske chi-i-anden-edf = 2·middel²/Var(σ²) og stemmer med formlen inden for 20 % (og slår tydeligt det konservative antal uden overlap); (c) tests/allan_nist_sp1065_1000point.rs gengiver den trykte SP 1065 tabel 32 (s. 109) edf = 146,177 for datasættet med 1000 punkter ved m=10 (hvid FM) på 5e-3 og tabellens konfidensgrænser på 95 % (8.223942e-2 / 1.035201e-1) på <0,2 % (den lille rest er Wilson-Hilferty-approksimationen af χ² mod NIST's eksakte χ²). Den eksporterede ADEV-kurve bærer den identificerede støjtype, edf og båndet på 95 % for hver τ. |
| Hvid FM (kort sigt) | validated |
tests/calibration.rs: simuleret overlappende ADEV gengiver offentliggjort sigma_y(1 s) — typisk inden for nogle få procent, håndhævet grænse 20 % (CSAC og målet for optisk gitter) — og kurven for hvid FM sigma_y(tau)=sigma_y(1s)/sqrt(tau) over tau = 1, 10, 100 s inden for en grænse på 25 % (stemmer med databladet for CSAC (chip-scale atomic clock) 3e-10 / 1e-10 / 3e-11). |
| Random walk-FM (lang sigt) | validated |
tests/calibration.rs: simuleret ADEV stemmer med sigma_y^2(tau)=q_rw*tau/3 (Riley NIST SP 1065) på ~20 % (middelværdi over seeds). |
| Ældning / lineær drift | modeled + kalibreret væk |
Deterministisk; holdover-estimatoren fjerner offset og ældning med en kvadratisk prædiktor, så resten er den stokastiske grænse. Testet i src/estimator.rs / src/models.rs. |
| Kalman-estimator + integritetsgrænse | validated |
src/kalman.rs: et filter med to tilstande (fase, frekvens), hvis eksakte van Loan-processtøj stemmer med sandhedsmodellen; fremskrivning gengiver den analytiske holdover-varians q_wf*T + q_rw*T^3/3 på 1e-9. Kovariansopdateringen er i Josephs stabiliserede form P⁺ = (I−KH)P(I−KH)ᵀ + KRKᵀ, som forbliver positivt semidefinit (kontrolleret med Cholesky) gennem 500 predict/update-trin ved et ekstremt forhold R=1e-26 / Q≈1e-30, og stemmer med den naive form på 1e-9, hvor den er veltilpasset. Kørselslaget melder Integrity som den andel af udfaldsprøver, der ligger inden for 3-sigma-beskyttelsesgrænsen (src/run.rs). |
| Filterets selvkonsistens (NIS (normalised innovation squared) / NEES (normalised estimation error squared)) | validated (model) |
src/filter_health.rs: en Monte Carlo-vurdering af konsistens (Bar-Shalom §5,4). Det matchede filters samlede NIS → 1 og NEES → 2 lander inden for deres χ²-bånd på 95 % (NIS-båndet bruger det samlede antal hvide innovationer; NEES-båndet bruger antallet af uafhængige kørsler, da estimationsfejl er korreleret i tid). En test med sweep af Q/R-uoverensstemmelse kontrollerer, at monitoren kun melder consistent=true ved enhedstuning og consistent=false ved fejltuning på ×0.1/×0.5/×2/×10, hvor NIS skalerer som ≈1/q_factor som udledt. Vises som filter_health i urets resultat-JSON (JavaScript Object Notation) og på et kort på legepladsen. χ²-båndene bruger Wilson–Hilferty-kvantilen (detection::chi2_inv_cdf, kontrolleret mod tabel). |
| Model for tovejs tidsoverførsel | validated (model) |
src/timetransfer.rs: den reciprokke fælles forsinkelse udlignes nøjagtigt i estimatet (m_AB - m_BA)/2 (udledt i hånden, eksakt), og to målinger i én retning middeler til 1/sqrt(2) (middelværdi over seeds); den ikke-reciprokke differentielle forsinkelse er en farvet proces med hvid FM + random walk-FM, hvis Allan-deviation følger sigma_y^2(tau) = q_rw*tau/3 (middelværdi over seeds, ~20 %, via linkets egen step()). Parametrene (pr. link sigma_j, q_rw) er repræsentative tal for TWSTFT/optisk (TWSTFT: two-way satellite time and frequency transfer), ikke tilpasset en bestemt terminal. |
| Sikkerhed (score for spoofing-detektion) | validated (model) |
src/security.rs: monitorens 1-sigma-gulv sqrt(r/m + q_wf*tau + q_rw*tau^3/3) og det deraf følgende mindst detekterbare offset på k sigma og scoren [0,1] er udledt i hånden og enhedstestet. Modellen (innovation / urstøttet detektion i RAIM-stil (RAIM: receiver autonomous integrity monitoring)) er sund; parametrene (overvågningsvindue tau, detektionsmultiplikator k, målestøj r) er repræsentative, ikke tilpasset en bestemt modtager. |
| Detektion af spoofing-angreb | validated (model) |
src/spoof.rs: en stigende falsk tids-spoofing meldes, når dens offset overskrider urets detektionsgrænse; detektionstidspunktet stemmer med det udledte start + bound/rate inden for ét gittertrin, og et ur, hvis grænse overskrider specifikationen, lader spoofingen nå tærsklen uopdaget. Samme forbehold for representative-parameters som for sikkerhedsscoren. |
| Flicker-FM (gulv) | modeled (slået fra som standard) |
Syntetiseret som en sum af logaritmisk fordelte Ornstein-Uhlenbeck-processer (OU), kalibreret til et konfigurerbart fladt ADEV-gulv; src/models.rs validerer, at gulvet er fladt over middelingstiden og ligger på det konfigurerede niveau (middelværdi over seeds). Slås til pr. ur via flicker_floor. De anførte referencescenarier lader det være slået fra: CSAC er domineret af hvid FM over hele sit dataområde (1-1000 s), og det systematiske gulv for det optiske ur (~5e-17) er repræsenteret ved dets nøjagtighedstal. |
| Statistik for Monte Carlo-ensemble | validated (aggregering) |
src/ensemble.rs: percentiler efter nærmeste rang og middelværdi over runs reproducerbare realiseringer; en enkelt kørsel klapper spredningen sammen, båndet pr. tidstrin er ordnet p05 <= p50 <= p95, og genkørsler er bit-identiske. Det er statistisk aggregering over den allerede validerede enkeltkørsel, ikke en ny fysisk model. |
| Ur | sigma_y(1 s) | Kilde |
|---|---|---|
| csac-sa45s (CSAC) | 3.0e-10 | Datablad for Microchip SA65 / SA.45s |
| optical-sr-lattice (Sr-gitter) | 1.0e-15 | optisk gitterur med strontium, mål rettet mod rummet, arXiv:1503,08457 |
Status: hvid FM og random walk-FM valideret; ældning modelleret og kalibreret væk; flicker-FM modelleret og valideret (slået fra som standard i de anførte scenarier).
Modenhed: tallene for det optiske ur er målet rettet mod rummet på hardware på jorden -- intet optisk strontiumur har fløjet. Sr-ure i laboratorier når 4.8e-17 (Oelker et al. 2019, Nature Photonics). Tallene for CSAC stammer fra en udrullet kommerciel komponent.
Relationer: Riley, NIST SP 1065, lign. 67 -- hvid FM sigma_y^2(tau)=h0/(2 tau); random walk-FM sigma_y^2(tau)=(2 pi^2/3) h_-2 tau, ækvivalent med q_rw*tau/3 for en Wiener-proces for frekvens med diffusion q_rw.
Pakke 2 — inertial dødregning (kvanteinertimåleenhed)#
| Led | Status | Evidens |
|---|---|---|
| Konstant/resterende bias -> position | validated |
positionsfejl = familien 0,5bT^2 (Groves AESS (Aerospace and Electronic Systems Society) Tutorial); håndudledt diskret test i src/inertial/mod.rs. |
| Velocity random walk (hvid acceleration) | validated |
src/inertial/mod.rs: simuleret standardafvigelse (SD) for positionsfejl stemmer med sigma_x(T)=sqrt(S_a*T^3/3) (Groves lign. 54) på ~12 % observeret (middelværdi over seeds; håndhævet grænse 20 %). |
| Fysik i et accelerometer med kolde atomer og interferometri (CAI) (ud fra første principper) | validated (model) |
src/inertial/quantum_imu.rs: et Mach-Zehnder-interferometer med kolde atomer og tre pulser. Efterkontrolleret i hånden mod lærebogens geometri — Rb-87 k_eff = 4pi/lambda ~ 1.611e7 rad/m; Phi = k_eff*a*T^2 ~ 1.580e4 rad ved 1 g, T = 10 ms; projektionsstøj sigma_Phi = 1/(C*sqrt(N)) = 2e-3 rad ved C = 0.5, N = 1e6; pr. skud sigma_a ~ 1.24e-6 m/s^2; skaleringslovene 1/T^2 og 1/sqrt(N); eksponentielt henfald af kontrast. q_va() udleder den hvide PSD (power spectral density) for acceleration, som den klassiske AccelModel forbruger. Ærligt omfang: kun gulvet for kvanteprojektionsstøj (~0,09 ug/sqrtHz her) — langt under rigtige, vibrationsbegrænsede enheder (1-50 ug/sqrtHz); vibrationstensoren, Coriolis og systematikken fra lysforskydning er endnu ikke modelleret (se QUANTUM.md). |
| Gyrobias + angular random walk (ARW) -> hældning -> kobling til tyngde | modeled (slået fra som standard) |
En resterende gyrobias og ARW driver en holdningsfejl; hældningen kobler tyngden (g*theta) ind i en horisontal fejl i den specifikke kraft. src/inertial/mod.rs validerer den rene bias' kubiske positionsvækst eksakt og ARW's vækst i holdning som en Wiener-proces (middelværdi over seeds). Slås til pr. sensor via gyro_bias og q_arw; slået fra i de anførte scenarier med kun accelerometer. |
| Biasustabilitet (1/f flicker-gulv) | modeled (slået fra som standard) |
src/inertial/mod.rs: en 1/f-flickerproces (den samme OU-syntese som er valideret for uret), hvis flade Allan-deviationsgulv ligger ved koefficienten for biasustabilitet; nul er en no-op, et gulv forskelligt fra nul ændrer banen, begge reproducerbare. Slås til pr. sensor via bias_instability. |
| Random walk i acceleration (rate random walk) | validated |
src/inertial/mod.rs: biasen er en Wiener-proces med Var(bias_rw(T)) = q_aa*T, kontrolleret som middelværdi over seeds på ~20 %. Slås til pr. sensor via q_aa. |
| Krydsvalidering mod NaveGo (støjkoefficienter for IMU (inertimåleenhed)) | validated |
tests/navego_imu_crossval.rs: en ekstern krydskontrol mod NaveGo (R. Gonzalez, open source-værktøjskasse til INS/GNSS (INS: inertialt navigationssystem), github.com/rodralez/NaveGo). Gengiver den syntetiske rundtur i NaveGos navego_example_allan.m på dens offentliggjorte referenceprofil for Microstrain 3DM-GX3-35: når vores estimator for overlappende ADEV (valideret mod NBS14/Stable32) fodres med hvid sensorstøj ved NaveGos 1-σ-niveauer, genfinder den koefficienterne for velocity random walk og angle random walk (VRW, ARW) (ADEV(1 s) = σ·√dt) på < 5% (faktisk ~0,4 %), med den hvide støjgren ved hældningen −1/2. Bekræfter, at vores Allan-pipeline og NaveGos definitioner af VRW/ARW stemmer. Den optagede STIM300-log .mat på 40 MB indlæses ikke (låst af binært format). |
| Skalafaktor, finere krydsakseled | not modeled i denne pakke med 1-DOF (én frihedsgrad) |
Den ældre pakke med én akse har ingen fejl i skalafaktor eller krydskobling. Biblioteket til strapdown med tre akser og pakken gnss-ins modellerer skalafaktor, skævhed i montering, g-følsomhed, kvantisering og hastighedsrampe (src/inertial/imu_errors.rs; se tabellen med påstande nedenfor). |
| Sensor | biasstabilitet | rod af støjens PSD | Kilde |
|---|---|---|---|
| cold-atom-quat (kvante) | 5.88e-7 m/s^2 (60 ng, 24 t) | 22 ug/sqrtHz = 2.16e-4 (m/s^2)/sqrtHz | Templier et al. 2022, Science Advances (arXiv:2209,13209) |
| nav-grade-quartz (klassisk) | 1.57e-3 m/s^2 (~160 ug) | ~20 ug/sqrtHz = 1.96e-4 (m/s^2)/sqrtHz | Honeywell QA-2000 / Groves AESS Tutorial |
Ærlig ramme: fordelen ved kolde atomer er langtidsstabiliteten af bias (~2600x lavere), som dominerer et langt GNSS-udfald via 0,5bT^2. Korttidsstøjen er sammenlignelig (kvante ~22 mod klassisk ~20 ug/sqrtHz) — kvantesensoren vinder maratonløbet, ikke sprinten. Modenhed: accelerometre med kolde atomer er på laboratorie-/tidligt stadie (JRC122785), kvarts af navigationsklasse er udrullet.
Pakke 3 — tidsoverførsel (optisk mod radiofrekvens (RF), optisk link mellem satellitter)#
| Led | Status | Evidens |
|---|---|---|
| Hvid tidsjitter -> synkroniseringspræcision | validated |
src/timetransfer.rs: simuleret RMS for synkronisering gengiver linkets jitter sigma_j; stikprøvemiddelværdien middeler som sigma/sqrt(N) på <20 % (middelværdi over seeds). |
| Tid -> afstandsmåling i én retning | validated |
afstand = c * dt, c=299792458 m/s; 1 ps = 0,299792458 mm (eksakt, håndudledt test). |
| Flicker-/TDEV-gulv, rest af tovejs reciprocitet | modelled |
src/twstft_budget.rs (kind time-transfer-budget): flicker-fasestøj (Kasdin–Walter, fladt TDEV), en døgnlig ikke-reciprocitet og en konstant rest af reciprocitet på tovejsserien; pakken timetransfer med hvid jitter er uændret. |
| Forbindelse | jitter for enkelt sample | type | kilde |
|---|---|---|---|
| optical-isl | 1 ps (1e-12 s) | mål, der er troværdigt i kredsløb | optisk link mellem satellitter, mål for synkronisering i pikosekunder; O-TWTFT i laboratorium (TWTFT: two-way time and frequency transfer) ~1 fs (Giorgetta 2013 / Deschenes 2016) |
| twstft-rf | 0,5 ns (5e-10 s) | målt i én session | BIPM/PTB/NIST (BIPM: International Bureau of Weights and Measures; PTB: Physikalisch-Technische Bundesanstalt, Tysklands nationale metrologiinstitut) TWSTFT |
Ærlig ramme: tallet for optisk er et mål for synkronisering på pikosekundniveau i kredsløb (ikke fløjet). Gulvet for optisk i terrestrisk laboratorium er ~1 fs (langt bedre); et velkonstrueret mikrobølgelink (mikrobølgelinket MWL i ACES (Atomic Clock Ensemble in Space), ~0,3 ps) kan konkurrere med optisk, så baseline “RF = 0,5 ns” er specifikt almindelig TWSTFT. Omregning til afstand er i én retning (afstand = cdt); tovejs/rundtur halverer den (afstand = cdt/2).
Pakke 4 — hybrid fusion (slutsten)#
Sammensætter Pakke 1 (ur), Pakke 2 (inertial) og Pakke 3 (tidsoverførsel) til én PNT-suite (positionering, navigation og tidssynkronisering). Suiten skal holde BÅDE tid (< specifikation for tid) og position (< specifikation for position) inden for grænserne; pnt_holdover_s er tiden, indtil en af dem brydes. Valgfri tidsoverførsel via optisk link mellem satellitter (ISL) synkroniserer uret igen under udfaldet (kun støtte til tid — positionen synkroniseres ikke igen, da tidsoverførsel giver tid, ikke position).
| Aspekt | Status | Evidens |
|---|---|---|
| Samlet PNT-scoring (tid OG position) | validated |
src/hybrid.rs håndudledt score_hybrid-test (pnt_holdover = den første af tid/position, der brydes). |
| Integritet + sikkerhed for hybrid-pakken | validated |
src/hybrid.rs: en Kalman-estimator for tid, disciplineret mod sandheden (nominelt) og genforankret ved hver optisk resync; Integrity er indeslutning i beskyttelsesgrænsen (grænsen indeholder linkets jittergulv), Security er scoren for spoofing-detektion. Testet for begge suiter, også tilfældet med linkstøtte. |
| Fælles fusionsestimator | validated (model) |
src/fusion/mod.rs: ét fælles Kalman-filter ([fase, frekvens] ⊕ [pos, hast]) er navigatoren, disciplineret af GNSS (lærer offsets ud fra en kovarians forskellig fra nul i starten) og støttet af tidsoverførsel; den fælles kovarians giver en fælles integritet, der er testet pålidelig (≥0,9) for begge suiter med støjkonsistente sensorer. Pakken observerer position og tid hver for sig, hvortil det optimale filter er blokdiagonalt; estimation af konstant bias med udvidet tilstand og dynamisk krydsstøtte er fremtidigt arbejde. |
| Koblet filter for ur+position (kovarians på tværs af blokke) | validated (model) |
src/fusion/coupled.rs CoupledPntFilter: ét stablet Kalman-filter [pos, vel, phase, freq] (opdateringer i Josephs form), hvis pseudoafstands-måling ρ = g·pos + c·phase + noise kobler positions- og urblokkene. Tests: en fælles pseudoafstand får P[pos,phase] til at afvige fra nul (afkoblede filtre holder den nøjagtigt på 0); to forskellige geometrier løser i fællesskab indsprøjtede positions- og uroffsets, som en enkelt afstand ikke kan adskille; en kun-ur-positionsbestemmelse skærper positionen gennem krydskovariansen (det udbytte, koblingen giver, og som afkoblede filtre ikke kan); og en Monte Carlo-NEES er χ²(4)-konsistent (Bar-Shalom §5,4, kørselsbaseret bånd). 1-DOF (pakkens dimensionalitet); endnu ikke koblet ind i den kørbare pakke, og udvidelsen til 3-D med 8 tilstande er fremtidigt arbejde. |
| Sammensætning af validerede delmodeller | arver | led for ur/inertial/tidsoverførsel er valideret i deres egne pakker. |
Løst koblet GNSS/INS (pakken gnss-ins) |
validated (model) |
src/fusion/{gnss_ins_ekf,closed_loop,pack}.rs: en EKF med fejltilstand og 15 tilstande (δp, δv, ψ, bias i accel/gyro; Groves §14) driver strapdown-navigatoren med tre akser med tilbagekobling. Tests: en indsprøjtet positionsfejl nulstilles under støtte med perfekt sandhed; den støttede løsning forbliver afgrænset til meter, mens en frit kørende INS divergerer forbi 100 m; og den fusionerede positions-RMS over et udfald på 60 s slår uunderstøttet dødregning med ensembletestens grænse (~4× målt før 0.27.3; marginen er større efter rettelsen nedenfor). Koblingen med gyrobias kontrolleres mod strapdown selv: en kendt resterende gyrobias skal give den holdningsfejl, filteret forudsiger (closed_loop::tests::gyro_bias_coupling_predicts_the_strapdown_attitude_error), og en bred prior skal lære en gyrobias af flykontrollerklasse, mens den forbliver afgrænset; begge fejler med fortegnet før 0.27.3. Revideret i 0.27.3: koblingen havde forkert fortegn, så estimater af gyrobias skubbede den forkerte vej, og kun en stram prior holdt pakken stabil; de offentliggjorte tal for udfald ændrede sig (CHANGELOG, Fixed). Ærlig grænse: ved løs kobling kan bias i accel og hældning kun svagt adskilles, så kalibrering pr. bias påstås ikke. |
| Tæt koblet GNSS/INS (pseudoafstand) | validated (model) |
src/fusion/gnss_ins_ekf.rs update_tightly_coupled + closed_loop.rs fuse_tightly_coupled: innovationen dannes i afstandsdomænet (Jacobi-matrix for sigtelinjen på δp). Tests: fire satellitter nulstiller en indsprøjtet horisontal fejl på 8 m/−5 m til < 0,1 m; to satellitter (ingen bestemmelse af position, hastighed og tid (PVT) mulig) skærer stadig den horisontale fejl med > 5×; en enkelt satellit lige overhead observerer kun komponenten langs sigtelinjen (den vertikale) og lader den horisontale være urørt; fejlbehæftede inputs afvises. Kun pseudoafstand — bærebølgefase og en eksplicit tilstand for modtagerens ur er på køreplanen. |
| Troskab i krydsstøtte mellem sensorer (fuld Kalman-/faktorgraf-fusion) | not modeled i pakken hybrid |
Hybrid-pakken er en sammensætning på systemniveau + tidsstøtte, ikke en optimal estimator. Filtre findes andre steder: den løst og tæt koblede EKF (extended Kalman filter) i pakken gnss-ins (rækkerne ovenfor) og UKF'en med 17 tilstande (unscented Kalman filter) i kind hybrid-ukf. Ingen faktorgraf-smoother er modelleret. |
Resultat: den helt kvantebaserede suite holder fuld PNT gennem et udfald på 1,8 t; den helt klassiske suite er begrænset af positionen (IMU af navigationsklasse bryder først). Tidsoverførsel via optisk ISL holder selv det klassiske UR låst og isolerer inertialsensoren som den klassiske suites svage led — kerneargumentet for kvanteinertial + optisk tidssynkronisering sammen.
Geometri — GNSS-tilgængelighed ud fra baner#
| Aspekt | Status | Evidens |
|---|---|---|
| Cirkulær propagering med to legemer | validated |
src/orbit.rs: periode T=2 pi sqrt(r^3/mu) (mu = 3.986004418e14), positionen vender tilbage efter én periode, planaritet ved ækvator/pol — håndudledte tests. |
| Excentrisk (Kepler-) propagering | validated |
src/orbit.rs: Keplers ligning M = E - e sin E løst med Newton (rest < 1e-12); radier i perigæum/apogæum a(1∓e); det cirkulære tilfælde stemmer med stien i lukket form på 1e-9. |
| J2 sekulær drift af knude/apsider | validated |
src/orbit.rs: Omega_dot = -1.5 n J2 (Re/p)^2 cos i, argp_dot = 0.75 n J2 (Re/p)^2 (5cos^2 i - 1) (Vallado); knuden regredierer (prograd) / rykker frem (retrograd) / er stationær (polær), og apsiderne fryser ved den kritiske inklination 63,4 grader — håndudledte test af fortegn/nul. Kun to legemer + sekulær, ikke oskulerende. |
| Sigtelinjesynlighed (jordens afskærmning + elevationsmaske) | validated |
Antipodal satellit afskærmet, radialt udadgående satellit ved 90 grader elevation, tangentiel satellit på horisonten — eksakte håndudledte tests. |
| Synlighed -> GNSS-tilstand -> tidslinje | validated |
>=4 synlige = nominel, 1-3 forringet, 0 nægtet; Walker-delta-generator; integrationstest driver en kørsel med ur-holdover ud fra den afledte tidslinje. |
| Optimering af konstellationsudformning + geometri for dækningsstriber (streets of coverage) | validated (model) |
src/walker.rs: optimize_walker_design gennemsøger gitteret {planes × sats × inclination} og returnerer den celle, der bedst opfylder et DesignObjective (færrest satellitter for et dækningsmål / størst dækning / laveste værste PDOP (PDOP: position dilution of precision)) — en test hævder, at valget er lig med en uafhængig brute-force-scanning af det samme sweep, og et gennemarbejdet eksempel bekræfter, at en GPS-udformning (Global Positioning System) Walker 24/6/1 dækker mindst lige så godt som en udtyndet med 18 satellitter. De analytiske lukkede former for streets-of-coverage (coverage_half_angle_rad λ = arccos(Re/r·cos ε) − ε; street_half_width_rad cos c = cos λ / cos(π/s), Rider/Beste) er efterkontrolleret i hånden mod lærebogens geometri (GPS ved en maske på 5°: λ ≈ 71,16°, halv bredde af striben med 4 satellitter ≈ 62,83°) og opdager hullet ved for få satellitter (λ < π/s ⇒ None). Den fulde løser fra Rider for færrest satellitter til global dækning (antallet af baneplaner, som er følsomt over for sømmen) er endnu ikke implementeret. |
| Præcisionsfortynding (GDOP/PDOP/HDOP/VDOP/TDOP (GDOP: geometric dilution of precision; HDOP: horizontal dilution of precision; VDOP: vertical dilution of precision; TDOP: time dilution of precision)) -> positionsnøjagtighed | validated |
src/orbit.rs: Q=(HᵀH)⁻¹ ud fra designmatricen for sigtelinjen. Ekstern uafhængig reference (tests/dop_reference.rs): de fem DOP-faktorer gengiver dem, som gnss_lib_py 1.0.4 beregner (Stanford NAV Lab — et uafhængigt, fagfællebedømt GNSS-bibliotek, brugt her, som ERFA (Essential Routines for Fundamental Astronomy) bruges til referencesystemerne), over 8 geometrier fra veltilpassede til næsten singulære (DOP i hundredvis), på 1e-6 relativt; proveniens + regenerering i tests/fixtures/dop/. Som en ekstra kontrol i lukket form gengiver en geometri med regulær tetraeder de analytiske DOP'er (PDOP 1,5, TDOP 0,5, GDOP √2,5, HDOP √1,5, VDOP √0,75) på 1e-9. Positions-sigma = PDOP × brugerens ækvivalente afstandsfejl. |
| Positionsfejl = σ_UERE × DOP for motorens egen mindste-kvadraters-positionsbestemmelse | modelled |
src/dop_error_mc.rs, tests/uere_dop_monte_carlo.rs: en Monte Carlo med seed (N = 20.000 epoker pr. geometri, σ = 1,5 m, ChaCha8-seed 36 + i) af pvt::solve_spp med enhedsvægte, løst fra den sande position, på de 8 geometrier i tests/fixtures/dop/dop_reference.csv (dem hvis DOP er matchet med gnss_lib_py), mod σ²·Q, hvor Q er kovariansfaktoren for selve kernen orbit::dop (orbit::dop_cofactor, den samme aritmetik). Tolerancer præregistreret (commit e50c88d2, før den første kørsel, efter designnotatet for geometri for 0,36, afsnit 5,2), hver et antal standardfejl: varianser for øst, nord, op og ur inden for 5 %; RMS for H/V/P inden for 2,5 %; korrelation mellem øst og nord inden for 0,035; middelværdier inden for 5 standardfejl; andelen i den horisontale ellipse på 95 % inden for 0,95 ± 0,0077. Første kørsel: alle 104 kontroller består (værste varians 3,2 %, RMS 1,6 %, korrelation 0,012, middelværdi 2,2 standardfejl, ellipse 0,0039). Negative kontroller fejler som krævet: fordoblet PDOP fejler på hver geometri; fejl, der vokser som 1/sin(elevation) mod den uvægtede Q, fejler en variankontrol på hver geometri, hvis laveste satellit ligger under 20°. Hvordan det hænger sammen med rækken ovenfor: den række validerer disse geometriers DOP mod gnss_lib_py; denne tilføjer trinnet fra disse faktorer til meter gennem motorens løser. En første, separat kontrol er bevaret ved siden af (src/dop_error_ci.rs, tests/position_error_dop_ci.rs, kørt før præregistreringen og meldt som sådan): fire håndvalgte himle (åben, klynget, kanyon, halv himmel; σ 1 m) med chi-i-anden-konfidensintervaller på 1e-6 samlet over 20 kontroller; forhold 0,987 til 1,009, og dens egne negative kontroller (en DOP-fejl på 10 %, fejl som 1/sin(elevation)) fejler som krævet. Hvorfor MODELLED: intet eksternt datasæt; det viser ikke, at en rigtig modtagers fejl følger modellen, og σ_UERE er et input. |
| Tilgængelighed med flere konstellationer | validated |
src/orbit.rs: yderligere [[constellations]] flettes til ét satellitsæt for synlighed/DOP; en test af det samlede antal bekræfter foreningsmængden. |
| Udsendt ionosfære (Klobuchar, IS-GPS-200 (IS: Interface Specification)) → skrå forsinkelse på L1 | validated |
src/gnss_sim.rs: klobuchar_delay_m, den udsendte enkeltfrekvensmodel med otte koefficienter. Ekstern uafhængig reference (tests/klobuchar_reference.rs): den skrå forsinkelse på L1 gengiver RTKLIB'ens (et open source-bibliotek til real-time kinematic-positionering) ionmodel (tomojitakasu/RTKLIB, src/rtkcmn.c — den faktiske åbne GNSS-reference, kompileret fra kildekode og kørt uafhængigt) over 10 tilfælde med variation i elevation, azimut, lokal tid og to koefficientsæt (kshanas standard + RTKLIBs), på < 1e-4 m. Læseren af IONEX-TEC-kort (IONosphere map EXchange format; TEC: total electron content) for GIM-filer (global ionosphere map) findes nu (src/ionex.rs, parse_ionex med bilineær interpolation i rum og tid og en skrå afbildning, enhedstestet i selve cratet); en krydskontrol af den interpolation mod et rigtigt GIM-produkt fra CODE (Center for Orbit Determination in Europe) er stadig en opfølgning. Selve den udsendte model er eksternt valideret. |
| Detektionskerne for RAIM/ARAIM (ARAIM: advanced receiver autonomous integrity monitoring) (χ² / ikke-central χ² / normal) → tærskler og multiplikatorer | validated |
src/raim.rs: detektionstærsklen for snapshot / solution-separation / ARAIM (chi2_quantile), den ikke-centralitet pbias=√λ for oversete detektioner (noncentral_chi2_cdf) og multiplikatorerne K_fa/K_md/K_V (normal_quantile) beregnes alle ud fra en afhængighedsfri regulariseret ufuldstændig gammafunktion. Ekstern uafhængig reference (tests/raim_reference.rs): 171 tilfælde gengiver SciPy 1.17.0 (scipy.stats.chi2/.ncx2/.norm + optimize.brentq — en uafhængig implementering fra Cephes/Boost, en anden algoritme) over driftsområderne for P_fa / P_md / redundans, på ≤ 1e-6 relativt. Geometrien, der omgiver kernen (hældning/kovarians fra (GᵀG)⁻¹), er DOP-kernen, der er valideret mod gnss_lib_py. Omfang: denne række fastlåser den statistiske kerne. Værdien af beskyttelsesniveauet i ARAIM MHSS-allokeringen (multiple-hypothesis solution separation) er fastlåst separat mod det offentliggjorte gennemarbejdede eksempel fra WG-C (Working Group C) ARAIM Technical Subgroup (tests/araim_reference_vectors.rs, VPL (vertical protection level) 18,2926 m mod 18,3 m, HPL (horizontal protection level) 13,4063 m mod 13,45 m, inden for referencens egen tolerance på 0,05 m; se noten om standarder nedenfor og ARAIM_REFERENCE.md). |
| Beskyttelsesniveau for SBAS (satellite-based augmentation system) (DO-229E bilag J) → horisontalt / vertikalt beskyttelsesniveau (HPL / VPL) | validated |
src/sbas.rs: sbas_protection_level, den vægtede D=(GᵀWG)⁻¹ med mindste kvadrater (LS: least squares) → hovedakse i den horisontale fejlellipse + vertikal σ, skaleret med K-faktorerne i DO-229E. Ekstern uafhængig reference (tests/sbas_reference.rs): kshanas HPL gengiver RTKLIB SBAS-PL-forken (zsiki/rtklib_ws waasprotlevels(), implementeringen af “DO-229D Appendix J” af Siki & Takács 2017), kørt med rnx2rtkp -ws på rigtige EGNOS-data (European Geostationary Navigation Overlay Service) (udsendte meddelelser for GEO (geostationær bane) PRN120 + rigtig BUTE/Budapest-RINEX (Receiver Independent Exchange Format), 2017-02-19), over 6 epoker på < 2e-3 m. σ pr. satellit er referencens eget fulde SBAS-budget (UDRE (user differential range error) + GIVE (grid ionospheric vertical error) iono + tropo + airborne). ESA gLAB v6.0.0 (core/filter.c) blev kompileret og bekræftet til at bruge den identiske konvention. Note om K_V: begge uafhængige referencer afrunder MOPS (minimum operational performance standards) K_V → 5,33; kshana bruger den eksakte Φ⁻¹(1−5e-8)=5.3267 (~0,06 % mindre VPL), så den vertikale er valideret som den K-faktorfrie d_U (= referencens VPL / 5,33). HPL matches direkte (K_H = 6,0 på begge sider). |
| Rigtig konstellationsgeometri ud fra TLE'er (linje 2 / Kepler) | validated (parsing) |
src/tle.rs: parser de gennemsnitlige Keplerelementer på linje 2 (halv storakse ud fra den gennemsnitlige bevægelse); et kendt elementsæt for ISS (International Space Station) går rundt og giver de rigtige elementer og periode. For en blok med kun linje 2 er propagering motorens to legemer (+ valgfri J2) af de gennemsnitlige elementer — sundt for et snapshot fra en fælles epoke, med drift i forhold til SGP4 (Simplified General Perturbations 4) over tid. |
| Propagering med SGP4 / SDP4 (Simplified Deep-space Perturbations 4) (fulde TLE'er) | validated |
src/sgp4.rs: fuld SGP4 nær Jorden + SDP4 i det dybe rum (sekulære/periodiske led fra Måne og Sol + geopotentialresonans på 12 t / 24 t). Valideret i tests/sgp4_verification.rs mod de officielle vektorer i AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 (“Revisiting Spacetrack Report #3”) — alle 666 referencetilstande (nær Jorden, dybt rum, resonante, tilfælde med fejlkode) stemmer med en værste positionsfejl på ≈ 4,1 mm. Et fuldt sæt med to linjer (linje 1 + linje 2) propageres med SGP4; kun linje 2 forbliver Kepler; de to kan blandes. Referencesystemet er TEME (true equator, mean equinox), brugt konsekvent for brugeren og satellitterne (ingen reduktion fra TEME→ECEF (ECEF: Earth-centred, Earth-fixed) — tilstrækkeligt til geometri for tilgængelighed/DOP). |
| Nutation IAU (International Astronomical Union) 2000A / 2000B + reduktion fra TEME→GCRS (GCRS: Geocentric Celestial Reference System) | validated |
src/nutation.rs: den fulde IAU 2000A-række (678 luni-solare + 687 planetariske led, nutation_iau2000a) og trunkeringen 2000B med 77 led (nutation_iau2000b) er hver især valideret bit for bit mod de offentliggjorte referencevektorer fra SOFA/ERFA (SOFA: Standards of Fundamental Astronomy) ved JD_TT 2453736,5 — eraNut00a giver Δψ = −0.9630909107115518e-5, Δε = 0.4063239174001679e-4; eraNut00b giver Δψ = −0.9632552291148363e-5, Δε = 0.4063197106621160e-4 — begge på 1e-13 rad. Tabellen for 2000A er maskingenereret ud fra ERFA-kilden nut00a af tools/gen_nut00a.py (gengiver den committede nutation_iau2000a_data.rs bit for bit). Nutationsmatricen (iauNumat), ækvinoktiets ligning og den fulde kæde TEME→TOD→MOD→GCRS (TOD: true of date; MOD: mean of date) (teme_to_gcrs, Vallado AIAA-2006-6980) er testet for egenskaberne ægte rotation/rundtur/præcession-plus-nutation, nutationsmatricen mod ERFA numat element for element på 1e-14, og hele kæden TEME→GCRS mod Vallados offentliggjorte eksempel TEME→GCRF (AIAA 2006-6753, 2004-04-06) på 0,11 m (tests/frame_reference_vectors.rs); indtil den kontrol fra ende til anden blev tilføjet, bar nutationsmatricen Δψ med forkert fortegn, en drejning på 2·Δψ (omkring 25″), som egenskabstestene ikke kunne se (se CHANGELOG, Unreleased, Fixed); 2000A mod 2000B stemmer på < 1 mas som krævet. Kæden er baseret på ækvinoktium/GMST (GMST: Greenwich mean sidereal time); reduktionen med CIO (X,Y,s) uden ækvinoktium og dens uafhængige numeriske krydskontrol mod ANISE/SPICE (ANISE: Attitude, Navigation, Instrument, Spacecraft, Ephemeris — et rent Rust-værktøj til planetgeometri; SPICE: Spacecraft, Planet, Instrument, C-matrix, Events) (≤ 3,6 m ved GNSS-bane, godt inden for målet på < 10 m) findes i rækken for CIO nedenfor. |
| IGRF-14 (IGRF: International Geomagnetic Reference Field) model for Jordens geomagnetiske hovedfelt | validated |
src/igrf.rs: IAGA's Schmidt-normaliserede sfærisk-harmoniske felt (grad/orden 13, 2025,0 + sekulær variation; koefficienter maskingenereret ud fra den officielle igrf14coeffs.txt af tools/gen_igrf.py, gengiver igrf_data.rs bit for bit). Valideret på fem uafhængige fronter: (1) eksakte stikprøver af koefficienter mod IAGA-filen (g₁⁰=−29350,0, g₁¹=−1410,3, h₁¹=4545,5 nT); (2) syntesen af grad 1 gengiver det eksakte felt fra en hældende dipol i lukket form (B_r,B_θ,B_φ) på 1e-6; (3) det fulde analytiske felt af grad 13 er lig med −∇V af det skalare potentiale (finite differences, på 1e-4) — hvilket afprøver Legendre-afledede og leddet 1/sinθ fra ende til anden; (4) dipolaksen gengiver den kendte geomagnetiske nordpol (~80,7°N, −72,7°E) og dipolens styrke (~29,7 µT), og det globale felt ligger i det fysiske bånd på 22–67 µT med det rigtige fortegn for inklination på hver halvkugle; og (5) ekstern uafhængig reference — den fulde syntese gengiver værdierne fra den officielle webtjeneste for IGRF-14 fra British Geological Survey ved 2025,0 (geodætisk, WGS-84-højde (WGS: World Geodetic System)) på < 2 nT for X/Y/Z/F og < 0.02° for D/I i fire punkter, herunder 400 km højde (synthesis_matches_the_official_bgs_igrf14_values_at_2025). |
| Reduktion fra GCRS↔ITRS (ITRS: International Terrestrial Reference System) baseret på CIO, IAU 2006/2000A | validated |
src/cio.rs: kæden fra himmelsystem til jordsystem uden ækvinoktium. CIP-koordinaterne (Celestial Intermediate Pole) (X, Y) og CIO-lokatorserien s med 66 led er valideret bit for bit mod den offentliggjorte SOFA/ERFA-vektor eraXys06a ved JD_TT 2453736,5 — X=0.5791308482835292617e-3 (1e-14), Y=0.4020580099454020310e-4 (1e-15), s=-0.1220032294164579896e-7 (1e-18); matricen GCRS→CIRS (CIRS: Celestial Intermediate Reference System) mod eraC2ixys (alle ni elementer på 1e-12); jordens rotationsvinkel (ERA) mod eraEra00(2400000.5, 54388.0) = 0,4022837240028158102 (1e-12). Tabellen s er maskingenereret ud fra ERFA-referencen s06.c af tools/gen_s06.py (gengiver cio_s06_data.rs bit for bit). Den fulde gcrs_to_itrs_matrix (CIO eraC2tcio = polbevægelse · ERA · GCRS→CIRS) er testet for ægte rotation + rundtur og vist konsistent med den ældre reduktion af TEME efter ækvinoktium/GMST-1982 inden for 1 m ved en radius på 7.000 km (konventionerne adskiller sig med omkring 5 cm dér). Uafhængig krydskontrol fra tredjepart (xval/anise-frames/): den samme gcrs_to_itrs_matrix sammenlignes med ANISE (den rene Rust-genimplementering af NAIF/SPICE (NAIF: Navigation and Ancillary Information Facility)), der roterer GCRF→ITRF93 (GCRF: Geocentric Celestial Reference Frame; ITRF93: International Terrestrial Reference Frame 1993) fra JPL's (Jet Propulsion Laboratory) earth_latest_high_prec.bpc, med identiske parametre for jordens orientering fra IERS (International Earth Rotation and Reference Systems Service) finals2000A givet til begge sider, over otte kvartalsvise epoker 2020–2023. De to uafhængige realiseringer af referencesystemet stemmer inden for en maksimal relativ rotation på 0,028″ — ≤ 0,86 m på jorden, ≤ 0,93 m i LEO (lav jordbane), ≤ 3,6 m ved GNSS-bane (middelvinkel 0,023″). Det er krydskontrollen af referencesystemer på “< 10 m” fra ROADMAP, leveret; resten er den forventede forskel i model/datum mellem ITRF93 og IERS-2010-CIO, ikke en defekt (det bit-for-bit-ankerpunkt forbliver vektorerne fra SOFA/ERFA ovenfor). ANISE er en crate under MPL-2.0 (MPL: Mozilla Public License) / edition 2024, så kontrollen ligger i en selvstændig undercrate uden for workspacet, som aldrig rører den udgivne afhængighedsgraf for kshana eller nogen standardgate i CI. |
| Rundtur ved eksport til SP3 (Standard Product 3, det præcise baneformat) (konstellation → SP3-c → parse igen) | validated |
tests/sp3_export_roundtrip.rs: det rigtige Celestrak-udtræk gps-ops (30 GPS-satellitter) propageres med SGP4, eksporteres til SP3-c (Sp3File::from_propagators → to_sp3_string), parses igen (parse_sp3), og de genfundne ECEF-positioner sammenlignes med SGP4-sandheden ved hver epoke over 24 t — værste rest < 0,5 m (skriverens serialisering i millimeter; milepælens tolerance på 10 m i TLE-klassen (TLE: two-line element set) er opfyldt med stor margin). Stien --export-sp3 i CLI (kommandolinjegrænseflade) er også dækket: det medfølgende bane-scenarie eksporterer en SP3 med 30 satellitter, der kan parses igen, og et scenarie uden bane afvises. |
| Rigtig GPS-konstellationsgeometri ud fra TLE'er (SGP4 → ECEF) | validated |
tests/igs_real_data.rs: et ægte Celestrak-udtræk gps-ops (2021-07-28, 30 operationelle GPS-satellitter; proveniens i tests/fixtures/celestrak/NOTICE) parses, og hver satellit propageres gennem den validerede SGP4-kerne til et fælles tidspunkt, roteret TEME→ECEF. Hævder, at hele konstellationen lander på GPS-skallen i mellemhøj jordbane (MEO) inden for 1 %, og at alle satellitter i sigte (ni satellitter) fra et sted på mellembredde med åben himmel giver PDOP 1,64, hvor den vertikale fortynding overskrider den horisontale (som den skal for en bruger på jorden). Det afprøver SGP4 på en rigtig konstellation sammen med de rigtige datastier for SP3 (præcis) og RINEX (udsendt). |
| Walker-generator med gennemsnitlige SGP4-elementer | validated |
src/walker.rs: et udformet Walker-delta-mønster udsendes som gennemsnitlige SGP4-elementer (Kozai-gennemsnitsbevægelse valgt, så den halve storakse i SGP4 lander på målskallen) og propageres gennem den validerede kerne. Tests: en Walker med 24 satellitter af GPS-typen ligger på MEO-skallen inden for 1 %, baneplanerne er adskilt nøjagtigt 90° i RAAN (right ascension of the ascending node) genfundet ud fra banenormalerne, og gennemsnitsbevægelsen gengiver GPS-skallens periode på ~718 min. |
| Sweep af PDOP for konstellation + kvalitetsmål (FoM) for dækning/genbesøg | validated (monotoni) |
src/walker.rs: pdop_sweep stiller dækning og median/værste PDOP op i en tabel over et gitter {planes × sats × inclination}; coverage_revisit melder dækningsandelen og hullerne i genbesøg i et punkt på jorden. Valideret ved de fysiske monotonier, en designafvejning skal overholde: tilføjelse af satellitter sænker aldrig dækningen og sænker strengt median-PDOP (en fuld udformning med 24 satellitter dækker kontinuerligt ved PDOP ~1,7), og fortætning af en udtyndet konstellation forkorter strengt det værste hul i genbesøg. Det gennemsnitlige hul i genbesøg overstiger aldrig maksimum. Det er tabeller til afvejning af geometri, ikke et certificeret link-/dækningsbudget. |
Ærlig ramme: dette er et deterministisk geometrilag (cirkulære baner, kugleformet Jord med middelradius 6371 km, ren sigtelinje). Det fastslår tilgængelighed og den geometriske positionsnøjagtighed (præcisionsfortynding × et repræsentativt budget for afstandsfejl) ud fra rigtig geometri, ikke en navigationsløsning med præcise efemerider. Referencen orbit-gnss-challenged.toml placerer et rumfartøj inde i GNSS-skallen: det har kun en positionsbestemmelse ~59 % af døgnet, kvanteuret holder en tidsløsning på 5 ns gennem hvert hul (tilgængelighed 1,0), mens chipskala-uret når ~0,73.
Numerisk propagator (Cowell) og kraftmodel#
Den numeriske propagator (src/propagator.rs) integrerer en hierarkisk kraftmodel (src/forces.rs) med de adaptive integratorer (src/integrator.rs). Hvert led nedenfor er valideret mod analytisk sandhed eller en håndudledt lukket form; forstyrrelserne er slået fra som standard, så de udgivne gyldne værdier er urørte. Den sammensatte model er også krydskontrolleret mod et andet værktøj: tests/numerical_cowell_propagator_reference.rs kører 11 tilfælde i LEO og GTO (geostationary transfer orbit), 275 timeepoker, mod propagatoren DormandPrince853 i Orekit 12,2, og de konservative trin (to legemer → J2–J6 → Sol/Måne → SRP med kanonkugle) stemmer på højst 0,08 m over 24 t (VALIDATED i matrixen); trinnet med luftmodstand er kun karakteriseret (333 m) og forbliver MODELLED.
| Led | Status | Evidens |
|---|---|---|
| Cowell-propagator mod analytisk Kepler-sandhed | validated |
src/propagator.rs: den uforstyrrede (to legemer) bane gengiver den eksakte Kepler-løsning med universelle variable på under en meter over en LEO-bane på 24 t (en strammere grænse end "mod en numerisk reference < 10 m"); specifik energi og impulsmoment bevares på ~1e-9 relativt; J2-regressionen af knuden gengiver den lukkede j2_secular_rates efter første ordens teori (inden for 2 %, resten af orden O(J2²)). solve_kepler_checked returnerer Err frem for et stille forkert svar, når Newton ikke konvergerer (nær perigæum e = 0,999). Den robuste solve_kepler_robust (starter fra Markley 1995, src/kepler.rs) konvergerer dér og over 0 ≤ e ≤ 0,999999 inden for 0,9 ε·|E| af rødder i mpmath med 50 cifre (tests/kepler_mpmath_oracle.rs). |
| Adaptive integratorer (RK4 (Runge–Kutta af fjerde orden) med trindobling + det indlejrede par Dormand–Prince RK5(4), DP5(4) nedenfor) | validated |
src/integrator.rs: RK4 integrerer y' = y → e på < 1e-9, viser et fald i fejlen på ~16× pr. halveret trin (konvergens af 4. orden) og bevarer den harmoniske oscillator over en periode. Det indlejrede fejlestimat for DP5(4) er O(h⁵) (halvering af trinnet skærer det ~32×), integrerer oscillatoren over 50 perioder med bevarelse af energi på < 1e-6 og når det samme slutpunkt ved samme tolerance med færre funktionsevalueringer end trindobling; propagate_dopri klarer den samme Kepler-grænse på under en meter og stemmer med RK4-stien på < 1 m på en J2..J6-bane. DOP853 (integrate_dop853): Hairers par 8(5.3) med tæt output gengiver SciPy 1.18.1s DOP853 trin for trin (enkelt trin inden for 5.6e-15; identiske antal trin på kørslerne med e = 0,7 og Arenstorf, ét skift mellem accept/afvisning i 501 trin på LEO-kørslen; sluttilstande inden for 1.6e-12) og stemmer med den eksakte Kepler-løsning lige så tæt som SciPy (tests/dop853_scipy_oracle.rs). |
| Zonalt harmonisk felt J2–J6 | validated |
src/forces.rs: zonal_accel kontrolleres på tre måder — den reduceres til den j2_accel, der er valideret med 666 vektorer, til maskinpræcision, når den begrænses til [J2]; den stemmer med den numeriske gradient af sit eget zonale potentiale gennem hele J2..J6-feltet (guldstandarden for konservative felter); og de ulige led J3 mod de lige led J2/J4..J6 viser den karakteristiske (anti)symmetri nord–syd under z → −z. En propageret J2..J6-bane bevarer den samlede energi på ~1e-8 over et døgn. |
| Tyngde fra tredje legeme (Sol og Måne) | validated |
src/forces.rs + src/ephem.rs: third_body_accel stemmer med den eksakte gradient af sit forstyrrende potentiale, forsvinder i geocentret og rammer lærebogens størrelser i LEO (~5e-7 m/s² Sol, ~1.1e-6 m/s² Måne). Efemeriden for Solen med lav præcision fra Montenbruck–Gill rammer håndudledte ankerpunkter i J2000 (afstand i perihelium ≈ 1.471e11 m, ~−23° deklination ved solhverv, ~1°/dag bevægelse); Månens efemeride holder sig inden for sin kuvert for perigæum/apogæum, genfinder middelafstanden på ~384.400 km, overskrider aldrig inklinationen på 5,3° og vender tilbage til inden for 1° efter én siderisk måned. Koblingen af den epokestyrede højre side (RHS) er bit-eksakt (RHS-leddet er lig med third_body_accel i den samplede position ved t = 0 og t = 1 dag), og et skift af epoken med et kvart år giver en anden bane. |
| Solstrålingstryk (SRP) + konisk skygge | validated |
src/forces.rs: srp_accel (kanonkugle ν·P☉·cᵣ·(A/m)·(AU/d)²·d̂) er bit-identisk med den lukkede form i fuldt solskin, fastlåser strålingstrykket ved 1 AU (AU: astronomisk enhed) til ≈ 4.5398e-6 N/m², ligger i båndet ~1.36e-7 m/s² i LEO med skub væk fra Solen, fjerdedeles, når afstanden til Solen fordobles (omvendt kvadrat), og er præcis nul dybt i umbraen. conical_shadow giver ν = 1 i fuldt solskin og ν = 0 i total umbra (eksakt), en jævn monoton penumbra, der stiger 0 → 1 over båndet [b−a, b+a], som rækker ud over umbra-cylinderen. |
| Atmosfærisk luftmodstand (første hastighedsafhængige led) | validated |
src/forces.rs: atmospheric_density (Vallado tabel 8-4, stykkevis eksponentiel) forankres ved 1,225 kg/m³ ved havets overflade, begrænses under overfladen, aftager monotont gennem LEO, ligger i et bånd omkring ~1e-12 kg/m³ ved 400 km med en fysisk genfundet skalahøjde på ~58 km; drag_accel modvirker den medroterende relative hastighed med en størrelse på ~2e-6 m/s², som er typisk i LEO. Signaturkontrollen: en bane i 300 km højde mister specifik energi monotont, og dens store halvakse aftager med en afgrænset størrelse på ~km/dag, mens vakuum-baselinen bevarer energien med mindre end 1e-9. |
| Post-newtonsk (Schwarzschild) relativistisk korrektion | validated |
src/forces.rs: relativistic_accel (IERS-formen β = γ = 1 a = (μ/c²r³)·{[4μ/r − v²]·r + 4(r·v)·v}) går i en cirkulær bane over i den lukkede form 3μ²/(c²r³)·r̂ (radial, udadrettet, komponenter uden for aksen nøjagtigt nul), viser det lærebogsmæssige forhold på ≈1.9e-9 i LEO i forhold til tolegemeløsningen, stemmer med den håndforenklede form med radial hastighed μ(4μ + 3v²r)/(c²r³) til bedre end 1e-12, og i propagatoren forstyrrer den banen, mens den store halvakse holdes inden for under en meter/dag — det konservative modstykke til luftmodstandens henfald. |
Ærligt omfang: de udgivne standardindstillinger for ForceModel integrerer det zonale felt. Det højgradede EGM2008-tesseralfelt (src/gravity_sh.rs, grad/orden 70), de faste/oceaniske/atmosfæriske tidevand (src/tides.rs) og Lense–Thirring-leddet for medslæbning af referencesystemet er nu implementeret og indgår i den præcise kraftmodel til tilpasning af efemerider (src/precise_od.rs — se nedenfor). Tesseralfeltet er desuden et valgfrit led i Cowell-ForceModel (propagator::Geopotential, som standard slået fra) og er valideret mod Orekit 12,2 HolmesFeatherstoneAttractionModel op til grad/orden 70 (6 tilfælde over 24 timer, værste |Δr| 0,036 m; tests/cowell_tesseral_orekit_oracle.rs). Der findes to felt-evaluatorer: den historiske acceleration (sfæriske partielle afledede; gyldig til grad ~180 væk fra polerne; output er fastlåst) og acceleration_hf (Holmes–Featherstone 2002, modificeret fremadrettet søjlerekursion, gradient uden 1/cos φ; gyldig til grad 2190 ved enhver breddegrad). EGM2008 til 2190 indlæses ved kørsel (from_gfc_file, scripts/fetch_egm2008.sh, ikke medleveret). acceleration_hf stemmer med Orekit 12,2 inden for 7.3e-17 m/s² i otte punkter op til grad 2190; den forbliver MODELLED, fordi pyshtools ikke nåede den tærskel nær polen, som blev fastsat på forhånd (en mpmath-kontrol placerer fejlen i pyshtools; xval/high-degree-gravity/). En bane på 200×200 over 24 timer stemmer med Orekit inden for 0,13 m, men dens kontrol af følsomhed over for grad 70, som blev fastsat på forhånd, slog fejl (0,73 m < 1 m), så graderne 71–200 er karakteriseret, ikke valideret, i banen (xval/cowell-tesseral-200-orekit/). NRLMSISE-00-termosfæredensiteten (NRLMSISE: Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Extended atmosphere model) er portet (src/nrlmsise00.rs: bit-identisk med den C-port, der er i det offentlige domæne, på 720 punkter, inden for 1.9e-6 relativt til pymsis, og de 17 offentliggjorte testtilfælde gengives; tests/nrlmsise00_reference.rs) og er et valgfrit niveau for luftmodstandens densitet (forces::DensityModel, ForceModel::drag_density; standarden forbliver den statiske Vallado-model). Det validerer porten, ikke modellens nøjagtighed i forhold til målt densitet. DE440 (DE: Development Ephemeris) for Sol og Måne er et valgfrit efemerideniveau (ForceModel::with_ephemeris). WGS-84-skyggen for solstrålingstryk (SRP) med oblat Jord er valgfri (ForceModel::srp_shadow) og stemmer med Orekit 12,2s belysningsforhold inden for 7.4e-9 over 2400 geometrier (tests/srp_oblate_shadow_orekit_oracle.rs); dens variant med randfortunkling har ingen ekstern uafhængig reference (MODELLED). NRLMSISE-00-luftmodstandsniveauet stemmer med Orekit 12,2s egen NRLMSISE-00-luftmodstand over 24 timer inden for 0,03 m ved op til 142 km luftmodstandsforskydning (tests/drag_tier_orekit_oracle.rs, VALIDATED under de fælles konventioner). En GMAT-krydskontrol (GMAT: General Mission Analysis Tool) udestår som opfølgning.
Tidevand på geopotentialet (src/tides.rs)#
Tidsvarierende korrektioner ΔC̄_nm, ΔS̄_nm til Stokes-koefficienterne (IERS Conventions 2010, kapitel 6), valideret mod konventionernes egne offentliggjorte tal — ikke mod et andet værktøj.
| Bidrag | Status | Evidens |
|---|---|---|
| Fast jordtidevand (IERS lign. 6,6 / 6.8b / 6,14) | validated |
tests/tides_iers.rs: det permanente (nulfrekvente) tidevand ΔC̄₂₀ ligger inden for 1 % af det af IERS offentliggjorte −4,1736×10⁻⁹ (anelastiske Love-tal); regneeksemplet for trin 2 K1 gengives bit for bit (sin/cos-amplituder 470,9 / −30,2 ×10⁻¹² inden for 0,1×10⁻¹²); den normaliserede Legendre-sti er fastlåst af lukkede håndregnede værdier, der er uafhængige af rekursionen. |
| Havtidevand (IERS lign. 6,15, FES2004 (Finite Element Solution 2004, tidevandsatlas), 8 konstituenter) | validated |
Den medleverede delmængde af FES2004 (tools/gen_fes2004.py → src/fes2004_data.rs, fortolkning af Doodson til multiplikator) gengiver kildens M2-koefficienter (2.2) nøjagtigt; K1-Doodson-fasen er lig med θ_g + π; den sektorielle størrelse af grad 2 er fysisk og en størrelsesorden under det faste jordtidevand. |
| Atmosfærisk S2-lufttidevand (Ray 2001, NASA (National Aeronautics and Space Administration) GSFC (Goddard Space Flight Center)) | validated |
De medleverede Ray-harmoniske omregnes via overfladebelastningsrelationen (lign. 6,21) til en top-ΔC̄₂₂ ≈ 4×10⁻¹¹ (~10 % af havets M2-led). Ærligt forbehold: der findes ingen offentliggjort uafhængig reference for geopotentialkoefficienter for lufttidevandet, så det er valideret ved kildens integritet og størrelsesorden, en svagere tærskel end for det faste og det oceaniske tidevand. |
Manøvrer og banedesign (src/maneuver.rs)#
| Aspekt | Status | Evidens |
|---|---|---|
| Impulsivt ΔV og propagering af kovarians | validated |
En hastighedsdiskontinuitet med en 6×6-kovarians ført videre (deterministisk afbrænding ⇒ identitets-STM (tilstandsovergangsmatrix); kovariansen for udførelsesfejl roteres fra afbrændingens referencesystem — ECI (Earth-centred inertial) eller LVLH (local vertical, local horizontal) — ind i hastighedsblokken). |
| Integration af endelig afbrænding i forhold til Tsiolkovskij | validated |
Integration af konstant fremdrift over en afbrændingsbue (massen som tilstand), hvor det opnåede ΔV stemmer med den lukkede Tsiolkovskij-raketligning med bedre end 0,01 %. |
| Lambert-løser (Izzo 2015) rundtur | validated |
Lambert-resultatet for én omløbsrevolution (r1, r2, flyvetid ⇒ v1, v2) sendes en rundtur gennem den nøjagtige Kepler-propagator med universelle variable — det skal lande tilbage på r2. |
| Porkchop-sweep i forhold til Hohmann-gulvet | validated |
Minimummet i gitteret af opsendelse × ankomst for C3 / ankomst-V∞ kontrolleres mod det analytiske C3-gulv for Hohmann-overgang mellem to koplanare cirkulære baner. |
| Lambert-løser i forhold til et uafhængigt bibliotek | validated |
tests/lambert_reference.rs: 13 overgange med én revolution fra LEO til GEO til heliocentrisk, prograde og retrograde, mod lamberthub 1.0.0 izzo2015; største forskel i randhastighed 7e-12 m/s. |
Ærligt omfang: ingen baneoptimerer, ingen Lambert-grene med flere revolutioner og en syntetisk koplanar-cirkulær heliocentrisk model (ingen planetarisk DE-efemeride, så en GMAT-krydskontrol af C3 mellem Jorden og Mars er ikke kørt).
Banebestemmelse (OD) (src/orbit_determination.rs, src/batch_ls.rs)#
| Aspekt | Status | Evidens |
|---|---|---|
| Gauss–Newton-batchkorrektor | validated |
Den generiske gauss_newton-løser når den nøjagtige vægtede mindste kvadraters løsning på en lineær tilpasning, genfinder de sande parametre på en ikke-lineær a·exp(b·t)-tilpasning og løser en 3D-afstandsmultilateration ud fra støjfri afstande. |
| Batch-banebestemmelse ud fra afstande | validated |
determine_orbit_batch genfinder [r, v] ud fra afstandssporing fra jordstationer (propageret over tolegeme- + J2-kraftmodellen) til under en meter / mm·s⁻¹ ud fra støjfri afstande og til ~2 m med et residual efter tilpasning på støjgulvet på 5 m — kendetegnet for en konsistent mindste kvadraters tilpasning. |
| Sekventiel OD (med unscented-filter) | validated |
determine_orbit_sequential genfinder rekursivt tilstanden inden for nogle titals meter på samme dynamik og afstandsmodel. |
| Batch- og sekventiel OD i forhold til en uafhængig estimator | validated |
tests/batch_sequential_orbit_determination_reference.rs: 8 scenarier (6 støjfri LEO/MEO/excentriske med 3–4 stationer, 2 ved σ = 5 m) mod Orekit 12,2s batch-mindste-kvadraters- og Kalman-estimatorer på en tilpasset kraftmodel; værste batch 1e-3 m / 1e-6 m/s, sekventiel 0,9 m. |
| Batch-OD med afstandsrate / azimut-elevation og elevationsmaske | modelled (ekstern sammenligning, én tærskel fastsat på forhånd blev ikke nået) | tests/od_tracking_measurements_reference.rs: 8 scenarier mod Orekit 12,2s batch-mindste-kvadrater med egne øjeblikkelige geometriske målinger; de synlige mængder er identiske, måleværdierne inden for 5.8e-8 m / 6.3e-10 m/s / 1.4e-13 rad, tilstandsovergangsmatricen inden for 1.2e-14, støjede tilstande inden for 1,74 cm og RMS pr. type inden for 2.7e-4; tærsklen for støjfri tilstand ≤ 1 cm, som blev fastsat på forhånd, er ikke nået i 2 af 4 scenarier (1,46 og 1,74 cm; Orekits eget estimat ligger så langt fra dets simulerede reference, mens kshanas ligger inden for 1e-8 m). Se xval/od-measurements-orekit/RESULTS.md. |
Ærligt omfang: undervisnings-OD bruger faste inertiale stationer, et sfærisk topocentrisk referencesystem for Jorden og øjeblikkelige geometriske målinger (ingen lystid, aberration, refraktion eller jordrotation); tilstandsovergangsmatricen for afstandsrate/vinkelstien er variationel (RK4-integreret med analytiske tolegeme- + J2-partielle afledede), ikke lukket; der er intet sekventielt filter for afstandsrate eller vinkler. Stien kun med afstand beholder sin Jacobi-matrix med differenskvotienter. (Motoren til tilpasning af efemerider med fuld kraftmodel nedenfor har sin egen variationelle tilstandsovergangsmatrix.)
Validering af kraftmodel ved tilpasning af efemerider (src/precise_od.rs)#
En præcis batch-mindste-kvadraters-estimator for positionsobservationer med fuld kraftmodel: EGM2008-tesseralgeopotentialet (evalueret i det jordfaste referencesystem gennem CIO-reduktionen) sammensat med tredjelegemet Sol/Måne, SRP, luftmodstand, Schwarzschild/Lense–Thirring-GR (generel relativitet) og tidevandet ovenfor, tilpasset et spor af inertiale positionsbestemmelser med en Jacobi-matrix af variationel tilstandsovergangsmatrix. Valideret på syntetiske data, hvor referencen er Kshanas egen integrator, så hvert residual stammer fra estimatoren og ikke fra dynamikken.
| Aspekt | Status | Evidens |
|---|---|---|
| Sammensætning af præcis kraftmodel | validated |
tests/precise_od_synth.rs: grad-0-feltet er den nøjagtige punktmasse ved hver epoke (det centrale led er rotationsinvariant); grad 8 tilføjer J2-båndets fladtrykning; tredjelegemet Sol og tidevandsleddet kobles ind bit-tro; en konstant radial empirisk acceleration er rent radial i RTN (radial, transversal, normal). |
| Variationel tilstandsovergangsmatrix | validated |
Hver søjle af Φ over en halv LEO-bane (grad-8-geopotential + Sol + Måne) stemmer med en uafhængig central differenskvotient over hele buen (FD) ved gen-propagering med < 1×10⁻⁶ relativt i både positions- og hastighedsresponsen — den dokumenterede krydskontrol af STM mod FD. Φ(0) = I; den udvidede og den almindelige propagator stemmer med under en millimeter. |
| Selvgenfinding med batch-mindste-kvadrater | validated |
En Kshana-bue på 1 time (grad 6 + Sol + Måne), observeret uden støj, genfindes fra en forskydning på 150 m / 0,1 m·s⁻¹ til epoketilstanden inden for 1×10⁻² m med næsten nul RMS efter tilpasning; med hvid støj på 5 m lander 3D-RMS efter tilpasning på ~σ-støjgulvet, uden bias. SRP-C_R genfindes fra 1,0 til inden for 1 % af referencen på 1,4. |
| Redigering af outliers og RTN-rapportering | validated |
En grov fejl på 500 m afvises af 5-σ-redigering efter tilpasning (præcis én observation), hvilket efterlader en ren tilpasning på millimeterniveau; residualer rapporteres opdelt i radial/transversal/normal samt som 3D. |
| Niveau med empirisk acceleration (RTN-konstant + 1-CPR (CPR: cycle-per-revolution)) | validated |
De ni empiriske parametre med a priori-begrænsning forbliver under 1×10⁻⁸ m·s⁻² på empirifri reference uden at forstyrre tilpasningen; en konstant acceleration på 3×10⁻⁸ m·s⁻² på tværs af sporet, som er lagt ind i referencen, genfindes inden for 20 %. |
Ærligt omfang: den syntetiske bølge bruger nominelle parametre for jordorientering (EOP: UT1 (Universal Time 1, jordrotationstid) ≈ TT (Terrestrial Time), ingen polbevægelse) — nøjagtigt for selvgenfinding, da den samme model genererer og tilpasser buen. Valideringerne mod agenturdatasæt lægger rigtige finals2000A-EOP og SP3/SPK-reference (SPK: planetarisk efemeridekerne) oven på denne motor gennem CIO-referencesystemkæden (src/eop.rs, tests/agency_galileo.rs, tests/agency_swarm.rs, tests/agency_lro.rs).
Rigtige præcise baner fra agenturer (tests/agency_galileo.rs, tests/agency_swarm.rs, tests/agency_lro.rs)#
| Datasæt | Status | Evidens |
|---|---|---|
| Galileo MEO — < 5 m GREEN | validated |
Kshanas motor med fuld kraftmodel tilpasset et ordret udsnit af ESA/ESOC (ESOC: European Space Operations Centre)s egen endelige bane (ESA0MGNFIN, ITRF (International Terrestrial Reference Frame)) for Galileo E11 over 8 timer, hver ITRF-positionsbestemmelse roteret til GCRS med rigtige finals2000A-EOP: 3D-RMS efter tilpasning 0,133 m med ren kraft + C_R (RTN 0.105/0.067/0.047 m, C_R 1,174), 0,070 m med det empiriske niveau, ud fra et rå overlap på 78,7 km. Hele buen på 24 timer er 0,611 m. Alt langt inden for tærsklen på 5 m. Feltets tyngdekraft er konvergeret ved d/o-8 (identisk ved d/o 8/10/12); jobbet workflow_dispatch kører den fulde d/o-70. Proveniens + SHA-256 (SHA: Secure Hash Algorithm) i tests/fixtures/agency/NOTICE.md; fuld optegnelse i docs/AGENCY-ORBIT-VALIDATION.md. |
| Swarm-A LEO — < 5 m GREEN | validated |
Motor med fuld kraftmodel (+ atmosfærisk luftmodstand) tilpasset et ordret udsnit af ESA's egen reducerede-dynamik-præcisionsbane for Swarm-A (SW_OPER_SP3ACOM_2_, L47, ITRF, ~430 km, ~2 cm) over 3 timer ved d/o-70, rigtige finals2000A-EOP gennem CIO-kæden: niveauet dynamisk (kun tilstand, statisk densitet, C_R=1) giver 3D-RMS efter tilpasning 2,687 m (RTN 0.925/2.522/0.045 m — residualet er næsten ren luftmodstand langs sporet), niveauet reduceret dynamik (+ empiriske CPR-accelerationer) giver 0,098 m (RTN 0.026/0.092/0.025 m) — ~10 cm mod ESA's bane på ~2 cm. Proveniens + SHA-256 i tests/fixtures/agency/NOTICE.md; fuld optegnelse i docs/AGENCY-ORBIT-VALIDATION.md. |
| LRO (Lunar Reconnaissance Orbiter) måne — valideret, over 5 m (ærligt) | validated |
Månecentreret tilpasning af kraftmodel (src/lunar_od.rs): GRAIL-GRGM660PRIM-tyngdefeltet (d/o 100) i månens kropsfaste hovedaksesystem (src/lunar_frame.rs, IAU 2015 mean-Earth + den faste DE421-forskydning (Development Ephemeris 421) fra mean-Earth til hovedakser (ME→PA), anvendt, som SPICE definerer den, siden 0,36: indtil da blev den anvendt i den forkerte retning, ca. 208″ ved siden af), + tredjelegemerne Jorden/Solen, tilpasset gennem den samme generiske Gauss–Newton-estimator som Jord-datasættene til den rigtige JPL Horizons-LRO-rekonstruerede bane (NAIF −85), 4 timer / 241 epoker, ~98 km. Ærligt resultat efter tilpasning (0,36): dynamisk 12,05 m (RTN 2.91/10.11/5.88), reduceret dynamik 6,67 m (RTN 3.41/4.58/3.44, 1+2-pr.-omløb empirisk), ud fra et rå overlap på 39,9 m (før rettelsen af ME→PA: 12,6 m, 6,65 m, 53,8 m) — over tærsklen på < 5 m, og det er ikke estimatoren (identisk ved d/o 100/150 og atol 1e-6/1e-9). En krydsvalidering i DE-kvalitet (xval/anise-lunar-od: DE440 (Development Ephemeris 440) lunar PA-orientering + DE440-efemeride via ANISE) rettede påstanden om den begrænsende faktor — den gav 12,0 m dynamisk og 6,67 m reduceret dynamik, hvilket den rettede analytiske stak nu matcher på begge niveauer (det tidligere dynamiske gab, 12,6 → 12,0 m, var fejlen i ME→PA-forskydningen), så det operative gulv er ikke den analytiske orientering/efemeride, men et residual, som det empiriske niveau ikke kan reducere (det passer bedst med umodellerede ikke-gravitationelle kræfter på LRO over den korte bue); den slanke analytiske stak matcher allerede DE-kvalitet for banen med reduceret dynamik. Proveniens + SHA-256 i tests/fixtures/agency/NOTICE.md; fuld optegnelse i docs/AGENCY-ORBIT-VALIDATION.md. Valideret mod rigtig agenturreference: 3 af 3; under < 5 m: 2 af 3. |
Navigation med tyngdekortlægning / alt-PNT (src/gravimeter.rs, src/mapmatch.rs, src/particle_filter.rs, src/altpnt/terrain.rs)#
| Aspekt | Status | Evidens |
|---|---|---|
| Tyngdeanomalifelt med kugleflademodes | validated |
src/gravimeter.rs: et felt af lav grad, fuldt normaliseret, kontrolleret mod de lukkede Legendre-funktioner (P̄₁₁ = √3·cosφ, P̄₂₀ = (√5/2)(3sin²φ−1), P̄₂₂ = (√15/2)cos²φ) og en håndafledt anomali med ét led på 1,897 mGal. |
| Målemodel for koldatom-gravimeter | validated (model) |
Gulvet for hvid støj udledes af CAI-accelerometerets ASD (σ = ASD/√τ) og tilføres som en deterministisk sekvens med seed (matcheren får aldrig støjfri reference, men kørslen kan alligevel gengives bit for bit). |
| Partikelfilter med sekventiel vigtighedsresampling | validated |
src/particle_filter.rs: den deterministiske kerne er fastlåst nøjagtigt — ESS (effektiv stikprøvestørrelse) fra 1 til N, systematisk resampling, der vælger indekser i forhold til vægten, den vægtede middelværdi som konveks kombination, en gaussisk sandsynlighedsfunktion, der trækker estimatet hen på målingen, og determinisme i prædiktion med seed. |
| Kortmatchningens sandsynlighed + genfinding | validated |
src/mapmatch.rs: field_likelihood har sin top (= 1) ved perfekt match og falder til e^(−½) ved én sigma; et partikelfilter over et karakteristisk syntetisk terrænudsnit genfinder den sande position inden for 0,1. |
| Benchmark med 60 minutters GPS-nægtelse | validated |
run_gps_denied_gravity_nav (scenarios/gps-denied-gravity-nav.toml): et udfald på ~700 km / én time, hvor den inertiale løsning driver til ≈ 70 km, genfindes til ≈ 145 m (< 500 m) af en hierarkisk matcher fra grov til fin — kan gengives bit for bit, stabil på tværs af støjrealiseringer og påviseligt begrænset af forfining (et enkelt groft gitter går i stå ved ~2 km). |
SRTM-indlæser (Shuttle Radar Topography Mission) til .hgt-DEM (digital elevation model) + bilineær stikprøve (UAFHÆNGIG REFERENCE A) |
validated |
src/altpnt/terrain.rs / tests/terrain_nav_validation.rs: en håndbygget .hgt-buffer på 2×2 med hjørner [100.200;300.400] interpoleres bilineært til præcis 250,0 i cellens midte (lukket uafhængig reference), 16-bit-big-endian-rundturen er nøjagtig, og rækkevendingen placerer den nordligste filrække ved den højeste lagrede breddegrad — alt sammen mod specifikationen af GDAL-driveren (Geospatial Data Abstraction Library) SRTMHGT (Shuttle Radar Topography Mission height-file format) (16-bit med fortegn, big-endian, rækkevis, nordlig række først, tomrum -32768, https://gdal.org/en/stable/drivers/raster/srtmhgt.html). En indlagt fixture på 11×11 (tools/gen_terrain_fixture.py) afprøver fortolkeren i CI; og en indlagt rigtig SRTM v3-flise fra NASA/USGS (USGS: United States Geological Survey) i det offentlige domæne (N36W117, Death Valley, decimeret til 6 buesekunder, 722 KB, tests/fixtures/terrain/N36W117_sub6.hgt) læses i CI (ikke ignoreret, real_srtm_committed_badwater_tile_reads_real_relief) og placerer Badwater Basin ved ≈ −78 m inden for det dokumenterede bånd på [−95,−70] m (NGS/NOAA (NGS: National Geodetic Survey; NOAA: National Oceanic and Atmospheric Administration)-opmåling ≈ −86 m) med flisens maksimum ≈ 2161 m — sandhedskilden er opmålingen, DEM'et er det, der afprøves (ikke cirkulært). Større offentliggjorte punkthøjder (Mount Whitney 4421 m) forbliver i fuldflisetests bag #[ignore]. |
| Konvergens for terrænreferencet navigation (TERCOM/SITAN (TERCOM: terrain contour matching; SITAN: Sandia Inertial Terrain-Aided Navigation)) (UAFHÆNGIG REFERENCE B) | validated |
run_terrain_nav (scenarios/terrain-nav.toml): en håndafledt indlagt INS-drift (0,5°N, −0,4°E ≈ 70 km ved ~12° bredde, beregnet som drift° × M_per_deg × cos bredde) genfindes til < 500 m (inden for gitterets opløsningsgulv search_step/factor² ≈ 140 m), en reduktion på > 100× i forhold til fri inertialnavigation — kontrolleret mod det indlagte tal, aldrig mod DEM'et (ikke cirkulært), kan gengives bit for bit og er stabil på tværs af støj-seeds. |
| Fusionsgevinst for kombineret tyngde+magnetisme+terræn (UAFHÆNGIG REFERENCE C) | validated |
run_combined_altpnt (scenarios/combined-altpnt.toml): tre skalare kanaler (Δg · |B| anomali i skorpen · højde) fusioneret som en produkt-sandsynlighedsfunktion giver et afgrænset < 500 m residual over udfaldet på 60 min, som, middelværdi over seeds, er ikke dårligere end den bedste enkeltkanal (informationsadditivitet / lavere CRLB (Cramér–Rao lower bound)). Ligger i det offentliggjorte TERCOM- / terrænreferencerede navigations-regime (TRN) med "nogle titals meter" CEP (circular error probable) (https://en.wikipedia.org/wiki/TERCOM; PeerJ 2024 ESKF-TERCOM (ESKF: error-state Kalman filter), https://peerj.com/articles/cs-3118/). |
Ærligt omfang: tyngdefeltet er af lav grad + syntetiske mascons, ikke det fulde EGM2008/EIGEN-koefficientsæt (EIGEN: European Improved Gravity model of the Earth by New techniques); den magnetiske kanal hviler på det glatte IGRF-hovedfelt plus syntetiske mascons for anomalier i skorpen (et rigtigt højfrekvent skorpekort er en opfølgning); CI-terrænfeltet for benchmarks af navigationspositionsbestemmelse er det selvstændige syntetiske DEM, mens selve .hgt-læseren nu er valideret i CI mod en indlagt rigtig SRTM v3-flise (ovenfor); de fuldt opløste rigtige fliser forbliver bag #[ignore]. En Monte Carlo-undersøgelse af kortrepræsentationsfejl udestår som opfølgning. Alle tre navigatorer er nu koblet ind i scenariemotoren som kind= (gravity-map, terrain-nav, combined-altpnt).
Fejlmodel for INS / IMU — validering mod datablade (src/inertial/)#
IMU's stokastiske fejlmodel er valideret mod offentliggjorte specifikationer fra producenters datablade / datasæt — aldrig mod en værdi, som Kshana selv har frembragt. Broen fra en specifikation i feltenheder til SI-støjmodellen (International System of Units) er den sædvanlige identifikation via Allan-deviation (Riley, NIST SP 1065 §5; IEEE (Institute of Electrical and Electronics Engineers) Std 952): koefficienten for tilfældig gang N er den overlappende ADEV aflæst ved τ = 1 s på hældningen τ⁻¹ᐟ², og koefficienten for biasustabilitet er Allan-plateauet (tests/imu_allan_spec.rs, hermetisk — ingen download).
| Aspekt | Status | Evidens / uafhængig reference |
|---|---|---|
| Enhedsomregningslag (risiko for cirkularitet nr. 1) | validated |
Kontrolleret i hånden: 0,15 deg/√hr = 4.3633e-5 rad/√s; 3,6 µg = 3.5304e-5 m/s²; 2,0 deg/hr = 9.6963e-6 rad/s. |
| Tilfældig vinkelgang i gyro | validated |
ADIS16465 ARW 0,15 deg/√hr (Analog Devices' datablad) genfundet ud fra ADEV(1 s) til < 5%. |
| Tilfældig hastighedsgang i accelerometer | validated |
ADIS16465 VRW 0,1 m/s/√hr genfundet til < 5%. |
| Allan-hældning for hvid støj | validated |
ADIS16460, hvid gren, log-log-hældning −0,5 ± 0,05. |
| Plateau for biasustabilitet under kørsel | validated |
ADIS16465, gyroens biasustabilitet (BI) 2,0 deg/hr genfundet som det flade Allan-minimum til < 15%. |
| Anden IMU-profil | validated |
NaveGo ADIS16488 (ARW 0,3 deg/√hr, VRW 0,029 m/s/√hr) begge genfundet til < 5%. |
Ærligt omfang: dette validerer den stokastiske fejlmodel mod Allan-koefficienter fra datablade. Køretøjsdatasættet i i2Nav-WHU (WHU: Wuhan University) KF-GINS bruges som en særskilt, datastyret kontrol: det løst koblede EKF med lukket sløjfe og fejltilstand og GNSS-løftearmsmodel er en VALIDATED række i verifikationsmatrixen (Løst koblet GNSS/INS-EKF med løftearm på KF-GINS-datasættet), sammenlignet med KF-GINS C++-referencebanen under tærskler, som blev registreret før kørslen. Den kører kun, hvor datasættet er leveret (KSHANA_KFGINS_DIR); uden det kører den syntetiske indlæser og løftearmstestene. De tæt koblede varianter og varianterne med bærebølgefase er ikke dækket af den række (rækken med tæt koblet GNSS/INS med bærebølgefase er MODELLED).
Rumdybde- og Mars-PNT — D0-fundament (src/body.rs, src/mars_frame.rs, src/ephem_provider.rs, src/radiometric.rs, src/timescales.rs)#
Den første milepæl i motoren til rumdybdenavigation: generalisering af den kerne, der var hårdkodet til Jorden, til et vilkårligt centrallegeme, tilføjelse af Mars-dynamik, en søm til efemeridelevandører, tid under mikrosekundet og primitiver for lystid / relativistisk forsinkelse. Hvert eksisterende Jord-scenarie er byte-identisk — de platformsuafhængige gyldne filer for reproducerbarhed (tests/cross_platform_golden.rs, tests/golden.rs) består uændret uden regenerering, håndhævet for hver commit.
| Led | Status | Evidens |
|---|---|---|
| Abstraktion af centrallegeme (Jorden byte-identisk) | validated |
src/body.rs: Body{mu,re,zonals,gravity,rotation,IAU-pole} med earth()/mars()/moon()/sun(). tests/mars_dynamics.rs hævder, at two_body_accel_body(r,&Body::earth()) og zonal_accel_body er lig med de gamle Jord-funktioner med nøjagtig bitlighed (assert_eq!), og en Jord-bue med standard-ForceModel er byte-identisk — de gyldne filer for reproducerbarhed er uændrede (samme SHA, ingen regenerering). |
| Mars-tyngde (GMM-3 (GMM: Goddard Mars Model) tesseral, kropsfast) | validated (model) |
Body::mars_gmm3(nmax): zonaler C̄20/C̄30/C̄40 fra MRO110 (tyngdeløsning fra Mars Reconnaissance Orbiter) J2/J3/J4 (C̄n0=−Jn/√(2n+1), J2 går rundt til 1.9604e-3) + MRO110B2 sektoriel/tesseral C̄22/S̄22, C̄32/S̄32 (Konopliv et al. 2011; tabuleret i Liu, Baoyin & Ma 2012), evalueret i det kropsfaste IAU-referencesystem for Mars. tests/mars_dynamics.rs kontrollerer rundturen, afvigelsen fra punktmassen på J2-skala og at feltet virkelig er kropsfast (en omorientering på en kvart Mars-dag ændrer den inertiale acceleration). Højere grad/orden indlæses fra en medleveret .gfc via gravity_sh::from_gfc. |
| Kropsfast referencesystem for Mars (IAU-pol) | validated |
src/mars_frame.rs: IAU-rotationen 3-1-3 R3(W)·R1(90°−δ0)·R3(90°+α0) (konvention fra WGCCRE/NAIF (WGCCRE: Working Group on Cartographic Coordinates and Rotational Elements), den samme som i lunar_frame.rs). Tests: ortonormal til 1e-12 med determinant +1, identitet ved rundtur, nulmeridianen skrider frem med prime_w_dot pr. dag. |
| Propagering centreret om Mars / Solen | validated (selvkonsistens) |
tests/mars_propagation.rs: en lav Mars-bane vender tilbage til sit udgangspunkt efter én Kepler-periode (lukning); den specifikke energi ε=v²/2−μ/r driver mindre end 1e-9 over buen; den sekulære knuderegression fra Mars-J2 stemmer med den analytiske Vallado-rate (uafhængigt beregnet ≈ −5,15 °/dag ved 60° incl.) til 3%; en heliocentrisk bane genfinder Mars-året på ~687 dage (vis-viva + uafhængig genfinding af perioden ud fra buen). Ingen eksterne data. |
| DE440-krydsvalidering (heliocentrisk Mars) | kernel-gated |
xval/anise-mars-od/ (workspace-EXCLUDED; MPL-2.0-ANISE begrænset til sin egen Cargo.lock; spejler xval/anise-lunar-od): sammenligner Kshanas Sol-centrerede Mars-propagering med JPL DE440 (via ANISE), Horizons-reference citeret ordret (proveniens + SHA-256). Gengivet resultat (seed JD (Julian date) 2459580,5 TDB (Barycentric Dynamical Time), de440s.bsp SHA-256 c1c7fee…b260a49f2): positionsresidual 137 m ved bue på 1 dag (5,97×10⁻¹⁰ af den heliocentriske afstand på 2,299×10¹¹ m), voksende til 3,3 km ved 5 d, 87,9 km ved 30 d, 1,71 Mm ved 90 d — residualet vokser med buelængden, fordi en Sol-centreret tolegememodel bevidst udelader de planetariske forstyrrelser (især Jupiter) og Mars-systemets indre bevægelse, som DE440-barycenterefemeriden indeholder, så væksten er den ærlige signatur af den umodellerede n-legemedynamik, ikke en integratorfejl; at en kort bue forbliver en lille brøkdel af den heliocentriske afstand bekræfter, at den Sol-centrerede maskineri er korrekt. Kører kun, når DE440-kernen er til stede ($KSHANA_ANISE_DE440S, eller hentes automatisk ~32 MB) — en manuel / workflow_dispatch kontrol i DE-kvalitet, ikke en standard CI-port, så den udgivne crate og hver standardport forbliver byte for byte urørt. |
| Lystid + Shapiro-forsinkelse | validated |
src/radiometric.rs: den iterative løsning af lystid ved forsinket epoke (konvergerer |Δτ|<1e-12 s, med loft) og Shapiro-forsinkelsen Δt=(2μ/c³)·ln[(r1+r2+r12)/(r1+r2−r12)]. Tests: Jord–Sol ≈ 499 s og Jord–Måne ≈ 1,28 s via den indbyggede efemeride; en syntetisk emitter med konstant hastighed genfinder den analytiske forsinkede løsning til <1e-9 s (løseren er påvist uafhængig af enhver rigtig efemeride); Shapiro stemmer nøjagtigt med en håndberegnet værdi og giver ~100–250 µs for en strejfende stråle ved overlig konjunktion mellem Jorden og Mars. |
| Søm til efemeridelevandører | validated |
src/ephem_provider.rs: trait EphemerisProvider + kernefri BuiltinEphemeris (Montenbruck–Gill Sol/Måne, geocentrisk); returnerer None for legemer, den ikke har nogen række for (fx Mars), hvor DE-kvalitets-ANISE-leverandøren er vejen — den samme opdeling mellem indbygget og ANISE som LunarEnvironment/AniseLunarEnvironment. |
| Tidsangivelse i to dele + TT↔TDB | validated |
src/timescales.rs: en TwoPartJd{day,frac} med Knuth-two-sum-akkumulering genfinder intervaller under mikrosekundet, som den enkelte f64-JD mister nær J2000 (>1000× bedre, testet); tt_to_tdb/tdb_to_tt bruger den dominerende periodiske Fairhead–Bretagnon-række (|TDB−TT|≲1,7 ms, kontrolleret i hånden ved J2000). Additivt — den eksisterende tidssti med enkelt f64 er uændret. |
Radiometriske observable for rumdybde og CCSDS Tracking Data Message — D1 (src/radiometric.rs, src/ccsds_tdm.rs)#
Den anden milepæl i motoren til rumdybdenavigation: observationsmodellen, der gør D0-kernen for lystid/relativistisk forsinkelse til de størrelser, en sporingspassage fra Deep Space Network (DSN) eller ESTRACK (European Space Tracking network) faktisk rapporterer — afstand, Doppler med én/to/tre veje, kohærent transponderomsætning, regenerativ/PN-afstandsmåling (PN: pseudo-noise), Δ-DOR (DOR: differential one-way ranging) og udbredelsesmedierne — plus ind- og uddata for CCSDS (Consultative Committee for Space Data Systems) 503.0-B Tracking Data Message (TDM), som indlæser/udsender en standard sporingsfil fra et agentur. Ærligt omfang: det er nøjagtige geometriske modeller efter Moyers / CCSDS' konventioner; målestøjen er den sigma pr. observation, som kalderen leverer, og er ikke indbygget i modellen. At gengive en bestemt rigtig sporingspassage kræver rigtige TDM-data plus løseren til banebestemmelse i rumdybden — det er D2, ikke D1. Alt nedenfor er additivt (de gyldne filer for reproducerbarhed er uændrede; samme SHA, ingen regenerering).
| Led | Status | Evidens |
|---|---|---|
| Afstand og Doppler med 1/2/3 veje (Moyers løsning med to ben) | validated (model) |
src/radiometric.rs: one_way_range/two_way_range sammensætter D0's forsinkede (nedadgående ben) og fremrykkede (opadgående ben) lystidsløsninger; konventionen for hele rundturen er ρ₂ = c·(τ_up + τ_down) (m), dokumenteret og konsistent. one_way_doppler/two_way_doppler/three_way_doppler danner bærebølgeforskydningen f_D = −(M·f_ul/c)·(ρ̇_up + ρ̇_down) (Hz) ud fra afstandsraten langs sigtelinjen, fortegnskonvention: et rumfartøj, der nærmer sig, giver en positiv (blå) forskydning. Tests: afstand med to veje = summen af benene til <1 mm (~2 AU rundtur Jord–Sol); afstand med én vej = c·τ nøjagtigt; Doppler med én vej stemmer med den analytiske −(f/c)·ρ̇ for en radial emitter med konstant hastighed til ppt; tre veje med samlokaliserede stationer går byte for byte over i to veje. |
| Kohærent transponderomsætning (nøjagtige DSN-forhold) | validated |
src/radiometric.rs turnaround_ratio: de nøjagtige rationale DSN/CCSDS-omsætningstal M = f_down/f_up (Moyer §13; DSN 810-005 modul 201/214) — S/S 240/221, S/X 880/221, X/S 240/749, X/X 880/749, X/Ka 3344/749, Ka/Ka 3360/3599. Testet for nøjagtig lighed; et udefineret båndpar panikker (fejler højlydt, opfinder aldrig et forhold). two_way_doppler_coherent anvender bærebølgen for båndet + forholdet fra ende til anden og er lig med den eksplicitte two_way_doppler til maskinpræcision. |
| Regenerativ / PN-afstandsmåling (CCSDS 414; flertydighed) | validated |
src/radiometric.rs: regenerative_range_ambiguity = c/(2·chip_rate) (den entydige afstand ved opløsning pr. chip) og pn_range_ambiguity = det gange kodelængden (den fulde entydige afstand for PN-koden c·L/(2·f_chip)), efter CCSDS 414.1-B. Testet: et afstandsur på 1 MHz giver ~149,9 m; PN-koden med vægtet afstemning fra CCSDS-414.1 (1.009.470 chips) ved 1 Mchip/s giver den entydige designafstand på ~151.000 km; en fordobling af chiprate halverer flertydigheden pr. chip. |
| Δ-DOR (CCSDS 506, himmelplan) | validated (model) |
src/radiometric.rs delta_dor: den differentielle forsinkelse i himmelplanet Δτ = −B⃗·(ŝ_sc − ŝ_quasar)/c (s) for en interferometer-baseline B⃗ (CCSDS 506.1-B). Testet: stemmer med den nøjagtige analytiske projektion −B·sin(Δθ)/c for en kendt forskydning på linje med baselinen til 1e-15 s, den lille vinkels størrelse |Δτ| ≈ B·Δθ/c og nulpunktet (et rumfartøj på linje med kvasaren giver nøjagtigt nul differentiel forsinkelse). |
| Kalibrering af plasma 1/f² med to frekvenser | validated (model) |
src/radiometric.rs: solar_plasma_delay = K_PLASMA·TEC/(c·f²) (gruppeforsinkelsen fra det dispersive 1/f²-ladede partikelmedium, K_PLASMA = 40.3 m·Hz²·TECU⁻¹); coronal_tec_from_sep koronasøjlen af typen Cassini TEC ∝ 1/sin(SEP) (analytisk stedfortræder, ikke en kalibreret korona); dual_freq_plasma_calibration den K_disp = (Δt_X−Δt_Ka)/(1/f_X²−1/f_Ka²)-dispersionsinversion, som DSN bruger til at fjerne plasma. Testet: 1/f²-loven d_X/d_Ka = (f_Ka/f_X)²; koronaen stiger mod konjunktion; og en indlagt TEC genfindes til <1 % (faktisk ≪ 1e-9 uden støj) — dual_frequency_recovers_injected_plasma. |
| Medier i tropo- / ionosfæren (genbrug af GNSS-modeller) | validated (model) |
src/radiometric.rs tropo_delay/iono_delay: jordstationssegmentet i rumdybden krydser den samme jordatmosfære, som GNSS-pakken allerede modellerer, så disse delegerer til gnss_sim::tropo_delay_m (Saastamoinen-zenit + Niell-afbildning, ikke-dispersiv) og gnss_sim::klobuchar_delay_m (udsendt iono). Testet koblet + fysisk fortegn: tropo positiv og større ved lav elevation end i zenit; iono en ikke-negativ skrå forsinkelse (den numeriske troskab er GNSS-pakkens egne tests mod datablade). |
| CCSDS-TDM 503 fortolkning / udsendelse + radiometrisk bro | validated |
src/ccsds_tdm.rs: en CCSDS 503.0-B-2 KVN-læser (keyword-value notation) og -skriver (header + segmenterne META_START…META_STOP / DATA_START…DATA_STOP; poster RANGE/DOPPLER_*/ANGLE_*/*_FREQ). Tests (#[cfg(test)] + tests/fixtures/deepspace/reference.tdm): referencefixturen fortolkes til de forventede navngivne felter; parse→emit→parse er en lige struktur (semantisk rundtur); broen to_radiometric_obs afbilder de entydige poster RANGE/DOPPLER_* til RadiometricObs (vej fra PATH 1,2/1,2,1/1,2,3, bånd fra TRANSMIT_BAND, km→m); en fil med flere segmenter nulstiller tilstandsmaskinen. Ærligt spring over frem for at gætte: vinkler/frekvenser, ukendte bånd, epoker som dag i året og ikke-genkendte tidssystemer springes over, afbildes aldrig forkert, og sigma efterlades som 0.0 til kalderen at vægte. |
| DSN/ESTRACK-benchmark (modelpræcision ≫ offentliggjort gulv) | validated (model) |
tests/radiometric_benchmark.rs: observablene er nøjagtige geometriske beregninger, så den ærlige benchmark er, at modellens egen numeriske fejl ligger langt under det offentliggjorte målegulv for DSN/ESTRACK — modellen er ikke flaskehalsen for nøjagtigheden, det er det σ, som kalderen leverer. Hver test beregner en observabel på to uafhængige måder (eller genfinder en indlagt reference) og hævder, at residualet ligger under gulvet: afstand går rundt til <1 mm ≪ PN-afstandsgulvet på ~1 m (DSN 810-005 mod. 214 / CCSDS 414.1-B); Doppler stemmer med den nøjagtige lukkede forsinkede afstandsrate v/(1+v/c) til ~10⁻⁶ m/s, flere × under X-bånd-gulvet på ~0,05 mm/s (DSN 810-005 mod. 203 / Moyer) — residualet er f64-gulvet ved afstandsdifferens ved ~1 AU, en numerisk egenskab og ikke en modelfejl; Δ-DOR gengiver den lukkede projektion til en tilsvarende vinkel i himmelplanet ≪ 1 nrad ≪ gulvet på ~1–10 nrad (DSN 810-005 mod. 210 / CCSDS 506.1-B); plasma med to frekvenser genfinder den indlagte forsinkelse til ≪ 1 %; og Shapiro-forsinkelsen ligger i det offentliggjorte bånd på ~100–250 µs for konjunktion mellem Jorden og Mars. De offentliggjorte tal er angivet og betegnet som DSN-specifikationer af størrelsesorden, ikke opdigtede nøjagtige tal, og modulets dokumentation er eksplicit på, at dette måler MODELPRÆCISION, ikke gengivelse af en rigtig passage (det er D2 + rigtig TDM). |
OD i rumdybden med reduceret dynamik — D2 (src/deepspace_od.rs, src/clock_state.rs, src/mars_atmos.rs)#
Den tredje milepæl i motoren til rumdybdenavigation: estimatoren, der gør D1's radiometriske observable til en genfundet bane — et numerisk robust Square-Root Information Filter (SRIF) med empiriske accelerationer med reduceret dynamik, et ur ombord med tre tilstande, en Mars-luftmodstandsmodel og de radiometriske partielle afledede, som forbinder afstand/Doppler med filtertilstanden, lukket fra ende til anden af en syntetisk genfinding af banebestemmelse i lav Mars-bane (LMO). Ærligt omfang: genfindingen er en syntetisk lukket sløjfe (reference og filter deler den samme Mars-propagator, og observationerne er den samme geometriske observationsmodel, som filteret inverterer, plus indlagt gaussisk støj) — den validerer estimatorens maskineri, ikke den absolutte troskab af Mars' kraftmodel; den eksterne krydskontrol i DE-kvalitet er den kernestyrede xval/anise-mars-od-crate (D0.8b). Alt nedenfor er additivt (de gyldne filer for reproducerbarhed er uændrede; samme SHA, ingen regenerering).
| Led | Status | Evidens |
|---|---|---|
| SRIF-kerne (square-root information filter) | validated |
src/deepspace_od.rs Srif: et håndrullet Bierman-kvadratrodsinformationsfilter — øvre trekantet R med Λ = RᵀR, informationsvektor b, Householder-måleopdateringer/tidsopdateringer, ren Vec<f64>-aritmetik (ingen nalgebra). Tests: det sekventielle SRIF stemmer med batch-løsningen med vægtede mindste kvadrater (gauss_newton) i både tilstand og kovarians til 1e-9 på et udformet lineært gaussisk problem (srif_matches_batch_on_linear); den genfundne kovarians P = R⁻¹R⁻ᵀ er symmetrisk (1e-12) og positiv definit pr. konstruktion efter en lang sekvens af måle-/tidsopdateringer (srif_covariance_is_spd, Cholesky lykkes); og information akkumuleres (sporet af P aftager monotont, når målinger med identisk geometri indarbejdes). |
| Empiriske accelerationer med reduceret dynamik (afstemning mellem krydstogt og LMO) | validated |
src/deepspace_od.rs ReducedDynamicOd: filteret med ni tilstande [r; v; a_emp] med empiriske RTN-accelerationer som Gauss–Markov-processer af første orden som tilstande, JPL/ESOC-teknikken med reduceret dynamik udstillet som ét enkelt dynamic_tightness-greb (næsten dynamisk ⇒ udjævner støj på en ballistisk bue; næsten kinematisk ⇒ det empiriske niveau absorberer en umodelleret manøvre/luftmodstand). Tests: et næsten kinematisk filter følger en trinvis (thruster-)manøvre med <½ af residualet fra det næsten dynamiske, mens det næsten dynamiske filter udjævner en støjet ballistisk bue bedre (reduced_dynamic_tracks_maneuver); et sweep over stramheden flytter residualet efter tilpasning monotont, et kontinuum og ikke en kontakt (tuning_is_a_continuum). |
| Ur ombord med 3 tilstande (fase/frekvens/drift, van Loan Q, Allan) | validated |
src/clock_state.rs ClockState3: fejltilstand for fase + relativ frekvens + frekvensdrift med den nøjagtige diskrete processtøj fra van Loan og en Joseph-stabiliseret opdatering. Tests: den diskretiserede Q stemmer med det håndafledte van Loan-polynomium til 1e-12 og reduceres nøjagtigt til KalmanClock-Q med to tilstande, når drift = 0 (en streng overmængde); en coast med flere trin lader fasevariansen vokse til NIST SP 1065-relationen for holdover gennem T⁵-leddet for tilfældig løbetur; drifttilstanden genfinder en sand aldringsrampe til <5 %; en Allan-profil af USO-klassen genfindes (overlappende ADEV ved τ=1 s inden for kalibreringsporten), og estimatoren forbliver NEES-konsistent (>95 % inden for 3σ) og PSD gennem en kørsel med kraftig Q/R. ClockClass bærer de citerede CSAC/USO/DSAC-tal (USO: ultra-stable oscillator; DSAC: Deep Space Atomic Clock) σ_y(1 s) og Doppler-gulvet Δv = c·σ_y. |
| Atmosfærisk luftmodstand på Mars (Mars-GRAM-lite (GRAM: Global Reference Atmospheric Model)) | validated (model) |
src/mars_atmos.rs: en stykkevis eksponentiel profil af Mars' neutrale densitet (overflade ~0,020 kg/m³, skalahøjde nær overfladen ~11 km, Mars-GRAM 2010 / MCD (Mars Climate Database), middel med lidt støv) og den kvadratiske luftmodstandsacceleration taget relativt til den medroterende Mars-atmosfære, plus en ..._scaled-variant, som SRIF kan gange. Tests: densiteten aftager monotont og kontinuert på tværs af bånd, den genfundne skalahøjde nær overfladen er den fysiske ~11 km, luftmodstanden er strengt antiparallel med den relative hastighed (krydsproduktet forsvinder til 1e-12) med en fornuftig størrelse i LMO på ~3e-4 m/s², og den er lineær i det ballistiske led. Ærligt omfang: en repræsentativ ingeniørmæssig atmosfære, ikke en flyvevalideret Mars-GRAM/MCD med afhængighed af støv/årstid/lokal tid. |
| Radiometriske partielle afledede (afstand/Doppler) til SRIF | validated |
src/deepspace_od.rs range_observable / range_rate_observable: de partielle afledede af afstanden langs sigtelinjen ρ = |r_sc − r_sta| (∂ρ/∂r = û, ∂ρ/∂v = 0) og afstandsraten ρ̇ = û·(v_sc − v_sta) (∂ρ̇/∂v = û, ∂ρ̇/∂r = (v_rel − ρ̇·û)/ρ), som forbinder D1's observable med filtertilstanden, plus den partielle afledede af urfrekvensen ved Doppler med én vej ∂ρ̇_obs/∂y = c. Tests: begge partielle afledede stemmer med en central differenskvotient af observablen til 1e-6 (range_partial_matches_finite_difference, range_rate_partials_match_finite_difference); en enkelt afstandsopdatering skrumper kovariansen i den observerede retning (sigtelinjen, LOS) med ≫1000× og holder den positiv definit (PD), og en Doppler-opdatering skrumper LOS-hastighedens varians (radiometric_update_reduces_covariance_in_observed_direction, range_rate_update_observes_velocity). |
| Mars-LMO, banebestemmelse fra ende til anden ud fra radiometriske data | validated (synthetic closed-loop) |
tests/mars_lmo_od.rs: en reference-bue i lav Mars-bane, propageret under Body::mars_gmm3(4)-tyngde, genererer støjet afstand (σ=1 m) + Doppler (σ=0,1 mm/s) med to veje mod to sporingsstationer; SRIF med reduceret dynamik genfinder den ud fra en begyndelsestilstand, der er forstyrret med ~2,7 km. Opnået: konvergeret positions-RMS ≈ 0,2 m (under en meter, langt inden for målet fra meter til nogle titals meter) over en bue på 3 omløb med 30 s kadence, med den faktoriserede kovarians positiv definit ved hver epoke (SRIF's garanti, hævdet hele vejen igennem). Kontinuummet for afstemning mellem krydstogt og LMO afprøves fra ende til anden: med en reference med umodelleret luftmodstand, som filterskabelonen mangler, genfinder knappen for reduceret dynamik (stramhed 1) til ~14 m mod ~677 m for kørslen, der er næsten dynamisk (stramhed 0) — en forbedring på 48× fordi det empiriske niveau absorberer luftmodstanden. Ærligt omfang: syntetisk lukket sløjfe (reference = den samme propagator, som filteret bruger); den eksterne krydskontrol i DE-kvalitet er den kernestyrede xval/anise-mars-od (D0.8b), aldrig kørt her, intet netværk. |
Scenarie for PNT i rumdybden og fusion af én vej + to veje — D3 (src/mars_pnt.rs, src/deepspace_od.rs)#
Den fjerde milepæl i motoren til rumdybdenavigation: et kørbart Mars-PNT-produktscenarie, der binder D0's Mars-legeme / referencesystem, D1's radiometriske observable og D2's OD med reduceret dynamik sammen i én scenarietype mars-pnt. Det modellerer en lille relæ-konstellation i stil med MARCONI, der udsender et signal i rummet med én vej (urkoblet) plus videresender en forbindelse med to veje (kohærent, urfri) til en rumdybdestation, og navigerer tre referencebrugere (Mars-overgang, orbiter i lav Mars-bane, fast overfladepunkt) gennem D3.1's fælles estimator, der fusionerer én vej + to veje — et SRIF med tolv tilstande, der udvider D2's blok med reduceret dynamik for bane/empiri med et ur ombord med tre tilstande. Ærligt omfang: hvert kvalitetsmål er estimatorens formelle kovariansgrænse (1σ / 3σ i position pr. epoke) og den opnåede RMS mod en syntetisk lukket sløjfe som reference (reference og filter deler den samme Mars-dynamik og den samme geometriske observationsmodel, plus indlagt gaussisk støj) — et simuleret navigationskvalitetsmål, IKKE et luftfartscertificeret beskyttelsesniveau og IKKE en flyvepåstand (ingen certificeret fejlmodel, ingen integritetsmonitor, ingen rigtige sporingsdata). Alt nedenfor er additivt (de gyldne filer for reproducerbarhed er uændrede; samme SHA, ingen regenerering).
| Led | Status | Evidens |
|---|---|---|
| Fælles radiometrisk fusion af én vej + to veje (fusioneret slår hver for sig) | validated |
src/deepspace_od.rs FusionOd: D2.2's SRIF med reduceret dynamik udvidet med de tre urtilstande ombord (ClockState3), der indlæser en blandet tidsserie af to veje (urfri, fastholder banen — nul urkolonner i den partielle afledede) og én vej (urkoblet — frekvensens partielle afledede ∂ρ̇_obs/∂y = c) afstand/Doppler gennem fused_observable. Strukturen kalibrer-så-coast: passager med to veje fastholder banen, data med én vej kalibrerer derefter uret og lader banen coaste mellem passagerne med en fejl, der er afgrænset af urets Allan-stabilitet. Testet i src/deepspace_od.rs #[cfg(test)]: den fusionerede løsning slår hver af forbindelsestyperne alene; coastfejlen i en kørsel kun med én vej vokser med afstanden mellem passager med to veje i tråd med Allan-grænsen for urklassen; den fælles kovarians forbliver SPD (symmetrisk positiv definit) hele vejen. |
| MARCONI-konstellation (areostationær radius, okkultation) | validated (model) |
src/mars_pnt.rs MarconiConstellation: et sæt med fem relæer — tre areostationære relæer ved r = (μ/ω²)^{1/3} ≈ 20 428 km (Mars' synkrone radius ud fra offentliggjort μ/rotationsrate; testet i båndet 20.400–20.500 km) med lige afstand på 120° i længdegrad og 5° inklination, plus to relæer i en højere (1,4× areostationær) cirkulær bane med 60° inklination for dækning i himmelplanet. Relætilstande pr. epoke integreres fremad under mars_gmm3-tyngde; testen af synlighed ved Mars-okkultation er geometrien, hvor korden frit passerer kuglen (chord_clears_sphere, testet: et diametralt modsat relæ er okkulteret, et relæ lige oven over er synligt). Ærligt omfang: en minimal repræsentativ geometri for udsendelse plus relæ bygget af offentliggjorte Mars-konstanter — ikke et bestemt flyvekonstellationsdesign. |
Scenarie mars-pnt kan nås via CLI / Python / WASM (WebAssembly) / MCP (Model Context Protocol) |
validated |
src/mars_pnt.rs MarsScenario / run_mars_pnt er koblet ind som scenariet kind = "mars-pnt" på alle overflader (D3.3): CLI-kørslen, Python-bindingen, WASM-/playground-bygningen og MCP-serverens dispatch fører alle til det (rundtur-test for src/api.rs mars_pnt_kind_round_trips_through_the_dispatch). Medleverede referencescenarier: scenarios/mars-pnt-lmo.toml, scenarios/mars-pnt-surface.toml, scenarios/mars-pnt-transfer.toml. Resultatet bærer en eksplicit fom_note, der betegner kvalitetsmålet som en kovariansgrænse (ikke et certificeret PL), og uddata summary / to_svg gentager ærlighedsmærkatet. |
| MARCONI / LightShip-målene gengivet: < 100 m orbiter, < 15 m rover | validated (synthetic closed-loop, under stated assumptions) |
tests/mars_pnt_targets.rs: de offentliggjorte programmål for MARCONI / LightShip (orbiter < 100 m, overflade/rover < 15 m) gengivet i simulation. Fælles forudsætninger: standardkonstellationen MARCONI med fem relæer; hvert relæ i sigte giver en afstand + Doppler med én vej pr. epoke; en kohærent stationspassage med to veje hvert 30 min; støj af DSN-klassen (afstand σ = 1 m, Doppler σ = 0,1 mm/s); det fælles fusionsfilter med reduceret dynamik for bane + ur med 3 tilstande, startet fra en a priori-tilstand, der er ~2,7 km forstyrret (stramhed 0,1); kvalitetsmål = konvergeret 3D-positions-RMS over buens bagerste halvdel i forhold til den syntetiske reference. Orbiter (LMO ~400 km / 60° incl., USO-ur, kadence 60 s, bue på ~2 timer ≈ ét omløb): opnået konvergeret RMS ≈ 0,40 m ≪ målet på 100 m (middel 3,1 relæer i sigte, kovarians SPD hele vejen). Rover (fast ækvatorialt overfladepunkt, USO-ur, kadence 30 s, bue på ~2 timer): opnået konvergeret RMS ≈ 5,1 m < målet på 15 m (middel 3,0 relæer i sigte, kovarians SPD). Begge mål er nået uden at løsne nogen påstand — USO er den mindre kapable af de realistiske urklasser ombord (et DSAC ville kun hjælpe), og kadencen på 30 min for to veje er konservativ for en rutinemæssig relænetværksplan, så forudsætningerne er fysisk rimelige for et system af MARCONI-klassen og ikke tunet til at bestå. Ærligt omfang: simuleret gengivelse under de angivne forudsætninger, IKKE en flyvepåstand eller et certificeret beskyttelsesniveau; den syntetiske reference i lukket sløjfe deler filterets Mars-dynamik og observationsmodel. |
Månens koordinattid — relativistisk urrate Jord–Måne (src/lunar_time.rs)#
En tidsskala for månens koordinattid (LTC/TCL (TCL: Temps-Coordonnée Lunaire, den franske betegnelse for månens koordinattid)) kræver den sekulære rate, hvormed et ur på månens overflade går i forhold til et ur på Jordens geoide (TT). src/lunar_time.rs beregner den ud fra første principper: en første post-newtonsk identitet, der summerer forskellen i selvpotentiale (IAU's L_G konventionelle geoidepotentiale W0 = L_G·c² ≈ 6.26369e7 m²/s² minus Månens selvpotentiale på overfladen GM_moon/R_moon ≈ 2.822e6 m²/s²) og det kinetiske led (andenordens Doppler) −<v²>/2c² fra Månens geocentriske hastighed (differenskvotient af den lunare række fra Montenbruck–Gill i src/ephem.rs). Det dominerende selvpotentialeled giver ≈ 57,5 µs/dag, det kinetiske led ≈ −0,5 µs/dag, i alt ≈ 57 µs/dag. Scenariet lunar-time-offset rapporterer denne rate, den akkumulerede LTC−TT-forskydning over en horisont og understøtter et minimalt ensemble med invers varians (et månens papirur); omregninger mellem TT og LTC går rundt til < 1 ns/dag.
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Relativistisk urrate Jord–Måne (LTC/TCL) | modelled |
src/lunar_time.rs lunar_rate_breakdown, tt_to_ltc/ltc_to_tt, lunar_ensemble, LunarTimeScenario. Uafhængig reference: en intern lukket relativistisk identitet (IAU's L_G / geopotentialet fra IERS-konventionerne og selvpotentialet GM/r (GM: gravitationsparameter, G gange massen)), krydskontrolleret mod det offentliggjorte bånd for månens urrate [56, 59] µs/dag. Tests (lunar_time::tests): selvpotentialeleddet ≈ 57,5 µs/dag, Månens hastighed ≈ 1 km/s, det kinetiske led lidt negativt, summen i båndet med de navngivne led, der summerer til den, LTC−TT-forskydningen på 1 dag ≈ 57 µs og en rundtur mellem TT og LTC på < 1 ns/dag. Ærligt omfang: hovedtallet i µs/dag er afhængigt af referencen — det afhænger af de valgte referenceflader (Jordens geoide W0 i forhold til en selenoide på Månen), vinduet for tidsmiddelværdi og de forsømte centrifugal-/J₂-korrektioner under µs/dag — hvorfor det udgivne output er et bånd og ikke ét enkelt certificeret tal. Dette er en Modelled-kontrol af selvkonsistens, IKKE en ekstern validering, IKKE absolut nøjagtighed under nanosekundet og IKKE certificeret til operativ tidsholdning. |
Geodætisk VLBI på Månen — nærfeltsforsinkelse for en baseline på Jorden, der observerer et fyr på Månen (src/lunar_vlbi.rs)#
En geodætisk VLBI-observabel (very-long-baseline interferometry) for to jordstationer (en baseline), der observerer et signal med én vej fra en sender af NovaMoon-klassen på månens overflade. Månen er i nærfeltet og ikke en plan bølge, så den geometriske forsinkelse er den nøjagtige forskel mellem to afstande tau_geom = (|r2 − r_B| − |r1 − r_B|)/c og ikke projektionen i himmelplanet. Den fulde observabel tilføjer forskellen i stationernes urforskydning og et differentieret Shapiro-led for Jordens potentiale (genbrugt fra src/radiometric.rs). Stationerne placeres i geocentriske inertiale koordinater (GCRS) via src/frames.rs + src/cio.rs; fyret via src/ephem.rs (geocentrisk Måne) + src/lunar.rs (selenografisk→MCMF (MCMF: Moon-centred, Moon-fixed)) + src/lunar_frame.rs (IAU-2015 ME kropsfast→inertial). Scenariet lunar-vlbi udtager stikprøver af forsinkelsen, dens differenskvotientrate og nærfeltskorrektionen over en passage.
Den uafhængige reference er den planbølge-Δ-DOR-observable delta_dor i src/radiometric.rs fra den samme kodebase: i fjernfeltsgrænsen (et syntetisk fyr ved 1e15 m) skal den geometriske forsinkelse gå over i −(B·ŝ_B)/c = delta_dor(r_B, [0,0,0], B) til maskinpræcision; ved sand månedistance er nærfeltskorrektionen for bølgefrontens krumning forskellig fra nul (nogle tiere til hundreder af µs). De partielle afledede for fyret dtau/dr_B = ((r_B−r2)/|r_B−r2| − (r_B−r1)/|r_B−r1|)/c (og for stationerne) er kontrolleret med central differenskvotient (relativ fejl < 1e-5).
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Forsinkelse og partielle afledede for geodætisk VLBI på Månen | modelled |
src/lunar_vlbi.rs geometric_delay_s, vlbi_delay_s, delay_partials_beacon/_station1/_station2, near_field_correction_s, LunarVlbiScenario. Uafhængig reference: ReferenceImpl — den planbølge-delta_dor (src/radiometric.rs) fra den samme kodebase i fjernfeltsgrænsen, plus partielle afledede med differenskvotient. Tests (lunar_vlbi::tests): stationsstørrelse ≈ Jordens radius, fyrets afstand ved månedistance (356–407 Mm), den geometriske forsinkelse i fjernfeltet stemmer med delta_dor til < 1e-9 s, en nærfeltskorrektion forskellig fra nul ved månedistance, partielle afledede for fyr/station med FD inden for 1e-5 relativt, et nøjagtigt urled og en endelig scenariekørsel via run_toml. Ærligt omfang: Modelled, IKKE valideret mod rigtige VLBI-data. Polbevægelsen er udeladt (xp = yp = 0), så stationernes inertiale positioner har en referencesystemfejl på nogle få meter; fyret blander en række for Månen med middelækvator for datoen med en kropsfast ICRF-forskydning (International Celestial Reference Frame) (jd_tdb ≈ jd_tt), en inkonsistens i referencesystemet under modellens troskab, men ikke stringent; og der er ingen iteration af lystid, jordrotation under lystid, medier (tropo/iono/plasma) eller aberration ud over det differentierede Shapiro-led. Ingen TRL (technology readiness level), flyvearv eller agenturs tilslutning er påstået. 0,30: mod ANISE-lystider gennem DE440 ligger ingen forsinkelse på denne analytiske sti inden for 1 ps (største gab 24 µs); resultatet er fastlåst. |
| VLBI til geodæsi på Månen, kernesti | validated (0.30) |
src/lunar_vlbi.rs KernelGeometry (DE440 for Jorden og Månen, DE440-hovedakser for Månen, ITRF93-jordorientering, hver lystid konvergeret i det barycentriske referencesystem), kørt af scenariet lunar-vlbi, når de tre kernestier er sat. Uafhængig reference: bibliotek — lystider konvergeret med NAIF SPICE Toolkit N0067 (spiceypy 8.2.0) til DSS-14/43/63, fastsat på forhånd: 75 forsinkelser inden for 1 ps (værst 0,06 ps), partielle afledede for fyr og station inden for 1e-6, ved 25 epoker nær J2000 (en ændring, efter at 2024 epoker slog fejl på SPICE's egen emissionsepoke i dobbelt præcision, ca. 6 ps, oplyst og fastlåst). Det differentierede Shapiro-led, forsinkelsesraten og nærfeltskorrektionen i scenariet er ikke sammenlignet. |
Fælles OD med flere teknikker + ur på Månen — simuleret genfinding i lukket sløjfe (src/lunar_combination.rs)#
En batch-mindste-kvadraters tilpasning for én epoke (øjebliksbillede) (crate::batch_ls::gauss_newton_qr, et Householder-QR-trin siden 0,30), der fusionerer teknikkerne geodætisk VLBI, radiometrisk/lokal afstandsmåling på Månen og afstandsmåling mellem satellitter på et SIMULERET lunart netværk for sammen at genfinde 3D-positionen af en station på månens overflade, positionerne af hver satellit i en lille konstellation og hvert aktivs urforskydning. Observablene er: (1) geodætiske VLBI-forsinkelser for baseline på Jorden til månestationen behandlet som fyret (genbrug af src/lunar_vlbi.rs, geocentrisk inertial) — hovedteknikken; (2) geocentriske radiometriske afstande fra jordstation til satellit (som multilaterer konstellationen ud fra de vidt spredte jordstationer) og lokale afstande mellem station og satellit på Månen (euklidisk MCI-afstand (Moon-centred inertial) plus det differentierede urled); (3) afstande mellem satellitter (samme form); plus én pseudoobservation af stationsurets synkronisering, der forankrer den ellers uobserverbare fælles urforskydning. Tilstandsvektoren er [station_pos(3), {sat_pos(3)}×N_sat, station_clk, {sat_clk}×N_sat]. Der er ingen propagering af kraftmodel inde i løseren — satellitterne er faste, adskilte, illustrative punkter på en repræsentativ månebane; det er en bevidst ren tilpasning af et øjebliksbillede. Internt skaleres positioner, og ure estimeres i afstandsækvivalente meter, så normalmatricen forbliver veltilstandet i f64; VLBI-afstandene og afstandene på Månen er middelfjernet omkring den nominelle geometri, så Jacobi-matrixen med differenskvotienter ikke rammes af katastrofal udslettelse. Scenariet lunar-joint-od-clock kører løsningen med og uden VLBI-benene på samme seed/reference og rapporterer begge løsninger plus forbedringsfaktoren for stationens observerbarhed.
Det ærlige hovedresultat: lokal afstandsmåling på Månen fra en polarstation til en håndfuld satellitter, der alle står mod den ene side af himlen, efterlader stationens position svagt observeret langs én retning, så løsningen med kun afstand er dårligt konditioneret, og den genfundne 3D-fejl for stationen er stor (eller løsningen konvergerer ikke). Når VLBI-forsinkelserne for baseline på Jorden lægges til, bliver stationens fulde 3D-position observerbar, og den genfundne stationsfejl falder til meterniveau. Testen vlbi_restores_station_observability hævder, at stationsfejlen med VLBI er mærkbart (≥5×) mindre end fejlen med kun afstand på den samme indlagte reference — at VLBI genskaber den ellers uobserverbare stationsretning er hele pointen med fasen.
Den uafhængige reference er intern konsistens: en indlagt referencetilstand (station ~50 m/akse, satellitter ~30 m/akse, ure ~1e-7 s, med en jitter pr. komponent fra seed) afbildes til syntetiske observable gennem den samme geometrimodel, som løseren inverterer, gaussisk støj fra seed lægges til (illustrative standarder: VLBI σ ≈ 1e-11 s, afstand σ ≈ 0,1 m, ISL σ ≈ 0,1 m; vægte 1/σ²), og estimatoren skal genfinde den indlagte reference inden for støjen ud fra et startgæt på nuller. En Monte Carlo-middel-NEES Δxᵀ(HᵀWH)Δx over seeds (formal_covariance_nees) ligger inden for et løst bånd omkring n_params, en kontrol af kovariansens realisme.
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Fælles OD med flere teknikker på Månen + ur | validated (0,30, P2: løserens lineære algebra) |
src/lunar_combination.rs estimate, formal_covariance_nees, LunarCombinationScenario. Uafhængig reference for 0,30: P2 — numpy 2.4.6 (LAPACK gelsd og inv) genberegner hvert Gauss–Newton-trin, den konvergerede vægtede løsning, de formelle sigmaer og stationsfejlen på de indlagte Jacobi-matricer for seks netværk (tests/lunar_joint_od_numpy_oracle.rs, trin inden for 2.4e-11, sigmaer inden for 1.3e-11); de fysiske observationsmodeller og størrelser forbliver MODELLED. Tidligere uafhængig reference: InternalConsistency — genfinding af en indlagt simuleret reference + NEES-kovariansens konsistens. Tests (lunar_combination::tests): fuld fusion genfinder referencen (station < 5 m, satellit-RMS < 5 m, ure < 1e-8 s, konvergeret); VLBI genskaber stationens 3D-observerbarhed (stationsfejl ≥5× mindre med VLBI end med kun afstand på den samme reference); deterministisk (samme seed → bit-identisk løsning, anden seed → anderledes, men genfundet); middel-NEES inden for et løst bånd omkring n_params; endelige/sikrede rapporterede tal, selv når kun afstand er dårligt konditioneret; scenariet sendt via run_toml. Ærligt omfang: dette er en simuleret genfinding i lukket sløjfe — referencen deler observationsmodellen — IKKE validering mod rigtige data; ingen propagering af kraftmodel inde i løseren; satellitpositionerne og geometrien for jordstation/månestation er illustrative. Ingen TRL, flyvearv eller agenturs tilslutning er påstået. |
Realisering af lunart referencesystem — tilpasning af datum med 7-parameter Helmert (src/lunar_frame_realise.rs)#
Hvor src/lunar_frame.rs anvender IAU's WGCCRE-orientering af Månens legeme fra 2015 (en fremadrettet model), estimerer (realiserer) dette modul et lunart referencesystem ud fra et netværk af estimerede punktkoordinater knyttet til et datum. Estimationskernen er en klassisk ligedannethedstransformation (Helmert) med 7 parametre — tre translationer, tre rotationer med lille vinkel og én skalaparameter — der afbilder punkter p_i (estimeret referencesystem) til q_i (datumreferencesystem) som q_i = t + (1 + s)·R(θ)·p_i, med R(θ) = rz(θz)·ry(θy)·rx(θx) bygget af crate::precession::{rx, ry, rz, matmul, mat_vec}. De syv parametre [tx, ty, tz, θx, θy, θz, s] estimeres ud fra ≥ 3 ikke-kollineære punktpar med vægtede mindste kvadrater gennem crate::batch_ls::gauss_newton: den fremadrettede model forudsiger hvert q_i ud fra dets p_i og flader alle tre komponenter af alle punkter ud i observationsvektoren, de observerede datumkoordinater danner z, vægtene er 1/σ², og løsningen starter fra x0 = zeros. Rotationsvinkler estimeres i µrad og skala i ppb, så Jacobi-matricen med differenskvotienter forbliver veltilskalet ved størrelsen af koordinater på månens overflade (~1.7e6 m). En lille icrf_orientation_tie sammensætter den realiserede lille rotation gennem IAU's orientering fra legeme til ICRF (transpose(crate::lunar_frame::icrf_to_iau_moon(jd_tdb))) og returnerer det realiserede referencesystems residuale forskydning med lille vinkel om ICRF-akserne — en bevidst simpel ændring af udtryksform for referencesystemet, ikke et uafhængigt estimat af månens pol.
Den uafhængige reference er intern konsistens: en kendt Helmert-transformation (translation ~nogle tiere m, rotation ~µrad, skala ~1e-7) lægges ind i et vidt spredt syntetisk punktnetværk (varierende selenografisk bredde/længde → MCMF, nogle punkter i højde), gaussisk støj fra seed lægges til, og tilpasningen skal genfinde de indlagte parametre. På støjfri data er genfindingen til ~maskinpræcision (translation < 1e-6 m, rotation < 1e-9 rad, skala < 1e-12); med støj på en meter lander de genfundne parametre inden for nogle få × den formelle σ, og RMS-residualet efter tilpasning ligger nær støjniveauet. Scenariet lunar-frame-realisation rapporterer det genfundne datum, genfindingsfejlen pr. parameter i forhold til den indlagte reference, RMS-residualet efter tilpasning og ICRF-orienteringsknytningen for den realiserede rotation.
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Realisering af månens referencesystem | modelled |
src/lunar_frame_realise.rs helmert_fit, apply_helmert, realise_frame, icrf_orientation_tie, LunarFrameRealiseScenario. Uafhængig reference: InternalConsistency — genfinding af en indlagt ligedannethedstransformation med 7 parametre plus den algebraiske identitet for rundtur i apply_helmert. Tests (lunar_frame_realise::tests): støjfri genfinding af den indlagte transformation (translation < 1e-6 m, rotation < 1e-9 rad, skala < 1e-12); genfinding med støj inden for nogle få × σ og RMS-residual nær støjniveauet; anvend-så-invertér-rundtur; deterministisk (samme seed → bit-identisk, anden seed → anderledes, men genfundet); ICRF-knytning ved nulrotation er nul, og knytningen bevarer rotationens størrelse; scenariet sendt via run_toml. Ærligt omfang: dette er en kontrol af selvkonsistens — den genfinder en indlagt transformation på et syntetisk netværk — IKKE en realisering af det lunare referencesystem mod rigtige sporings-/VLBI-data, og den påstår ingen absolut nøjagtighed af referencesystemet. ICRF-orienteringsknytningen er en simpel ændring af udtryksform, ikke et uafhængigt polestimat. Ingen TRL, flyvearv eller agenturs tilslutning er påstået. |
Servicevolumen for månenavigation — DOP / dækning / tilgængelighed + generaliseret ARAIM-PL på Månen (src/lunar_service.rs)#
Dette modul sammensætter allerede byggede dele til en servicevolumen-analyse for månenavigation: det sweeper et selenografisk bredde-/længdegitter over en tidshorisont mod en illustrativ konstellation i månebane af klassen Moonlight / LCNS fra offentlige kilder (LCNS: Lunar Communications and Navigation Services) og rapporterer DOP / dækning / tilgængelighed plus en generaliseret ARAIM-kurve for beskyttelsesniveau på Månen. De to genbrug er bærende og eksplicitte. DOP-geometrien er den VALIDATED (mod gnss_lib_py) kerne crate::orbit::dop — service_dop er et tyndt filter for elevationsmaske plus den kerne, og en test hævder identiteten (service_dop er lig med et direkte orbit::dop på de samme synlige positioner). Integritet genbruger LunaNet LNIS' (LunaNet Interoperability Specification) maskineri for ARAIM på Månen crate::lunar::lunar_araim (σ_URE ≈ 30 m, P_sat ≈ 1e-4); lunar_protection_level generaliserer det eksisterende beskyttelsesniveau ved sydpolen til et vilkårligt overfladepunkt, og en test hævder, at det reduceres til sydpolstilfældet (ved sydpolen med samme geometri/budget returnerer det nøjagtigt det eksisterende lunar::lunar_araim-resultat til < 1e-9).
Konstellationens parametre er en illustrativ tilnærmelse af ESA's offentlige beskrivelser af systemklassen (≈ 4 satellitter på elliptiske frosne månebaner, der favoriserer dækning af sydpolen — apolun over den sydlige halvkugle; 4 er bibliotekets standard, og den medleverede moonlight-service-volume.toml sætter 8, fordi beskyttelsesniveauet kræver mindst 6 i sigte). De er ikke den rigtige Moonlight/LCNS-efemeride og antyder ingen tilknytning, tilslutning, arv, certificering eller TRL. Sammensætningen (dækning / tilgængelighed / integritet) er MODELLED: et sæt relæer i cirkulær/elliptisk Kepler-bane (ikke en differentielt korrigeret LCNS-/NRHO-efemeride (near-rectilinear halo orbit) 9:2), en Måne med middelrotation (ingen fysisk libration / præcederende pol) og offentliggjorte integritetsparametre fra LunaNet LNIS. Den viser metoden for servicevolumen, ikke et operativt tal for tilgængelighed. Deterministisk (ren geometri; ingen tilfældighed). Scenariet moonlight-service-volume rapporterer dækningsprocenten, kuverterne for antal synlige og PDOP, HPL/VPL-kuverten over volumenet og tilgængeligheden af beskyttelsesniveauet i forhold til alarmgrænsen.
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Servicevolumen for månenavigation | modelled |
src/lunar_service.rs LunarConstellation, visible_sats, service_dop, coverage, lunar_protection_level, LunarServiceScenario. DOP-geometri valideret ved genbrug af den kerne crate::orbit::dop, der er valideret mod gnss_lib_py; integritet genbruger ARAIM på Månen fra den offentliggjorte LunaNet/LNIS (crate::lunar::lunar_araim, σ_URE ≈ 30 m). Tests (lunar_service::tests): service_dop er en identitet på den validerede kerne; lunar_protection_level ved sydpolen er lig med det eksisterende lunar::lunar_araim-PL til < 1e-9 (reduceres til sydpolstilfældet); dækningen er ikke-aftagende med konstellationens størrelse; synligheden respekterer elevationsmasken; scenariet er deterministisk og sendes via run_toml. Ærligt omfang: konstellationen er illustrativ, fra offentlige kilder, IKKE tilknyttet ESA — ikke den rigtige Moonlight/LCNS-efemeride; sammensætningen af dækning/tilgængelighed/integritet er MODELLED (relæer i cirkulær/elliptisk Kepler-bane, Måne med middelrotation, offentliggjorte LNIS-parametre), IKKE et operativt tal for tilgængelighed for Moonlight. Ingen TRL, flyvearv eller agenturs tilslutning er påstået. |
Differentiel PNT på Månen — udslettelse af fællestilstand + residual, der vokser med baseline + DGNSS-beskyttelsesniveauer (src/lunar_dpnt.rs)#
En analogi til DGNSS (differentiel satellitnavigation) / SBAS på Månen: en referencestation af NovaMoon-klassen på et kendt selenografisk sted beregner differentielle korrektioner pr. satellit ud fra en illustrativ konstellation af klassen Moonlight / LCNS fra offentlige kilder, og en roving-bruger, der er forskudt fra den med en baseline, anvender dem, så de fælles fejl i den udsendte efemeride udlignes. Hver satellit i bærer en indlagt fælles 3D-banefejlvektor e_i og en fælles urfejl c_i. Referencestationens pseudoafstandsresidual er korrektionen −e_i · û_ref,i + c_i; brugerens rå fejl er −e_i · û_user,i + c_i; den korrigerede brugerfejl er deres forskel −e_i · (û_user,i − û_ref,i). Urleddet c_i udlignes nøjagtigt (det er identisk i begge observationer), og banedelen går over i projektionen på forskellen mellem de to enhedsvektorer for sigtelinjen, som → 0, når baselinen → 0 (gulvet for rumlig dekorrelation) og vokser ≈ lineært med baselinen. De korrigerede afstandsfejl pr. satellit afbildes gennem brugergeometrien af en lille, afhængighedslet løsning af et øjebliksbillede med vægtede mindste kvadrater ([x, y, z, clock]-tilstand via crate::orbit::invert4; en konstant afstandsbias optages af urets ukendte i stedet for at ødelægge positionsbestemmelsen) og giver brugerens positionsfejl. Brugerens beskyttelsesniveau genbruger maskineriet for SBAS-beskyttelsesniveau fra DO-229E (crate::sbas::sbas_protection_level, K-faktorer for præcisionsindflyvning) med det differentielle residuale σ som hver satellits 1-σ-fejlbudget.
NovaMoon henvises kun til som systemklasse (en offentlig beskrivelse af en referencestation på Månen); konstellationen genbruger den illustrative crate::lunar_service::LunarConstellation fra offentlige kilder. Det er illustrative parametre til at afprøve den differentielle metode, ikke en rigtig efemeride, og de antyder ingen tilknytning, tilslutning, arv, certificering eller TRL. Scenariet lunar-differential-pnt rapporterer brugerens positionsfejl med og uden korrektioner, reduktionsfaktoren, kurven for fejl som funktion af baseline og beskyttelsesniveauet. I standardkonfigurationen er den korrigerede brugerfejl ved en baseline på 50 km ≈ 0,008 m mod ≈ 24 m ukorrigeret (en reduktion på ~3000×) og ≈ 0 ved nul baseline.
Den uafhængige reference er intern konsistens: udslettelsen af fællestilstanden er en nøjagtig algebraisk identitet (med noise = 0 er den korrigerede fejl < 1e-6 m ved nul baseline; urleddet udlignes til maskinpræcision ved enhver baseline), residualet vokser monotont med baselinen, og beskyttelsesniveauet er den samme DO-229E-algoritme, som SBAS-stakken er fastlåst mod. Residualet fra rumlig dekorrelation er en geometrisk model af første orden, ikke en tilpasset dekorrelationsmodel fra rigtig sporing på Månen.
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Differentiel PNT på Månen | modelled |
src/lunar_dpnt.rs differential_corrections, corrected_user_range_errors, user_position_error_m, lunar_dgnss_protection_level, LunarDpntScenario. Uafhængig reference: InternalConsistency — identiteten for differentiel fejludligning plus genbrug af maskineriet for SBAS-beskyttelsesniveau fra DO-229E (crate::sbas). Tests (lunar_dpnt::tests): ved nul baseline er den korrigerede brugerfejl og hver korrigeret afstandsfejl pr. satellit ~0 (< 1e-6 m) og ≪ den ukorrigerede fejl; urleddet udlignes nøjagtigt ved enhver baseline (tilfældet med banefejl nul); den korrigerede fejl vokser monotont med baselinen, mens den forbliver ≪ den ukorrigerede ved moderate baselines; differentiel slår selvstændig med en tydelig margin (> 2×); beskyttelsesniveauet er lig med et direkte kald af sbas::sbas_protection_level og skalerer med residualet σ; underbestemt geometri returnerer None; scenariet er deterministisk (seed) og sendes via run_toml. Ærligt omfang: MODELLED — udslettelsen af fællestilstanden er en nøjagtig identitet, men residualet fra rumlig dekorrelation er en geometrisk model af første orden, ikke en tilpasset dekorrelationsmodel fra rigtig sporing på Månen, og dette er ikke valideret mod rigtige data. NovaMoon henvises kun til som systemklasse (illustrativ, fra offentlige kilder, ikke tilknyttet ESA). Ingen TRL, flyvearv eller agenturs tilslutning er påstået. |
Eksport til interoperabilitet på Månen — CCSDS OEM + KIF afstemt til LunaNet/IOAG med formatkontrol ved rundtur (src/lunar_interop.rs)#
Månens referencesystem, tidsskala og efemeride eksporteres i CCSDS-baserede udvekslingsformer afstemt til LunaNet/IOAG (IOAG: Interagency Operations Advisory Group). Denne fase opfinder ikke et nyt ledningsformat: den genbruger cratens eksisterende CCSDS OEM-udsender (Orbit Ephemeris Message) 2,0 og -fortolker (crate::oem::OemFile::to_oem_string / crate::oem::parse_oem) og Kshana Interchange Format-konvolutten (crate::interchange::Envelope), mærket om til lunar kontekst. export_lunar_oem sætter OEM's REF_FRAME til IAU's WGCCRE-legemereferencesystem for Månen fra 2015 (MOON_ME mean-Earth eller MOON_PA hovedakser), TIME_SYSTEM til månens tidsskala (LTC / TCL / UTC) og CENTER_NAME til MOON, over en illustrativ efemeride af klassen LCNS fra offentlige kilder som eksempel (positioner fra crate::lunar_service::LunarSat::position_mci, hastighed ved central differenskvotient). export_lunar_time_metadata udsender en deskriptor for månetid afstemt til LunaNet/IOAG (skalaens id, sekulær rate i µs/dag fra crate::lunar_time::lunar_rate_breakdown, det offentliggjorte bånd på 56–59 µs/dag, referenceflade), som går rundt gennem serde_json. export_kif_lunar pakker OEM + deskriptor + referencesystemets mærkat ind i den eksisterende KIF-konvolut med ærlighedsmærkatet MODELLED.
Den uafhængige reference er rundtur / feltkontrol. Fordi oem.rs leverer begge retninger, sendes OEM'en en rundtur gennem crate::oem::parse_oem (tilbage til et lige segment, med månens referencesystem/tid og antallet af tilstande bevaret) og kontrolleres uafhængigt af oem_conformance, som verificerer, at hvert krævet CCSDS/LunaNet-headerkeyword er til stede, at REF_FRAME bærer et lunart MOON_*-token, og at TIME_SYSTEM ikke er tom, at indrammingen META_START … META_STOP holder, og at linjerne med position+hastighed er velformede — og returnerer en struktureret bestået-markering plus listen over til stede/manglende felter, så en ødelagt eksport (fx et manglende TIME_SYSTEM) opdages og navngives. Tidsmetadataene går rundt gennem parse_lunar_time_metadata, og KIF-konvolutten går rundt gennem Envelope::parse til lige artefakter med mærkatet MODELLED.
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Interoperabilitetseksport for Månen | modelled |
src/lunar_interop.rs export_lunar_oem, export_lunar_time_metadata, parse_lunar_time_metadata, export_kif_lunar, oem_conformance, LunarInteropScenario. Uafhængig reference: InternalConsistency — deterministisk rundtur (CCSDS OEM via crate::oem::parse_oem; KIF via crate::interchange::Envelope::parse; tidsmetadata via serde_json) plus kontrol af feltnavne mod offentliggjorte felt-semantikker for CCSDS OEM + LunaNet/IOAG. Tests (lunar_interop::tests): den eksporterede OEM bærer det lunare REF_FRAME (MOON_ME/MOON_PA) og tokens for TIME_SYSTEM (LTC/TCL), CENTER_NAME = MOON, objektet og velformede datalinjer; månens tidsmetadata går rundt (rate/bånd/reference) og afviser sludder; KIF-konvolutten serialiseres og deserialiseres til en lige værdi med ærlighedsmærkatet MODELLED til stede; en bevidst ødelagt OEM (uden TIME_SYSTEM) fejler oem_conformance og rapporteres som manglende; scenariet sendes via run_toml. Ærligt omfang: feltets navne/enheder er afstemt til offentlige standarder (CCSDS 502.0-B OEM, IAU WGCCRE 2015 lunare referencesystemer, LunaNet Interoperability Specification / IOAG's lunare arkitektur); eksporten er MODELLED — deterministisk rundtur + kontrol af feltnavne er den uafhængige reference, dette er IKKE en certificeret test af interoperabilitet, efemeriden er illustrativ, fra offentlige kilder, ikke tilknyttet ESA, og ingen TRL, flyvearv eller agenturs tilslutning er påstået. |
Forudsigelser fastsat på forhånd#
En forudsigelse fastsat på forhånd er et MODELLED resultat, der fastfryses, før der findes data til at bedømme det, og hvor protokollen for bedømmelsen fastlægges samtidig. Den er ikke en validering og tilføjer ingen række i registeret. Hver ligger i docs/predictions/ med sine fastfrosne inddata, sit resultat og deres SHA-256-hashes, og tests/prediction_frozen.rs fejler, hvis en fastfrosset byte ændres; en ændret forudsætning besvares med en ny, dateret forudsigelse ved siden af den gamle, aldrig ved at redigere den.
| Forudsigelse | Fastfrosset | Bedømt mod | Status |
|---|---|---|---|
| Dækning fra en referencestation på Månen | c05dac1d, 2026-10-12 | offentliggjort nøjagtighed, tilgængelighed, dækning og beskyttelsesniveauer for en differentiel station ved månens sydpol, fra en hvilken som helst part | endnu ikke bedømt (ingen offentliggjorte resultater) |
Register over repræsentativitet og afstand til flyvning i en demonstration (src/representativeness.rs)#
Et simuleringsresultat er kun brugbart som evidens, hvis det på selve siden angiver, hvad det er forankret i, hvad det antager, og hvad der stadig adskiller det fra et flyvesystem. Registeret over repræsentativitet gør det til et førsteklasses, maskinkontrolleret output: en Representativeness-post bærer demonstrationens eksterne Anchor-forankringer, dens modellerede forudsætninger, dens Gap-afstande til flyvning (hver med den fase/aktivitet, der ville lukke den), og det TRL-bånd, den er repræsentativ for. Det er ledsageren pr. resultat til matrixen verification på funktionsniveau.
Den uafhængige reference er et sæt lukkede invarianter, håndhævet af representativeness::tests: en Validated-post skal angive mindst én ExternalDataset-forankring (en simulation kan ikke valideres mod sig selv); en Modelled-post skal angive mindst én afstand til flyvning og kan ikke påstå et repræsentativt TRL-bånd over 4 (modning ud over det kræver hardware-/flyvningsevidens, hvilket er en afstand og ikke et simuleringsoutput); TRL-båndet skal være velformet; og en PartnerOwned-post må ikke hævde noget. Disse invarianter operationaliserer disciplinen "repræsentativitet begrundet + resterende afstande til flyvning tydeligt identificeret".
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Register over repræsentativitet og afstand til flyvning | modelled |
src/representativeness.rs Representativeness/Anchor/Gap, check/is_valid/report/to_json. Uafhængig reference: InternalConsistency — lukkede ærlighedsinvarianter knyttet til grænsen mellem status og type af uafhængig reference i verification. Tests (representativeness::tests): en Validated-post uden ekstern forankring fejler; en intern forankring (ReferenceImpl) opfylder ikke Validated; en Modelled-post uden afstand fejler; en Modelled-post over TRL 4 fejler; fejlformede TRL-bånd opdages; posten serialiseres til JSON med de forventede felter og giver en læsbar rapport. Ærligt omfang: registeret kontrollerer klassificeringen af et resultats evidens — det beviser ikke, at de navngivne forankringer fører til levende tests (de er kuraterede, præcis som matrixen verification); påstanden om "maskinkontrolleret" er afgrænset til invarianterne for status/forankring/afstand/TRL. |
Samlet evidens for afvejning mellem kvante og klassisk (src/qtrade.rs)#
Ethvert anvendelsesområde for kvante-PNT besvarer det samme spørgsmål på samme måde: fastlæg ét sammenligningsgrundlag (scenarie + seed + motorversion), send en kvantekandidat og en klassisk baseline gennem én neutral kodesti, bedøm dem på fælles kvalitetsmål og rapportér — med et konfidensinterval og et ærligt mærkat for valideret/modelleret — hvor kvante vinder, og hvor det ikke gør. TradeEvidence giver dette svar én enkelt form, så lodretterne for tidssynkronisering, navigation og anomalidetektion alle udsender det samme reproducerbare, ærligt mærkede objekt. Det genimplementerer ingen afvejning: tallene pr. kvalitetsmål kommer fra de eksisterende motorer (quantum_trade, crossover og lodretternes moduler); dette er kontrakten plus indpakningen for reproducerbarhed/repræsentativitet, bygget på registeret over repræsentativitet og verifikationsmærkaterne.
Den uafhængige reference er lukkede identiteter for fordel/vinder plus en tro indpakning af det eksisterende resultat af afvejningen. qtrade::tests: fordelsforholdet har korrekt polaritet (orienteret, så >1 altid betyder, at kvantesiden er bedre, både for holdover, hvor højere er bedre, og for fejlkvalitetsmål, hvor lavere er bedre); et evidensobjekt bygget af et rigtigt quantum_trade::TradeResult gengiver sine fordelsforhold; uærlig evidens afvises (repræsentativitet af typen modelleret uden afstand, eller et kvalitetsmål af typen Validated, hvis afvejningspost ikke bærer nogen ekstern forankring); JSON er deterministisk og bærer felterne for referencesystem/seed/motor/kvalitetsmål/repræsentativitet.
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Samlet evidens for afvejning mellem kvante og klassisk | modelled |
src/qtrade.rs TradeEvidence/TradeFom/TradeFrame/Winner. Uafhængig reference: InternalConsistency — lukkede identiteter for fordel/vinder + tro indpakning af quantum_trade::TradeResult; ærlighed knyttet til registeret over repræsentativitet og grænsen mellem verifikationsstatus og type af uafhængig reference. Tests (qtrade::tests) som ovenfor. Ærligt omfang: værktøjet standardiserer, hvordan en afvejning rapporteres og gengives; fysikken bag hvert kvalitetsmål er det, den bidragende motor leverer, båret med dens eget mærkat for valideret/modelleret — TradeEvidence opgraderer ikke et modelleret kvalitetsmål til valideret. |
Bibliotek med fejlmodeller for kvanteenheder (src/quantum_devices.rs)#
Ét sted, der udstiller de kvante-PNT-enheder, demonstratoren afvejer — optiske / fangede-ion / kviksølv-ion-ure, klassiske referenceure, koldatom-interferometeret og tidsoverførselsforbindelser — hver som et DeviceCard med sin hovedspecifikation og en repræsentativitetspost. Det meste af enhedsfysikken er genbrugt (urstabiliteter fra holdover::QuantumClockClass og clock_state::ClockClass; koldatom-interferometeret fra quantum_trade/crossover; klassiske optiske/RF-forbindelser fra timetransfer_adv). Den ene virkelig nye model er tidsoverførselsforbindelsen med sammenfiltring / enkeltfotoner, hvis tidsmæssige præcision er begrænset af haglstøj: σ_t ≈ jitter/√(R·τ) i den detekterede koincidensrate R og integration τ, forringet af en straf for mørketællinger √(1 + dark/R) og med gulv i en uafvendelig systematisk fejl.
Den uafhængige reference er de genbrugte, offentliggjorte ur-/CAI-koefficienter plus lukkede identiteter for haglstøj/tab. quantum_devices::tests: den genbrugte rækkefølge af urstabilitet er fornuftig (optisk gitter < kviksølv-ion < CSAC i σ_y(1 s)); præcisionen for sammenfiltring forbedres som 1/√τ (4× integration halverer σ), når den er begrænset af haglstøj; den detekterede koincidensrate falder 10× pr. 10 dB forbindelsestab; mørketællinger forringer præcisionen monotont; det systematiske gulv afgrænser præcisionen nedadtil; hvert enhedskort er en gyldig, modelleret repræsentativitetspost.
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Bibliotek med fejlmodeller for kvanteenheder | modelled |
src/quantum_devices.rs DeviceCard, quantum_clock_card/classical_clock_card, EntanglementTimeLink. Uafhængig reference: InternalConsistency — genbrugte offentliggjorte ur-/CAI-koefficienter + lukkede identiteter for haglstøj/tab for forbindelsen med sammenfiltring. Tests (quantum_devices::tests) som ovenfor. Ærligt omfang: enhedsparametrene for ur/CAI er genbrugt fra motorens eksisterende modeller med offentliggjorte koefficienter; modellen for forbindelsen med sammenfiltring er MODELLED ud fra offentliggjort adfærd for kvanteursynkronisering med illustrative værdier for parrate/effektivitet/tab fra offentlige kilder — den er ikke valideret mod en målt forbindelse, og rigtig hardware til kilde/kanal/detektor er en angivet afstand til flyvning. |
Pålidelig kvantetidssynkronisering — kæde fra ende til anden, sikker udbredelse, anomali + afvejning (src/timetransfer_chain.rs)#
Scenariet quantum-time-transfer sammensætter den tidskæde, en kvante-PNT-demonstrator har brug for: et tidsbudget for brugeren fra ende til anden (referenceurets coastfejl og forbindelsens tidspræcision kombineret i kvadratur) for en kvantekæde (optisk gitterur + forbindelse med sammenfiltring/enkeltfotoner) i forhold til en klassisk kæde (CSAC + RF-forbindelse med to veje); et beskyttelsesniveau for tid (TPL, genbrugt fra tpl), der afgrænser den uopdagede tidsfejl; et sikkerhedskvalitetsmål mod forsinkelses-/replay-angreb 1 − P_md ved en angivet falsk-alarmrate (genbrugt fra detection); en sandsynlighed for detektion af uranomali + latens for ændringsdetektion med CUSUM (cumulative sum); og sammenligningen mellem kvante og klassisk som ærlig qtrade::TradeEvidence med en repræsentativitetspost + afstande til flyvning.
Den uafhængige reference er et lukket kvadraturbudget over genbrugte, hver for sig validerede kerner (ADEV mod Stable32/NIST; TPL-grænsen; detection::analytic_pd/analytic_pmd). timetransfer_chain::tests: kvantepræcisionen forbedres med integrationstiden; kvantekæden kan vinde og kan tabe på præcisionsmålet (ærligt — ikke en universel sejr; en meget tabsgivende forbindelse vender resultatet); beskyttelsesniveauet er endeligt og positivt; sikkerhedsmålet ligger i [0.1] og vokser med angrebsforsinkelsen; sandsynligheden for detektion af anomalier er monoton i fejlens størrelse; og afvejningsevidensen er internt ærlig (is_honest()).
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Pålidelig kvantetidssynkronisering (kæde + sikker udbredelse + anomali + afvejning) | modelled |
src/timetransfer_chain.rs QuantumTimeTransferScenario/Report, to_svg; kind="quantum-time-transfer". Uafhængig reference: InternalConsistency — lukket kvadraturbudget over genbrugte validerede kerner (ADEV/Stable32-NIST, TPL-grænse, analytisk detektion Pd/Pmd); ærlighed knyttet til registeret over repræsentativitet. Tests (timetransfer_chain::tests) som ovenfor. Ærligt omfang: ur-/forbindelsesparametre er illustrative, fra offentlige kilder; forbindelsen med sammenfiltring er den MODELLED model, begrænset af haglstøj, fra quantum_devices; dette modellerer klassen af pålidelige tidssystemer — den er ikke valideret mod en målt forbindelse fra ende til anden, og rigtig hardware til ur/forbindelse/rumkanal er en angivet afstand til flyvning; ingen TRL, flyvearv eller certificering er påstået. |
GNSS-fri kvantenavigation (src/quantum_nav_od.rs)#
Scenariet quantum-gnss-free-nav sammenligner dødregning under et GNSS-udfald med et kvante-inertialbudget (et accelerometer med koldatom-interferometer, genbrugt fra inertial::quantum_imu/quantum_trade, hvis CAI-gulv for hvid støj er valideret til inden for ~2 størrelsesordener af Freier et al. 2016) i forhold til et klassisk INS af navigationskvalitet. Det rapporterer væksten i positionsfejl over coasten, holdover-tiden til en positionstærskel og afvejningen mellem kvante og klassisk som ærlig qtrade::TradeEvidence. Observerbarheden angives ærligt: uden en ekstern positionsbestemmelse under udfaldet er accelerometerets bias uobserverbar, så positionsfejlen vokser uden grænse (≈ ½·bias·t² plus et led for tilfældig hastighedsgang); en kvantesensor med lavere bias bremser den vækst, men lukker ikke gabet — det gør kun en ekstern positionsbestemmelse.
Den uafhængige reference er de genbrugte inertialbudgetter (QuantumNavBudget/ClassicalInsBudget, som begge implementerer traitet PositionDrift) plus lukkede identiteter for drift. quantum_nav_od::tests: kvantebudgettet slår det klassiske over et langt udfald (lavere fejl, længere holdover); fejlen vokser med udfaldets varighed for begge (observerbarhedsgabet); fordelen afhænger af udfaldet og er ikke en konstant gevinstfaktor (kvantekurven er støjdomineret ved kort coast og biasdomineret ved lang); afvejningsevidensen er internt ærlig.
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| GNSS-fri kvantenavigation | modelled |
src/quantum_nav_od.rs QuantumNavOdScenario/Report, to_svg; kind="quantum-gnss-free-nav". Uafhængig reference: InternalConsistency — genbrugte inertialbudgetter (CAI valideret ved genbrug ~2 størrelsesordener i forhold til Freier 2016; klassisk lukket drift); ærlighed knyttet til registeret over repræsentativitet. Tests (quantum_nav_od::tests) som ovenfor. Ærligt omfang: en statisk sammenligning af dødregningsbudgetter, ikke et dynamisk filter på rigtige baner; at bias er uobserverbar uden en positionsbestemmelse er angivet; enhedsparametre er illustrative, fra offentlige kilder; modellerer klassen af GNSS-fri kvantenavigation — rigtig koldatom-IMU-hardware, en dynamisk platform og flyvemiljøet er angivne afstande til flyvning; ingen TRL/flyvning/certificering er påstået. |
Fejl- / anomalidetektion for kvante-PNT-systemer (src/quantum_faults.rs)#
Scenariet quantum-anomaly-detect definerer et mærket katalog over kvante-PNT-fejl (urfrekvenssprong, drift, tab af lås; sensorbiastrin, udfald), bedømmer en detektionsstatistik på nominelle mod fejlbehæftede vinduer og rapporterer detektorens diskrimination som en ROC AUC og en mindste detekterbar fejl ved en fast falsk-alarmrate. Vinklen kvante mod klassisk: en mere stabil kvanteurreference sænker monitorens støj σ, så den detekterer mindre fejl — udsendt som ærlig qtrade::TradeEvidence med en repræsentativitetspost.
Den uafhængige reference er en lukket AUC for den gaussiske detektionsstatistik (nominel N(0,σ), fejl N(μ,σ) ⇒ AUC = Φ(μ/(σ√2))), krydskontrolleret mod den eksternt validerede eval_stats::bootstrap_auc_ci (valideret mod scikit-learn) og de analytiske tærskler i detection. quantum_faults::tests: den analytiske AUC stemmer med kendte værdier (0,5 ved μ=0, →1 for stor μ/σ, monoton); det empiriske bootstrap-AUC-konfidensinterval omslutter den lukkede form; kvantemonitoren har højere AUC og en mindre mindste detekterbar fejl; fordelen forsvinder for enorme fejl (begge detekterer perfekt — ikke en universel margin); kataloget har fem mærkede klasser; afvejningen er internt ærlig.
| Funktion | Status | Uafhængig reference / ærligt omfang |
|---|---|---|
| Fejl-/anomalidetektion for kvante-PNT | modelled |
src/quantum_faults.rs FaultKind, QuantumAnomalyScenario/Report, analytic_auc, min_detectable_fault; kind="quantum-anomaly-detect". Uafhængig reference: InternalConsistency — lukket gaussisk AUC krydskontrolleret mod den eksternt validerede eval_stats-bootstrap-AUC (mod scikit-learn) og analytiske tærskler i detection. Tests (quantum_faults::tests) som ovenfor. Ærligt omfang: detektionsstatistikken er en gaussisk model, ikke rigtig telemetri; fejlkataloget er mærket syntetisk; støjniveauerne for kvante-/klassisk monitor er illustrative, fra offentlige kilder; modellerer klassen af anomalidetektion i kvante-PNT — rigtig hardwaretelemetri med mærkater for reference er en angivet afstand til flyvning; ingen TRL/flyvning/certificering er påstået. |
Standarder: formatkontrol — udvekslingsformater, linkbudget og integritet (kontroller mod ekstern uafhængig reference)#
Disse standarder er valideret ved at genfinde de ordrette regneeksempler / referenceværdier, der er offentliggjort i selve standarderne (eller i en uafhængig referenceimplementering), ikke ved Kshanas egen rundtur. At genfinde en standards eget bilagseksempel er den stærkeste tilgængelige formatkontrol for en fortolker af et udvekslingsformat.
| Standard | Status | Ekstern uafhængig reference |
|---|---|---|
| CCSDS OEM (502.0-B Orbit Data Messages) | validated |
tests/ccsds_reference.rs: parse_oem genfinder de nøjagtige epoker og tilstandsvektorerne X/Y/Z/Ẋ/Ẏ/Ż i KVN-OEM-eksemplet i CCSDS 502.0-B-3, bilag G §G6, figur G-11 ("OEM Example with No Acceleration, No Covariance", s. G-10) — begge efemeridesegmenter, inklusive kildeværdierne med foranstillet nul (-063.042). Fixturen tests/fixtures/ccsds/oem_502_b3_figG11.oem er gengivet tegn for tegn fra den officielle Blue Book (de redaktionelle markeringer "< intervening data records omitted here >", som ikke er gyldige OEM-poster, er ikke med). |
| CCSDS TDM (503.0-B Tracking Data Message) | validated |
tests/ccsds_reference.rs: TdmFile::parse genfinder alle 41 RANGE-poster (første 3198,03679519614 km, sidste 3270,46440460551 km) og metadataene i KVN-TDM-eksemplet i CCSDS 503.0-B-2, bilag E, figur E-9 ("Range Data with TIMETAG_REF=TRANSMIT", s. E-9). Fixturen tests/fixtures/ccsds/tdm_503_b2_figE9.tdm er ordret fra Blue Book. (Dette er den uafhængige reference fra den offentliggjorte Blue Book ved siden af den hidtidige, håndskrevne rundtur med reference.tdm i src/ccsds_tdm.rs.) |
| CCSDS 133,0 (Space Packet Protocol) | validated |
src/space_packet.rs primary_header_matches_published_independent_test_vectors: koderen gengiver testvektorerne på byteniveau for primær header fra det uafhængige bibliotek spacepackets (us-irs/spacepackets-py, tests/ccsds/test_space_packet.py) — fx 18 02 40 34 00 16 og den helt maksimale 1F FF FF FF FF FF — plus det kanoniske telemetritilfælde (TM) med kun ettaller, hver sendt en rundtur gennem afkodning. Bitfeltbredder/-rækkefølge efter CCSDS 133.0-B-2 §4.1.3. |
| CCSDS 401 / DSN (linkbudget, DSN 810-005) | validated |
src/linkbudget.rs link_equation_reproduces_descanso_galileo_dct: kæden for FSPL (free-space path loss) og C/N₀ gengiver den offentliggjorte design-control-tabel for telemetri i rumdybden fra J. H. Yuen (red.), Deep Space Telecommunications Systems Engineering (DESCANSO/JPL (DESCANSO: Deep Space Communications and Navigation Systems Center of Excellence) Pub. 82-76), tabel 1-1 — Galileos X-bånds-downlink (8420,43 MHz) ved 6,37 AU: frirumstab 290,54 dB (<0,05 dB) og modtaget Pr/N₀ = 54,6 dB-Hz (<0,2 dB). Båndcentrene ligger inden for DSN/CCSDS-401-allokeringerne til downlink i rumdybden (DSN 810-005 modul 201). Standardparametrene for missionen forbliver repræsentative (ikke en kalibreret transponder); det er link-ligningen, der er fastlåst her. |
GNSS-standarder — status for uafhængig reference og de ærlige resterende afstande:
| Standard | Status og ærligt forbehold |
|---|---|
| RAIM / ARAIM | Kerne, geometri og ARAIM-beskyttelsesniveauet er eksternt valideret. Detektionskernen — χ²-tærsklen for fejldetektion, ikke-centralitetsparameteren for ikke-central-χ² ved manglende detektion og de normalfordelte K-multiplikatorer — gengiver SciPy (tests/raim_reference.rs, 171 tilfælde, ≤ 1e-6 rel.), og den omsluttende geometri gengiver gnss_lib_py (DOP). Værdien af ARAIM-beskyttelsesniveauet (PL) er nu også fastlåst: mod WG-C's (WG: Working Group) ARAIM Reference ADD (Algorithm Description Document) v3.1 "LPV-200 (LPV: localizer performance with vertical guidance) numerical example" giver src/araim_reference.rs / tests/araim_reference_vectors.rs VPL 18,2926 m mod 18,3 m, HPL 13,4063 m mod 13,45 m og σ_v,acc 1,3694 m mod 1,3694 m, inden for referencens egen TOL_PL = 0,05 m (typen araim-reference-check). Omfang: fejltilstande op til én satellit eller én konstellation (N_fault,max = 1); delmængder af fejl med flere hændelser og eksklusion er ikke implementeret, og klassisk RAIM har stadig ingen kanonisk offentliggjort testvektor fra inddata til HPL. Se ARAIM_REFERENCE.md. |
| SBAS / DO-229E | Algoritmen for beskyttelsesniveau er nu eksternt valideret. Givet (el, az, σ) pr. satellit gengiver kshanas sbas_protection_level RTKLIB-forken for SBAS-PL (zsiki/rtklib_ws waasprotlevels(), Siki & Takács 2017, "DO-229D Appendix J") — fodret med det værktøjs egen σ beregnet ud fra rigtige EGNOS-udsendte meddelelser + rigtig BUTE RINEX — til < 2e-3 m HPL over 6 epoker (tests/sbas_reference.rs); ESA gLAB v6.0.0 (core/filter.c) bekræftede den identiske konvention. K-faktorerne (K_H,PA=6.0, K_V=5.33, K_H,NPA≈6.18) stemmer med DO-229E Appendix J. Hvad der er valideret, og hvad der ikke er: dette fastlåser PL-algoritmen (σ ind → HPL/VPL ud); den opstrøms σ-modellering ud fra rå UDRE/GIVE-meddelelser ligger uden for kshanas omfang — det er der, hvor uafhængige værktøjer til hele kæden stadig er uenige med meter på rigtige data. K_V blev matchet ved referencens afrundede 5,33 (kshanas nøjagtige Φ⁻¹(1−5e-8)=5.3267 → VPL ~0,06 % mindre; den lodrette er valideret uden K-faktor som d_U). |
| IONEX / Klobuchar | Udsendt model eksternt valideret. Klobuchar L1-modellen gengiver RTKLIBs ionmodel (tests/klobuchar_reference.rs, < 1e-4 m) — implementeringsparitet med den facto åbne reference, da der ikke findes noget officielt regneeksempel med målt reference. Læseren af IONEX TEC-kort findes nu (src/ionex.rs, enhedstestet); det resterende gab er en krydskontrol af den mod et rigtigt GIM-produkt, ikke den udsendte model. Se rækkerne for Klobuchar i Påstande i forhold til virkeligheden. |
| GPS L1 C/A-spredningskode (IS-GPS-200) | Kodegenerering kontrolleret eksternt. src/sdr.rs (ca_first_ten_chips_match_is_gps_200_octal): C/A-kodegeneratoren med G1/G2 LFSR (lineært tilbagekoblet skifteregister) gengiver de offentliggjorte kodefasetildelinger i IS-GPS-200 Table 3-Ia — de første ti chips i oktal for PRN (pseudo-random noise) 1–9 ({1440, 1620, 1710, 1744, 1133, 1455, 1131, 1454, 1626}) — præcist. Det fastlægger spredekodens chipsekvens mod GPS-grænsefladespecifikationen; de omgivende dele til modulation, spektral adskillelse og DLL-kodesporing (delay-locked loop) (navsignal) forbliver MODELLED. |
Tidssynkronisering til net, spektrum, solsystemet, konstellationer, kampagner og LEO-PNT#
De funktioner, der blev tilføjet i linjen 0,28, bedømmes række for række i den genererede VERIFICATION-MATRIX.md; dette afsnit opsummerer, hvilke af dem der har en uafhængig ekstern reference. En række er kun VALIDATED med en uafhængig ekstern reference; alt andet er MODELLED.
| Funktion (type) | Status | Ekstern reference, eller hvorfor rækken forbliver modelleret |
|---|---|---|
Telecom-MTIE (maximum time interval error) og TDEV (time deviation) på en holdover-serie (telecom-timing) |
validated |
tests/telecom_timing_reference.rs: 17 MTIE-middelingsfaktorer og 12 TDEV-middelingsfaktorer på en indlæst holdover-serie fra et chipskala-ur med 2 048 sampler, mod allantools 2024,06, til < 1e-12 / < 1e-9 relativt. ITU-T-maskernes (International Telecommunication Union Telecommunication Standardization Sector) PASS/FAIL-afgørelser og de forudindstillede oscillatorer fra databladene forbliver MODELLED. Se TELECOM-TIMING.md. |
Holdover-forudsigelse ud fra en målt urregistrering (slot-timing) |
validated |
tests/slot_timing_cs5071a_holdout.rs: tilpasning på den første tredjedel af den virkelige 5071A-cæsiumregistrering, forudsigelse af tidspunktet for overskridelse af én sigma ved seks tærskler, målt på de to tilbageholdte tredjedele; tærskel: en faktor 1,5 begge veje, observerede forhold 0,84 til 1,03. Slot-guard-budgettet og positionsbestemmelsens kadence, der bygger på den, forbliver MODELLED. |
Lukkede former for effekttæthedsspektre i L-båndet og spektral adskillelse (spectrum) |
validated |
navsignal lukkede former mod offentliggjorte værdier (matrixrække "Closed-form L-band signal power spectral densities…"). Vandfaldsdiagrammet med J/S (jammer-to-signal ratio) pr. bånd og effektiv C/N0 (carrier-to-noise density) samt SigMF-ind- og -udlæsning (Signal Metadata Format) forbliver MODELLED. |
Planeters positioner ud fra JPL's (Jet Propulsion Laboratory) Standish-elementer og lystid mellem legemer (solar-system) |
validated |
0,30, præregistreret mod JPL Horizons (DE441): tests/solar_system_standish_preregistered.rs og tests/solar_system_standish_earth_icrf_preregistered.rs, RMS pr. planet og komponent højst lig tallet i Explanatory Supplement Table 8.10.1 (værst 0,778), inklusive opdelingen af Jorden og ICRF-rotationen; tests/solar_system_light_time_solver_preregistered.rs, lystidsløseren på DE441-positioner inden for 1e-6 s af Horizons' lystid (værst 6.7e-9 s). Den tidligere sammenligning med dobbelt nominel tærskel (tests/solar_system_horizons_reference.rs), hvis tærskel blev sat efter den første sammenligning, beholdes som en regressionskontrol uden afgørende rolle. Uranus/Neptun fra Table 1, Pluto, månerne, legemekonstanterne og body-pnt forbliver MODELLED. |
Walker-geometri og de offentliggjorte GPS-, Galileo- og GLONASS-slots (GLObal NAvigation Satellite System); global GPS-geometrisk præcisionsfortynding (constellation-design) |
validated |
constellation::tests: Walker 24/3/1 gengiver Galileos definitionstabel for den åbne tjeneste til 1e-9°, GLONASS-slotformlen i grænsefladekontrollen og GPS' ækvatorkrydsninger; GPS-baseline-medianen for HDOP 0,940 mod 0,94 i standarden for Standard Positioning Service. Vilkårlige dækningskort for flere konstellationer omkring et hvilket som helst legeme forbliver MODELLED. |
Kampagner: sammenkædede missioner, sweeps, Monte Carlo-ensembler, kørsler under fælles betingelser (campaign) |
modelled |
tests/campaign_composition_reference.rs (11 tests): en kampagne med én fase gengiver den selvstændige kørsel byte for byte, et sweep med ét knudepunkt læser det samme tal, et ensemble med seed er byte-stabilt. Sammensætningsidentiteter, ikke en ekstern reference. |
| LEO-linkfysik (low Earth orbit): ITU-R-regnkoefficienter (ITU Radiocommunication Sector) P.838, regndæmpning og scintillation P.618, indtrængningstab i bygninger P.2109, førsteordens ionosfære, maksimal Doppler | validated |
tests/leo_link_reference.rs, tests/leo_doppler_reference.rs: ITU-R-anbefalingernes egne tabeller og valideringseksemplerne fra Study Group 3 (indlæst med kilde og hentedato), IS-GPS-200-forholdet for gruppeforsinkelse til ionosfæren og den offentliggjorte tabel over maksimal Doppler fra Leclere, Marathe og Reid (ION GNSS+ 2025, arXiv 2509,19551). |
LEO-navigationsbesked: brugeralgoritmen for broadcast-efemeriden i Galileo-ICD'en (interface control document), CRC-24Q (24-bit cyklisk redundanskontrol), globalt gennemsnitlige SISRE-vægte (signal-in-space range error) (leo-navmsg) |
validated |
tests/leo_navmsg_reference.rs: Galileo-brugeralgoritmen gengiver RTKLIB (et open source-bibliotek til realtidskinematisk positionsbestemmelse) til 1 mm på fire virkelige Galileo-broadcast-efemerider; CRC-24Q giver katalogets kontrolværdi 0xCDE703 og kontrolbytes i RTCM-eksempelrammen (Radio Technical Commission for Maritime Services) 1005; SISRE-vægtene gengiver den offentliggjorte MEO/GEO-tabel. Tilpasningen, opdateringen midt i en passage, den binære kodning, tekst i RINEX-4-stil/CSV (comma-separated values) og de valgbare efemeridemodeller forbliver MODELLED. |
LEO-signaludformning, passage og linkbudget, Doppler og fælles GNSS+LEO-positionsbestemmelse, PPP-konvergens (precise point positioning), 5G NTN-positionsbestemmelse (non-terrestrial network), LEO-tidsoverførsel (leo-signal, leo-pass, leo-pvt, leo-ppp, ntn-positioning) |
modelled |
tests/leo_signal_reference.rs, tests/leo_fusion_scenarios.rs: lukkede former, filterkonsistens (for eksempel at PPP-filterets kørselsgennemsnitlige NEES ligger inden for sit 95%-bånd) og sammenligninger med offentliggjorte tendenser; ingen feltdata. |
ét LEO-PNT-system fra ende til anden (leo-pnt-chain) |
modelled |
tests/leo_pnt_chain.rs: hver videregivet værdi er lig med det foregående trins eget output, og en ændring af et inputtal opstrøms flytter alle nedstrøms tal, der afhænger af det. |
| LEO-robusthed og vertikaler (spoofing via Doppler og via konsistens mellem bånd, ionosfæresondering) | modelled |
tests/leo_resilience_verticals.rs (10 tests). Robusthedsscenarierne og vertikalscenarierne er opført i RESILIENCE-CROSSWALK.md. |
Output, der er gengivelser og ikke evidens, har tests, men ingen matrixrække: udvekslingseksporterne (CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, STK-efemeride (Systems Tool Kit), SigMF (Signal Metadata Format)), der hver især læses tilbage af en validator skrevet ud fra formatets specifikation (tests/interop_formats.rs, 13 tests; se INTEROP.md); animationerne (tests/animation.rs: byte-identiske genkørsler, nøjagtige antal billeder, velformet SVG (Scalable Vector Graphics), ingen ekstern adresse i HTML-afspilleren (HyperText Markup Language)); og kørselsrapporten (tests/advanced_report.rs, tests/advanced_report_cli.rs: hvert medfølgende scenarie rapporterer uden tomt afsnit eller pladsholderværdi, etiketterne svarer til matrixen, og den optagede kommando gengiver result.json og rapporten byte for byte).
Driftsområde#
Hver pakke afprøves over sit angivne inputområde af tests/scenario_coverage.rs, som kontrollerer, at hvert numerisk output er endeligt (ingen NaN/Inf (NaN: not a number)) og afgrænset. Tabellen viser det afprøvede inputområde pr. pakke, den forventede outputadfærd og den dækkende test.
| Pakke | Input, der er gennemløbet | Afprøvet område | Forventet output | Dækkende test |
|---|---|---|---|---|
| clock | threshold_ns (tidskrav) |
1 – 500 ns | endelige kvalitetsmål for holdover, tidssynkronisering og sikkerhed | clock_pack_covers_the_spec_threshold_envelope |
| inertial | accel.bias |
1e-7 – 1e-2 m/s² (koldt atom → simpel MEMS (micro-electro-mechanical systems)) | endelig, afgrænset positions-RMS/p95 | inertial_pack_covers_the_accel_bias_envelope |
| orbit | mask_deg (elevationsmaske) |
5° – 30° | endelig DOP/tilgængelighed; afgrænset | orbit_pack_covers_the_elevation_mask_envelope |
| spoof | attack.rate_ns_per_s |
0,1 – 50 ns/s | endelig P_md / sikkerhed, afgrænset | spoof_pack_covers_the_attack_rate_envelope |
| hybrid | position_spec_m |
10 – 1000 m | endelig holdover af tidssynkronisering/position | hybrid_pack_covers_the_position_spec_envelope |
| bane (virkelig) | virkelige Celestrak-gps-ops-TLE'er |
øjebliksbillede med 30 satellitter, streng kontrolsum | indlæses kun med gyldige kontrolsummer; afgrænset geometri | real_gps_constellation_scenario_loads_with_valid_checksums_and_bounded_output |
| ur (flicker) | flicker_floor til/fra |
0 mod 1e-12 | aktivering af 1/f-gulvet forværrer coast for p95 af tidssynkroniseringen | flicker_fm_floor_degrades_the_clock_holdover_when_enabled |
| fusion (realisme) | accel.bias 0 mod 5.88e-7 m/s² |
nul mod realistisk værdi forskellig fra nul | filteret konvergerer stadig, inden for 3× fejlen ved nul bias | fusion_filter_converges_with_a_realistic_non_zero_bias |
Rækkerne for flicker-FM og fusionsbias lukker to bestemte realismehuller: støjleddene er slået fra som standard, men påvirker påviseligt outputtet, når de slås til, og det fælles fusionsfilter afhænger ikke af, at bias er nulstillet — det konvergerer også med en realistisk restbias på koldt-atom-niveau.
Kendte begrænsninger#
- Kvante- og klassiske kørsler bruger nu uafhængige RNG-seeds (random-number generator) (klassisk seed = seed + 0x9e3779b97f4a7c15), så deres støjrealiseringer er ukorrelerede — rettet efter gennemgang.
holdover_ser segmentbevidst: udfaldstidslinjer opdeles i sammenhængende segmenter ved GNSS-genindfangning, og den rapporterede værdi er det værste (korteste) coast på tværs af dem. Den er stadig begrænset af tidsgitterets opløsning (en nedre grænse).- ISL-tidsoverførslens gensynkronisering modellerer den resterende linkusikkerhed som friskt, middelværdifrit jitter pr. målingstrin plus gen-forankring ved det konfigurerede interval.
Påstande mod virkelighed — hurtig oversigt#
En fjendtlig bedømmers tjekliste. For hvert udtryk, der kan læses som mere, end det er: hvad Kshana gør i dag, og hvor den virkelige version ligger på køreplanen.
| Udtryk, du kan se | Hvad det i virkeligheden er i dag | Hvad det ikke (endnu) er |
|---|---|---|
| "hybrid kvante/klassisk PNT-simulator" | en klassisk stokastisk simulator drevet af offentliggjorte Allan-/støjkoefficienter for kvantesensorer | kvantefysik fra første principper (Mach–Zehnder-fase, projektionsstøj, systematiske fejl) — se QUANTUM-MODELS.md |
| "fælles Kalman-fusion" / fusionspakke | den kørbare fusion-pakke observerer uret og positionen hver for sig (en direkte tidsbestemmelse og en direkte positionsbestemmelse), for hvilket den optimale estimator reelt er blokdiagonal — to filtre med to tilstande og et samlet kvalitetsmål |
et koblet filter til pseudorange-tilfældet findes nu som fusion::coupled::CoupledPntFilter (4 tilstande stablet [pos,vel,phase,freq], krydsblokkovarians forskellig fra nul, NEES-valideret), men er endnu ikke koblet ind i den kørbare pakke, og pakken er 1-DOF (én frihedsgrad) — den 3D-udvidelse med 8 tilstande er fremtidigt arbejde |
Sikkerhedskvalitetsmål (spoof-type) |
1 − P_md for en stokastisk tidsspoofing-detektor: en tosidet χ²₁ / Neyman–Pearson-test på en urstøttet monitorstatistik, tærskel fastsat ud fra et mål-P_fa, P_md evalueret ved specifikationens størrelse både i lukket form og ved Monte Carlo (som stemmer inden for nogle få ×1/√N) |
en RAIM/ARAIM-detektor med flere satellitter — se INTEGRITY.md; monitorstatistikken er en gaussisk model med urets σ udledt af PSD, ikke en korrelation på signalniveau |
| "urstøttet spoofing-detektion" | en enkelt-ur-monitor for tidsafvigelse (gaussisk statistik, σ fra urets PSD), IKKE RAIM med flere SV (SV: space vehicle, altså en satellit) | RAIM med flere SV i afstandsdomænet med beskyttelsesniveauer |
| spoofing-detektorens P_md (lukket form mod Monte Carlo) | det analytiske P_md baseret på Φ og det empiriske estimat over mc_runs forsøg stemmer inden for stikprøvefejlen (≈ 1/√N); valideret i src/spoof.rs / src/detection.rs-tests ved en belastet afvigelse (μ/σ = 2) |
en målt ROC for detektoren mod optagede spoofing-data |
gnss-sim pseudorange-model |
en fremadrettet simulering: ρ = geometric + clocks + Klobuchar iono + Saastamoinen·Niell tropo + noise + multipath. Hver atmosfæremodel er enhedstestet mod værdier udregnet i hånden (ZHD (zenith hydrostatic delay) ≈ 2,3 m, Niell = 1 i zenit, Klobuchar-skråstilling), og den fulde Klobuchar-broadcast-model er krydskontrolleret mod RTKLIB's ionmodel()-referenceimplementering til under en millimeter (klobuchar_agrees_with_rtklib_reference_implementation, 6,1278 m for RTKLIB-tilfældet med standardkoefficienter — der findes ingen officielt offentliggjort Klobuchar-testvektor, så dette er implementeringsparitet, ikke målt sandhed); en kørsel uden støj gengiver geometri + korrektioner til under en millimeter (RAIM-residual ≈ 0) |
en positionsløsning ud fra virkelige signaler (PPP/RTK (PPP: precise point positioning)), iono-fri kombination på to frekvenser eller opløsning af heltalsmultiplicitet i bærebølgefasen — ikke modelleret |
jamming-model (jamming-type) |
en linkbudget-kæde: J/S ud fra fririumstab + antenneforstærkning pr. retning → effektiv C/N₀ via anti-jam-ligningen (afspredningsgevinst × spektral adskillelse Q) → tab af lås ved en tærskel (Kaplan & Hegarty §9,4) |
flerstiet udbredelse, AGC-dynamik (automatic gain control) i tid, selve indfangningssøgningen (den valgfri [acquisition]-hysterese er et tærskelpar); den valgfri [front_end]-kvantiseringsstøj er den for et gaussisk input og gælder ikke for en CW-jammer; den valgfri [crpa]-array er smalbåndet og ideel (ingen kobling eller fejltilpasning), og den valgfri [terrain]-skygning er én knivæg på én SRTM-tile; Q er en repræsentativ konstant pr. type, ikke udledt af jammerens målte PSD |
| Integritetskvalitetsmål (ur-/holdover-pakker) | filterets selvkonsistens (andelen af udfaldssamples inden for filterets egen k·σ-grænse) | HPL/VPL, integritetsrisiko / P_HMI, alarmgrænser, DO-229E/316/ED-259A — de rapporteres særskilt af integrity-typen (RAIM / ARAIM) og SBAS-funktionerne og indgår aldrig i dette kvalitetsmål |
ældre inertial-scenariepakkes kvalitetsmål |
et énaksligt (1-DOF) fejlbudget for accelerometer/gyro (VRW/ARW, bias-instabilitet) med nulstilling til sandheden | den ældre pakke er 1-DOF; 3-aksestien leveres i gnss-ins-pakken (næste række) |
3-akset strapdown-bibliotek + gnss-ins-pakke (src/inertial/, src/fusion/pack.rs) |
en verificeret kvaternion/NED-navigator (NED: north-east-down) med en deterministisk IMU-fejlmodel — skalafaktor, fejljustering, g-følsomhed, kvantisering, ratetrin er modelleret (IEEE Std 952-1997 §A.2; Groves 2013 §4,3) — nu drevet af gnss-ins-scenariepakken og kan konfigureres pr. sensor fra TOML (Tom's Obvious Minimal Language, scenarieformatet) ([imu_*.error_model]) |
ikke modelleret: vibrationsrektificeringsfejl, temperaturgradientdrift. Fejlen i den fusionerede coast er begrænset af et gulv fra attitudefejlen ved overdragelsen (tilt/accelerometer-bias kan kun svagt adskilles), så kalibrering pr. bias hævdes ikke |
"Hybrid PNT-integration" (hybrid-pakke) |
åben-sløjfe dødregning indrammet af GNSS-nulstillinger til sandheden | en koblet (løs/tæt) GNSS–INS Kalman-blanding — det er den separate gnss-ins-pakke (EKF) og hybrid-ukf-typen |
| "Positioneringsydelse" (urpakker) | urfasens tidssynkroniserings-RMS i ns (timing_rms_ns) |
en nøjagtighed i positionsdomænet vægtet efter RMS/CEP/SEP/DOP (SEP: spherical error probable) |
kvalitetsmål for inertialposition (pos_rms_m) |
en énaksig positions-RMS/p95 i meter fra ét seed, medmindre runs = N beder om et ensemble (så gennemsnit, spredning og et bootstrap-konfidensinterval på 95% pr. metrik) |
en fordeling af ensemble-CEP / 2DRMS (to gange afstands-RMS) (køreplan: Monte Carlo-CEP) |
| "valideret til ~2%" | en typisk observeret enighed; den håndhævede grænse er 20–25% relativ fejl | en garanteret nøjagtighedsgrænse på 2% |
| "reproducerbar / bit-identisk" | bit-identisk genkørsel på samme OS (operating system) + fastlåst toolchain; på tværs af Linux, macOS og Windows kontrollerer CI en indlæst SHA-256 af hvert resultats inputfingeraftryk og form (tests/cross_platform_golden.rs) samt de numeriske værdier til 1e-6 (tests/golden.rs) |
et byte-identisk fuldt resultat på tværs af operativsystemer (forskelle i sidste ciffer i libm) |
SGP4 GPS-scenarie (orbit-sgp4-gps.toml) |
et ægte Celestrak-gps-ops-øjebliksbillede (2021-07-28, 30 satellitter, strenge kontrolsummer), hver satellit propageret fra sin egen TLE-epoke |
en aktuel konstellation — opdatér øjebliksbilledet med scripts/fetch_tles.sh (se REAL_TLE_GUIDE.md); NORAD-katalognumrene (North American Aerospace Defense Command) er de virkelige |
Krydskontroller mod artikler om månens PNT (regressionsevidens, ikke matrixrækker)#
Suiten for måne og cislunart rum (funktionerne "Lunar & cislunar" og "Lunar PNT suite" i README) har sine påstande fra offentliggjorte artikler uafhængigt krydskontrolleret i tests/validate_p*.rs, hver mod en reference fra en anden implementering:
- orbitalt sende-/opsamlingsfodaftryk mod
scipy.special.j1(Cephes Bessel J1); - DOP for overfladefyrenes geometri mod en uafhængig NumPy-løsning med
(HᵀH)⁻¹; - vækst i forudsigelsesfejlen for UT1/EOP-persistens mod en NumPy-genafløsning af de samme ordrette IERS-
finals2000A-rækker; - den plane familie af fjerne retrograde baner mod NASA/JPL's Three-Body Periodic Orbit Database;
- præcisionsbudget for RF-afstandsmåling mod en reference fra første principper.
Fixtures og orakel-generatorscripts ligger under tests/fixtures/{p1_footprint,lunar_service,eop_prediction,rf_ranging_precision,dro_family_jpl,p2_independent_dop}/. De styrker evidensen bag funktioner, der forbliver MODELLED i den maskinkontrollerede matrix (src/verification.rs); de er regressionskontroller og ikke nye VALIDATED matrixrækker, så de ændrer ikke selv antallet i den maskinkontrollerede matrix. Det antal er ikke gentaget her, fordi en håndskrevet kopi af det kommer ud af trit: den aktuelle fordeling står i den genererede overskrift i VERIFICATION-MATRIX.md, som gen_validation_artifacts skriver ud fra verification_matrix(), og som tests/verification_artifacts_doc_sync.rs holder fast.